From f3ea8890e304df77006abad5c99cedacf3da76cc Mon Sep 17 00:00:00 2001 From: Bruno Torres Date: Sat, 6 Jan 2018 17:15:27 -0200 Subject: [PATCH] bump to 0.2.83 --- bower.json | 2 +- dist/clappr.js | 4 ++-- dist/clappr.js.map | 2 +- dist/clappr.min.js | 2 +- dist/clappr.min.js.map | 2 +- dist/clappr.plainhtml5.js | 4 ++-- dist/clappr.plainhtml5.js.map | 2 +- dist/clappr.plainhtml5.min.js | 2 +- dist/clappr.plainhtml5.min.js.map | 2 +- package.json | 2 +- 10 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bower.json b/bower.json index da3f657b8..1b463f406 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "clappr", "description": "An extensible media player for the web", - "version": "0.2.82", + "version": "0.2.83", "homepage": "https://github.com/clappr/clappr", "authors": [ "Globo.com" diff --git a/dist/clappr.js b/dist/clappr.js index 0bdfcac06..492cada32 100644 --- a/dist/clappr.js +++ b/dist/clappr.js @@ -6546,7 +6546,7 @@ var _clapprZepto2 = _interopRequireDefault(_clapprZepto); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var version = "0.2.82"; // Copyright 2014 Globo.com Player authors. All rights reserved. +var version = "0.2.83"; // Copyright 2014 Globo.com Player authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. @@ -11160,7 +11160,7 @@ var Loader = function (_BaseObject) { _this.playbackPlugins = [_html5_video2.default, _html5_audio2.default, _html_img2.default, _no_op2.default]; if (true) { - _this.playbackPlugins = _this.playbackPlugins.concat([_hls2.default, _flash2.default, _flashls2.default]); + _this.playbackPlugins = [_hls2.default, _flash2.default, _flashls2.default].concat(_this.playbackPlugins); } _this.containerPlugins = [_spinner_three_bounce2.default, _watermark2.default, _poster2.default, _stats2.default, _google_analytics2.default, _click_to_pause2.default]; diff --git a/dist/clappr.js.map b/dist/clappr.js.map index 3ca8e1ab9..aa216141e 100644 --- a/dist/clappr.js.map +++ b/dist/clappr.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 1bb32f9839b547afcca4","webpack:///./node_modules/babel-runtime/helpers/classCallCheck.js","webpack:///./node_modules/babel-runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/babel-runtime/helpers/inherits.js","webpack:///./node_modules/babel-runtime/helpers/createClass.js","webpack:///./src/base/events.js","webpack:///./src/base/utils.js","webpack:///./node_modules/clappr-zepto/zepto.js","webpack:///./node_modules/css-loader/lib/css-base.js","webpack:///./src/base/template.js","webpack:///./src/base/playback.js","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/core-js/library/modules/_wks.js","webpack:///./src/components/browser.js","webpack:///./node_modules/core-js/library/modules/_to-iobject.js","webpack:///./node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/core-js/library/modules/_object-dp.js","webpack:///./src/base/base_object.js","webpack:///./node_modules/core-js/library/modules/_has.js","webpack:///./node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/core-js/library/modules/_descriptors.js","webpack:///./src/base/ui_object.js","webpack:///./node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/core-js/library/modules/_an-object.js","webpack:///./src/components/mediator.js","webpack:///./node_modules/core-js/library/modules/_object-keys.js","webpack:///./node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/core-js/library/modules/_iterators.js","webpack:///./src/base/core_plugin.js","webpack:///./node_modules/babel-runtime/core-js/object/keys.js","webpack:///./node_modules/core-js/library/modules/_uid.js","webpack:///./node_modules/babel-runtime/helpers/typeof.js","webpack:///./src/components/player_info.js","webpack:///./src/playbacks/html5_video/index.js","webpack:///./src/base/ui_container_plugin.js","webpack:///./src/base/container_plugin.js","webpack:///./src/base/ui_core_plugin.js","webpack:///./node_modules/core-js/library/modules/_to-object.js","webpack:///./node_modules/core-js/library/modules/_defined.js","webpack:///./node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/core-js/library/modules/_to-integer.js","webpack:///./node_modules/core-js/library/modules/_shared-key.js","webpack:///./node_modules/core-js/library/modules/_shared.js","webpack:///./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/core-js/library/modules/_library.js","webpack:///./node_modules/core-js/library/modules/_object-create.js","webpack:///./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/library/modules/_wks-ext.js","webpack:///./node_modules/core-js/library/modules/_wks-define.js","webpack:///./node_modules/core-js/library/modules/_object-pie.js","webpack:///./node_modules/core-js/library/modules/_object-gopd.js","webpack:///./src/plugins/log/index.js","webpack:///./src/vendor/index.js","webpack:///./node_modules/process/browser.js","webpack:///./src/icons/01-play.svg","webpack:///./src/playbacks/base_flash_playback/index.js","webpack:///./node_modules/core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/library/modules/_to-length.js","webpack:///./node_modules/core-js/library/modules/_object-sap.js","webpack:///./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/core-js/library/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/library/modules/_iter-define.js","webpack:///./node_modules/core-js/library/modules/_redefine.js","webpack:///./node_modules/core-js/library/modules/_object-gops.js","webpack:///./node_modules/core-js/library/modules/_object-gopn.js","webpack:///./node_modules/babel-runtime/core-js/object/define-property.js","webpack:///./node_modules/babel-runtime/core-js/object/create.js","webpack:///./src/components/core/index.js","webpack:///./src/components/container/index.js","webpack:///./src/components/media_control/index.js","webpack:///./src/components/media_control/public/closed-hand.cur","webpack:///./src/icons/02-pause.svg","webpack:///./src/base/styler.js","webpack:///./src/components/loader/index.js","webpack:///./node_modules/babel-runtime/core-js/array/from.js","webpack:///./node_modules/babel-runtime/helpers/toConsumableArray.js","webpack:///./src/playbacks/flash/index.js","webpack:///./src/playbacks/html5_audio/index.js","webpack:///./src/playbacks/flashls/index.js","webpack:///./src/playbacks/hls/index.js","webpack:///./src/playbacks/html_img/index.js","webpack:///./src/playbacks/no_op/index.js","webpack:///./src/plugins/poster/index.js","webpack:///./src/main.js","webpack:///./src/components/player.js","webpack:///./node_modules/core-js/library/fn/object/keys.js","webpack:///./node_modules/core-js/library/modules/es6.object.keys.js","webpack:///./node_modules/core-js/library/modules/_iobject.js","webpack:///./node_modules/core-js/library/modules/_array-includes.js","webpack:///./node_modules/core-js/library/modules/_to-index.js","webpack:///./node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/babel-runtime/core-js/symbol/iterator.js","webpack:///./node_modules/core-js/library/fn/symbol/iterator.js","webpack:///./node_modules/core-js/library/modules/_string-at.js","webpack:///./node_modules/core-js/library/modules/_iter-create.js","webpack:///./node_modules/core-js/library/modules/_object-dps.js","webpack:///./node_modules/core-js/library/modules/_html.js","webpack:///./node_modules/core-js/library/modules/_object-gpo.js","webpack:///./node_modules/core-js/library/modules/web.dom.iterable.js","webpack:///./node_modules/core-js/library/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/library/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/library/modules/_iter-step.js","webpack:///./node_modules/babel-runtime/core-js/symbol.js","webpack:///./node_modules/core-js/library/fn/symbol/index.js","webpack:///./node_modules/core-js/library/modules/es6.symbol.js","webpack:///./node_modules/core-js/library/modules/_meta.js","webpack:///./node_modules/core-js/library/modules/_keyof.js","webpack:///./node_modules/core-js/library/modules/_enum-keys.js","webpack:///./node_modules/core-js/library/modules/_is-array.js","webpack:///./node_modules/core-js/library/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/core-js/library/modules/es7.symbol.observable.js","webpack:///./node_modules/core-js/library/fn/object/define-property.js","webpack:///./node_modules/core-js/library/modules/es6.object.define-property.js","webpack:///./node_modules/babel-runtime/core-js/object/set-prototype-of.js","webpack:///./node_modules/core-js/library/fn/object/set-prototype-of.js","webpack:///./node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./node_modules/core-js/library/modules/_set-proto.js","webpack:///./node_modules/core-js/library/fn/object/create.js","webpack:///./node_modules/core-js/library/modules/es6.object.create.js","webpack:///./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js","webpack:///./node_modules/core-js/library/fn/object/get-own-property-descriptor.js","webpack:///./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js","webpack:///./src/base/polyfills.js","webpack:///./src/plugins/log/log.js","webpack:///./src/vendor/kibo.js","webpack:///./src/components/core_factory/index.js","webpack:///./src/components/core_factory/core_factory.js","webpack:///./src/components/core/core.js","webpack:///./src/components/container_factory/index.js","webpack:///./src/components/container_factory/container_factory.js","webpack:///./src/components/container/container.js","webpack:///./src/components/container/public/style.scss?d68b","webpack:///./src/components/container/public/style.scss","webpack:///./node_modules/style-loader/lib/urls.js","webpack:///./src/components/media_control/media_control.js","webpack:///./node_modules/babel-runtime/core-js/json/stringify.js","webpack:///./node_modules/core-js/library/fn/json/stringify.js","webpack:///./src/components/media_control/public/media-control.scss?0834","webpack:///./src/components/media_control/public/media-control.scss","webpack:///./src/components/media_control/public/media-control.html","webpack:///./src/icons/03-stop.svg","webpack:///./src/icons/04-volume.svg","webpack:///./src/icons/05-mute.svg","webpack:///./src/icons/06-expand.svg","webpack:///./src/icons/07-shrink.svg","webpack:///./src/icons/08-hd.svg","webpack:///./src/components/core/public/style.scss?944e","webpack:///./src/components/core/public/style.scss","webpack:///./src/components/core/public/fonts.css","webpack:///./src/components/core/public/Roboto.ttf","webpack:///./src/components/loader/loader.js","webpack:///./src/playbacks/html5_video/html5_video.js","webpack:///./node_modules/core-js/library/fn/array/from.js","webpack:///./node_modules/core-js/library/modules/es6.array.from.js","webpack:///./node_modules/core-js/library/modules/_iter-call.js","webpack:///./node_modules/core-js/library/modules/_is-array-iter.js","webpack:///./node_modules/core-js/library/modules/_create-property.js","webpack:///./node_modules/core-js/library/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/library/modules/_classof.js","webpack:///./node_modules/core-js/library/modules/_iter-detect.js","webpack:///./src/playbacks/html5_video/public/tracks.html","webpack:///./src/playbacks/html5_video/public/style.scss?1f65","webpack:///./src/playbacks/html5_video/public/style.scss","webpack:///./src/playbacks/flash/flash.js","webpack:///./src/playbacks/base_flash_playback/base_flash_playback.js","webpack:///./src/playbacks/base_flash_playback/public/flash.html","webpack:///./src/playbacks/base_flash_playback/public/flash.scss?b3d9","webpack:///./src/playbacks/base_flash_playback/public/flash.scss","webpack:///./src/playbacks/flash/public/Player.swf","webpack:///./src/playbacks/html5_audio/html5_audio.js","webpack:///./src/playbacks/flashls/flashls.js","webpack:///./src/playbacks/flashls/flashls_events.js","webpack:///./src/playbacks/flashls/public/HLSPlayer.swf","webpack:///./src/playbacks/hls/hls.js","webpack:///./node_modules/hls.js/dist/hls.js","webpack:///./src/playbacks/html_img/html_img.js","webpack:///./src/playbacks/html_img/public/style.scss?4b63","webpack:///./src/playbacks/html_img/public/style.scss","webpack:///./src/playbacks/no_op/no_op.js","webpack:///./src/playbacks/no_op/public/error.html","webpack:///./src/playbacks/no_op/public/style.scss?965b","webpack:///./src/playbacks/no_op/public/style.scss","webpack:///./src/plugins/spinner_three_bounce/index.js","webpack:///./src/plugins/spinner_three_bounce/spinner_three_bounce.js","webpack:///./src/plugins/spinner_three_bounce/public/spinner.html","webpack:///./src/plugins/spinner_three_bounce/public/spinner.scss?4d37","webpack:///./src/plugins/spinner_three_bounce/public/spinner.scss","webpack:///./src/plugins/stats/index.js","webpack:///./src/plugins/stats/stats.js","webpack:///./src/plugins/watermark/index.js","webpack:///./src/plugins/watermark/watermark.js","webpack:///./src/plugins/watermark/public/watermark.html","webpack:///./src/plugins/watermark/public/watermark.scss?06f2","webpack:///./src/plugins/watermark/public/watermark.scss","webpack:///./src/plugins/poster/poster.js","webpack:///./src/plugins/poster/public/poster.html","webpack:///./src/plugins/poster/public/poster.scss?c7e5","webpack:///./src/plugins/poster/public/poster.scss","webpack:///./src/plugins/google_analytics/index.js","webpack:///./src/plugins/google_analytics/google_analytics.js","webpack:///./src/plugins/click_to_pause/index.js","webpack:///./src/plugins/click_to_pause/click_to_pause.js","webpack:///./src/plugins/dvr_controls/index.js","webpack:///./src/plugins/dvr_controls/dvr_controls.js","webpack:///./src/plugins/dvr_controls/public/index.html","webpack:///./src/plugins/dvr_controls/public/dvr_controls.scss?caac","webpack:///./src/plugins/dvr_controls/public/dvr_controls.scss","webpack:///./src/plugins/closed_captions/index.js","webpack:///./src/plugins/closed_captions/closed_captions.js","webpack:///./src/icons/09-cc.svg","webpack:///./src/plugins/closed_captions/public/closed_captions.html","webpack:///./src/plugins/closed_captions/public/closed_captions.scss?2378","webpack:///./src/plugins/closed_captions/public/closed_captions.scss","webpack:///./src/plugins/favicon/index.js","webpack:///./src/plugins/favicon/favicon.js","webpack:///./src/plugins/seek_time/index.js","webpack:///./src/plugins/seek_time/seek_time.js","webpack:///./src/plugins/seek_time/public/seek_time.html","webpack:///./src/plugins/seek_time/public/seek_time.scss?af59","webpack:///./src/plugins/seek_time/public/seek_time.scss","webpack:///./src/plugins/sources.js","webpack:///./src/plugins/end_video.js","webpack:///./src/plugins/strings.js"],"names":["slice","Array","prototype","eventSplitter","eventsApi","obj","action","name","rest","key","apply","concat","test","names","split","i","l","length","triggerEvents","events","args","klass","ev","a1","a2","a3","run","callback","call","ctx","exception","error","Events","on","context","_events","push","once","off","arguments","retain","j","k","_callback","trigger","constructor","debug","allEvents","all","stopListening","listeningTo","_listeningTo","remove","_listenId","id","register","eventName","Custom","property","toUpperCase","trim","toLowerCase","map","value","index","join","listAvailableCustomEvents","filter","listenMethods","listenTo","listenToOnce","forEach","method","PLAYER_READY","PLAYER_RESIZE","PLAYER_FULLSCREEN","PLAYER_PLAY","PLAYER_PAUSE","PLAYER_STOP","PLAYER_ENDED","PLAYER_SEEK","PLAYER_ERROR","PLAYER_TIMEUPDATE","PLAYER_VOLUMEUPDATE","PLAYER_SUBTITLE_AVAILABLE","PLAYBACK_PROGRESS","PLAYBACK_TIMEUPDATE","PLAYBACK_READY","PLAYBACK_BUFFERING","PLAYBACK_BUFFERFULL","PLAYBACK_SETTINGSUPDATE","PLAYBACK_LOADEDMETADATA","PLAYBACK_HIGHDEFINITIONUPDATE","PLAYBACK_BITRATE","PLAYBACK_LEVELS_AVAILABLE","PLAYBACK_LEVEL_SWITCH_START","PLAYBACK_LEVEL_SWITCH_END","PLAYBACK_PLAYBACKSTATE","PLAYBACK_DVR","PLAYBACK_MEDIACONTROL_DISABLE","PLAYBACK_MEDIACONTROL_ENABLE","PLAYBACK_ENDED","PLAYBACK_PLAY_INTENT","PLAYBACK_PLAY","PLAYBACK_PAUSE","PLAYBACK_SEEKED","PLAYBACK_STOP","PLAYBACK_ERROR","PLAYBACK_STATS_ADD","PLAYBACK_FRAGMENT_LOADED","PLAYBACK_LEVEL_SWITCH","PLAYBACK_SUBTITLE_AVAILABLE","PLAYBACK_SUBTITLE_CHANGED","CORE_CONTAINERS_CREATED","CORE_OPTIONS_CHANGE","CORE_READY","CORE_FULLSCREEN","CORE_SCREEN_ORIENTATION_CHANGED","CONTAINER_PLAYBACKSTATE","CONTAINER_PLAYBACKDVRSTATECHANGED","CONTAINER_BITRATE","CONTAINER_STATS_REPORT","CONTAINER_DESTROYED","CONTAINER_READY","CONTAINER_ERROR","CONTAINER_LOADEDMETADATA","CONTAINER_SUBTITLE_AVAILABLE","CONTAINER_SUBTITLE_CHANGED","CONTAINER_TIMEUPDATE","CONTAINER_PROGRESS","CONTAINER_PLAY","CONTAINER_STOP","CONTAINER_PAUSE","CONTAINER_ENDED","CONTAINER_CLICK","CONTAINER_DBLCLICK","CONTAINER_CONTEXTMENU","CONTAINER_MOUSE_ENTER","CONTAINER_MOUSE_LEAVE","CONTAINER_SEEK","CONTAINER_SEEKED","CONTAINER_VOLUME","CONTAINER_FULLSCREEN","CONTAINER_STATE_BUFFERING","CONTAINER_STATE_BUFFERFULL","CONTAINER_SETTINGSUPDATE","CONTAINER_HIGHDEFINITIONUPDATE","CONTAINER_MEDIACONTROL_SHOW","CONTAINER_MEDIACONTROL_HIDE","CONTAINER_MEDIACONTROL_DISABLE","CONTAINER_MEDIACONTROL_ENABLE","CONTAINER_STATS_ADD","CONTAINER_OPTIONS_CHANGE","MEDIACONTROL_RENDERED","MEDIACONTROL_FULLSCREEN","MEDIACONTROL_SHOW","MEDIACONTROL_HIDE","MEDIACONTROL_MOUSEMOVE_SEEKBAR","MEDIACONTROL_MOUSELEAVE_SEEKBAR","MEDIACONTROL_PLAYING","MEDIACONTROL_NOTPLAYING","MEDIACONTROL_CONTAINERCHANGED","extend","formatTime","seekStringToSeconds","uniqueId","isNumber","currentScriptUrl","getBrowserLanguage","now","removeArrayItem","assign","source","prop","propDescriptor","parent","properties","Surrogate","initialize","time","paddedHours","isFinite","parseInt","seconds","minutes","hours","days","out","Fullscreen","isFullscreen","document","webkitFullscreenElement","webkitIsFullScreen","mozFullScreen","msFullscreenElement","requestFullscreen","el","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","querySelector","webkitEnterFullScreen","cancelFullscreen","exitFullscreen","webkitCancelFullScreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","Config","_defaultConfig","volume","parse","_defaultValueFor","e","undefined","_createKeyspace","domain","restore","hasLocalstorage","localStorage","persist","QueryString","paramsString","match","pl","search","decode","s","decodeURIComponent","replace","params","exec","query","window","location","substring","_urlParams","hash","_hashParams","paramName","seekString","hashParams","parts","factor","suffix","idsCounter","prefix","parseFloat","scripts","getElementsByTagName","src","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","fn","setTimeout","bind","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","clearTimeout","navigator","language","performance","Date","arr","item","indexOf","splice","videoStack","DomRecycler","configure","options","create","recycleVideo","shift","garbage","$el","tagName","children","settings","evaluate","interpolate","escape","noMatch","escapes","escaper","htmlEntities","entityRe","RegExp","escapeExpr","string","counter","tmpl","text","data","render","matcher","offset","variable","Function","template","Playback","_i18n","i18n","consent","play","pause","stop","seek","seekPercentage","percentage","getStartTimeOffset","getDuration","isPlaying","getPlaybackType","NO_OP","isHighDefinitionInUse","destroy","closedCaptionsTracks","trackId","canPlay","mimeType","VOD","AOD","LIVE","type","Browser","setItem","removeItem","hasFlash","fo","ActiveXObject","mimeTypes","enabledPlugin","getBrowserInfo","ua","extra","version","appName","appVersion","browserInfo","userAgent","isEdge","isChrome","isSafari","isFirefox","isLegacyIE","isIE","isIE11","isChromecast","isMobile","isiOS","isAndroid","isWindowsPhone","isWin8App","isWiiU","isPS4","BaseObject","_options","delegateEventSplitter","UIObject","cid","_ensureElement","delegateEvents","$","selector","find","undelegateEvents","setElement","element","delegate","zepto","isZ","attrs","attributes","className","attr","Mediator","opts","CorePlugin","core","enabled","bindEvents","enable","disable","getExternalInterface","PlayerInfo","playbackPlugins","currentSize","width","height","_players","getInstance","playerId","UIContainerPlugin","container","show","hide","ContainerPlugin","UICorePlugin","Kibo","require","Styler","getStyleFor","style","baseUrl","html","toString","Player","MediaControl","Container","Core","Loader","Utils","BaseFlashPlayback","Flash","FlasHLS","HLS","HTML5Audio","HTML5Video","HTMLImg","NoOp","Poster","Log","Vendor","loader","_loader","plugins","mediaControl","ended","buffering","_ready","onReady","onResize","onPlay","onPause","onStop","onEnded","onSeek","onError","onTimeUpdate","onVolumeUpdate","onSubtitleAvailable","defaultOptions","persistConfig","allowUserInteraction","sources","_normalizeSources","chromeless","disableKeyboardShortcuts","_registerOptionEventListeners","_coreFactory","playerInfo","parentId","setParentId","attachTo","parentElement","_addEventListeners","isReady","_onReady","_containerChanged","_onFullscreenChange","_addContainerEventListeners","_onPlay","_onPause","_onStop","_onEnded","_onSeek","_onError","_onTimeUpdate","_onVolumeUpdate","_onSubtitleAvailable","userEvents","userEvent","eventType","eventsMapping","eventFunction","fullscreen","getCurrentTime","timeProgress","resize","size","load","autoPlay","getCurrentPlayback","setVolume","getVolume","mute","_mutedVolume","unmute","isDvrEnabled","isDvrInUse","getPlugin","plugin","Object","defineProperty","predicate","TypeError","o","len","thisArg","kValue","BOLD","INFO","DEBUG","WARN","ERROR","LEVEL_DEBUG","LEVEL_INFO","LEVEL_WARN","LEVEL_ERROR","LEVEL_DISABLED","COLORS","DESCRIPTIONS","level","offLevel","kibo","down","onOff","BLACKLIST","log","info","warn","previousLevel","console","newLevel","message","color","klassDescription","_instance","setLevel","KEY_NAMES_BY_CODE","KEY_CODES_BY_NAME","hasOwnProperty","MODIFIERS","registerEvent","addEventListener","func","attachEvent","unregisterEvent","removeEventListener","detachEvent","stringContains","neatString","capitalize","isString","what","arrayIncludes","haystack","needle","extractModifiers","keyCombination","modifiers","extractKey","keys","modifiersAndKey","result","keyName","keyCode","that","lastKeyCode","lastModifiers","keysDown","any","keysUp","downHandler","handler","upHandler","unloader","upOrDown","registeredKeys","lastModifiersAndKey","event","preventDefault","registerKeys","newKeys","unregisterKeys","String","up","lastKey","modifier","CoreFactory","player","addCorePlugins","createContainers","corePlugins","Plugin","addPlugin","setupExternalInterface","externalFunctions","tabindex","ready","t","configureDomRecycler","firstResize","containers","setupMediaControl","_boundFullscreenHandler","handleFullscreenChange","handleWindowResize","playback","defer","Deferred","promise","containerFactory","then","setupContainers","resolveOnContainersReady","updateSize","setFullscreen","setPlayerSize","addClass","removeAttr","previousSize","removeClass","triggerResize","enableResizeObserver","checkSizeCallback","computedSize","clientWidth","clientHeight","resizeObserverInterval","setInterval","newSize","thereWasChange","oldHeight","oldWidth","disableResizeObserver","clearInterval","when","done","resolve","hasPlugin","unbind","orientation","_screenOrientation","setMediaControlContainer","setContainer","disableMediaControl","enableMediaControl","removeContainer","c","appendContainer","renderContainers","getCurrentContainer","appendToParent","appendChild","createContainer","createMediaControl","focusElement","toggleFullscreen","onMediaControlShow","mediacontrol","external","showMediaControl","hideMediaControl","hideMediaControlDelay","showing","hasCoreParent","appendTo","append","ContainerFactory","findPlaybackPlugin","p","resolvedSource","protocol","playbackPlugin","addContainerPlugins","containerPlugins","class","hasClosedCaptionsTracks","closedCaptionsTrackId","currentTime","mediaControlDisabled","progress","timeUpdated","onBuffering","bufferfull","settingsUpdate","loadedMetadata","highDefinitionUpdate","updateBitrate","playbackStateChanged","playbackDvrStateChanged","onSeeked","playing","paused","stopped","subtitleAvailable","subtitleChanged","track","state","dvrInUse","newBitrate","statsReport","metrics","dvrEnabled","setStyle","css","animate","duration","errorObj","metadata","current","clicked","dblClicked","onContextMenu","mouseEnter","mouseLeave","isHD","updateStyle","userDisabled","intendedVolume","currentPositionValue","currentDurationValue","initialVolume","keepVisible","fullScreenOnVideoTagSupported","addEventListeners","left","right","default","isEmptyObject","stopDragHandler","stopDrag","updateDragHandler","updateDrag","playerResize","changeTogglePlay","updateProgressBar","onVolumeChanged","nodeName","onLoadedMetadataOnVideoTag","updateVolumeUI","video","webkitSupportsFullscreen","rendered","$volumeBarContainer","containerWidth","barWidth","$volumeBarBackground","pos","$volumeBarFill","$volumeBarScrubber","Math","ceil","$volumeIcon","muted","applyButtonStyle","$playPauseToggle","$playStopToggle","mousemoveOnSeekBar","seekEnabled","offsetX","pageX","$seekBarContainer","$seekBarHover","mouseleaveOnSeekBar","onVolumeClick","getVolumeFromUIEvent","mousemoveOnVolumeBar","draggingVolumeBar","$fullscreenToggle","hideVolumeBar","togglePlayPause","togglePlayStop","startSeekDrag","draggingSeekBar","$seekBarLoaded","$seekBarPosition","$seekBarScrubber","startVolumeDrag","min","max","setSeekPercentage","offsetY","volumeFromUI","toggleMute","setWhenContainerReady","resetUserKeepVisible","showVolumeBar","hideVolumeId","timeout","loadedStart","start","total","loadedEnd","position","renderSeekBar","currentSeekBarPercentage","newPosition","newDuration","displayedPosition","$position","displayedDuration","$duration","setKeepVisible","resetKeepVisible","setUserKeepVisible","userKeepVisible","isVisible","hasClass","disabled","clientX","lastMouseX","clientY","lastMouseY","hideId","delay","newSettings","getSettings","settingsChanged","$hdIndicator","createCachedElements","$layer","$volumeContainer","resetIndicators","initializeIcons","displayedSeekBarPercentage","seekRelative","delta","bindKeyAndShow","cb","bindKeyEvents","unbindKeyEvents","parseColors","buttonsColor","buttons","seekbarColor","seekbar","previousSeekPercentage","process","nextTick","externalPlugins","isArray","validateExternalPluginsType","addExternalPlugins","groupPluginsByType","reduce","memo","removeDups","list","groupUp","pluginsMap","reduceRight","unshift","plugintypes","errorMessage","ReferenceError","MIMETYPES","codec","AUDIO_MIMETYPES","KNOWN_AUDIO_MIMETYPES","acc","isAudioOnly","resourceUrl","_mimeTypesForUrl","audioOnly","_isBuffering","_destroyed","_loadStarted","_playheadMoving","_playheadMovingTimer","_stopped","_ccTrackId","_setupSrc","disableContextMenu","disableVideoTagContextMenu","playbackConfig","preload","posterUrl","poster","url","defaultMuted","loop","controls","useVideoTagDefaultControls","crossOrigin","playInline","playsinline","crossorigin","externalTracks","_setupExternalTracks","tracks","_externalTracks","kind","label","lang","srcUrl","_ccIsSetup","_src","_onLoadedMetadata","_handleBufferingEvents","target","_updateSettings","autoSeekFromUrl","_checkInitialSeek","_onDurationChange","_onProgress","isSeekEnabled","onDemandType","Infinity","catch","removeAttribute","_stopPlayheadMovingChecks","isMuted","_startPlayheadMovingChecks","_playheadMovingTimeOnCheck","_determineIfPlayheadMoving","before","_onWaiting","_onLoadedData","_onCanPlay","_onPlaying","_checkForClosedCaptions","_onSeeked","playheadShouldBeMoving","readyState","HAVE_FUTURE_DATA","handleTextTrackChange","textTracks","seekTime","buffered","bufferedPos","end","_typeFor","_isReadyState","isHTML5Video","_handleTextTrackChange","mode","showingTrack","mimeTypesByExtension","extension","_canPlay","media","createElement","canPlayType","mediaType","MAX_ATTEMPTS","_baseUrl","_currentState","_bufferingState","_autoPlay","_addListeners","_bootstrap","playerPlay","_firstPlay","insertAfter","_metadataLoaded","_attempts","_updateTime","getPosition","_progress","_checkState","_isIdle","getState","getBytesLoaded","getBytesTotal","href","seekSeconds","playerResume","playerVolume","playerPause","playerStop","playerSeek","bootstrapId","resource","resourceParts","IE_CLASSID","swfPath","playbackId","wmode","callbackName","updateSettings","mimetypes","AUTO","_levels","_currentLevel","playerSetCurrentLevel","_hasEnded","_initHlsParameters","highDefinition","_loop","_defaultSettings","_playbackType","_autoStartLoad","autoStartLoad","_capLevelToStage","capLevelToStage","_maxLevelCappingMode","maxLevelCappingMode","_minBufferLength","minBufferLength","_minBufferLengthCapping","minBufferLengthCapping","_maxBufferLength","maxBufferLength","_maxBackBufferLength","maxBackBufferLength","_lowBufferLength","lowBufferLength","_mediaTimePeriod","mediaTimePeriod","_fpsDroppedMonitoringPeriod","fpsDroppedMonitoringPeriod","_fpsDroppedMonitoringThreshold","fpsDroppedMonitoringThreshold","_capLevelonFPSDrop","capLevelonFPSDrop","_smoothAutoSwitchonFPSDrop","smoothAutoSwitchonFPSDrop","_switchDownOnLevelError","switchDownOnLevelError","_seekMode","seekMode","_keyLoadMaxRetry","keyLoadMaxRetry","_keyLoadMaxRetryTimeout","keyLoadMaxRetryTimeout","_fragmentLoadMaxRetry","fragmentLoadMaxRetry","_fragmentLoadMaxRetryTimeout","fragmentLoadMaxRetryTimeout","_fragmentLoadSkipAfterMaxRetry","fragmentLoadSkipAfterMaxRetry","_maxSkippedFragments","maxSkippedFragments","_flushLiveURLCache","flushLiveURLCache","_initialLiveManifestSize","initialLiveManifestSize","_manifestLoadMaxRetry","manifestLoadMaxRetry","_manifestLoadMaxRetryTimeout","manifestLoadMaxRetryTimeout","_manifestRedundantLoadmaxRetry","manifestRedundantLoadmaxRetry","_startFromBitrate","startFromBitrate","_startFromLevel","startFromLevel","_autoStartMaxDuration","autoStartMaxDuration","_seekFromLevel","seekFromLevel","_useHardwareVideoDecoder","useHardwareVideoDecoder","_hlsLogEnabled","hlsLogEnabled","_logDebug","logDebug","_logDebug2","logDebug2","_logWarn","logWarn","_logError","logError","_hlsMinimumDvrSize","hlsMinimumDvrSize","timeMetrics","_setPlaybackState","_levelChanged","code","_flashPlaybackError","loadmetrics","_onFragmentLoaded","_onLevelEndlist","playerLoad","_srcLoaded","_setFlashSettings","_updatePlaybackType","_shouldPlayOnManifestLoaded","_bootstrapAttempts","playerSetAutoStartLoad","playerSetCapLevelToStage","playerSetMaxLevelCappingMode","playerSetMinBufferLength","playerSetMinBufferLengthCapping","playerSetMaxBufferLength","playerSetMaxBackBufferLength","playerSetLowBufferLength","playerSetMediaTimePeriod","playerSetFpsDroppedMonitoringPeriod","playerSetFpsDroppedMonitoringThreshold","playerSetCapLevelonFPSDrop","playerSetSmoothAutoSwitchonFPSDrop","playerSetSwitchDownOnLevelError","playerSetSeekMode","playerSetKeyLoadMaxRetry","playerSetKeyLoadMaxRetryTimeout","playerSetFragmentLoadMaxRetry","playerSetFragmentLoadMaxRetryTimeout","playerSetFragmentLoadSkipAfterMaxRetry","playerSetMaxSkippedFragments","playerSetFlushLiveURLCache","playerSetInitialLiveManifestSize","playerSetManifestLoadMaxRetry","playerSetManifestLoadMaxRetryTimeout","playerSetManifestRedundantLoadmaxRetry","playerSetStartFromBitrate","playerSetStartFromLevel","playerSetAutoStartMaxDuration","playerSetSeekFromLevel","playerSetUseHardwareVideoDecoder","playerSetLogInfo","playerSetLogDebug","playerSetLogDebug2","playerSetLogWarn","playerSetLogError","setAutoStartLoad","setCapLevelToStage","setMaxLevelCappingMode","setSetMinBufferLength","setMinBufferLengthCapping","setMaxBufferLength","setMaxBackBufferLength","setLowBufferLength","setMediaTimePeriod","setFpsDroppedMonitoringPeriod","setFpsDroppedMonitoringThreshold","setCapLevelonFPSDrop","setSmoothAutoSwitchonFPSDrop","setSwitchDownOnLevelError","setSeekMode","setKeyLoadMaxRetry","setKeyLoadMaxRetryTimeout","setFragmentLoadMaxRetry","setFragmentLoadMaxRetryTimeout","setFragmentLoadSkipAfterMaxRetry","setMaxSkippedFragments","setFlushLiveURLCache","setInitialLiveManifestSize","setManifestLoadMaxRetry","setManifestLoadMaxRetryTimeout","setManifestRedundantLoadmaxRetry","setStartFromBitrate","setStartFromLevel","setAutoStartMaxDuration","setSeekFromLevel","setUseHardwareVideoDecoder","setSetLogInfo","setLogDebug","setLogDebug2","setLogWarn","setLogError","currentLevel","getLevels","bitrate","_fillLevels","bandwidth","_normalizeDuration","previousDVRStatus","_dvrEnabled","livePlayback","_dvrInUse","getCurrentLevelIndex","getCurrentLevel","levels","getCurrentBitrate","setCurrentLevel","_updateCurrentState","getType","_startReportingProgress","_stopReportingProgress","_reportingProgress","getbufferLength","_manifestLoaded","_updateDvr","previousDvrInUse","levelsLength","_createCallbacks","Clappr","flashlsCallbacks","flashlsEvents","HLSEvents","instanceId","videoSize","complete","manifest","audioLevelLoaded","levelLoaded","levelEndlist","fragmentLoaded","fragmentPlaying","playmetrics","timemetrics","newState","seekState","switch","audioTracksListChange","trackList","audioTrackChange","_hls","_playlistType","_extrapolatedStartTime","_playableRegionStartTime","_localStartTimeCorrelation","corr","timePassed","_now","local","extrapolatedWindowStartTime","remote","_extrapolatedWindowDuration","actualEndTime","_playableRegionDuration","_localEndTimeCorrelation","extrapolatedEndTime","_extrapolatedEndTime","_startTime","_segmentTargetDuration","_extrapolatedWindowNumSegments","_minDvrSize","extrapolatedWindowNumSegments","_lastTimeUpdate","_lastDuration","_durationExcludesAfterLiveSyncPoint","_recoverAttemptsRemaining","hlsRecoverAttempts","_startTimeUpdateTimer","_setup","_ccTracksUpdated","hlsjsConfig","MEDIA_ATTACHED","loadSource","LEVEL_LOADED","evt","LEVEL_UPDATED","_onLevelUpdated","LEVEL_SWITCH","_onLevelSwitch","FRAG_LOADED","_onHLSJSError","SUBTITLE_TRACK_LOADED","_onSubtitleLoaded","SUBTITLE_TRACKS_UPDATED","attachMedia","_recover","_recoveredDecodingError","recoverMediaError","_recoveredAudioCodecError","swapAudioCodec","_timeUpdateTimer","_stopTimeUpdateTimer","_duration","seekTo","seekToLivePoint","status","fatal","ErrorTypes","NETWORK_ERROR","details","ErrorDetails","MANIFEST_LOAD_ERROR","MANIFEST_LOAD_TIMEOUT","MANIFEST_PARSING_ERROR","LEVEL_LOAD_ERROR","LEVEL_LOAD_TIMEOUT","startLoad","MEDIA_ERROR","update","isSame","live","targetduration","startTimeChanged","durationChanged","fragments","previousPlayableRegionStartTime","previousPlayableRegionDuration","startTime","totalduration","fragmentTargetDuration","liveSyncDurationCount","DefaultConfig","hiddenAreaDuration","endTime","previousEndTime","endTimeChanged","isHls","isSupported","_onLoad","m","_noiseFrameNum","_started","playbackNotSupported","playbackNotSupportedMessage","showForNoOp","_animate","_noise","idata","createImageData","canvas","buffer32","Uint32Array","buffer","err","random","pow","putImageData","_stop","_animationHandle","getContext","SpinnerThreeBouncePlugin","showTimeout","onBufferFull","StatsPlugin","setInitialAttrs","reportInterval","onStatsAdd","firstPlay","startupTime","rebufferingTime","watchingTime","rebuffers","externalMetrics","watchingTimeInit","intervalId","report","startupTimeInit","rebufferingTimeInit","getRebufferingTime","getWatchingTime","totalTime","isRebuffering","metric","getStats","WaterMarkPlugin","watermark","imageUrl","imageLink","watermarkLink","hidden","templateOptions","PosterPlugin","showOnVideoEnd","hasStartedPlaying","playRequested","showPlayButton","$playButton","shouldHideOnPlay","shouldRender","isRegularPoster","custom","$playWrapper","GoogleAnalytics","gaAccount","account","trackerName","gaTrackerName","domainName","gaDomainName","currentHDState","embedScript","_gat","script","setAttribute","onload","body","onPlaybackChanged","CONTAINER_FULL_SCREEN","onFullscreen","onHD","onDVR","_gaq","playbackState","array","res","ClickToPausePlugin","click","pointerEnabled","DVRControls","containerChanged","dvrChanged","useDvrControls","backToLive","ClosedCaptions","config","closedCaptionsConfig","_title","title","_ariaLabel","ariaLabel","_labelCb","labelCallback","hideContextMenu","onSubtitleChanged","onContainerStop","ccAvailable","renderCcButton","setCurrentContextMenuElement","onTrackSelect","dataset","ccSelect","stopPropagation","hasCC","toggleContextMenu","toggle","contextMenuElement","isNaN","_trackId","$ccButton","disabledLabel","$fullscreen","prepend","oldIcon","Favicon","_container","changeFavicon","setPlayIcon","setPauseIcon","resetIcon","createIcon","svg","fillStyle","d","path","Path2D","fill","icon","toDataURL","playIcon","changeIcon","pauseIcon","SeekTime","mediaControlContainer","isLiveStreamWithDvr","useActualLiveTime","actualLiveTime","hoveringOverSeekBar","hoverPosition","actualLiveServerTime","actualLiveServerTimeDiff","getTime","showTime","hideTime","onContainerChanged","updateDuration","calculateHoverPosition","getSeekTime","secondsSinceMidnight","setHours","shouldBeVisible","currentSeekTime","displayedSeekTime","$seekTimeEl","durationShown","$durationEl","currentDuration","elWidth","elLeftPos","SourcesPlugin","onContainersCreated","firstValidSource","EndVideo","exitOnEnd","exitFullscreenOnEnd","Strings","_initializeMessages","_language","_messages","defaultMessages","strings","messages"],"mappings":"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AACD,G;;;;;AAGHP,YAAYE,OAAZ,GAAsB,EAAEE,cAAc,KAAhB,EAAtB;;kBAEe;AACblE,gBADa;AAEbxB,wBAFa;AAGbqC,0BAHa;AAIbiD,0BAJa;AAKbhH,gBALa;AAMbC,wBANa;AAObC,0CAPa;AAQbC,oBARa;AASbE,oCATa;AAUbD,oBAVa;AAWbyF,8CAXa;AAYbM,4CAZa;AAab7F,wCAba;AAcbC,UAda;AAebC;AAfa,C;;;;;;ACzQf;;;AAGA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC,iBAAiB,4GAA4G;AAC7H;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB;AACnB;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,0CAA0C,sBAAsB;AAC3F,2BAA2B;AAC3B,2BAA2B,oDAAoD,sCAAsC;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+CAA+C,oCAAoC;;AAE5G;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C,sCAAsC;AACrF;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf,YAAY;AACZ;;AAEA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,2CAA2C,4BAA4B;AACvE,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,oEAAoE,cAAc;AAClF;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,wBAAwB,oBAAoB;AAC5C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,wCAAwC,mCAAmC;AAC3E;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,0CAA0C,wBAAwB;AAClE,KAAK;AACL;AACA,kCAAkC,6DAA6D;AAC/F,KAAK;AACL;AACA;AACA,oEAAoE,oBAAoB;AACxF,OAAO;AACP,KAAK;AACL;AACA,kCAAkC,sBAAsB;AACxD,KAAK;AACL;AACA;AACA,sCAAsC,sBAAsB;AAC5D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA,iCAAiC,8BAA8B;AAC/D,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL,6BAA6B,yEAAyE;AACtG,6BAA6B,qEAAqE;AAClG;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,kCAAkC;AAClC;AACA,OAAO,QAAQ;AACf,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,kCAAkC,oBAAoB;AACtD,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,uDAAuD,uBAAuB;AAC9E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,iDAAiD;AAChF;AACA;AACA,OAAO;AACP;AACA;AACA,iCAAiC,4CAA4C;AAC7E;AACA,6EAA6E;AAC7E;;AAEA,kCAAkC,yBAAyB,SAAS;AACpE,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C,mBAAmB,qCAAqC;AACxD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C,mBAAmB,qCAAqC;AACxD,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oEAAoE,kBAAkB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA,yCAAyC,4BAA4B;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,aAAa,eAAe;;AAE5B;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,IAAI;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,EAAE;AACrB,2CAA2C,8CAA8C;AACzF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;;AAEzB;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,CAAC;AACD;;AAEA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D,2CAA2C,iBAAiB;AAC5D,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf;AACA,aAAa;AACb,WAAW;;AAEX;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,CAAC;AACD;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D,mBAAmB;AACnB,sBAAsB;AACtB;AACA,eAAe,qCAAqC;AACpD,eAAe;;AAEf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA,aAAa;;AAEb;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,YAAY;AAC1C,+BAA+B,aAAa;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,yCAAyC;AACnF;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED,CAAC;AACD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,CAAC;;AAED,CAAC;AACD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iCAAiC;AAC1D,yBAAyB,kCAAkC;AAC3D,yBAAyB,iCAAiC;AAC1D,yBAAyB,gCAAgC;AACzD,yBAAyB,yBAAyB;AAClD,4BAA4B,6BAA6B;AACzD,mCAAmC,4CAA4C;AAC/E,sCAAsC,iCAAiC;AACvE,qCAAqC,qDAAqD;AAC1F,oCAAoC;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,+CAA+C,uCAAuC;AACtF,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;;;;;;;ACj4DA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,IAAI;AACJ;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;;AAElE;AACA;;;;;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAIkH,WAAW;AACbC,YAAc,iBADD;AAEbC,eAAc,kBAFD;AAGbC,UAAc;AAHD,CAAf;;AAMA;AACA;AACA;AACA,IAAIC,UAAU,MAAd;;AAEA;AACA;AACA,IAAIC,UAAU;AACZ,QAAW,IADC;AAEZ,QAAU,IAFE;AAGZ,QAAU,GAHE;AAIZ,QAAU,GAJE;AAKZ,QAAU,GALE;AAMZ,YAAU,OANE;AAOZ,YAAU;AAPE,CAAd;;AAUA,IAAIC,UAAU,8BAAd;;AAEA;AACA,IAAIC,eAAe;AACjB,OAAK,OADY;AAEjB,OAAK,MAFY;AAGjB,OAAK,MAHY;AAIjB,OAAK,QAJY;AAKjB,QAAM;AALW,CAAnB;;AAQA,IAAIC,WAAW,IAAIC,MAAJ,CAAW,UAAX,EAAuB,GAAvB,CAAf;;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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,mBAAmB,2BAA2B;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;;AAEA,QAAQ,uBAAuB;AAC/B;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,kDAAkD,sBAAsB;AACxE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA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CAASyH,IAAT;AACA,SAAKhB,OAAL,GAAe,KAAf;AACD,G;;yBAEDhE,O,sBAAU;AACR,SAAK9Q,MAAL;AACD,G;;yBAEDwP,M,qBAAS;AACP,WAAO,IAAP;AACD,G;;;;;kBAjCkBwG,Y;;;AAoCrBA,aAAalP,MAAb,GAAsB,UAASc,UAAT,EAAqB;AACzC,SAAO,mBAAOoO,YAAP,EAAqBpO,UAArB,CAAP;AACD,CAFD;;AAIAoO,aAAa1E,IAAb,GAAoB,MAApB;;;;;;;AC3CA;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA;AACA;AACA,E;;;;;;ACJA,iBAAiB;;AAEjB;AACA;AACA,E;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACLA;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA,mDAAmD;AACnD;AACA,uCAAuC;AACvC,E;;;;;;ACLA;AACA;AACA;AACA,a;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACXA,sB;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;ACxCA;AACA;AACA;;AAEA;AACA,kEAAkE,+BAA+B;AACjG,E;;;;;;ACNA,oC;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,sBAAsB;AAChF,gFAAgF,sBAAsB;AACtG,E;;;;;;ACRA,cAAc,sB;;;;;;ACAd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,UAAU;AACb;AACA,E;;;;;;;;;;;;;ACfA;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;kBAEe,EAAE2E,oBAAF,E;;;;;;;ACFf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;ACnLtC,iK;;;;;;;;;;;;kBCAe,mBAAAC,CAAQ,GAAR,C;;;;;;;ACAf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AChBA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,E;;;;;;ACLA;AACA;AACA;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AA1B;AAAA,KAAf,EAA+C,CAA/C,CAAP;AACD,G;;AAED;;;;;;;mBAKA4d,c,6BAAiB;AACf,WAAO,KAAKlG,IAAL,CAAUgD,YAAV,CAAuBjC,SAAvB,CAAiCmF,cAAjC,EAAP;AACD,G;;AAED;;;;;;;;;mBAOAvK,kB,iCAAqB;AACnB,WAAO,KAAKqE,IAAL,CAAUgD,YAAV,CAAuBjC,SAAvB,CAAiCpF,kBAAjC,EAAP;AACD,G;;AAED;;;;;;;mBAKAC,W,0BAAc;AACZ,WAAO,KAAKoE,IAAL,CAAUgD,YAAV,CAAuBjC,SAAvB,CAAiCnF,WAAjC,EAAP;AACD,G;;;;;kBAtgBkBgG,M;;;;;;;ACxCrB;AACA,qD;;;;;;ACDA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;ACRD;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,WAAW,eAAe;AAC/B;AACA,KAAK;AACL;AACA,E;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACNA;AACA;AACA;AACA,E;;;;;;ACHA,kBAAkB,wD;;;;;;ACAlB;AACA;AACA,uD;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;AChBA;AACA;AACA;AACA;AACA;;AAEA;AACA,2FAAgF,aAAa,EAAE;;AAE/F;AACA,qDAAqD,0BAA0B;AAC/E;AACA,E;;;;;;ACZA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACZA,8E;;;;;;ACAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,E;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEA,wGAAwG,OAAO;AAC/G;AACA;AACA;AACA;AACA;AACA,C;;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,cAAc;AACd,iBAAiB;AACjB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,4B;;;;;;ACjCA,4BAA4B,e;;;;;;ACA5B;AACA,UAAU;AACV,E;;;;;;ACFA,kBAAkB,yD;;;;;;ACAlB;AACA;AACA;AACA;AACA,gD;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,oBAAoB,uBAAuB,SAAS,IAAI;AACxD,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA,KAAK;AACL;AACA,sBAAsB,iCAAiC;AACvD,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,8BAA8B;AAC5F;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAA0D,gBAAgB;;AAE1E;AACA;AACA;AACA,oBAAoB,oBAAoB;;AAExC,0CAA0C,oBAAoB;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,wBAAwB,eAAe,EAAE;AACzC,wBAAwB,gBAAgB;AACxC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,KAAK,QAAQ,iCAAiC;AAClG,CAAC;AACD;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0C;;;;;;AC1OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,E;;;;;;ACdA;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AClBA,yC;;;;;;ACAA,sC;;;;;;ACAA;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA,qEAAuE,0CAA0C,E;;;;;;ACFjH,kBAAkB,yD;;;;;;ACAlB;AACA,+D;;;;;;ACDA;AACA;AACA,8BAA8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,CADP;AAED,CAHD;;;;;;;;AC1jBA;AACA;AACA,oD;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yEAA0E,kBAAkB,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gCAAgC;AACpF;AACA;AACA,KAAK;AACL;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACpCD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,E;;;;;;ACXA;AACA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;;ACPA;AACA;AACA;;AAEA;AACA;AACA;AACA,E;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACPA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB,EAAE;;AAE7C;AACA;AACA;AACA;AACA,GAAG,UAAU;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACtBA;AACA;;AAEA;AACA;AACA,+BAA+B,qBAAqB;AACpD,+BAA+B,SAAS,EAAE;AAC1C,CAAC,UAAU;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS,mBAAmB;AACvD,+BAA+B,aAAa;AAC5C;AACA,GAAG,UAAU;AACb;AACA,E;;;;;;ACpBA,oCAAoC,mBAAmB,OAAO,0LAA0L,O;;;;;;ACAxP;;AAEA;AACA;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;ACzBA;AACA;;;AAGA;AACA,6CAA8C,uBAAuB,iBAAiB,gBAAgB,mBAAmB,EAAE;;AAE3H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA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ACA;AACA;AACA;AACA,8DAA8D,+DAA+D;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA,2FAA2F,mBAAmB,EAAE;AAChH,2FAA2F,eAAe,EAAE;AAC5G,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qEAAqE,aAAa;AAClF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6FAA6F,eAAe;AAC5G;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;AACA;AACA,qEAAqE;AACrE;AACA,oFAAoF;AACpF;AACA,oEAAoE;AACpE;AACA,0EAA0E;AAC1E;AACA,wDAAwD;AACxD;AACA,wFAAwF,UAAU;AAClG;AACA,yDAAyD;AACzD;AACA,2DAA2D;AAC3D;AACA,mFAAmF;AACnF;AACA,uHAAuH;AACvH;AACA,2DAA2D;AAC3D;AACA,2DAA2D;AAC3D;AACA,6DAA6D;AAC7D;AACA,mDAAmD,2GAA2G;AAC9J;AACA,mDAAmD;AACnD;AACA,qDAAqD,0BAA0B;AAC/E;AACA,qDAAqD;AACrD;AACA,qDAAqD;AACrD;AACA,yDAAyD;AACzD;AACA,2DAA2D,qEAAqE,gCAAgC;AAChK;AACA,iHAAiH;AACjH;AACA,6FAA6F;AAC7F;AACA,sEAAsE;AACtE;AACA,sDAAsD,sBAAsB;AAC5E;AACA,+DAA+D;AAC/D;AACA,+DAA+D;AAC/D;AACA,uDAAuD;AACvD;AACA,yDAAyD,8DAA8D,iCAAiC;AACxJ;AACA,yEAAyE;AACzE;AACA,yDAAyD;AACzD;AACA,yDAAyD;AACzD;AACA,2DAA2D,iEAAiE,iCAAiC;AAC7J;AACA,gEAAgE;AAChE;AACA,sDAAsD;AACtD;AACA,mDAAmD;AACnD;AACA,2DAA2D,0BAA0B,2BAA2B;AAChH;AACA,8EAA8E;AAC9E;AACA,yDAAyD,8DAA8D,kCAAkC;AACzJ;AACA,4DAA4D,8EAA8E,mBAAmB;AAC7J;AACA,uEAAuE;AACvE;AACA,uDAAuD;AACvD;AACA,kDAAkD;AAClD;AACA,gEAAgE;AAChE;AACA,uDAAuD;AACvD;AACA,6FAA6F,mDAAmD,kEAAkE;AAClN;AACA,oFAAoF;AACpF;AACA,8CAA8C;AAC9C;AACA,iEAAiE;AACjE;AACA,4CAA4C;AAC5C;AACA,qMAAqM;AACrM;AACA,sDAAsD;AACtD;AACA,4DAA4D,yDAAyD,kCAAkC;AACvJ;AACA,6DAA6D;AAC7D;AACA,CAAC;;AAED,OAAO;AACP;AACA;;AAEA;AACA,2FAA2F,mBAAmB,EAAE;AAChH,2FAA2F,qBAAqB,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD,+BAA+B;AAClF;AACA,qDAAqD,+BAA+B;AACpF;AACA,sDAAsD;AACtD;AACA,4EAA4E;AAC5E;AACA,gDAAgD,+BAA+B;AAC/E;AACA,kDAAkD,+BAA+B;AACjF;AACA,kDAAkD;AAClD;AACA,uDAAuD,+BAA+B;AACtF;AACA,yDAAyD,+BAA+B;AACxF;AACA,iDAAiD,qCAAqC;AACtF;AACA,yDAAyD;AACzD;AACA,yDAAyD;AACzD;AACA,+DAA+D;AAC/D;AACA,4DAA4D;AAC5D;AACA;AACA,uDAAuD;AACvD;AACA,oDAAoD,qCAAqC;AACzF;AACA,4DAA4D;AAC5D;AACA,6FAA6F;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;AACA,2FAA2F,uBAAuB,EAAE;AACpH,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,WAAW;AACxB,aAAa,OAAO;AACpB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,WAAW;AACxB,aAAa,OAAO;AACpB,cAAc,QAAQ;AACtB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,WAAW;AACxB,aAAa,OAAO;AACpB,cAAc,WAAW;AACzB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,WAAW;AACxB,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,UAAU;AACvB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA,aAAa,WAAW;AACxB,cAAc,YAAY;AAC1B;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf,eAAe,YAAY,GAAG;AAC9B;AACA;AACA;;AAEA;AACA;;AAEA,cAAc;AACd,KAAK;AACL;AACA;AACA,eAAe;AACf,eAAe;AACf;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf,eAAe,YAAY,GAAG;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc;AACd,KAAK;AACL;AACA;AACA,eAAe;AACf;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;;;;AAIA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gCAAgC,kCAAkC;AAClE;;AAEA;AACA,CAAC;;AAED;AACA;AACA,8DAA8D,0CAA0C,0DAA0D,EAAE;;AAEpK;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mDAAmD,kBAAkB;AACrE;;AAEA;AACA,CAAC;;AAED;AACA;AACA,+DAA+D,0CAA0C,0DAA0D,EAAE;;AAErK;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA,eAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2DAA2D,0CAA0C,0DAA0D,EAAE;;;;;;;;;AASjK;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,0CAA0C,+IAA+I;AACzL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA,iB;AACA;;AAEA,6BAA6B,mBAAmB,eAAe;AAC/D,oCAAoC;AACpC;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB,EAAE;AAChD;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uLAAuL;AAC1N;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,oBAAoB,GAAG,YAAY,GAAG,gBAAgB,GAAG,sBAAsB;AACtI,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAuD,oBAAoB,GAAG,YAAY,GAAG,gBAAgB,GAAG,sBAAsB;AACtI;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,wCAAwC;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA,yBAAyB,wCAAwC;AACjE;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,+BAA+B,cAAc,GAAG,6CAA6C,GAAG,cAAc;AAC9G;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,4DAA4D,0CAA0C,0DAA0D,EAAE;;AAElK;AACA;AACA;;;;AAIA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,OAAO;AACP;AACA,0BAA0B;AAC1B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,kFAAkF,iBAAiB;AACnG,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,0DAA0D;AACzF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB,SAAS;AAC5B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,wBAAwB,wCAAwC;AAChE,SAAS;AACT;AACA,2CAA2C,wCAAwC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,cAAc,OAAO;AACrB;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B,cAAc,OAAO;AACrB;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,mBAAmB;AAC1F;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;;AAEA,oBAAoB;AACpB;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;;AAEA,oBAAoB;AACpB;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4DAA4D,0CAA0C,0DAA0D,EAAE;;AAElK;AACA;AACA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,2BAA2B;AAC3B;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;;AAGA;AACA,yBAAyB;AACzB,8BAA8B,uCAAuC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;;AAGA;AACA,4BAA4B;AAC5B;AACA;;AAEA;;;AAGA;AACA,8BAA8B;AAC9B;AACA;AACA,4BAA4B;AAC5B,KAAK;AACL,+BAA+B;AAC/B;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,cAAc,OAAO;AACrB;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B,gCAAgC;AAChC,gBAAgB;AAChB,2BAA2B;AAC3B,cAAc;AACd;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,gBAAgB;AAChB,gBAAgB;AAChB,kBAAkB;AAClB;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,gBAAgB;AAChB,KAAK;AACL,kBAAkB;AAClB,eAAe;AACf,eAAe;AACf;AACA,iBAAiB,oCAAoC;AACrD,iBAAiB;AACjB;AACA;AACA,cAAc;AACd,gBAAgB;AAChB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,kCAAkC;AAClC;AACA,kCAAkC;AAClC;AACA,kCAAkC;AAClC;AACA,kCAAkC;AAClC;AACA,kCAAkC;AAClC;AACA,kCAAkC;AAClC;AACA,kCAAkC;AAClC;AACA,kCAAkC;AAClC;AACA,kCAAkC;AAClC;AACA,kCAAkC;AAClC;AACA,kCAAkC;AAClC;AACA,mCAAmC;AACnC;AACA,gCAAgC;AAChC;AACA,gCAAgC;AAChC;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,4DAA4D,0CAA0C,0DAA0D,EAAE;;AAElK;AACA;AACA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA,2BAA2B,qCAAqC;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,sCAAsC;AAClE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,2DAA2D,0CAA0C,0DAA0D,EAAE;;AAEjK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,gEAAgE,wKAAwK;AACxO;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;;AAEA,2EAA2E,0CAA0C;AACrH;AACA;AACA;AACA;AACA,aAAa;AACb,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,kBAAkB;AAClB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA,iDAAiD,kBAAkB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,8DAA8D,2IAA2I;AACzM;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6BAA6B;AACvD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,WAAW;AACxD,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,4DAA4D,0CAA0C,0DAA0D,EAAE;;AAElK;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,iBAAiB;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,oCAAoC;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA,yBAAyB,wCAAwC;AACjE;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,+BAA+B,cAAc,GAAG,6CAA6C,GAAG,cAAc;AAC9G;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,qDAAqD,0CAA0C,0DAA0D,EAAE;;AAE3J;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,+DAA+D,0CAA0C,0DAA0D,EAAE;;AAErK;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;;AAE7B,0DAA0D;AAC1D,sDAAsD;AACtD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAkC,MAAM;AACxC;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA,yDAAyD;AACzD;;AAEA;AACA,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2EAA2E,uBAAuB;AAClG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,OAAO;AAC1B,cAAc,WAAW;AACzB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,6DAA6D,0CAA0C,0DAA0D,EAAE;;AAEnK;AACA;AACA;;;;;;;;AAQA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,mBAAmB;AAC5F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,yDAAyD,mKAAmK;AAC5N;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,0BAA0B;AAChD;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,8DAA8D,2LAA2L;AACzP;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oHAAoH;AACpH,aAAa;AACb;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA,sEAAsE,cAAc,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,sCAAsC;AAC/K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C;AAC/C;;AAEA;AACA;AACA,6CAA6C,yBAAyB;AACtE;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,aAAa;AACxC;AACA;AACA;AACA,+FAA+F;AAC/F;AACA;AACA,yCAAyC,gDAAgD;AACzF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,kDAAkD,wCAAwC,UAAU,qBAAqB,cAAc,gCAAgC;AACvK;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAuD,kBAAkB;AACzE;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,oEAAoE,2LAA2L;AAC/P;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yBAAyB,wBAAwB;AACjD;AACA;AACA,2FAA2F;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,gBAAgB,GAAG,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,wCAAwC;AACrL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,eAAe;AAClC;AACA,oBAAoB,4CAA4C;AAChE;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,qEAAqE,0CAA0C,0DAA0D,EAAE;;AAE3K;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,gEAAgE,0CAA0C,0DAA0D,EAAE;;AAEtK;AACA;AACA;;;;;;;;;;;;AAYA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,8EAA8E,SAAS,uCAAuC,EAAE;AAChI;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uCAAuC,GAAG,gDAAgD,GAAG,wCAAwC,GAAG,wCAAwC;;AAExM;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,0KAA0K;AACrO;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA;;AAEA;AACA,0DAA0D,cAAc;AACxE;AACA,kEAAkE,eAAe,EAAE;;AAEnF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;;;;;;AAMA;AACA;AACA;;AAEA;AACA;;AAEA,wFAAwF,aAAa;AACrG;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,yDAAyD,mJAAmJ;AAC5M;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,2DAA2D,0CAA0C,0DAA0D,EAAE;;AAEjK;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,4BAA4B;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iEAAiE;AACjE;;;AAGA;AACA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e,iEAAiE,0CAA0C,0DAA0D,EAAE;;AAEvK;AACA;AACA;;;;;;;;;;AAUA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uFAAuF,wBAAwB;AAC/G;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;;AAEA,oBAAoB,QAAQ;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uFAAuF,wBAAwB;AAC/G;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,mBAAmB;AAC5C;;AAEA;AACA,yBAAyB,gDAAgD;AACzE;;AAEA;AACA,yBAAyB,kCAAkC;AAC3D;;AAEA;AACA,yBAAyB,qCAAqC;AAC9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB,uBAAuB;AACvB;AACA;;AAEA;AACA,iEAAiE,wBAAwB;AACzF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,iFAAiF;AAClG;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,WAAW,kCAAkC,4EAA4E;AAC3L;AACA;AACA;AACA;AACA,iEAAiE,sGAAsG;AACvK,WAAW;AACX;AACA,yEAAyE,8EAA8E;AACvJ,aAAa;AACb,4EAA4E,8EAA8E;AAC1J;AACA;AACA,SAAS;AACT,wDAAwD,4MAA4M;AACpQ;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,oBAAoB;AACpB,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,mCAAmC,6BAA6B;AAChE;AACA;AACA,kEAAkE,yHAAyH;AAC3L,SAAS;AACT,wDAAwD,gNAAgN;AACxQ;AACA;AACA,KAAK;AACL,oDAAoD,yMAAyM;AAC7P;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,0LAA0L;AACjP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sKAAsK;AAC7N;;AAEA;AACA,CAAC;;AAED;AACA;AACA,iEAAiE,0CAA0C,0DAA0D,EAAE;;AAEvK,iEAAiE,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9P,0DAA0D,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5f;AACA;AACA;;;;;;;AAOA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,uBAAuB;AACvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D,6EAA6E;AAC1I;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uDAAuD,kMAAkM;AACzP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gLAAgL;AACvO;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA,oEAAoE,2DAA2D;AAC/H;;AAEA;AACA,CAAC;;AAED;AACA;AACA,4DAA4D,0CAA0C,0DAA0D,EAAE;;AAElK,4DAA4D,aAAa,uFAAuF,EAAE,uFAAuF;;AAEzP,qDAAqD,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAEvf;AACA;AACA;;;;;;;AAOA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB,sBAAsB;AACtB,yBAAyB;AACzB;AACA,KAAK;AACL;AACA;AACA,8DAA8D,aAAa;AAC3E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,aAAa;AACzE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,yJAAyJ;AAChN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,uIAAuI;AAC9L;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC,yBAAyB,mDAAmD;AAC5E;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,YAAY;AACZ,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,6DAA6D,sBAAsB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,0CAA0C,0DAA0D,EAAE;;;;;;;;;;AAU/J;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,aAAa;AACrG;AACA;;AAEA;AACA;;AAEA;AACA,4FAA4F,eAAe;AAC3G;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,wJAAwJ,4EAA4E,EAAE;AAC9R;AACA,uBAAuB,oGAAoG;AAC3H,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mUAAmU;AACxV,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;;AAEA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA,6EAA6E,oBAAoB,GAAG,kBAAkB;;AAEtH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,yBAAyB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;AAIA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEnkB,mEAAmE,0CAA0C,0DAA0D,EAAE;;AAEzK,mEAAmE,aAAa,uFAAuF,EAAE,uFAAuF;;AAEhQ,4DAA4D,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE9f;AACA;AACA;;;;;;;;;;;;;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,6CAA6C,iBAAiB,GAAG,eAAe,GAAG,qBAAqB,GAAG,mBAAmB;AAC9H;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,MAAM,GAAG,aAAa,GAAG,gBAAgB,GAAG,qCAAqC,GAAG,UAAU;AAC9I;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0DAA0D,aAAa;AACvE,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,4IAA4I;AACpM;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,aAAa;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,oBAAoB;AACxF;AACA;AACA,wEAAwE,0BAA0B;AAClG;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,+DAA+D,yCAAyC;;AAExG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,8CAA8C;AACjH;AACA,OAAO;AACP;AACA;AACA;AACA,mEAAmE,8CAA8C;AACjH;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,6EAA6E;AACrJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA,gEAAgE,mHAAmH;;AAEnL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,iEAAiE;AACpI;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,qEAAqE;AACnI,mEAAmE,cAAc;AACjF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mEAAmE,uCAAuC;AAC1G;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,gJAAgJ;AAChN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,iLAAiL;AACjP;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,gEAAgE,gJAAgJ;AAChN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,8HAA8H;AAC9L,iBAAiB;AACjB;AACA,gEAAgE,4HAA4H;AAC5L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,qDAAqD;AAClI;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA,iDAAiD,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAElkB,kEAAkE,0CAA0C,0DAA0D,EAAE;;AAExK,kEAAkE,aAAa,uFAAuF,EAAE,uFAAuF;;AAE/P,2DAA2D,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE7f;AACA;AACA;;;;;;;;AAQA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,oDAAoD;AAClH;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mEAAmE,wEAAwE;AAC3I;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,sEAAsE,0CAA0C,0DAA0D,EAAE;;AAE5K,sEAAsE,aAAa,uFAAuF,EAAE,uFAAuF;;AAEnQ,+DAA+D,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAEjgB;AACA;AACA;;;;;;AAMA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA,mIAAmI;;AAEnI;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0CAA0C,0DAA0D,EAAE;;AAE5J;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,0EAA0E,0CAA0C,0DAA0D,EAAE;;AAEhL;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,+CAA+C,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEhkB,gEAAgE,0CAA0C,0DAA0D,EAAE;;AAEtK,gEAAgE,aAAa,uFAAuF,EAAE,uFAAuF;;AAE7P,yDAAyD,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE3f;AACA;AACA;AACA;AACA;;;;;;;;;AASA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,8BAA8B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+MAA+M;AAC/M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,2BAA2B;AAC3G;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAiE;AACjE;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA,mEAAmE,0CAA0C,0DAA0D,EAAE;;AAEzK,mEAAmE,aAAa,uFAAuF,EAAE,uFAAuF;;AAEhQ,4DAA4D,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE9f;AACA;AACA;;;;;;;;AAQA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gEAAgE,oBAAoB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,iEAAiE,mCAAmC;;AAEpG;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uDAAuD,+HAA+H;AACtL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,SAAS;AACT;AACA,6DAA6D,6JAA6J;AAC1N;AACA;AACA;AACA,gEAAgE,iBAAiB;AACjF;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uDAAuD,+HAA+H;AACtL;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,gEAAgE;AAC1F;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB,GAAG,KAAK,YAAY,oBAAoB,IAAI,eAAe;AACnH;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAwB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,qDAAqD,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEtkB,sEAAsE,0CAA0C,0DAA0D,EAAE;;AAE5K,sEAAsE,aAAa,uFAAuF,EAAE,uFAAuF;;AAEnQ,+DAA+D,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAEjgB;AACA;AACA;;;;;AAKA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA,gEAAgE,0CAA0C,0DAA0D,EAAE;;AAEtK,gEAAgE,aAAa,uFAAuF,EAAE,uFAAuF;;AAE7P,yDAAyD,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE3f;AACA;AACA;;;;;;AAMA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,oGAAoG;AAC7J;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,sDAAsD;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,4DAA4D,0CAA0C,0DAA0D,EAAE;;AAElK;AACA;AACA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,8BAA8B,oCAAoC;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,SAAS;AACT;AACA;AACA;AACA,oCAAoC,qCAAqC;AACzE,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,uDAAuD,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAExkB,wEAAwE,0CAA0C,0DAA0D,EAAE;;AAE9K,wEAAwE,aAAa,uFAAuF,EAAE,uFAAuF;;AAErQ,iEAAiE,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAEngB;AACA;AACA;;;;;;;AAOA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sEAAsE,sBAAsB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,sBAAsB;AAC1F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,sBAAsB;AAC/F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA,wDAAwD,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEzkB,yEAAyE,0CAA0C,0DAA0D,EAAE;;AAE/K,yEAAyE,aAAa,uFAAuF,EAAE,uFAAuF;;AAEtQ,kEAAkE,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAEpgB;AACA;AACA;;;;;;;;;;;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,gBAAgB;AACtF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,MAAM,GAAG,aAAa,GAAG,gBAAgB,GAAG,qCAAqC,GAAG,UAAU;AACxJ;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,aAAa;AAC/E,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,4IAA4I;AAC5M;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mEAAmE,+CAA+C;AAClH;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,qEAAqE;AACzI;AACA;AACA;AACA,yEAAyE,cAAc;AACvF;AACA,SAAS;AACT;AACA;AACA,uEAAuE,cAAc;AACrF;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B,kEAAkE;AAChG;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,wCAAwC;AACtG;AACA;AACA;AACA;AACA,uEAAuE,mBAAmB;AAC1F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,qEAAqE;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,sBAAsB;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL,uDAAuD;AACvD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,mDAAmD;AACnD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,gDAAgD;AAChD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;;AAEL,kDAAkD;AAClD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;;AAEL,oDAAoD;AACpD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,uDAAuD;AACvD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;;AAEL,gDAAgD;AAChD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,oDAAoD;AACpD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,yDAAyD;AACzD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,gDAAgD;AAChD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,iDAAiD;AACjD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kCAAkC,EAAE,MAAM,EAAE,QAAQ,EAAE;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gDAAgD,eAAe;AAC/D;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,+BAA+B;AAChD;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,0CAA0C,0DAA0D,EAAE;;AAEtK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB,mBAAmB;AACnB,kBAAkB;AAClB,mBAAmB;;AAEnB;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,wEAAwE;AAC5F;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA,kCAAkC;AAClC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA,sCAAsC,gBAAgB;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,aAAa;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA,uBAAuB,aAAa;AACpC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,aAAa;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wBAAwB;AAC5D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA;AACA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB;AACxB;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,OAAO;AACxB;;;AAGA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,+DAA+D,0CAA0C,0DAA0D,EAAE;;AAErK;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA,qEAAqE,0CAA0C,0DAA0D,EAAE;;AAE3K,qEAAqE,aAAa,uFAAuF,EAAE,uFAAuF;;AAElQ,8DAA8D,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAEhgB;AACA;AACA;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C;;;AAG5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA,mBAAmB,sCAAsC;AACzD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,+EAA+E,6BAA6B;AAC5G;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,sEAAsE,4BAA4B;AAClG,KAAK;AACL;AACA;AACA,sEAAsE,6BAA6B;AACnG,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,0DAA0D,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAE3kB,2EAA2E,0CAA0C,0DAA0D,EAAE;;AAEjL,2EAA2E,aAAa,uFAAuF,EAAE,uFAAuF;;AAExQ,oEAAoE,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAEtgB;AACA;AACA;;;;;;AAMA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,yEAAyE,yBAAyB;;AAElG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0EAA0E,sCAAsC;AAChH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uEAAuE,YAAY;;AAEnF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0EAA0E,oCAAoC;AAC9G;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,4EAA4E,0CAA0C,0DAA0D,EAAE;;AAElL,4EAA4E,aAAa,uFAAuF,EAAE,uFAAuF;;AAEzQ,qEAAqE,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAEvgB;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;;AAGA;AACA;AACA;AACA;AACA,gEAAgE,aAAa;AAC7E;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,aAAa;AACtF,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,iEAAiE,mDAAmD,uCAAuC,EAAE;AAC7J,SAAS;AACT;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;;;;;;AAOA;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,uCAAuC;AACvC,uDAAuD;AACvD,yDAAyD;AACzD,uDAAuD;AACvD,yDAAyD;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAErjB,qDAAqD,0CAA0C,0DAA0D,EAAE;;AAE3J;AACA;AACA;;;;;;;;;;;;;;;;;AAiBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,aAAa;AACrG;AACA;;AAEA;AACA;;AAEA;AACA,4FAA4F,eAAe;AAC3G;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6DAA6D,eAAe;AAC5E;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,6EAA6E,wBAAwB;AACrG;AACA;AACA;AACA,8DAA8D,WAAW;AACzE;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mDAAmD,cAAc;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA,qCAAqC,0BAA0B,EAAE;AACjE,2CAA2C,eAAe;AAC1D;AACA;AACA;;AAEA;AACA,8DAA8D,+DAA+D;;AAE7H;AACA;;AAEA;AACA,kDAAkD,oBAAoB,WAAW;;AAEjF;AACA;AACA;;AAEA;AACA;AACA,6CAA6C;AAC7C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0GAA0G,uCAAuC,iEAAiE,gBAAgB,QAAQ;;AAE1O,qCAAqC,0BAA0B;AAC/D,qBAAqB;;AAErB;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA,0DAA0D,cAAc;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA,sFAAsF,aAAa;AACnG;AACA;;AAEA;AACA;;AAEA;AACA,0FAA0F,eAAe;AACzG;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB,wBAAwB;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AAC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","file":"clappr.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Clappr\"] = factory();\n\telse\n\t\troot[\"Clappr\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 88);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1bb32f9839b547afcca4","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/classCallCheck.js\n// module id = 0\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/possibleConstructorReturn.js\n// module id = 1\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/inherits.js\n// module id = 2\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/createClass.js\n// module id = 3\n// module chunks = 0","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Log from '../plugins/log'\nimport { uniqueId } from './utils'\n\nconst slice = Array.prototype.slice\n\nconst eventSplitter = /\\s+/\n\nconst eventsApi = function(obj, action, name, rest) {\n if (!name) return true\n\n // Handle event maps.\n if (typeof name === 'object') {\n for (const key in name)\n obj[action].apply(obj, [key, name[key]].concat(rest))\n\n return false\n }\n\n // Handle space separated event names.\n if (eventSplitter.test(name)) {\n const names = name.split(eventSplitter)\n for (let i = 0, l = names.length; i < l; i++)\n obj[action].apply(obj, [names[i]].concat(rest))\n\n return false\n }\n\n return true\n}\n\nconst triggerEvents = function(events, args, klass, name) {\n let ev, i = -1\n const l = events.length, a1 = args[0], a2 = args[1], a3 = args[2]\n run()\n\n function run() {\n try {\n switch (args.length) {\n /* eslint-disable curly */\n case 0: while (++i < l) { (ev = events[i]).callback.call(ev.ctx) } return\n case 1: while (++i < l) { (ev = events[i]).callback.call(ev.ctx, a1) } return\n case 2: while (++i < l) { (ev = events[i]).callback.call(ev.ctx, a1, a2) } return\n case 3: while (++i < l) { (ev = events[i]).callback.call(ev.ctx, a1, a2, a3) } return\n default: while (++i < l) { (ev = events[i]).callback.apply(ev.ctx, args) } return\n }\n } catch (exception) {\n Log.error.apply(Log, [klass, 'error on event', name, 'trigger','-', exception])\n run()\n }\n }\n}\n\n/**\n * @class Events\n * @constructor\n * @module base\n */\nexport default class Events {\n /**\n * listen to an event indefinitely, if you want to stop you need to call `off`\n * @method on\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n */\n on(name, callback, context) {\n if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this\n this._events || (this._events = {})\n const events = this._events[name] || (this._events[name] = [])\n events.push({ callback: callback, context: context, ctx: context || this })\n return this\n }\n\n /**\n * listen to an event only once\n * @method once\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n */\n once(name, callback, context) {\n let once\n if (!eventsApi(this, 'once', name, [callback, context]) || !callback) return this\n const off = () => this.off(name, once)\n once = function() {\n off(name, once)\n callback.apply(this, arguments)\n }\n return this.on(name, once, context)\n }\n\n /**\n * stop listening to an event\n * @method off\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n */\n off(name, callback, context) {\n let retain, ev, events, names, i, l, j, k\n if (!this._events || !eventsApi(this, 'off', name, [callback, context])) return this\n if (!name && !callback && !context) {\n this._events = void 0\n return this\n }\n names = name ? [name] : Object.keys(this._events)\n // jshint maxdepth:5\n for (i = 0, l = names.length; i < l; i++) {\n name = names[i]\n events = this._events[name]\n if (events) {\n this._events[name] = retain = []\n if (callback || context) {\n for (j = 0, k = events.length; j < k; j++) {\n ev = events[j]\n if ((callback && callback !== ev.callback && callback !== ev.callback._callback) ||\n (context && context !== ev.context))\n retain.push(ev)\n\n }\n }\n if (!retain.length) delete this._events[name]\n }\n }\n return this\n }\n\n /**\n * triggers an event given its `name`\n * @method trigger\n * @param {String} name\n */\n trigger(name) {\n const klass = this.name || this.constructor.name\n Log.debug.apply(Log, [klass].concat(Array.prototype.slice.call(arguments)))\n if (!this._events) return this\n const args = slice.call(arguments, 1)\n if (!eventsApi(this, 'trigger', name, args)) return this\n const events = this._events[name]\n const allEvents = this._events.all\n if (events) triggerEvents(events, args, klass, name)\n if (allEvents) triggerEvents(allEvents, arguments, klass, name)\n return this\n }\n\n /**\n * stop listening an event for a given object\n * @method stopListening\n * @param {Object} obj\n * @param {String} name\n * @param {Function} callback\n */\n stopListening(obj, name, callback) {\n let listeningTo = this._listeningTo\n if (!listeningTo) return this\n const remove = !name && !callback\n if (!callback && typeof name === 'object') callback = this\n if (obj) (listeningTo = {})[obj._listenId] = obj\n for (const id in listeningTo) {\n obj = listeningTo[id]\n obj.off(name, callback, this)\n if (remove || Object.keys(obj._events).length === 0) delete this._listeningTo[id]\n }\n return this\n }\n\n static register(eventName) {\n Events.Custom || (Events.Custom = {})\n let property = typeof eventName === 'string' && eventName.toUpperCase().trim()\n\n if(property && !Events.Custom[property]) {\n Events.Custom[property] = property.toLowerCase().split('_').map(\n (value, index) => index === 0 ? value : value = (value[0].toUpperCase() + value.slice(1))\n ).join('')\n } else\n Log.error('Events', 'Error when register event: ' + eventName)\n\n }\n\n static listAvailableCustomEvents() {\n Events.Custom || (Events.Custom = {})\n return Object.keys(Events.Custom).filter((property) => typeof Events.Custom[property] === 'string')\n }\n}\n\n/**\n * listen to an event indefinitely for a given `obj`\n * @method listenTo\n * @param {Object} obj\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n * @example\n * ```javascript\n * this.listenTo(this.core.playback, Events.PLAYBACK_PAUSE, this.callback)\n * ```\n */\n/**\n * listen to an event once for a given `obj`\n * @method listenToOnce\n * @param {Object} obj\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n * @example\n * ```javascript\n * this.listenToOnce(this.core.playback, Events.PLAYBACK_PAUSE, this.callback)\n * ```\n */\nconst listenMethods = { listenTo: 'on', listenToOnce: 'once' }\n\nObject.keys(listenMethods).forEach(function(method) {\n Events.prototype[method] = function(obj, name, callback) {\n const listeningTo = this._listeningTo || (this._listeningTo = {})\n const id = obj._listenId || (obj._listenId = uniqueId('l'))\n listeningTo[id] = obj\n if (!callback && typeof name === 'object') callback = this\n obj[listenMethods[method]](name, callback, this)\n return this\n }\n})\n\n// PLAYER EVENTS\n/**\n * Fired when the player is ready on startup\n *\n * @event PLAYER_READY\n */\nEvents.PLAYER_READY = 'ready'\n/**\n * Fired when player resizes\n *\n * @event PLAYER_RESIZE\n * @param {Object} currentSize an object with the current size\n */\nEvents.PLAYER_RESIZE = 'resize'\n/**\n * Fired when player changes its fullscreen state\n *\n * @event PLAYER_FULLSCREEN\n * @param {Boolean} whether or not the player is on fullscreen mode\n */\nEvents.PLAYER_FULLSCREEN = 'fullscreen'\n/**\n * Fired when player starts to play\n *\n * @event PLAYER_PLAY\n */\nEvents.PLAYER_PLAY = 'play'\n/**\n * Fired when player pauses\n *\n * @event PLAYER_PAUSE\n */\nEvents.PLAYER_PAUSE = 'pause'\n/**\n * Fired when player stops\n *\n * @event PLAYER_STOP\n */\nEvents.PLAYER_STOP = 'stop'\n/**\n * Fired when player ends the video\n *\n * @event PLAYER_ENDED\n */\nEvents.PLAYER_ENDED = 'ended'\n/**\n * Fired when player seeks the video\n *\n * @event PLAYER_SEEK\n * @param {Number} time the current time in seconds\n */\nEvents.PLAYER_SEEK = 'seek'\n/**\n * Fired when player receives an error\n *\n * @event PLAYER_ERROR\n * @param {Object} error the error\n */\nEvents.PLAYER_ERROR = 'error'\n/**\n * Fired when the time is updated on player\n *\n * @event PLAYER_TIMEUPDATE\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.current]\n * current time\n * @param {Number} [progress.total]\n * total time\n */\nEvents.PLAYER_TIMEUPDATE = 'timeupdate'\n/**\n * Fired when player updates its volume\n *\n * @event PLAYER_VOLUMEUPDATE\n * @param {Number} volume the current volume\n */\nEvents.PLAYER_VOLUMEUPDATE = 'volumeupdate'\n\n/**\n * Fired when subtitle is available\n *\n * @event PLAYER_SUBTITLE_AVAILABLE\n */\nEvents.PLAYER_SUBTITLE_AVAILABLE = 'subtitleavailable'\n\n// Playback Events\n/**\n * Fired when the playback is downloading the media\n *\n * @event PLAYBACK_PROGRESS\n * @param progress {Object}\n * Data progress object\n * @param [progress.start] {Number}\n * start position of buffered content at current position\n * @param [progress.current] {Number}\n * end position of buffered content at current position\n * @param [progress.total] {Number}\n * total content to be downloaded\n * @param buffered {Array}\n * array of buffered segments ({start, end}). [Only for supported playbacks]\n */\nEvents.PLAYBACK_PROGRESS = 'playback:progress'\n/**\n * Fired when the time is updated on playback\n *\n * @event PLAYBACK_TIMEUPDATE\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.current]\n * current time\n * @param {Number} [progress.total]\n * total time\n */\nEvents.PLAYBACK_TIMEUPDATE = 'playback:timeupdate'\n/**\n * Fired when playback is ready\n *\n * @event PLAYBACK_READY\n */\nEvents.PLAYBACK_READY = 'playback:ready'\n/**\n * Fired when the playback starts having to buffer because\n * playback can currently not be smooth.\n *\n * This corresponds to the playback `buffering` property being\n * `true`.\n *\n * @event PLAYBACK_BUFFERING\n */\nEvents.PLAYBACK_BUFFERING = 'playback:buffering'\n/**\n * Fired when the playback has enough in the buffer to be\n * able to play smoothly, after previously being unable to\n * do this.\n *\n * This corresponds to the playback `buffering` property being\n * `false`.\n *\n * @event PLAYBACK_BUFFERFULL\n */\nEvents.PLAYBACK_BUFFERFULL = 'playback:bufferfull'\n/**\n * Fired when playback changes any settings (volume, seek and etc)\n *\n * @event PLAYBACK_SETTINGSUPDATE\n */\nEvents.PLAYBACK_SETTINGSUPDATE = 'playback:settingsupdate'\n/**\n * Fired when playback loaded its metadata\n *\n * @event PLAYBACK_LOADEDMETADATA\n * @param {Object} metadata Data\n * settings object\n * @param {Number} [metadata.duration]\n * the playback duration\n * @param {Object} [metadata.data]\n * extra meta data\n */\nEvents.PLAYBACK_LOADEDMETADATA = 'playback:loadedmetadata'\n/**\n * Fired when playback updates its video quality\n *\n * @event PLAYBACK_HIGHDEFINITIONUPDATE\n * @param {Boolean} isHD\n * true when is on HD, false otherwise\n */\nEvents.PLAYBACK_HIGHDEFINITIONUPDATE = 'playback:highdefinitionupdate'\n/**\n * Fired when playback updates its bitrate\n *\n * @event PLAYBACK_BITRATE\n * @param {Object} bitrate Data\n * bitrate object\n * @param {Number} [bitrate.bandwidth]\n * bitrate bandwidth when it's available\n * @param {Number} [bitrate.width]\n * playback width (ex: 720, 640, 1080)\n * @param {Number} [bitrate.height]\n * playback height (ex: 240, 480, 720)\n * @param {Number} [bitrate.level]\n * playback level when it's available, it could be just a map for width (0 => 240, 1 => 480, 2 => 720)\n */\nEvents.PLAYBACK_BITRATE = 'playback:bitrate'\n/**\n * Fired when the playback has its levels\n *\n * @event PLAYBACK_LEVELS_AVAILABLE\n * @param {Array} levels\n * the ordered levels, each one with the following format `{id: 1, label: '500kbps'}` ps: id should be a number >= 0\n * @param {Number} initial\n * the initial level otherwise -1 (AUTO)\n */\nEvents.PLAYBACK_LEVELS_AVAILABLE = 'playback:levels:available'\n/**\n * Fired when the playback starts to switch level\n *\n * @event PLAYBACK_LEVEL_SWITCH_START\n *\n */\nEvents.PLAYBACK_LEVEL_SWITCH_START = 'playback:levels:switch:start'\n/**\n * Fired when the playback ends the level switch\n *\n * @event PLAYBACK_LEVEL_SWITCH_END\n *\n */\nEvents.PLAYBACK_LEVEL_SWITCH_END = 'playback:levels:switch:end'\n\n/**\n * Fired when playback internal state changes\n *\n * @event PLAYBACK_PLAYBACKSTATE\n * @param {Object} state Data\n * state object\n * @param {String} [state.type]\n * the playback type\n */\nEvents.PLAYBACK_PLAYBACKSTATE = 'playback:playbackstate'\n/**\n * Fired when DVR becomes enabled/disabled.\n *\n * @event PLAYBACK_DVR\n * @param {boolean} state true if dvr enabled\n */\nEvents.PLAYBACK_DVR = 'playback:dvr'\n// TODO doc\nEvents.PLAYBACK_MEDIACONTROL_DISABLE = 'playback:mediacontrol:disable'\n// TODO doc\nEvents.PLAYBACK_MEDIACONTROL_ENABLE = 'playback:mediacontrol:enable'\n/**\n * Fired when the media for a playback ends.\n *\n * @event PLAYBACK_ENDED\n * @param {String} name the name of the playback\n */\nEvents.PLAYBACK_ENDED = 'playback:ended'\n/**\n * Fired when user requests `play()`\n *\n * @event PLAYBACK_PLAY_INTENT\n */\nEvents.PLAYBACK_PLAY_INTENT = 'playback:play:intent'\n/**\n * Fired when the media for a playback starts playing.\n * This is not necessarily when the user requests `play()`\n * The media may have to buffer first.\n * I.e. `isPlaying()` might return `true` before this event is fired,\n * because `isPlaying()` represents the intended state.\n *\n * @event PLAYBACK_PLAY\n */\nEvents.PLAYBACK_PLAY = 'playback:play'\n/**\n * Fired when the media for a playback pauses.\n *\n * @event PLAYBACK_PAUSE\n */\nEvents.PLAYBACK_PAUSE = 'playback:pause'\n/**\n * Fired when the media for a playback is seeked.\n *\n * @event PLAYBACK_SEEKED\n */\nEvents.PLAYBACK_SEEKED = 'playback:seeked'\n/**\n * Fired when the media for a playback is stopped.\n *\n * @event PLAYBACK_STOP\n */\nEvents.PLAYBACK_STOP = 'playback:stop'\n/**\n * Fired if an error occurs in the playback.\n *\n * @event PLAYBACK_ERROR\n * @param {Object} error An object containing the error details\n * @param {String} name Playback name\n */\nEvents.PLAYBACK_ERROR = 'playback:error'\n// TODO doc\nEvents.PLAYBACK_STATS_ADD = 'playback:stats:add'\n// TODO doc\nEvents.PLAYBACK_FRAGMENT_LOADED = 'playback:fragment:loaded'\n// TODO doc\nEvents.PLAYBACK_LEVEL_SWITCH = 'playback:level:switch'\n/**\n * Fired when subtitle is available on playback for display\n *\n * @event PLAYBACK_SUBTITLE_AVAILABLE\n */\nEvents.PLAYBACK_SUBTITLE_AVAILABLE = 'playback:subtitle:available'\n/**\n * Fired when playback subtitle track has changed\n *\n * @event CONTAINER_SUBTITLE_CHANGED\n * @param {Object} track Data\n * track object\n * @param {Number} [track.id]\n * selected track id\n */\nEvents.PLAYBACK_SUBTITLE_CHANGED = 'playback:subtitle:changed'\n\n// Core Events\n/**\n * Fired when the containers are created\n *\n * @event CORE_CONTAINERS_CREATED\n */\nEvents.CORE_CONTAINERS_CREATED = 'core:containers:created'\n/**\n * Fired when the options were changed for the core\n *\n * @event CORE_OPTIONS_CHANGE\n */\nEvents.CORE_OPTIONS_CHANGE = 'core:options:change'\n/**\n * Fired after creating containers, when the core is ready\n *\n * @event CORE_READY\n */\nEvents.CORE_READY = 'core:ready'\n/**\n * Fired when the fullscreen state change\n *\n * @event CORE_FULLSCREEN\n * @param {Boolean} whether or not the player is on fullscreen mode\n */\nEvents.CORE_FULLSCREEN = 'core:fullscreen'\n/**\n * Fired when the screen orientation has changed.\n * This event is trigger only for mobile devices.\n *\n * @event CORE_SCREEN_ORIENTATION_CHANGED\n * @param {Object} screen An object with screen orientation\n * screen object\n * @param {Object} [screen.event]\n * window resize event object\n * @param {String} [screen.orientation]\n * screen orientation (ie: 'landscape' or 'portrait')\n */\nEvents.CORE_SCREEN_ORIENTATION_CHANGED = 'core:screen:orientation:changed'\n\n\n// Container Events\n/**\n * Fired when the container internal state changes\n *\n * @event CONTAINER_PLAYBACKSTATE\n * @param {Object} state Data\n * state object\n * @param {String} [state.type]\n * the playback type\n */\nEvents.CONTAINER_PLAYBACKSTATE = 'container:playbackstate'\nEvents.CONTAINER_PLAYBACKDVRSTATECHANGED = 'container:dvr'\n/**\n * Fired when the container updates its bitrate\n *\n * @event CONTAINER_BITRATE\n * @param {Object} bitrate Data\n * bitrate object\n * @param {Number} [bitrate.bandwidth]\n * bitrate bandwidth when it's available\n * @param {Number} [bitrate.width]\n * playback width (ex: 720, 640, 1080)\n * @param {Number} [bitrate.height]\n * playback height (ex: 240, 480, 720)\n * @param {Number} [bitrate.level]\n * playback level when it's available, it could be just a map for width (0 => 240, 1 => 480, 2 => 720)\n */\nEvents.CONTAINER_BITRATE = 'container:bitrate'\nEvents.CONTAINER_STATS_REPORT = 'container:stats:report'\nEvents.CONTAINER_DESTROYED = 'container:destroyed'\n/**\n * Fired when the container is ready\n *\n * @event CONTAINER_READY\n */\nEvents.CONTAINER_READY = 'container:ready'\nEvents.CONTAINER_ERROR = 'container:error'\n/**\n * Fired when the container loaded its metadata\n *\n * @event CONTAINER_LOADEDMETADATA\n * @param {Object} metadata Data\n * settings object\n * @param {Number} [metadata.duration]\n * the playback duration\n * @param {Object} [metadata.data]\n * extra meta data\n */\nEvents.CONTAINER_LOADEDMETADATA = 'container:loadedmetadata'\n\n/**\n * Fired when subtitle is available on container for display\n *\n * @event CONTAINER_SUBTITLE_AVAILABLE\n */\nEvents.CONTAINER_SUBTITLE_AVAILABLE = 'container:subtitle:available'\n/**\n * Fired when subtitle track has changed\n *\n * @event CONTAINER_SUBTITLE_CHANGED\n * @param {Object} track Data\n * track object\n * @param {Number} [track.id]\n * selected track id\n */\nEvents.CONTAINER_SUBTITLE_CHANGED = 'container:subtitle:changed'\n\n/**\n * Fired when the time is updated on container\n *\n * @event CONTAINER_TIMEUPDATE\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.current]\n * current time\n * @param {Number} [progress.total]\n * total time\n */\nEvents.CONTAINER_TIMEUPDATE = 'container:timeupdate'\n/**\n * Fired when the container is downloading the media\n *\n * @event CONTAINER_PROGRESS\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.start]\n * initial downloaded content\n * @param {Number} [progress.current]\n * current dowloaded content\n * @param {Number} [progress.total]\n * total content to be downloaded\n */\nEvents.CONTAINER_PROGRESS = 'container:progress'\nEvents.CONTAINER_PLAY = 'container:play'\nEvents.CONTAINER_STOP = 'container:stop'\nEvents.CONTAINER_PAUSE = 'container:pause'\nEvents.CONTAINER_ENDED = 'container:ended'\nEvents.CONTAINER_CLICK = 'container:click'\nEvents.CONTAINER_DBLCLICK = 'container:dblclick'\nEvents.CONTAINER_CONTEXTMENU = 'container:contextmenu'\nEvents.CONTAINER_MOUSE_ENTER = 'container:mouseenter'\nEvents.CONTAINER_MOUSE_LEAVE = 'container:mouseleave'\n/**\n * Fired when the container seeks the video\n *\n * @event CONTAINER_SEEK\n * @param {Number} time the current time in seconds\n */\nEvents.CONTAINER_SEEK = 'container:seek'\n/**\n * Fired when the container was finished the seek video\n *\n * @event CONTAINER_SEEKED\n * @param {Number} time the current time in seconds\n */\nEvents.CONTAINER_SEEKED = 'container:seeked'\nEvents.CONTAINER_VOLUME = 'container:volume'\nEvents.CONTAINER_FULLSCREEN = 'container:fullscreen'\n/**\n * Fired when container is buffering\n *\n * @event CONTAINER_STATE_BUFFERING\n */\nEvents.CONTAINER_STATE_BUFFERING = 'container:state:buffering'\n/**\n * Fired when the container filled the buffer\n *\n * @event CONTAINER_STATE_BUFFERFULL\n */\nEvents.CONTAINER_STATE_BUFFERFULL = 'container:state:bufferfull'\n/**\n * Fired when the container changes any settings (volume, seek and etc)\n *\n * @event CONTAINER_SETTINGSUPDATE\n */\nEvents.CONTAINER_SETTINGSUPDATE = 'container:settingsupdate'\n/**\n * Fired when container updates its video quality\n *\n * @event CONTAINER_HIGHDEFINITIONUPDATE\n * @param {Boolean} isHD\n * true when is on HD, false otherwise\n */\nEvents.CONTAINER_HIGHDEFINITIONUPDATE = 'container:highdefinitionupdate'\n\n/**\n * Fired when the media control shows\n *\n * @event CONTAINER_MEDIACONTROL_SHOW\n */\nEvents.CONTAINER_MEDIACONTROL_SHOW = 'container:mediacontrol:show'\n/**\n * Fired when the media control hides\n *\n * @event CONTAINER_MEDIACONTROL_HIDE\n */\nEvents.CONTAINER_MEDIACONTROL_HIDE = 'container:mediacontrol:hide'\n\nEvents.CONTAINER_MEDIACONTROL_DISABLE = 'container:mediacontrol:disable'\nEvents.CONTAINER_MEDIACONTROL_ENABLE = 'container:mediacontrol:enable'\nEvents.CONTAINER_STATS_ADD = 'container:stats:add'\n/**\n * Fired when the options were changed for the container\n *\n * @event CONTAINER_OPTIONS_CHANGE\n */\nEvents.CONTAINER_OPTIONS_CHANGE = 'container:options:change'\n\n// MediaControl Events\nEvents.MEDIACONTROL_RENDERED = 'mediacontrol:rendered'\n/**\n * Fired when the player enters/exit on fullscreen\n *\n * @event MEDIACONTROL_FULLSCREEN\n */\nEvents.MEDIACONTROL_FULLSCREEN = 'mediacontrol:fullscreen'\n/**\n * Fired when the media control shows\n *\n * @event MEDIACONTROL_SHOW\n */\nEvents.MEDIACONTROL_SHOW = 'mediacontrol:show'\n/**\n * Fired when the media control hides\n *\n * @event MEDIACONTROL_HIDE\n */\nEvents.MEDIACONTROL_HIDE = 'mediacontrol:hide'\n/**\n * Fired when mouse enters on the seekbar\n *\n * @event MEDIACONTROL_MOUSEMOVE_SEEKBAR\n * @param {Object} event\n * the javascript event\n */\nEvents.MEDIACONTROL_MOUSEMOVE_SEEKBAR = 'mediacontrol:mousemove:seekbar'\n/**\n * Fired when mouse leaves the seekbar\n *\n * @event MEDIACONTROL_MOUSELEAVE_SEEKBAR\n * @param {Object} event\n * the javascript event\n */\nEvents.MEDIACONTROL_MOUSELEAVE_SEEKBAR = 'mediacontrol:mouseleave:seekbar'\n/**\n * Fired when the media is being played\n *\n * @event MEDIACONTROL_PLAYING\n */\nEvents.MEDIACONTROL_PLAYING = 'mediacontrol:playing'\n/**\n * Fired when the media is not being played\n *\n * @event MEDIACONTROL_NOTPLAYING\n */\nEvents.MEDIACONTROL_NOTPLAYING = 'mediacontrol:notplaying'\n/**\n * Fired when the container was changed\n *\n * @event MEDIACONTROL_CONTAINERCHANGED\n */\nEvents.MEDIACONTROL_CONTAINERCHANGED = 'mediacontrol:containerchanged'\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/events.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n/*jshint -W079 */\n\nimport './polyfills'\nimport Browser from '../components/browser'\nimport $ from 'clappr-zepto'\n\nfunction assign(obj, source) {\n if (source) {\n for (const prop in source) {\n const propDescriptor = Object.getOwnPropertyDescriptor(source, prop)\n propDescriptor ? Object.defineProperty(obj, prop, propDescriptor) : obj[prop] = source[prop]\n }\n }\n return obj\n}\n\nexport function extend(parent, properties) {\n class Surrogate extends parent {\n constructor(...args) {\n super(...args)\n if (properties.initialize)\n properties.initialize.apply(this, args)\n\n }\n }\n assign(Surrogate.prototype, properties)\n return Surrogate\n}\n\nexport function formatTime(time, paddedHours) {\n if (!isFinite(time))\n return '--:--'\n\n time = time * 1000\n time = parseInt(time/1000)\n const seconds = time % 60\n time = parseInt(time/60)\n const minutes = time % 60\n time = parseInt(time/60)\n const hours = time % 24\n const days = parseInt(time/24)\n let out = ''\n if (days && days > 0) {\n out += days + ':'\n if (hours < 1) out += '00:'\n }\n if (hours && hours > 0 || paddedHours) out += ('0' + hours).slice(-2) + ':'\n out += ('0' + minutes).slice(-2) + ':'\n out += ('0' + seconds).slice(-2)\n return out.trim()\n}\n\nexport const Fullscreen = {\n isFullscreen: function() {\n return !!(\n document.webkitFullscreenElement ||\n document.webkitIsFullScreen ||\n document.mozFullScreen ||\n document.msFullscreenElement\n )\n },\n requestFullscreen: function(el) {\n if(el.requestFullscreen)\n el.requestFullscreen()\n else if(el.webkitRequestFullscreen)\n el.webkitRequestFullscreen()\n else if(el.mozRequestFullScreen)\n el.mozRequestFullScreen()\n else if(el.msRequestFullscreen)\n el.msRequestFullscreen()\n else if (el.querySelector && el.querySelector('video') && el.querySelector('video').webkitEnterFullScreen)\n el.querySelector('video').webkitEnterFullScreen()\n else if (el.webkitEnterFullScreen)\n el.webkitEnterFullScreen()\n\n },\n cancelFullscreen: function(el=document) {\n if(el.exitFullscreen)\n el.exitFullscreen()\n else if(el.webkitCancelFullScreen)\n el.webkitCancelFullScreen()\n else if(el.webkitExitFullscreen)\n el.webkitExitFullscreen()\n else if(el.mozCancelFullScreen)\n el.mozCancelFullScreen()\n else if(el.msExitFullscreen)\n el.msExitFullscreen()\n\n },\n fullscreenEnabled: function() {\n return !!(\n document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled\n )\n }\n}\n\nexport class Config {\n\n static _defaultConfig() {\n return {\n volume: {\n value: 100,\n parse: parseInt\n }\n }\n }\n\n static _defaultValueFor(key) {\n try {\n return this._defaultConfig()[key].parse(this._defaultConfig()[key].value)\n } catch(e) {\n return undefined\n }\n }\n\n static _createKeyspace(key){\n return `clappr.${document.domain}.${key}`\n }\n\n static restore(key) {\n if (Browser.hasLocalstorage && localStorage[this._createKeyspace(key)])\n return this._defaultConfig()[key].parse(localStorage[this._createKeyspace(key)])\n\n return this._defaultValueFor(key)\n }\n\n static persist(key, value) {\n if (Browser.hasLocalstorage) {\n try {\n localStorage[this._createKeyspace(key)] = value\n return true\n } catch(e) {\n return false\n }\n }\n }\n}\n\nexport class QueryString {\n static get params() {\n const query = window.location.search.substring(1)\n if (query !== this.query) {\n this._urlParams = this.parse(query)\n this.query = query\n }\n return this._urlParams\n }\n\n static get hashParams() {\n const hash = window.location.hash.substring(1)\n if (hash !== this.hash) {\n this._hashParams = this.parse(hash)\n this.hash = hash\n }\n return this._hashParams\n }\n\n static parse(paramsString) {\n let match\n const pl = /\\+/g, // Regex for replacing addition symbol with a space\n search = /([^&=]+)=?([^&]*)/g,\n decode = (s) => decodeURIComponent(s.replace(pl, ' ')),\n params = {}\n while (match = search.exec(paramsString)) { // eslint-disable-line no-cond-assign\n params[decode(match[1]).toLowerCase()] = decode(match[2])\n }\n return params\n }\n}\n\nexport function seekStringToSeconds(paramName = 't') {\n let seconds = 0\n const seekString = QueryString.params[paramName] || QueryString.hashParams[paramName] || ''\n const parts = seekString.match(/[0-9]+[hms]+/g) || []\n if (parts.length > 0) {\n const factor = { 'h': 3600, 'm': 60, 's': 1 }\n parts.forEach(function(el) {\n if (el) {\n const suffix = el[el.length - 1]\n const time = parseInt(el.slice(0, el.length - 1), 10)\n seconds += time * (factor[suffix])\n }\n })\n } else if (seekString) { seconds = parseInt(seekString, 10) }\n\n return seconds\n}\n\nconst idsCounter = {}\n\nexport function uniqueId(prefix) {\n idsCounter[prefix] || (idsCounter[prefix] = 0)\n const id = ++idsCounter[prefix]\n return prefix + id\n}\n\nexport function isNumber(value) {\n return value - parseFloat(value) + 1 >= 0\n}\n\nexport function currentScriptUrl() {\n const scripts = document.getElementsByTagName('script')\n return scripts.length ? scripts[scripts.length - 1].src : ''\n}\n\nexport const requestAnimationFrame = (window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n function(fn) { window.setTimeout(fn, 1000/60) }).bind(window)\n\nexport const cancelAnimationFrame = (window.cancelAnimationFrame ||\n window.mozCancelAnimationFrame ||\n window.webkitCancelAnimationFrame ||\n window.clearTimeout).bind(window)\n\nexport function getBrowserLanguage() {\n return window.navigator && window.navigator.language\n}\n\nexport function now() {\n if (window.performance && window.performance.now)\n return performance.now()\n\n return Date.now()\n}\n\n// remove the item from the array if it exists in the array\nexport function removeArrayItem(arr, item) {\n const i = arr.indexOf(item)\n if (i >= 0)\n arr.splice(i, 1)\n\n}\n\n// Simple Zepto element factory with video recycle feature.\nconst videoStack = []\n\nexport class DomRecycler {\n static configure(options) {\n this.options = $.extend(this.options, options)\n }\n\n static create(name) {\n if (this.options.recycleVideo && name === 'video' && videoStack.length > 0)\n return videoStack.shift()\n\n return $('<' + name + '>')\n }\n\n static garbage($el) {\n // Expect Zepto collection with single element (does not iterate!)\n if (!this.options.recycleVideo || $el[0].tagName.toUpperCase() !== 'VIDEO') return\n $el.children().remove()\n videoStack.push($el)\n }\n}\n\nDomRecycler.options = { recycleVideo: false }\n\nexport default {\n Config,\n Fullscreen,\n QueryString,\n DomRecycler,\n extend,\n formatTime,\n seekStringToSeconds,\n uniqueId,\n currentScriptUrl,\n isNumber,\n requestAnimationFrame,\n cancelAnimationFrame,\n getBrowserLanguage,\n now,\n removeArrayItem\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/utils.js","/* Zepto v1.2.0 - zepto ajax callbacks deferred event ie selector - zeptojs.com/license */\n\n\nvar Zepto = (function() {\n var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {}, classCache = {},\n cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n\n // special attributes that should be get/set via method calls\n methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n\n adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ],\n table = document.createElement('table'),\n tableRow = document.createElement('tr'),\n containers = {\n 'tr': document.createElement('tbody'),\n 'tbody': table, 'thead': table, 'tfoot': table,\n 'td': tableRow, 'th': tableRow,\n '*': document.createElement('div')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize, uniq,\n tempParent = document.createElement('div'),\n propMap = {\n 'tabindex': 'tabIndex',\n 'readonly': 'readOnly',\n 'for': 'htmlFor',\n 'class': 'className',\n 'maxlength': 'maxLength',\n 'cellspacing': 'cellSpacing',\n 'cellpadding': 'cellPadding',\n 'rowspan': 'rowSpan',\n 'colspan': 'colSpan',\n 'usemap': 'useMap',\n 'frameborder': 'frameBorder',\n 'contenteditable': 'contentEditable'\n },\n isArray = Array.isArray ||\n function(object){ return object instanceof Array }\n\n zepto.matches = function(element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false\n var matchesSelector = element.matches || element.webkitMatchesSelector ||\n element.mozMatchesSelector || element.oMatchesSelector ||\n element.matchesSelector\n if (matchesSelector) return matchesSelector.call(element, selector)\n // fall back to performing a selector:\n var match, parent = element.parentNode, temp = !parent\n if (temp) (parent = tempParent).appendChild(element)\n match = ~zepto.qsa(parent, selector).indexOf(element)\n temp && tempParent.removeChild(element)\n return match\n }\n\n function type(obj) {\n return obj == null ? String(obj) :\n class2type[toString.call(obj)] || \"object\"\n }\n\n function isFunction(value) { return type(value) == \"function\" }\n function isWindow(obj) { return obj != null && obj == obj.window }\n function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE }\n function isObject(obj) { return type(obj) == \"object\" }\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype\n }\n\n function likeArray(obj) {\n var length = !!obj && 'length' in obj && obj.length,\n type = $.type(obj)\n\n return 'function' != type && !isWindow(obj) && (\n 'array' == type || length === 0 ||\n (typeof length == 'number' && length > 0 && (length - 1) in obj)\n )\n }\n\n function compact(array) { return filter.call(array, function(item){ return item != null }) }\n function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }\n camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) }\n function dasherize(str) {\n return str.replace(/::/g, '/')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')\n .replace(/([a-z\\d])([A-Z])/g, '$1_$2')\n .replace(/_/g, '-')\n .toLowerCase()\n }\n uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) }\n\n function classRE(name) {\n return name in classCache ?\n classCache[name] : (classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)'))\n }\n\n function maybeAddPx(name, value) {\n return (typeof value == \"number\" && !cssNumber[dasherize(name)]) ? value + \"px\" : value\n }\n\n function defaultDisplay(nodeName) {\n var element, display\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName)\n document.body.appendChild(element)\n display = getComputedStyle(element, '').getPropertyValue(\"display\")\n element.parentNode.removeChild(element)\n display == \"none\" && (display = \"block\")\n elementDisplay[nodeName] = display\n }\n return elementDisplay[nodeName]\n }\n\n function children(element) {\n return 'children' in element ?\n slice.call(element.children) :\n $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node })\n }\n\n function Z(dom, selector) {\n var i, len = dom ? dom.length : 0\n for (i = 0; i < len; i++) this[i] = dom[i]\n this.length = len\n this.selector = selector || ''\n }\n\n // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overridden in plugins for example to make\n // it compatible with browsers that don't support the DOM fully.\n zepto.fragment = function(html, name, properties) {\n var dom, nodes, container\n\n // A special case optimization for a single tag\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1))\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1>\")\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1\n if (!(name in containers)) name = '*'\n\n container = containers[name]\n container.innerHTML = '' + html\n dom = $.each(slice.call(container.childNodes), function(){\n container.removeChild(this)\n })\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom)\n $.each(properties, function(key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value)\n else nodes.attr(key, value)\n })\n }\n\n return dom\n }\n\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overridden in plugins.\n zepto.Z = function(dom, selector) {\n return new Z(dom, selector)\n }\n\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overridden in plugins.\n zepto.isZ = function(object) {\n return object instanceof zepto.Z\n }\n\n // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overridden in plugins.\n zepto.init = function(selector, context) {\n var dom\n // If nothing given, return an empty Zepto collection\n if (!selector) return zepto.Z()\n // Optimize for string selectors\n else if (typeof selector == 'string') {\n selector = selector.trim()\n // If it's a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn't begin with <\n if (selector[0] == '<' && fragmentRE.test(selector))\n dom = zepto.fragment(selector, RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // If it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector)\n // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector\n else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector)\n // Wrap DOM nodes.\n else if (isObject(selector))\n dom = [selector], selector = null\n // If it's a html fragment, create nodes from it\n else if (fragmentRE.test(selector))\n dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // And last but no least, if it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // create a new Zepto collection from the nodes found\n return zepto.Z(dom, selector)\n }\n\n // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n $ = function(selector, context){\n return zepto.init(selector, context)\n }\n\n function extend(target, source, deep) {\n for (key in source)\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key]))\n target[key] = {}\n if (isArray(source[key]) && !isArray(target[key]))\n target[key] = []\n extend(target[key], source[key], deep)\n }\n else if (source[key] !== undefined) target[key] = source[key]\n }\n\n // Copy all but undefined properties from one or more\n // objects to the `target` object.\n $.extend = function(target){\n var deep, args = slice.call(arguments, 1)\n if (typeof target == 'boolean') {\n deep = target\n target = args.shift()\n }\n args.forEach(function(arg){ extend(target, arg, deep) })\n return target\n }\n\n // `$.zepto.qsa` is Zepto's CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overridden in plugins.\n zepto.qsa = function(element, selector){\n var found,\n maybeID = selector[0] == '#',\n maybeClass = !maybeID && selector[0] == '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly)\n return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn't have getElementById\n ( (found = element.getElementById(nameOnly)) ? [found] : [] ) :\n (element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11) ? [] :\n slice.call(\n isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n )\n }\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector)\n }\n\n $.contains = document.documentElement.contains ?\n function(parent, node) {\n return parent !== node && parent.contains(node)\n } :\n function(parent, node) {\n while (node && (node = node.parentNode))\n if (node === parent) return true\n return false\n }\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value)\n }\n\n // access className property while respecting SVGAnimatedString\n function className(node, value){\n var klass = node.className || '',\n svg = klass && klass.baseVal !== undefined\n\n if (value === undefined) return svg ? klass.baseVal : klass\n svg ? (klass.baseVal = value) : (node.className = value)\n }\n\n // \"true\" => true\n // \"false\" => false\n // \"null\" => null\n // \"42\" => 42\n // \"42.5\" => 42.5\n // \"08\" => \"08\"\n // JSON => parse if valid\n // String => self\n function deserializeValue(value) {\n try {\n return value ?\n value == \"true\" ||\n ( value == \"false\" ? false :\n value == \"null\" ? null :\n +value + \"\" == value ? +value :\n /^[\\[\\{]/.test(value) ? $.parseJSON(value) :\n value )\n : value\n } catch(e) {\n return value\n }\n }\n\n $.type = type\n $.isFunction = isFunction\n $.isWindow = isWindow\n $.isArray = isArray\n $.isPlainObject = isPlainObject\n\n $.isEmptyObject = function(obj) {\n var name\n for (name in obj) return false\n return true\n }\n\n $.isNumeric = function(val) {\n var num = Number(val), type = typeof val\n return val != null && type != 'boolean' &&\n (type != 'string' || val.length) &&\n !isNaN(num) && isFinite(num) || false\n }\n\n $.inArray = function(elem, array, i){\n return emptyArray.indexOf.call(array, elem, i)\n }\n\n $.camelCase = camelize\n $.trim = function(str) {\n return str == null ? \"\" : String.prototype.trim.call(str)\n }\n\n // plugin compatibility\n $.uuid = 0\n $.support = { }\n $.expr = { }\n $.noop = function() {}\n\n $.map = function(elements, callback){\n var value, values = [], i, key\n if (likeArray(elements))\n for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i)\n if (value != null) values.push(value)\n }\n else\n for (key in elements) {\n value = callback(elements[key], key)\n if (value != null) values.push(value)\n }\n return flatten(values)\n }\n\n $.each = function(elements, callback){\n var i, key\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++)\n if (callback.call(elements[i], i, elements[i]) === false) return elements\n } else {\n for (key in elements)\n if (callback.call(elements[key], key, elements[key]) === false) return elements\n }\n\n return elements\n }\n\n $.grep = function(elements, callback){\n return filter.call(elements, callback)\n }\n\n if (window.JSON) $.parseJSON = JSON.parse\n\n // Populate the class2type map\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase()\n })\n\n // Define methods that will be available on all\n // Zepto collections\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function(){\n var i, value, args = []\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i]\n args[i] = zepto.isZ(value) ? value.toArray() : value\n }\n return concat.apply(zepto.isZ(this) ? this.toArray() : this, args)\n },\n\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function(fn){\n return $($.map(this, function(el, i){ return fn.call(el, i, el) }))\n },\n slice: function(){\n return $(slice.apply(this, arguments))\n },\n\n ready: function(callback){\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn't yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($)\n else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false)\n return this\n },\n get: function(idx){\n return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length]\n },\n toArray: function(){ return this.get() },\n size: function(){\n return this.length\n },\n remove: function(){\n return this.each(function(){\n if (this.parentNode != null)\n this.parentNode.removeChild(this)\n })\n },\n each: function(callback){\n emptyArray.every.call(this, function(el, idx){\n return callback.call(el, idx, el) !== false\n })\n return this\n },\n filter: function(selector){\n if (isFunction(selector)) return this.not(this.not(selector))\n return $(filter.call(this, function(element){\n return zepto.matches(element, selector)\n }))\n },\n add: function(selector,context){\n return $(uniq(this.concat($(selector,context))))\n },\n is: function(selector){\n return this.length > 0 && zepto.matches(this[0], selector)\n },\n not: function(selector){\n var nodes=[]\n if (isFunction(selector) && selector.call !== undefined)\n this.each(function(idx){\n if (!selector.call(this,idx)) nodes.push(this)\n })\n else {\n var excludes = typeof selector == 'string' ? this.filter(selector) :\n (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector)\n this.forEach(function(el){\n if (excludes.indexOf(el) < 0) nodes.push(el)\n })\n }\n return $(nodes)\n },\n has: function(selector){\n return this.filter(function(){\n return isObject(selector) ?\n $.contains(this, selector) :\n $(this).find(selector).size()\n })\n },\n eq: function(idx){\n return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1)\n },\n first: function(){\n var el = this[0]\n return el && !isObject(el) ? el : $(el)\n },\n last: function(){\n var el = this[this.length - 1]\n return el && !isObject(el) ? el : $(el)\n },\n find: function(selector){\n var result, $this = this\n if (!selector) result = $()\n else if (typeof selector == 'object')\n result = $(selector).filter(function(){\n var node = this\n return emptyArray.some.call($this, function(parent){\n return $.contains(parent, node)\n })\n })\n else if (this.length == 1) result = $(zepto.qsa(this[0], selector))\n else result = this.map(function(){ return zepto.qsa(this, selector) })\n return result\n },\n closest: function(selector, context){\n var nodes = [], collection = typeof selector == 'object' && $(selector)\n this.each(function(_, node){\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))\n node = node !== context && !isDocument(node) && node.parentNode\n if (node && nodes.indexOf(node) < 0) nodes.push(node)\n })\n return $(nodes)\n },\n parents: function(selector){\n var ancestors = [], nodes = this\n while (nodes.length > 0)\n nodes = $.map(nodes, function(node){\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node)\n return node\n }\n })\n return filtered(ancestors, selector)\n },\n parent: function(selector){\n return filtered(uniq(this.pluck('parentNode')), selector)\n },\n children: function(selector){\n return filtered(this.map(function(){ return children(this) }), selector)\n },\n contents: function() {\n return this.map(function() { return this.contentDocument || slice.call(this.childNodes) })\n },\n siblings: function(selector){\n return filtered(this.map(function(i, el){\n return filter.call(children(el.parentNode), function(child){ return child!==el })\n }), selector)\n },\n empty: function(){\n return this.each(function(){ this.innerHTML = '' })\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function(property){\n return $.map(this, function(el){ return el[property] })\n },\n show: function(){\n return this.each(function(){\n this.style.display == \"none\" && (this.style.display = '')\n if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\")\n this.style.display = defaultDisplay(this.nodeName)\n })\n },\n replaceWith: function(newContent){\n return this.before(newContent).remove()\n },\n wrap: function(structure){\n var func = isFunction(structure)\n if (this[0] && !func)\n var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1\n\n return this.each(function(index){\n $(this).wrapAll(\n func ? structure.call(this, index) :\n clone ? dom.cloneNode(true) : dom\n )\n })\n },\n wrapAll: function(structure){\n if (this[0]) {\n $(this[0]).before(structure = $(structure))\n var children\n // drill down to the inmost element\n while ((children = structure.children()).length) structure = children.first()\n $(structure).append(this)\n }\n return this\n },\n wrapInner: function(structure){\n var func = isFunction(structure)\n return this.each(function(index){\n var self = $(this), contents = self.contents(),\n dom = func ? structure.call(this, index) : structure\n contents.length ? contents.wrapAll(dom) : self.append(dom)\n })\n },\n unwrap: function(){\n this.parent().each(function(){\n $(this).replaceWith($(this).children())\n })\n return this\n },\n clone: function(){\n return this.map(function(){ return this.cloneNode(true) })\n },\n hide: function(){\n return this.css(\"display\", \"none\")\n },\n toggle: function(setting){\n return this.each(function(){\n var el = $(this)\n ;(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide()\n })\n },\n prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') },\n next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') },\n html: function(html){\n return 0 in arguments ?\n this.each(function(idx){\n var originHtml = this.innerHTML\n $(this).empty().append( funcArg(this, html, idx, originHtml) )\n }) :\n (0 in this ? this[0].innerHTML : null)\n },\n text: function(text){\n return 0 in arguments ?\n this.each(function(idx){\n var newText = funcArg(this, text, idx, this.textContent)\n this.textContent = newText == null ? '' : ''+newText\n }) :\n (0 in this ? this.pluck('textContent').join(\"\") : null)\n },\n attr: function(name, value){\n var result\n return (typeof name == 'string' && !(1 in arguments)) ?\n (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) :\n this.each(function(idx){\n if (this.nodeType !== 1) return\n if (isObject(name)) for (key in name) setAttribute(this, key, name[key])\n else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)))\n })\n },\n removeAttr: function(name){\n return this.each(function(){ this.nodeType === 1 && name.split(' ').forEach(function(attribute){\n setAttribute(this, attribute)\n }, this)})\n },\n prop: function(name, value){\n name = propMap[name] || name\n return (1 in arguments) ?\n this.each(function(idx){\n this[name] = funcArg(this, value, idx, this[name])\n }) :\n (this[0] && this[0][name])\n },\n removeProp: function(name){\n name = propMap[name] || name\n return this.each(function(){ delete this[name] })\n },\n data: function(name, value){\n var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase()\n\n var data = (1 in arguments) ?\n this.attr(attrName, value) :\n this.attr(attrName)\n\n return data !== null ? deserializeValue(data) : undefined\n },\n val: function(value){\n if (0 in arguments) {\n if (value == null) value = \"\"\n return this.each(function(idx){\n this.value = funcArg(this, value, idx, this.value)\n })\n } else {\n return this[0] && (this[0].multiple ?\n $(this[0]).find('option').filter(function(){ return this.selected }).pluck('value') :\n this[0].value)\n }\n },\n offset: function(coordinates){\n if (coordinates) return this.each(function(index){\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n }\n\n if ($this.css('position') == 'static') props['position'] = 'relative'\n $this.css(props)\n })\n if (!this.length) return null\n if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0]))\n return {top: 0, left: 0}\n var obj = this[0].getBoundingClientRect()\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n }\n },\n css: function(property, value){\n if (arguments.length < 2) {\n var element = this[0]\n if (typeof property == 'string') {\n if (!element) return\n return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property)\n } else if (isArray(property)) {\n if (!element) return\n var props = {}\n var computedStyle = getComputedStyle(element, '')\n $.each(property, function(_, prop){\n props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop))\n })\n return props\n }\n }\n\n var css = ''\n if (type(property) == 'string') {\n if (!value && value !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(property)) })\n else\n css = dasherize(property) + \":\" + maybeAddPx(property, value)\n } else {\n for (key in property)\n if (!property[key] && property[key] !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(key)) })\n else\n css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';'\n }\n\n return this.each(function(){ this.style.cssText += ';' + css })\n },\n index: function(element){\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0])\n },\n hasClass: function(name){\n if (!name) return false\n return emptyArray.some.call(this, function(el){\n return this.test(className(el))\n }, classRE(name))\n },\n addClass: function(name){\n if (!name) return this\n return this.each(function(idx){\n if (!('className' in this)) return\n classList = []\n var cls = className(this), newName = funcArg(this, name, idx, cls)\n newName.split(/\\s+/g).forEach(function(klass){\n if (!$(this).hasClass(klass)) classList.push(klass)\n }, this)\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"))\n })\n },\n removeClass: function(name){\n return this.each(function(idx){\n if (!('className' in this)) return\n if (name === undefined) return className(this, '')\n classList = className(this)\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function(klass){\n classList = classList.replace(classRE(klass), \" \")\n })\n className(this, classList.trim())\n })\n },\n toggleClass: function(name, when){\n if (!name) return this\n return this.each(function(idx){\n var $this = $(this), names = funcArg(this, name, idx, className(this))\n names.split(/\\s+/g).forEach(function(klass){\n (when === undefined ? !$this.hasClass(klass) : when) ?\n $this.addClass(klass) : $this.removeClass(klass)\n })\n })\n },\n scrollTop: function(value){\n if (!this.length) return\n var hasScrollTop = 'scrollTop' in this[0]\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset\n return this.each(hasScrollTop ?\n function(){ this.scrollTop = value } :\n function(){ this.scrollTo(this.scrollX, value) })\n },\n scrollLeft: function(value){\n if (!this.length) return\n var hasScrollLeft = 'scrollLeft' in this[0]\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset\n return this.each(hasScrollLeft ?\n function(){ this.scrollLeft = value } :\n function(){ this.scrollTo(value, this.scrollY) })\n },\n position: function() {\n if (!this.length) return\n\n var elem = this[0],\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset()\n\n // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n offset.top -= parseFloat( $(elem).css('margin-top') ) || 0\n offset.left -= parseFloat( $(elem).css('margin-left') ) || 0\n\n // Add offsetParent borders\n parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0\n parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0\n\n // Subtract the two offsets\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n }\n },\n offsetParent: function() {\n return this.map(function(){\n var parent = this.offsetParent || document.body\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\")\n parent = parent.offsetParent\n return parent\n })\n }\n }\n\n // for now\n $.fn.detach = $.fn.remove\n\n // Generate the `width` and `height` functions\n ;['width', 'height'].forEach(function(dimension){\n var dimensionProperty =\n dimension.replace(/./, function(m){ return m[0].toUpperCase() })\n\n $.fn[dimension] = function(value){\n var offset, el = this[0]\n if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] :\n isDocument(el) ? el.documentElement['scroll' + dimensionProperty] :\n (offset = this.offset()) && offset[dimension]\n else return this.each(function(idx){\n el = $(this)\n el.css(dimension, funcArg(this, value, idx, el[dimension]()))\n })\n }\n })\n\n function traverseNode(node, fun) {\n fun(node)\n for (var i = 0, len = node.childNodes.length; i < len; i++)\n traverseNode(node.childNodes[i], fun)\n }\n\n // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n adjacencyOperators.forEach(function(operator, operatorIndex) {\n var inside = operatorIndex % 2 //=> prepend, append\n\n $.fn[operator] = function(){\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType, nodes = $.map(arguments, function(arg) {\n var arr = []\n argType = type(arg)\n if (argType == \"array\") {\n arg.forEach(function(el) {\n if (el.nodeType !== undefined) return arr.push(el)\n else if ($.zepto.isZ(el)) return arr = arr.concat(el.get())\n arr = arr.concat(zepto.fragment(el))\n })\n return arr\n }\n return argType == \"object\" || arg == null ?\n arg : zepto.fragment(arg)\n }),\n parent, copyByClone = this.length > 1\n if (nodes.length < 1) return this\n\n return this.each(function(_, target){\n parent = inside ? target : target.parentNode\n\n // convert all methods to a \"before\" operation\n target = operatorIndex == 0 ? target.nextSibling :\n operatorIndex == 1 ? target.firstChild :\n operatorIndex == 2 ? target :\n null\n\n var parentInDocument = $.contains(document.documentElement, parent)\n\n nodes.forEach(function(node){\n if (copyByClone) node = node.cloneNode(true)\n else if (!parent) return $(node).remove()\n\n parent.insertBefore(node, target)\n if (parentInDocument) traverseNode(node, function(el){\n if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' &&\n (!el.type || el.type === 'text/javascript') && !el.src){\n var target = el.ownerDocument ? el.ownerDocument.defaultView : window\n target['eval'].call(target, el.innerHTML)\n }\n })\n })\n })\n }\n\n // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){\n $(html)[operator](this)\n return this\n }\n })\n\n zepto.Z.prototype = Z.prototype = $.fn\n\n // Export internal API functions in the `$.zepto` namespace\n zepto.uniq = uniq\n zepto.deserializeValue = deserializeValue\n $.zepto = zepto\n\n return $\n})()\n\nwindow.Zepto = Zepto\nwindow.$ === undefined && (window.$ = Zepto)\n\n;(function($){\n var jsonpID = +new Date(),\n document = window.document,\n key,\n name,\n rscript = /)<[^<]*)*<\\/script>/gi,\n scriptTypeRE = /^(?:text|application)\\/javascript/i,\n xmlTypeRE = /^(?:text|application)\\/xml/i,\n jsonType = 'application/json',\n htmlType = 'text/html',\n blankRE = /^\\s*$/,\n originAnchor = document.createElement('a')\n\n originAnchor.href = window.location.href\n\n // trigger a custom event and return false if it was cancelled\n function triggerAndReturn(context, eventName, data) {\n var event = $.Event(eventName)\n $(context).trigger(event, data)\n return !event.isDefaultPrevented()\n }\n\n // trigger an Ajax \"global\" event\n function triggerGlobal(settings, context, eventName, data) {\n if (settings.global) return triggerAndReturn(context || document, eventName, data)\n }\n\n // Number of active Ajax requests\n $.active = 0\n\n function ajaxStart(settings) {\n if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart')\n }\n function ajaxStop(settings) {\n if (settings.global && !(--$.active)) triggerGlobal(settings, null, 'ajaxStop')\n }\n\n // triggers an extra global event \"ajaxBeforeSend\" that's like \"ajaxSend\" but cancelable\n function ajaxBeforeSend(xhr, settings) {\n var context = settings.context\n if (settings.beforeSend.call(context, xhr, settings) === false ||\n triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false)\n return false\n\n triggerGlobal(settings, context, 'ajaxSend', [xhr, settings])\n }\n function ajaxSuccess(data, xhr, settings, deferred) {\n var context = settings.context, status = 'success'\n settings.success.call(context, data, status, xhr)\n if (deferred) deferred.resolveWith(context, [data, status, xhr])\n triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data])\n ajaxComplete(status, xhr, settings)\n }\n // type: \"timeout\", \"error\", \"abort\", \"parsererror\"\n function ajaxError(error, type, xhr, settings, deferred) {\n var context = settings.context\n settings.error.call(context, xhr, type, error)\n if (deferred) deferred.rejectWith(context, [xhr, type, error])\n triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type])\n ajaxComplete(type, xhr, settings)\n }\n // status: \"success\", \"notmodified\", \"error\", \"timeout\", \"abort\", \"parsererror\"\n function ajaxComplete(status, xhr, settings) {\n var context = settings.context\n settings.complete.call(context, xhr, status)\n triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings])\n ajaxStop(settings)\n }\n\n function ajaxDataFilter(data, type, settings) {\n if (settings.dataFilter == empty) return data\n var context = settings.context\n return settings.dataFilter.call(context, data, type)\n }\n\n // Empty function, used as default callback\n function empty() {}\n\n $.ajaxJSONP = function(options, deferred){\n if (!('type' in options)) return $.ajax(options)\n\n var _callbackName = options.jsonpCallback,\n callbackName = ($.isFunction(_callbackName) ?\n _callbackName() : _callbackName) || ('Zepto' + (jsonpID++)),\n script = document.createElement('script'),\n originalCallback = window[callbackName],\n responseData,\n abort = function(errorType) {\n $(script).triggerHandler('error', errorType || 'abort')\n },\n xhr = { abort: abort }, abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n $(script).on('load error', function(e, errorType){\n clearTimeout(abortTimeout)\n $(script).off().remove()\n\n if (e.type == 'error' || !responseData) {\n ajaxError(null, errorType || 'error', xhr, options, deferred)\n } else {\n ajaxSuccess(responseData[0], xhr, options, deferred)\n }\n\n window[callbackName] = originalCallback\n if (responseData && $.isFunction(originalCallback))\n originalCallback(responseData[0])\n\n originalCallback = responseData = undefined\n })\n\n if (ajaxBeforeSend(xhr, options) === false) {\n abort('abort')\n return xhr\n }\n\n window[callbackName] = function(){\n responseData = arguments\n }\n\n script.src = options.url.replace(/\\?(.+)=\\?/, '?$1=' + callbackName)\n document.head.appendChild(script)\n\n if (options.timeout > 0) abortTimeout = setTimeout(function(){\n abort('timeout')\n }, options.timeout)\n\n return xhr\n }\n\n $.ajaxSettings = {\n // Default type of request\n type: 'GET',\n // Callback that is executed before request\n beforeSend: empty,\n // Callback that is executed if the request succeeds\n success: empty,\n // Callback that is executed the the server drops error\n error: empty,\n // Callback that is executed on request complete (both: error and success)\n complete: empty,\n // The context for the callbacks\n context: null,\n // Whether to trigger \"global\" Ajax events\n global: true,\n // Transport\n xhr: function () {\n return new window.XMLHttpRequest()\n },\n // MIME types mapping\n // IIS returns Javascript as \"application/x-javascript\"\n accepts: {\n script: 'text/javascript, application/javascript, application/x-javascript',\n json: jsonType,\n xml: 'application/xml, text/xml',\n html: htmlType,\n text: 'text/plain'\n },\n // Whether the request is to another domain\n crossDomain: false,\n // Default timeout\n timeout: 0,\n // Whether data should be serialized to string\n processData: true,\n // Whether the browser should be allowed to cache GET responses\n cache: true,\n //Used to handle the raw response data of XMLHttpRequest.\n //This is a pre-filtering function to sanitize the response.\n //The sanitized response should be returned\n dataFilter: empty\n }\n\n function mimeToDataType(mime) {\n if (mime) mime = mime.split(';', 2)[0]\n return mime && ( mime == htmlType ? 'html' :\n mime == jsonType ? 'json' :\n scriptTypeRE.test(mime) ? 'script' :\n xmlTypeRE.test(mime) && 'xml' ) || 'text'\n }\n\n function appendQuery(url, query) {\n if (query == '') return url\n return (url + '&' + query).replace(/[&?]{1,2}/, '?')\n }\n\n // serialize payload and append it to the URL for GET requests\n function serializeData(options) {\n if (options.processData && options.data && $.type(options.data) != \"string\")\n options.data = $.param(options.data, options.traditional)\n if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType))\n options.url = appendQuery(options.url, options.data), options.data = undefined\n }\n\n $.ajax = function(options){\n var settings = $.extend({}, options || {}),\n deferred = $.Deferred && $.Deferred(),\n urlAnchor, hashIndex\n for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key]\n\n ajaxStart(settings)\n\n if (!settings.crossDomain) {\n urlAnchor = document.createElement('a')\n urlAnchor.href = settings.url\n // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049\n urlAnchor.href = urlAnchor.href\n settings.crossDomain = (originAnchor.protocol + '//' + originAnchor.host) !== (urlAnchor.protocol + '//' + urlAnchor.host)\n }\n\n if (!settings.url) settings.url = window.location.toString()\n if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex)\n serializeData(settings)\n\n var dataType = settings.dataType, hasPlaceholder = /\\?.+=\\?/.test(settings.url)\n if (hasPlaceholder) dataType = 'jsonp'\n\n if (settings.cache === false || (\n (!options || options.cache !== true) &&\n ('script' == dataType || 'jsonp' == dataType)\n ))\n settings.url = appendQuery(settings.url, '_=' + Date.now())\n\n if ('jsonp' == dataType) {\n if (!hasPlaceholder)\n settings.url = appendQuery(settings.url,\n settings.jsonp ? (settings.jsonp + '=?') : settings.jsonp === false ? '' : 'callback=?')\n return $.ajaxJSONP(settings, deferred)\n }\n\n var mime = settings.accepts[dataType],\n headers = { },\n setHeader = function(name, value) { headers[name.toLowerCase()] = [name, value] },\n protocol = /^([\\w-]+:)\\/\\//.test(settings.url) ? RegExp.$1 : window.location.protocol,\n xhr = settings.xhr(),\n nativeSetHeader = xhr.setRequestHeader,\n abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest')\n setHeader('Accept', mime || '*/*')\n if (mime = settings.mimeType || mime) {\n if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0]\n xhr.overrideMimeType && xhr.overrideMimeType(mime)\n }\n if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET'))\n setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded')\n\n if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name])\n xhr.setRequestHeader = setHeader\n\n xhr.onreadystatechange = function(){\n if (xhr.readyState == 4) {\n xhr.onreadystatechange = empty\n clearTimeout(abortTimeout)\n var result, error = false\n if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == 'file:')) {\n dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'))\n\n if (xhr.responseType == 'arraybuffer' || xhr.responseType == 'blob')\n result = xhr.response\n else {\n result = xhr.responseText\n\n try {\n // http://perfectionkills.com/global-eval-what-are-the-options/\n // sanitize response accordingly if data filter callback provided\n result = ajaxDataFilter(result, dataType, settings)\n if (dataType == 'script') (1,eval)(result)\n else if (dataType == 'xml') result = xhr.responseXML\n else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result)\n } catch (e) { error = e }\n\n if (error) return ajaxError(error, 'parsererror', xhr, settings, deferred)\n }\n\n ajaxSuccess(result, xhr, settings, deferred)\n } else {\n ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred)\n }\n }\n }\n\n if (ajaxBeforeSend(xhr, settings) === false) {\n xhr.abort()\n ajaxError(null, 'abort', xhr, settings, deferred)\n return xhr\n }\n\n var async = 'async' in settings ? settings.async : true\n xhr.open(settings.type, settings.url, async, settings.username, settings.password)\n\n if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name]\n\n for (name in headers) nativeSetHeader.apply(xhr, headers[name])\n\n if (settings.timeout > 0) abortTimeout = setTimeout(function(){\n xhr.onreadystatechange = empty\n xhr.abort()\n ajaxError(null, 'timeout', xhr, settings, deferred)\n }, settings.timeout)\n\n // avoid sending empty string (#319)\n xhr.send(settings.data ? settings.data : null)\n return xhr\n }\n\n // handle optional data/success arguments\n function parseArguments(url, data, success, dataType) {\n if ($.isFunction(data)) dataType = success, success = data, data = undefined\n if (!$.isFunction(success)) dataType = success, success = undefined\n return {\n url: url\n , data: data\n , success: success\n , dataType: dataType\n }\n }\n\n $.get = function(/* url, data, success, dataType */){\n return $.ajax(parseArguments.apply(null, arguments))\n }\n\n $.post = function(/* url, data, success, dataType */){\n var options = parseArguments.apply(null, arguments)\n options.type = 'POST'\n return $.ajax(options)\n }\n\n $.getJSON = function(/* url, data, success */){\n var options = parseArguments.apply(null, arguments)\n options.dataType = 'json'\n return $.ajax(options)\n }\n\n $.fn.load = function(url, data, success){\n if (!this.length) return this\n var self = this, parts = url.split(/\\s/), selector,\n options = parseArguments(url, data, success),\n callback = options.success\n if (parts.length > 1) options.url = parts[0], selector = parts[1]\n options.success = function(response){\n self.html(selector ?\n $('
').html(response.replace(rscript, \"\")).find(selector)\n : response)\n callback && callback.apply(self, arguments)\n }\n $.ajax(options)\n return this\n }\n\n var escape = encodeURIComponent\n\n function serialize(params, obj, traditional, scope){\n var type, array = $.isArray(obj), hash = $.isPlainObject(obj)\n $.each(obj, function(key, value) {\n type = $.type(value)\n if (scope) key = traditional ? scope :\n scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']'\n // handle data in serializeArray() format\n if (!scope && array) params.add(value.name, value.value)\n // recurse into nested objects\n else if (type == \"array\" || (!traditional && type == \"object\"))\n serialize(params, value, traditional, key)\n else params.add(key, value)\n })\n }\n\n $.param = function(obj, traditional){\n var params = []\n params.add = function(key, value) {\n if ($.isFunction(value)) value = value()\n if (value == null) value = \"\"\n this.push(escape(key) + '=' + escape(value))\n }\n serialize(params, obj, traditional)\n return params.join('&').replace(/%20/g, '+')\n }\n})(Zepto)\n\n;(function($){\n // Create a collection of callbacks to be fired in a sequence, with configurable behaviour\n // Option flags:\n // - once: Callbacks fired at most one time.\n // - memory: Remember the most recent context and arguments\n // - stopOnFalse: Cease iterating over callback list\n // - unique: Permit adding at most one instance of the same callback\n $.Callbacks = function(options) {\n options = $.extend({}, options)\n\n var memory, // Last fire value (for non-forgettable lists)\n fired, // Flag to know if list was already fired\n firing, // Flag to know if list is currently firing\n firingStart, // First callback to fire (used internally by add and fireWith)\n firingLength, // End of the loop when firing\n firingIndex, // Index of currently firing callback (modified by remove if needed)\n list = [], // Actual callback list\n stack = !options.once && [], // Stack of fire calls for repeatable lists\n fire = function(data) {\n memory = options.memory && data\n fired = true\n firingIndex = firingStart || 0\n firingStart = 0\n firingLength = list.length\n firing = true\n for ( ; list && firingIndex < firingLength ; ++firingIndex ) {\n if (list[firingIndex].apply(data[0], data[1]) === false && options.stopOnFalse) {\n memory = false\n break\n }\n }\n firing = false\n if (list) {\n if (stack) stack.length && fire(stack.shift())\n else if (memory) list.length = 0\n else Callbacks.disable()\n }\n },\n\n Callbacks = {\n add: function() {\n if (list) {\n var start = list.length,\n add = function(args) {\n $.each(args, function(_, arg){\n if (typeof arg === \"function\") {\n if (!options.unique || !Callbacks.has(arg)) list.push(arg)\n }\n else if (arg && arg.length && typeof arg !== 'string') add(arg)\n })\n }\n add(arguments)\n if (firing) firingLength = list.length\n else if (memory) {\n firingStart = start\n fire(memory)\n }\n }\n return this\n },\n remove: function() {\n if (list) {\n $.each(arguments, function(_, arg){\n var index\n while ((index = $.inArray(arg, list, index)) > -1) {\n list.splice(index, 1)\n // Handle firing indexes\n if (firing) {\n if (index <= firingLength) --firingLength\n if (index <= firingIndex) --firingIndex\n }\n }\n })\n }\n return this\n },\n has: function(fn) {\n return !!(list && (fn ? $.inArray(fn, list) > -1 : list.length))\n },\n empty: function() {\n firingLength = list.length = 0\n return this\n },\n disable: function() {\n list = stack = memory = undefined\n return this\n },\n disabled: function() {\n return !list\n },\n lock: function() {\n stack = undefined\n if (!memory) Callbacks.disable()\n return this\n },\n locked: function() {\n return !stack\n },\n fireWith: function(context, args) {\n if (list && (!fired || stack)) {\n args = args || []\n args = [context, args.slice ? args.slice() : args]\n if (firing) stack.push(args)\n else fire(args)\n }\n return this\n },\n fire: function() {\n return Callbacks.fireWith(this, arguments)\n },\n fired: function() {\n return !!fired\n }\n }\n\n return Callbacks\n }\n})(Zepto)\n\n;(function($){\n var slice = Array.prototype.slice\n\n function Deferred(func) {\n var tuples = [\n // action, add listener, listener list, final state\n [ \"resolve\", \"done\", $.Callbacks({once:1, memory:1}), \"resolved\" ],\n [ \"reject\", \"fail\", $.Callbacks({once:1, memory:1}), \"rejected\" ],\n [ \"notify\", \"progress\", $.Callbacks({memory:1}) ]\n ],\n state = \"pending\",\n promise = {\n state: function() {\n return state\n },\n always: function() {\n deferred.done(arguments).fail(arguments)\n return this\n },\n then: function(/* fnDone [, fnFailed [, fnProgress]] */) {\n var fns = arguments\n return Deferred(function(defer){\n $.each(tuples, function(i, tuple){\n var fn = $.isFunction(fns[i]) && fns[i]\n deferred[tuple[1]](function(){\n var returned = fn && fn.apply(this, arguments)\n if (returned && $.isFunction(returned.promise)) {\n returned.promise()\n .done(defer.resolve)\n .fail(defer.reject)\n .progress(defer.notify)\n } else {\n var context = this === promise ? defer.promise() : this,\n values = fn ? [returned] : arguments\n defer[tuple[0] + \"With\"](context, values)\n }\n })\n })\n fns = null\n }).promise()\n },\n\n promise: function(obj) {\n return obj != null ? $.extend( obj, promise ) : promise\n }\n },\n deferred = {}\n\n $.each(tuples, function(i, tuple){\n var list = tuple[2],\n stateString = tuple[3]\n\n promise[tuple[1]] = list.add\n\n if (stateString) {\n list.add(function(){\n state = stateString\n }, tuples[i^1][2].disable, tuples[2][2].lock)\n }\n\n deferred[tuple[0]] = function(){\n deferred[tuple[0] + \"With\"](this === deferred ? promise : this, arguments)\n return this\n }\n deferred[tuple[0] + \"With\"] = list.fireWith\n })\n\n promise.promise(deferred)\n if (func) func.call(deferred, deferred)\n return deferred\n }\n\n $.when = function(sub) {\n var resolveValues = slice.call(arguments),\n len = resolveValues.length,\n i = 0,\n remain = len !== 1 || (sub && $.isFunction(sub.promise)) ? len : 0,\n deferred = remain === 1 ? sub : Deferred(),\n progressValues, progressContexts, resolveContexts,\n updateFn = function(i, ctx, val){\n return function(value){\n ctx[i] = this\n val[i] = arguments.length > 1 ? slice.call(arguments) : value\n if (val === progressValues) {\n deferred.notifyWith(ctx, val)\n } else if (!(--remain)) {\n deferred.resolveWith(ctx, val)\n }\n }\n }\n\n if (len > 1) {\n progressValues = new Array(len)\n progressContexts = new Array(len)\n resolveContexts = new Array(len)\n for ( ; i < len; ++i ) {\n if (resolveValues[i] && $.isFunction(resolveValues[i].promise)) {\n resolveValues[i].promise()\n .done(updateFn(i, resolveContexts, resolveValues))\n .fail(deferred.reject)\n .progress(updateFn(i, progressContexts, progressValues))\n } else {\n --remain\n }\n }\n }\n if (!remain) deferred.resolveWith(resolveContexts, resolveValues)\n return deferred.promise()\n }\n\n $.Deferred = Deferred\n})(Zepto)\n\n;(function($){\n var _zid = 1, undefined,\n slice = Array.prototype.slice,\n isFunction = $.isFunction,\n isString = function(obj){ return typeof obj == 'string' },\n handlers = {},\n specialEvents={},\n focusinSupported = 'onfocusin' in window,\n focus = { focus: 'focusin', blur: 'focusout' },\n hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' }\n\n specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents'\n\n function zid(element) {\n return element._zid || (element._zid = _zid++)\n }\n function findHandlers(element, event, fn, selector) {\n event = parse(event)\n if (event.ns) var matcher = matcherFor(event.ns)\n return (handlers[zid(element)] || []).filter(function(handler) {\n return handler\n && (!event.e || handler.e == event.e)\n && (!event.ns || matcher.test(handler.ns))\n && (!fn || zid(handler.fn) === zid(fn))\n && (!selector || handler.sel == selector)\n })\n }\n function parse(event) {\n var parts = ('' + event).split('.')\n return {e: parts[0], ns: parts.slice(1).sort().join(' ')}\n }\n function matcherFor(ns) {\n return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)')\n }\n\n function eventCapture(handler, captureSetting) {\n return handler.del &&\n (!focusinSupported && (handler.e in focus)) ||\n !!captureSetting\n }\n\n function realEvent(type) {\n return hover[type] || (focusinSupported && focus[type]) || type\n }\n\n function add(element, events, fn, data, selector, delegator, capture){\n var id = zid(element), set = (handlers[id] || (handlers[id] = []))\n events.split(/\\s/).forEach(function(event){\n if (event == 'ready') return $(document).ready(fn)\n var handler = parse(event)\n handler.fn = fn\n handler.sel = selector\n // emulate mouseenter, mouseleave\n if (handler.e in hover) fn = function(e){\n var related = e.relatedTarget\n if (!related || (related !== this && !$.contains(this, related)))\n return handler.fn.apply(this, arguments)\n }\n handler.del = delegator\n var callback = delegator || fn\n handler.proxy = function(e){\n e = compatible(e)\n if (e.isImmediatePropagationStopped()) return\n e.data = data\n var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args))\n if (result === false) e.preventDefault(), e.stopPropagation()\n return result\n }\n handler.i = set.length\n set.push(handler)\n if ('addEventListener' in element)\n element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n }\n function remove(element, events, fn, selector, capture){\n var id = zid(element)\n ;(events || '').split(/\\s/).forEach(function(event){\n findHandlers(element, event, fn, selector).forEach(function(handler){\n delete handlers[id][handler.i]\n if ('removeEventListener' in element)\n element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n })\n }\n\n $.event = { add: add, remove: remove }\n\n $.proxy = function(fn, context) {\n var args = (2 in arguments) && slice.call(arguments, 2)\n if (isFunction(fn)) {\n var proxyFn = function(){ return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments) }\n proxyFn._zid = zid(fn)\n return proxyFn\n } else if (isString(context)) {\n if (args) {\n args.unshift(fn[context], fn)\n return $.proxy.apply(null, args)\n } else {\n return $.proxy(fn[context], fn)\n }\n } else {\n throw new TypeError(\"expected function\")\n }\n }\n\n $.fn.bind = function(event, data, callback){\n return this.on(event, data, callback)\n }\n $.fn.unbind = function(event, callback){\n return this.off(event, callback)\n }\n $.fn.one = function(event, selector, data, callback){\n return this.on(event, selector, data, callback, 1)\n }\n\n var returnTrue = function(){return true},\n returnFalse = function(){return false},\n ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,\n eventMethods = {\n preventDefault: 'isDefaultPrevented',\n stopImmediatePropagation: 'isImmediatePropagationStopped',\n stopPropagation: 'isPropagationStopped'\n }\n\n function compatible(event, source) {\n if (source || !event.isDefaultPrevented) {\n source || (source = event)\n\n $.each(eventMethods, function(name, predicate) {\n var sourceMethod = source[name]\n event[name] = function(){\n this[predicate] = returnTrue\n return sourceMethod && sourceMethod.apply(source, arguments)\n }\n event[predicate] = returnFalse\n })\n\n event.timeStamp || (event.timeStamp = Date.now())\n\n if (source.defaultPrevented !== undefined ? source.defaultPrevented :\n 'returnValue' in source ? source.returnValue === false :\n source.getPreventDefault && source.getPreventDefault())\n event.isDefaultPrevented = returnTrue\n }\n return event\n }\n\n function createProxy(event) {\n var key, proxy = { originalEvent: event }\n for (key in event)\n if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key]\n\n return compatible(proxy, event)\n }\n\n $.fn.delegate = function(selector, event, callback){\n return this.on(event, selector, callback)\n }\n $.fn.undelegate = function(selector, event, callback){\n return this.off(event, selector, callback)\n }\n\n $.fn.live = function(event, callback){\n $(document.body).delegate(this.selector, event, callback)\n return this\n }\n $.fn.die = function(event, callback){\n $(document.body).undelegate(this.selector, event, callback)\n return this\n }\n\n $.fn.on = function(event, selector, data, callback, one){\n var autoRemove, delegator, $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.on(type, selector, data, fn, one)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = data, data = selector, selector = undefined\n if (callback === undefined || data === false)\n callback = data, data = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(_, element){\n if (one) autoRemove = function(e){\n remove(element, e.type, callback)\n return callback.apply(this, arguments)\n }\n\n if (selector) delegator = function(e){\n var evt, match = $(e.target).closest(selector, element).get(0)\n if (match && match !== element) {\n evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element})\n return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)))\n }\n }\n\n add(element, event, callback, data, selector, delegator || autoRemove)\n })\n }\n $.fn.off = function(event, selector, callback){\n var $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.off(type, selector, fn)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = selector, selector = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(){\n remove(this, event, callback, selector)\n })\n }\n\n $.fn.trigger = function(event, args){\n event = (isString(event) || $.isPlainObject(event)) ? $.Event(event) : compatible(event)\n event._args = args\n return this.each(function(){\n // handle focus(), blur() by calling them directly\n if (event.type in focus && typeof this[event.type] == \"function\") this[event.type]()\n // items in the collection might not be DOM elements\n else if ('dispatchEvent' in this) this.dispatchEvent(event)\n else $(this).triggerHandler(event, args)\n })\n }\n\n // triggers event handlers on current element just as if an event occurred,\n // doesn't trigger an actual event, doesn't bubble\n $.fn.triggerHandler = function(event, args){\n var e, result\n this.each(function(i, element){\n e = createProxy(isString(event) ? $.Event(event) : event)\n e._args = args\n e.target = element\n $.each(findHandlers(element, event.type || event), function(i, handler){\n result = handler.proxy(e)\n if (e.isImmediatePropagationStopped()) return false\n })\n })\n return result\n }\n\n // shortcut methods for `.bind(event, fn)` for each event type\n ;('focusin focusout focus blur load resize scroll unload click dblclick '+\n 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave '+\n 'change select keydown keypress keyup error').split(' ').forEach(function(event) {\n $.fn[event] = function(callback) {\n return (0 in arguments) ?\n this.bind(event, callback) :\n this.trigger(event)\n }\n })\n\n $.Event = function(type, props) {\n if (!isString(type)) props = type, type = props.type\n var event = document.createEvent(specialEvents[type] || 'Events'), bubbles = true\n if (props) for (var name in props) (name == 'bubbles') ? (bubbles = !!props[name]) : (event[name] = props[name])\n event.initEvent(type, bubbles, true)\n return compatible(event)\n }\n\n})(Zepto)\n\n;(function(){\n // getComputedStyle shouldn't freak out when called\n // without a valid element as argument\n try {\n getComputedStyle(undefined)\n } catch(e) {\n var nativeGetComputedStyle = getComputedStyle\n window.getComputedStyle = function(element, pseudoElement){\n try {\n return nativeGetComputedStyle(element, pseudoElement)\n } catch(e) {\n return null\n }\n }\n }\n})()\n\n;(function($){\n var zepto = $.zepto, oldQsa = zepto.qsa, oldMatches = zepto.matches\n\n function visible(elem){\n elem = $(elem)\n return !!(elem.width() || elem.height()) && elem.css(\"display\") !== \"none\"\n }\n\n // Implements a subset from:\n // http://api.jquery.com/category/selectors/jquery-selector-extensions/\n //\n // Each filter function receives the current index, all nodes in the\n // considered set, and a value if there were parentheses. The value\n // of `this` is the node currently being considered. The function returns the\n // resulting node(s), null, or undefined.\n //\n // Complex selectors are not supported:\n // li:has(label:contains(\"foo\")) + li:has(label:contains(\"bar\"))\n // ul.inner:first > li\n var filters = $.expr[':'] = {\n visible: function(){ if (visible(this)) return this },\n hidden: function(){ if (!visible(this)) return this },\n selected: function(){ if (this.selected) return this },\n checked: function(){ if (this.checked) return this },\n parent: function(){ return this.parentNode },\n first: function(idx){ if (idx === 0) return this },\n last: function(idx, nodes){ if (idx === nodes.length - 1) return this },\n eq: function(idx, _, value){ if (idx === value) return this },\n contains: function(idx, _, text){ if ($(this).text().indexOf(text) > -1) return this },\n has: function(idx, _, sel){ if (zepto.qsa(this, sel).length) return this }\n }\n\n var filterRe = new RegExp('(.*):(\\\\w+)(?:\\\\(([^)]+)\\\\))?$\\\\s*'),\n childRe = /^\\s*>/,\n classTag = 'Zepto' + (+new Date())\n\n function process(sel, fn) {\n // quote the hash in `a[href^=#]` expression\n sel = sel.replace(/=#\\]/g, '=\"#\"]')\n var filter, arg, match = filterRe.exec(sel)\n if (match && match[2] in filters) {\n filter = filters[match[2]], arg = match[3]\n sel = match[1]\n if (arg) {\n var num = Number(arg)\n if (isNaN(num)) arg = arg.replace(/^[\"']|[\"']$/g, '')\n else arg = num\n }\n }\n return fn(sel, filter, arg)\n }\n\n zepto.qsa = function(node, selector) {\n return process(selector, function(sel, filter, arg){\n try {\n var taggedParent\n if (!sel && filter) sel = '*'\n else if (childRe.test(sel))\n // support \"> *\" child queries by tagging the parent node with a\n // unique class and prepending that classname onto the selector\n taggedParent = $(node).addClass(classTag), sel = '.'+classTag+' '+sel\n\n var nodes = oldQsa(node, sel)\n } catch(e) {\n console.error('error performing selector: %o', selector)\n throw e\n } finally {\n if (taggedParent) taggedParent.removeClass(classTag)\n }\n return !filter ? nodes :\n zepto.uniq($.map(nodes, function(n, i){ return filter.call(n, i, nodes, arg) }))\n })\n }\n\n zepto.matches = function(node, selector){\n return process(selector, function(sel, filter, arg){\n return (!sel || oldMatches(node, sel)) &&\n (!filter || filter.call(node, null, arg) === node)\n })\n }\n})(Zepto)\nmodule.exports = Zepto\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/clappr-zepto/zepto.js\n// module id = 6\n// module chunks = 0","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader/lib/css-base.js\n// module id = 7\n// module chunks = 0","/* eslint-disable no-var */\n// Simple JavaScript Templating\n// Paul Miller (http://paulmillr.com)\n// http://underscorejs.org\n// (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\n// By default, Underscore uses ERB-style template delimiters, change the\n// following template settings to use alternative delimiters.\nvar settings = {\n evaluate : /<%([\\s\\S]+?)%>/g,\n interpolate : /<%=([\\s\\S]+?)%>/g,\n escape : /<%-([\\s\\S]+?)%>/g\n}\n\n// When customizing `templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n '\\'': '\\'',\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\t': 't',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n}\n\nvar escaper = /\\\\|'|\\r|\\n|\\t|\\u2028|\\u2029/g\n\n// List of HTML entities for escaping.\nvar htmlEntities = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': '''\n}\n\nvar entityRe = new RegExp('[&<>\"\\']', 'g')\n\nvar escapeExpr = function(string) {\n if (string === null) return ''\n return ('' + string).replace(entityRe, function(match) {\n return htmlEntities[match]\n })\n}\n\nvar counter = 0\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\nvar tmpl = function(text, data) {\n var render\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = new RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g')\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0\n var source = '__p+=\\''\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset)\n .replace(escaper, function(match) { return '\\\\' + escapes[match] })\n\n if (escape)\n source += '\\'+\\n((__t=(' + escape + '))==null?\\'\\':escapeExpr(__t))+\\n\\''\n\n if (interpolate)\n source += '\\'+\\n((__t=(' + interpolate + '))==null?\\'\\':__t)+\\n\\''\n\n if (evaluate)\n source += '\\';\\n' + evaluate + '\\n__p+=\\''\n\n index = offset + match.length\n return match\n })\n source += '\\';\\n'\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n'\n\n source = 'var __t,__p=\\'\\',__j=Array.prototype.join,' +\n 'print=function(){__p+=__j.call(arguments,\\'\\');};\\n' +\n source + 'return __p;\\n//# sourceURL=/microtemplates/source[' + counter++ + ']'\n\n try {\n /*jshint -W054 */\n // TODO: find a way to avoid eval\n render = new Function(settings.variable || 'obj', 'escapeExpr', source)\n } catch (e) {\n e.source = source\n throw e\n }\n\n if (data) return render(data, escapeExpr)\n var template = function(data) {\n return render.call(this, data, escapeExpr)\n }\n\n // Provide the compiled function source as a convenience for precompilation.\n template.source = 'function(' + (settings.variable || 'obj') + '){\\n' + source + '}'\n\n return template\n}\ntmpl.settings = settings\n\nexport default tmpl\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/template.js","import { extend } from './utils'\nimport UIObject from './ui_object'\n\n/**\n * An abstraction to represent a generic playback, it's like an interface to be implemented by subclasses.\n * @class Playback\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class Playback extends UIObject {\n /**\n * Determine if the playback does not contain video/has video but video should be ignored.\n * @property isAudioOnly\n * @type Boolean\n */\n get isAudioOnly() {\n return false\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return false\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this._i18n\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return false\n }\n\n /**\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n constructor(options, i18n) {\n super(options)\n this.settings = {}\n this._i18n = i18n\n }\n\n /**\n * Gives user consent to playback (mobile devices).\n * @method consent\n */\n consent() {}\n\n /**\n * plays the playback.\n * @method play\n */\n play() {}\n\n /**\n * pauses the playback.\n * @method pause\n */\n pause() {}\n\n /**\n * stops the playback.\n * @method stop\n */\n stop() {}\n\n /**\n * seeks the playback to a given `time` in seconds\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration\n */\n seek(time) {} // eslint-disable-line no-unused-vars\n\n /**\n * seeks the playback to a given `percentage` in percentage\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100\n */\n seekPercentage(percentage) {} // eslint-disable-line no-unused-vars\n\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() { return 0 }\n\n /**\n * gets the duration in seconds\n * @method getDuration\n * @return {Number} duration (in seconds) of the current source\n */\n getDuration() { return 0 }\n\n /**\n * checks if the playback is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current playback is playing, otherwise `false`\n */\n isPlaying() {\n return false\n }\n\n /**\n * checks if the playback is ready.\n * @property isReady\n * @type {Boolean} `true` if the current playback is ready, otherwise `false`\n */\n get isReady() {\n return false\n }\n\n /**\n * checks if the playback has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n get hasClosedCaptionsTracks() {\n return this.closedCaptionsTracks.length > 0\n }\n\n /**\n * gets the playback available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n get closedCaptionsTracks() {\n return []\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n get closedCaptionsTrackId() {\n return -1\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n set closedCaptionsTrackId(trackId) {} // eslint-disable-line no-unused-vars\n\n /**\n * gets the playback type (`'vod', 'live', 'aod'`)\n * @method getPlaybackType\n * @return {String} you should write the playback type otherwise it'll assume `'no_op'`\n * @example\n * ```javascript\n * html5VideoPlayback.getPlaybackType() //vod\n * html5AudioPlayback.getPlaybackType() //aod\n * html5VideoPlayback.getPlaybackType() //live\n * flashHlsPlayback.getPlaybackType() //live\n * ```\n */\n getPlaybackType() {\n return Playback.NO_OP\n }\n\n /**\n * checks if the playback is in HD.\n * @method isHighDefinitionInUse\n * @return {Boolean} `true` if the playback is playing in HD, otherwise `false`\n */\n isHighDefinitionInUse() {\n return false\n }\n\n /**\n * sets the volume for the playback\n * @method volume\n * @param {Number} value a number between 0 (`muted`) to 100 (`max`)\n */\n volume(value) {} // eslint-disable-line no-unused-vars\n\n /**\n * destroys the playback, removing it from DOM\n * @method destroy\n */\n destroy() {\n this.$el.remove()\n }\n}\n\nPlayback.extend = function(properties) {\n return extend(Playback, properties)\n}\n\n/**\n * checks if the playback can play a given `source`\n * If a mimeType is provided then this will be used instead of inferring the mimetype\n * from the source extension.\n * @method canPlay\n * @static\n * @param {String} source the given source ex: `http://example.com/play.mp4`\n * @param {String} [mimeType] the given mime type, ex: `'application/vnd.apple.mpegurl'`\n * @return {Boolean} `true` if the playback is playable, otherwise `false`\n */\nPlayback.canPlay = (source, mimeType) => { // eslint-disable-line no-unused-vars\n return false\n}\n\n/**\n * a playback type for video on demand\n *\n * @property VOD\n * @static\n * @type String\n */\nPlayback.VOD = 'vod'\n/**\n * a playback type for audio on demand\n *\n * @property AOD\n * @static\n * @type String\n */\nPlayback.AOD = 'aod'\n/**\n * a playback type for live video\n *\n * @property LIVE\n * @static\n * @type String\n */\nPlayback.LIVE = 'live'\n/**\n * a default playback type\n *\n * @property NO_OP\n * @static\n * @type String\n */\nPlayback.NO_OP = 'no_op'\n/**\n * the plugin type\n *\n * @property type\n * @static\n * @type String\n */\nPlayback.type = 'playback'\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/playback.js","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(selector) {\n\t\tif (typeof memo[selector] === \"undefined\") {\n\t\t\tvar styleTarget = fn.call(this, selector);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[selector] = styleTarget;\n\t\t}\n\t\treturn memo[selector]\n\t};\n})(function (target) {\n\treturn document.querySelector(target)\n});\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of ').html(template(style.toString())(options))\n }\n}\n\nexport default Styler\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/styler.js","import Loader from './loader'\nexport default Loader\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loader/index.js","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/array/from.js\n// module id = 79\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/toConsumableArray.js\n// module id = 80\n// module chunks = 0","import Flash from './flash'\nexport default Flash\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/flash/index.js","import HTML5Audio from './html5_audio'\nexport default HTML5Audio\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html5_audio/index.js","import FlasHLS from './flashls'\nexport default FlasHLS\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/flashls/index.js","import HLS from './hls'\nexport default HLS\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/hls/index.js","import HTMLImg from './html_img'\nexport default HTMLImg\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html_img/index.js","import NoOp from './no_op'\nexport default NoOp\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/no_op/index.js","import PosterPlugin from './poster'\nexport default PosterPlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/poster/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Player from './components/player'\nimport Utils from './base/utils'\nimport Events from './base/events'\nimport Playback from './base/playback'\nimport ContainerPlugin from './base/container_plugin'\nimport CorePlugin from './base/core_plugin'\nimport UICorePlugin from './base/ui_core_plugin'\nimport UIContainerPlugin from './base/ui_container_plugin'\nimport BaseObject from './base/base_object'\nimport UIObject from './base/ui_object'\nimport Browser from './components/browser'\nimport Container from './components/container'\nimport Core from './components/core'\nimport Loader from './components/loader'\nimport Mediator from './components/mediator'\nimport MediaControl from './components/media_control'\nimport PlayerInfo from './components/player_info'\nimport BaseFlashPlayback from './playbacks/base_flash_playback'\nimport Flash from './playbacks/flash'\nimport FlasHLS from './playbacks/flashls'\nimport HLS from './playbacks/hls'\nimport HTML5Audio from './playbacks/html5_audio'\nimport HTML5Video from './playbacks/html5_video'\nimport HTMLImg from './playbacks/html_img'\nimport NoOp from './playbacks/no_op'\nimport Poster from './plugins/poster'\nimport Log from './plugins/log'\nimport Styler from './base/styler'\nimport Vendor from './vendor'\nimport template from './base/template'\n\nimport $ from 'clappr-zepto'\n\nconst version = VERSION\n\nexport default {\n Player,\n Mediator,\n Events,\n Browser,\n PlayerInfo,\n MediaControl,\n ContainerPlugin,\n UIContainerPlugin,\n CorePlugin,\n UICorePlugin,\n Playback,\n Container,\n Core,\n Loader,\n BaseObject,\n UIObject,\n Utils,\n BaseFlashPlayback,\n Flash,\n FlasHLS,\n HLS,\n HTML5Audio,\n HTML5Video,\n HTMLImg,\n NoOp,\n Poster,\n Log,\n Styler,\n Vendor,\n version,\n template,\n $\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { uniqueId, currentScriptUrl } from '../base/utils'\n\nimport BaseObject from '../base/base_object'\nimport Events from '../base/events'\nimport Browser from './browser'\nimport CoreFactory from './core_factory'\nimport Loader from './loader'\nimport PlayerInfo from './player_info'\nimport $ from 'clappr-zepto'\n\nconst baseUrl = currentScriptUrl().replace(/\\/[^/]+$/, '')\n\n/**\n * @class Player\n * @constructor\n * @extends BaseObject\n * @module components\n * @example\n * ### Using the Player\n *\n * Add the following script on your HTML:\n * ```html\n * \n * \n * \n * ```\n * Now, create the player:\n * ```html\n * \n *
\n * \n * \n * ```\n */\nexport default class Player extends BaseObject {\n\n set loader(loader) { this._loader = loader }\n get loader() {\n if (!this._loader)\n this._loader = new Loader(this.options.plugins || {}, this.options.playerId)\n\n return this._loader\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.core.mediaControl.container.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.core.mediaControl.container.buffering\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n get isReady() {\n return !!this._ready\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n get eventsMapping() {\n return {\n onReady: Events.PLAYER_READY,\n onResize: Events.PLAYER_RESIZE,\n onPlay: Events.PLAYER_PLAY,\n onPause: Events.PLAYER_PAUSE,\n onStop: Events.PLAYER_STOP,\n onEnded: Events.PLAYER_ENDED,\n onSeek: Events.PLAYER_SEEK,\n onError: Events.PLAYER_ERROR,\n onTimeUpdate: Events.PLAYER_TIMEUPDATE,\n onVolumeUpdate: Events.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: Events.PLAYER_SUBTITLE_AVAILABLE\n }\n }\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {String} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload]\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength]\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu]\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n */\n constructor(options) {\n super(options)\n const defaultOptions = { playerId: uniqueId(''), persistConfig: true, width: 640, height: 360, baseUrl: baseUrl, allowUserInteraction: Browser.isMobile }\n this._options = $.extend(defaultOptions, options)\n this.options.sources = this._normalizeSources(options)\n if (!this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n this.options.allowUserInteraction = true\n }\n if (!this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n this.options.disableKeyboardShortcuts = true\n }\n this._registerOptionEventListeners()\n this._coreFactory = new CoreFactory(this)\n this.playerInfo = PlayerInfo.getInstance(this.options.playerId)\n this.playerInfo.currentSize = { width: options.width, height: options.height }\n this.playerInfo.options = this.options\n if (this.options.parentId)\n this.setParentId(this.options.parentId)\n\n else if (this.options.parent)\n this.attachTo(this.options.parent)\n\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n setParentId(parentId) {\n const el = document.querySelector(parentId)\n if (el)\n this.attachTo(el)\n\n return this\n }\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n attachTo(element) {\n this.options.parentElement = element\n this.core = this._coreFactory.create()\n this._addEventListeners()\n return this\n }\n\n _addEventListeners() {\n if (!this.core.isReady)\n this.listenToOnce(this.core, Events.CORE_READY, this._onReady)\n else\n this._onReady()\n\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this._containerChanged)\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this._onFullscreenChange)\n return this\n }\n\n _addContainerEventListeners() {\n const container = this.core.mediaControl.container\n if (container) {\n this.listenTo(container, Events.CONTAINER_PLAY, this._onPlay)\n this.listenTo(container, Events.CONTAINER_PAUSE, this._onPause)\n this.listenTo(container, Events.CONTAINER_STOP, this._onStop)\n this.listenTo(container, Events.CONTAINER_ENDED, this._onEnded)\n this.listenTo(container, Events.CONTAINER_SEEK, this._onSeek)\n this.listenTo(container, Events.CONTAINER_ERROR, this._onError)\n this.listenTo(container, Events.CONTAINER_TIMEUPDATE, this._onTimeUpdate)\n this.listenTo(container, Events.CONTAINER_VOLUME, this._onVolumeUpdate)\n this.listenTo(container, Events.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable)\n }\n return this\n }\n\n _registerOptionEventListeners() {\n const userEvents = this.options.events || {}\n Object.keys(userEvents).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n if (eventType) {\n let eventFunction = userEvents[userEvent]\n eventFunction = typeof eventFunction === 'function' && eventFunction\n eventFunction && this.on(eventType, eventFunction)\n }\n })\n return this\n }\n\n _containerChanged() {\n this.stopListening()\n this._addEventListeners()\n }\n\n _onReady() {\n this._ready = true\n this._addContainerEventListeners()\n this.trigger(Events.PLAYER_READY)\n }\n\n _onFullscreenChange(fullscreen) {\n this.trigger(Events.PLAYER_FULLSCREEN, fullscreen)\n }\n\n _onVolumeUpdate(volume) {\n this.trigger(Events.PLAYER_VOLUMEUPDATE, volume)\n }\n\n _onSubtitleAvailable() {\n this.trigger(Events.PLAYER_SUBTITLE_AVAILABLE)\n }\n\n _onPlay() {\n this.trigger(Events.PLAYER_PLAY)\n }\n\n _onPause() {\n this.trigger(Events.PLAYER_PAUSE)\n }\n\n _onStop() {\n this.trigger(Events.PLAYER_STOP, this.getCurrentTime())\n }\n\n _onEnded() {\n this.trigger(Events.PLAYER_ENDED)\n }\n\n _onSeek(time) {\n this.trigger(Events.PLAYER_SEEK, time)\n }\n\n _onTimeUpdate(timeProgress) {\n this.trigger(Events.PLAYER_TIMEUPDATE, timeProgress)\n }\n\n _onError(error) {\n this.trigger(Events.PLAYER_ERROR, error)\n }\n\n _normalizeSources(options) {\n const sources = options.sources || (options.source !== undefined? [options.source] : [])\n return sources.length === 0 ? [{ source:'', mimeType:'' }] : sources\n }\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n resize(size) {\n this.core.resize(size)\n return this\n }\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <>, mimeType: <>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined)\n this.configure({ autoPlay: !!autoPlay })\n\n this.core.load(sources, mimeType)\n return this\n }\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n destroy() {\n this.core.destroy()\n return this\n }\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n consent() {\n this.core.getCurrentPlayback().consent()\n return this\n }\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n play() {\n this.core.mediaControl.container.play()\n return this\n }\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n pause() {\n this.core.mediaControl.container.pause()\n return this\n }\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n stop() {\n this.core.mediaControl.container.stop()\n return this\n }\n\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n seek(time) {\n this.core.mediaControl.container.seek(time)\n return this\n }\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n seekPercentage(percentage) {\n this.core.mediaControl.container.seekPercentage(percentage)\n return this\n }\n\n /**\n * Set the volume for the current video (`source`).\n * @method setVolume\n * @param {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n * @return {Player} itself\n */\n setVolume(volume) {\n if (this.core && this.core.mediaControl)\n this.core.mediaControl.setVolume(volume)\n\n return this\n }\n\n /**\n * Get the volume for the current video\n * @method getVolume\n * @return {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n */\n getVolume() {\n return this.core && this.core.mediaControl ? this.core.mediaControl.volume : 0\n }\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n mute() {\n this._mutedVolume = this.getVolume()\n this.setVolume(0)\n return this\n }\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100)\n this._mutedVolume = null\n return this\n }\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n isPlaying() {\n return this.core.mediaControl.container.isPlaying()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return this.core.mediaControl.container.isDvrEnabled()\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return this.core.mediaControl.container.isDvrInUse()\n }\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n configure(options) {\n this.core.configure(options)\n return this\n }\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n getPlugin(name) {\n const plugins = this.core.plugins.concat(this.core.mediaControl.container.plugins)\n return plugins.filter(plugin => plugin.name === name)[0]\n }\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n getCurrentTime() {\n return this.core.mediaControl.container.getCurrentTime()\n }\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() {\n return this.core.mediaControl.container.getStartTimeOffset()\n }\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n getDuration() {\n return this.core.mediaControl.container.getDuration()\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/player.js","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/keys.js\n// module id = 90\n// module chunks = 0","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.keys.js\n// module id = 91\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iobject.js\n// module id = 92\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-includes.js\n// module id = 93\n// module chunks = 0","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-index.js\n// module id = 94\n// module chunks = 0","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_a-function.js\n// module id = 95\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol/iterator.js\n// module id = 96\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/iterator.js\n// module id = 97\n// module chunks = 0","var toInteger = require('./_to-integer')\n , defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_string-at.js\n// module id = 98\n// module chunks = 0","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-create.js\n// module id = 99\n// module chunks = 0","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dps.js\n// module id = 100\n// module chunks = 0","module.exports = require('./_global').document && document.documentElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_html.js\n// module id = 101\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gpo.js\n// module id = 102\n// module chunks = 0","require('./es6.array.iterator');\nvar global = require('./_global')\n , hide = require('./_hide')\n , Iterators = require('./_iterators')\n , TO_STRING_TAG = require('./_wks')('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype;\n if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/web.dom.iterable.js\n// module id = 103\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n , step = require('./_iter-step')\n , Iterators = require('./_iterators')\n , toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.array.iterator.js\n// module id = 104\n// module chunks = 0","module.exports = function(){ /* empty */ };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_add-to-unscopables.js\n// module id = 105\n// module chunks = 0","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-step.js\n// module id = 106\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol.js\n// module id = 107\n// module chunks = 0","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/index.js\n// module id = 108\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global')\n , has = require('./_has')\n , DESCRIPTORS = require('./_descriptors')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , META = require('./_meta').KEY\n , $fails = require('./_fails')\n , shared = require('./_shared')\n , setToStringTag = require('./_set-to-string-tag')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , wksExt = require('./_wks-ext')\n , wksDefine = require('./_wks-define')\n , keyOf = require('./_keyof')\n , enumKeys = require('./_enum-keys')\n , isArray = require('./_is-array')\n , anObject = require('./_an-object')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , createDesc = require('./_property-desc')\n , _create = require('./_object-create')\n , gOPNExt = require('./_object-gopn-ext')\n , $GOPD = require('./_object-gopd')\n , $DP = require('./_object-dp')\n , $keys = require('./_object-keys')\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./_library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.symbol.js\n// module id = 109\n// module chunks = 0","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_meta.js\n// module id = 110\n// module chunks = 0","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_keyof.js\n// module id = 111\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie');\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_enum-keys.js\n// module id = 112\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-array.js\n// module id = 113\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject')\n , gOPN = require('./_object-gopn').f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn-ext.js\n// module id = 114\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.async-iterator.js\n// module id = 116\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.observable.js\n// module id = 117\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/define-property.js\n// module id = 118\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.define-property.js\n// module id = 119\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/set-prototype-of.js\n// module id = 120\n// module chunks = 0","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/set-prototype-of.js\n// module id = 121\n// module chunks = 0","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.set-prototype-of.js\n// module id = 122\n// module chunks = 0","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object')\n , anObject = require('./_an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-proto.js\n// module id = 123\n// module chunks = 0","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D){\n return $Object.create(P, D);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/create.js\n// module id = 124\n// module chunks = 0","var $export = require('./_export')\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: require('./_object-create')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.create.js\n// module id = 125\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js\n// module id = 126\n// module chunks = 0","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/get-own-property-descriptor.js\n// module id = 127\n// module chunks = 0","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject')\n , $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js\n// module id = 128\n// module chunks = 0","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null)\n throw new TypeError('\"this\" is null or not defined')\n\n\n let o = Object(this)\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n let len = o.length >>> 0\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function')\n throw new TypeError('predicate must be a function')\n\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n let thisArg = arguments[1]\n\n // 5. Let k be 0.\n let k = 0\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n let kValue = o[k]\n if (predicate.call(thisArg, kValue, k, o))\n return kValue\n\n // e. Increase k by 1.\n k++\n }\n\n // 7. Return undefined.\n return undefined\n }\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/polyfills.js","\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { Kibo } from '../../vendor'\n\nconst BOLD = 'font-weight: bold; font-size: 13px;'\nconst INFO = 'color: #006600;' + BOLD\nconst DEBUG = 'color: #0000ff;' + BOLD\nconst WARN = 'color: #ff8000;' + BOLD\nconst ERROR = 'color: #ff0000;' + BOLD\n\nconst LEVEL_DEBUG = 0\nconst LEVEL_INFO = 1\nconst LEVEL_WARN = 2\nconst LEVEL_ERROR = 3\nconst LEVEL_DISABLED = LEVEL_ERROR\n\nconst COLORS = [DEBUG, INFO, WARN, ERROR, ERROR]\nconst DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled']\n\nexport default class Log {\n constructor(level = LEVEL_INFO, offLevel = LEVEL_DISABLED) {\n this.kibo = new Kibo()\n this.kibo.down(['ctrl shift d'], () => this.onOff())\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress']\n this.level = level\n this.offLevel = offLevel\n }\n\n debug(klass) { this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1)) }\n info(klass) { this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1)) }\n warn(klass) { this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1)) }\n error(klass) { this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1)) }\n\n onOff() {\n if (this.level === this.offLevel) { this.level = this.previousLevel } else {\n this.previousLevel = this.level\n this.level = this.offLevel\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log)\n window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN)\n\n }\n\n level(newLevel) {\n this.level = newLevel\n }\n\n log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return\n if (level < this.level) return\n\n if (!message) {\n message = klass\n klass = null\n }\n const color = COLORS[level]\n let klassDescription = ''\n if (klass)\n klassDescription = '[' + klass + ']'\n\n if (window.console && window.console.log)\n window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message))\n\n }\n}\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG\nLog.LEVEL_INFO = LEVEL_INFO\nLog.LEVEL_WARN = LEVEL_WARN\nLog.LEVEL_ERROR = LEVEL_ERROR\n\nLog.getInstance = function() {\n if (this._instance === undefined) {\n this._instance = new this()\n this._instance.previousLevel = this._instance.level\n this._instance.level = this._instance.offLevel\n }\n return this._instance\n}\n\nLog.setLevel = function(level) { this.getInstance().level = level }\n\nLog.debug = function() { this.getInstance().debug.apply(this.getInstance(), arguments) }\nLog.info = function() { this.getInstance().info.apply(this.getInstance(), arguments) }\nLog.warn = function() { this.getInstance().warn.apply(this.getInstance(), arguments) }\nLog.error = function() { this.getInstance().error.apply(this.getInstance(), arguments) }\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/log/log.js","/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function() {\n for(var key in Kibo.KEY_NAMES_BY_CODE) {\n if(Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = (function() {\n if(document.addEventListener) {\n return function(element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n }\n else if(document.attachEvent) {\n return function(element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.unregisterEvent = (function() {\n if(document.removeEventListener) {\n return function(element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n }\n else if(document.detachEvent) {\n return function(element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.stringContains = function(string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function(string) {\n return string.toLowerCase().replace(/^./, function(match) { return match.toUpperCase(); });\n};\n\nKibo.isString = function(what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = (function() {\n if(Array.prototype.indexOf) {\n return function(haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n }\n else {\n return function(haystack, needle) {\n for(var i = 0; i < haystack.length; i++) {\n if(haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n})();\n\nKibo.extractModifiers = function(keyCombination) {\n var modifiers, i\n modifiers = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n}\n\nKibo.extractKey = function(keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for(i = 0; i < keys.length; i++) {\n if(!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function(keyCombination) {\n var result, key;\n\n if(Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if(key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n}\n\nKibo.keyName = function(keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function(keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function() {\n var i, that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function(upOrDown) {\n var that = this;\n return function(e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if(Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for(i = 0; i < registeredKeys.any.length; i++) {\n if((registeredKeys.any[i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if(registeredKeys[lastModifiersAndKey]) {\n for(i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if((registeredKeys[lastModifiersAndKey][i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function(upOrDown, newKeys, func) {\n var i, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function(upOrDown, newKeys, func) {\n var i, j, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(func === null) {\n delete registeredKeys[keys];\n } else {\n if(registeredKeys[keys]) {\n for(j = 0; j < registeredKeys[keys].length; j++) {\n if(String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function(keys) {\n return this.unregisterKeys('down', keys, null);\n}\n\nKibo.prototype.delegate = function(upOrDown, keys, func) {\n return (func !== null || func !== undefined) ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function(keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function(keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function(modifier) {\n if(!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function() {\n var result, i;\n\n result = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if(!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexport default Kibo\n\n\n\n// WEBPACK FOOTER //\n// ./src/vendor/kibo.js","import CoreFactory from './core_factory'\nexport default CoreFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseObject from '../../base/base_object'\nimport Core from '../core'\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class CoreFactory extends BaseObject {\n\n get loader() { return this.player.loader }\n\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n constructor(player) {\n super()\n this.player = player\n this._options = player.options\n }\n\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n create() {\n this.options.loader = this.loader\n this.core = new Core(this.options)\n this.addCorePlugins()\n this.core.createContainers(this.options)\n return this.core\n }\n\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n addCorePlugins() {\n this.loader.corePlugins.forEach((Plugin) => {\n const plugin = new Plugin(this.core)\n this.core.addPlugin(plugin)\n this.setupExternalInterface(plugin)\n })\n return this.core\n }\n\n setupExternalInterface(plugin) {\n const externalFunctions = plugin.getExternalInterface()\n for (const key in externalFunctions)\n this.player[key] = externalFunctions[key].bind(plugin)\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/core_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, Fullscreen, DomRecycler } from '../../base/utils'\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport Browser from '../../components/browser'\nimport ContainerFactory from '../../components/container_factory'\nimport MediaControl from '../../components/media_control'\nimport Mediator from '../../components/mediator'\nimport PlayerInfo from '../../components/player_info'\n\nimport Styler from '../../base/styler'\n\nimport $ from 'clappr-zepto'\n\nimport './public/style.scss'\nimport fontStyle from './public/fonts.css'\n\nlet style\n\n/**\n * The Core is responsible to manage Containers, the mediator, MediaControl\n * and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\nexport default class Core extends UIObject {\n get events() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'showMediaControl',\n 'mouseleave': 'hideMediaControl'\n }\n }\n\n get attributes() {\n return {\n 'data-player': '',\n tabindex: 9999\n }\n }\n\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n get isReady() {\n return !!this.ready\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this.getPlugin('strings') || { t: (key) => key }\n }\n\n constructor(options) {\n super(options)\n this.configureDomRecycler()\n this.playerInfo = PlayerInfo.getInstance(options.playerId)\n this.firstResize = true\n this.plugins = []\n this.containers = []\n this.setupMediaControl(null)\n //FIXME fullscreen api sucks\n this._boundFullscreenHandler = () => this.handleFullscreenChange()\n $(document).bind('fullscreenchange', this._boundFullscreenHandler)\n $(document).bind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).bind('mozfullscreenchange', this._boundFullscreenHandler)\n Browser.isMobile && $(window).bind('resize', (o) => { this.handleWindowResize(o) })\n }\n\n configureDomRecycler() {\n let recycleVideo = (this.options && this.options.playback && this.options.playback.recycleVideo) ? true : false\n DomRecycler.configure({\n recycleVideo: recycleVideo\n })\n }\n\n createContainers(options) {\n this.defer = $.Deferred()\n this.defer.promise(this)\n this.containerFactory = new ContainerFactory(options, options.loader, this.i18n)\n this.containerFactory\n .createContainers()\n .then((containers) => this.setupContainers(containers))\n .then((containers) => this.resolveOnContainersReady(containers))\n }\n\n updateSize() {\n if (Fullscreen.isFullscreen())\n this.setFullscreen()\n else\n this.setPlayerSize()\n\n }\n\n setFullscreen() {\n if(!Browser.isiOS) {\n this.$el.addClass('fullscreen')\n this.$el.removeAttr('style')\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.playerInfo.currentSize = { width: $(window).width(), height: $(window).height() }\n }\n }\n\n setPlayerSize() {\n this.$el.removeClass('fullscreen')\n this.playerInfo.currentSize = this.playerInfo.previousSize\n this.playerInfo.previousSize = { width: $(window).width(), height: $(window).height() }\n this.resize(this.playerInfo.currentSize)\n }\n\n resize(options) {\n if (!isNumber(options.height) && !isNumber(options.width)) {\n this.el.style.height = `${options.height}`\n this.el.style.width = `${options.width}`\n } else {\n this.el.style.height = `${options.height}px`\n this.el.style.width = `${options.width}px`\n }\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.options.width = options.width\n this.options.height = options.height\n this.playerInfo.currentSize = options\n this.triggerResize(this.playerInfo.currentSize)\n }\n\n enableResizeObserver() {\n const checkSizeCallback = () => {\n if (this.playerInfo.computedSize.width !== this.el.clientWidth ||\n this.playerInfo.computedSize.height !== this.el.clientHeight) {\n this.playerInfo.computedSize = { width: this.el.clientWidth, height: this.el.clientHeight }\n this.triggerResize(this.playerInfo.computedSize)\n }\n }\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500)\n }\n\n triggerResize(newSize) {\n const thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width\n if (thereWasChange) {\n Mediator.trigger(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, newSize)\n this.oldHeight = newSize.height\n this.oldWidth = newSize.width\n this.firstResize = false\n }\n }\n\n disableResizeObserver() {\n if (this.resizeObserverInterval) clearInterval(this.resizeObserverInterval)\n }\n\n resolveOnContainersReady(containers) {\n $.when.apply($, containers).done(() => {\n this.defer.resolve(this)\n this.ready = true\n this.trigger(Events.CORE_READY)\n })\n }\n\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n load(sources, mimeType) {\n this.options.mimeType = mimeType\n sources = sources && sources.constructor === Array ? sources : [sources]\n this.containers.forEach((container) => container.destroy())\n this.mediaControl.container = null\n this.containerFactory.options = $.extend(this.options, { sources })\n this.containerFactory.createContainers().then((containers) => {\n this.setupContainers(containers)\n })\n }\n\n destroy() {\n this.disableResizeObserver()\n this.containers.forEach((container) => container.destroy())\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n this.mediaControl.destroy()\n $(document).unbind('fullscreenchange', this._boundFullscreenHandler)\n $(document).unbind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).unbind('mozfullscreenchange', this._boundFullscreenHandler)\n }\n\n handleFullscreenChange() {\n this.trigger(Events.CORE_FULLSCREEN, Fullscreen.isFullscreen())\n this.updateSize()\n this.mediaControl.show()\n }\n\n handleWindowResize(event) {\n let orientation = ($(window).width() > $(window).height()) ? 'landscape' : 'portrait'\n if (this._screenOrientation === orientation) return\n this._screenOrientation = orientation\n\n this.trigger(Events.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n })\n }\n\n setMediaControlContainer(container) {\n this.mediaControl.setContainer(container)\n this.mediaControl.render()\n }\n\n disableMediaControl() {\n this.mediaControl.disable()\n this.$el.removeClass('nocursor')\n }\n\n enableMediaControl() {\n this.mediaControl.enable()\n }\n\n removeContainer(container) {\n this.stopListening(container)\n this.containers = this.containers.filter((c) => c !== container)\n }\n\n appendContainer(container) {\n this.listenTo(container, Events.CONTAINER_DESTROYED, this.removeContainer)\n this.containers.push(container)\n }\n\n setupContainers(containers) {\n containers.map(this.appendContainer.bind(this))\n this.trigger(Events.CORE_CONTAINERS_CREATED)\n this.renderContainers()\n this.setupMediaControl(this.getCurrentContainer())\n this.render()\n this.appendToParent()\n return this.containers\n }\n\n renderContainers() {\n this.containers.map((container) => this.el.appendChild(container.render().el))\n }\n\n createContainer(source, options) {\n const container = this.containerFactory.createContainer(source, options)\n this.appendContainer(container)\n this.el.appendChild(container.render().el)\n return container\n }\n\n setupMediaControl(container) {\n if (this.mediaControl) { this.mediaControl.setContainer(container) } else {\n this.mediaControl = this.createMediaControl($.extend({ container: container, focusElement: this.el }, this.options))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_FULLSCREEN, this.toggleFullscreen)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_SHOW, this.onMediaControlShow.bind(this, true))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_HIDE, this.onMediaControlShow.bind(this, false))\n }\n }\n\n createMediaControl(options) {\n if(options.mediacontrol && options.mediacontrol.external)\n return new options.mediacontrol.external(options).render()\n else\n return new MediaControl(options).render()\n\n }\n\n getCurrentContainer() {\n if (!this.mediaControl || !this.mediaControl.container)\n return this.containers[0]\n\n return this.mediaControl.container\n }\n\n getCurrentPlayback() {\n const container = this.getCurrentContainer()\n return container && container.playback\n }\n\n getPlaybackType() {\n const container = this.getCurrentContainer()\n return container && container.getPlaybackType()\n }\n\n toggleFullscreen() {\n if (!Fullscreen.isFullscreen()) {\n Fullscreen.requestFullscreen(this.el)\n if(!Browser.isiOS)\n this.$el.addClass('fullscreen')\n\n } else {\n Fullscreen.cancelFullscreen()\n if(!Browser.isiOS)\n this.$el.removeClass('fullscreen nocursor')\n\n }\n this.mediaControl.show()\n }\n\n showMediaControl(event) {\n this.mediaControl.show(event)\n }\n\n hideMediaControl() {\n this.mediaControl.hide(this.options.hideMediaControlDelay)\n }\n\n onMediaControlShow(showing) {\n this.getCurrentContainer().trigger(showing?Events.CONTAINER_MEDIACONTROL_SHOW:Events.CONTAINER_MEDIACONTROL_HIDE)\n\n if (showing)\n this.$el.removeClass('nocursor')\n else if (Fullscreen.isFullscreen())\n this.$el.addClass('nocursor')\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.configureDomRecycler()\n const sources = options.source || options.sources\n\n if (sources) { this.load(sources, options.mimeType || this.options.mimeType) } else {\n this.trigger(Events.CORE_OPTIONS_CHANGE)\n\n this.containers.forEach((container) => {\n container.configure(this.options)\n })\n }\n }\n\n appendToParent() {\n let hasCoreParent = this.$el.parent() && this.$el.parent().length\n !hasCoreParent && this.$el.appendTo(this.options.parentElement)\n }\n\n render() {\n this.$el.append(this.mediaControl.render().el)\n\n if (!style)\n style = Styler.getStyleFor(fontStyle, { baseUrl: this.options.baseUrl })\n\n $('head').append(style)\n\n this.options.width = this.options.width || this.$el.width()\n this.options.height = this.options.height || this.$el.height()\n const size = { width: this.options.width, height: this.options.height }\n this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size\n this.updateSize()\n\n this.previousSize = { width: this.$el.width(), height: this.$el.height() }\n\n this.enableResizeObserver()\n\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core/core.js","import ContainerFactory from './container_factory'\nexport default ContainerFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The ContainerFactory is responsible for manage playback bootstrap and create containers.\n */\n\nimport BaseObject from '../../base/base_object'\nimport Events from '../../base/events'\nimport Container from '../../components/container'\nimport $ from 'clappr-zepto'\n\nexport default class ContainerFactory extends BaseObject {\n get options() { return this._options }\n set options(options) { this._options = options }\n\n constructor(options, loader, i18n) {\n super(options)\n this._i18n = i18n\n this.loader = loader\n }\n\n createContainers() {\n return $.Deferred((promise) => {\n promise.resolve(this.options.sources.map((source) => {\n return this.createContainer(source)\n }))\n })\n }\n\n findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(p => p.canPlay(source, mimeType))[0]\n }\n\n createContainer(source) {\n let resolvedSource = null,\n mimeType = this.options.mimeType\n if (typeof source === 'object') {\n resolvedSource = source.source.toString()\n if (source.mimeType)\n mimeType = source.mimeType\n\n } else { resolvedSource = source.toString() }\n\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource\n\n let options = $.extend({}, this.options, {\n src: resolvedSource,\n mimeType: mimeType\n })\n const playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType)\n const playback = new playbackPlugin(options, this._i18n)\n\n options = $.extend({}, options, { playback: playback })\n\n const container = new Container(options, this._i18n)\n const defer = $.Deferred()\n defer.promise(container)\n this.addContainerPlugins(container)\n this.listenToOnce(container, Events.CONTAINER_READY, () => defer.resolve(container))\n return container\n }\n\n addContainerPlugins(container) {\n this.loader.containerPlugins.forEach((Plugin) => {\n container.addPlugin(new Plugin(container))\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/container_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Container is responsible for the video rendering and state\n */\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\n\nimport './public/style.scss'\n\nimport $ from 'clappr-zepto'\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class Container extends UIObject {\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get name() { return 'Container' }\n get attributes() { return { class: 'container', 'data-container': '' } }\n get events() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'doubleTap': 'dblClicked',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.playback.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.playback.buffering\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this._i18n\n }\n\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n get hasClosedCaptionsTracks() {\n return this.playback.hasClosedCaptionsTracks\n }\n\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n get closedCaptionsTracks() {\n return this.playback.closedCaptionsTracks\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n get closedCaptionsTrackId() {\n return this.playback.closedCaptionsTrackId\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n set closedCaptionsTrackId(trackId) {\n this.playback.closedCaptionsTrackId = trackId\n }\n\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n constructor(options, i18n) {\n super(options)\n this._i18n = i18n\n this.currentTime = 0\n this.volume = 100\n this.playback = options.playback\n this.settings = $.extend({}, this.playback.settings)\n this.isReady = false\n this.mediaControlDisabled = false\n this.plugins = [this.playback]\n this.bindEvents()\n }\n\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n bindEvents() {\n this.listenTo(this.playback, Events.PLAYBACK_PROGRESS, this.progress)\n this.listenTo(this.playback, Events.PLAYBACK_TIMEUPDATE, this.timeUpdated)\n this.listenTo(this.playback, Events.PLAYBACK_READY, this.ready)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERING, this.onBuffering)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERFULL, this.bufferfull)\n this.listenTo(this.playback, Events.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_LOADEDMETADATA, this.loadedMetadata)\n this.listenTo(this.playback, Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_BITRATE, this.updateBitrate)\n this.listenTo(this.playback, Events.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_DVR, this.playbackDvrStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_SEEKED, this.onSeeked)\n this.listenTo(this.playback, Events.PLAYBACK_ENDED, this.onEnded)\n this.listenTo(this.playback, Events.PLAYBACK_PLAY, this.playing)\n this.listenTo(this.playback, Events.PLAYBACK_PAUSE, this.paused)\n this.listenTo(this.playback, Events.PLAYBACK_STOP, this.stopped)\n this.listenTo(this.playback, Events.PLAYBACK_ERROR, this.error)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged)\n }\n\n subtitleAvailable() {\n this.trigger(Events.CONTAINER_SUBTITLE_AVAILABLE)\n }\n\n subtitleChanged(track) {\n this.trigger(Events.CONTAINER_SUBTITLE_CHANGED, track)\n }\n\n playbackStateChanged(state) {\n this.trigger(Events.CONTAINER_PLAYBACKSTATE, state)\n }\n\n playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings\n this.dvrInUse = dvrInUse\n this.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse)\n }\n\n updateBitrate(newBitrate) {\n this.trigger(Events.CONTAINER_BITRATE, newBitrate)\n }\n\n statsReport(metrics) {\n this.trigger(Events.CONTAINER_STATS_REPORT, metrics)\n }\n\n getPlaybackType() {\n return this.playback.getPlaybackType()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return !!this.playback.dvrEnabled\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return !!this.dvrInUse\n }\n\n /**\n * destroys the container\n * @method destroy\n */\n destroy() {\n this.trigger(Events.CONTAINER_DESTROYED, this, this.name)\n this.stopListening()\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n }\n\n setStyle(style) {\n this.$el.css(style)\n }\n\n animate(style, duration) {\n return this.$el.animate(style, duration).promise()\n }\n\n ready() {\n this.isReady = true\n this.trigger(Events.CONTAINER_READY, this.name)\n }\n\n isPlaying() {\n return this.playback.isPlaying()\n }\n\n getStartTimeOffset() {\n return this.playback.getStartTimeOffset()\n }\n\n getCurrentTime() {\n return this.currentTime\n }\n\n getDuration() {\n return this.playback.getDuration()\n }\n\n error(errorObj) {\n if (!this.isReady)\n this.ready()\n\n this.trigger(Events.CONTAINER_ERROR, { error: errorObj, container: this }, this.name)\n }\n\n loadedMetadata(metadata) {\n this.trigger(Events.CONTAINER_LOADEDMETADATA, metadata)\n }\n\n timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current\n this.trigger(Events.CONTAINER_TIMEUPDATE, timeProgress, this.name)\n }\n\n progress(...args) {\n this.trigger(Events.CONTAINER_PROGRESS, ...args, this.name)\n }\n\n playing() {\n this.trigger(Events.CONTAINER_PLAY, this.name)\n }\n\n paused() {\n this.trigger(Events.CONTAINER_PAUSE, this.name)\n }\n\n /**\n * plays the playback\n * @method play\n */\n play() {\n this.playback.play()\n }\n\n /**\n * stops the playback\n * @method stop\n */\n stop() {\n this.playback.stop()\n this.currentTime = 0\n }\n\n /**\n * pauses the playback\n * @method pause\n */\n pause() {\n this.playback.pause()\n }\n\n onEnded() {\n this.trigger(Events.CONTAINER_ENDED, this, this.name)\n this.currentTime = 0\n }\n\n stopped() {\n this.trigger(Events.CONTAINER_STOP)\n }\n\n clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CLICK, this, this.name)\n\n }\n\n dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_DBLCLICK, this, this.name)\n\n }\n\n onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CONTEXTMENU, event, this.name)\n\n }\n\n seek(time) {\n this.trigger(Events.CONTAINER_SEEK, time, this.name)\n this.playback.seek(time)\n }\n\n onSeeked() {\n this.trigger(Events.CONTAINER_SEEKED, this.name)\n }\n\n seekPercentage(percentage) {\n const duration = this.getDuration()\n if (percentage >= 0 && percentage <= 100) {\n const time = duration * (percentage / 100)\n this.seek(time)\n }\n }\n\n setVolume(value) {\n this.volume = parseInt(value, 10)\n this.trigger(Events.CONTAINER_VOLUME, value, this.name)\n this.playback.volume(value)\n }\n\n fullscreen() {\n this.trigger(Events.CONTAINER_FULLSCREEN, this.name)\n }\n\n onBuffering() {\n this.trigger(Events.CONTAINER_STATE_BUFFERING, this.name)\n }\n\n bufferfull() {\n this.trigger(Events.CONTAINER_STATE_BUFFERFULL, this.name)\n }\n\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_ENTER)\n\n }\n\n mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_LEAVE)\n\n }\n\n settingsUpdate() {\n this.settings = this.playback.settings\n this.trigger(Events.CONTAINER_SETTINGSUPDATE)\n }\n\n highDefinitionUpdate(isHD) {\n this.trigger(Events.CONTAINER_HIGHDEFINITIONUPDATE, isHD)\n }\n\n isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse()\n }\n\n disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true\n this.trigger(Events.CONTAINER_MEDIACONTROL_DISABLE)\n }\n }\n\n enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false\n this.trigger(Events.CONTAINER_MEDIACONTROL_ENABLE)\n }\n }\n\n updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.$el.removeClass('chromeless')\n else\n this.$el.addClass('chromeless')\n\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.updateStyle()\n this.trigger(Events.CONTAINER_OPTIONS_CHANGE)\n }\n\n render() {\n this.$el.append(this.playback.render().el)\n this.updateStyle()\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container/container.js","// style-loader: Adds some css to the DOM by adding a ').html(template(style.toString())(options))\n }\n}\n\nexport default Styler\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/styler.js","import Loader from './loader'\nexport default Loader\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loader/index.js","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/array/from.js\n// module id = 79\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/toConsumableArray.js\n// module id = 80\n// module chunks = 0","import Flash from './flash'\nexport default Flash\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/flash/index.js","import HTML5Audio from './html5_audio'\nexport default HTML5Audio\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html5_audio/index.js","import FlasHLS from './flashls'\nexport default FlasHLS\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/flashls/index.js","import HLS from './hls'\nexport default HLS\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/hls/index.js","import HTMLImg from './html_img'\nexport default HTMLImg\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html_img/index.js","import NoOp from './no_op'\nexport default NoOp\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/no_op/index.js","import PosterPlugin from './poster'\nexport default PosterPlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/poster/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Player from './components/player'\nimport Utils from './base/utils'\nimport Events from './base/events'\nimport Playback from './base/playback'\nimport ContainerPlugin from './base/container_plugin'\nimport CorePlugin from './base/core_plugin'\nimport UICorePlugin from './base/ui_core_plugin'\nimport UIContainerPlugin from './base/ui_container_plugin'\nimport BaseObject from './base/base_object'\nimport UIObject from './base/ui_object'\nimport Browser from './components/browser'\nimport Container from './components/container'\nimport Core from './components/core'\nimport Loader from './components/loader'\nimport Mediator from './components/mediator'\nimport MediaControl from './components/media_control'\nimport PlayerInfo from './components/player_info'\nimport BaseFlashPlayback from './playbacks/base_flash_playback'\nimport Flash from './playbacks/flash'\nimport FlasHLS from './playbacks/flashls'\nimport HLS from './playbacks/hls'\nimport HTML5Audio from './playbacks/html5_audio'\nimport HTML5Video from './playbacks/html5_video'\nimport HTMLImg from './playbacks/html_img'\nimport NoOp from './playbacks/no_op'\nimport Poster from './plugins/poster'\nimport Log from './plugins/log'\nimport Styler from './base/styler'\nimport Vendor from './vendor'\nimport template from './base/template'\n\nimport $ from 'clappr-zepto'\n\nconst version = VERSION\n\nexport default {\n Player,\n Mediator,\n Events,\n Browser,\n PlayerInfo,\n MediaControl,\n ContainerPlugin,\n UIContainerPlugin,\n CorePlugin,\n UICorePlugin,\n Playback,\n Container,\n Core,\n Loader,\n BaseObject,\n UIObject,\n Utils,\n BaseFlashPlayback,\n Flash,\n FlasHLS,\n HLS,\n HTML5Audio,\n HTML5Video,\n HTMLImg,\n NoOp,\n Poster,\n Log,\n Styler,\n Vendor,\n version,\n template,\n $\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { uniqueId, currentScriptUrl } from '../base/utils'\n\nimport BaseObject from '../base/base_object'\nimport Events from '../base/events'\nimport Browser from './browser'\nimport CoreFactory from './core_factory'\nimport Loader from './loader'\nimport PlayerInfo from './player_info'\nimport $ from 'clappr-zepto'\n\nconst baseUrl = currentScriptUrl().replace(/\\/[^/]+$/, '')\n\n/**\n * @class Player\n * @constructor\n * @extends BaseObject\n * @module components\n * @example\n * ### Using the Player\n *\n * Add the following script on your HTML:\n * ```html\n * \n * \n * \n * ```\n * Now, create the player:\n * ```html\n * \n *
\n * \n * \n * ```\n */\nexport default class Player extends BaseObject {\n\n set loader(loader) { this._loader = loader }\n get loader() {\n if (!this._loader)\n this._loader = new Loader(this.options.plugins || {}, this.options.playerId)\n\n return this._loader\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.core.mediaControl.container.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.core.mediaControl.container.buffering\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n get isReady() {\n return !!this._ready\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n get eventsMapping() {\n return {\n onReady: Events.PLAYER_READY,\n onResize: Events.PLAYER_RESIZE,\n onPlay: Events.PLAYER_PLAY,\n onPause: Events.PLAYER_PAUSE,\n onStop: Events.PLAYER_STOP,\n onEnded: Events.PLAYER_ENDED,\n onSeek: Events.PLAYER_SEEK,\n onError: Events.PLAYER_ERROR,\n onTimeUpdate: Events.PLAYER_TIMEUPDATE,\n onVolumeUpdate: Events.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: Events.PLAYER_SUBTITLE_AVAILABLE\n }\n }\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {String} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload]\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength]\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu]\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n */\n constructor(options) {\n super(options)\n const defaultOptions = { playerId: uniqueId(''), persistConfig: true, width: 640, height: 360, baseUrl: baseUrl, allowUserInteraction: Browser.isMobile }\n this._options = $.extend(defaultOptions, options)\n this.options.sources = this._normalizeSources(options)\n if (!this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n this.options.allowUserInteraction = true\n }\n if (!this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n this.options.disableKeyboardShortcuts = true\n }\n this._registerOptionEventListeners()\n this._coreFactory = new CoreFactory(this)\n this.playerInfo = PlayerInfo.getInstance(this.options.playerId)\n this.playerInfo.currentSize = { width: options.width, height: options.height }\n this.playerInfo.options = this.options\n if (this.options.parentId)\n this.setParentId(this.options.parentId)\n\n else if (this.options.parent)\n this.attachTo(this.options.parent)\n\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n setParentId(parentId) {\n const el = document.querySelector(parentId)\n if (el)\n this.attachTo(el)\n\n return this\n }\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n attachTo(element) {\n this.options.parentElement = element\n this.core = this._coreFactory.create()\n this._addEventListeners()\n return this\n }\n\n _addEventListeners() {\n if (!this.core.isReady)\n this.listenToOnce(this.core, Events.CORE_READY, this._onReady)\n else\n this._onReady()\n\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this._containerChanged)\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this._onFullscreenChange)\n return this\n }\n\n _addContainerEventListeners() {\n const container = this.core.mediaControl.container\n if (container) {\n this.listenTo(container, Events.CONTAINER_PLAY, this._onPlay)\n this.listenTo(container, Events.CONTAINER_PAUSE, this._onPause)\n this.listenTo(container, Events.CONTAINER_STOP, this._onStop)\n this.listenTo(container, Events.CONTAINER_ENDED, this._onEnded)\n this.listenTo(container, Events.CONTAINER_SEEK, this._onSeek)\n this.listenTo(container, Events.CONTAINER_ERROR, this._onError)\n this.listenTo(container, Events.CONTAINER_TIMEUPDATE, this._onTimeUpdate)\n this.listenTo(container, Events.CONTAINER_VOLUME, this._onVolumeUpdate)\n this.listenTo(container, Events.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable)\n }\n return this\n }\n\n _registerOptionEventListeners() {\n const userEvents = this.options.events || {}\n Object.keys(userEvents).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n if (eventType) {\n let eventFunction = userEvents[userEvent]\n eventFunction = typeof eventFunction === 'function' && eventFunction\n eventFunction && this.on(eventType, eventFunction)\n }\n })\n return this\n }\n\n _containerChanged() {\n this.stopListening()\n this._addEventListeners()\n }\n\n _onReady() {\n this._ready = true\n this._addContainerEventListeners()\n this.trigger(Events.PLAYER_READY)\n }\n\n _onFullscreenChange(fullscreen) {\n this.trigger(Events.PLAYER_FULLSCREEN, fullscreen)\n }\n\n _onVolumeUpdate(volume) {\n this.trigger(Events.PLAYER_VOLUMEUPDATE, volume)\n }\n\n _onSubtitleAvailable() {\n this.trigger(Events.PLAYER_SUBTITLE_AVAILABLE)\n }\n\n _onPlay() {\n this.trigger(Events.PLAYER_PLAY)\n }\n\n _onPause() {\n this.trigger(Events.PLAYER_PAUSE)\n }\n\n _onStop() {\n this.trigger(Events.PLAYER_STOP, this.getCurrentTime())\n }\n\n _onEnded() {\n this.trigger(Events.PLAYER_ENDED)\n }\n\n _onSeek(time) {\n this.trigger(Events.PLAYER_SEEK, time)\n }\n\n _onTimeUpdate(timeProgress) {\n this.trigger(Events.PLAYER_TIMEUPDATE, timeProgress)\n }\n\n _onError(error) {\n this.trigger(Events.PLAYER_ERROR, error)\n }\n\n _normalizeSources(options) {\n const sources = options.sources || (options.source !== undefined? [options.source] : [])\n return sources.length === 0 ? [{ source:'', mimeType:'' }] : sources\n }\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n resize(size) {\n this.core.resize(size)\n return this\n }\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <>, mimeType: <>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined)\n this.configure({ autoPlay: !!autoPlay })\n\n this.core.load(sources, mimeType)\n return this\n }\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n destroy() {\n this.core.destroy()\n return this\n }\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n consent() {\n this.core.getCurrentPlayback().consent()\n return this\n }\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n play() {\n this.core.mediaControl.container.play()\n return this\n }\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n pause() {\n this.core.mediaControl.container.pause()\n return this\n }\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n stop() {\n this.core.mediaControl.container.stop()\n return this\n }\n\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n seek(time) {\n this.core.mediaControl.container.seek(time)\n return this\n }\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n seekPercentage(percentage) {\n this.core.mediaControl.container.seekPercentage(percentage)\n return this\n }\n\n /**\n * Set the volume for the current video (`source`).\n * @method setVolume\n * @param {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n * @return {Player} itself\n */\n setVolume(volume) {\n if (this.core && this.core.mediaControl)\n this.core.mediaControl.setVolume(volume)\n\n return this\n }\n\n /**\n * Get the volume for the current video\n * @method getVolume\n * @return {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n */\n getVolume() {\n return this.core && this.core.mediaControl ? this.core.mediaControl.volume : 0\n }\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n mute() {\n this._mutedVolume = this.getVolume()\n this.setVolume(0)\n return this\n }\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100)\n this._mutedVolume = null\n return this\n }\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n isPlaying() {\n return this.core.mediaControl.container.isPlaying()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return this.core.mediaControl.container.isDvrEnabled()\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return this.core.mediaControl.container.isDvrInUse()\n }\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n configure(options) {\n this.core.configure(options)\n return this\n }\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n getPlugin(name) {\n const plugins = this.core.plugins.concat(this.core.mediaControl.container.plugins)\n return plugins.filter(plugin => plugin.name === name)[0]\n }\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n getCurrentTime() {\n return this.core.mediaControl.container.getCurrentTime()\n }\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() {\n return this.core.mediaControl.container.getStartTimeOffset()\n }\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n getDuration() {\n return this.core.mediaControl.container.getDuration()\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/player.js","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/keys.js\n// module id = 90\n// module chunks = 0","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.keys.js\n// module id = 91\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iobject.js\n// module id = 92\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-includes.js\n// module id = 93\n// module chunks = 0","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-index.js\n// module id = 94\n// module chunks = 0","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_a-function.js\n// module id = 95\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol/iterator.js\n// module id = 96\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/iterator.js\n// module id = 97\n// module chunks = 0","var toInteger = require('./_to-integer')\n , defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_string-at.js\n// module id = 98\n// module chunks = 0","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-create.js\n// module id = 99\n// module chunks = 0","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dps.js\n// module id = 100\n// module chunks = 0","module.exports = require('./_global').document && document.documentElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_html.js\n// module id = 101\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gpo.js\n// module id = 102\n// module chunks = 0","require('./es6.array.iterator');\nvar global = require('./_global')\n , hide = require('./_hide')\n , Iterators = require('./_iterators')\n , TO_STRING_TAG = require('./_wks')('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype;\n if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/web.dom.iterable.js\n// module id = 103\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n , step = require('./_iter-step')\n , Iterators = require('./_iterators')\n , toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.array.iterator.js\n// module id = 104\n// module chunks = 0","module.exports = function(){ /* empty */ };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_add-to-unscopables.js\n// module id = 105\n// module chunks = 0","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-step.js\n// module id = 106\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol.js\n// module id = 107\n// module chunks = 0","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/index.js\n// module id = 108\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global')\n , has = require('./_has')\n , DESCRIPTORS = require('./_descriptors')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , META = require('./_meta').KEY\n , $fails = require('./_fails')\n , shared = require('./_shared')\n , setToStringTag = require('./_set-to-string-tag')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , wksExt = require('./_wks-ext')\n , wksDefine = require('./_wks-define')\n , keyOf = require('./_keyof')\n , enumKeys = require('./_enum-keys')\n , isArray = require('./_is-array')\n , anObject = require('./_an-object')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , createDesc = require('./_property-desc')\n , _create = require('./_object-create')\n , gOPNExt = require('./_object-gopn-ext')\n , $GOPD = require('./_object-gopd')\n , $DP = require('./_object-dp')\n , $keys = require('./_object-keys')\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./_library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.symbol.js\n// module id = 109\n// module chunks = 0","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_meta.js\n// module id = 110\n// module chunks = 0","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_keyof.js\n// module id = 111\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie');\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_enum-keys.js\n// module id = 112\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-array.js\n// module id = 113\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject')\n , gOPN = require('./_object-gopn').f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn-ext.js\n// module id = 114\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.async-iterator.js\n// module id = 116\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.observable.js\n// module id = 117\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/define-property.js\n// module id = 118\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.define-property.js\n// module id = 119\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/set-prototype-of.js\n// module id = 120\n// module chunks = 0","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/set-prototype-of.js\n// module id = 121\n// module chunks = 0","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.set-prototype-of.js\n// module id = 122\n// module chunks = 0","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object')\n , anObject = require('./_an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-proto.js\n// module id = 123\n// module chunks = 0","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D){\n return $Object.create(P, D);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/create.js\n// module id = 124\n// module chunks = 0","var $export = require('./_export')\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: require('./_object-create')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.create.js\n// module id = 125\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js\n// module id = 126\n// module chunks = 0","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/get-own-property-descriptor.js\n// module id = 127\n// module chunks = 0","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject')\n , $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js\n// module id = 128\n// module chunks = 0","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null)\n throw new TypeError('\"this\" is null or not defined')\n\n\n let o = Object(this)\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n let len = o.length >>> 0\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function')\n throw new TypeError('predicate must be a function')\n\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n let thisArg = arguments[1]\n\n // 5. Let k be 0.\n let k = 0\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n let kValue = o[k]\n if (predicate.call(thisArg, kValue, k, o))\n return kValue\n\n // e. Increase k by 1.\n k++\n }\n\n // 7. Return undefined.\n return undefined\n }\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/polyfills.js","\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { Kibo } from '../../vendor'\n\nconst BOLD = 'font-weight: bold; font-size: 13px;'\nconst INFO = 'color: #006600;' + BOLD\nconst DEBUG = 'color: #0000ff;' + BOLD\nconst WARN = 'color: #ff8000;' + BOLD\nconst ERROR = 'color: #ff0000;' + BOLD\n\nconst LEVEL_DEBUG = 0\nconst LEVEL_INFO = 1\nconst LEVEL_WARN = 2\nconst LEVEL_ERROR = 3\nconst LEVEL_DISABLED = LEVEL_ERROR\n\nconst COLORS = [DEBUG, INFO, WARN, ERROR, ERROR]\nconst DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled']\n\nexport default class Log {\n constructor(level = LEVEL_INFO, offLevel = LEVEL_DISABLED) {\n this.kibo = new Kibo()\n this.kibo.down(['ctrl shift d'], () => this.onOff())\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress']\n this.level = level\n this.offLevel = offLevel\n }\n\n debug(klass) { this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1)) }\n info(klass) { this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1)) }\n warn(klass) { this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1)) }\n error(klass) { this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1)) }\n\n onOff() {\n if (this.level === this.offLevel) { this.level = this.previousLevel } else {\n this.previousLevel = this.level\n this.level = this.offLevel\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log)\n window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN)\n\n }\n\n level(newLevel) {\n this.level = newLevel\n }\n\n log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return\n if (level < this.level) return\n\n if (!message) {\n message = klass\n klass = null\n }\n const color = COLORS[level]\n let klassDescription = ''\n if (klass)\n klassDescription = '[' + klass + ']'\n\n if (window.console && window.console.log)\n window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message))\n\n }\n}\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG\nLog.LEVEL_INFO = LEVEL_INFO\nLog.LEVEL_WARN = LEVEL_WARN\nLog.LEVEL_ERROR = LEVEL_ERROR\n\nLog.getInstance = function() {\n if (this._instance === undefined) {\n this._instance = new this()\n this._instance.previousLevel = this._instance.level\n this._instance.level = this._instance.offLevel\n }\n return this._instance\n}\n\nLog.setLevel = function(level) { this.getInstance().level = level }\n\nLog.debug = function() { this.getInstance().debug.apply(this.getInstance(), arguments) }\nLog.info = function() { this.getInstance().info.apply(this.getInstance(), arguments) }\nLog.warn = function() { this.getInstance().warn.apply(this.getInstance(), arguments) }\nLog.error = function() { this.getInstance().error.apply(this.getInstance(), arguments) }\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/log/log.js","/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function() {\n for(var key in Kibo.KEY_NAMES_BY_CODE) {\n if(Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = (function() {\n if(document.addEventListener) {\n return function(element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n }\n else if(document.attachEvent) {\n return function(element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.unregisterEvent = (function() {\n if(document.removeEventListener) {\n return function(element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n }\n else if(document.detachEvent) {\n return function(element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.stringContains = function(string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function(string) {\n return string.toLowerCase().replace(/^./, function(match) { return match.toUpperCase(); });\n};\n\nKibo.isString = function(what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = (function() {\n if(Array.prototype.indexOf) {\n return function(haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n }\n else {\n return function(haystack, needle) {\n for(var i = 0; i < haystack.length; i++) {\n if(haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n})();\n\nKibo.extractModifiers = function(keyCombination) {\n var modifiers, i\n modifiers = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n}\n\nKibo.extractKey = function(keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for(i = 0; i < keys.length; i++) {\n if(!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function(keyCombination) {\n var result, key;\n\n if(Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if(key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n}\n\nKibo.keyName = function(keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function(keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function() {\n var i, that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function(upOrDown) {\n var that = this;\n return function(e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if(Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for(i = 0; i < registeredKeys.any.length; i++) {\n if((registeredKeys.any[i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if(registeredKeys[lastModifiersAndKey]) {\n for(i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if((registeredKeys[lastModifiersAndKey][i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function(upOrDown, newKeys, func) {\n var i, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function(upOrDown, newKeys, func) {\n var i, j, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(func === null) {\n delete registeredKeys[keys];\n } else {\n if(registeredKeys[keys]) {\n for(j = 0; j < registeredKeys[keys].length; j++) {\n if(String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function(keys) {\n return this.unregisterKeys('down', keys, null);\n}\n\nKibo.prototype.delegate = function(upOrDown, keys, func) {\n return (func !== null || func !== undefined) ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function(keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function(keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function(modifier) {\n if(!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function() {\n var result, i;\n\n result = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if(!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexport default Kibo\n\n\n\n// WEBPACK FOOTER //\n// ./src/vendor/kibo.js","import CoreFactory from './core_factory'\nexport default CoreFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseObject from '../../base/base_object'\nimport Core from '../core'\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class CoreFactory extends BaseObject {\n\n get loader() { return this.player.loader }\n\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n constructor(player) {\n super()\n this.player = player\n this._options = player.options\n }\n\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n create() {\n this.options.loader = this.loader\n this.core = new Core(this.options)\n this.addCorePlugins()\n this.core.createContainers(this.options)\n return this.core\n }\n\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n addCorePlugins() {\n this.loader.corePlugins.forEach((Plugin) => {\n const plugin = new Plugin(this.core)\n this.core.addPlugin(plugin)\n this.setupExternalInterface(plugin)\n })\n return this.core\n }\n\n setupExternalInterface(plugin) {\n const externalFunctions = plugin.getExternalInterface()\n for (const key in externalFunctions)\n this.player[key] = externalFunctions[key].bind(plugin)\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/core_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, Fullscreen, DomRecycler } from '../../base/utils'\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport Browser from '../../components/browser'\nimport ContainerFactory from '../../components/container_factory'\nimport MediaControl from '../../components/media_control'\nimport Mediator from '../../components/mediator'\nimport PlayerInfo from '../../components/player_info'\n\nimport Styler from '../../base/styler'\n\nimport $ from 'clappr-zepto'\n\nimport './public/style.scss'\nimport fontStyle from './public/fonts.css'\n\nlet style\n\n/**\n * The Core is responsible to manage Containers, the mediator, MediaControl\n * and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\nexport default class Core extends UIObject {\n get events() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'showMediaControl',\n 'mouseleave': 'hideMediaControl'\n }\n }\n\n get attributes() {\n return {\n 'data-player': '',\n tabindex: 9999\n }\n }\n\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n get isReady() {\n return !!this.ready\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this.getPlugin('strings') || { t: (key) => key }\n }\n\n constructor(options) {\n super(options)\n this.configureDomRecycler()\n this.playerInfo = PlayerInfo.getInstance(options.playerId)\n this.firstResize = true\n this.plugins = []\n this.containers = []\n this.setupMediaControl(null)\n //FIXME fullscreen api sucks\n this._boundFullscreenHandler = () => this.handleFullscreenChange()\n $(document).bind('fullscreenchange', this._boundFullscreenHandler)\n $(document).bind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).bind('mozfullscreenchange', this._boundFullscreenHandler)\n Browser.isMobile && $(window).bind('resize', (o) => { this.handleWindowResize(o) })\n }\n\n configureDomRecycler() {\n let recycleVideo = (this.options && this.options.playback && this.options.playback.recycleVideo) ? true : false\n DomRecycler.configure({\n recycleVideo: recycleVideo\n })\n }\n\n createContainers(options) {\n this.defer = $.Deferred()\n this.defer.promise(this)\n this.containerFactory = new ContainerFactory(options, options.loader, this.i18n)\n this.containerFactory\n .createContainers()\n .then((containers) => this.setupContainers(containers))\n .then((containers) => this.resolveOnContainersReady(containers))\n }\n\n updateSize() {\n if (Fullscreen.isFullscreen())\n this.setFullscreen()\n else\n this.setPlayerSize()\n\n }\n\n setFullscreen() {\n if(!Browser.isiOS) {\n this.$el.addClass('fullscreen')\n this.$el.removeAttr('style')\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.playerInfo.currentSize = { width: $(window).width(), height: $(window).height() }\n }\n }\n\n setPlayerSize() {\n this.$el.removeClass('fullscreen')\n this.playerInfo.currentSize = this.playerInfo.previousSize\n this.playerInfo.previousSize = { width: $(window).width(), height: $(window).height() }\n this.resize(this.playerInfo.currentSize)\n }\n\n resize(options) {\n if (!isNumber(options.height) && !isNumber(options.width)) {\n this.el.style.height = `${options.height}`\n this.el.style.width = `${options.width}`\n } else {\n this.el.style.height = `${options.height}px`\n this.el.style.width = `${options.width}px`\n }\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.options.width = options.width\n this.options.height = options.height\n this.playerInfo.currentSize = options\n this.triggerResize(this.playerInfo.currentSize)\n }\n\n enableResizeObserver() {\n const checkSizeCallback = () => {\n if (this.playerInfo.computedSize.width !== this.el.clientWidth ||\n this.playerInfo.computedSize.height !== this.el.clientHeight) {\n this.playerInfo.computedSize = { width: this.el.clientWidth, height: this.el.clientHeight }\n this.triggerResize(this.playerInfo.computedSize)\n }\n }\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500)\n }\n\n triggerResize(newSize) {\n const thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width\n if (thereWasChange) {\n Mediator.trigger(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, newSize)\n this.oldHeight = newSize.height\n this.oldWidth = newSize.width\n this.firstResize = false\n }\n }\n\n disableResizeObserver() {\n if (this.resizeObserverInterval) clearInterval(this.resizeObserverInterval)\n }\n\n resolveOnContainersReady(containers) {\n $.when.apply($, containers).done(() => {\n this.defer.resolve(this)\n this.ready = true\n this.trigger(Events.CORE_READY)\n })\n }\n\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n load(sources, mimeType) {\n this.options.mimeType = mimeType\n sources = sources && sources.constructor === Array ? sources : [sources]\n this.containers.forEach((container) => container.destroy())\n this.mediaControl.container = null\n this.containerFactory.options = $.extend(this.options, { sources })\n this.containerFactory.createContainers().then((containers) => {\n this.setupContainers(containers)\n })\n }\n\n destroy() {\n this.disableResizeObserver()\n this.containers.forEach((container) => container.destroy())\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n this.mediaControl.destroy()\n $(document).unbind('fullscreenchange', this._boundFullscreenHandler)\n $(document).unbind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).unbind('mozfullscreenchange', this._boundFullscreenHandler)\n }\n\n handleFullscreenChange() {\n this.trigger(Events.CORE_FULLSCREEN, Fullscreen.isFullscreen())\n this.updateSize()\n this.mediaControl.show()\n }\n\n handleWindowResize(event) {\n let orientation = ($(window).width() > $(window).height()) ? 'landscape' : 'portrait'\n if (this._screenOrientation === orientation) return\n this._screenOrientation = orientation\n\n this.trigger(Events.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n })\n }\n\n setMediaControlContainer(container) {\n this.mediaControl.setContainer(container)\n this.mediaControl.render()\n }\n\n disableMediaControl() {\n this.mediaControl.disable()\n this.$el.removeClass('nocursor')\n }\n\n enableMediaControl() {\n this.mediaControl.enable()\n }\n\n removeContainer(container) {\n this.stopListening(container)\n this.containers = this.containers.filter((c) => c !== container)\n }\n\n appendContainer(container) {\n this.listenTo(container, Events.CONTAINER_DESTROYED, this.removeContainer)\n this.containers.push(container)\n }\n\n setupContainers(containers) {\n containers.map(this.appendContainer.bind(this))\n this.trigger(Events.CORE_CONTAINERS_CREATED)\n this.renderContainers()\n this.setupMediaControl(this.getCurrentContainer())\n this.render()\n this.appendToParent()\n return this.containers\n }\n\n renderContainers() {\n this.containers.map((container) => this.el.appendChild(container.render().el))\n }\n\n createContainer(source, options) {\n const container = this.containerFactory.createContainer(source, options)\n this.appendContainer(container)\n this.el.appendChild(container.render().el)\n return container\n }\n\n setupMediaControl(container) {\n if (this.mediaControl) { this.mediaControl.setContainer(container) } else {\n this.mediaControl = this.createMediaControl($.extend({ container: container, focusElement: this.el }, this.options))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_FULLSCREEN, this.toggleFullscreen)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_SHOW, this.onMediaControlShow.bind(this, true))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_HIDE, this.onMediaControlShow.bind(this, false))\n }\n }\n\n createMediaControl(options) {\n if(options.mediacontrol && options.mediacontrol.external)\n return new options.mediacontrol.external(options).render()\n else\n return new MediaControl(options).render()\n\n }\n\n getCurrentContainer() {\n if (!this.mediaControl || !this.mediaControl.container)\n return this.containers[0]\n\n return this.mediaControl.container\n }\n\n getCurrentPlayback() {\n const container = this.getCurrentContainer()\n return container && container.playback\n }\n\n getPlaybackType() {\n const container = this.getCurrentContainer()\n return container && container.getPlaybackType()\n }\n\n toggleFullscreen() {\n if (!Fullscreen.isFullscreen()) {\n Fullscreen.requestFullscreen(this.el)\n if(!Browser.isiOS)\n this.$el.addClass('fullscreen')\n\n } else {\n Fullscreen.cancelFullscreen()\n if(!Browser.isiOS)\n this.$el.removeClass('fullscreen nocursor')\n\n }\n this.mediaControl.show()\n }\n\n showMediaControl(event) {\n this.mediaControl.show(event)\n }\n\n hideMediaControl() {\n this.mediaControl.hide(this.options.hideMediaControlDelay)\n }\n\n onMediaControlShow(showing) {\n this.getCurrentContainer().trigger(showing?Events.CONTAINER_MEDIACONTROL_SHOW:Events.CONTAINER_MEDIACONTROL_HIDE)\n\n if (showing)\n this.$el.removeClass('nocursor')\n else if (Fullscreen.isFullscreen())\n this.$el.addClass('nocursor')\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.configureDomRecycler()\n const sources = options.source || options.sources\n\n if (sources) { this.load(sources, options.mimeType || this.options.mimeType) } else {\n this.trigger(Events.CORE_OPTIONS_CHANGE)\n\n this.containers.forEach((container) => {\n container.configure(this.options)\n })\n }\n }\n\n appendToParent() {\n let hasCoreParent = this.$el.parent() && this.$el.parent().length\n !hasCoreParent && this.$el.appendTo(this.options.parentElement)\n }\n\n render() {\n this.$el.append(this.mediaControl.render().el)\n\n if (!style)\n style = Styler.getStyleFor(fontStyle, { baseUrl: this.options.baseUrl })\n\n $('head').append(style)\n\n this.options.width = this.options.width || this.$el.width()\n this.options.height = this.options.height || this.$el.height()\n const size = { width: this.options.width, height: this.options.height }\n this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size\n this.updateSize()\n\n this.previousSize = { width: this.$el.width(), height: this.$el.height() }\n\n this.enableResizeObserver()\n\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core/core.js","import ContainerFactory from './container_factory'\nexport default ContainerFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The ContainerFactory is responsible for manage playback bootstrap and create containers.\n */\n\nimport BaseObject from '../../base/base_object'\nimport Events from '../../base/events'\nimport Container from '../../components/container'\nimport $ from 'clappr-zepto'\n\nexport default class ContainerFactory extends BaseObject {\n get options() { return this._options }\n set options(options) { this._options = options }\n\n constructor(options, loader, i18n) {\n super(options)\n this._i18n = i18n\n this.loader = loader\n }\n\n createContainers() {\n return $.Deferred((promise) => {\n promise.resolve(this.options.sources.map((source) => {\n return this.createContainer(source)\n }))\n })\n }\n\n findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(p => p.canPlay(source, mimeType))[0]\n }\n\n createContainer(source) {\n let resolvedSource = null,\n mimeType = this.options.mimeType\n if (typeof source === 'object') {\n resolvedSource = source.source.toString()\n if (source.mimeType)\n mimeType = source.mimeType\n\n } else { resolvedSource = source.toString() }\n\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource\n\n let options = $.extend({}, this.options, {\n src: resolvedSource,\n mimeType: mimeType\n })\n const playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType)\n const playback = new playbackPlugin(options, this._i18n)\n\n options = $.extend({}, options, { playback: playback })\n\n const container = new Container(options, this._i18n)\n const defer = $.Deferred()\n defer.promise(container)\n this.addContainerPlugins(container)\n this.listenToOnce(container, Events.CONTAINER_READY, () => defer.resolve(container))\n return container\n }\n\n addContainerPlugins(container) {\n this.loader.containerPlugins.forEach((Plugin) => {\n container.addPlugin(new Plugin(container))\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/container_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Container is responsible for the video rendering and state\n */\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\n\nimport './public/style.scss'\n\nimport $ from 'clappr-zepto'\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class Container extends UIObject {\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get name() { return 'Container' }\n get attributes() { return { class: 'container', 'data-container': '' } }\n get events() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'doubleTap': 'dblClicked',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.playback.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.playback.buffering\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this._i18n\n }\n\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n get hasClosedCaptionsTracks() {\n return this.playback.hasClosedCaptionsTracks\n }\n\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n get closedCaptionsTracks() {\n return this.playback.closedCaptionsTracks\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n get closedCaptionsTrackId() {\n return this.playback.closedCaptionsTrackId\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n set closedCaptionsTrackId(trackId) {\n this.playback.closedCaptionsTrackId = trackId\n }\n\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n constructor(options, i18n) {\n super(options)\n this._i18n = i18n\n this.currentTime = 0\n this.volume = 100\n this.playback = options.playback\n this.settings = $.extend({}, this.playback.settings)\n this.isReady = false\n this.mediaControlDisabled = false\n this.plugins = [this.playback]\n this.bindEvents()\n }\n\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n bindEvents() {\n this.listenTo(this.playback, Events.PLAYBACK_PROGRESS, this.progress)\n this.listenTo(this.playback, Events.PLAYBACK_TIMEUPDATE, this.timeUpdated)\n this.listenTo(this.playback, Events.PLAYBACK_READY, this.ready)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERING, this.onBuffering)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERFULL, this.bufferfull)\n this.listenTo(this.playback, Events.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_LOADEDMETADATA, this.loadedMetadata)\n this.listenTo(this.playback, Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_BITRATE, this.updateBitrate)\n this.listenTo(this.playback, Events.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_DVR, this.playbackDvrStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_SEEKED, this.onSeeked)\n this.listenTo(this.playback, Events.PLAYBACK_ENDED, this.onEnded)\n this.listenTo(this.playback, Events.PLAYBACK_PLAY, this.playing)\n this.listenTo(this.playback, Events.PLAYBACK_PAUSE, this.paused)\n this.listenTo(this.playback, Events.PLAYBACK_STOP, this.stopped)\n this.listenTo(this.playback, Events.PLAYBACK_ERROR, this.error)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged)\n }\n\n subtitleAvailable() {\n this.trigger(Events.CONTAINER_SUBTITLE_AVAILABLE)\n }\n\n subtitleChanged(track) {\n this.trigger(Events.CONTAINER_SUBTITLE_CHANGED, track)\n }\n\n playbackStateChanged(state) {\n this.trigger(Events.CONTAINER_PLAYBACKSTATE, state)\n }\n\n playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings\n this.dvrInUse = dvrInUse\n this.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse)\n }\n\n updateBitrate(newBitrate) {\n this.trigger(Events.CONTAINER_BITRATE, newBitrate)\n }\n\n statsReport(metrics) {\n this.trigger(Events.CONTAINER_STATS_REPORT, metrics)\n }\n\n getPlaybackType() {\n return this.playback.getPlaybackType()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return !!this.playback.dvrEnabled\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return !!this.dvrInUse\n }\n\n /**\n * destroys the container\n * @method destroy\n */\n destroy() {\n this.trigger(Events.CONTAINER_DESTROYED, this, this.name)\n this.stopListening()\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n }\n\n setStyle(style) {\n this.$el.css(style)\n }\n\n animate(style, duration) {\n return this.$el.animate(style, duration).promise()\n }\n\n ready() {\n this.isReady = true\n this.trigger(Events.CONTAINER_READY, this.name)\n }\n\n isPlaying() {\n return this.playback.isPlaying()\n }\n\n getStartTimeOffset() {\n return this.playback.getStartTimeOffset()\n }\n\n getCurrentTime() {\n return this.currentTime\n }\n\n getDuration() {\n return this.playback.getDuration()\n }\n\n error(errorObj) {\n if (!this.isReady)\n this.ready()\n\n this.trigger(Events.CONTAINER_ERROR, { error: errorObj, container: this }, this.name)\n }\n\n loadedMetadata(metadata) {\n this.trigger(Events.CONTAINER_LOADEDMETADATA, metadata)\n }\n\n timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current\n this.trigger(Events.CONTAINER_TIMEUPDATE, timeProgress, this.name)\n }\n\n progress(...args) {\n this.trigger(Events.CONTAINER_PROGRESS, ...args, this.name)\n }\n\n playing() {\n this.trigger(Events.CONTAINER_PLAY, this.name)\n }\n\n paused() {\n this.trigger(Events.CONTAINER_PAUSE, this.name)\n }\n\n /**\n * plays the playback\n * @method play\n */\n play() {\n this.playback.play()\n }\n\n /**\n * stops the playback\n * @method stop\n */\n stop() {\n this.playback.stop()\n this.currentTime = 0\n }\n\n /**\n * pauses the playback\n * @method pause\n */\n pause() {\n this.playback.pause()\n }\n\n onEnded() {\n this.trigger(Events.CONTAINER_ENDED, this, this.name)\n this.currentTime = 0\n }\n\n stopped() {\n this.trigger(Events.CONTAINER_STOP)\n }\n\n clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CLICK, this, this.name)\n\n }\n\n dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_DBLCLICK, this, this.name)\n\n }\n\n onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CONTEXTMENU, event, this.name)\n\n }\n\n seek(time) {\n this.trigger(Events.CONTAINER_SEEK, time, this.name)\n this.playback.seek(time)\n }\n\n onSeeked() {\n this.trigger(Events.CONTAINER_SEEKED, this.name)\n }\n\n seekPercentage(percentage) {\n const duration = this.getDuration()\n if (percentage >= 0 && percentage <= 100) {\n const time = duration * (percentage / 100)\n this.seek(time)\n }\n }\n\n setVolume(value) {\n this.volume = parseInt(value, 10)\n this.trigger(Events.CONTAINER_VOLUME, value, this.name)\n this.playback.volume(value)\n }\n\n fullscreen() {\n this.trigger(Events.CONTAINER_FULLSCREEN, this.name)\n }\n\n onBuffering() {\n this.trigger(Events.CONTAINER_STATE_BUFFERING, this.name)\n }\n\n bufferfull() {\n this.trigger(Events.CONTAINER_STATE_BUFFERFULL, this.name)\n }\n\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_ENTER)\n\n }\n\n mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_LEAVE)\n\n }\n\n settingsUpdate() {\n this.settings = this.playback.settings\n this.trigger(Events.CONTAINER_SETTINGSUPDATE)\n }\n\n highDefinitionUpdate(isHD) {\n this.trigger(Events.CONTAINER_HIGHDEFINITIONUPDATE, isHD)\n }\n\n isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse()\n }\n\n disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true\n this.trigger(Events.CONTAINER_MEDIACONTROL_DISABLE)\n }\n }\n\n enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false\n this.trigger(Events.CONTAINER_MEDIACONTROL_ENABLE)\n }\n }\n\n updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.$el.removeClass('chromeless')\n else\n this.$el.addClass('chromeless')\n\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.updateStyle()\n this.trigger(Events.CONTAINER_OPTIONS_CHANGE)\n }\n\n render() {\n this.$el.append(this.playback.render().el)\n this.updateStyle()\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container/container.js","// style-loader: Adds some css to the DOM by adding a ').html((0,s.default)(t.toString())(e))}};e.default=l,t.exports=e.default},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(157),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){t.exports={default:i(159),__esModule:!0}},function(t,e,i){"use strict";e.__esModule=!0;var n=i(79),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=function(t){if(Array.isArray(t)){for(var e=0,i=Array(t.length);ec;)if((s=l[c++])!=s)return!0}else for(;u>c;c++)if((t||c in l)&&l[c]===i)return t||c||0;return!t&&-1}}},function(t,e,i){var n=i(42),r=Math.max,a=Math.min;t.exports=function(t,e){return t=n(t),t<0?r(t+e,0):a(t,e)}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,i){t.exports={default:i(97),__esModule:!0}},function(t,e,i){i(65),i(103),t.exports=i(51).f("iterator")},function(t,e,i){var n=i(42),r=i(40);t.exports=function(t){return function(e,i){var a,o,s=String(r(e)),l=n(i),u=s.length;return l<0||l>=u?t?"":void 0:(a=s.charCodeAt(l),a<55296||a>56319||l+1===u||(o=s.charCodeAt(l+1))<56320||o>57343?t?s.charAt(l):a:t?s.slice(l,l+2):o-56320+(a-55296<<10)+65536)}}},function(t,e,i){"use strict";var n=i(49),r=i(28),a=i(50),o={};i(22)(o,i(12)("iterator"),function(){return this}),t.exports=function(t,e,i){t.prototype=n(o,{next:r(1,i)}),a(t,e+" Iterator")}},function(t,e,i){var n=i(16),r=i(23),a=i(25);t.exports=i(20)?Object.defineProperties:function(t,e){r(t);for(var i,o=a(e),s=o.length,l=0;s>l;)n.f(t,i=o[l++],e[i]);return t}},function(t,e,i){t.exports=i(15).document&&document.documentElement},function(t,e,i){var n=i(18),r=i(39),a=i(43)("IE_PROTO"),o=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),n(t,a)?t[a]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?o:null}},function(t,e,i){i(104);for(var n=i(15),r=i(22),a=i(29),o=i(12)("toStringTag"),s=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],l=0;l<5;l++){var u=s[l],c=n[u],d=c&&c.prototype;d&&!d[o]&&r(d,o,u),a[u]=a.Array}},function(t,e,i){"use strict";var n=i(105),r=i(106),a=i(29),o=i(14);t.exports=i(66)(Array,"Array",function(t,e){this._t=o(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,i=this._i++;return!t||i>=t.length?(this._t=void 0,r(1)):"keys"==e?r(0,i):"values"==e?r(0,t[i]):r(0,[i,t[i]])},"values"),a.Arguments=a.Array,n("keys"),n("values"),n("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,i){t.exports={default:i(108),__esModule:!0}},function(t,e,i){i(109),i(115),i(116),i(117),t.exports=i(11).Symbol},function(t,e,i){"use strict";var n=i(15),r=i(18),a=i(20),o=i(19),s=i(67),l=i(110).KEY,u=i(27),c=i(44),d=i(50),h=i(32),f=i(12),p=i(51),g=i(52),y=i(111),m=i(112),v=i(113),b=i(23),_=i(14),E=i(47),T=i(28),A=i(49),S=i(114),L=i(54),R=i(16),k=i(25),w=L.f,C=R.f,I=S.f,D=n.Symbol,O=n.JSON,P=O&&O.stringify,x=f("_hidden"),N=f("toPrimitive"),M={}.propertyIsEnumerable,F=c("symbol-registry"),B=c("symbols"),U=c("op-symbols"),G=Object.prototype,K="function"==typeof D,V=n.QObject,j=!V||!V.prototype||!V.prototype.findChild,Y=a&&u(function(){return 7!=A(C({},"a",{get:function(){return C(this,"a",{value:7}).a}})).a})?function(t,e,i){var n=w(G,e);n&&delete G[e],C(t,e,i),n&&t!==G&&C(G,e,n)}:C,H=function(t){var e=B[t]=A(D.prototype);return e._k=t,e},$=K&&"symbol"==typeof D.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof D},z=function(t,e,i){return t===G&&z(U,e,i),b(t),e=E(e,!0),b(i),r(B,e)?(i.enumerable?(r(t,x)&&t[x][e]&&(t[x][e]=!1),i=A(i,{enumerable:T(0,!1)})):(r(t,x)||C(t,x,T(1,{})),t[x][e]=!0),Y(t,e,i)):C(t,e,i)},W=function(t,e){b(t);for(var i,n=m(e=_(e)),r=0,a=n.length;a>r;)z(t,i=n[r++],e[i]);return t},q=function(t,e){return void 0===e?A(t):W(A(t),e)},X=function(t){var e=M.call(this,t=E(t,!0));return!(this===G&&r(B,t)&&!r(U,t))&&(!(e||!r(this,t)||!r(B,t)||r(this,x)&&this[x][t])||e)},Z=function(t,e){if(t=_(t),e=E(e,!0),t!==G||!r(B,e)||r(U,e)){var i=w(t,e);return!i||!r(B,e)||r(t,x)&&t[x][e]||(i.enumerable=!0),i}},J=function(t){for(var e,i=I(_(t)),n=[],a=0;i.length>a;)r(B,e=i[a++])||e==x||e==l||n.push(e);return n},Q=function(t){for(var e,i=t===G,n=I(i?U:_(t)),a=[],o=0;n.length>o;)!r(B,e=n[o++])||i&&!r(G,e)||a.push(B[e]);return a};K||(D=function(){if(this instanceof D)throw TypeError("Symbol is not a constructor!");var t=h(arguments.length>0?arguments[0]:void 0),e=function(i){this===G&&e.call(U,i),r(this,x)&&r(this[x],t)&&(this[x][t]=!1),Y(this,t,T(1,i))};return a&&j&&Y(G,t,{configurable:!0,set:e}),H(t)},s(D.prototype,"toString",function(){return this._k}),L.f=Z,R.f=z,i(69).f=S.f=J,i(53).f=X,i(68).f=Q,a&&!i(48)&&s(G,"propertyIsEnumerable",X,!0),p.f=function(t){return H(f(t))}),o(o.G+o.W+o.F*!K,{Symbol:D});for(var tt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),et=0;tt.length>et;)f(tt[et++]);for(var tt=k(f.store),et=0;tt.length>et;)g(tt[et++]);o(o.S+o.F*!K,"Symbol",{for:function(t){return r(F,t+="")?F[t]:F[t]=D(t)},keyFor:function(t){if($(t))return y(F,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){j=!0},useSimple:function(){j=!1}}),o(o.S+o.F*!K,"Object",{create:q,defineProperty:z,defineProperties:W,getOwnPropertyDescriptor:Z,getOwnPropertyNames:J,getOwnPropertySymbols:Q}),O&&o(o.S+o.F*(!K||u(function(){var t=D();return"[null]"!=P([t])||"{}"!=P({a:t})||"{}"!=P(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!$(t)){for(var e,i,n=[t],r=1;arguments.length>r;)n.push(arguments[r++]);return e=n[1],"function"==typeof e&&(i=e),!i&&v(e)||(e=function(t,e){if(i&&(e=i.call(this,t,e)),!$(e))return e}),n[1]=e,P.apply(O,n)}}}),D.prototype[N]||i(22)(D.prototype,N,D.prototype.valueOf),d(D,"Symbol"),d(Math,"Math",!0),d(n.JSON,"JSON",!0)},function(t,e,i){var n=i(32)("meta"),r=i(26),a=i(18),o=i(16).f,s=0,l=Object.isExtensible||function(){return!0},u=!i(27)(function(){return l(Object.preventExtensions({}))}),c=function(t){o(t,n,{value:{i:"O"+ ++s,w:{}}})},d=function(t,e){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!a(t,n)){if(!l(t))return"F";if(!e)return"E";c(t)}return t[n].i},h=function(t,e){if(!a(t,n)){if(!l(t))return!0;if(!e)return!1;c(t)}return t[n].w},f=function(t){return u&&p.NEED&&l(t)&&!a(t,n)&&c(t),t},p=t.exports={KEY:n,NEED:!1,fastKey:d,getWeak:h,onFreeze:f}},function(t,e,i){var n=i(25),r=i(14);t.exports=function(t,e){for(var i,a=r(t),o=n(a),s=o.length,l=0;s>l;)if(a[i=o[l++]]===e)return i}},function(t,e,i){var n=i(25),r=i(68),a=i(53);t.exports=function(t){var e=n(t),i=r.f;if(i)for(var o,s=i(t),l=a.f,u=0;s.length>u;)l.call(t,o=s[u++])&&e.push(o);return e}},function(t,e,i){var n=i(41);t.exports=Array.isArray||function(t){return"Array"==n(t)}},function(t,e,i){var n=i(14),r=i(69).f,a={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return r(t)}catch(t){return o.slice()}};t.exports.f=function(t){return o&&"[object Window]"==a.call(t)?s(t):r(n(t))}},function(t,e){},function(t,e,i){i(52)("asyncIterator")},function(t,e,i){i(52)("observable")},function(t,e,i){i(119);var n=i(11).Object;t.exports=function(t,e,i){return n.defineProperty(t,e,i)}},function(t,e,i){var n=i(19);n(n.S+n.F*!i(20),"Object",{defineProperty:i(16).f})},function(t,e,i){t.exports={default:i(121),__esModule:!0}},function(t,e,i){i(122),t.exports=i(11).Object.setPrototypeOf},function(t,e,i){var n=i(19);n(n.S,"Object",{setPrototypeOf:i(123).set})},function(t,e,i){var n=i(26),r=i(23),a=function(t,e){if(r(t),!n(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,n){try{n=i(46)(Function.call,i(54).f(Object.prototype,"__proto__").set,2),n(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,i){return a(t,i),e?t.__proto__=i:n(t,i),t}}({},!1):void 0),check:a}},function(t,e,i){i(125);var n=i(11).Object;t.exports=function(t,e){return n.create(t,e)}},function(t,e,i){var n=i(19);n(n.S,"Object",{create:i(49)})},function(t,e,i){t.exports={default:i(127),__esModule:!0}},function(t,e,i){i(128);var n=i(11).Object;t.exports=function(t,e){return n.getOwnPropertyDescriptor(t,e)}},function(t,e,i){var n=i(14),r=i(54).f;i(62)("getOwnPropertyDescriptor",function(){return function(t,e){return r(n(t),e)}})},function(t,e,i){"use strict";Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(t){if(null==this)throw new TypeError('"this" is null or not defined');var e=Object(this),i=e.length>>>0;if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var n=arguments[1],r=0;r0&&void 0!==arguments[0]?arguments[0]:u,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c;(0,r.default)(this,t),this.kibo=new a.Kibo,this.kibo.down(["ctrl shift d"],function(){return e.onOff()}),this.BLACKLIST=["timeupdate","playback:timeupdate","playback:progress","container:hover","container:timeupdate","container:progress"],this.level=i,this.offLevel=n}return t.prototype.debug=function(t){this.log(t,0,Array.prototype.slice.call(arguments,1))},t.prototype.info=function(t){this.log(t,u,Array.prototype.slice.call(arguments,1))},t.prototype.warn=function(t){this.log(t,2,Array.prototype.slice.call(arguments,1))},t.prototype.error=function(t){this.log(t,3,Array.prototype.slice.call(arguments,1))},t.prototype.onOff=function(){this.level===this.offLevel?this.level=this.previousLevel:(this.previousLevel=this.level,this.level=this.offLevel),window.console&&window.console.log&&window.console.log("%c[Clappr.Log] set log level to "+h[this.level],s)},t.prototype.level=function(t){this.level=t},t.prototype.log=function(t,e,i){if(!(this.BLACKLIST.indexOf(i[0])>=0||e(0,I.default)(window).height()?"landscape":"portrait";this._screenOrientation!==e&&(this._screenOrientation=e,this.trigger(p.default.CORE_SCREEN_ORIENTATION_CHANGED,{event:t,orientation:this._screenOrientation}))},e.prototype.setMediaControlContainer=function(t){this.mediaControl.setContainer(t),this.mediaControl.render()},e.prototype.disableMediaControl=function(){this.mediaControl.disable(),this.$el.removeClass("nocursor")},e.prototype.enableMediaControl=function(){this.mediaControl.enable()},e.prototype.removeContainer=function(t){this.stopListening(t),this.containers=this.containers.filter(function(e){return e!==t})},e.prototype.appendContainer=function(t){this.listenTo(t,p.default.CONTAINER_DESTROYED,this.removeContainer),this.containers.push(t)},e.prototype.setupContainers=function(t){return t.map(this.appendContainer.bind(this)),this.trigger(p.default.CORE_CONTAINERS_CREATED),this.renderContainers(),this.setupMediaControl(this.getCurrentContainer()),this.render(),this.appendToParent(),this.containers},e.prototype.renderContainers=function(){var t=this;this.containers.map(function(e){return t.el.appendChild(e.render().el)})},e.prototype.createContainer=function(t,e){var i=this.containerFactory.createContainer(t,e);return this.appendContainer(i),this.el.appendChild(i.render().el),i},e.prototype.setupMediaControl=function(t){this.mediaControl?this.mediaControl.setContainer(t):(this.mediaControl=this.createMediaControl(I.default.extend({container:t,focusElement:this.el},this.options)),this.listenTo(this.mediaControl,p.default.MEDIACONTROL_FULLSCREEN,this.toggleFullscreen),this.listenTo(this.mediaControl,p.default.MEDIACONTROL_SHOW,this.onMediaControlShow.bind(this,!0)),this.listenTo(this.mediaControl,p.default.MEDIACONTROL_HIDE,this.onMediaControlShow.bind(this,!1)))},e.prototype.createMediaControl=function(t){return t.mediacontrol&&t.mediacontrol.external?new t.mediacontrol.external(t).render():new T.default(t).render()},e.prototype.getCurrentContainer=function(){return this.mediaControl&&this.mediaControl.container?this.mediaControl.container:this.containers[0]},e.prototype.getCurrentPlayback=function(){var t=this.getCurrentContainer();return t&&t.playback},e.prototype.getPlaybackType=function(){var t=this.getCurrentContainer();return t&&t.getPlaybackType()},e.prototype.toggleFullscreen=function(){h.Fullscreen.isFullscreen()?(h.Fullscreen.cancelFullscreen(),v.default.isiOS||this.$el.removeClass("fullscreen nocursor")):(h.Fullscreen.requestFullscreen(this.el),v.default.isiOS||this.$el.addClass("fullscreen")),this.mediaControl.show()},e.prototype.showMediaControl=function(t){this.mediaControl.show(t)},e.prototype.hideMediaControl=function(){this.mediaControl.hide(this.options.hideMediaControlDelay)},e.prototype.onMediaControlShow=function(t){this.getCurrentContainer().trigger(t?p.default.CONTAINER_MEDIACONTROL_SHOW:p.default.CONTAINER_MEDIACONTROL_HIDE),t?this.$el.removeClass("nocursor"):h.Fullscreen.isFullscreen()&&this.$el.addClass("nocursor")},e.prototype.configure=function(t){var e=this;this._options=I.default.extend(this._options,t),this.configureDomRecycler();var i=t.source||t.sources;i?this.load(i,t.mimeType||this.options.mimeType):(this.trigger(p.default.CORE_OPTIONS_CHANGE),this.containers.forEach(function(t){t.configure(e.options)}))},e.prototype.appendToParent=function(){!(this.$el.parent()&&this.$el.parent().length)&&this.$el.appendTo(this.options.parentElement)},e.prototype.render=function(){this.$el.append(this.mediaControl.render().el),P||(P=w.default.getStyleFor(O.default,{baseUrl:this.options.baseUrl})),(0,I.default)("head").append(P),this.options.width=this.options.width||this.$el.width(),this.options.height=this.options.height||this.$el.height();var t={width:this.options.width,height:this.options.height};return this.playerInfo.previousSize=this.playerInfo.currentSize=this.playerInfo.computedSize=t,this.updateSize(),this.previousSize={width:this.$el.width(),height:this.$el.height()},this.enableResizeObserver(),this},e}(y.default);e.default=x,t.exports=e.default},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(136),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(33),a=n(r),o=i(0),s=n(o),l=i(1),u=n(l),c=i(3),d=n(c),h=i(2),f=n(h),p=i(17),g=n(p),y=i(4),m=n(y),v=i(73),b=n(v),_=i(6),E=n(_),T=function(t){function e(i,n,r){(0,s.default)(this,e);var a=(0,u.default)(this,t.call(this,i));return a._i18n=r,a.loader=n,a}return(0,f.default)(e,t),(0,d.default)(e,[{key:"options",get:function(){return this._options},set:function(t){this._options=t}}]),e.prototype.createContainers=function(){var t=this;return E.default.Deferred(function(e){e.resolve(t.options.sources.map(function(e){return t.createContainer(e)}))})},e.prototype.findPlaybackPlugin=function(t,e){return this.loader.playbackPlugins.filter(function(i){return i.canPlay(t,e)})[0]},e.prototype.createContainer=function(t){var e=null,i=this.options.mimeType;"object"===(void 0===t?"undefined":(0,a.default)(t))?(e=t.source.toString(),t.mimeType&&(i=t.mimeType)):e=t.toString(),e.match(/^\/\//)&&(e=window.location.protocol+e);var n=E.default.extend({},this.options,{src:e,mimeType:i}),r=this.findPlaybackPlugin(e,i),o=new r(n,this._i18n);n=E.default.extend({},n,{playback:o});var s=new b.default(n,this._i18n),l=E.default.Deferred();return l.promise(s),this.addContainerPlugins(s),this.listenToOnce(s,m.default.CONTAINER_READY,function(){return l.resolve(s)}),s},e.prototype.addContainerPlugins=function(t){this.loader.containerPlugins.forEach(function(e){t.addPlugin(new e(t))})},e}(g.default);e.default=T,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(4),f=n(h),p=i(21),g=n(p);i(138);var y=i(6),m=n(y),v=function(t){function e(i,n){(0,a.default)(this,e);var r=(0,s.default)(this,t.call(this,i));return r._i18n=n,r.currentTime=0,r.volume=100,r.playback=i.playback,r.settings=m.default.extend({},r.playback.settings),r.isReady=!1,r.mediaControlDisabled=!1,r.plugins=[r.playback],r.bindEvents(),r}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"Container"}},{key:"attributes",get:function(){return{class:"container","data-container":""}}},{key:"events",get:function(){return{click:"clicked",dblclick:"dblClicked",doubleTap:"dblClicked",contextmenu:"onContextMenu",mouseenter:"mouseEnter",mouseleave:"mouseLeave"}}},{key:"ended",get:function(){return this.playback.ended}},{key:"buffering",get:function(){return this.playback.buffering}},{key:"i18n",get:function(){return this._i18n}},{key:"hasClosedCaptionsTracks",get:function(){return this.playback.hasClosedCaptionsTracks}},{key:"closedCaptionsTracks",get:function(){return this.playback.closedCaptionsTracks}},{key:"closedCaptionsTrackId",get:function(){return this.playback.closedCaptionsTrackId},set:function(t){this.playback.closedCaptionsTrackId=t}}]),e.prototype.bindEvents=function(){this.listenTo(this.playback,f.default.PLAYBACK_PROGRESS,this.progress),this.listenTo(this.playback,f.default.PLAYBACK_TIMEUPDATE,this.timeUpdated),this.listenTo(this.playback,f.default.PLAYBACK_READY,this.ready),this.listenTo(this.playback,f.default.PLAYBACK_BUFFERING,this.onBuffering),this.listenTo(this.playback,f.default.PLAYBACK_BUFFERFULL,this.bufferfull),this.listenTo(this.playback,f.default.PLAYBACK_SETTINGSUPDATE,this.settingsUpdate),this.listenTo(this.playback,f.default.PLAYBACK_LOADEDMETADATA,this.loadedMetadata),this.listenTo(this.playback,f.default.PLAYBACK_HIGHDEFINITIONUPDATE,this.highDefinitionUpdate),this.listenTo(this.playback,f.default.PLAYBACK_BITRATE,this.updateBitrate),this.listenTo(this.playback,f.default.PLAYBACK_PLAYBACKSTATE,this.playbackStateChanged),this.listenTo(this.playback,f.default.PLAYBACK_DVR,this.playbackDvrStateChanged),this.listenTo(this.playback,f.default.PLAYBACK_MEDIACONTROL_DISABLE,this.disableMediaControl),this.listenTo(this.playback,f.default.PLAYBACK_MEDIACONTROL_ENABLE,this.enableMediaControl),this.listenTo(this.playback,f.default.PLAYBACK_SEEKED,this.onSeeked),this.listenTo(this.playback,f.default.PLAYBACK_ENDED,this.onEnded),this.listenTo(this.playback,f.default.PLAYBACK_PLAY,this.playing),this.listenTo(this.playback,f.default.PLAYBACK_PAUSE,this.paused),this.listenTo(this.playback,f.default.PLAYBACK_STOP,this.stopped),this.listenTo(this.playback,f.default.PLAYBACK_ERROR,this.error),this.listenTo(this.playback,f.default.PLAYBACK_SUBTITLE_AVAILABLE,this.subtitleAvailable),this.listenTo(this.playback,f.default.PLAYBACK_SUBTITLE_CHANGED,this.subtitleChanged)},e.prototype.subtitleAvailable=function(){this.trigger(f.default.CONTAINER_SUBTITLE_AVAILABLE)},e.prototype.subtitleChanged=function(t){this.trigger(f.default.CONTAINER_SUBTITLE_CHANGED,t)},e.prototype.playbackStateChanged=function(t){this.trigger(f.default.CONTAINER_PLAYBACKSTATE,t)},e.prototype.playbackDvrStateChanged=function(t){this.settings=this.playback.settings,this.dvrInUse=t,this.trigger(f.default.CONTAINER_PLAYBACKDVRSTATECHANGED,t)},e.prototype.updateBitrate=function(t){this.trigger(f.default.CONTAINER_BITRATE,t)},e.prototype.statsReport=function(t){this.trigger(f.default.CONTAINER_STATS_REPORT,t)},e.prototype.getPlaybackType=function(){return this.playback.getPlaybackType()},e.prototype.isDvrEnabled=function(){return!!this.playback.dvrEnabled},e.prototype.isDvrInUse=function(){return!!this.dvrInUse},e.prototype.destroy=function(){this.trigger(f.default.CONTAINER_DESTROYED,this,this.name),this.stopListening(),this.plugins.forEach(function(t){return t.destroy()}),this.$el.remove()},e.prototype.setStyle=function(t){this.$el.css(t)},e.prototype.animate=function(t,e){return this.$el.animate(t,e).promise()},e.prototype.ready=function(){this.isReady=!0,this.trigger(f.default.CONTAINER_READY,this.name)},e.prototype.isPlaying=function(){return this.playback.isPlaying()},e.prototype.getStartTimeOffset=function(){return this.playback.getStartTimeOffset()},e.prototype.getCurrentTime=function(){return this.currentTime},e.prototype.getDuration=function(){return this.playback.getDuration()},e.prototype.error=function(t){this.isReady||this.ready(),this.trigger(f.default.CONTAINER_ERROR,{error:t,container:this},this.name)},e.prototype.loadedMetadata=function(t){this.trigger(f.default.CONTAINER_LOADEDMETADATA,t)},e.prototype.timeUpdated=function(t){this.currentTime=t.current,this.trigger(f.default.CONTAINER_TIMEUPDATE,t,this.name)},e.prototype.progress=function(){for(var t=arguments.length,e=Array(t),i=0;i=0&&t<=100){var i=e*(t/100);this.seek(i)}},e.prototype.setVolume=function(t){this.volume=parseInt(t,10),this.trigger(f.default.CONTAINER_VOLUME,t,this.name),this.playback.volume(t)},e.prototype.fullscreen=function(){this.trigger(f.default.CONTAINER_FULLSCREEN,this.name)},e.prototype.onBuffering=function(){this.trigger(f.default.CONTAINER_STATE_BUFFERING,this.name)},e.prototype.bufferfull=function(){this.trigger(f.default.CONTAINER_STATE_BUFFERFULL,this.name)},e.prototype.addPlugin=function(t){this.plugins.push(t)},e.prototype.hasPlugin=function(t){return!!this.getPlugin(t)},e.prototype.getPlugin=function(t){return this.plugins.filter(function(e){return e.name===t})[0]},e.prototype.mouseEnter=function(){this.options.chromeless&&!this.options.allowUserInteraction||this.trigger(f.default.CONTAINER_MOUSE_ENTER)},e.prototype.mouseLeave=function(){this.options.chromeless&&!this.options.allowUserInteraction||this.trigger(f.default.CONTAINER_MOUSE_LEAVE)},e.prototype.settingsUpdate=function(){this.settings=this.playback.settings,this.trigger(f.default.CONTAINER_SETTINGSUPDATE)},e.prototype.highDefinitionUpdate=function(t){this.trigger(f.default.CONTAINER_HIGHDEFINITIONUPDATE,t)},e.prototype.isHighDefinitionInUse=function(){return this.playback.isHighDefinitionInUse()},e.prototype.disableMediaControl=function(){this.mediaControlDisabled||(this.mediaControlDisabled=!0,this.trigger(f.default.CONTAINER_MEDIACONTROL_DISABLE))},e.prototype.enableMediaControl=function(){this.mediaControlDisabled&&(this.mediaControlDisabled=!1,this.trigger(f.default.CONTAINER_MEDIACONTROL_ENABLE))},e.prototype.updateStyle=function(){!this.options.chromeless||this.options.allowUserInteraction?this.$el.removeClass("chromeless"):this.$el.addClass("chromeless")},e.prototype.configure=function(t){this._options=m.default.extend(this._options,t),this.updateStyle(),this.trigger(f.default.CONTAINER_OPTIONS_CHANGE)},e.prototype.render=function(){return this.$el.append(this.playback.render().el),this.updateStyle(),this},e}(g.default);e.default=v,t.exports=e.default},function(t,e,i){var n=i(139);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,".container[data-container]{position:absolute;background-color:#000;height:100%;width:100%}.container[data-container] .chromeless{cursor:default}[data-player]:not(.nocursor) .container[data-container]:not(.chromeless).pointer-enabled{cursor:pointer}",""])},function(t,e){t.exports=function(t){var e="undefined"!=typeof window&&window.location;if(!e)throw new Error("fixUrls requires window.location");if(!t||"string"!=typeof t)return t;var i=e.protocol+"//"+e.host,n=i+e.pathname.replace(/\/[^\/]*$/,"/");return t.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(t,e){var r=e.trim().replace(/^"(.*)"$/,function(t,e){return e}).replace(/^'(.*)'$/,function(t,e){return e});if(/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(r))return t;var a;return a=0===r.indexOf("//")?r:0===r.indexOf("/")?i+r:n+r.replace(/^\.\//,""),"url("+JSON.stringify(a)+")"})}},function(t,e,i){"use strict";(function(n){function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var a=i(142),o=r(a),s=i(0),l=r(s),u=i(1),c=r(u),d=i(3),h=r(d),f=i(2),p=r(f),g=i(5),y=i(56),m=i(4),v=r(m),b=i(21),_=r(b),E=i(13),T=r(E),A=i(24),S=r(A),L=i(8),R=r(L),k=i(9),w=r(k),C=i(6),I=r(C);i(144);var D=i(146),O=r(D),P=i(58),x=r(P),N=i(76),M=r(N),F=i(147),B=r(F),U=i(148),G=r(U),K=i(149),V=r(K),j=i(150),Y=r(j),H=i(151),$=r(H),z=i(152),W=r(z),q=function(t){function e(i){(0,l.default)(this,e);var n=(0,c.default)(this,t.call(this,i));n.persistConfig=n.options.persistConfig,n.container=i.container,n.currentPositionValue=null,n.currentDurationValue=null;var r=n.persistConfig?g.Config.restore("volume"):100;return n.setVolume(n.options.mute?0:r),n.keepVisible=!1,n.fullScreenOnVideoTagSupported=null,n.addEventListeners(),n.settings={left:["play","stop","pause"],right:["volume"],default:["position","seekbar","duration"]},n.container?I.default.isEmptyObject(n.container.settings)||(n.settings=I.default.extend({},n.container.settings)):n.settings={},n.userDisabled=!1,(n.container&&n.container.mediaControlDisabled||n.options.chromeless)&&n.disable(),n.stopDragHandler=function(t){return n.stopDrag(t)},n.updateDragHandler=function(t){return n.updateDrag(t)},(0,I.default)(document).bind("mouseup",n.stopDragHandler),(0,I.default)(document).bind("mousemove",n.updateDragHandler),n}return(0,p.default)(e,t),(0,h.default)(e,[{key:"name",get:function(){return"MediaControl"}},{key:"disabled",get:function(){return this.userDisabled||this.container&&this.container.getPlaybackType()===w.default.NO_OP}},{key:"attributes",get:function(){return{class:"media-control","data-media-control":""}}},{key:"events",get:function(){return{"click [data-play]":"play","click [data-pause]":"pause","click [data-playpause]":"togglePlayPause","click [data-stop]":"stop","click [data-playstop]":"togglePlayStop","click [data-fullscreen]":"toggleFullscreen","click .bar-container[data-seekbar]":"seek","click .bar-container[data-volume]":"onVolumeClick","click .drawer-icon[data-volume]":"toggleMute","mouseenter .drawer-container[data-volume]":"showVolumeBar","mouseleave .drawer-container[data-volume]":"hideVolumeBar","mousedown .bar-container[data-volume]":"startVolumeDrag","mousemove .bar-container[data-volume]":"mousemoveOnVolumeBar","mousedown .bar-scrubber[data-seekbar]":"startSeekDrag","mousemove .bar-container[data-seekbar]":"mousemoveOnSeekBar","mouseleave .bar-container[data-seekbar]":"mouseleaveOnSeekBar","mouseenter .media-control-layer[data-controls]":"setUserKeepVisible","mouseleave .media-control-layer[data-controls]":"resetUserKeepVisible"}}},{key:"template",get:function(){return(0,R.default)(O.default)}},{key:"volume",get:function(){return this.container&&this.container.isReady?this.container.volume:this.intendedVolume}},{key:"muted",get:function(){return 0===this.volume}}]),e.prototype.addEventListeners=function(){this.container&&(S.default.on(this.options.playerId+":"+v.default.PLAYER_RESIZE,this.playerResize,this),this.listenTo(this.container,v.default.CONTAINER_PLAY,this.changeTogglePlay),this.listenTo(this.container,v.default.CONTAINER_PAUSE,this.changeTogglePlay),this.listenTo(this.container,v.default.CONTAINER_STOP,this.changeTogglePlay),this.listenTo(this.container,v.default.CONTAINER_DBLCLICK,this.toggleFullscreen),this.listenTo(this.container,v.default.CONTAINER_TIMEUPDATE,this.onTimeUpdate),this.listenTo(this.container,v.default.CONTAINER_PROGRESS,this.updateProgressBar),this.listenTo(this.container,v.default.CONTAINER_SETTINGSUPDATE,this.settingsUpdate),this.listenTo(this.container,v.default.CONTAINER_PLAYBACKDVRSTATECHANGED,this.settingsUpdate),this.listenTo(this.container,v.default.CONTAINER_HIGHDEFINITIONUPDATE,this.highDefinitionUpdate),this.listenTo(this.container,v.default.CONTAINER_MEDIACONTROL_DISABLE,this.disable),this.listenTo(this.container,v.default.CONTAINER_MEDIACONTROL_ENABLE,this.enable),this.listenTo(this.container,v.default.CONTAINER_ENDED,this.ended),this.listenTo(this.container,v.default.CONTAINER_VOLUME,this.onVolumeChanged),"video"===this.container.playback.el.nodeName.toLowerCase()&&this.listenToOnce(this.container,v.default.CONTAINER_LOADEDMETADATA,this.onLoadedMetadataOnVideoTag))},e.prototype.disable=function(){this.userDisabled=!0,this.hide(),this.$el.hide()},e.prototype.enable=function(){this.options.chromeless||(this.userDisabled=!1,this.show())},e.prototype.play=function(){this.container.play()},e.prototype.pause=function(){this.container.pause()},e.prototype.stop=function(){this.container.stop()},e.prototype.onVolumeChanged=function(){this.updateVolumeUI()},e.prototype.onLoadedMetadataOnVideoTag=function(){var t=this.container.playback.el;!g.Fullscreen.fullscreenEnabled()&&t.webkitSupportsFullscreen&&(this.fullScreenOnVideoTagSupported=!0,this.settingsUpdate())},e.prototype.updateVolumeUI=function(){if(this.rendered){this.$volumeBarContainer.find(".bar-fill-2").css({});var t=this.$volumeBarContainer.width(),e=this.$volumeBarBackground.width(),i=(t-e)/2,n=e*this.volume/100+i;this.$volumeBarFill.css({width:this.volume+"%"}),this.$volumeBarScrubber.css({left:n}),this.$volumeBarContainer.find(".segmented-bar-element").removeClass("fill");var r=Math.ceil(this.volume/10);this.$volumeBarContainer.find(".segmented-bar-element").slice(0,r).addClass("fill"),this.$volumeIcon.html(""),this.$volumeIcon.removeClass("muted"),this.muted?(this.$volumeIcon.append(V.default),this.$volumeIcon.addClass("muted")):this.$volumeIcon.append(G.default),this.applyButtonStyle(this.$volumeIcon)}},e.prototype.changeTogglePlay=function(){this.$playPauseToggle.html(""),this.$playStopToggle.html(""),this.container&&this.container.isPlaying()?(this.$playPauseToggle.append(M.default),this.$playStopToggle.append(B.default),this.trigger(v.default.MEDIACONTROL_PLAYING)):(this.$playPauseToggle.append(x.default),this.$playStopToggle.append(x.default),this.trigger(v.default.MEDIACONTROL_NOTPLAYING),T.default.isMobile&&this.show()),this.applyButtonStyle(this.$playPauseToggle),this.applyButtonStyle(this.$playStopToggle)},e.prototype.mousemoveOnSeekBar=function(t){if(this.settings.seekEnabled){var e=t.pageX-this.$seekBarContainer.offset().left-this.$seekBarHover.width()/2;this.$seekBarHover.css({left:e})}this.trigger(v.default.MEDIACONTROL_MOUSEMOVE_SEEKBAR,t)},e.prototype.mouseleaveOnSeekBar=function(t){this.trigger(v.default.MEDIACONTROL_MOUSELEAVE_SEEKBAR,t)},e.prototype.onVolumeClick=function(t){this.setVolume(this.getVolumeFromUIEvent(t))},e.prototype.mousemoveOnVolumeBar=function(t){this.draggingVolumeBar&&this.setVolume(this.getVolumeFromUIEvent(t))},e.prototype.playerResize=function(t){this.$fullscreenToggle.html(""),g.Fullscreen.isFullscreen()?this.$fullscreenToggle.append($.default):this.$fullscreenToggle.append(Y.default),this.applyButtonStyle(this.$fullscreenToggle),this.$el.removeClass("w320"),(t.width<=320||this.options.hideVolumeBar)&&this.$el.addClass("w320")},e.prototype.togglePlayPause=function(){return this.container.isPlaying()?this.container.pause():this.container.play(),!1},e.prototype.togglePlayStop=function(){this.container.isPlaying()?this.container.stop():this.container.play()},e.prototype.startSeekDrag=function(t){this.settings.seekEnabled&&(this.draggingSeekBar=!0,this.$el.addClass("dragging"),this.$seekBarLoaded.addClass("media-control-notransition"),this.$seekBarPosition.addClass("media-control-notransition"),this.$seekBarScrubber.addClass("media-control-notransition"),t&&t.preventDefault())},e.prototype.startVolumeDrag=function(t){this.draggingVolumeBar=!0,this.$el.addClass("dragging"),t&&t.preventDefault()},e.prototype.stopDrag=function(t){this.draggingSeekBar&&this.seek(t),this.$el.removeClass("dragging"),this.$seekBarLoaded.removeClass("media-control-notransition"),this.$seekBarPosition.removeClass("media-control-notransition"),this.$seekBarScrubber.removeClass("media-control-notransition dragging"),this.draggingSeekBar=!1,this.draggingVolumeBar=!1},e.prototype.updateDrag=function(t){if(this.draggingSeekBar){t.preventDefault();var e=t.pageX-this.$seekBarContainer.offset().left,i=e/this.$seekBarContainer.width()*100;i=Math.min(100,Math.max(i,0)),this.setSeekPercentage(i)}else this.draggingVolumeBar&&(t.preventDefault(),this.setVolume(this.getVolumeFromUIEvent(t)))},e.prototype.getVolumeFromUIEvent=function(t){return(t.pageX-this.$volumeBarContainer.offset().left)/this.$volumeBarContainer.width()*100},e.prototype.toggleMute=function(){this.setVolume(this.muted?100:0)},e.prototype.setVolume=function(t){var e=this;t=Math.min(100,Math.max(t,0)),this.intendedVolume=t,this.persistConfig&&g.Config.persist("volume",t);var i=function(){e.container.isReady?e.container.setVolume(t):e.listenToOnce(e.container,v.default.CONTAINER_READY,function(){e.container.setVolume(t)})};this.container?i():this.listenToOnce(this,v.default.MEDIACONTROL_CONTAINERCHANGED,function(){i()})},e.prototype.toggleFullscreen=function(){this.trigger(v.default.MEDIACONTROL_FULLSCREEN,this.name),this.container.fullscreen(),this.resetUserKeepVisible()},e.prototype.setContainer=function(t){this.container&&(this.stopListening(this.container),this.fullScreenOnVideoTagSupported=null),S.default.off(this.options.playerId+":"+v.default.PLAYER_RESIZE,this.playerResize,this),this.container=t,this.setVolume(this.intendedVolume),this.changeTogglePlay(),this.addEventListeners(),this.settingsUpdate(),this.container.trigger(v.default.CONTAINER_PLAYBACKDVRSTATECHANGED,this.container.isDvrInUse()),this.container.mediaControlDisabled&&this.disable(),this.trigger(v.default.MEDIACONTROL_CONTAINERCHANGED)},e.prototype.showVolumeBar=function(){this.hideVolumeId&&clearTimeout(this.hideVolumeId),this.$volumeBarContainer.removeClass("volume-bar-hide")},e.prototype.hideVolumeBar=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:400;this.$volumeBarContainer&&(this.draggingVolumeBar?this.hideVolumeId=setTimeout(function(){return t.hideVolumeBar()},e):(this.hideVolumeId&&clearTimeout(this.hideVolumeId),this.hideVolumeId=setTimeout(function(){return t.$volumeBarContainer.addClass("volume-bar-hide")},e)))},e.prototype.ended=function(){this.changeTogglePlay()},e.prototype.updateProgressBar=function(t){var e=t.start/t.total*100,i=t.current/t.total*100;this.$seekBarLoaded.css({left:e+"%",width:i-e+"%"})},e.prototype.onTimeUpdate=function(t){if(!this.draggingSeekBar){var e=t.current<0?t.total:t.current;this.currentPositionValue=e,this.currentDurationValue=t.total,this.renderSeekBar()}},e.prototype.renderSeekBar=function(){if(null!==this.currentPositionValue&&null!==this.currentDurationValue){this.currentSeekBarPercentage=100,(this.container.getPlaybackType()!==w.default.LIVE||this.container.isDvrInUse())&&(this.currentSeekBarPercentage=this.currentPositionValue/this.currentDurationValue*100),this.setSeekPercentage(this.currentSeekBarPercentage);var t=(0,g.formatTime)(this.currentPositionValue),e=(0,g.formatTime)(this.currentDurationValue);t!==this.displayedPosition&&(this.$position.text(t),this.displayedPosition=t),e!==this.displayedDuration&&(this.$duration.text(e),this.displayedDuration=e)}},e.prototype.seek=function(t){if(this.settings.seekEnabled){var e=t.pageX-this.$seekBarContainer.offset().left,i=e/this.$seekBarContainer.width()*100;return i=Math.min(100,Math.max(i,0)),this.container.seekPercentage(i),this.setSeekPercentage(i),!1}},e.prototype.setKeepVisible=function(){this.keepVisible=!0},e.prototype.resetKeepVisible=function(){this.keepVisible=!1},e.prototype.setUserKeepVisible=function(){this.userKeepVisible=!0},e.prototype.resetUserKeepVisible=function(){this.userKeepVisible=!1},e.prototype.isVisible=function(){return!this.$el.hasClass("media-control-hide")},e.prototype.show=function(t){var e=this;if(!this.disabled){(!t||t.clientX!==this.lastMouseX&&t.clientY!==this.lastMouseY||navigator.userAgent.match(/firefox/i))&&(clearTimeout(this.hideId),this.$el.show(),this.trigger(v.default.MEDIACONTROL_SHOW,this.name),this.$el.removeClass("media-control-hide"),this.hideId=setTimeout(function(){return e.hide()},2e3),t&&(this.lastMouseX=t.clientX,this.lastMouseY=t.clientY))}},e.prototype.hide=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(this.isVisible()&&(!T.default.isMobile||this.container.isPlaying())){var i=e||2e3;clearTimeout(this.hideId),(this.disabled||!1!==this.options.hideMediaControl)&&(!this.disabled&&(e||this.userKeepVisible||this.keepVisible||this.draggingSeekBar||this.draggingVolumeBar)?this.hideId=setTimeout(function(){return t.hide()},i):(this.trigger(v.default.MEDIACONTROL_HIDE,this.name),this.$el.addClass("media-control-hide"),this.hideVolumeBar(0)))}},e.prototype.settingsUpdate=function(){var t=this.getSettings();!t||this.fullScreenOnVideoTagSupported||g.Fullscreen.fullscreenEnabled()||(t.default&&(0,g.removeArrayItem)(t.default,"fullscreen"),t.left&&(0,g.removeArrayItem)(t.left,"fullscreen"),t.right&&(0,g.removeArrayItem)(t.right,"fullscreen")),(0,o.default)(this.settings)!==(0,o.default)(t)&&(this.settings=t,this.render())},e.prototype.getSettings=function(){return I.default.extend(!0,{},this.container.settings)},e.prototype.highDefinitionUpdate=function(t){var e=t?"addClass":"removeClass";this.$hdIndicator[e]("enabled")},e.prototype.createCachedElements=function(){var t=this.$el.find(".media-control-layer");this.$duration=t.find(".media-control-indicator[data-duration]"),this.$fullscreenToggle=t.find("button.media-control-button[data-fullscreen]"),this.$playPauseToggle=t.find("button.media-control-button[data-playpause]"),this.$playStopToggle=t.find("button.media-control-button[data-playstop]"),this.$position=t.find(".media-control-indicator[data-position]"),this.$seekBarContainer=t.find(".bar-container[data-seekbar]"),this.$seekBarHover=t.find(".bar-hover[data-seekbar]"),this.$seekBarLoaded=t.find(".bar-fill-1[data-seekbar]"),this.$seekBarPosition=t.find(".bar-fill-2[data-seekbar]"),this.$seekBarScrubber=t.find(".bar-scrubber[data-seekbar]"),this.$volumeBarContainer=t.find(".bar-container[data-volume]"),this.$volumeContainer=t.find(".drawer-container[data-volume]"),this.$volumeIcon=t.find(".drawer-icon[data-volume]"),this.$volumeBarBackground=this.$el.find(".bar-background[data-volume]"),this.$volumeBarFill=this.$el.find(".bar-fill-1[data-volume]"),this.$volumeBarScrubber=this.$el.find(".bar-scrubber[data-volume]"),this.$hdIndicator=this.$el.find("button.media-control-button[data-hd-indicator]"),this.resetIndicators(),this.initializeIcons()},e.prototype.resetIndicators=function(){this.displayedPosition=this.$position.text(),this.displayedDuration=this.$duration.text()},e.prototype.initializeIcons=function(){var t=this.$el.find(".media-control-layer");t.find("button.media-control-button[data-play]").append(x.default),t.find("button.media-control-button[data-pause]").append(M.default),t.find("button.media-control-button[data-stop]").append(B.default),this.$playPauseToggle.append(x.default),this.$playStopToggle.append(x.default),this.$volumeIcon.append(G.default),this.$fullscreenToggle.append(Y.default),this.$hdIndicator.append(W.default)},e.prototype.setSeekPercentage=function(t){t=Math.max(Math.min(t,100),0),this.displayedSeekBarPercentage!==t&&(this.displayedSeekBarPercentage=t,this.$seekBarPosition.removeClass("media-control-notransition"),this.$seekBarScrubber.removeClass("media-control-notransition"),this.$seekBarPosition.css({width:t+"%"}),this.$seekBarScrubber.css({left:t+"%"}))},e.prototype.seekRelative=function(t){if(this.settings.seekEnabled){var e=this.container.getCurrentTime(),i=this.container.getDuration(),n=Math.min(Math.max(e+t,0),i);n=Math.min(100*n/i,100),this.container.seekPercentage(n)}},e.prototype.bindKeyAndShow=function(t,e){var i=this;this.kibo.down(t,function(){return i.show(),e()})},e.prototype.bindKeyEvents=function(){var t=this;this.unbindKeyEvents(),this.kibo=new y.Kibo(this.options.focusElement),this.bindKeyAndShow("space",function(){return t.togglePlayPause()}),this.bindKeyAndShow("left",function(){return t.seekRelative(-5)}),this.bindKeyAndShow("right",function(){return t.seekRelative(5)}),this.bindKeyAndShow("shift left",function(){return t.seekRelative(-10)}),this.bindKeyAndShow("shift right",function(){return t.seekRelative(10)}),this.bindKeyAndShow("shift ctrl left",function(){return t.seekRelative(-15)}),this.bindKeyAndShow("shift ctrl right",function(){return t.seekRelative(15)}),["1","2","3","4","5","6","7","8","9","0"].forEach(function(e){t.bindKeyAndShow(e,function(){return t.settings.seekEnabled&&t.container.seekPercentage(10*e)})})},e.prototype.unbindKeyEvents=function(){this.kibo&&(this.kibo.off("space"),this.kibo.off("left"),this.kibo.off("right"),this.kibo.off("shift left"),this.kibo.off("shift right"),this.kibo.off("shift ctrl left"),this.kibo.off("shift ctrl right"),this.kibo.off(["1","2","3","4","5","6","7","8","9","0"]))},e.prototype.parseColors=function(){if(this.options.mediacontrol){this.buttonsColor=this.options.mediacontrol.buttons;var t=this.options.mediacontrol.seekbar;this.$el.find(".bar-fill-2[data-seekbar]").css("background-color",t),this.$el.find(".media-control-icon svg path").css("fill",this.buttonsColor),this.$el.find(".segmented-bar-element[data-volume]").css("boxShadow","inset 2px 0 0 "+this.buttonsColor)}},e.prototype.applyButtonStyle=function(t){this.buttonsColor&&t&&(0,I.default)(t).find("svg path").css("fill",this.buttonsColor)},e.prototype.destroy=function(){this.remove(),(0,I.default)(document).unbind("mouseup",this.stopDragHandler),(0,I.default)(document).unbind("mousemove",this.updateDragHandler),this.unbindKeyEvents()},e.prototype.render=function(){var t=this;this.$el.html(this.template({settings:this.settings})),this.createCachedElements(),this.$playPauseToggle.addClass("paused"),this.$playStopToggle.addClass("stopped"),this.changeTogglePlay(),this.hideId=setTimeout(function(){return t.hide()},1e3),this.disabled&&this.hide(),T.default.isSafari&&T.default.isMobile&&(T.default.version<10?this.$volumeContainer.css("display","none"):this.$volumeBarContainer.css("display","none")),this.$seekBarPosition.addClass("media-control-notransition"),this.$seekBarScrubber.addClass("media-control-notransition");var e=0;return this.displayedSeekBarPercentage&&(e=this.displayedSeekBarPercentage),this.displayedSeekBarPercentage=null,this.setSeekPercentage(e),n.nextTick(function(){t.settings.seekEnabled||t.$seekBarContainer.addClass("seek-disabled"),T.default.isMobile||t.options.disableKeyboardShortcuts||t.bindKeyEvents(),t.playerResize({width:t.options.width,height:t.options.height}),t.hideVolumeBar(0)}),this.parseColors(),this.highDefinitionUpdate(),this.rendered=!0,this.updateVolumeUI(),this.trigger(v.default.MEDIACONTROL_RENDERED),this},e}(_.default);e.default=q,q.extend=function(t){return(0,g.extend)(q,t)},t.exports=e.default}).call(e,i(57))},function(t,e,i){t.exports={default:i(143),__esModule:!0}},function(t,e,i){var n=i(11),r=n.JSON||(n.JSON={stringify:JSON.stringify});t.exports=function(t){return r.stringify.apply(r,arguments)}},function(t,e,i){var n=i(145);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,".media-control-notransition{transition:none!important}.media-control[data-media-control]{position:absolute;width:100%;height:100%;z-index:9999;pointer-events:none}.media-control[data-media-control].dragging{pointer-events:auto;cursor:-webkit-grabbing!important;cursor:grabbing!important;cursor:url("+i(75)+"),move}.media-control[data-media-control].dragging *{cursor:-webkit-grabbing!important;cursor:grabbing!important;cursor:url("+i(75)+'),move}.media-control[data-media-control] .media-control-background[data-background]{position:absolute;height:40%;width:100%;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.9));transition:opacity .6s ease-out}.media-control[data-media-control] .media-control-icon{line-height:0;letter-spacing:0;speak:none;color:#fff;opacity:.5;vertical-align:middle;text-align:left;transition:all .1s ease}.media-control[data-media-control] .media-control-icon:hover{color:#fff;opacity:.75;text-shadow:hsla(0,0%,100%,.8) 0 0 5px}.media-control[data-media-control].media-control-hide .media-control-background[data-background]{opacity:0}.media-control[data-media-control].media-control-hide .media-control-layer[data-controls]{bottom:-50px}.media-control[data-media-control].media-control-hide .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar]{opacity:0}.media-control[data-media-control] .media-control-layer[data-controls]{position:absolute;bottom:7px;width:100%;height:32px;font-size:0;vertical-align:middle;pointer-events:auto;transition:bottom .4s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-left-panel[data-media-control]{position:absolute;top:0;left:4px;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-center-panel[data-media-control]{height:100%;text-align:center;line-height:32px}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-right-panel[data-media-control]{position:absolute;top:0;right:4px;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button{background-color:transparent;border:0;margin:0 6px;padding:0;cursor:pointer;display:inline-block;width:32px;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg{width:100%;height:22px}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg path{fill:#fff}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button:focus{outline:none}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-pause],.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-play],.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-stop]{float:left;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-fullscreen]{float:right;background-color:transparent;border:0;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator]{background-color:transparent;border:0;cursor:default;display:none;float:right;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled{display:block;opacity:1}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled:hover{opacity:1;text-shadow:none}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playpause],.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playstop]{float:left}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration],.media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position]{display:inline-block;font-size:10px;color:#fff;cursor:default;line-height:32px;position:relative}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position]{margin:0 6px 0 7px}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration]{color:hsla(0,0%,100%,.5);margin-right:6px}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration]:before{content:"|";margin-right:7px}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar]{position:absolute;top:-20px;left:0;display:inline-block;vertical-align:middle;width:100%;height:25px;cursor:pointer}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar]{width:100%;height:1px;position:relative;top:12px;background-color:#666}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-1[data-seekbar]{position:absolute;top:0;left:0;width:0;height:100%;background-color:#c2c2c2;transition:all .1s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar]{position:absolute;top:0;left:0;width:0;height:100%;background-color:#005aff;transition:all .1s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-hover[data-seekbar]{opacity:0;position:absolute;top:-3px;width:5px;height:7px;background-color:hsla(0,0%,100%,.5);transition:opacity .1s ease}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar]:hover .bar-background[data-seekbar] .bar-hover[data-seekbar]{opacity:1}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar].seek-disabled{cursor:default}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar].seek-disabled:hover .bar-background[data-seekbar] .bar-hover[data-seekbar]{opacity:0}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar]{position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);top:2px;left:0;width:20px;height:20px;opacity:1;transition:all .1s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] .bar-scrubber-icon[data-seekbar]{position:absolute;left:6px;top:6px;width:8px;height:8px;border-radius:10px;box-shadow:0 0 0 6px hsla(0,0%,100%,.2);background-color:#fff}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume]{float:right;display:inline-block;height:32px;cursor:pointer;margin:0 6px;box-sizing:border-box}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume]{float:left;bottom:0}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume]{background-color:transparent;border:0;box-sizing:content-box;width:32px;height:32px;opacity:.5}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume]:hover{opacity:.75}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] svg{height:24px;position:relative;top:3px}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] svg path{fill:#fff}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume].muted svg{margin-left:2px}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume]{float:left;position:relative;overflow:hidden;top:6px;width:42px;height:18px;padding:3px 0;transition:width .2s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume]{height:1px;position:relative;top:7px;margin:0 3px;background-color:#666}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-fill-1[data-volume]{position:absolute;top:0;left:0;width:0;height:100%;background-color:#c2c2c2;transition:all .1s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-fill-2[data-volume]{position:absolute;top:0;left:0;width:0;height:100%;background-color:#005aff;transition:all .1s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-hover[data-volume]{opacity:0;position:absolute;top:-3px;width:5px;height:7px;background-color:hsla(0,0%,100%,.5);transition:opacity .1s ease}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-scrubber[data-volume]{position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);top:0;left:0;width:20px;height:20px;opacity:1;transition:all .1s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-scrubber[data-volume] .bar-scrubber-icon[data-volume]{position:absolute;left:6px;top:6px;width:8px;height:8px;border-radius:10px;box-shadow:0 0 0 6px hsla(0,0%,100%,.2);background-color:#fff}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]{float:left;width:4px;padding-left:2px;height:12px;opacity:.5;box-shadow:inset 2px 0 0 #fff;transition:-webkit-transform .2s ease-out;transition:transform .2s ease-out;transition:transform .2s ease-out,-webkit-transform .2s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume].fill{box-shadow:inset 2px 0 0 #fff;opacity:1}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:first-of-type{padding-left:0}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:hover{-webkit-transform:scaleY(1.5);transform:scaleY(1.5)}.media-control[data-media-control].w320 .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume].volume-bar-hide{width:0;height:12px;top:9px;padding:0}',""])},function(t,e){t.exports='
\n
\n <% var renderBar = function(name) { %>\n
>\n
>\n
>
\n
>
\n
>
\n
\n
>\n
>
\n
\n
\n <% }; %>\n <% var renderSegmentedBar = function(name, segments) {\n segments = segments || 10; %>\n
>\n <% for (var i = 0; i < segments; i++) { %>\n
>
\n <% } %>\n
\n <% }; %>\n <% var renderDrawer = function(name, renderContent) { %>\n
>\n
>\n
>
\n >\n
\n <% renderContent(name); %>\n
\n <% }; %>\n <% var renderIndicator = function(name) { %>\n
>
\n <% }; %>\n <% var renderButton = function(name) { %>\n \n <% }; %>\n <% var templates = {\n bar: renderBar,\n segmentedBar: renderSegmentedBar,\n };\n var render = function(settingsList) {\n settingsList.forEach(function(setting) {\n if(setting === "seekbar") {\n renderBar(setting);\n } else if (setting === "volume") {\n renderDrawer(setting, settings.volumeBarTemplate ? templates[settings.volumeBarTemplate] : function(name) { return renderSegmentedBar(name); });\n } else if (setting === "duration" || setting === "position") {\n renderIndicator(setting);\n } else {\n renderButton(setting);\n }\n });\n }; %>\n <% if (settings.default && settings.default.length) { %>\n
\n <% render(settings.default); %>\n
\n <% } %>\n <% if (settings.left && settings.left.length) { %>\n
\n <% render(settings.left); %>\n
\n <% } %>\n <% if (settings.right && settings.right.length) { %>\n
\n <% render(settings.right); %>\n
\n <% } %>\n
\n'},function(t,e){t.exports=''},function(t,e){t.exports=''},function(t,e){t.exports=''},function(t,e){t.exports=''},function(t,e){t.exports=''},function(t,e){t.exports=''},function(t,e,i){var n=i(154);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,'[data-player]{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translateZ(0);transform:translateZ(0);position:relative;margin:0;padding:0;border:0;font-style:normal;font-weight:400;text-align:center;overflow:hidden;font-size:100%;font-family:Roboto,Open Sans,Arial,sans-serif;text-shadow:0 0 0;box-sizing:border-box}[data-player] a,[data-player] abbr,[data-player] acronym,[data-player] address,[data-player] applet,[data-player] article,[data-player] aside,[data-player] audio,[data-player] b,[data-player] big,[data-player] blockquote,[data-player] canvas,[data-player] caption,[data-player] center,[data-player] cite,[data-player] code,[data-player] dd,[data-player] del,[data-player] details,[data-player] dfn,[data-player] div,[data-player] dl,[data-player] dt,[data-player] em,[data-player] embed,[data-player] fieldset,[data-player] figcaption,[data-player] figure,[data-player] footer,[data-player] form,[data-player] h1,[data-player] h2,[data-player] h3,[data-player] h4,[data-player] h5,[data-player] h6,[data-player] header,[data-player] hgroup,[data-player] i,[data-player] iframe,[data-player] img,[data-player] ins,[data-player] kbd,[data-player] label,[data-player] legend,[data-player] li,[data-player] mark,[data-player] menu,[data-player] nav,[data-player] object,[data-player] ol,[data-player] output,[data-player] p,[data-player] pre,[data-player] q,[data-player] ruby,[data-player] s,[data-player] samp,[data-player] section,[data-player] small,[data-player] span,[data-player] strike,[data-player] strong,[data-player] sub,[data-player] summary,[data-player] sup,[data-player] table,[data-player] tbody,[data-player] td,[data-player] tfoot,[data-player] th,[data-player] thead,[data-player] time,[data-player] tr,[data-player] tt,[data-player] u,[data-player] ul,[data-player] var,[data-player] video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}[data-player] table{border-collapse:collapse;border-spacing:0}[data-player] caption,[data-player] td,[data-player] th{text-align:left;font-weight:400;vertical-align:middle}[data-player] blockquote,[data-player] q{quotes:none}[data-player] blockquote:after,[data-player] blockquote:before,[data-player] q:after,[data-player] q:before{content:"";content:none}[data-player] a img{border:none}[data-player]:focus{outline:0}[data-player] *{max-width:none;box-sizing:inherit;float:none}[data-player] div{display:block}[data-player].fullscreen{width:100%!important;height:100%!important;top:0;left:0}[data-player].nocursor{cursor:none}.clappr-style{display:none!important}',""])},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,'@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:local("Roboto"),local("Roboto-Regular"),url('+i(156)+') format("truetype")}',""])},function(t,e){t.exports="<%=baseUrl%>/38861cba61c66739c1452c3a71e39852.ttf"},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(71),a=n(r),o=i(0),s=n(o),l=i(1),u=n(l),c=i(2),d=n(c),h=i(17),f=n(h),p=i(34),g=n(p),y=i(35),m=n(y),v=i(81),b=n(v),_=i(82),E=n(_),T=i(83),A=n(T),S=i(84),L=n(S),R=i(85),k=n(R),w=i(86),C=n(w),I=i(189),D=n(I),O=i(194),P=n(O),x=i(196),N=n(x),M=i(87),F=n(M),B=i(205),U=n(B),G=i(207),K=n(G),V=i(209),j=n(V),Y=i(214),H=n(Y),$=i(220),z=n($),W=i(222),q=n(W),X=i(227),Z=n(X),J=i(228),Q=n(J),tt=i(229),et=n(tt),it=function(t){function e(i,n){(0,s.default)(this,e);var r=(0,u.default)(this,t.call(this));return r.playerId=n,r.playbackPlugins=[m.default,E.default,k.default,C.default],r.playbackPlugins=r.playbackPlugins.concat([L.default,b.default,A.default]),r.containerPlugins=[D.default,N.default,F.default,P.default,U.default,K.default],r.corePlugins=[j.default,H.default,z.default,q.default,Z.default,Q.default,et.default],i&&(Array.isArray(i)||r.validateExternalPluginsType(i),r.addExternalPlugins(i)),r}return(0,d.default)(e,t),e.prototype.groupPluginsByType=function(t){return Array.isArray(t)&&(t=t.reduce(function(t,e){return t[e.type]||(t[e.type]=[]),t[e.type].push(e),t},{})),t},e.prototype.removeDups=function(t){var e=function(t,e){return t[e.prototype.name]&&delete t[e.prototype.name],t[e.prototype.name]=e,t},i=t.reduceRight(e,(0,a.default)(null)),n=[];for(var r in i)n.unshift(i[r]);return n},e.prototype.addExternalPlugins=function(t){t=this.groupPluginsByType(t),t.playback&&(this.playbackPlugins=this.removeDups(t.playback.concat(this.playbackPlugins))),t.container&&(this.containerPlugins=this.removeDups(t.container.concat(this.containerPlugins))),t.core&&(this.corePlugins=this.removeDups(t.core.concat(this.corePlugins))),g.default.getInstance(this.playerId).playbackPlugins=this.playbackPlugins},e.prototype.validateExternalPluginsType=function(t){["playback","container","core"].forEach(function(e){(t[e]||[]).forEach(function(t){var i="external "+t.type+" plugin on "+e+" array";if(t.type!==e)throw new ReferenceError(i)})})},e}(f.default);e.default=it,t.exports=e.default},function(t,e,i){"use strict";(function(n){function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var a=i(79),o=r(a),s=i(0),l=r(s),u=i(1),c=r(u),d=i(3),h=r(d),f=i(2),p=r(f),g=i(80),y=r(g),m=i(31),v=r(m),b=i(5),_=i(9),E=r(_),T=i(13),A=r(T),S=i(4),L=r(S),R=i(6),k=r(R),w=i(8),C=r(w),I=i(167),D=r(I);i(168);var O={mp4:["avc1.42E01E","avc1.58A01E","avc1.4D401E","avc1.64001E","mp4v.20.8","mp4v.20.240","mp4a.40.2"].map(function(t){return'video/mp4; codecs="'+t+', mp4a.40.2"'}),ogg:['video/ogg; codecs="theora, vorbis"','video/ogg; codecs="dirac"','video/ogg; codecs="theora, speex"'],"3gpp":['video/3gpp; codecs="mp4v.20.8, samr"'],webm:['video/webm; codecs="vp8, vorbis"'],mkv:['video/x-matroska; codecs="theora, vorbis"'],m3u8:["application/x-mpegurl"]};O.ogv=O.ogg,O["3gp"]=O["3gpp"];var P={wav:["audio/wav"],mp3:["audio/mp3",'audio/mpeg;codecs="mp3"'],aac:['audio/mp4;codecs="mp4a.40.5"'],oga:["audio/ogg"]},x=(0,v.default)(P).reduce(function(t,e){return[].concat((0,y.default)(t),(0,y.default)(P[e]))},[]),N=function(t){function e(){(0,l.default)(this,e);for(var i=arguments.length,r=Array(i),a=0;a=0}},{key:"attributes",get:function(){return{"data-html5-video":""}}},{key:"events",get:function(){return{canplay:"_onCanPlay",canplaythrough:"_handleBufferingEvents",durationchange:"_onDurationChange",ended:"_onEnded",error:"_onError",loadeddata:"_onLoadedData",loadedmetadata:"_onLoadedMetadata",pause:"_onPause",playing:"_onPlaying",progress:"_onProgress",seeking:"_handleBufferingEvents",seeked:"_onSeeked",stalled:"_handleBufferingEvents",timeupdate:"_onTimeUpdate",waiting:"_onWaiting"}}},{key:"ended",get:function(){return this.el.ended}},{key:"buffering",get:function(){return this._isBuffering}}]),e.prototype._setupExternalTracks=function(t){this._externalTracks=t.map(function(t){return{kind:t.kind||"subtitles",label:t.label,lang:t.lang,src:t.src}})},e.prototype._setupSrc=function(t){this.el.src!==t&&(this._ccIsSetup=!1,this.el.src=t,this._src=this.el.src)},e.prototype._onLoadedMetadata=function(t){this._handleBufferingEvents(),this.trigger(L.default.PLAYBACK_LOADEDMETADATA,{duration:t.target.duration,data:t}),this._updateSettings();var e=void 0===this._options.autoSeekFromUrl||this._options.autoSeekFromUrl;this.getPlaybackType()!==E.default.LIVE&&e&&this._checkInitialSeek()},e.prototype._onDurationChange=function(){this._updateSettings(),this._onTimeUpdate(),this._onProgress()},e.prototype._updateSettings=function(){this.getPlaybackType()===E.default.VOD||this.getPlaybackType()===E.default.AOD?this.settings.left=["playpause","position","duration"]:this.settings.left=["playstop"],this.settings.seekEnabled=this.isSeekEnabled(),this.trigger(L.default.PLAYBACK_SETTINGSUPDATE)},e.prototype.isSeekEnabled=function(){return isFinite(this.getDuration())},e.prototype.getPlaybackType=function(){var t="audio"===this.tagName?E.default.AOD:E.default.VOD;return[0,void 0,1/0].indexOf(this.el.duration)>=0?E.default.LIVE:t},e.prototype.isHighDefinitionInUse=function(){return!1},e.prototype.consent=function(){!this.isPlaying()&&this.el.load()},e.prototype.play=function(){this.trigger(L.default.PLAYBACK_PLAY_INTENT),this._stopped=!1,this._setupSrc(this._src),this._handleBufferingEvents();var t=this.el.play();t&&t.catch&&t.catch(function(){})},e.prototype.pause=function(){this.el.pause()},e.prototype.stop=function(){this.pause(),this._stopped=!0,this.el.removeAttribute("src"),this._stopPlayheadMovingChecks(),this._handleBufferingEvents(),this.trigger(L.default.PLAYBACK_STOP)},e.prototype.volume=function(t){0===t?(this.$el.attr({muted:"true"}),this.el.muted=!0):(this.$el.attr({muted:null}),this.el.muted=!1),this.el.volume=t/100},e.prototype.mute=function(){this.el.muted=!0},e.prototype.unmute=function(){this.el.muted=!1},e.prototype.isMuted=function(){return!!this.el.volume},e.prototype.isPlaying=function(){return!this.el.paused&&!this.el.ended},e.prototype._startPlayheadMovingChecks=function(){null===this._playheadMovingTimer&&(this._playheadMovingTimeOnCheck=null,this._determineIfPlayheadMoving(),this._playheadMovingTimer=setInterval(this._determineIfPlayheadMoving.bind(this),500))},e.prototype._stopPlayheadMovingChecks=function(){null!==this._playheadMovingTimer&&(clearInterval(this._playheadMovingTimer),this._playheadMovingTimer=null,this._playheadMoving=!1)},e.prototype._determineIfPlayheadMoving=function(){var t=this._playheadMovingTimeOnCheck,e=this.el.currentTime;this._playheadMoving=t!==e,this._playheadMovingTimeOnCheck=e,this._handleBufferingEvents()},e.prototype._onWaiting=function(){this._loadStarted=!0,this._handleBufferingEvents()},e.prototype._onLoadedData=function(){this._loadStarted=!0,this._handleBufferingEvents()},e.prototype._onCanPlay=function(){this._handleBufferingEvents()},e.prototype._onPlaying=function(){this._checkForClosedCaptions(),this._startPlayheadMovingChecks(),this._handleBufferingEvents(),this.trigger(L.default.PLAYBACK_PLAY)},e.prototype._onPause=function(){this._stopPlayheadMovingChecks(),this._handleBufferingEvents(),this.trigger(L.default.PLAYBACK_PAUSE)},e.prototype._onSeeked=function(){this._handleBufferingEvents(),this.trigger(L.default.PLAYBACK_SEEKED)},e.prototype._onEnded=function(){this._handleBufferingEvents(),this.trigger(L.default.PLAYBACK_ENDED,this.name)},e.prototype._handleBufferingEvents=function(){var t=!this.el.ended&&!this.el.paused,e=this._loadStarted&&!this.el.ended&&!this._stopped&&(t&&!this._playheadMoving||this.el.readyState=t[i].start&&this.el.currentTime<=t[i].end&&(e=i);var n={start:t[e].start,current:t[e].end,total:this.el.duration};this.trigger(L.default.PLAYBACK_PROGRESS,n,t)}},e.prototype._typeFor=function(t){var i=e._mimeTypesForUrl(t,O,this.options.mimeType);return 0===i.length&&(i=e._mimeTypesForUrl(t,P,this.options.mimeType)),(i[0]||"").split(";")[0]},e.prototype._ready=function(){this._isReadyState||(this._isReadyState=!0,this.trigger(L.default.PLAYBACK_READY,this.name))},e.prototype._checkForClosedCaptions=function(){if(this.isHTML5Video&&!this._ccIsSetup){if(this.hasClosedCaptionsTracks){this.trigger(L.default.PLAYBACK_SUBTITLE_AVAILABLE);var t=this.closedCaptionsTrackId;this.closedCaptionsTrackId=t,this.handleTextTrackChange=this._handleTextTrackChange.bind(this),this.el.textTracks.addEventListener("change",this.handleTextTrackChange)}this._ccIsSetup=!0}},e.prototype._handleTextTrackChange=function(){var t=this.closedCaptionsTracks,e=t.find(function(t){return"showing"===t.track.mode})||{id:-1};this._ccTrackId!==e.id&&(this._ccTrackId=e.id,this.trigger(L.default.PLAYBACK_SUBTITLE_CHANGED,{id:e.id}))},e.prototype.render=function(){return this.options.playback.disableContextMenu&&this.$el.on("contextmenu",function(){return!1}),this._externalTracks&&this._externalTracks.length>0&&this.$el.html(this.template({tracks:this._externalTracks})),this._ready(),this},(0,h.default)(e,[{key:"isReady",get:function(){return this._isReadyState}},{key:"isHTML5Video",get:function(){return this.name===e.prototype.name}},{key:"closedCaptionsTracks",get:function(){var t=0,e=function(){return t++};return(this.el.textTracks?(0,o.default)(this.el.textTracks):[]).filter(function(t){return"subtitles"===t.kind||"captions"===t.kind}).map(function(t){return{id:e(),name:t.label,track:t}})}},{key:"closedCaptionsTrackId",get:function(){return this._ccTrackId},set:function(t){if((0,b.isNumber)(t)){var e=this.closedCaptionsTracks,i=void 0;if(-1!==t){if(!(i=e.find(function(e){return e.id===t})))return;if("showing"===i.track.mode)return}e.filter(function(t){return"hidden"!==t.track.mode}).forEach(function(t){return t.track.mode="hidden"}),i&&(i.track.mode="showing"),this._ccTrackId=t,this.trigger(L.default.PLAYBACK_SUBTITLE_CHANGED,{id:t})}}},{key:"template",get:function(){return(0,C.default)(D.default)}}]),e}(E.default);e.default=N,N._mimeTypesForUrl=function(t,e,i){var n=(t.split("?")[0].match(/.*\.(.*)$/)||[])[1],r=i||n&&e[n.toLowerCase()]||[];return r.constructor===Array?r:[r]},N._canPlay=function(t,e,i,n){var r=N._mimeTypesForUrl(i,e,n),a=document.createElement(t);return!!r.filter(function(t){return!!a.canPlayType(t).replace(/no/,"")})[0]},N.canPlay=function(t,e){return N._canPlay("audio",P,t,e)||N._canPlay("video",O,t,e)},t.exports=e.default}).call(e,i(57))},function(t,e,i){i(65),i(160),t.exports=i(11).Array.from},function(t,e,i){"use strict";var n=i(46),r=i(19),a=i(39),o=i(161),s=i(162),l=i(61),u=i(163),c=i(164);r(r.S+r.F*!i(166)(function(t){Array.from(t)}),"Array",{from:function(t){var e,i,r,d,h=a(t),f="function"==typeof this?this:Array,p=arguments.length,g=p>1?arguments[1]:void 0,y=void 0!==g,m=0,v=c(h);if(y&&(g=n(g,p>2?arguments[2]:void 0,2)),void 0==v||f==Array&&s(v))for(e=l(h.length),i=new f(e);e>m;m++)u(i,m,y?g(h[m],m):h[m]);else for(d=v.call(h),i=new f;!(r=d.next()).done;m++)u(i,m,y?o(d,g,[r.value,m],!0):r.value);return i.length=m,i}})},function(t,e,i){var n=i(23);t.exports=function(t,e,i,r){try{return r?e(n(i)[0],i[1]):e(i)}catch(e){var a=t.return;throw void 0!==a&&n(a.call(t)),e}}},function(t,e,i){var n=i(29),r=i(12)("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(n.Array===t||a[r]===t)}},function(t,e,i){"use strict";var n=i(16),r=i(28);t.exports=function(t,e,i){e in t?n.f(t,e,r(0,i)):t[e]=i}},function(t,e,i){var n=i(165),r=i(12)("iterator"),a=i(29);t.exports=i(11).getIteratorMethod=function(t){if(void 0!=t)return t[r]||t["@@iterator"]||a[n(t)]}},function(t,e,i){var n=i(41),r=i(12)("toStringTag"),a="Arguments"==n(function(){return arguments}()),o=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,i,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(i=o(e=Object(t),r))?i:a?n(e):"Object"==(s=n(e))&&"function"==typeof e.callee?"Arguments":s}},function(t,e,i){var n=i(12)("iterator"),r=!1;try{var a=[7][n]();a.return=function(){r=!0},Array.from(a,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!r)return!1;var i=!1;try{var a=[7],o=a[n]();o.next=function(){return{done:i=!0}},a[n]=function(){return o},t(a)}catch(t){}return i}},function(t,e){t.exports='<% for (var i = 0; i < tracks.length; i++) { %>\n \n<% }; %>\n'},function(t,e,i){var n=i(169);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,"[data-html5-video]{position:absolute;height:100%;width:100%;display:block}",""])},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(5),f=i(59),p=n(f),g=i(13),y=n(g),m=i(24),v=n(m),b=i(8),_=n(b),E=i(6),T=n(E),A=i(4),S=n(A),L=i(9),R=n(L),k=i(175),w=n(k),C=function(t){function e(){(0,a.default)(this,e);for(var i=arguments.length,n=Array(i),r=0;r').insertAfter(this.$el),this.getDuration()>0?this._metadataLoaded():v.default.once(this.uniqueId+":timeupdate",this._metadataLoaded,this)):(this._attempts=this._attempts||0,++this._attempts<=60?setTimeout(function(){return t._bootstrap()},50):this.trigger(S.default.PLAYBACK_ERROR,{message:"Max number of attempts reached"},this.name))},e.prototype._metadataLoaded=function(){this._isReadyState=!0,this.trigger(S.default.PLAYBACK_READY,this.name),this.trigger(S.default.PLAYBACK_SETTINGSUPDATE,this.name)},e.prototype.getPlaybackType=function(){return R.default.VOD},e.prototype.isHighDefinitionInUse=function(){return!1},e.prototype._updateTime=function(){this.trigger(S.default.PLAYBACK_TIMEUPDATE,{current:this.el.getPosition(),total:this.el.getDuration()},this.name)},e.prototype._addListeners=function(){v.default.on(this.uniqueId+":progress",this._progress,this),v.default.on(this.uniqueId+":timeupdate",this._updateTime,this),v.default.on(this.uniqueId+":statechanged",this._checkState,this),v.default.on(this.uniqueId+":flashready",this._bootstrap,this)},e.prototype.stopListening=function(){t.prototype.stopListening.call(this),v.default.off(this.uniqueId+":progress"),v.default.off(this.uniqueId+":timeupdate"),v.default.off(this.uniqueId+":statechanged"),v.default.off(this.uniqueId+":flashready")},e.prototype._checkState=function(){this._isIdle||"PAUSED"===this._currentState||("PLAYING_BUFFERING"!==this._currentState&&"PLAYING_BUFFERING"===this.el.getState()?(this._bufferingState=!0,this.trigger(S.default.PLAYBACK_BUFFERING,this.name),this._currentState="PLAYING_BUFFERING"):"PLAYING"===this.el.getState()?(this._bufferingState=!1,this.trigger(S.default.PLAYBACK_BUFFERFULL,this.name),this._currentState="PLAYING"):"IDLE"===this.el.getState()?this._currentState="IDLE":"ENDED"===this.el.getState()&&(this.trigger(S.default.PLAYBACK_ENDED,this.name),this.trigger(S.default.PLAYBACK_TIMEUPDATE,{current:0,total:this.el.getDuration()},this.name),this._currentState="ENDED",this._isIdle=!0))},e.prototype._progress=function(){"IDLE"!==this._currentState&&"ENDED"!==this._currentState&&this.trigger(S.default.PLAYBACK_PROGRESS,{start:0,current:this.el.getBytesLoaded(),total:this.el.getBytesTotal()})},e.prototype._firstPlay=function(){var t=this;this.el.playerPlay?(this._isIdle=!1,this.el.playerPlay(this._src),this.listenToOnce(this,S.default.PLAYBACK_BUFFERFULL,function(){return t._checkInitialSeek()}),this._currentState="PLAYING"):this.listenToOnce(this,S.default.PLAYBACK_READY,this._firstPlay)},e.prototype._checkInitialSeek=function(){var t=(0,h.seekStringToSeconds)(window.location.href);0!==t&&this.seekSeconds(t)},e.prototype.play=function(){this.trigger(S.default.PLAYBACK_PLAY_INTENT),"PAUSED"===this._currentState||"PLAYING_BUFFERING"===this._currentState?(this._currentState="PLAYING",this.el.playerResume(),this.trigger(S.default.PLAYBACK_PLAY,this.name)):"PLAYING"!==this._currentState&&(this._firstPlay(),this.trigger(S.default.PLAYBACK_PLAY,this.name))},e.prototype.volume=function(t){var e=this;this.isReady?this.el.playerVolume(t):this.listenToOnce(this,S.default.PLAYBACK_BUFFERFULL,function(){return e.volume(t)})},e.prototype.pause=function(){this._currentState="PAUSED",this.el.playerPause(),this.trigger(S.default.PLAYBACK_PAUSE,this.name)},e.prototype.stop=function(){this.el.playerStop(),this.trigger(S.default.PLAYBACK_STOP),this.trigger(S.default.PLAYBACK_TIMEUPDATE,{current:0,total:0},this.name)},e.prototype.isPlaying=function(){return!!(this.isReady&&this._currentState.indexOf("PLAYING")>-1)},e.prototype.getDuration=function(){return this.el.getDuration()},e.prototype.seekPercentage=function(t){var e=this;if(this.el.getDuration()>0){var i=this.el.getDuration()*(t/100);this.seek(i)}else this.listenToOnce(this,S.default.PLAYBACK_BUFFERFULL,function(){return e.seekPercentage(t)})},e.prototype.seek=function(t){var e=this;this.isReady&&this.el.playerSeek?(this.el.playerSeek(t),this.trigger(S.default.PLAYBACK_TIMEUPDATE,{current:t,total:this.el.getDuration()},this.name),"PAUSED"===this._currentState&&this.el.playerPause()):this.listenToOnce(this,S.default.PLAYBACK_BUFFERFULL,function(){return e.seek(t)})},e.prototype.destroy=function(){clearInterval(this.bootstrapId),t.prototype.stopListening.call(this),this.$el.remove()},(0,u.default)(e,[{key:"isReady",get:function(){return this._isReadyState}}]),e}(p.default);e.default=C,C.canPlay=function(t){if(y.default.hasFlash&&t&&t.constructor===String){var e=t.split("?")[0].match(/.*\.(.*)$/)||[];return e.length>1&&!y.default.isMobile&&e[1].toLowerCase().match(/^(mp4|mov|f4v|3gpp|3gp)$/)}return!1},t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(3),s=n(o),l=i(1),u=n(l),c=i(2),d=n(c),h=i(9),f=n(h),p=i(8),g=n(p),y=i(13),m=n(y),v=i(172),b=n(v);i(173);var _=function(t){function e(){return(0,a.default)(this,e),(0,u.default)(this,t.apply(this,arguments))}return(0,d.default)(e,t),e.prototype.setElement=function(t){this.$el=t,this.el=t[0]},e.prototype.render=function(){return this.$el.attr("data",this.swfPath),this.$el.html(this.template({cid:this.cid,swfPath:this.swfPath,baseUrl:this.baseUrl,playbackId:this.uniqueId,wmode:this.wmode,callbackName:"window.Clappr.flashlsCallbacks."+this.cid})),m.default.isIE&&(this.$("embed").remove(),m.default.isLegacyIE&&this.$el.attr("classid","clsid:d27cdb6e-ae6d-11cf-96b8-444553540000")),this.el.id=this.cid,this},(0,s.default)(e,[{key:"tagName",get:function(){return"object"}},{key:"swfPath",get:function(){return""}},{key:"wmode",get:function(){return"transparent"}},{key:"template",get:function(){return(0,g.default)(b.default)}},{key:"attributes",get:function(){var t="application/x-shockwave-flash";return m.default.isLegacyIE&&(t=""),{class:"clappr-flash-playback",type:t,width:"100%",height:"100%",data:this.swfPath,"data-flash-playback":this.name}}}]),e}(f.default);e.default=_,t.exports=e.default},function(t,e){t.exports='\n\n\n\n\n\n\n\n\n\n\n'},function(t,e,i){var n=i(174);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,".clappr-flash-playback[data-flash-playback]{display:block;position:absolute;top:0;left:0;height:100%;width:100%;pointer-events:none}",""])},function(t,e){t.exports="<%=baseUrl%>/4b76590b32dab62bc95c1b7951efae78.swf"},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(3),s=n(o),l=i(1),u=n(l),c=i(2),d=n(c),h=i(4),f=n(h),p=i(9),g=n(p),y=i(35),m=n(y),v=function(t){function e(){return(0,a.default)(this,e),(0,u.default)(this,t.apply(this,arguments))}return(0,d.default)(e,t),e.prototype.updateSettings=function(){this.settings.left=["playpause","position","duration"],this.settings.seekEnabled=this.isSeekEnabled(),this.trigger(f.default.PLAYBACK_SETTINGSUPDATE)},e.prototype.getPlaybackType=function(){return g.default.AOD},(0,s.default)(e,[{key:"name",get:function(){return"html5_audio"}},{key:"tagName",get:function(){return"audio"}},{key:"isAudioOnly",get:function(){return!0}}]),e}(m.default);e.default=v,v.canPlay=function(t,e){var i={wav:["audio/wav"],mp3:["audio/mp3",'audio/mpeg;codecs="mp3"'],aac:['audio/mp4;codecs="mp4a.40.5"'],oga:["audio/ogg"]};return m.default._canPlay("audio",i,t,e)},t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(59),f=n(h),p=i(4),g=n(p),y=i(8),m=n(y),v=i(9),b=n(v),_=i(24),E=n(_),T=i(13),A=n(T),S=i(178),L=n(S),R=i(179),k=n(R),w=i(6),C=n(w),I=function(t){function e(){(0,a.default)(this,e);for(var i=arguments.length,n=Array(i),r=0;r=720||e.bitrate/1e3>=2e3,this.trigger(g.default.PLAYBACK_HIGHDEFINITIONUPDATE,this.highDefinition),this._levels&&0!==this._levels.length||this._fillLevels(),this.trigger(g.default.PLAYBACK_BITRATE,{height:e.height,width:e.width,bandwidth:e.bitrate,bitrate:e.bitrate,level:t}),this.trigger(g.default.PLAYBACK_LEVEL_SWITCH_END))},e.prototype._updateTime=function(t){if("IDLE"!==this._currentState){var e=this._normalizeDuration(t.duration),i=Math.min(Math.max(t.position,0),e),n=this._dvrEnabled,r=this._playbackType===b.default.LIVE;this._dvrEnabled=r&&e>this._hlsMinimumDvrSize,100!==e&&void 0!==r&&(this._dvrEnabled!==n&&(this._updateSettings(),this.trigger(g.default.PLAYBACK_SETTINGSUPDATE,this.name)),!r||this._dvrEnabled&&this._dvrInUse||(i=e),this.trigger(g.default.PLAYBACK_TIMEUPDATE,{current:i,total:e},this.name))}},e.prototype.play=function(){this.trigger(g.default.PLAYBACK_PLAY_INTENT),"PAUSED"===this._currentState?this.el.playerResume():this._srcLoaded||"PLAYING"===this._currentState?this.el.playerPlay():this._firstPlay()},e.prototype.getPlaybackType=function(){return this._playbackType?this._playbackType:null},e.prototype.getCurrentTime=function(){return this.el.getPosition()},e.prototype.getCurrentLevelIndex=function(){return this._currentLevel},e.prototype.getCurrentLevel=function(){return this.levels[this.currentLevel]},e.prototype.getCurrentBitrate=function(){return this.levels[this.currentLevel].bitrate},e.prototype.setCurrentLevel=function(t){this.currentLevel=t},e.prototype.isHighDefinitionInUse=function(){return this.highDefinition},e.prototype.getLevels=function(){return this.levels},e.prototype._setPlaybackState=function(t){["PLAYING_BUFFERING","PAUSED_BUFFERING"].indexOf(t)>=0?(this._bufferingState=!0,this.trigger(g.default.PLAYBACK_BUFFERING,this.name),this._updateCurrentState(t)):["PLAYING","PAUSED"].indexOf(t)>=0?(["PLAYING_BUFFERING","PAUSED_BUFFERING","IDLE"].indexOf(this._currentState)>=0&&(this._bufferingState=!1,this.trigger(g.default.PLAYBACK_BUFFERFULL,this.name)),this._updateCurrentState(t)):"IDLE"===t&&(this._srcLoaded=!1,this._loop&&["PLAYING_BUFFERING","PLAYING"].indexOf(this._currentState)>=0?(this.play(),this.seek(0)):(this._updateCurrentState(t),this._hasEnded=!0,this.trigger(g.default.PLAYBACK_TIMEUPDATE,{current:0,total:this.getDuration()},this.name),this.trigger(g.default.PLAYBACK_ENDED,this.name)))},e.prototype._updateCurrentState=function(t){this._currentState=t,"IDLE"!==t&&(this._hasEnded=!1),this._updatePlaybackType(),"PLAYING"===t?this.trigger(g.default.PLAYBACK_PLAY,this.name):"PAUSED"===t&&this.trigger(g.default.PLAYBACK_PAUSE,this.name)},e.prototype._updatePlaybackType=function(){this._playbackType=this.el.getType(),this._playbackType&&(this._playbackType=this._playbackType.toLowerCase(),this._playbackType===b.default.VOD?this._startReportingProgress():this._stopReportingProgress()),this.trigger(g.default.PLAYBACK_PLAYBACKSTATE,{type:this._playbackType})},e.prototype._startReportingProgress=function(){this._reportingProgress||(this._reportingProgress=!0)},e.prototype._stopReportingProgress=function(){this._reportingProgress=!1},e.prototype._onFragmentLoaded=function(t){if(this.trigger(g.default.PLAYBACK_FRAGMENT_LOADED,t),this._reportingProgress&&this.getCurrentTime()){var e=this.getCurrentTime()+this.el.getbufferLength();this.trigger(g.default.PLAYBACK_PROGRESS,{start:this.getCurrentTime(),current:e,total:this.el.getDuration()})}},e.prototype._onLevelEndlist=function(){this._updatePlaybackType()},e.prototype._firstPlay=function(){var t=this;this._shouldPlayOnManifestLoaded=!0,this.el.playerLoad&&(E.default.once(this.cid+":manifestloaded",function(e,i){return t._manifestLoaded(e,i)}),this._setFlashSettings(),this.el.playerLoad(this._src),this._srcLoaded=!0)},e.prototype.volume=function(t){var e=this;this.isReady?this.el.playerVolume(t):this.listenToOnce(this,g.default.PLAYBACK_BUFFERFULL,function(){return e.volume(t)})},e.prototype.pause=function(){(this._playbackType!==b.default.LIVE||this._dvrEnabled)&&(this.el.playerPause(),this._playbackType===b.default.LIVE&&this._dvrEnabled&&this._updateDvr(!0))},e.prototype.stop=function(){this._srcLoaded=!1,this.el.playerStop(),this.trigger(g.default.PLAYBACK_STOP),this.trigger(g.default.PLAYBACK_TIMEUPDATE,{current:0,total:0},this.name)},e.prototype.isPlaying=function(){return!!this._currentState&&!!this._currentState.match(/playing/i)},e.prototype.getDuration=function(){return this._normalizeDuration(this.el.getDuration())},e.prototype._normalizeDuration=function(t){return this._playbackType===b.default.LIVE&&(t=Math.max(0,t-10)),t},e.prototype.seekPercentage=function(t){var e=this.el.getDuration(),i=0;t>0&&(i=e*t/100),this.seek(i)},e.prototype.seek=function(t){var e=this.getDuration();if(this._playbackType===b.default.LIVE){var i=e-t>3;this._updateDvr(i)}this.el.playerSeek(t),this.trigger(g.default.PLAYBACK_TIMEUPDATE,{current:t,total:e},this.name)},e.prototype._updateDvr=function(t){var e=!!this._dvrInUse;this._dvrInUse=t,this._dvrInUse!==e&&(this._updateSettings(),this.trigger(g.default.PLAYBACK_DVR,this._dvrInUse),this.trigger(g.default.PLAYBACK_STATS_ADD,{dvr:this._dvrInUse}))},e.prototype._flashPlaybackError=function(t,e,i){this.trigger(g.default.PLAYBACK_ERROR,{code:t,url:e,message:i}),this.trigger(g.default.PLAYBACK_STOP)},e.prototype._manifestLoaded=function(t,e){this._shouldPlayOnManifestLoaded&&(this._shouldPlayOnManifestLoaded=!1,this.el.playerPlay()),this._fillLevels(),this.trigger(g.default.PLAYBACK_LOADEDMETADATA,{duration:t,data:e})},e.prototype._fillLevels=function(){var t=this.el.getLevels(),e=t.length;this._levels=[];for(var i=0;i1&&"m3u8"===i[1].toLowerCase()||"application/x-mpegURL"===e||"application/vnd.apple.mpegurl"===e)},t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(24),s=n(o),l=function(){function t(e){(0,a.default)(this,t),this.instanceId=e}return t.prototype.ready=function(){s.default.trigger(this.instanceId+":flashready")},t.prototype.videoSize=function(t,e){s.default.trigger(this.instanceId+":videosizechanged",t,e)},t.prototype.complete=function(){s.default.trigger(this.instanceId+":complete")},t.prototype.error=function(t,e,i){s.default.trigger(this.instanceId+":error",t,e,i)},t.prototype.manifest=function(t,e){s.default.trigger(this.instanceId+":manifestloaded",t,e)},t.prototype.audioLevelLoaded=function(t){s.default.trigger(this.instanceId+":audiolevelloaded",t)},t.prototype.levelLoaded=function(t){s.default.trigger(this.instanceId+":levelloaded",t)},t.prototype.levelEndlist=function(t){s.default.trigger(this.instanceId+":levelendlist",t)},t.prototype.fragmentLoaded=function(t){s.default.trigger(this.instanceId+":fragmentloaded",t)},t.prototype.fragmentPlaying=function(t){s.default.trigger(this.instanceId+":fragmentplaying",t)},t.prototype.position=function(t){s.default.trigger(this.instanceId+":timeupdate",t)},t.prototype.state=function(t){s.default.trigger(this.instanceId+":playbackstate",t)},t.prototype.seekState=function(t){s.default.trigger(this.instanceId+":seekstate",t)},t.prototype.switch=function(t){s.default.trigger(this.instanceId+":levelchanged",t)},t.prototype.audioTracksListChange=function(t){s.default.trigger(this.instanceId+":audiotracklistchanged",t)},t.prototype.audioTrackChange=function(t){s.default.trigger(this.instanceId+":audiotrackchanged",t)},t}();e.default=l,t.exports=e.default},function(t,e){t.exports="<%=baseUrl%>/8fa12a459188502b9f0d39b8a67d9e6c.swf"},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(80),a=n(r),o=i(0),s=n(o),l=i(1),u=n(l),c=i(3),d=n(c),h=i(2),f=n(h),p=i(35),g=n(p),y=i(181),m=n(y),v=i(4),b=n(v),_=i(9),E=n(_),T=i(5),A=i(55),S=n(A),L=function(t){function e(){(0,s.default)(this,e);for(var i=arguments.length,n=Array(i),r=0;r0&&(e=this._duration*(t/100)),this.seek(e)},e.prototype.seek=function(e){e<0&&(S.default.warn("Attempt to seek to a negative time. Resetting to live point. Use seekToLivePoint() to seek to the live point."),e=this.getDuration()),this.dvrEnabled&&this._updateDvr(e0)switch(this._recoverAttemptsRemaining-=1,e.type){case m.default.ErrorTypes.NETWORK_ERROR:switch(e.details){case m.default.ErrorDetails.MANIFEST_LOAD_ERROR:case m.default.ErrorDetails.MANIFEST_LOAD_TIMEOUT:case m.default.ErrorDetails.MANIFEST_PARSING_ERROR:case m.default.ErrorDetails.LEVEL_LOAD_ERROR:case m.default.ErrorDetails.LEVEL_LOAD_TIMEOUT:S.default.error("hlsjs: unrecoverable network fatal error, evt "+t+", data "+e+" "),this.trigger(b.default.PLAYBACK_ERROR,{evt:t,data:e},this.name);break;default:S.default.warn("hlsjs: trying to recover from network error, evt "+t+", data "+e+" "),this._hls.startLoad()}break;case m.default.ErrorTypes.MEDIA_ERROR:S.default.warn("hlsjs: trying to recover from media error, evt "+t+", data "+e+" "),this._recover(t,e);break;default:S.default.error("hlsjs: trying to recover from error, evt "+t+", data "+e+" "),this.trigger(b.default.PLAYBACK_ERROR,"hlsjs: could not recover from error, evt "+t+", data "+e+" ",this.name)}else S.default.error("hlsjs: could not recover from error after maximum number of attempts, evt "+t+", data "+e+" "),this.trigger(b.default.PLAYBACK_ERROR,{evt:t,data:e},this.name);else S.default.warn("hlsjs: non-fatal error occurred, evt "+t+", data "+e+" ")},e.prototype._onTimeUpdate=function(){var t={current:this.getCurrentTime(),total:this.getDuration()};this._lastTimeUpdate&&t.current===this._lastTimeUpdate.current&&t.total===this._lastTimeUpdate.total||(this._lastTimeUpdate=t,this.trigger(b.default.PLAYBACK_TIMEUPDATE,t,this.name))},e.prototype._onDurationChange=function(){var e=this.getDuration();this._lastDuration!==e&&(this._lastDuration=e,t.prototype._onDurationChange.call(this))},e.prototype._onProgress=function(){if(this.el.buffered.length){for(var t=[],e=0,i=0;i=t[i].start&&this.el.currentTime<=t[i].end&&(e=i);var n={start:t[e].start,current:t[e].end,total:this.getDuration()};this.trigger(b.default.PLAYBACK_PROGRESS,n,t)}},e.prototype.play=function(){this._hls||this._setup(),t.prototype.play.call(this)},e.prototype.pause=function(){this._hls&&(t.prototype.pause.call(this),this.dvrEnabled&&this._updateDvr(!0))},e.prototype.stop=function(){this._hls&&(t.prototype.stop.call(this),this._hls.destroy(),delete this._hls)},e.prototype.destroy=function(){this._stopTimeUpdateTimer(),this._hls&&(this._hls.destroy(),delete this._hls),t.prototype.destroy.call(this)},e.prototype._updatePlaybackType=function(t,e){this._playbackType=e.details.live?E.default.LIVE:E.default.VOD,this._onLevelUpdated(t,e),this._ccTracksUpdated&&this._playbackType===E.default.LIVE&&this.hasClosedCaptionsTracks&&this._onSubtitleLoaded()},e.prototype._fillLevels=function(){this._levels=this._hls.levels.map(function(t,e){return{id:e,level:t,label:t.bitrate/1e3+"Kbps"}}),this.trigger(b.default.PLAYBACK_LEVELS_AVAILABLE,this._levels)},e.prototype._onLevelUpdated=function(t,e){this._segmentTargetDuration=e.details.targetduration,this._playlistType=e.details.type||null;var i=!1,n=!1,r=e.details.fragments,a=this._playableRegionStartTime,o=this._playableRegionDuration;if(0!==r.length){if(this._playableRegionStartTime!==r[0].start&&(i=!0,this._playableRegionStartTime=r[0].start),i)if(this._localStartTimeCorrelation){var s=this._localStartTimeCorrelation,l=this._now-s.local,u=(s.remote+l)/1e3;ua+this._extrapolatedWindowDuration&&(this._localStartTimeCorrelation={local:this._now,remote:1e3*Math.max(r[0].start,a+this._extrapolatedWindowDuration)})}else this._localStartTimeCorrelation={local:this._now,remote:1e3*(r[0].start+this._extrapolatedWindowDuration/2)};var c=e.details.totalduration;if(this._playbackType===E.default.LIVE){var d=e.details.targetduration,h=this.options.playback.hlsjsConfig||{},f=h.liveSyncDurationCount||m.default.DefaultConfig.liveSyncDurationCount,p=d*f;p<=c?(c-=p,this._durationExcludesAfterLiveSyncPoint=!0):this._durationExcludesAfterLiveSyncPoint=!1}c!==this._playableRegionDuration&&(n=!0,this._playableRegionDuration=c);var g=r[0].start+c,y=a+o;if(g!==y)if(this._localEndTimeCorrelation){var v=this._localEndTimeCorrelation,b=this._now-v.local,_=(v.remote+b)/1e3;_>g?this._localEndTimeCorrelation={local:this._now,remote:1e3*g}:_y&&(this._localEndTimeCorrelation={local:this._now,remote:1e3*y})}else this._localEndTimeCorrelation={local:this._now,remote:1e3*g};n&&this._onDurationChange(),i&&this._onProgress()}},e.prototype._onFragmentLoaded=function(t,e){this.trigger(b.default.PLAYBACK_FRAGMENT_LOADED,e)},e.prototype._onSubtitleLoaded=function(){if(!this._ccIsSetup){this.trigger(b.default.PLAYBACK_SUBTITLE_AVAILABLE);var t=this._playbackType===E.default.LIVE?-1:this.closedCaptionsTrackId;this.closedCaptionsTrackId=t,this._ccIsSetup=!0}},e.prototype._onLevelSwitch=function(t,e){this.levels.length||this._fillLevels(),this.trigger(b.default.PLAYBACK_LEVEL_SWITCH_END),this.trigger(b.default.PLAYBACK_LEVEL_SWITCH,e);var i=this._hls.levels[e.level];i&&(this.highDefinition=i.height>=720||i.bitrate/1e3>=2e3,this.trigger(b.default.PLAYBACK_HIGHDEFINITIONUPDATE,this.highDefinition),this.trigger(b.default.PLAYBACK_BITRATE,{height:i.height,width:i.width,bandwidth:i.bitrate,bitrate:i.bitrate,level:e.level}))},e.prototype.getPlaybackType=function(){return this._playbackType},e.prototype.isSeekEnabled=function(){return this._playbackType===E.default.VOD||this.dvrEnabled},(0,d.default)(e,[{key:"dvrEnabled",get:function(){return this._durationExcludesAfterLiveSyncPoint&&this._duration>=this._minDvrSize&&this.getPlaybackType()===E.default.LIVE}}]),e}(g.default);e.default=L,L.canPlay=function(t,e){var i=t.split("?")[0].match(/.*\.(.*)$/)||[],n=i.length>1&&"m3u8"===i[1].toLowerCase()||"application/x-mpegURL"===e||"application/vnd.apple.mpegurl"===e;return!(!m.default.isSupported()||!n)},t.exports=e.default},function(t,e,i){!function(e,i){t.exports=i()}(0,function(){return function(t){function e(n){if(i[n])return i[n].exports;var r=i[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var i={};return e.m=t,e.c=i,e.d=function(t,i,n){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,"a",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/dist/",e(e.s=8)}([function(t,e,i){"use strict";function n(){}function r(t,e){return e="["+t+"] > "+e}function a(t){var e=self.console[t];return e?function(){for(var i=arguments.length,n=Array(i),a=0;a1?e-1:0),n=1;n0)return e.subarray(n,n+r)},t._readSize=function(t,e){var i=0;return i=(127&t[e])<<21,i|=(127&t[e+1])<<14,i|=(127&t[e+2])<<7,i|=127&t[e+3]},t.getTimeStamp=function(e){for(var i=t.getID3Frames(e),n=0;n1&&void 0!==arguments[1]&&arguments[1],i=t.length,n=void 0,r=void 0,a=void 0,o="",s=0;s>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:o+=String.fromCharCode(n);break;case 12:case 13:r=t[s++],o+=String.fromCharCode((31&n)<<6|63&r);break;case 14:r=t[s++],a=t[s++],o+=String.fromCharCode((15&n)<<12|(63&r)<<6|(63&a)<<0)}}return o},t}(),a=r._utf8ArrayToStr;e.a=r},function(t,e,i){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var s=function(){function t(e,i){n(this,t),this.subtle=e,this.aesIV=i}return t.prototype.decrypt=function(t,e){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},e,t)},t}(),l=s,u=function(){function t(e,i){r(this,t),this.subtle=e,this.key=i}return t.prototype.expandKey=function(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])},t}(),c=u,d=function(){function t(){a(this,t),this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.initTable()}return t.prototype.uint8ArrayToUint32Array_=function(t){for(var e=new DataView(t),i=new Uint32Array(4),n=0;n<4;n++)i[n]=e.getUint32(4*n);return i},t.prototype.initTable=function(){var t=this.sBox,e=this.invSBox,i=this.subMix,n=i[0],r=i[1],a=i[2],o=i[3],s=this.invSubMix,l=s[0],u=s[1],c=s[2],d=s[3],h=new Uint32Array(256),f=0,p=0,g=0;for(g=0;g<256;g++)h[g]=g<128?g<<1:g<<1^283;for(g=0;g<256;g++){var y=p^p<<1^p<<2^p<<3^p<<4;y=y>>>8^255&y^99,t[f]=y,e[y]=f;var m=h[f],v=h[m],b=h[v],_=257*h[y]^16843008*y;n[f]=_<<24|_>>>8,r[f]=_<<16|_>>>16,a[f]=_<<8|_>>>24,o[f]=_,_=16843009*b^65537*v^257*m^16843008*f,l[y]=_<<24|_>>>8,u[y]=_<<16|_>>>16,c[y]=_<<8|_>>>24,d[y]=_,f?(f=m^h[h[h[b^m]]],p^=h[h[p]]):f=p=1}},t.prototype.expandKey=function(t){for(var e=this.uint8ArrayToUint32Array_(t),i=!0,n=0;n0&&this._events[t].length>r&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace()),this},i.prototype.on=i.prototype.addListener,i.prototype.once=function(t,e){function i(){this.removeListener(t,i),r||(r=!0,e.apply(this,arguments))}if(!n(e))throw TypeError("listener must be a function");var r=!1;return i.listener=e,this.on(t,i),this},i.prototype.removeListener=function(t,e){var i,r,o,s;if(!n(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(i=this._events[t],o=i.length,r=-1,i===e||n(i.listener)&&i.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(a(i)){for(s=o;s-- >0;)if(i[s]===e||i[s].listener&&i[s].listener===e){r=s;break}if(r<0)return this;1===i.length?(i.length=0,delete this._events[t]):i.splice(r,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},i.prototype.removeAllListeners=function(t){var e,i;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(i=this._events[t],n(i))this.removeListener(t,i);else if(i)for(;i.length;)this.removeListener(t,i[i.length-1]);return delete this._events[t],this},i.prototype.listeners=function(t){return this._events&&this._events[t]?n(this._events[t])?[this._events[t]]:this._events[t].slice():[]},i.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(n(e))return 1;if(e)return e.length}return 0},i.listenerCount=function(t,e){return t.listenerCount(e)}},function(t,e,i){!function(e){var i=/^((?:[^\/;?#]+:)?)(\/\/[^\/\;?#]*)?(.*?)??(;.*?)?(\?.*?)?(#.*?)?$/,n=/^([^\/;?#]*)(.*)$/,r=/(?:\/|^)\.(?=\/)/g,a=/(?:\/|^)\.\.\/(?!\.\.\/).*?(?=\/)/g,o={buildAbsoluteURL:function(t,e,i){if(i=i||{},t=t.trim(),!(e=e.trim())){if(!i.alwaysNormalize)return t;var r=this.parseURL(t);if(!s)throw new Error("Error trying to parse base URL.");return r.path=o.normalizePath(r.path),o.buildURLFromParts(r)}var a=this.parseURL(e);if(!a)throw new Error("Error trying to parse relative URL.");if(a.scheme)return i.alwaysNormalize?(a.path=o.normalizePath(a.path),o.buildURLFromParts(a)):e;var s=this.parseURL(t);if(!s)throw new Error("Error trying to parse base URL.");if(!s.netLoc&&s.path&&"/"!==s.path[0]){var l=n.exec(s.path);s.netLoc=l[1],s.path=l[2]}s.netLoc&&!s.path&&(s.path="/");var u={scheme:s.scheme,netLoc:a.netLoc,path:null,params:a.params,query:a.query,fragment:a.fragment};if(!a.netLoc&&(u.netLoc=s.netLoc,"/"!==a.path[0]))if(a.path){var c=s.path,d=c.substring(0,c.lastIndexOf("/")+1)+a.path;u.path=o.normalizePath(d)}else u.path=s.path,a.params||(u.params=s.params,a.query||(u.query=s.query));return null===u.path&&(u.path=i.alwaysNormalize?o.normalizePath(a.path):a.path),o.buildURLFromParts(u)},parseURL:function(t){var e=i.exec(t);return e?{scheme:e[1]||"",netLoc:e[2]||"",path:e[3]||"",params:e[4]||"",query:e[5]||"",fragment:e[6]||""}:null},normalizePath:function(t){for(t=t.split("").reverse().join("").replace(r,"");t.length!==(t=t.replace(a,"")).length;);return t.split("").reverse().join("")},buildURLFromParts:function(t){return t.scheme+t.netLoc+t.path+t.params+t.query+t.fragment}};t.exports=o}()},function(t,e,i){"use strict";function n(t,e,i,n){var r,a,o,s,l,u=navigator.userAgent.toLowerCase(),c=n,d=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];return r=1+((192&e[i+2])>>>6),(a=(60&e[i+2])>>>2)>d.length-1?void t.trigger(Event.ERROR,{type:L.b.MEDIA_ERROR,details:L.a.FRAG_PARSING_ERROR,fatal:!0,reason:"invalid ADTS sampling index:"+a}):(s=(1&e[i+2])<<2,s|=(192&e[i+3])>>>6,k.b.log("manifest codec:"+n+",ADTS data:type:"+r+",sampleingIndex:"+a+"["+d[a]+"Hz],channelConfig:"+s),/firefox/i.test(u)?a>=6?(r=5,l=new Array(4),o=a-3):(r=2,l=new Array(2),o=a):-1!==u.indexOf("android")?(r=2,l=new Array(2),o=a):(r=5,l=new Array(4),n&&(-1!==n.indexOf("mp4a.40.29")||-1!==n.indexOf("mp4a.40.5"))||!n&&a>=6?o=a-3:((n&&-1!==n.indexOf("mp4a.40.2")&&(a>=6&&1===s||/vivaldi/i.test(u))||!n&&1===s)&&(r=2,l=new Array(2)),o=a)),l[0]=r<<3,l[0]|=(14&a)>>1,l[1]|=(1&a)<<7,l[1]|=s<<3,5===r&&(l[1]|=(14&o)>>1,l[2]=(1&o)<<7,l[2]|=8,l[3]=0),{config:l,samplerate:d[a],channelCount:s,codec:"mp4a.40."+r,manifestCodec:c})}function r(t,e){return 255===t[e]&&240==(246&t[e+1])}function a(t,e){return 1&t[e+1]?7:9}function o(t,e){return(3&t[e+3])<<11|t[e+4]<<3|(224&t[e+5])>>>5}function s(t,e){return!!(e+10&&e+s+l<=c)return u=i+n*r,{headerLength:s,frameLength:l,stamp:u}}function h(t,e,i,n,r){var a=c(t.samplerate),o=d(e,i,n,r,a);if(o){var s=o.stamp,l=o.headerLength,u=o.frameLength,h={unit:e.subarray(i+l,i+l+u),pts:s,dts:s};return t.samples.push(h),t.len+=u,{sample:h,length:u+l}}}function f(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function p(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function g(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function y(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function m(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function v(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function b(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function E(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function T(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function A(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var S=i(1),L=i(2),R=i(4),k=i(0),w=i(3),C=function(){function t(e,i,n){f(this,t),this.observer=e,this.config=n,this.remuxer=i}return t.prototype.resetInitSegment=function(t,e,i,n){this._audioTrack={container:"audio/adts",type:"audio",id:0,sequenceNumber:0,isAAC:!0,samples:[],len:0,manifestCodec:e,duration:n,inputTimeScale:9e4}},t.prototype.resetTimeStamp=function(){},t.probe=function(t){if(!t)return!1;for(var e=w.a.getID3Data(t,0)||[],i=e.length,n=t.length;i0},t.bin2str=function(t){return String.fromCharCode.apply(null,t)},t.readUint32=function(t,e){t.data&&(e+=t.start,t=t.data);var i=t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3];return i<0?4294967296+i:i},t.writeUint32=function(t,e,i){t.data&&(e+=t.start,t=t.data),t[e]=i>>24,t[e+1]=i>>16&255,t[e+2]=i>>8&255,t[e+3]=255&i},t.findBox=function(e,i){var n,r,a,o,s,l,u,c=[];if(e.data?(l=e.start,o=e.end,e=e.data):(l=0,o=e.byteLength),!i.length)return null;for(n=l;n1?n+r:o,a===i[0]&&(1===i.length?c.push({data:e,start:n+8,end:u}):(s=t.findBox({data:e,start:n+8,end:u},i.slice(1)),s.length&&(c=c.concat(s)))),n=u;return c},t.parseInitSegment=function(e){var i=[];return t.findBox(e,["moov","trak"]).forEach(function(e){var n=t.findBox(e,["tkhd"])[0];if(n){var r=n.data[n.start],a=0===r?12:20,o=t.readUint32(n,a),s=t.findBox(e,["mdia","mdhd"])[0];if(s){r=s.data[s.start],a=0===r?12:20;var l=t.readUint32(s,a),u=t.findBox(e,["mdia","hdlr"])[0];if(u){var c=t.bin2str(u.data.subarray(u.start+8,u.start+12)),d={soun:"audio",vide:"video"}[c];if(d){var h=t.findBox(e,["mdia","minf","stbl","stsd"]);if(h.length){h=h[0];var f=t.bin2str(h.data.subarray(h.start+12,h.start+16));k.b.log("MP4Demuxer:"+d+":"+f+" found")}i[o]={timescale:l,type:d},i[d]={timescale:l,id:o}}}}}}),i},t.getStartDTS=function(e,i){var n,r,a;return n=t.findBox(i,["moof","traf"]),r=[].concat.apply([],n.map(function(i){return t.findBox(i,["tfhd"]).map(function(n){var r,a;return r=t.readUint32(n,4),a=e[r].timescale||9e4,t.findBox(i,["tfdt"]).map(function(e){var i,n;return i=e.data[e.start],n=t.readUint32(e,4),1===i&&(n*=Math.pow(2,32),n+=t.readUint32(e,8)),n})[0]/a})})),a=Math.min.apply(null,r),isFinite(a)?a:0},t.offsetStartDTS=function(e,i,n){t.findBox(i,["moof","traf"]).map(function(i){return t.findBox(i,["tfhd"]).map(function(r){var a=t.readUint32(r,4),o=e[a].timescale||9e4;t.findBox(i,["tfdt"]).map(function(e){var i=e.data[e.start],r=t.readUint32(e,4);if(0===i)t.writeUint32(e,4,r-n*o);else{r*=Math.pow(2,32),r+=t.readUint32(e,8),r-=n*o,r=Math.max(r,0);var a=Math.floor(r/(D+1)),s=Math.floor(r%(D+1));t.writeUint32(e,4,a),t.writeUint32(e,8,s)}})})})},t.prototype.append=function(e,i,n,r){var a=this.initData;a||(this.resetInitSegment(e,this.audioCodec,this.videoCodec),a=this.initData);var o=void 0,s=this.initPTS;if(void 0===s){var l=t.getStartDTS(a,e);this.initPTS=s=l-i,this.observer.trigger(S.a.INIT_PTS_FOUND,{initPTS:s})}t.offsetStartDTS(a,e,s),o=t.getStartDTS(a,e),this.remuxer.remux(a.audio,a.video,null,null,o,n,r,e)},t.prototype.destroy=function(){},t}(),P=O,x={BitratesMap:[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],SamplingRateMap:[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],SamplesCoefficients:[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],BytesInSlot:[0,1,1,4],appendFrame:function(t,e,i,n,r){if(!(i+24>e.length)){var a=this.parseHeader(e,i);if(a&&i+a.frameLength<=e.length){var o=9e4*a.samplesPerFrame/a.sampleRate,s=n+r*o,l={unit:e.subarray(i,i+a.frameLength),pts:s,dts:s};return t.config=[],t.channelCount=a.channelCount,t.samplerate=a.sampleRate,t.samples.push(l),t.len+=a.frameLength,{sample:l,length:a.frameLength}}}},parseHeader:function(t,e){var i=t[e+1]>>3&3,n=t[e+1]>>1&3,r=t[e+2]>>4&15,a=t[e+2]>>2&3,o=t[e+2]>>1&1;if(1!==i&&0!==r&&15!==r&&3!==a){var s=3===i?3-n:3===n?3:4,l=1e3*x.BitratesMap[14*s+r-1],u=3===i?0:2===i?1:2,c=x.SamplingRateMap[3*u+a],d=t[e+3]>>6==3?1:2,h=x.SamplesCoefficients[i][n],f=x.BytesInSlot[n],p=8*h*f;return{sampleRate:c,channelCount:d,frameLength:parseInt(h*l/c+o,10)*f,samplesPerFrame:p}}},isHeaderPattern:function(t,e){return 255===t[e]&&224==(224&t[e+1])&&0!=(6&t[e+1])},isHeader:function(t,e){return!!(e+1t?(this.word<<=t,this.bitsAvailable-=t):(t-=this.bitsAvailable,e=t>>3,t-=e>>3,this.bytesAvailable-=e,this.loadWord(),this.word<<=t,this.bitsAvailable-=t)},t.prototype.readBits=function(t){var e=Math.min(this.bitsAvailable,t),i=this.word>>>32-e;return t>32&&k.b.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=e,this.bitsAvailable>0?this.word<<=e:this.bytesAvailable>0&&this.loadWord(),e=t-e,e>0&&this.bitsAvailable?i<>>t))return this.word<<=t,this.bitsAvailable-=t,t;return this.loadWord(),t+this.skipLZ()},t.prototype.skipUEG=function(){this.skipBits(1+this.skipLZ())},t.prototype.skipEG=function(){this.skipBits(1+this.skipLZ())},t.prototype.readUEG=function(){var t=this.skipLZ();return this.readBits(t+1)-1},t.prototype.readEG=function(){var t=this.readUEG();return 1&t?1+t>>>1:-1*(t>>>1)},t.prototype.readBoolean=function(){return 1===this.readBits(1)},t.prototype.readUByte=function(){return this.readBits(8)},t.prototype.readUShort=function(){return this.readBits(16)},t.prototype.readUInt=function(){return this.readBits(32)},t.prototype.skipScalingList=function(t){var e,i,n=8,r=8;for(e=0;e=t.length)return void i();if(!(t[e].unit.length<32)){var n=this.decrypter.isSync();if(this.decryptAacSample(t,e,i,n),!n)return}}},t.prototype.getAvcEncryptedData=function(t){for(var e=16*Math.floor((t.length-48)/160)+16,i=new Int8Array(e),n=0,r=32;r<=t.length-16;r+=160,n+=16)i.set(t.subarray(r,r+16),n);return i},t.prototype.getAvcDecryptedUnit=function(t,e){e=new Uint8Array(e);for(var i=0,n=32;n<=t.length-16;n+=160,i+=16)t.set(e.subarray(i,i+16),n);return t},t.prototype.decryptAvcSample=function(t,e,i,n,r,a){var o=this.discardEPB(r.data),s=this.getAvcEncryptedData(o),l=this;this.decryptBuffer(s.buffer,function(s){r.data=l.getAvcDecryptedUnit(o,s),a||l.decryptAvcSamples(t,e,i+1,n)})},t.prototype.decryptAvcSamples=function(t,e,i,n){for(;;e++,i=0){if(e>=t.length)return void n();for(var r=t[e].units;!(i>=r.length);i++){var a=r[i];if(!(a.length<=48||1!==a.type&&5!==a.type)){var o=this.decrypter.isSync();if(this.decryptAvcSample(t,e,i,n,a,o),!o)return}}}},t}(),U=B,G={video:0,audio:1,id3:2,text:3},K=function(){function t(e,i,n,r){m(this,t),this.observer=e,this.config=n,this.typeSupported=r,this.remuxer=i,this.sampleAes=null}return t.prototype.setDecryptData=function(t){null!=t&&null!=t.key&&"SAMPLE-AES"===t.method?this.sampleAes=new U(this.observer,this.config,t,this.discardEPB):this.sampleAes=null},t.probe=function(e){var i=t._syncOffset(e);return!(i<0)&&(i&&k.b.warn("MPEG2-TS detected but first sync word found @ offset "+i+", junk ahead ?"),!0)},t._syncOffset=function(t){for(var e=Math.min(1e3,t.length-564),i=0;i>4>1){if((l=a+5+e[a+4])===a+188)continue}else l=a+4;switch(s){case y:o&&(_&&(u=w(_))&&C(u,!1),_={data:[],size:0}),_&&(_.data.push(e.subarray(l,a+188)),_.size+=a+188-l);break;case m:o&&(E&&(u=w(E))&&(p.isAAC?I(u):D(u)),E={data:[],size:0}),E&&(E.data.push(e.subarray(l,a+188)),E.size+=a+188-l);break;case v:o&&(T&&(u=w(T))&&O(u),T={data:[],size:0}),T&&(T.data.push(e.subarray(l,a+188)),T.size+=a+188-l);break;case 0:o&&(l+=e[l]+1),b=this._pmtId=A(e,l);break;case b:o&&(l+=e[l]+1);var x=R(e,l,!0===this.typeSupported.mpeg||!0===this.typeSupported.mp3,null!=this.sampleAes);y=x.avc,y>0&&(f.pid=y),m=x.audio,m>0&&(p.pid=m,p.isAAC=x.isAAC),v=x.id3,v>0&&(g.pid=v),d&&!h&&(k.b.log("reparse from beginning"),d=!1,a=P-188),h=this.pmtParsed=!0;break;case 17:case 8191:break;default:d=!0}}else this.observer.trigger(S.a.ERROR,{type:L.b.MEDIA_ERROR,details:L.a.FRAG_PARSING_ERROR,fatal:!1,reason:"TS packet did not start with 0x47"});_&&(u=w(_))?(C(u,!0),f.pesData=null):f.pesData=_,E&&(u=w(E))?(p.isAAC?I(u):D(u),p.pesData=null):(E&&E.size&&k.b.log("last AAC PES packet truncated,might overlap between fragments"),p.pesData=E),T&&(u=w(T))?(O(u),g.pesData=null):g.pesData=T,null==this.sampleAes?this.remuxer.remux(p,f,g,this._txtTrack,i,n,r):this.decryptAndRemux(p,f,g,this._txtTrack,i,n,r)},t.prototype.decryptAndRemux=function(t,e,i,n,r,a,o){if(t.samples&&t.isAAC){var s=this;this.sampleAes.decryptAacSamples(t.samples,0,function(){s.decryptAndRemuxAvc(t,e,i,n,r,a,o)})}else this.decryptAndRemuxAvc(t,e,i,n,r,a,o)},t.prototype.decryptAndRemuxAvc=function(t,e,i,n,r,a,o){if(e.samples){var s=this;this.sampleAes.decryptAvcSamples(e.samples,0,0,function(){s.remuxer.remux(t,e,i,n,r,a,o)})}else this.remuxer.remux(t,e,i,n,r,a,o)},t.prototype.destroy=function(){this._initPTS=this._initDTS=void 0,this._duration=0},t.prototype._parsePAT=function(t,e){return(31&t[e+10])<<8|t[e+11]},t.prototype._parsePMT=function(t,e,i,n){var r,a,o,s,l={audio:-1,avc:-1,id3:-1,isAAC:!0};for(r=(15&t[e+1])<<8|t[e+2],a=e+3+r-4,o=(15&t[e+10])<<8|t[e+11],e+=12+o;e1;){var d=new Uint8Array(c[0].length+c[1].length);d.set(c[0]),d.set(c[1],c[0].length),c[0]=d,c.splice(1,1)}if(e=c[0],1===(e[0]<<16)+(e[1]<<8)+e[2]){if((n=(e[4]<<8)+e[5])&&n>t.size-6)return null;i=e[7],192&i&&(o=536870912*(14&e[9])+4194304*(255&e[10])+16384*(254&e[11])+128*(255&e[12])+(254&e[13])/2,o>4294967295&&(o-=8589934592),64&i?(s=536870912*(14&e[14])+4194304*(255&e[15])+16384*(254&e[16])+128*(255&e[17])+(254&e[18])/2,s>4294967295&&(s-=8589934592),o-s>54e5&&(k.b.warn(Math.round((o-s)/9e4)+"s delta between PTS and DTS, align them"),o=s)):s=o),r=e[8],l=r+9,t.size-=l,a=new Uint8Array(t.size);for(var h=0,f=c.length;hp){l-=p;continue}e=e.subarray(l),p-=l,l=0}a.set(e,u),u+=p}return n&&(n-=r+3),{data:a,pts:o,dts:s,len:n}}return null},t.prototype.pushAccesUnit=function(t,e){if(t.units.length&&t.frame){var i=e.samples,n=i.length;!this.config.forceKeyFrameOnDiscontinuity||!0===t.key||e.sps&&(n||this.contiguous)?(t.id=n,i.push(t)):e.dropped++}t.debug.length&&k.b.log(t.pts+"/"+t.dts+":"+t.debug)},t.prototype._parseAVCPES=function(t,e){var i,n,r,a=this,o=this._avcTrack,s=this._parseAVCNALu(t.data),l=this.avcSample,u=!1,c=this.pushAccesUnit.bind(this),d=function(t,e,i,n){return{key:t,pts:e,dts:i,units:[],debug:n}};t.data=null,l&&s.length&&!o.audFound&&(c(l,o),l=this.avcSample=d(!1,t.pts,t.dts,"")),s.forEach(function(e){switch(e.type){case 1:n=!0,l||(l=a.avcSample=d(!0,t.pts,t.dts,"")),l.frame=!0;var s=e.data;if(u&&s.length>4){var h=new F(s).readSliceType();2!==h&&4!==h&&7!==h&&9!==h||(l.key=!0)}break;case 5:n=!0,l||(l=a.avcSample=d(!0,t.pts,t.dts,"")),l.key=!0,l.frame=!0;break;case 6:n=!0,i=new F(a.discardEPB(e.data)),i.readUByte();for(var f=0,p=0,g=!1,y=0;!g&&i.bytesAvailable>1;){f=0;do{y=i.readUByte(),f+=y}while(255===y);p=0;do{y=i.readUByte(),p+=y}while(255===y);if(4===f&&0!==i.bytesAvailable){g=!0;if(181===i.readUByte()){if(49===i.readUShort()){if(1195456820===i.readUInt()){if(3===i.readUByte()){var m=i.readUByte(),v=i.readUByte(),b=31&m,_=[m,v];for(r=0;r0){if(e.pts>=t[i-1].pts)t.push(e);else for(var n=i-1;n>=0;n--)if(e.pts=0)n={data:t.subarray(h,o-u-1),type:a},d.push(n);else{var f=this._getLastNalUnit();if(f&&(c&&o<=4-c&&f.state&&(f.data=f.data.subarray(0,f.data.byteLength-c)),(i=o-u-1)>0)){var p=new Uint8Array(f.data.byteLength+i);p.set(f.data,0),p.set(t.subarray(0,i),f.data.byteLength),f.data=p}}o=0&&u>=0&&(n={data:t.subarray(h,s),type:a,state:u},d.push(n)),0===d.length){var g=this._getLastNalUnit();if(g){var y=new Uint8Array(g.data.byteLength+t.byteLength);y.set(g.data,0),y.set(t,g.data.byteLength),g.data=y}}return l.naluState=u,d},t.prototype.discardEPB=function(t){for(var e,i,n=t.byteLength,r=[],a=1;a1&&(k.b.log("AAC: align PTS for overlapping frames by "+Math.round((v-d)/90)),d=v)}for(;n>24&255,e[1]=n>>16&255,e[2]=n>>8&255,e[3]=255&n,e.set(t,4),r=0,n=8;r>24&255,e>>16&255,e>>8&255,255&e,n>>24,n>>16&255,n>>8&255,255&n,r>>24,r>>16&255,r>>8&255,255&r,85,196,0,0]))},t.mdia=function(e){return t.box(t.types.mdia,t.mdhd(e.timescale,e.duration),t.hdlr(e.type),t.minf(e))},t.mfhd=function(e){return t.box(t.types.mfhd,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e]))},t.minf=function(e){return"audio"===e.type?t.box(t.types.minf,t.box(t.types.smhd,t.SMHD),t.DINF,t.stbl(e)):t.box(t.types.minf,t.box(t.types.vmhd,t.VMHD),t.DINF,t.stbl(e))},t.moof=function(e,i,n){return t.box(t.types.moof,t.mfhd(e),t.traf(n,i))},t.moov=function(e){for(var i=e.length,n=[];i--;)n[i]=t.trak(e[i]);return t.box.apply(null,[t.types.moov,t.mvhd(e[0].timescale,e[0].duration)].concat(n).concat(t.mvex(e)))},t.mvex=function(e){for(var i=e.length,n=[];i--;)n[i]=t.trex(e[i]);return t.box.apply(null,[t.types.mvex].concat(n))},t.mvhd=function(e,i){i*=e;var n=Math.floor(i/(z+1)),r=Math.floor(i%(z+1)),a=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,n>>24,n>>16&255,n>>8&255,255&n,r>>24,r>>16&255,r>>8&255,255&r,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return t.box(t.types.mvhd,a)},t.sdtp=function(e){var i,n,r=e.samples||[],a=new Uint8Array(4+r.length);for(n=0;n>>8&255),a.push(255&r),a=a.concat(Array.prototype.slice.call(n));for(i=0;i>>8&255),o.push(255&r),o=o.concat(Array.prototype.slice.call(n));var s=t.box(t.types.avcC,new Uint8Array([1,a[3],a[4],a[5],255,224|e.sps.length].concat(a).concat([e.pps.length]).concat(o))),l=e.width,u=e.height,c=e.pixelRatio[0],d=e.pixelRatio[1];return t.box(t.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,l>>8&255,255&l,u>>8&255,255&u,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),s,t.box(t.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),t.box(t.types.pasp,new Uint8Array([c>>24,c>>16&255,c>>8&255,255&c,d>>24,d>>16&255,d>>8&255,255&d])))},t.esds=function(t){var e=t.config.length;return new Uint8Array([0,0,0,0,3,23+e,0,1,0,4,15+e,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([e]).concat(t.config).concat([6,1,2]))},t.mp4a=function(e){var i=e.samplerate;return t.box(t.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,i>>8&255,255&i,0,0]),t.box(t.types.esds,t.esds(e)))},t.mp3=function(e){var i=e.samplerate;return t.box(t.types[".mp3"],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,i>>8&255,255&i,0,0]))},t.stsd=function(e){return"audio"===e.type?e.isAAC||"mp3"!==e.codec?t.box(t.types.stsd,t.STSD,t.mp4a(e)):t.box(t.types.stsd,t.STSD,t.mp3(e)):t.box(t.types.stsd,t.STSD,t.avc1(e))},t.tkhd=function(e){var i=e.id,n=e.duration*e.timescale,r=e.width,a=e.height,o=Math.floor(n/(z+1)),s=Math.floor(n%(z+1));return t.box(t.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,i>>24&255,i>>16&255,i>>8&255,255&i,0,0,0,0,o>>24,o>>16&255,o>>8&255,255&o,s>>24,s>>16&255,s>>8&255,255&s,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>8&255,255&r,0,0,a>>8&255,255&a,0,0]))},t.traf=function(e,i){var n=t.sdtp(e),r=e.id,a=Math.floor(i/(z+1)),o=Math.floor(i%(z+1));return t.box(t.types.traf,t.box(t.types.tfhd,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r])),t.box(t.types.tfdt,new Uint8Array([1,0,0,0,a>>24,a>>16&255,a>>8&255,255&a,o>>24,o>>16&255,o>>8&255,255&o])),t.trun(e,n.length+16+20+8+16+8+8),n)},t.trak=function(e){return e.duration=e.duration||4294967295,t.box(t.types.trak,t.tkhd(e),t.mdia(e))},t.trex=function(e){var i=e.id;return t.box(t.types.trex,new Uint8Array([0,0,0,0,i>>24,i>>16&255,i>>8&255,255&i,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))},t.trun=function(e,i){var n,r,a,o,s,l,u=e.samples||[],c=u.length,d=12+16*c,h=new Uint8Array(d);for(i+=8+d,h.set([0,0,15,1,c>>>24&255,c>>>16&255,c>>>8&255,255&c,i>>>24&255,i>>>16&255,i>>>8&255,255&i],0),n=0;n>>24&255,a>>>16&255,a>>>8&255,255&a,o>>>24&255,o>>>16&255,o>>>8&255,255&o,s.isLeading<<2|s.dependsOn,s.isDependedOn<<6|s.hasRedundancy<<4|s.paddingValue<<1|s.isNonSync,61440&s.degradPrio,15&s.degradPrio,l>>>24&255,l>>>16&255,l>>>8&255,255&l],12+16*n);return t.box(t.types.trun,h)},t.initSegment=function(e){t.types||t.init();var i,n=t.moov(e);return i=new Uint8Array(t.FTYP.byteLength+n.byteLength),i.set(t.FTYP),i.set(n,t.FTYP.byteLength),i},t}(),q=W,X=function(){function t(e,i,n,r){E(this,t),this.observer=e,this.config=i,this.typeSupported=n;var a=navigator.userAgent;this.isSafari=r&&r.indexOf("Apple")>-1&&a&&!a.match("CriOS"),this.ISGenerated=!1}return t.prototype.destroy=function(){},t.prototype.resetTimeStamp=function(t){this._initPTS=this._initDTS=t},t.prototype.resetInitSegment=function(){this.ISGenerated=!1},t.prototype.remux=function(t,e,i,n,r,a,o){if(this.ISGenerated||this.generateIS(t,e,r),this.ISGenerated){var s=t.samples.length,l=e.samples.length,u=r,c=r;if(s&&l){var d=(t.samples[0].dts-e.samples[0].dts)/e.inputTimeScale;u+=Math.max(0,d),c+=Math.max(0,-d)}if(s){t.timescale||(k.b.warn("regenerate InitSegment as audio detected"),this.generateIS(t,e,r));var h=this.remuxAudio(t,u,a,o);if(l){var f=void 0;h&&(f=h.endPTS-h.startPTS),e.timescale||(k.b.warn("regenerate InitSegment as video detected"),this.generateIS(t,e,r)),this.remuxVideo(e,c,a,f,o)}}else{var p=void 0;l&&(p=this.remuxVideo(e,c,a,o)),p&&t.codec&&this.remuxEmptyAudio(t,u,a,p)}}i.samples.length&&this.remuxID3(i,r),n.samples.length&&this.remuxText(n,r),this.observer.trigger(S.a.FRAG_PARSED)},t.prototype.generateIS=function(t,e,i){var n,r,a=this.observer,o=t.samples,s=e.samples,l=this.typeSupported,u="audio/mp4",c={},d={tracks:c},h=void 0===this._initPTS;if(h&&(n=r=1/0),t.config&&o.length&&(t.timescale=t.samplerate,k.b.log("audio sampling rate : "+t.samplerate),t.isAAC||(l.mpeg?(u="audio/mpeg",t.codec=""):l.mp3&&(t.codec="mp3")),c.audio={container:u,codec:t.codec,initSegment:!t.isAAC&&l.mpeg?new Uint8Array:q.initSegment([t]),metadata:{channelCount:t.channelCount}},h&&(n=r=o[0].pts-t.inputTimeScale*i)),e.sps&&e.pps&&s.length){var f=e.inputTimeScale;e.timescale=f,c.video={container:"video/mp4",codec:e.codec,initSegment:q.initSegment([e]),metadata:{width:e.width,height:e.height}},h&&(n=Math.min(n,s[0].pts-f*i),r=Math.min(r,s[0].dts-f*i),this.observer.trigger(S.a.INIT_PTS_FOUND,{initPTS:n}))}Object.keys(c).length?(a.trigger(S.a.FRAG_PARSING_INIT_SEGMENT,d),this.ISGenerated=!0,h&&(this._initPTS=n,this._initDTS=r)):a.trigger(S.a.ERROR,{type:L.b.MEDIA_ERROR,details:L.a.FRAG_PARSING_ERROR,fatal:!1,reason:"no audio/video samples found"})},t.prototype.remuxVideo=function(t,e,i,n,r){var a,o,s,l,u,c,d,h=8,f=t.timescale,p=t.samples,g=[],y=p.length,m=this._PTSNormalize,v=this._initDTS,b=this.nextAvcDts,_=this.isSafari;_&&(i|=p.length&&b&&(r&&Math.abs(e-b/f)<.1||Math.abs(p[0].pts-b-v)1?k.b.log("AVC:"+R+" ms hole between fragments detected,filling it"):R<-1&&k.b.log("AVC:"+-R+" ms overlapping between fragments detected"),u=b,p[0].dts=u,l=Math.max(l-R,b),p[0].pts=l,k.b.log("Video/PTS/DTS adjusted: "+Math.round(l/90)+"/"+Math.round(u/90)+",delta:"+R+" ms")),A=p[p.length-1],d=Math.max(A.dts,0),c=Math.max(A.pts,0,d),_&&(a=Math.round((d-u)/(p.length-1)));for(var w=0,C=0,I=0;I0?B-1:B].dts;if(W.stretchShortVideoTrack){var Z=W.maxBufferHole,J=W.maxSeekHole,Q=Math.floor(Math.min(Z,J)*f),tt=(n?l+n*f:this.nextAudioPts)-U.pts;tt>Q?(a=tt-X,a<0&&(a=X),k.b.log("It is approximately "+tt/90+" ms to the next segment; using duration "+a/90+" ms for the last video frame.")):a=X}else a=X}V=Math.round(U.pts-U.dts)}g.push({size:K,duration:a,cts:V,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:U.key?2:1,isNonSync:U.key?0:1}})}this.nextAvcDts=d+a;var et=t.dropped;if(t.len=0,t.nbNalu=0,t.dropped=0,g.length&&navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var it=g[0].flags;it.dependsOn=2,it.isNonSync=0}t.samples=g,s=q.moof(t.sequenceNumber++,u,t),t.samples=[];var nt={data1:s,data2:o,startPTS:l/f,endPTS:(c+a)/f,startDTS:u/f,endDTS:this.nextAvcDts/f,type:"video",nb:g.length,dropped:et};return this.observer.trigger(S.a.FRAG_PARSING_DATA,nt),nt},t.prototype.remuxAudio=function(t,e,i,n){var r,a,o,s,l,u,c,d=t.inputTimeScale,h=t.timescale,f=d/h,p=t.isAAC?1024:1152,g=p*f,y=this._PTSNormalize,m=this._initDTS,v=!t.isAAC&&this.typeSupported.mpeg,b=t.samples,_=[],E=this.nextAudioPts;if(i|=b.length&&E&&(n&&Math.abs(e-E/d)<.1||Math.abs(b[0].pts-E-m)<20*g),b.forEach(function(t){t.pts=t.dts=y(t.pts-m,e*d)}),b=b.filter(function(t){return t.pts>=0}),0!==b.length){if(i||(E=n?e*d:b[0].pts),t.isAAC)for(var T=this.config.maxAudioFramesDrift,A=0,R=E;A=T*g&&D<1e4&&R){var O=Math.round(w/g);k.b.warn("Injecting "+O+" audio frame @ "+(R/d).toFixed(3)+"s due to "+Math.round(1e3*w/d)+" ms gap.");for(var P=0;P0&&G<1e4)K=Math.round((U-E)/g),k.b.log(G+" ms hole between AAC samples detected,filling it"),K>0&&(o=$.getSilentFrame(t.manifestCodec||t.codec,t.channelCount),o||(o=B.subarray()),t.len+=K*o.length);else if(G<-12){k.b.log("drop overlapping AAC sample, expected/parsed/delta:"+(E/d).toFixed(3)+"s/"+(U/d).toFixed(3)+"s/"+-G+"ms"),t.len-=B.byteLength;continue}U=E}if(u=U,!(t.len>0))return;var V=v?t.len:t.len+8;r=v?0:8;try{s=new Uint8Array(V)}catch(t){return void this.observer.trigger(S.a.ERROR,{type:L.b.MUX_ERROR,details:L.a.REMUX_ALLOC_ERROR,fatal:!1,bytes:V,reason:"fail allocating audio mdat "+V})}if(!v){new DataView(s.buffer).setUint32(0,V),s.set(q.types.mdat,4)}for(var j=0;j=2&&(H=_[z-2].duration,a.duration=H),z){this.nextAudioPts=E=c+f*H,t.len=0,t.samples=_,l=v?new Uint8Array:q.moof(t.sequenceNumber++,u/f,t),t.samples=[];var W=u/d,X=E/d,Z={data1:l,data2:s,startPTS:W,endPTS:X,startDTS:W,endDTS:X,type:"audio",nb:z};return this.observer.trigger(S.a.FRAG_PARSING_DATA,Z),Z}return null}},t.prototype.remuxEmptyAudio=function(t,e,i,n){var r=t.inputTimeScale,a=t.samplerate?t.samplerate:r,o=r/a,s=this.nextAudioPts,l=(void 0!==s?s:n.startDTS*r)+this._initDTS,u=n.endDTS*r+this._initDTS,c=1024*o,d=Math.ceil((u-l)/c),h=$.getSilentFrame(t.manifestCodec||t.codec,t.channelCount);if(k.b.warn("remux empty Audio"),!h)return void k.b.trace("Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec!");for(var f=[],p=0;p4294967296;)t+=i;return t},t}(),Z=X,J=function(){function t(e){T(this,t),this.observer=e}return t.prototype.destroy=function(){},t.prototype.resetTimeStamp=function(){},t.prototype.resetInitSegment=function(){},t.prototype.remux=function(t,e,i,n,r,a,o,s){var l=this.observer,u="";t&&(u+="audio"),e&&(u+="video"),l.trigger(S.a.FRAG_PARSING_DATA,{data1:s,startPTS:r,startDTS:r,type:u,nb:1,dropped:0}),l.trigger(S.a.FRAG_PARSED)},t}(),Q=J,tt=function(){function t(e,i,n,r){A(this,t),this.observer=e,this.typeSupported=i,this.config=n,this.vendor=r}return t.prototype.destroy=function(){var t=this.demuxer;t&&t.destroy()},t.prototype.push=function(t,e,i,n,r,a,o,s,l,u,c,d){if(t.byteLength>0&&null!=e&&null!=e.key&&"AES-128"===e.method){var h=this.decrypter;null==h&&(h=this.decrypter=new R.a(this.observer,this.config));var f,p=this;try{f=performance.now()}catch(t){f=Date.now()}h.decrypt(t,e.key.buffer,e.iv.buffer,function(t){var h;try{h=performance.now()}catch(t){h=Date.now()}p.observer.trigger(S.a.FRAG_DECRYPTED,{stats:{tstart:f,tdecrypt:h}}),p.pushDecrypted(new Uint8Array(t),e,new Uint8Array(i),n,r,a,o,s,l,u,c,d)})}else this.pushDecrypted(new Uint8Array(t),e,new Uint8Array(i),n,r,a,o,s,l,u,c,d)},t.prototype.pushDecrypted=function(t,e,i,n,r,a,o,s,l,u,c,d){var h=this.demuxer;if(!h||o&&!this.probe(t)){for(var f=this.observer,p=this.typeSupported,g=this.config,y=[{demux:V,remux:Z},{demux:P,remux:Q},{demux:I,remux:Z},{demux:Y,remux:Z}],m=0,v=y.length;me?n.start+n.duration:Math.max(n.start-r.duration,0):i>e?(n.duration=a-n.start,n.duration<0&&Pt.b.warn("negative duration computed for frag "+n.sn+",level "+n.level+", there should be some duration drift between playlist and fragment!")):(r.duration=n.start-a,r.duration<0&&Pt.b.warn("negative duration computed for frag "+r.sn+",level "+r.level+", there should be some duration drift between playlist and fragment!"))}function _(t,e,i,n,r,a){var o=i;if(!isNaN(e.startPTS)){var s=Math.abs(e.startPTS-i);isNaN(e.deltaPTS)?e.deltaPTS=s:e.deltaPTS=Math.max(s,e.deltaPTS),o=Math.max(i,e.startPTS),i=Math.min(i,e.startPTS),n=Math.max(n,e.endPTS),r=Math.min(r,e.startDTS),a=Math.max(a,e.endDTS)}var l=i-e.start;e.start=e.startPTS=i,e.maxStartPTS=o,e.endPTS=n,e.startDTS=r,e.endDTS=a,e.duration=n-i;var u=e.sn;if(!t||ut.endSN)return 0;var c,d,h;for(c=u-t.startSN,d=t.fragments,d[c]=e,h=c;h>0;h--)b(d,h,h-1);for(h=c;h=0&&ae?-1:0})}function S(t,e,i){var n=!1;return e&&e.details&&i&&(i.endCC>i.startCC||t&&t.cc59?e(i[1],i[2],0,i[4]):e(0,i[1],i[2],i[4]):null}function st(){this.values=Object.create(null)}function lt(t,e,i,n){var r=n?t.split(n):[t];for(var a in r)if("string"==typeof r[a]){var o=r[a].split(i);if(2===o.length){var s=o[0],l=o[1];e(s,l)}}}function ut(t,e,i){function n(){var e=ot(t);if(null===e)throw new Error("Malformed timestamp: "+a);return t=t.replace(/^[^\sa-zA-Z-]+/,""),e}function r(){t=t.replace(/^\s+/,"")}var a=t;if(r(),e.startTime=n(),r(),"--\x3e"!==t.substr(0,3))throw new Error("Malformed time stamp (time stamps must be separated by '--\x3e'): "+a);t=t.substr(3),r(),e.endTime=n(),r(),function(t,e){var n=new st;lt(t,function(t,e){switch(t){case"region":for(var r=i.length-1;r>=0;r--)if(i[r].id===e){n.set(t,i[r].region);break}break;case"vertical":n.alt(t,e,["rl","lr"]);break;case"line":var a=e.split(","),o=a[0];n.integer(t,o),n.percent(t,o)&&n.set("snapToLines",!1),n.alt(t,o,["auto"]),2===a.length&&n.alt("lineAlign",a[1],["start",Je,"end"]);break;case"position":a=e.split(","),n.percent(t,a[0]),2===a.length&&n.alt("positionAlign",a[1],["start",Je,"end","line-left","line-right","auto"]);break;case"size":n.percent(t,e);break;case"align":n.alt(t,e,["start",Je,"end","left","right"])}},/:/,/\s/),e.region=n.get("region",null),e.vertical=n.get("vertical","");var r=n.get("line","auto");"auto"===r&&-1===Ze.line&&(r=-1),e.line=r,e.lineAlign=n.get("lineAlign","start"),e.snapToLines=n.get("snapToLines",!0),e.size=n.get("size",100),e.align=n.get("align",Je);var a=n.get("position","auto");"auto"===a&&50===Ze.position&&(a="start"===e.align||"left"===e.align?0:"end"===e.align||"right"===e.align?100:50),e.position=a}(t,e)}function ct(t){return t.replace(//gi,"\n")}function dt(t,e,i,n){for(var r,a,o,s,l,u=window.VTTCue||window.TextTrackCue,c=0;c=16?s--:s++,navigator.userAgent.match(/Firefox\//)?a.line=c+1:a.line=c>7?c-2:c+1,a.align="left",a.position=Math.max(0,Math.min(100,s/32*100+(navigator.userAgent.match(/Firefox\//)?50:0))),t.addCue(a)}}function ht(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ft(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function pt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function gt(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function yt(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function mt(t){if(t&&t.cues)for(;t.cues.length>0;)t.removeCue(t.cues[0])}function vt(t,e){return t&&t.label===e.name&&!(t.textTrack1||t.textTrack2)}function bt(t,e,i,n){return Math.min(e,n)-Math.max(t,i)}function _t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Et(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function Tt(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function At(t){for(var e=[],i=0;i1?i-1:0),a=1;aNumber.MAX_SAFE_INTEGER?1/0:e},t.prototype.hexadecimalInteger=function(t){if(this[t]){var e=(this[t]||"0x").slice(2);e=(1&e.length?"0":"")+e;for(var i=new Uint8Array(e.length/2),n=0;nNumber.MAX_SAFE_INTEGER?1/0:e},t.prototype.decimalFloatingPoint=function(t){return parseFloat(this[t])},t.prototype.enumeratedString=function(t){return this[t]},t.prototype.decimalResolution=function(t){var e=Ft.exec(this[t]);if(null!==e)return{width:parseInt(e[1],10),height:parseInt(e[2],10)}},t.parseAttrList=function(t){var e,i={};for(Bt.lastIndex=0;null!==(e=Bt.exec(t));){var n=e[2];0===n.indexOf('"')&&n.lastIndexOf('"')===n.length-1&&(n=n.slice(1,-1)),i[e[1]]=n}return i},t}(),Gt=Ut,Kt={audio:{a3ds:!0,"ac-3":!0,"ac-4":!0,alac:!0,alaw:!0,dra1:!0,"dts+":!0,"dts-":!0,dtsc:!0,dtse:!0,dtsh:!0,"ec-3":!0,enca:!0,g719:!0,g726:!0,m4ae:!0,mha1:!0,mha2:!0,mhm1:!0,mhm2:!0,mlpa:!0,mp4a:!0,"raw ":!0,Opus:!0,samr:!0,sawb:!0,sawp:!0,sevc:!0,sqcp:!0,ssmv:!0,twos:!0,ulaw:!0},video:{avc1:!0,avc2:!0,avc3:!0,avc4:!0,avcp:!0,drac:!0,dvav:!0,dvhe:!0,encv:!0,hev1:!0,hvc1:!0,mjp2:!0,mp4v:!0,mvc1:!0,mvc2:!0,mvc3:!0,mvc4:!0,resv:!0,rv60:!0,s263:!0,svc1:!0,svc2:!0,"vc-1":!0,vp08:!0,vp09:!0}},Vt=function(){function t(t,e){for(var i=0;i>8*(15-i)&255;return e},t.prototype.fragmentDecryptdataFromLevelkey=function(t,e){var i=t;return t&&t.method&&t.uri&&!t.iv&&(i=new zt,i.method=t.method,i.baseuri=t.baseuri,i.reluri=t.reluri,i.iv=this.createInitializationVector(e)),i},t.prototype.cloneObj=function(t){return JSON.parse(JSON.stringify(t))},Vt(t,[{key:"url",get:function(){return!this._url&&this.relurl&&(this._url=It.a.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url},set:function(t){this._url=t}},{key:"programDateTime",get:function(){return!this._programDateTime&&this.rawProgramDateTime&&(this._programDateTime=new Date(Date.parse(this.rawProgramDateTime))),this._programDateTime}},{key:"byteRange",get:function(){if(!this._byteRange){var t=this._byteRange=[];if(this.rawByteRange){var e=this.rawByteRange.split("@",2);if(1===e.length){var i=this.lastByteRangeEndOffset;t[0]=i||0}else t[0]=parseInt(e[1]);t[1]=parseInt(e[0])+t[0]}}return this._byteRange}},{key:"byteRangeStartOffset",get:function(){return this.byteRange[0]}},{key:"byteRangeEndOffset",get:function(){return this.byteRange[1]}},{key:"decryptdata",get:function(){return this._decryptdata||(this._decryptdata=this.fragmentDecryptdataFromLevelkey(this.levelkey,this.sn)),this._decryptdata}}]),t}(),qt=function(t){function e(i){u(this,e);var n=s(this,t.call(this,i,Dt.a.MANIFEST_LOADING,Dt.a.LEVEL_LOADING,Dt.a.AUDIO_TRACK_LOADING,Dt.a.SUBTITLE_TRACK_LOADING));return n.loaders={},n}return l(e,t),e.prototype.destroy=function(){for(var t in this.loaders){var e=this.loaders[t];e&&e.destroy()}this.loaders={},Mt.prototype.destroy.call(this)},e.prototype.onManifestLoading=function(t){this.load(t.url,{type:"manifest"})},e.prototype.onLevelLoading=function(t){this.load(t.url,{type:"level",level:t.level,id:t.id})},e.prototype.onAudioTrackLoading=function(t){this.load(t.url,{type:"audioTrack",id:t.id})},e.prototype.onSubtitleTrackLoading=function(t){this.load(t.url,{type:"subtitleTrack",id:t.id})},e.prototype.load=function(t,e){var i=this.loaders[e.type];if(void 0!==i){var n=i.context;if(n&&n.url===t)return void Pt.b.trace("playlist request ongoing");Pt.b.warn("abort previous loader for type:"+e.type),i.abort()}var r=this.hls.config,a=void 0,o=void 0,s=void 0,l=void 0;"manifest"===e.type?(a=r.manifestLoadingMaxRetry,o=r.manifestLoadingTimeOut,s=r.manifestLoadingRetryDelay,l=r.manifestLoadingMaxRetryTimeout):"level"===e.type?(a=0,o=r.levelLoadingTimeOut):(a=r.levelLoadingMaxRetry,o=r.levelLoadingTimeOut,s=r.levelLoadingRetryDelay,l=r.levelLoadingMaxRetryTimeout,Pt.b.log("loading playlist for "+e.type+" "+(e.level||e.id))),i=this.loaders[e.type]=e.loader=void 0!==r.pLoader?new r.pLoader(r):new r.loader(r),e.url=t,e.responseType="";var u=void 0,c=void 0;u={timeout:o,maxRetry:a,retryDelay:s,maxRetryDelay:l},c={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)},i.load(e,u,c)},e.prototype.resolve=function(t,e){return It.a.buildAbsoluteURL(e,t,{alwaysNormalize:!0})},e.prototype.parseMasterPlaylist=function(t,e){var i=[],n=void 0;for(jt.lastIndex=0;null!=(n=jt.exec(t));){var r={},o=r.attrs=new Gt(n[1]);r.url=this.resolve(n[2],e);var s=o.decimalResolution("RESOLUTION");s&&(r.width=s.width,r.height=s.height),r.bitrate=o.decimalInteger("AVERAGE-BANDWIDTH")||o.decimalInteger("BANDWIDTH"),r.name=o.NAME,function(t,e){["video","audio"].forEach(function(i){var n=t.filter(function(t){return a(t,i)});if(n.length){var r=n.filter(function(t){return 0===t.lastIndexOf("avc1",0)||0===t.lastIndexOf("mp4a",0)});e[i+"Codec"]=r.length>0?r[0]:n[0],t=t.filter(function(t){return-1===n.indexOf(t)})}}),e.unknownCodecs=t}([].concat((o.CODECS||"").split(/[ ,]+/)),r),r.videoCodec&&-1!==r.videoCodec.indexOf("avc1")&&(r.videoCodec=this.avc1toavcoti(r.videoCodec)),i.push(r)}return i},e.prototype.parseMasterPlaylistMedia=function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],r=void 0,a=[],o=0;for(Yt.lastIndex=0;null!==(r=Yt.exec(t));){var s={},l=new Gt(r[1]);if(l.TYPE===i){if(s.groupId=l["GROUP-ID"],s.name=l.NAME,s.type=i,s.default="YES"===l.DEFAULT,s.autoselect="YES"===l.AUTOSELECT,s.forced="YES"===l.FORCED,l.URI&&(s.url=this.resolve(l.URI,e)),s.lang=l.LANGUAGE,s.name||(s.name=s.lang),n.length){var u=c(n,s.groupId);s.audioCodec=u?u.codec:n[0].codec}s.id=o++,a.push(s)}}return a},e.prototype.avc1toavcoti=function(t){var e,i=t.split(".");return i.length>2?(e=i.shift()+".",e+=parseInt(i.shift()).toString(16),e+=("000"+parseInt(i.shift()).toString(16)).substr(-4)):e=t,e},e.prototype.parseLevelPlaylist=function(t,e,i,n){var r,a,o=0,s=0,l={type:null,version:null,url:e,fragments:[],live:!0,startSN:0},u=new zt,c=0,d=null,h=new Wt;for(Ht.lastIndex=0;null!==(r=Ht.exec(t));){var f=r[1];if(f){h.duration=parseFloat(f);var p=(" "+r[2]).slice(1);h.title=p||null,h.tagList.push(p?["INF",f,p]:["INF",f])}else if(r[3]){if(!isNaN(h.duration)){var g=o++;h.type=n,h.start=s,h.levelkey=u,h.sn=g,h.level=i,h.cc=c,h.baseurl=e,h.relurl=(" "+r[3]).slice(1),l.fragments.push(h),d=h,s+=h.duration,h=new Wt}}else if(r[4]){if(h.rawByteRange=(" "+r[4]).slice(1),d){var y=d.byteRangeEndOffset;y&&(h.lastByteRangeEndOffset=y)}}else if(r[5])h.rawProgramDateTime=(" "+r[5]).slice(1),h.tagList.push(["PROGRAM-DATE-TIME",h.rawProgramDateTime]),void 0===l.programDateTime&&(l.programDateTime=new Date(new Date(Date.parse(r[5]))-1e3*s));else{for(r=r[0].match($t),a=1;a=0&&(u.method=E,u.baseuri=e,u.reluri=T,u.key=null,u.iv=A));break;case"START":var S=m,L=new Gt(S),R=L.decimalFloatingPoint("TIME-OFFSET");isNaN(R)||(l.startTimeOffset=R);break;case"MAP":var k=new Gt(m);h.relurl=k.URI,h.rawByteRange=k.BYTERANGE,h.baseurl=e,h.level=i,h.type=n,h.sn="initSegment",l.initSegment=h,h=new Wt;break;default:Pt.b.warn("line parsed but not handled: "+r)}}}return h=d,h&&!h.relurl&&(l.fragments.pop(),s-=h.duration),l.totalduration=s,l.averagetargetduration=s/l.fragments.length,l.endSN=o-1,l.startCC=l.fragments[0]?l.fragments[0].cc:0,l.endCC=c,l},e.prototype.loadsuccess=function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,r=t.data,a=t.url,o=i.type,s=i.id,l=i.level,u=this.hls;if(this.loaders[o]=void 0,void 0!==a&&0!==a.indexOf("data:")||(a=i.url),e.tload=performance.now(),0===r.indexOf("#EXTM3U"))if(r.indexOf("#EXTINF:")>0){var c="audioTrack"!==o&&"subtitleTrack"!==o,d=isNaN(l)?isNaN(s)?0:s:l,h=this.parseLevelPlaylist(r,a,d,"audioTrack"===o?"audio":"subtitleTrack"===o?"subtitle":"main");h.tload=e.tload,"manifest"===o&&u.trigger(Dt.a.MANIFEST_LOADED,{levels:[{url:a,details:h}],audioTracks:[],url:a,stats:e,networkDetails:n}),e.tparsed=performance.now(),h.targetduration?c?u.trigger(Dt.a.LEVEL_LOADED,{details:h,level:l||0,id:s||0,stats:e,networkDetails:n}):"audioTrack"===o?u.trigger(Dt.a.AUDIO_TRACK_LOADED,{details:h,id:s,stats:e,networkDetails:n}):"subtitleTrack"===o&&u.trigger(Dt.a.SUBTITLE_TRACK_LOADED,{details:h,id:s,stats:e,networkDetails:n}):u.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:Ot.a.MANIFEST_PARSING_ERROR,fatal:!0,url:a,reason:"invalid targetduration",networkDetails:n})}else{var f=this.parseMasterPlaylist(r,a);if(f.length){var p=f.map(function(t){return{id:t.attrs.AUDIO,codec:t.audioCodec}}),g=this.parseMasterPlaylistMedia(r,a,"AUDIO",p),y=this.parseMasterPlaylistMedia(r,a,"SUBTITLES");if(g.length){var m=!1;g.forEach(function(t){t.url||(m=!0)}),!1===m&&f[0].audioCodec&&!f[0].attrs.AUDIO&&(Pt.b.log("audio codec signaled in quality level, but no embedded audio track signaled, create one"),g.unshift({type:"main",name:"main"}))}u.trigger(Dt.a.MANIFEST_LOADED,{levels:f,audioTracks:g,subtitles:y,url:a,stats:e,networkDetails:n})}else u.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:Ot.a.MANIFEST_PARSING_ERROR,fatal:!0,url:a,reason:"no level found in manifest",networkDetails:n})}else u.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:Ot.a.MANIFEST_PARSING_ERROR,fatal:!0,url:a,reason:"no EXTM3U delimiter",networkDetails:n})},e.prototype.loaderror=function(t,e){var i,n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=e.loader;switch(e.type){case"manifest":i=Ot.a.MANIFEST_LOAD_ERROR,n=!0;break;case"level":i=Ot.a.LEVEL_LOAD_ERROR,n=!1;break;case"audioTrack":i=Ot.a.AUDIO_TRACK_LOAD_ERROR,n=!1}a&&(a.abort(),this.loaders[e.type]=void 0),this.hls.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:i,fatal:n,url:a.url,loader:a,response:t,context:e,networkDetails:r})},e.prototype.loadtimeout=function(t,e){var i,n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=e.loader;switch(e.type){case"manifest":i=Ot.a.MANIFEST_LOAD_TIMEOUT,n=!0;break;case"level":i=Ot.a.LEVEL_LOAD_TIMEOUT,n=!1;break;case"audioTrack":i=Ot.a.AUDIO_TRACK_LOAD_TIMEOUT,n=!1}a&&(a.abort(),this.loaders[e.type]=void 0),this.hls.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:i,fatal:n,url:a.url,loader:a,context:e,networkDetails:r})},e}(Mt),Xt=qt,Zt=function(t){function e(i){d(this,e);var n=h(this,t.call(this,i,Dt.a.FRAG_LOADING));return n.loaders={},n}return f(e,t),e.prototype.destroy=function(){var t=this.loaders;for(var e in t){var i=t[e];i&&i.destroy()}this.loaders={},Mt.prototype.destroy.call(this)},e.prototype.onFragLoading=function(t){var e=t.frag,i=e.type,n=this.loaders[i],r=this.hls.config;e.loaded=0,n&&(Pt.b.warn("abort previous fragment loader for type:"+i),n.abort()),n=this.loaders[i]=e.loader=void 0!==r.fLoader?new r.fLoader(r):new r.loader(r);var a=void 0,o=void 0,s=void 0;a={url:e.url,frag:e,responseType:"arraybuffer",progressData:!1};var l=e.byteRangeStartOffset,u=e.byteRangeEndOffset;isNaN(l)||isNaN(u)||(a.rangeStart=l,a.rangeEnd=u),o={timeout:r.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:r.fragLoadingMaxRetryTimeout},s={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this),onProgress:this.loadprogress.bind(this)},n.load(a,o,s)},e.prototype.loadsuccess=function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,r=t.data,a=i.frag;a.loader=void 0,this.loaders[a.type]=void 0,this.hls.trigger(Dt.a.FRAG_LOADED,{payload:r,frag:a,stats:e,networkDetails:n})},e.prototype.loaderror=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=e.loader;n&&n.abort(),this.loaders[e.type]=void 0,this.hls.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:Ot.a.FRAG_LOAD_ERROR,fatal:!1,frag:e.frag,response:t,networkDetails:i})},e.prototype.loadtimeout=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=e.loader;n&&n.abort(),this.loaders[e.type]=void 0,this.hls.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:Ot.a.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e.frag,networkDetails:i})},e.prototype.loadprogress=function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,r=e.frag;r.loaded=t.loaded,this.hls.trigger(Dt.a.FRAG_LOAD_PROGRESS,{frag:r,stats:t,networkDetails:n})},e}(Mt),Jt=Zt,Qt=function(t){function e(i){p(this,e);var n=g(this,t.call(this,i,Dt.a.KEY_LOADING));return n.loaders={},n.decryptkey=null,n.decrypturl=null,n}return y(e,t),e.prototype.destroy=function(){for(var t in this.loaders){var e=this.loaders[t];e&&e.destroy()}this.loaders={},Mt.prototype.destroy.call(this)},e.prototype.onKeyLoading=function(t){var e=t.frag,i=e.type,n=this.loaders[i],r=e.decryptdata,a=r.uri;if(a!==this.decrypturl||null===this.decryptkey){var o=this.hls.config;n&&(Pt.b.warn("abort previous key loader for type:"+i),n.abort()),e.loader=this.loaders[i]=new o.loader(o),this.decrypturl=a,this.decryptkey=null;var s=void 0,l=void 0,u=void 0;s={url:a,frag:e,responseType:"arraybuffer"},l={timeout:o.fragLoadingTimeOut,maxRetry:o.fragLoadingMaxRetry,retryDelay:o.fragLoadingRetryDelay,maxRetryDelay:o.fragLoadingMaxRetryTimeout},u={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)},e.loader.load(s,l,u)}else this.decryptkey&&(r.key=this.decryptkey,this.hls.trigger(Dt.a.KEY_LOADED,{frag:e}))},e.prototype.loadsuccess=function(t,e,i){var n=i.frag;this.decryptkey=n.decryptdata.key=new Uint8Array(t.data),n.loader=void 0,this.loaders[n.type]=void 0,this.hls.trigger(Dt.a.KEY_LOADED,{frag:n})},e.prototype.loaderror=function(t,e){var i=e.frag,n=i.loader;n&&n.abort(),this.loaders[e.type]=void 0,this.hls.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:Ot.a.KEY_LOAD_ERROR,fatal:!1,frag:i,response:t})},e.prototype.loadtimeout=function(t,e){var i=e.frag,n=i.loader;n&&n.abort(),this.loaders[e.type]=void 0,this.hls.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:Ot.a.KEY_LOAD_TIMEOUT,fatal:!1,frag:i})},e}(Mt),te=Qt,ee={search:function(t,e){for(var i=0,n=t.length-1,r=null,a=null;i<=n;){r=(i+n)/2|0,a=t[r];var o=e(a);if(o>0)i=r+1;else{if(!(o<0))return a;n=r-1}}return null}},ie=ee,ne={isBuffered:function(t,e){try{if(t)for(var i=t.buffered,n=0;n=i.start(n)&&e<=i.end(n))return!0}catch(t){}return!1},bufferInfo:function(t,e,i){try{if(t){var n,r=t.buffered,a=[];for(n=0;nc&&(l[u-1].end=t[s].end):l.push(t[s])}else l.push(t[s])}for(s=0,n=0,r=a=e;s=d&&e1?e-1:0),r=1;r1?e-1:0),r=1;r0&&-1===t&&(Pt.b.log("override startPosition with lastCurrentTime @"+e.toFixed(3)),t=e),this.state=ye.IDLE,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=t,this.tick()}else this.forceStartLoad=!0,this.state=ye.STOPPED},e.prototype.stopLoad=function(){var t=this.fragCurrent;t&&(t.loader&&t.loader.abort(),this.fragCurrent=null),this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=ye.STOPPED,this.forceStartLoad=!1},e.prototype.tick=function(){1===++this.ticks&&(this.doTick(),this.ticks>1&&setTimeout(this.tick,1),this.ticks=0)},e.prototype.doTick=function(){switch(this.state){case ye.ERROR:break;case ye.BUFFER_FLUSHING:this.fragLoadError=0;break;case ye.IDLE:this._doTickIdle();break;case ye.WAITING_LEVEL:var t=this.levels[this.level];t&&t.details&&(this.state=ye.IDLE);break;case ye.FRAG_LOADING_WAITING_RETRY:var e=performance.now(),i=this.retryDate;(!i||e>=i||this.media&&this.media.seeking)&&(Pt.b.log("mediaController: retryDate reached, switch back to IDLE state"),this.state=ye.IDLE);break;case ye.ERROR:case ye.STOPPED:case ye.FRAG_LOADING:case ye.PARSING:case ye.PARSED:case ye.ENDED:}this._checkBuffer(),this._checkFragmentChanged()},e.prototype._doTickIdle=function(){var t=this.hls,e=t.config,i=this.media;if(void 0!==this.levelLastLoaded&&(i||!this.startFragRequested&&e.startFragPrefetch)){var n=void 0;n=this.loadedmetadata?i.currentTime:this.nextLoadPosition;var r=t.nextLoadLevel,a=this.levels[r];if(a){var o=a.bitrate,s=void 0;s=o?Math.max(8*e.maxBufferSize/o,e.maxBufferLength):e.maxBufferLength,s=Math.min(s,e.maxMaxBufferLength);var l=re.bufferInfo(this.mediaBuffer?this.mediaBuffer:i,n,e.maxBufferHole),u=l.len;if(!(u>=s)){Pt.b.trace("buffer length of "+u.toFixed(3)+" is below max of "+s.toFixed(3)+". checking for more payload ..."),this.level=t.nextLoadLevel=r;var c=a.details;if(void 0===c||!0===c.live&&this.levelLastLoaded!==r)return void(this.state=ye.WAITING_LEVEL);var d=this.fragPrevious;if(!c.live&&d&&!d.backtracked&&d.sn===c.endSN&&!l.nextStart){if(Math.min(i.duration,d.start+d.duration)-Math.max(l.end,d.start)<=Math.max(.2,d.duration)){var h={};return this.altAudio&&(h.type="video"),this.hls.trigger(Dt.a.BUFFER_EOS,h),void(this.state=ye.ENDED)}}this._fetchPayloadOrEos(n,l,c)}}}},e.prototype._fetchPayloadOrEos=function(t,e,i){var n=this.fragPrevious,r=this.level,a=i.fragments,o=a.length;if(0!==o){var s=a[0].start,l=a[o-1].start+a[o-1].duration,u=e.end,c=void 0;if(i.initSegment&&!i.initSegment.data)c=i.initSegment;else if(i.live){var d=this.config.initialLiveManifestSize;if(od&&(l.currentTime=d),this.nextLoadPosition=d}if(t.PTSKnown&&e>n&&l&&l.readyState)return null;if(this.startFragRequested&&!t.PTSKnown){if(r){var h=r.sn+1;if(h>=t.startSN&&h<=t.endSN){var f=a[h-t.startSN];r.cc===f.cc&&(u=f,Pt.b.log("live playlist, switching playlist, load frag with next SN: "+u.sn))}u||(u=ie.search(a,function(t){return r.cc-t.cc}))&&Pt.b.log("live playlist, switching playlist, load frag with same CC: "+u.sn)}u||(u=a[Math.min(o-1,Math.round(o/2))],Pt.b.log("live playlist, switching playlist, unknown, load middle frag : "+u.sn))}return u},e.prototype._findFragment=function(t,e,i,n,r,a,o){var s=this.hls.config,l=void 0,u=void 0,c=s.maxFragLookUpTolerance,d=e?n[e.sn-n[0].sn+1]:void 0,h=function(t){var e=Math.min(c,t.duration+(t.deltaPTS?t.deltaPTS:0));return t.start+t.duration-e<=r?1:t.start-e>r&&t.start?-1:0};if(ra-c&&(c=0),u=d&&!h(d)?d:ie.search(n,h)):u=n[i-1],u){l=u;var f=l.sn-o.startSN,p=e&&l.level===e.level,g=n[f-1],y=n[f+1];if(e&&l.sn===e.sn)if(p&&!l.backtracked)if(l.sns.maxBufferHole&&e.dropped&&f?(l=g,Pt.b.warn("SN just loaded, with large PTS gap between audio and video, maybe frag is not starting with a keyframe ? load previous one to try to overcome this"),e.loadCounter--):(l=y,Pt.b.log("SN just loaded, load next one: "+l.sn))}else l=null;else l.backtracked&&(y&&y.backtracked?(Pt.b.warn("Already backtracked from fragment "+y.sn+", will not backtrack to fragment "+l.sn+". Loading fragment "+y.sn),l=y):(Pt.b.warn("Loaded fragment with dropped frames, backtracking 1 segment to find a keyframe"),l.dropped=0,g?(g.loadCounter&&g.loadCounter--,l=g,l.backtracked=!0):f&&(l=null)))}return l},e.prototype._loadFragmentOrKey=function(t,e,i,n,r){var a=this.hls,o=a.config;if(!t.decryptdata||null==t.decryptdata.uri||null!=t.decryptdata.key){if(Pt.b.log("Loading "+t.sn+" of ["+i.startSN+" ,"+i.endSN+"],level "+e+", currentTime:"+n.toFixed(3)+",bufferEnd:"+r.toFixed(3)),void 0!==this.fragLoadIdx?this.fragLoadIdx++:this.fragLoadIdx=0,t.loadCounter){t.loadCounter++;var s=o.fragLoadingLoopThreshold;if(t.loadCounter>s&&Math.abs(this.fragLoadIdx-t.loadIdx)e.endPTS?1:0})},e.prototype.followingBufferedFrag=function(t){return t?this.getBufferedFrag(t.endPTS+.5):null},e.prototype._checkFragmentChanged=function(){var t,e,i=this.media;if(i&&i.readyState&&!1===i.seeking&&(e=i.currentTime,e>i.playbackRate*this.lastCurrentTime&&(this.lastCurrentTime=e),re.isBuffered(i,e)?t=this.getBufferedFrag(e):re.isBuffered(i,e+.1)&&(t=this.getBufferedFrag(e+.1)),t)){var n=t;if(n!==this.fragPlaying){this.hls.trigger(Dt.a.FRAG_CHANGED,{frag:n});var r=n.level;this.fragPlaying&&this.fragPlaying.level===r||this.hls.trigger(Dt.a.LEVEL_SWITCHED,{level:r}),this.fragPlaying=n}}},e.prototype.immediateLevelSwitch=function(){if(Pt.b.log("immediateLevelSwitch"),!this.immediateSwitch){this.immediateSwitch=!0;var t=this.media,e=void 0;t?(e=t.paused,t.pause()):e=!0,this.previouslyPaused=e}var i=this.fragCurrent;i&&i.loader&&i.loader.abort(),this.fragCurrent=null,void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)},e.prototype.immediateLevelSwitchEnd=function(){var t=this.media;t&&t.buffered.length&&(this.immediateSwitch=!1,re.isBuffered(t,t.currentTime)&&(t.currentTime-=1e-4),this.previouslyPaused||t.play())},e.prototype.nextLevelSwitch=function(){var t=this.media;if(t&&t.readyState){var e=void 0,i=void 0,n=void 0;if(void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold),i=this.getBufferedFrag(t.currentTime),i&&i.startPTS>1&&this.flushMainBuffer(0,i.startPTS-1),t.paused)e=0;else{var r=this.hls.nextLoadLevel,a=this.levels[r],o=this.fragLastKbps;e=o&&this.fragCurrent?this.fragCurrent.duration*a.bitrate/(1e3*o)+1:0}if((n=this.getBufferedFrag(t.currentTime+e))&&(n=this.followingBufferedFrag(n))){var s=this.fragCurrent;s&&s.loader&&s.loader.abort(),this.fragCurrent=null,this.flushMainBuffer(n.maxStartPTS,Number.POSITIVE_INFINITY)}}},e.prototype.flushMainBuffer=function(t,e){this.state=ye.BUFFER_FLUSHING;var i={startOffset:t,endOffset:e};this.altAudio&&(i.type="video"),this.hls.trigger(Dt.a.BUFFER_FLUSHING,i)},e.prototype.onMediaAttached=function(t){var e=this.media=this.mediaBuffer=t.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),this.onvended=this.onMediaEnded.bind(this),e.addEventListener("seeking",this.onvseeking),e.addEventListener("seeked",this.onvseeked),e.addEventListener("ended",this.onvended);var i=this.config;this.levels&&i.autoStartLoad&&this.hls.startLoad(i.startPosition)},e.prototype.onMediaDetaching=function(){var t=this.media;t&&t.ended&&(Pt.b.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0);var e=this.levels;e&&e.forEach(function(t){t.details&&t.details.fragments.forEach(function(t){t.loadCounter=void 0,t.backtracked=void 0})}),t&&(t.removeEventListener("seeking",this.onvseeking),t.removeEventListener("seeked",this.onvseeked),t.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.stopLoad()},e.prototype.onMediaSeeking=function(){var t=this.media,e=t?t.currentTime:void 0,i=this.config;isNaN(e)||Pt.b.log("media seeking to "+e.toFixed(3));var n=this.mediaBuffer?this.mediaBuffer:t,r=re.bufferInfo(n,e,this.config.maxBufferHole);if(this.state===ye.FRAG_LOADING){var a=this.fragCurrent;if(0===r.len&&a){var o=i.maxFragLookUpTolerance,s=a.start-o,l=a.start+a.duration+o;el?(a.loader&&(Pt.b.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),a.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.state=ye.IDLE):Pt.b.log("seeking outside of buffer but within currently loaded fragment range")}}else this.state===ye.ENDED&&(0===r.len&&(this.fragPrevious=0),this.state=ye.IDLE);t&&(this.lastCurrentTime=e),this.state!==ye.FRAG_LOADING&&void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*i.fragLoadingLoopThreshold),this.loadedmetadata||(this.nextLoadPosition=this.startPosition=e),this.tick()},e.prototype.onMediaSeeked=function(){var t=this.media,e=t?t.currentTime:void 0;isNaN(e)||Pt.b.log("media seeked to "+e.toFixed(3)),this.tick()},e.prototype.onMediaEnded=function(){Pt.b.log("media ended"),this.startPosition=this.lastCurrentTime=0},e.prototype.onManifestLoading=function(){Pt.b.log("trigger BUFFER_RESET"),this.hls.trigger(Dt.a.BUFFER_RESET),this._bufferedFrags=[],this.stalled=!1,this.startPosition=this.lastCurrentTime=0},e.prototype.onManifestParsed=function(t){var e,i=!1,n=!1;t.levels.forEach(function(t){(e=t.audioCodec)&&(-1!==e.indexOf("mp4a.40.2")&&(i=!0),-1!==e.indexOf("mp4a.40.5")&&(n=!0))}),this.audioCodecSwitch=i&&n,this.audioCodecSwitch&&Pt.b.log("both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=t.levels,this.startFragRequested=!1;var r=this.config;(r.autoStartLoad||this.forceStartLoad)&&this.hls.startLoad(r.startPosition)},e.prototype.onLevelLoaded=function(t){var e=t.details,i=t.level,n=this.levels[this.levelLastLoaded],r=this.levels[i],a=e.totalduration,o=0;if(Pt.b.log("level "+i+" loaded ["+e.startSN+","+e.endSN+"],duration:"+a),e.live){var s=r.details;s&&e.fragments.length>0?(E(s,e),o=e.fragments[0].start,this.liveSyncPosition=this.computeLivePosition(o,s),e.PTSKnown&&!isNaN(o)?Pt.b.log("live playlist sliding:"+o.toFixed(3)):(Pt.b.log("live playlist - outdated PTS, unknown sliding"),k(this.fragPrevious,n,e))):(Pt.b.log("live playlist - first load, unknown sliding"),e.PTSKnown=!1,k(this.fragPrevious,n,e))}else e.PTSKnown=!1;if(r.details=e,this.levelLastLoaded=i,this.hls.trigger(Dt.a.LEVEL_UPDATED,{details:e,level:i}),!1===this.startFragRequested){if(-1===this.startPosition||-1===this.lastCurrentTime){var l=e.startTimeOffset;isNaN(l)?e.live?(this.startPosition=this.computeLivePosition(o,e),Pt.b.log("configure startPosition to "+this.startPosition)):this.startPosition=0:(l<0&&(Pt.b.log("negative start time offset "+l+", count from end of last fragment"),l=o+a+l),Pt.b.log("start time offset found in playlist, adjust startPosition to "+l),this.startPosition=l),this.lastCurrentTime=this.startPosition}this.nextLoadPosition=this.startPosition}this.state===ye.WAITING_LEVEL&&(this.state=ye.IDLE),this.tick()},e.prototype.onKeyLoaded=function(){this.state===ye.KEY_LOADING&&(this.state=ye.IDLE,this.tick())},e.prototype.onFragLoaded=function(t){var e=this.fragCurrent,i=t.frag;if(this.state===ye.FRAG_LOADING&&e&&"main"===i.type&&i.level===e.level&&i.sn===e.sn){var n=t.stats,r=this.levels[e.level],a=r.details;if(Pt.b.log("Loaded "+e.sn+" of ["+a.startSN+" ,"+a.endSN+"],level "+e.level),this.bitrateTest=!1,this.stats=n,!0===i.bitrateTest&&this.hls.nextLoadLevel)this.state=ye.IDLE,this.startFragRequested=!1,n.tparsed=n.tbuffered=performance.now(),this.hls.trigger(Dt.a.FRAG_BUFFERED,{stats:n,frag:e,id:"main"}),this.tick();else if("initSegment"===i.sn)this.state=ye.IDLE,n.tparsed=n.tbuffered=performance.now(),a.initSegment.data=t.payload,this.hls.trigger(Dt.a.FRAG_BUFFERED,{stats:n,frag:e,id:"main"}),this.tick();else{this.state=ye.PARSING;var o=a.totalduration,s=e.level,l=e.sn,u=this.config.defaultAudioCodec||r.audioCodec;this.audioCodecSwap&&(Pt.b.log("swapping playlist audio codec"),void 0===u&&(u=this.lastAudioCodec),u&&(u=-1!==u.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5")),this.pendingBuffering=!0,this.appended=!1,Pt.b.log("Parsing "+l+" of ["+a.startSN+" ,"+a.endSN+"],level "+s+", cc "+e.cc);var c=this.demuxer;c||(c=this.demuxer=new he(this.hls,"main"));var d=this.media,h=d&&d.seeking,f=!h&&(a.PTSKnown||!a.live),p=a.initSegment?a.initSegment.data:[];c.push(t.payload,p,u,r.videoCodec,e,o,f,void 0)}}this.fragLoadError=0},e.prototype.onFragParsingInitSegment=function(t){var e=this.fragCurrent,i=t.frag;if(e&&"main"===t.id&&i.sn===e.sn&&i.level===e.level&&this.state===ye.PARSING){var n,r,a=t.tracks;if(a.audio&&this.altAudio&&delete a.audio,r=a.audio){var o=this.levels[this.level].audioCodec,s=navigator.userAgent.toLowerCase();o&&this.audioCodecSwap&&(Pt.b.log("swapping playlist audio codec"),o=-1!==o.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),this.audioCodecSwitch&&1!==r.metadata.channelCount&&-1===s.indexOf("firefox")&&(o="mp4a.40.5"),-1!==s.indexOf("android")&&"audio/mpeg"!==r.container&&(o="mp4a.40.2",Pt.b.log("Android: force audio codec to "+o)),r.levelCodec=o,r.id=t.id}r=a.video,r&&(r.levelCodec=this.levels[this.level].videoCodec,r.id=t.id),this.hls.trigger(Dt.a.BUFFER_CODECS,a);for(n in a){r=a[n],Pt.b.log("main track:"+n+",container:"+r.container+",codecs[level/parsed]=["+r.levelCodec+"/"+r.codec+"]");var l=r.initSegment;l&&(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(Dt.a.BUFFER_APPENDING,{type:n,data:l,parent:"main",content:"initSegment"}))}this.tick()}},e.prototype.onFragParsingData=function(t){var e=this,i=this.fragCurrent,n=t.frag;if(i&&"main"===t.id&&n.sn===i.sn&&n.level===i.level&&("audio"!==t.type||!this.altAudio)&&this.state===ye.PARSING){var r=this.levels[this.level],a=i;if(isNaN(t.endPTS)&&(t.endPTS=t.startPTS+i.duration,t.endDTS=t.startDTS+i.duration),Pt.b.log("Parsed "+t.type+",PTS:["+t.startPTS.toFixed(3)+","+t.endPTS.toFixed(3)+"],DTS:["+t.startDTS.toFixed(3)+"/"+t.endDTS.toFixed(3)+"],nb:"+t.nb+",dropped:"+(t.dropped||0)),"video"===t.type)if(a.dropped=t.dropped,a.dropped)if(a.backtracked)Pt.b.warn("Already backtracked on this fragment, appending with the gap");else{var o=r.details;if(!o||a.sn!==o.startSN)return Pt.b.warn("missing video frame(s), backtracking fragment"),a.backtracked=!0,this.nextLoadPosition=t.startPTS,this.state=ye.IDLE,this.fragPrevious=a,void this.tick();Pt.b.warn("missing video frame(s) on first frag, appending with gap")}else a.backtracked=!1;var s=_(r.details,a,t.startPTS,t.endPTS,t.startDTS,t.endDTS),l=this.hls;l.trigger(Dt.a.LEVEL_PTS_UPDATED,{details:r.details,level:this.level,drift:s,type:t.type,start:t.startPTS,end:t.endPTS}),[t.data1,t.data2].forEach(function(i){i&&i.length&&e.state===ye.PARSING&&(e.appended=!0,e.pendingBuffering=!0,l.trigger(Dt.a.BUFFER_APPENDING,{type:t.type,data:i,parent:"main",content:"data"}))}),this.tick()}},e.prototype.onFragParsed=function(t){var e=this.fragCurrent,i=t.frag;e&&"main"===t.id&&i.sn===e.sn&&i.level===e.level&&this.state===ye.PARSING&&(this.stats.tparsed=performance.now(),this.state=ye.PARSED,this._checkAppendedParsed())},e.prototype.onAudioTrackSwitching=function(t){var e=!!t.url,i=t.id;if(!e){if(this.mediaBuffer!==this.media){Pt.b.log("switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;var n=this.fragCurrent;n.loader&&(Pt.b.log("switching to main audio track, cancel main fragment load"),n.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=ye.IDLE}var r=this.hls;r.trigger(Dt.a.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),r.trigger(Dt.a.AUDIO_TRACK_SWITCHED,{id:i}),this.altAudio=!1}},e.prototype.onAudioTrackSwitched=function(t){var e=t.id,i=!!this.hls.audioTracks[e].url;if(i){var n=this.videoBuffer;n&&this.mediaBuffer!==n&&(Pt.b.log("switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=n)}this.altAudio=i,this.tick()},e.prototype.onBufferCreated=function(t){var e=t.tracks,i=void 0,n=void 0,r=!1;for(var a in e){var o=e[a];"main"===o.id?(n=a,i=o,"video"===a&&(this.videoBuffer=e[a].buffer)):r=!0}r&&i?(Pt.b.log("alternate track found, use "+n+".buffered to schedule main fragment loading"),this.mediaBuffer=i.buffer):this.mediaBuffer=this.media},e.prototype.onBufferAppended=function(t){if("main"===t.parent){var e=this.state;e!==ye.PARSING&&e!==ye.PARSED||(this.pendingBuffering=t.pending>0,this._checkAppendedParsed())}},e.prototype._checkAppendedParsed=function(){if(!(this.state!==ye.PARSED||this.appended&&this.pendingBuffering)){var t=this.fragCurrent;if(t){var e=this.mediaBuffer?this.mediaBuffer:this.media;Pt.b.log("main buffered : "+pe.toString(e.buffered));var i=this._bufferedFrags.filter(function(t){return re.isBuffered(e,(t.startPTS+t.endPTS)/2)});i.push(t),this._bufferedFrags=i.sort(function(t,e){return t.startPTS-e.startPTS}),this.fragPrevious=t;var n=this.stats;n.tbuffered=performance.now(),this.fragLastKbps=Math.round(8*n.total/(n.tbuffered-n.tfirst)),this.hls.trigger(Dt.a.FRAG_BUFFERED,{stats:n,frag:t,id:"main"}),this.state=ye.IDLE}this.tick()}},e.prototype.onError=function(t){var e=t.frag||this.fragCurrent;if(!e||"main"===e.type){var i=!!this.media&&re.isBuffered(this.media,this.media.currentTime)&&re.isBuffered(this.media,this.media.currentTime+.5);switch(t.details){case Ot.a.FRAG_LOAD_ERROR:case Ot.a.FRAG_LOAD_TIMEOUT:case Ot.a.KEY_LOAD_ERROR:case Ot.a.KEY_LOAD_TIMEOUT:if(!t.fatal)if(this.fragLoadError+1<=this.config.fragLoadingMaxRetry){var n=Math.min(Math.pow(2,this.fragLoadError)*this.config.fragLoadingRetryDelay,this.config.fragLoadingMaxRetryTimeout);e.loadCounter=0,Pt.b.warn("mediaController: frag loading failed, retry in "+n+" ms"),this.retryDate=performance.now()+n,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.fragLoadError++,this.state=ye.FRAG_LOADING_WAITING_RETRY}else Pt.b.error("mediaController: "+t.details+" reaches max retry, redispatch as fatal ..."),t.fatal=!0,this.state=ye.ERROR;break;case Ot.a.FRAG_LOOP_LOADING_ERROR:t.fatal||(i?(this._reduceMaxBufferLength(e.duration),this.state=ye.IDLE):e.autoLevel&&0!==e.level||(t.fatal=!0,this.state=ye.ERROR));break;case Ot.a.LEVEL_LOAD_ERROR:case Ot.a.LEVEL_LOAD_TIMEOUT:this.state!==ye.ERROR&&(t.fatal?(this.state=ye.ERROR,Pt.b.warn("streamController: "+t.details+",switch to "+this.state+" state ...")):t.levelRetry||this.state!==ye.WAITING_LEVEL||(this.state=ye.IDLE));break;case Ot.a.BUFFER_FULL_ERROR:"main"!==t.parent||this.state!==ye.PARSING&&this.state!==ye.PARSED||(i?(this._reduceMaxBufferLength(this.config.maxBufferLength),this.state=ye.IDLE):(Pt.b.warn("buffer full error also media.currentTime is not buffered, flush everything"),this.fragCurrent=null,this.flushMainBuffer(0,Number.POSITIVE_INFINITY)))}}},e.prototype._reduceMaxBufferLength=function(t){var e=this.config;e.maxMaxBufferLength>=t&&(e.maxMaxBufferLength/=2,Pt.b.warn("main:reduce max buffer length to "+e.maxMaxBufferLength+"s"),void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*e.fragLoadingLoopThreshold))},e.prototype._checkBuffer=function(){var t=this.media,e=this.config;if(t&&t.readyState){var i=t.currentTime,n=this.mediaBuffer?this.mediaBuffer:t,r=n.buffered;if(!this.loadedmetadata&&r.length){this.loadedmetadata=!0;var a=t.seeking?i:this.startPosition,o=re.isBuffered(n,a),s=r.start(0),l=!o&&Math.abs(a-s)1e3*e.lowBufferWatchdogPeriod){this.stallReported||(this.stallReported=!0,Pt.b.warn("playback stalling in low buffer @"+i),f.trigger(Dt.a.ERROR,{type:Ot.b.MEDIA_ERROR,details:Ot.a.BUFFER_STALLED_ERROR,fatal:!1,buffer:g}));var m=u.nextStart,v=m-i;if(m&&v0){this.nudgeRetry=++y;var b=y*e.nudgeOffset;Pt.b.log("adjust currentTime from "+t.currentTime+" to next buffered @ "+m+" + nudge "+b),t.currentTime=m+b,this.stalled=void 0,f.trigger(Dt.a.ERROR,{type:Ot.b.MEDIA_ERROR,details:Ot.a.BUFFER_SEEK_OVER_HOLE,fatal:!1,hole:m+b-i})}}else if(g>.5&&p>1e3*e.highBufferWatchdogPeriod)if(this.stallReported||(this.stallReported=!0,Pt.b.warn("playback stalling in high buffer @"+i),f.trigger(Dt.a.ERROR,{type:Ot.b.MEDIA_ERROR,details:Ot.a.BUFFER_STALLED_ERROR,fatal:!1,buffer:g})),this.stalled=void 0,this.nudgeRetry=++y,y"+t),this.hls.trigger(Dt.a.STREAM_STATE_TRANSITION,{previousState:e,nextState:t})}},get:function(){return this._state}},{key:"currentLevel",get:function(){var t=this.media;if(t){var e=this.getBufferedFrag(t.currentTime);if(e)return e.level}return-1}},{key:"nextBufferedFrag",get:function(){var t=this.media;return t?this.followingBufferedFrag(this.getBufferedFrag(t.currentTime)):null}},{key:"nextLevel",get:function(){var t=this.nextBufferedFrag;return t?t.level:-1}},{key:"liveSyncPosition",get:function(){return this._liveSyncPosition},set:function(t){this._liveSyncPosition=t}}]),e}(Mt),ve=me,be=function(){function t(t,e){for(var i=0;i0){i=e[0].bitrate,e.sort(function(t,e){return t.bitrate-e.bitrate}),this._levels=e;for(var c=0;c0})}else this.hls.trigger(Dt.a.ERROR,{type:Ot.b.MEDIA_ERROR,details:Ot.a.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:this.hls.url,reason:"no level with compatible codecs found in manifest"})},e.prototype.setLevelInternal=function(t){var e=this._levels,i=this.hls;if(t>=0&&t1&&s.loadError0&&(e=t.urlId,this.hls.trigger(Dt.a.LEVEL_LOADING,{url:t.url[e],level:this.currentLevelIndex,id:e}))},be(e,[{key:"levels",get:function(){return this._levels}},{key:"level",get:function(){return this.currentLevelIndex},set:function(t){var e=this._levels;e&&(t=Math.min(t,e.length-1),this.currentLevelIndex===t&&void 0!==e[t].details||this.setLevelInternal(t))}},{key:"manualLevel",get:function(){return this.manualLevelIndex},set:function(t){this.manualLevelIndex=t,void 0===this._startLevel&&(this._startLevel=t),-1!==t&&(this.level=t)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(t){this._firstLevel=t}},{key:"startLevel",get:function(){if(void 0===this._startLevel){var t=this.hls.config.startLevel;return void 0!==t?t:this._firstLevel}return this._startLevel},set:function(t){this._startLevel=t}},{key:"nextLoadLevel",get:function(){return-1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel},set:function(t){this.level=t,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=t)}}]),e}(Mt),Ee=_e,Te=i(3),Ae=function(t){function e(i){x(this,e);var n=N(this,t.call(this,i,Dt.a.MEDIA_ATTACHED,Dt.a.MEDIA_DETACHING,Dt.a.FRAG_PARSING_METADATA));return n.id3Track=void 0,n.media=void 0,n}return M(e,t),e.prototype.destroy=function(){Mt.prototype.destroy.call(this)},e.prototype.onMediaAttached=function(t){this.media=t.media,this.media},e.prototype.onMediaDetaching=function(){this.media=void 0},e.prototype.onFragParsingMetadata=function(t){var e=t.frag,i=t.samples;this.id3Track||(this.id3Track=this.media.addTextTrack("metadata","id3"),this.id3Track.mode="hidden");for(var n=window.WebKitDataCue||window.VTTCue||window.TextTrackCue,r=0;r=this.minWeight_},t.prototype.getEstimate=function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_},t.prototype.destroy=function(){},t}(),we=ke,Ce=function(){function t(t,e){for(var i=0;i500*i.duration/s){var l=t.levels,u=Math.max(1,a.bw?a.bw/8:1e3*a.loaded/o),c=l[i.level],d=c.realBitrate?Math.max(c.realBitrate,c.bitrate):c.bitrate,h=a.total?a.total:Math.max(a.loaded,Math.round(i.duration*d/8)),f=e.currentTime,p=(h-a.loaded)/u,g=(re.bufferInfo(e,f,t.config.maxBufferHole).end-f)/s;if(g<2*i.duration/s&&p>g){var y=void 0,m=void 0;for(m=i.level-1;m>r;m--){var v=l[m].realBitrate?Math.max(l[m].realBitrate,l[m].bitrate):l[m].bitrate;if((y=i.duration*v/(6.4*u))=n;u--){var c=l[u],d=c.details,h=d?d.totalduration/d.fragments.length:e,f=!!d&&d.live,p=void 0;p=u<=t?o*i:s*i;var g=l[u].realBitrate?Math.max(l[u].realBitrate,l[u].bitrate):l[u].bitrate,y=g*h/p;if(Pt.b.trace("level/adjustedbw/bitrate/avgDuration/maxFetchDuration/fetchDuration: "+u+"/"+Math.round(p)+"/"+g+"/"+h+"/"+a+"/"+y),p>g&&(!y||f&&!this.bitrateTestDelay||y=0)return h;Pt.b.trace("rebuffering expected to happen, lets try to find a quality level minimizing the rebuffering");var f=s?Math.min(s,n.maxStarvationDelay):n.maxStarvationDelay,p=n.abrBandWidthFactor,g=n.abrBandWidthUpFactor;if(0===d){var y=this.bitrateTestDelay;if(y){f=(s?Math.min(s,n.maxLoadingDelay):n.maxLoadingDelay)-y,Pt.b.trace("bitrate test took "+Math.round(1e3*y)+"ms, set first fragment max fetchDuration to "+Math.round(1e3*f)+" ms"),p=g=1}}return h=this._findBestLevel(o,s,c,r,e,d+f,p,g,i),Math.max(h,0)}}]),e}(Mt),De=Ie,Oe=m(),Pe=function(t){function e(i){j(this,e);var n=Y(this,t.call(this,i,Dt.a.MEDIA_ATTACHING,Dt.a.MEDIA_DETACHING,Dt.a.MANIFEST_PARSED,Dt.a.BUFFER_RESET,Dt.a.BUFFER_APPENDING,Dt.a.BUFFER_CODECS,Dt.a.BUFFER_EOS,Dt.a.BUFFER_FLUSHING,Dt.a.LEVEL_PTS_UPDATED,Dt.a.LEVEL_UPDATED));return n._msDuration=null,n._levelDuration=null,n._live=null,n._objectUrl=null,n.onsbue=n.onSBUpdateEnd.bind(n),n.onsbe=n.onSBUpdateError.bind(n),n.pendingTracks={},n.tracks={},n}return H(e,t),e.prototype.destroy=function(){Mt.prototype.destroy.call(this)},e.prototype.onLevelPtsUpdated=function(t){var e=t.type,i=this.tracks.audio;if("audio"===e&&i&&"audio/mpeg"===i.container){var n=this.sourceBuffer.audio;if(Math.abs(n.timestampOffset-t.start)>.1){var r=n.updating;try{n.abort()}catch(t){r=!0,Pt.b.warn("can not abort audio buffer: "+t)}r?this.audioTimestampOffset=t.start:(Pt.b.warn("change mpeg audio timestamp offset from "+n.timestampOffset+" to "+t.start),n.timestampOffset=t.start)}}},e.prototype.onManifestParsed=function(t){var e=t.audio,i=t.video||t.levels.length&&t.audio,n=0;t.altAudio&&(e||i)&&(n=(e?1:0)+(i?1:0),Pt.b.log(n+" sourceBuffer(s) expected")),this.sourceBufferNb=n},e.prototype.onMediaAttaching=function(t){var e=this.media=t.media;if(e){var i=this.mediaSource=new Oe;this.onmso=this.onMediaSourceOpen.bind(this),this.onmse=this.onMediaSourceEnded.bind(this),this.onmsc=this.onMediaSourceClose.bind(this),i.addEventListener("sourceopen",this.onmso),i.addEventListener("sourceended",this.onmse),i.addEventListener("sourceclose",this.onmsc),e.src=URL.createObjectURL(i),this._objectUrl=e.src}},e.prototype.onMediaDetaching=function(){Pt.b.log("media source detaching");var t=this.mediaSource;if(t){if("open"===t.readyState)try{t.endOfStream()}catch(t){Pt.b.warn("onMediaDetaching:"+t.message+" while calling endOfStream")}t.removeEventListener("sourceopen",this.onmso),t.removeEventListener("sourceended",this.onmse),t.removeEventListener("sourceclose",this.onmsc),this.media&&(URL.revokeObjectURL(this._objectUrl),this.media.src===this._objectUrl?(this.media.removeAttribute("src"),this.media.load()):Pt.b.warn("media.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.pendingTracks={},this.tracks={},this.sourceBuffer={},this.flushRange=[],this.segments=[],this.appended=0}this.onmso=this.onmse=this.onmsc=null,this.hls.trigger(Dt.a.MEDIA_DETACHED)},e.prototype.onMediaSourceOpen=function(){Pt.b.log("media source opened"),this.hls.trigger(Dt.a.MEDIA_ATTACHED,{media:this.media});var t=this.mediaSource;t&&t.removeEventListener("sourceopen",this.onmso),this.checkPendingTracks()},e.prototype.checkPendingTracks=function(){var t=this.pendingTracks,e=Object.keys(t).length;e&&(this.sourceBufferNb<=e||0===this.sourceBufferNb)&&(this.createSourceBuffers(t),this.pendingTracks={},this.doAppending())},e.prototype.onMediaSourceClose=function(){Pt.b.log("media source closed")},e.prototype.onMediaSourceEnded=function(){Pt.b.log("media source ended")},e.prototype.onSBUpdateEnd=function(){if(this.audioTimestampOffset){var t=this.sourceBuffer.audio;Pt.b.warn("change mpeg audio timestamp offset from "+t.timestampOffset+" to "+this.audioTimestampOffset),t.timestampOffset=this.audioTimestampOffset,delete this.audioTimestampOffset}this._needsFlush&&this.doFlush(),this._needsEos&&this.checkEos(),this.appending=!1;var e=this.parent,i=this.segments.reduce(function(t,i){return i.parent===e?t+1:t},0);this.hls.trigger(Dt.a.BUFFER_APPENDED,{parent:e,pending:i}),this._needsFlush||this.doAppending(),this.updateMediaElementDuration()},e.prototype.onSBUpdateError=function(t){Pt.b.error("sourceBuffer error:",t),this.hls.trigger(Dt.a.ERROR,{type:Ot.b.MEDIA_ERROR,details:Ot.a.BUFFER_APPENDING_ERROR,fatal:!1})},e.prototype.onBufferReset=function(){var t=this.sourceBuffer;for(var e in t){var i=t[e];try{this.mediaSource.removeSourceBuffer(i),i.removeEventListener("updateend",this.onsbue),i.removeEventListener("error",this.onsbe)}catch(t){}}this.sourceBuffer={},this.flushRange=[],this.segments=[],this.appended=0},e.prototype.onBufferCodecs=function(t){if(0===Object.keys(this.sourceBuffer).length){for(var e in t)this.pendingTracks[e]=t[e];var i=this.mediaSource;i&&"open"===i.readyState&&this.checkPendingTracks()}},e.prototype.createSourceBuffers=function(t){var e=this.sourceBuffer,i=this.mediaSource;for(var n in t)if(!e[n]){var r=t[n],a=r.levelCodec||r.codec,o=r.container+";codecs="+a;Pt.b.log("creating sourceBuffer("+o+")");try{var s=e[n]=i.addSourceBuffer(o);s.addEventListener("updateend",this.onsbue),s.addEventListener("error",this.onsbe),this.tracks[n]={codec:a,container:r.container},r.buffer=s}catch(t){Pt.b.error("error while trying to add sourceBuffer:"+t.message),this.hls.trigger(Dt.a.ERROR,{type:Ot.b.MEDIA_ERROR,details:Ot.a.BUFFER_ADD_CODEC_ERROR,fatal:!1,err:t,mimeType:o})}}this.hls.trigger(Dt.a.BUFFER_CREATED,{tracks:t})},e.prototype.onBufferAppending=function(t){this._needsFlush||(this.segments?this.segments.push(t):this.segments=[t],this.doAppending())},e.prototype.onBufferAppendFail=function(t){Pt.b.error("sourceBuffer error:",t.event),this.hls.trigger(Dt.a.ERROR,{type:Ot.b.MEDIA_ERROR,details:Ot.a.BUFFER_APPENDING_ERROR,fatal:!1})},e.prototype.onBufferEos=function(t){var e=this.sourceBuffer,i=t.type;for(var n in e)i&&n!==i||e[n].ended||(e[n].ended=!0,Pt.b.log(n+" sourceBuffer now EOS"));this.checkEos()},e.prototype.checkEos=function(){var t=this.sourceBuffer,e=this.mediaSource;if(!e||"open"!==e.readyState)return void(this._needsEos=!1);for(var i in t){var n=t[i];if(!n.ended)return;if(n.updating)return void(this._needsEos=!0)}Pt.b.log("all media data available, signal endOfStream() to MediaSource and stop loading fragment");try{e.endOfStream()}catch(t){Pt.b.warn("exception while calling mediaSource.endOfStream()")}this._needsEos=!1},e.prototype.onBufferFlushing=function(t){this.flushRange.push({start:t.startOffset,end:t.endOffset,type:t.type}),this.flushBufferCounter=0,this.doFlush()},e.prototype.onLevelUpdated=function(t){var e=t.details;e.fragments.length>0&&(this._levelDuration=e.totalduration+e.fragments[0].start,this._live=e.live,this.updateMediaElementDuration())},e.prototype.updateMediaElementDuration=function(){var t=this.hls.config,e=void 0;if(null!==this._levelDuration&&this.media&&this.mediaSource&&this.sourceBuffer&&0!==this.media.readyState&&"open"===this.mediaSource.readyState){for(var i in this.sourceBuffer)if(!0===this.sourceBuffer[i].updating)return;e=this.media.duration,null===this._msDuration&&(this._msDuration=this.mediaSource.duration),!0===this._live&&!0===t.liveDurationInfinity?(Pt.b.log("Media Source duration is set to Infinity"),this._msDuration=this.mediaSource.duration=1/0):(this._levelDuration>this._msDuration&&this._levelDuration>e||e===1/0||isNaN(e))&&(Pt.b.log("Updating Media Source duration to "+this._levelDuration.toFixed(3)),this._msDuration=this.mediaSource.duration=this._levelDuration)}},e.prototype.doFlush=function(){for(;this.flushRange.length;){var t=this.flushRange[0];if(!this.flushBuffer(t.start,t.end,t.type))return void(this._needsFlush=!0);this.flushRange.shift(),this.flushBufferCounter=0}if(0===this.flushRange.length){this._needsFlush=!1;var e=0,i=this.sourceBuffer;try{for(var n in i)e+=i[n].buffered.length}catch(t){Pt.b.error("error while accessing sourceBuffer.buffered")}this.appended=e,this.hls.trigger(Dt.a.BUFFER_FLUSHED)}},e.prototype.doAppending=function(){var t=this.hls,e=this.sourceBuffer,i=this.segments;if(Object.keys(e).length){if(this.media.error)return this.segments=[],void Pt.b.error("trying to append although a media error occured, flush segment and abort");if(this.appending)return;if(i&&i.length){var n=i.shift();try{var r=n.type,a=e[r];a?a.updating?i.unshift(n):(a.ended=!1,this.parent=n.parent,a.appendBuffer(n.data),this.appendError=0,this.appended++,this.appending=!0):this.onSBUpdateEnd()}catch(e){Pt.b.error("error while trying to append buffer:"+e.message),i.unshift(n);var o={type:Ot.b.MEDIA_ERROR,parent:n.parent};if(22===e.code)return this.segments=[],o.details=Ot.a.BUFFER_FULL_ERROR,o.fatal=!1,void t.trigger(Dt.a.ERROR,o);if(this.appendError?this.appendError++:this.appendError=1,o.details=Ot.a.BUFFER_APPEND_ERROR,this.appendError>t.config.appendErrorMaxRetry)return Pt.b.log("fail "+t.config.appendErrorMaxRetry+" times to append segment in sourceBuffer"),i=[],o.fatal=!0,void t.trigger(Dt.a.ERROR,o);o.fatal=!1,t.trigger(Dt.a.ERROR,o)}}}},e.prototype.flushBuffer=function(t,e,i){var n,r,a,o,s,l,u=this.sourceBuffer;if(Object.keys(u).length){if(Pt.b.log("flushBuffer,pos/start/end: "+this.media.currentTime.toFixed(3)+"/"+t+"/"+e),this.flushBufferCounter.5)return this.flushBufferCounter++,Pt.b.log("flush "+c+" ["+s+","+l+"], of ["+a+","+o+"], pos:"+this.media.currentTime),n.remove(s,l),!1}catch(t){Pt.b.warn("exception while accessing sourcebuffer, it might have been removed from MediaSource")}}}else Pt.b.warn("abort flushing too many retries");Pt.b.log("buffer flushed")}return!0},e}(Mt),xe=Pe,Ne=function(){function t(t,e){for(var i=0;ithis.autoLevelCapping&&e.streamController.nextLevelSwitch(),this.autoLevelCapping=e.autoLevelCapping}}},e.prototype.getMaxLevel=function(t){var i=this;if(!this.levels)return-1;var n=this.levels.filter(function(n,r){return e.isLevelAllowed(r,i.restrictedLevels)&&r<=t});return e.getMaxLevelByMediaSize(n,this.mediaWidth,this.mediaHeight)},e.isLevelAllowed=function(t){return-1===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]).indexOf(t)},e.getMaxLevelByMediaSize=function(t,e,i){if(!t||t&&!t.length)return-1;for(var n=t.length-1,r=0;r=e||a.height>=i)&&function(t,e){return!e||(t.width!==e.width||t.height!==e.height)}(a,t[r+1])){n=r;break}}return n},Ne(e,[{key:"mediaWidth",get:function(){var t=void 0,i=this.media;return i&&(t=i.width||i.clientWidth||i.offsetWidth,t*=e.contentScaleFactor),t}},{key:"mediaHeight",get:function(){var t=void 0,i=this.media;return i&&(t=i.height||i.clientHeight||i.offsetHeight,t*=e.contentScaleFactor),t}}],[{key:"contentScaleFactor",get:function(){var t=1;try{t=window.devicePixelRatio}catch(t){}return t}}]),e}(Mt),Fe=Me,Be=function(t){function e(i){return q(this,e),X(this,t.call(this,i,Dt.a.MEDIA_ATTACHING))}return Z(e,t),e.prototype.destroy=function(){this.timer&&clearInterval(this.timer),this.isVideoPlaybackQualityAvailable=!1},e.prototype.onMediaAttaching=function(t){var e=this.hls.config;if(e.capLevelOnFPSDrop){"function"==typeof(this.video=t.media instanceof HTMLVideoElement?t.media:null).getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),clearInterval(this.timer),this.timer=setInterval(this.checkFPSInterval.bind(this),e.fpsDroppedMonitoringPeriod)}},e.prototype.checkFPS=function(t,e,i){var n=performance.now();if(e){if(this.lastTime){var r=n-this.lastTime,a=i-this.lastDroppedFrames,o=e-this.lastDecodedFrames,s=1e3*a/r,l=this.hls;if(l.trigger(Dt.a.FPS_DROP,{currentDropped:a,currentDecoded:o,totalDroppedFrames:i}),s>0&&a>l.config.fpsDroppedMonitoringThreshold*o){var u=l.currentLevel;Pt.b.warn("drop FPS ratio greater than max allowed value for currentLevel: "+u),u>0&&(-1===l.autoLevelCapping||l.autoLevelCapping>=u)&&(u-=1,l.trigger(Dt.a.FPS_DROP_LEVEL_CAPPING,{level:u,droppedLevel:l.currentLevel}),l.autoLevelCapping=u,l.streamController.nextLevelSwitch())}}this.lastTime=n,this.lastDroppedFrames=i,this.lastDecodedFrames=e}},e.prototype.checkFPSInterval=function(){var t=this.video;if(t)if(this.isVideoPlaybackQualityAvailable){var e=t.getVideoPlaybackQuality();this.checkFPS(t,e.totalVideoFrames,e.droppedVideoFrames)}else this.checkFPS(t,t.webkitDecodedFrameCount,t.webkitDroppedFrameCount)},e}(Mt),Ue=Be,Ge=function(){function t(e){J(this,t),e&&e.xhrSetup&&(this.xhrSetup=e.xhrSetup)}return t.prototype.destroy=function(){this.abort(),this.loader=null},t.prototype.abort=function(){var t=this.loader;t&&4!==t.readyState&&(this.stats.aborted=!0,t.abort()),window.clearTimeout(this.requestTimeout),this.requestTimeout=null,window.clearTimeout(this.retryTimeout),this.retryTimeout=null},t.prototype.load=function(t,e,i){this.context=t,this.config=e,this.callbacks=i,this.stats={trequest:performance.now(),retry:0},this.retryDelay=e.retryDelay,this.loadInternal()},t.prototype.loadInternal=function(){var t,e=this.context;t=this.loader=new XMLHttpRequest;var i=this.stats;i.tfirst=0,i.loaded=0;var n=this.xhrSetup;try{if(n)try{n(t,e.url)}catch(i){t.open("GET",e.url,!0),n(t,e.url)}t.readyState||t.open("GET",e.url,!0)}catch(i){return void this.callbacks.onError({code:t.status,text:i.message},e,t)}e.rangeEnd&&t.setRequestHeader("Range","bytes="+e.rangeStart+"-"+(e.rangeEnd-1)),t.onreadystatechange=this.readystatechange.bind(this),t.onprogress=this.loadprogress.bind(this),t.responseType=e.responseType,this.requestTimeout=window.setTimeout(this.loadtimeout.bind(this),this.config.timeout),t.send()},t.prototype.readystatechange=function(t){var e=t.currentTarget,i=e.readyState,n=this.stats,r=this.context,a=this.config;if(!n.aborted&&i>=2)if(window.clearTimeout(this.requestTimeout),0===n.tfirst&&(n.tfirst=Math.max(performance.now(),n.trequest)),4===i){var o=e.status;if(o>=200&&o<300){n.tload=Math.max(n.tfirst,performance.now());var s=void 0,l=void 0;"arraybuffer"===r.responseType?(s=e.response,l=s.byteLength):(s=e.responseText,l=s.length),n.loaded=n.total=l;var u={url:e.responseURL,data:s};this.callbacks.onSuccess(u,n,r,e)}else n.retry>=a.maxRetry||o>=400&&o<499?(Pt.b.error(o+" while loading "+r.url),this.callbacks.onError({code:o,text:e.statusText},r,e)):(Pt.b.warn(o+" while loading "+r.url+", retrying in "+this.retryDelay+"..."),this.destroy(),this.retryTimeout=window.setTimeout(this.loadInternal.bind(this),this.retryDelay),this.retryDelay=Math.min(2*this.retryDelay,a.maxRetryDelay),n.retry++)}else this.requestTimeout=window.setTimeout(this.loadtimeout.bind(this),a.timeout)},t.prototype.loadtimeout=function(){Pt.b.warn("timeout while loading "+this.context.url),this.callbacks.onTimeout(this.stats,this.context,null)},t.prototype.loadprogress=function(t){var e=t.currentTarget,i=this.stats;i.loaded=t.loaded,t.lengthComputable&&(i.total=t.total);var n=this.callbacks.onProgress;n&&n(i,this.context,null,e)},t}(),Ke=Ge,Ve=function(){function t(t,e){for(var i=0;i1&&setTimeout(this.tick,1),this.ticks=0)},e.prototype.doTick=function(){this.updateTrack(this.trackId)},e.prototype.onError=function(t){t.fatal&&t.type===Ot.b.NETWORK_ERROR&&this.cleanTimer()},e.prototype.onManifestLoading=function(){this.tracks=[],this.trackId=-1},e.prototype.onManifestParsed=function(t){var e=this,i=t.audioTracks||[],n=!1;this.tracks=i,this.hls.trigger(Dt.a.AUDIO_TRACKS_UPDATED,{audioTracks:i});var r=0;i.forEach(function(t){if(t.default&&!n)return e.audioTrack=r,void(n=!0);r++}),!1===n&&i.length&&(Pt.b.log("no default audio track defined, use first audio track as default"),this.audioTrack=0)},e.prototype.onAudioTrackLoaded=function(t){t.id=0&&t=0&&t0&&-1===t?(Pt.b.log("audio:override startPosition with lastCurrentTime @"+e.toFixed(3)),this.state=$e.IDLE):(this.lastCurrentTime=this.startPosition?this.startPosition:t,this.state=$e.STARTING),this.nextLoadPosition=this.startPosition=this.lastCurrentTime,this.tick()}else this.startPosition=t,this.state=$e.STOPPED},e.prototype.stopLoad=function(){var t=this.fragCurrent;t&&(t.loader&&t.loader.abort(),this.fragCurrent=null),this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=$e.STOPPED},e.prototype.tick=function(){1===++this.ticks&&(this.doTick(),this.ticks>1&&setTimeout(this.tick,1),this.ticks=0)},e.prototype.doTick=function(){var t,e,i,n=this.hls,r=n.config;switch(this.state){case $e.ERROR:case $e.PAUSED:case $e.BUFFER_FLUSHING:break;case $e.STARTING:this.state=$e.WAITING_TRACK,this.loadedmetadata=!1;break;case $e.IDLE:var a=this.tracks;if(!a)break;if(!this.media&&(this.startFragRequested||!r.startFragPrefetch))break;if(this.loadedmetadata)t=this.media.currentTime;else if(void 0===(t=this.nextLoadPosition))break;var o=this.mediaBuffer?this.mediaBuffer:this.media,s=this.videoBuffer?this.videoBuffer:this.media,l=re.bufferInfo(o,t,r.maxBufferHole),u=re.bufferInfo(s,t,r.maxBufferHole),c=l.len,d=l.end,h=this.fragPrevious,f=Math.max(r.maxBufferLength,u.len),p=this.audioSwitch,g=this.trackId;if((cv||l.nextStart))return;Pt.b.log("alt audio track ahead of main track, seek to start of alt audio track"),this.media.currentTime=v+.05}if(i.initSegment&&!i.initSegment.data)_=i.initSegment;else if(d<=v){if(_=y[0],null!==this.videoTrackCC&&_.cc!==this.videoTrackCC&&(_=A(y,this.videoTrackCC)),i.live&&_.loadIdx&&_.loadIdx===this.fragLoadIdx){var E=l.nextStart?l.nextStart:v;return Pt.b.log("no alt audio available @currentTime:"+this.media.currentTime+", seeking @"+(E+.05)),void(this.media.currentTime=E+.05)}}else{var T=void 0,S=r.maxFragLookUpTolerance,L=h?y[h.sn-y[0].sn+1]:void 0,R=function(t){var e=Math.min(S,t.duration);return t.start+t.duration-e<=d?1:t.start-e>d&&t.start?-1:0};db-S&&(S=0),T=L&&!R(L)?L:ie.search(y,R)):T=y[m-1],T&&(_=T,v=T.start,h&&_.level===h.level&&_.sn===h.sn&&(_.snk&&Math.abs(this.fragLoadIdx-_.loadIdx)=C||I)&&(Pt.b.log("audioStreamController: retryDate reached, switch back to IDLE state"),this.state=$e.IDLE);break;case $e.WAITING_INIT_PTS:var D=this.videoTrackCC;if(void 0===this.initPTS[D])break;var O=this.waitingFragment;if(O){var P=O.frag.cc;D!==P?(e=this.tracks[this.trackId],e.details&&e.details.live&&(Pt.b.warn("Waiting fragment CC ("+P+") does not match video track CC ("+D+")"),this.waitingFragment=null,this.state=$e.IDLE)):(this.state=$e.FRAG_LOADING,this.onFragLoaded(this.waitingFragment),this.waitingFragment=null)}else this.state=$e.IDLE;break;case $e.STOPPED:case $e.FRAG_LOADING:case $e.PARSING:case $e.PARSED:case $e.ENDED:}},e.prototype.onMediaAttached=function(t){var e=this.media=this.mediaBuffer=t.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),e.addEventListener("seeking",this.onvseeking),e.addEventListener("ended",this.onvended);var i=this.config;this.tracks&&i.autoStartLoad&&this.startLoad(i.startPosition)},e.prototype.onMediaDetaching=function(){var t=this.media;t&&t.ended&&(Pt.b.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0);var e=this.tracks;e&&e.forEach(function(t){t.details&&t.details.fragments.forEach(function(t){t.loadCounter=void 0})}),t&&(t.removeEventListener("seeking",this.onvseeking),t.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.media=this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1,this.stopLoad()},e.prototype.onMediaSeeking=function(){this.state===$e.ENDED&&(this.state=$e.IDLE),this.media&&(this.lastCurrentTime=this.media.currentTime),void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold),this.tick()},e.prototype.onMediaEnded=function(){this.startPosition=this.lastCurrentTime=0},e.prototype.onAudioTracksUpdated=function(t){Pt.b.log("audio tracks updated"),this.tracks=t.audioTracks},e.prototype.onAudioTrackSwitching=function(t){var e=!!t.url;this.trackId=t.id,this.fragCurrent=null,this.state=$e.PAUSED,this.waitingFragment=null,e?this.timer||(this.timer=setInterval(this.ontick,100)):this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),e&&(this.audioSwitch=!0,this.state=$e.IDLE,void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold)),this.tick()},e.prototype.onAudioTrackLoaded=function(t){var e=t.details,i=t.id,n=this.tracks[i],r=e.totalduration,a=0;if(Pt.b.log("track "+i+" loaded ["+e.startSN+","+e.endSN+"],duration:"+r),e.live){var o=n.details;o&&e.fragments.length>0?(E(o,e),a=e.fragments[0].start,e.PTSKnown?Pt.b.log("live audio playlist sliding:"+a.toFixed(3)):Pt.b.log("live audio playlist - outdated PTS, unknown sliding")):(e.PTSKnown=!1,Pt.b.log("live audio playlist - first load, unknown sliding"))}else e.PTSKnown=!1;if(n.details=e,!this.startFragRequested){if(-1===this.startPosition){var s=e.startTimeOffset;isNaN(s)?this.startPosition=0:(Pt.b.log("start time offset found in playlist, adjust startPosition to "+s),this.startPosition=s)}this.nextLoadPosition=this.startPosition}this.state===$e.WAITING_TRACK&&(this.state=$e.IDLE),this.tick()},e.prototype.onKeyLoaded=function(){this.state===$e.KEY_LOADING&&(this.state=$e.IDLE,this.tick())},e.prototype.onFragLoaded=function(t){var e=this.fragCurrent,i=t.frag;if(this.state===$e.FRAG_LOADING&&e&&"audio"===i.type&&i.level===e.level&&i.sn===e.sn){var n=this.tracks[this.trackId],r=n.details,a=r.totalduration,o=e.level,s=e.sn,l=e.cc,u=this.config.defaultAudioCodec||n.audioCodec||"mp4a.40.2",c=this.stats=t.stats;if("initSegment"===s)this.state=$e.IDLE,c.tparsed=c.tbuffered=performance.now(),r.initSegment.data=t.payload,this.hls.trigger(Dt.a.FRAG_BUFFERED,{stats:c,frag:e,id:"audio"}),this.tick();else{this.state=$e.PARSING,this.appended=!1,this.demuxer||(this.demuxer=new he(this.hls,"audio"));var d=this.initPTS[l],h=r.initSegment?r.initSegment.data:[];if(r.initSegment||void 0!==d){this.pendingBuffering=!0,Pt.b.log("Demuxing "+s+" of ["+r.startSN+" ,"+r.endSN+"],track "+o);this.demuxer.push(t.payload,h,u,null,e,a,!1,d)}else Pt.b.log("unknown video PTS for continuity counter "+l+", waiting for video PTS before demuxing audio frag "+s+" of ["+r.startSN+" ,"+r.endSN+"],track "+o),this.waitingFragment=t,this.state=$e.WAITING_INIT_PTS}}this.fragLoadError=0},e.prototype.onFragParsingInitSegment=function(t){var e=this.fragCurrent,i=t.frag;if(e&&"audio"===t.id&&i.sn===e.sn&&i.level===e.level&&this.state===$e.PARSING){var n=t.tracks,r=void 0;if(n.video&&delete n.video,r=n.audio){r.levelCodec=r.codec,r.id=t.id,this.hls.trigger(Dt.a.BUFFER_CODECS,n),Pt.b.log("audio track:audio,container:"+r.container+",codecs[level/parsed]=["+r.levelCodec+"/"+r.codec+"]");var a=r.initSegment;if(a){var o={type:"audio",data:a,parent:"audio",content:"initSegment"};this.audioSwitch?this.pendingData=[o]:(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(Dt.a.BUFFER_APPENDING,o))}this.tick()}}},e.prototype.onFragParsingData=function(t){var e=this,i=this.fragCurrent,n=t.frag;if(i&&"audio"===t.id&&"audio"===t.type&&n.sn===i.sn&&n.level===i.level&&this.state===$e.PARSING){var r=this.trackId,a=this.tracks[r],o=this.hls;isNaN(t.endPTS)&&(t.endPTS=t.startPTS+i.duration,t.endDTS=t.startDTS+i.duration),Pt.b.log("parsed "+t.type+",PTS:["+t.startPTS.toFixed(3)+","+t.endPTS.toFixed(3)+"],DTS:["+t.startDTS.toFixed(3)+"/"+t.endDTS.toFixed(3)+"],nb:"+t.nb),_(a.details,i,t.startPTS,t.endPTS);var s=this.audioSwitch,l=this.media,u=!1;if(s&&l)if(l.readyState){var c=l.currentTime;Pt.b.log("switching audio track : currentTime:"+c),c>=t.startPTS&&(Pt.b.log("switching audio track : flushing all audio"),this.state=$e.BUFFER_FLUSHING,o.trigger(Dt.a.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),u=!0,this.audioSwitch=!1,o.trigger(Dt.a.AUDIO_TRACK_SWITCHED,{id:r}))}else this.audioSwitch=!1,o.trigger(Dt.a.AUDIO_TRACK_SWITCHED,{id:r});var d=this.pendingData;this.audioSwitch||([t.data1,t.data2].forEach(function(e){e&&e.length&&d.push({type:t.type,data:e,parent:"audio",content:"data"})}),!u&&d.length&&(d.forEach(function(t){e.state===$e.PARSING&&(e.pendingBuffering=!0,e.hls.trigger(Dt.a.BUFFER_APPENDING,t))}),this.pendingData=[],this.appended=!0)),this.tick()}},e.prototype.onFragParsed=function(t){var e=this.fragCurrent,i=t.frag;e&&"audio"===t.id&&i.sn===e.sn&&i.level===e.level&&this.state===$e.PARSING&&(this.stats.tparsed=performance.now(),this.state=$e.PARSED,this._checkAppendedParsed())},e.prototype.onBufferReset=function(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1},e.prototype.onBufferCreated=function(t){var e=t.tracks.audio;e&&(this.mediaBuffer=e.buffer,this.loadedmetadata=!0),t.tracks.video&&(this.videoBuffer=t.tracks.video.buffer)},e.prototype.onBufferAppended=function(t){if("audio"===t.parent){var e=this.state;e!==$e.PARSING&&e!==$e.PARSED||(this.pendingBuffering=t.pending>0,this._checkAppendedParsed())}},e.prototype._checkAppendedParsed=function(){if(!(this.state!==$e.PARSED||this.appended&&this.pendingBuffering)){var t=this.fragCurrent,e=this.stats,i=this.hls;if(t){this.fragPrevious=t,e.tbuffered=performance.now(),i.trigger(Dt.a.FRAG_BUFFERED,{stats:e,frag:t,id:"audio"});var n=this.mediaBuffer?this.mediaBuffer:this.media;Pt.b.log("audio buffered : "+pe.toString(n.buffered)),this.audioSwitch&&this.appended&&(this.audioSwitch=!1,i.trigger(Dt.a.AUDIO_TRACK_SWITCHED,{id:this.trackId})),this.state=$e.IDLE}this.tick()}},e.prototype.onError=function(t){var e=t.frag;if(!e||"audio"===e.type)switch(t.details){case Ot.a.FRAG_LOAD_ERROR:case Ot.a.FRAG_LOAD_TIMEOUT:if(!t.fatal){var i=this.fragLoadError;i?i++:i=1;var n=this.config;if(i<=n.fragLoadingMaxRetry){this.fragLoadError=i,e.loadCounter=0;var r=Math.min(Math.pow(2,i-1)*n.fragLoadingRetryDelay,n.fragLoadingMaxRetryTimeout);Pt.b.warn("audioStreamController: frag loading failed, retry in "+r+" ms"),this.retryDate=performance.now()+r,this.state=$e.FRAG_LOADING_WAITING_RETRY}else Pt.b.error("audioStreamController: "+t.details+" reaches max retry, redispatch as fatal ..."),t.fatal=!0,this.state=$e.ERROR}break;case Ot.a.FRAG_LOOP_LOADING_ERROR:case Ot.a.AUDIO_TRACK_LOAD_ERROR:case Ot.a.AUDIO_TRACK_LOAD_TIMEOUT:case Ot.a.KEY_LOAD_ERROR:case Ot.a.KEY_LOAD_TIMEOUT:this.state!==$e.ERROR&&(this.state=t.fatal?$e.ERROR:$e.IDLE,Pt.b.warn("audioStreamController: "+t.details+" while loading frag,switch to "+this.state+" state ..."));break;case Ot.a.BUFFER_FULL_ERROR:if("audio"===t.parent&&(this.state===$e.PARSING||this.state===$e.PARSED)){var a=this.mediaBuffer,o=this.media.currentTime;if(a&&re.isBuffered(a,o)&&re.isBuffered(a,o+.5)){var s=this.config;s.maxMaxBufferLength>=s.maxBufferLength&&(s.maxMaxBufferLength/=2,Pt.b.warn("audio:reduce max buffer length to "+s.maxMaxBufferLength+"s"),this.fragLoadIdx+=2*s.fragLoadingLoopThreshold),this.state=$e.IDLE}else Pt.b.warn("buffer full error also media.currentTime is not buffered, flush audio buffer"),this.fragCurrent=null,this.state=$e.BUFFER_FLUSHING,this.hls.trigger(Dt.a.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"})}}},e.prototype.onBufferFlushed=function(){var t=this,e=this.pendingData;e&&e.length?(Pt.b.log("appending pending audio data on Buffer Flushed"),e.forEach(function(e){t.hls.trigger(Dt.a.BUFFER_APPENDING,e)}),this.appended=!0,this.pendingData=[],this.state=$e.PARSED):(this.state=$e.IDLE,this.fragPrevious=null,this.tick())},He(e,[{key:"state",set:function(t){if(this.state!==t){var e=this.state;this._state=t,Pt.b.log("audio stream:"+e+"->"+t)}},get:function(){return this._state}}]),e}(Mt),We=ze,qe=function(){function t(t){return"string"==typeof t&&(!!a[t.toLowerCase()]&&t.toLowerCase())}function e(t){return"string"==typeof t&&(!!o[t.toLowerCase()]&&t.toLowerCase())}function i(t){for(var e=1;e100)throw new Error("Position must be between 0 and 100.");_=t,this.hasBeenReset=!0}})),Object.defineProperty(s,"positionAlign",i({},u,{get:function(){return E},set:function(t){var i=e(t);if(!i)throw new SyntaxError("An invalid or illegal string was specified.");E=i,this.hasBeenReset=!0}})),Object.defineProperty(s,"size",i({},u,{get:function(){return T},set:function(t){if(t<0||t>100)throw new Error("Size must be between 0 and 100.");T=t,this.hasBeenReset=!0}})),Object.defineProperty(s,"align",i({},u,{get:function(){return A},set:function(t){var i=e(t);if(!i)throw new SyntaxError("An invalid or illegal string was specified.");A=i,this.hasBeenReset=!0}})),s.displayState=void 0,l)return s}if("undefined"!=typeof window&&window.VTTCue)return window.VTTCue;var r="auto",a={"":!0,lr:!0,rl:!0},o={start:!0,middle:!0,end:!0,left:!0,right:!0};return n.prototype.getCueAsHTML=function(){return window.WebVTT.convertCueToDOMTree(window,this.text)},n}(),Xe=function(){return{decode:function(t){if(!t)return"";if("string"!=typeof t)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(t))}}};st.prototype={set:function(t,e){this.get(t)||""===e||(this.values[t]=e)},get:function(t,e,i){return i?this.has(t)?this.values[t]:e[i]:this.has(t)?this.values[t]:e},has:function(t){return t in this.values},alt:function(t,e,i){for(var n=0;n=0&&e<=100)&&(this.set(t,e),!0)}};var Ze=new qe(0,0,0),Je="middle"===Ze.align?"middle":"center";at.prototype={parse:function(t){function e(){var t=i.buffer,e=0;for(t=ct(t);e=i&&console.log(this.time+" ["+t+"] "+e)}},ci=function(t){for(var e=[],i=0;ini&&(ui.log("ERROR","Too large cursor position "+this.pos),this.pos=ni)},t.prototype.moveCursor=function(t){var e=this.pos+t;if(t>1)for(var i=this.pos+1;i=144&&this.backSpace();var e=ei(t);if(this.pos>=ni)return void ui.log("ERROR","Cannot insert "+t.toString(16)+" ("+e+") at position "+this.pos+". Skipping it!");this.chars[this.pos].setChar(e,this.currPenState),this.moveCursor(1)},t.prototype.clearFromPos=function(t){var e;for(e=t;e0&&(i=t?"["+e.join(" | ")+"]":e.join("\n")),i},t.prototype.getTextAndFormat=function(){return this.rows},t}(),gi=function(){function t(e,i){ht(this,t),this.chNr=e,this.outputFilter=i,this.mode=null,this.verbose=0,this.displayedMemory=new pi,this.nonDisplayedMemory=new pi,this.lastOutputScreen=new pi,this.currRollUpRow=this.displayedMemory.rows[ii-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}return t.prototype.reset=function(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.currRollUpRow=this.displayedMemory.rows[ii-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.lastCueEndTime=null},t.prototype.getHandler=function(){return this.outputFilter},t.prototype.setHandler=function(t){this.outputFilter=t},t.prototype.setPAC=function(t){this.writeScreen.setPAC(t)},t.prototype.setBkgData=function(t){this.writeScreen.setBkgData(t)},t.prototype.setMode=function(t){t!==this.mode&&(this.mode=t,ui.log("INFO","MODE="+t),"MODE_POP-ON"===this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=t)},t.prototype.insertChars=function(t){for(var e=0;e=46,e.italics)e.foreground="white";else{var i=Math.floor(t/2)-16,n=["white","green","blue","cyan","red","yellow","magenta"];e.foreground=n[i]}ui.log("INFO","MIDROW: "+JSON.stringify(e)),this.writeScreen.setPen(e)},t.prototype.outputDataUpdate=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=ui.time;null!==e&&this.outputFilter&&(null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue&&(this.outputFilter.newCue(this.cueStartTime,e,this.lastOutputScreen),!0===t&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue()),this.cueStartTime=this.displayedMemory.isEmpty()?null:e):this.cueStartTime=e,this.lastOutputScreen.copy(this.displayedMemory))},t.prototype.cueSplitAtTime=function(t){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,t,this.displayedMemory),this.cueStartTime=t))},t}(),yi=function(){function t(e,i,n){ht(this,t),this.field=e||1,this.outputs=[i,n],this.channels=[new gi(1,i),new gi(2,n)],this.currChNr=-1,this.lastCmdA=null,this.lastCmdB=null,this.bufferedData=[],this.startTime=null,this.lastTime=null,this.dataCounters={padding:0,char:0,cmd:0,other:0}}return t.prototype.getHandler=function(t){return this.channels[t].getHandler()},t.prototype.setHandler=function(t,e){this.channels[t].setHandler(e)},t.prototype.addData=function(t,e){var i,n,r,a=!1;this.lastTime=t,ui.setTime(t);for(var o=0;o ("+ci([n,r])+")"),i=this.parseCmd(n,r),i||(i=this.parseMidrow(n,r)),i||(i=this.parsePAC(n,r)),i||(i=this.parseBackgroundAttributes(n,r)),!i&&(a=this.parseChars(n,r)))if(this.currChNr&&this.currChNr>=0){var s=this.channels[this.currChNr-1];s.insertChars(a)}else ui.log("WARNING","No channel found yet. TEXT-MODE?");i?this.dataCounters.cmd+=2:a?this.dataCounters.char+=2:(this.dataCounters.other+=2,ui.log("WARNING","Couldn't parse cleaned data "+ci([n,r])+" orig: "+ci([e[o],e[o+1]])))}else this.dataCounters.padding+=2},t.prototype.parseCmd=function(t,e){var i=null,n=(20===t||28===t)&&32<=e&&e<=47,r=(23===t||31===t)&&33<=e&&e<=35;if(!n&&!r)return!1;if(t===this.lastCmdA&&e===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,ui.log("DEBUG","Repeated command ("+ci([t,e])+") is dropped"),!0;i=20===t||23===t?1:2;var a=this.channels[i-1];return 20===t||28===t?32===e?a.ccRCL():33===e?a.ccBS():34===e?a.ccAOF():35===e?a.ccAON():36===e?a.ccDER():37===e?a.ccRU(2):38===e?a.ccRU(3):39===e?a.ccRU(4):40===e?a.ccFON():41===e?a.ccRDC():42===e?a.ccTR():43===e?a.ccRTD():44===e?a.ccEDM():45===e?a.ccCR():46===e?a.ccENM():47===e&&a.ccEOC():a.ccTO(e-32),this.lastCmdA=t,this.lastCmdB=e,this.currChNr=i,!0},t.prototype.parseMidrow=function(t,e){var i=null;if((17===t||25===t)&&32<=e&&e<=47){if((i=17===t?1:2)!==this.currChNr)return ui.log("ERROR","Mismatch channel in midrow parsing"),!1;return this.channels[i-1].ccMIDROW(e),ui.log("DEBUG","MIDROW ("+ci([t,e])+")"),!0}return!1},t.prototype.parsePAC=function(t,e){var i=null,n=null,r=(17<=t&&t<=23||25<=t&&t<=31)&&64<=e&&e<=127,a=(16===t||24===t)&&64<=e&&e<=95;if(!r&&!a)return!1;if(t===this.lastCmdA&&e===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,!0;i=t<=23?1:2,n=64<=e&&e<=95?1===i?ri[t]:oi[t]:1===i?ai[t]:si[t];var o=this.interpretPAC(n,e);return this.channels[i-1].setPAC(o),this.lastCmdA=t,this.lastCmdB=e,this.currChNr=i,!0},t.prototype.interpretPAC=function(t,e){var i=e,n={color:null,italics:!1,indent:null,underline:!1,row:t};return i=e>95?e-96:e-64,n.underline=1==(1&i),i<=13?n.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(i/2)]:i<=15?(n.italics=!0,n.color="white"):n.indent=4*Math.floor((i-16)/2),n},t.prototype.parseChars=function(t,e){var i=null,n=null,r=null;if(t>=25?(i=2,r=t-8):(i=1,r=t),17<=r&&r<=19){var a=e;a=17===r?e+80:18===r?e+112:e+144,ui.log("INFO","Special char '"+ei(a)+"' in channel "+i),n=[a]}else 32<=t&&t<=127&&(n=0===e?[t]:[t,e]);if(n){var o=ci(n);ui.log("DEBUG","Char codes = "+o.join(",")),this.lastCmdA=null,this.lastCmdB=null}return n},t.prototype.parseBackgroundAttributes=function(t,e){var i,n,r,a,o=(16===t||24===t)&&32<=e&&e<=47,s=(23===t||31===t)&&45<=e&&e<=47;return!(!o&&!s)&&(i={},16===t||24===t?(n=Math.floor((e-32)/2),i.background=li[n],e%2==1&&(i.background=i.background+"_semi")):45===e?i.background="transparent":(i.foreground="black",47===e&&(i.underline=!0)),r=t<24?1:2,a=this.channels[r-1],a.setBkgData(i),this.lastCmdA=null,this.lastCmdB=null,!0)},t.prototype.reset=function(){for(var t=0;tt)&&(this.startTime=t),this.endTime=e,this.screen=i,this.timelineController.createCaptionsTrack(this.track)},t}(),bi=vi,_i=function(t,e,i){return t.substr(i||0,e.length)===e},Ei=function(t){var e=parseInt(t.substr(-3)),i=parseInt(t.substr(-6,2)),n=parseInt(t.substr(-9,2)),r=t.length>9?parseInt(t.substr(0,t.indexOf(":"))):0;return isNaN(e)||isNaN(i)||isNaN(n)||isNaN(r)?-1:(e+=1e3*i,e+=6e4*n,e+=36e5*r)},Ti=function(t){for(var e=5381,i=t.length;i;)e=33*e^t.charCodeAt(--i);return(e>>>0).toString()},Ai=function(t,e,i){var n=t[e],r=t[n.prevCC];if(!r||!r.new&&n.new)return t.ccOffset=t.presentationOffset=n.start,void(n.new=!1);for(;r&&r.new;)t.ccOffset+=n.start-r.start,n.new=!1,n=r,r=t[n.prevCC];t.presentationOffset=i},Si={parse:function(t,e,i,n,r,a){var o=/\r\n|\n\r|\n|\r/g,s=Object(Te.b)(new Uint8Array(t)).trim().replace(o,"\n").split("\n"),l="00:00.000",u=0,c=0,d=0,h=[],f=void 0,p=!0,g=new Qe;g.oncue=function(t){var e=i[n],r=i.ccOffset;e&&e.new&&(void 0!==c?r=i.ccOffset=e.start:Ai(i,n,d)),d&&(r=d+i.ccOffset-i.presentationOffset),t.startTime+=r-c,t.endTime+=r-c,t.id=Ti(t.startTime.toString())+Ti(t.endTime.toString())+Ti(t.text),t.text=decodeURIComponent(encodeURIComponent(t.text)),t.endTime>0&&h.push(t)},g.onparsingerror=function(t){f=t},g.onflush=function(){if(f&&a)return void a(f);r(h)},s.forEach(function(t){if(p){if(_i(t,"X-TIMESTAMP-MAP=")){p=!1,t.substr(16).split(",").forEach(function(t){_i(t,"LOCAL:")?l=t.substr(6):_i(t,"MPEGTS:")&&(u=parseInt(t.substr(7)))});try{e=e<0?e+8589934592:e,u-=e,c=Ei(l)/1e3,d=u/9e4,-1===c&&(f=new Error("Malformed X-TIMESTAMP-MAP: "+t))}catch(e){f=new Error("Malformed X-TIMESTAMP-MAP: "+t)}return}""===t&&(p=!1)}g.parse(t+"\n")}),g.flush()}},Li=Si,Ri=function(t){function e(i){pt(this,e);var n=gt(this,t.call(this,i,Dt.a.MEDIA_ATTACHING,Dt.a.MEDIA_DETACHING,Dt.a.FRAG_PARSING_USERDATA,Dt.a.FRAG_DECRYPTED,Dt.a.MANIFEST_LOADING,Dt.a.MANIFEST_LOADED,Dt.a.FRAG_LOADED,Dt.a.LEVEL_SWITCHING,Dt.a.INIT_PTS_FOUND));if(n.hls=i,n.config=i.config,n.enabled=!0,n.Cues=i.config.cueHandler,n.textTracks=[],n.tracks=[],n.unparsedVttFrags=[],n.initPTS=void 0,n.cueRanges=[],n.config.enableCEA708Captions){var r=new bi(n,1),a=new bi(n,2);n.cea608Parser=new mi(0,r,a)}return n}return yt(e,t),e.prototype.addCues=function(t,e,i,n){for(var r=this.cueRanges,a=!1,o=r.length;o--;){var s=r[o],l=bt(s[0],s[1],e,i);if(l>=0&&(s[0]=Math.min(s[0],e),s[1]=Math.max(s[1],i),a=!0,l/(i-e)>.5))return}a||r.push([e,i]),this.Cues.newCue(this[t],e,i,n)},e.prototype.onInitPtsFound=function(t){var e=this;void 0===this.initPTS&&(this.initPTS=t.initPTS),this.unparsedVttFrags.length&&(this.unparsedVttFrags.forEach(function(t){e.onFragLoaded(t)}),this.unparsedVttFrags=[])},e.prototype.getExistingTrack=function(t){var e=this.media;if(e)for(var i=0;i=this.tracks.length)){this.timer&&(clearInterval(this.timer),this.timer=null);var e=At(this.media.textTracks);if(-1!==this.trackId&&this.subtitleDisplay&&(e[this.trackId].mode="hidden"),this.trackId=t,Pt.b.log("switching to subtitle track "+t),this.hls.trigger(Dt.a.SUBTITLE_TRACK_SWITCH,{id:t}),-1!==t){var i=this.tracks[t];this.subtitleDisplay&&(e[t].mode="showing");var n=i.details;void 0!==n&&!0!==n.live||(Pt.b.log("(re)loading playlist for subtitle track "+t),this.hls.trigger(Dt.a.SUBTITLE_TRACK_LOADING,{url:i.url,id:t}))}}},wi(e,[{key:"subtitleTracks",get:function(){return this.tracks}},{key:"subtitleTrack",get:function(){return this.trackId},set:function(t){this.trackId!==t&&this.setSubtitleTrackInternal(t)}}]),e}(Mt),Ii=Ci,Di=i(4),Oi={STOPPED:"STOPPED",IDLE:"IDLE",KEY_LOADING:"KEY_LOADING",FRAG_LOADING:"FRAG_LOADING"},Pi=function(t){function e(i){St(this,e);var n=Lt(this,t.call(this,i,Dt.a.MEDIA_ATTACHED,Dt.a.ERROR,Dt.a.KEY_LOADED,Dt.a.FRAG_LOADED,Dt.a.SUBTITLE_TRACKS_UPDATED,Dt.a.SUBTITLE_TRACK_SWITCH,Dt.a.SUBTITLE_TRACK_LOADED,Dt.a.SUBTITLE_FRAG_PROCESSED));return n.config=i.config,n.vttFragSNsProcessed={},n.vttFragQueues=void 0,n.currentlyProcessing=null,n.state=Oi.STOPPED,n.currentTrackId=-1,n.ticks=0,n.decrypter=new Di.a(i.observer,i.config),n}return Rt(e,t),e.prototype.destroy=function(){Mt.prototype.destroy.call(this),this.state=Oi.STOPPED},e.prototype.clearVttFragQueues=function(){var t=this;this.vttFragQueues={},this.tracks.forEach(function(e){t.vttFragQueues[e.id]=[]})},e.prototype.nextFrag=function(){if(null===this.currentlyProcessing&&this.currentTrackId>-1&&this.vttFragQueues[this.currentTrackId].length){var t=this.currentlyProcessing=this.vttFragQueues[this.currentTrackId].shift();this.fragCurrent=t,this.hls.trigger(Dt.a.FRAG_LOADING,{frag:t}),this.state=Oi.FRAG_LOADING}},e.prototype.onSubtitleFragProcessed=function(t){t.success&&this.vttFragSNsProcessed[t.frag.trackId].push(t.frag.sn),this.currentlyProcessing=null,this.state=Oi.IDLE,this.nextFrag()},e.prototype.onMediaAttached=function(){this.state=Oi.IDLE},e.prototype.onError=function(t){var e=t.frag;e&&"subtitle"!==e.type||this.currentlyProcessing&&(this.currentlyProcessing=null,this.nextFrag())},e.prototype.tick=function(){var t=this;1===++this.ticks&&(this.doTick(),this.ticks>1&&setTimeout(function(){t.tick()},1),this.ticks=0)},e.prototype.doTick=function(){var t=this;switch(this.state){case Oi.IDLE:var e=this.tracks,i=this.currentTrackId,n=this.vttFragSNsProcessed[i],r=this.vttFragQueues[i],a=this.currentlyProcessing?this.currentlyProcessing.sn:-1,o=function(t){return n.indexOf(t.sn)>-1},s=function(t){return r.some(function(e){return e.sn===t.sn})};if(!e)break;var l;if(i0&&null!=i&&null!=i.key&&"AES-128"===i.method){var a;try{a=performance.now()}catch(t){a=Date.now()}this.decrypter.decrypt(t.payload,i.key.buffer,i.iv.buffer,function(t){var e;try{e=performance.now()}catch(t){e=Date.now()}r.trigger(Dt.a.FRAG_DECRYPTED,{frag:n,payload:t,stats:{tstart:a,tdecrypt:e}})})}},e}(Mt),xi=Pi,Ni={autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,initialLiveManifestSize:1,maxBufferLength:30,maxBufferSize:6e7,maxBufferHole:.5,maxSeekHole:2,lowBufferWatchdogPeriod:.5,highBufferWatchdogPeriod:3,nudgeOffset:.1,nudgeMaxRetry:3,maxFragLookUpTolerance:.25,liveSyncDurationCount:3,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,liveDurationInfinity:!1,maxMaxBufferLength:600,enableWorker:!0,enableSoftwareAES:!0,manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,manifestLoadingMaxRetryTimeout:64e3,startLevel:void 0,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,levelLoadingMaxRetryTimeout:64e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingMaxRetryTimeout:64e3,fragLoadingLoopThreshold:3,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,loader:Ke,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,fetchSetup:void 0,abrController:De,bufferController:xe,capLevelController:Fe,fpsController:Ue,stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0};Ni.subtitleStreamController=xi,Ni.subtitleTrackController=Ii,Ni.timelineController=ki,Ni.cueHandler=wt,Ni.enableCEA708Captions=!0,Ni.enableWebVTT=!0,Ni.captionsTextTrack1Label="English",Ni.captionsTextTrack1LanguageCode="en",Ni.captionsTextTrack2Label="Spanish",Ni.captionsTextTrack2LanguageCode="es",Ni.audioStreamController=We,Ni.audioTrackController=Ye;var Mi=function(){function t(t,e){for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:{};kt(this,t);var n=t.DefaultConfig;if((i.liveSyncDurationCount||i.liveMaxLatencyDurationCount)&&(i.liveSyncDuration||i.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");for(var r in n)r in i||(i[r]=n[r]);if(void 0!==i.liveMaxLatencyDurationCount&&i.liveMaxLatencyDurationCount<=i.liveSyncDurationCount)throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be gt "liveSyncDurationCount"');if(void 0!==i.liveMaxLatencyDuration&&(i.liveMaxLatencyDuration<=i.liveSyncDuration||void 0===i.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be gt "liveSyncDuration"');Object(Pt.a)(i.debug),this.config=i,this._autoLevelCapping=-1;var a=this.observer=new se.a;a.trigger=function(t){for(var e=arguments.length,i=Array(e>1?e-1:0),n=1;n1?e-1:0),n=1;n0&&void 0!==arguments[0]?arguments[0]:-1;Pt.b.log("startLoad("+t+")"),this.networkControllers.forEach(function(e){e.startLoad(t)})},t.prototype.stopLoad=function(){Pt.b.log("stopLoad"),this.networkControllers.forEach(function(t){t.stopLoad()})},t.prototype.swapAudioCodec=function(){Pt.b.log("swapAudioCodec"),this.streamController.swapAudioCodec()},t.prototype.recoverMediaError=function(){Pt.b.log("recoverMediaError");var t=this.media;this.detachMedia(),this.attachMedia(t)},Mi(t,[{key:"levels",get:function(){return this.levelController.levels}},{key:"currentLevel",get:function(){return this.streamController.currentLevel},set:function(t){Pt.b.log("set currentLevel:"+t),this.loadLevel=t,this.streamController.immediateLevelSwitch()}},{key:"nextLevel",get:function(){return this.streamController.nextLevel},set:function(t){Pt.b.log("set nextLevel:"+t),this.levelController.manualLevel=t,this.streamController.nextLevelSwitch()}},{key:"loadLevel",get:function(){return this.levelController.level},set:function(t){Pt.b.log("set loadLevel:"+t),this.levelController.manualLevel=t}},{key:"nextLoadLevel",get:function(){return this.levelController.nextLoadLevel},set:function(t){this.levelController.nextLoadLevel=t}},{key:"firstLevel",get:function(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)},set:function(t){Pt.b.log("set firstLevel:"+t),this.levelController.firstLevel=t}},{key:"startLevel",get:function(){return this.levelController.startLevel},set:function(t){Pt.b.log("set startLevel:"+t);var e=this;-1!==t&&(t=Math.max(t,e.minAutoLevel)),e.levelController.startLevel=t}},{key:"autoLevelCapping",get:function(){return this._autoLevelCapping},set:function(t){Pt.b.log("set autoLevelCapping:"+t),this._autoLevelCapping=t}},{key:"autoLevelEnabled",get:function(){return-1===this.levelController.manualLevel}},{key:"manualLevel",get:function(){return this.levelController.manualLevel}},{key:"minAutoLevel",get:function(){for(var t=this,e=t.levels,i=t.config.minAutoBitrate,n=e?e.length:0,r=0;ri)return r}return 0}},{key:"maxAutoLevel",get:function(){var t=this,e=t.levels,i=t.autoLevelCapping;return-1===i&&e&&e.length?e.length-1:i}},{key:"nextAutoLevel",get:function(){var t=this;return Math.min(Math.max(t.abrController.nextAutoLevel,t.minAutoLevel),t.maxAutoLevel)},set:function(t){var e=this;e.abrController.nextAutoLevel=Math.max(e.minAutoLevel,t)}},{key:"audioTracks",get:function(){var t=this.audioTrackController;return t?t.audioTracks:[]}},{key:"audioTrack",get:function(){var t=this.audioTrackController;return t?t.audioTrack:-1},set:function(t){var e=this.audioTrackController;e&&(e.audioTrack=t)}},{key:"liveSyncPosition",get:function(){return this.streamController.liveSyncPosition}},{key:"subtitleTracks",get:function(){var t=this.subtitleTrackController;return t?t.subtitleTracks:[]}},{key:"subtitleTrack",get:function(){var t=this.subtitleTrackController;return t?t.subtitleTrack:-1},set:function(t){var e=this.subtitleTrackController;e&&(e.subtitleTrack=t)}},{key:"subtitleDisplay",get:function(){var t=this.subtitleTrackController;return!!t&&t.subtitleDisplay},set:function(t){var e=this.subtitleTrackController;e&&(e.subtitleDisplay=t)}}]),t}();e.default=Fi},function(t,e,i){function n(t){function e(n){if(i[n])return i[n].exports;var r=i[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var i={};e.m=t,e.c=i,e.i=function(t){return t},e.d=function(t,i,n){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,"a",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/",e.oe=function(t){throw console.error(t),t};var n=e(e.s=ENTRY_MODULE);return n.default||n}function r(t){return(t+"").replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}function a(t){var e=[],i=t.toString(),n=i.match(/^function\s?\(\w+,\s*\w+,\s*(\w+)\)/);if(!n)return e;for(var a,o=n[1],s=new RegExp("(\\\\n|\\W)"+r(o)+"\\((/\\*.*?\\*/)?s?.*?([\\.|\\-|\\w|/|@]+).*?\\)","g");a=s.exec(i);)e.push(a[3]);return e}function o(t,e){for(var i=[e],n=[],r={};i.length;){var o=i.pop();if(!r[o]&&t[o]){r[o]=!0,n.push(o);var s=a(t[o]);i=i.concat(s)}}return n}t.exports=function(t,e){e=e||{};var r=i.m,a=e.all?Object.keys(r):o(r,t),s="("+n.toString().replace("ENTRY_MODULE",JSON.stringify(t))+")({"+a.map(function(t){return JSON.stringify(t)+": "+r[t].toString()}).join(",")+"})(self);",l=new window.Blob([s],{type:"text/javascript"});if(e.bare)return l;var u=window.URL||window.webkitURL||window.mozURL||window.msURL,c=u.createObjectURL(l),d=new window.Worker(c);return d.objectURL=c,d}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(7),r=i(1),a=i(0),o=i(5),s=i.n(o),l=function(t){var e=new s.a;e.trigger=function(t){for(var i=arguments.length,n=Array(i>1?i-1:0),r=1;r1?i-1:0),r=1;r\n

<%=message%>

\n"},function(t,e,i){var n=i(188);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,"[data-no-op]{position:absolute;height:100%;width:100%;text-align:center}[data-no-op] p[data-no-op-msg]{position:absolute;text-align:center;font-size:25px;left:0;right:0;color:#fff;padding:10px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);max-height:100%;overflow:auto}[data-no-op] canvas[data-no-op-canvas]{background-color:#777;height:100%;width:100%}",""])},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(190),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(36),f=n(h),p=i(4),g=n(p),y=i(8),m=n(y),v=i(191),b=n(v);i(192);var _=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i));return n.template=(0,m.default)(b.default),n.showTimeout=null,n.listenTo(n.container,g.default.CONTAINER_STATE_BUFFERING,n.onBuffering),n.listenTo(n.container,g.default.CONTAINER_STATE_BUFFERFULL,n.onBufferFull),n.listenTo(n.container,g.default.CONTAINER_STOP,n.onStop),n.listenTo(n.container,g.default.CONTAINER_ENDED,n.onStop),n.listenTo(n.container,g.default.CONTAINER_ERROR,n.onStop),n.render(),n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"spinner"}},{key:"attributes",get:function(){return{"data-spinner":"",class:"spinner-three-bounce"}}}]),e.prototype.onBuffering=function(){this.show()},e.prototype.onBufferFull=function(){this.hide()},e.prototype.onStop=function(){this.hide()},e.prototype.show=function(){var t=this;null===this.showTimeout&&(this.showTimeout=setTimeout(function(){return t.$el.show()},300))},e.prototype.hide=function(){null!==this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.$el.hide()},e.prototype.render=function(){return this.$el.html(this.template()),this.container.$el.append(this.$el),this.$el.hide(),this.container.buffering&&this.onBuffering(),this},e}(f.default);e.default=_,t.exports=e.default},function(t,e){t.exports="

\n"},function(t,e,i){var n=i(193);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,".spinner-three-bounce[data-spinner]{position:absolute;margin:0 auto;width:70px;text-align:center;z-index:999;left:0;right:0;margin-left:auto;margin-right:auto;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.spinner-three-bounce[data-spinner]>div{width:18px;height:18px;background-color:#fff;border-radius:100%;display:inline-block;-webkit-animation:bouncedelay 1.4s infinite ease-in-out;animation:bouncedelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.spinner-three-bounce[data-spinner] [data-bounce1]{-webkit-animation-delay:-.32s;animation-delay:-.32s}.spinner-three-bounce[data-spinner] [data-bounce2]{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes bouncedelay{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes bouncedelay{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}",""])},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(195),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(37),f=n(h),p=i(4),g=n(p),y=i(6),m=n(y),v=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i));return n.setInitialAttrs(),n.reportInterval=n.options.reportInterval||5e3,n.state="IDLE",n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"stats"}}]),e.prototype.bindEvents=function(){this.listenTo(this.container.playback,g.default.PLAYBACK_PLAY,this.onPlay),this.listenTo(this.container,g.default.CONTAINER_STOP,this.onStop),this.listenTo(this.container,g.default.CONTAINER_ENDED,this.onStop),this.listenTo(this.container,g.default.CONTAINER_DESTROYED,this.onStop),this.listenTo(this.container,g.default.CONTAINER_STATE_BUFFERING,this.onBuffering),this.listenTo(this.container,g.default.CONTAINER_STATE_BUFFERFULL,this.onBufferFull),this.listenTo(this.container,g.default.CONTAINER_STATS_ADD,this.onStatsAdd),this.listenTo(this.container,g.default.CONTAINER_BITRATE,this.onStatsAdd),this.listenTo(this.container.playback,g.default.PLAYBACK_STATS_ADD,this.onStatsAdd)},e.prototype.setInitialAttrs=function(){this.firstPlay=!0,this.startupTime=0,this.rebufferingTime=0,this.watchingTime=0,this.rebuffers=0,this.externalMetrics={}},e.prototype.onPlay=function(){this.state="PLAYING",this.watchingTimeInit=Date.now(),this.intervalId||(this.intervalId=setInterval(this.report.bind(this),this.reportInterval))},e.prototype.onStop=function(){clearInterval(this.intervalId),this.report(),this.intervalId=void 0,this.state="STOPPED"},e.prototype.onBuffering=function(){this.firstPlay?this.startupTimeInit=Date.now():this.rebufferingTimeInit=Date.now(),this.state="BUFFERING",this.rebuffers++},e.prototype.onBufferFull=function(){this.firstPlay&&this.startupTimeInit?(this.firstPlay=!1,this.startupTime=Date.now()-this.startupTimeInit,this.watchingTimeInit=Date.now()):this.rebufferingTimeInit&&(this.rebufferingTime+=this.getRebufferingTime()),this.rebufferingTimeInit=void 0,this.state="PLAYING"},e.prototype.getRebufferingTime=function(){return Date.now()-this.rebufferingTimeInit},e.prototype.getWatchingTime=function(){return Date.now()-this.watchingTimeInit-this.rebufferingTime},e.prototype.isRebuffering=function(){return!!this.rebufferingTimeInit},e.prototype.onStatsAdd=function(t){m.default.extend(this.externalMetrics,t)},e.prototype.getStats=function(){var t={startupTime:this.startupTime,rebuffers:this.rebuffers,rebufferingTime:this.isRebuffering()?this.rebufferingTime+this.getRebufferingTime():this.rebufferingTime,watchingTime:this.isRebuffering()?this.getWatchingTime()-this.getRebufferingTime():this.getWatchingTime()};return m.default.extend(t,this.externalMetrics),t},e.prototype.report=function(){this.container.statsReport(this.getStats())},e}(f.default);e.default=v,t.exports=e.default},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(197),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(36),f=n(h),p=i(4),g=n(p),y=i(8),m=n(y),v=i(198),b=n(v);i(199);var _=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i));return n.configure(),n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"watermark"}},{key:"template",get:function(){return(0,m.default)(b.default)}}]),e.prototype.bindEvents=function(){this.listenTo(this.container,g.default.CONTAINER_PLAY,this.onPlay),this.listenTo(this.container,g.default.CONTAINER_STOP,this.onStop),this.listenTo(this.container,g.default.CONTAINER_OPTIONS_CHANGE,this.configure)},e.prototype.configure=function(){this.position=this.options.position||"bottom-right",this.options.watermark?(this.imageUrl=this.options.watermark,this.imageLink=this.options.watermarkLink,this.render()):this.$el.remove()},e.prototype.onPlay=function(){this.hidden||this.$el.show()},e.prototype.onStop=function(){this.$el.hide()},e.prototype.render=function(){this.$el.hide();var t={position:this.position,imageUrl:this.imageUrl,imageLink:this.imageLink};return this.$el.html(this.template(t)),this.container.$el.append(this.$el),this},e}(f.default);e.default=_,t.exports=e.default},function(t,e){t.exports="
>\n<% if(typeof imageLink !== 'undefined') { %>\n\">\n<% } %>\n\">\n<% if(typeof imageLink !== 'undefined') { %>\n\n<% } %>\n
\n"},function(t,e,i){var n=i(200);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,"[data-watermark]{position:absolute;min-width:70px;max-width:200px;width:12%;text-align:center;z-index:10}[data-watermark] a{outline:none;cursor:pointer}[data-watermark] img{max-width:100%}[data-watermark-bottom-left]{bottom:10px;left:10px}[data-watermark-bottom-right]{bottom:10px;right:42px}[data-watermark-top-left]{top:10px;left:10px}[data-watermark-top-right]{top:10px;right:37px}",""])},function(t,e,i){"use strict";(function(n){function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var a=i(0),o=r(a),s=i(1),l=r(s),u=i(3),c=r(u),d=i(2),h=r(d),f=i(36),p=r(f),g=i(4),y=r(g),m=i(8),v=r(m),b=i(9),_=r(b),E=i(202),T=r(E),A=i(58),S=r(A);i(203);var L=function(t){function e(i){(0,o.default)(this,e);var r=(0,l.default)(this,t.call(this,i));return r.hasStartedPlaying=!1,r.playRequested=!1,r.render(),n.nextTick(function(){return r.update()}),r}return(0,h.default)(e,t),(0,c.default)(e,[{key:"name",get:function(){return"poster"}},{key:"template",get:function(){return(0,v.default)(T.default)}},{key:"shouldRender",get:function(){var t=!(!this.options.poster||!this.options.poster.showForNoOp);return"html_img"!==this.container.playback.name&&(this.container.playback.getPlaybackType()!==_.default.NO_OP||t)}},{key:"attributes",get:function(){return{class:"player-poster","data-poster":""}}},{key:"events",get:function(){return{click:"clicked"}}},{key:"showOnVideoEnd",get:function(){return!this.options.poster||this.options.poster.showOnVideoEnd||void 0===this.options.poster.showOnVideoEnd}}]),e.prototype.bindEvents=function(){this.listenTo(this.container,y.default.CONTAINER_STOP,this.onStop),this.listenTo(this.container,y.default.CONTAINER_PLAY,this.onPlay),this.listenTo(this.container,y.default.CONTAINER_STATE_BUFFERING,this.update),this.listenTo(this.container,y.default.CONTAINER_STATE_BUFFERFULL,this.update),this.listenTo(this.container,y.default.CONTAINER_OPTIONS_CHANGE,this.render),this.showOnVideoEnd&&this.listenTo(this.container,y.default.CONTAINER_ENDED,this.onStop)},e.prototype.stopListening=function(){t.prototype.stopListening.call(this)},e.prototype.onPlay=function(){this.hasStartedPlaying=!0,this.update()},e.prototype.onStop=function(){this.hasStartedPlaying=!1,this.playRequested=!1,this.update()},e.prototype.showPlayButton=function(t){!t||this.options.chromeless&&!this.options.allowUserInteraction?(this.$playButton.hide(),this.$el.removeClass("clickable")):(this.$playButton.show(),this.$el.addClass("clickable"))},e.prototype.clicked=function(){return this.options.chromeless&&!this.options.allowUserInteraction||(this.playRequested=!0,this.update(),this.container.play()),!1},e.prototype.shouldHideOnPlay=function(){return!this.container.playback.isAudioOnly},e.prototype.update=function(){if(this.shouldRender){var t=!this.playRequested&&!this.hasStartedPlaying&&!this.container.buffering;this.showPlayButton(t),this.hasStartedPlaying?(this.container.enableMediaControl(),this.shouldHideOnPlay()&&this.$el.hide()):(this.container.disableMediaControl(),this.$el.show())}},e.prototype.render=function(){if(this.shouldRender){this.$el.html(this.template());if(this.options.poster&&void 0===this.options.poster.custom){var t=this.options.poster.url||this.options.poster;this.$el.css({"background-image":"url("+t+")"})}else this.options.poster&&this.$el.css({background:this.options.poster.custom});this.container.$el.append(this.el),this.$playWrapper=this.$el.find(".play-wrapper"),this.$playWrapper.append(S.default),this.$playButton=this.$playWrapper.find("svg"),this.$playButton.addClass("poster-icon"),this.$playButton.attr("data-poster","");var e=this.options.mediacontrol&&this.options.mediacontrol.buttons;return e&&this.$el.find("svg path").css("fill",e),this.options.mediacontrol&&this.options.mediacontrol.buttons&&(e=this.options.mediacontrol.buttons,this.$playButton.css("color",e)),this.update(),this}},e}(p.default);e.default=L,t.exports=e.default}).call(e,i(57))},function(t,e){t.exports='
\n'},function(t,e,i){var n=i(204);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,".player-poster[data-poster]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;height:100%;width:100%;z-index:998;top:0;left:0;background-color:#000;background-size:cover;background-repeat:no-repeat;background-position:50% 50%}.player-poster[data-poster].clickable{cursor:pointer}.player-poster[data-poster]:hover .play-wrapper[data-poster]{opacity:1}.player-poster[data-poster] .play-wrapper[data-poster]{width:100%;height:25%;margin:0 auto;opacity:.75;transition:opacity .1s ease}.player-poster[data-poster] .play-wrapper[data-poster] svg{height:100%}.player-poster[data-poster] .play-wrapper[data-poster] svg path{fill:#fff}",""])},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(206),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(37),f=n(h),p=i(4),g=n(p),y=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i));return n.container.options.gaAccount&&(n.account=n.container.options.gaAccount,n.trackerName=n.container.options.gaTrackerName?n.container.options.gaTrackerName+".":"Clappr.",n.domainName=n.container.options.gaDomainName,n.currentHDState=void 0,n.embedScript()),n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"google_analytics"}}]),e.prototype.embedScript=function(){var t=this;if(window._gat)this.addEventListeners();else{var e=document.createElement("script");e.setAttribute("type","text/javascript"),e.setAttribute("async","async"),e.setAttribute("src","//www.google-analytics.com/ga.js"),e.onload=function(){return t.addEventListeners()},document.body.appendChild(e)}},e.prototype.addEventListeners=function(){var t=this;this.container&&(this.listenTo(this.container,g.default.CONTAINER_READY,this.onReady),this.listenTo(this.container,g.default.CONTAINER_PLAY,this.onPlay),this.listenTo(this.container,g.default.CONTAINER_STOP,this.onStop),this.listenTo(this.container,g.default.CONTAINER_PAUSE,this.onPause),this.listenTo(this.container,g.default.CONTAINER_ENDED,this.onEnded),this.listenTo(this.container,g.default.CONTAINER_STATE_BUFFERING,this.onBuffering),this.listenTo(this.container,g.default.CONTAINER_STATE_BUFFERFULL,this.onBufferFull),this.listenTo(this.container,g.default.CONTAINER_ERROR,this.onError),this.listenTo(this.container,g.default.CONTAINER_PLAYBACKSTATE,this.onPlaybackChanged),this.listenTo(this.container,g.default.CONTAINER_VOLUME,function(e){return t.onVolumeChanged(e)}),this.listenTo(this.container,g.default.CONTAINER_SEEK,function(e){return t.onSeek(e)}),this.listenTo(this.container,g.default.CONTAINER_FULL_SCREEN,this.onFullscreen),this.listenTo(this.container,g.default.CONTAINER_HIGHDEFINITIONUPDATE,this.onHD),this.listenTo(this.container,g.default.CONTAINER_PLAYBACKDVRSTATECHANGED,this.onDVR)),_gaq.push([this.trackerName+"_setAccount",this.account]),this.domainName&&_gaq.push([this.trackerName+"_setDomainName",this.domainName])},e.prototype.onReady=function(){this.push(["Video","Playback",this.container.playback.name])},e.prototype.onPlay=function(){this.push(["Video","Play",this.container.playback.src])},e.prototype.onStop=function(){this.push(["Video","Stop",this.container.playback.src])},e.prototype.onEnded=function(){this.push(["Video","Ended",this.container.playback.src])},e.prototype.onBuffering=function(){this.push(["Video","Buffering",this.container.playback.src])},e.prototype.onBufferFull=function(){this.push(["Video","Bufferfull",this.container.playback.src])},e.prototype.onError=function(){this.push(["Video","Error",this.container.playback.src])},e.prototype.onHD=function(t){var e=t?"ON":"OFF";e!==this.currentHDState&&(this.currentHDState=e,this.push(["Video","HD - "+e,this.container.playback.src]))},e.prototype.onPlaybackChanged=function(t){null!==t.type&&this.push(["Video","Playback Type - "+t.type,this.container.playback.src])},e.prototype.onDVR=function(t){var e=t?"ON":"OFF";this.push(["Interaction","DVR - "+e,this.container.playback.src])},e.prototype.onPause=function(){this.push(["Video","Pause",this.container.playback.src])},e.prototype.onSeek=function(){this.push(["Video","Seek",this.container.playback.src])},e.prototype.onVolumeChanged=function(){this.push(["Interaction","Volume",this.container.playback.src])},e.prototype.onFullscreen=function(){this.push(["Interaction","Fullscreen",this.container.playback.src])},e.prototype.push=function(t){var e=[this.trackerName+"_trackEvent"].concat(t);_gaq.push(e)},e}(f.default);e.default=y,t.exports=e.default},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(208),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(37),f=n(h),p=i(4),g=n(p),y=i(9),m=n(y),v=function(t){function e(i){return(0,a.default)(this,e),(0,s.default)(this,t.call(this,i))}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"click_to_pause"}}]),e.prototype.bindEvents=function(){this.listenTo(this.container,g.default.CONTAINER_CLICK,this.click),this.listenTo(this.container,g.default.CONTAINER_SETTINGSUPDATE,this.settingsUpdate)},e.prototype.click=function(){(this.container.getPlaybackType()!==m.default.LIVE||this.container.isDvrEnabled())&&(this.container.isPlaying()?this.container.pause():this.container.play())},e.prototype.settingsUpdate=function(){var t=this.container.getPlaybackType()!==m.default.LIVE||this.container.isDvrEnabled();if(t!==this.pointerEnabled){var e=t?"addClass":"removeClass";this.container.$el[e]("pointer-enabled"),this.pointerEnabled=t}},e}(f.default);e.default=v,t.exports=e.default},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(210),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(38),f=n(h),p=i(8),g=n(p),y=i(9),m=n(y),v=i(4),b=n(v),_=i(211),E=n(_);i(212);var T=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i));return n.settingsUpdate(),n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"template",get:function(){return(0,g.default)(E.default)}},{key:"name",get:function(){return"dvr_controls"}},{key:"events",get:function(){return{"click .live-button":"click"}}},{key:"attributes",get:function(){return{class:"dvr-controls","data-dvr-controls":""}}}]),e.prototype.bindEvents=function(){this.listenTo(this.core.mediaControl,b.default.MEDIACONTROL_CONTAINERCHANGED,this.containerChanged),this.listenTo(this.core.mediaControl,b.default.MEDIACONTROL_RENDERED,this.settingsUpdate),this.listenTo(this.core,b.default.CORE_OPTIONS_CHANGE,this.render),this.core.getCurrentContainer()&&(this.listenToOnce(this.core.getCurrentContainer(),b.default.CONTAINER_TIMEUPDATE,this.render),this.listenTo(this.core.getCurrentContainer(),b.default.CONTAINER_PLAYBACKDVRSTATECHANGED,this.dvrChanged))},e.prototype.containerChanged=function(){this.stopListening(),this.bindEvents()},e.prototype.dvrChanged=function(t){this.core.getPlaybackType()===m.default.LIVE&&(this.settingsUpdate(),this.core.mediaControl.$el.addClass("live"),t?(this.core.mediaControl.$el.addClass("dvr"),this.core.mediaControl.$el.find(".media-control-indicator[data-position], .media-control-indicator[data-duration]").hide()):this.core.mediaControl.$el.removeClass("dvr"))},e.prototype.click=function(){var t=this.core.mediaControl,e=t.container;e.isPlaying()||e.play(),t.$el.hasClass("dvr")&&e.seek(e.getDuration())},e.prototype.settingsUpdate=function(){var t=this;this.stopListening(),this.core.mediaControl.$el.removeClass("live"),this.shouldRender()&&(this.render(),this.$el.click(function(){return t.click()})),this.bindEvents()},e.prototype.shouldRender=function(){return(void 0===this.core.options.useDvrControls||!!this.core.options.useDvrControls)&&this.core.getPlaybackType()===m.default.LIVE},e.prototype.render=function(){return this.$el.html(this.template({live:this.core.i18n.t("live"),backToLive:this.core.i18n.t("back_to_live")})),this.shouldRender()&&(this.core.mediaControl.$el.addClass("live"),this.core.mediaControl.$(".media-control-left-panel[data-media-control]").append(this.$el)),this},e}(f.default);e.default=T,t.exports=e.default},function(t,e){t.exports='
<%= live %>
\n\n'},function(t,e,i){var n=i(213);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,'.dvr-controls[data-dvr-controls]{display:inline-block;float:left;color:#fff;line-height:32px;font-size:10px;font-weight:700;margin-left:6px}.dvr-controls[data-dvr-controls] .live-info{cursor:default;font-family:Roboto,Open Sans,Arial,sans-serif;text-transform:uppercase}.dvr-controls[data-dvr-controls] .live-info:before{content:"";display:inline-block;position:relative;width:7px;height:7px;border-radius:3.5px;margin-right:3.5px;background-color:#ff0101}.dvr-controls[data-dvr-controls] .live-info.disabled{opacity:.3}.dvr-controls[data-dvr-controls] .live-info.disabled:before{background-color:#fff}.dvr-controls[data-dvr-controls] .live-button{cursor:pointer;outline:none;display:none;border:0;color:#fff;background-color:transparent;height:32px;padding:0;opacity:.7;font-family:Roboto,Open Sans,Arial,sans-serif;text-transform:uppercase;transition:all .1s ease}.dvr-controls[data-dvr-controls] .live-button:before{content:"";display:inline-block;position:relative;width:7px;height:7px;border-radius:3.5px;margin-right:3.5px;background-color:#fff}.dvr-controls[data-dvr-controls] .live-button:hover{opacity:1;text-shadow:hsla(0,0%,100%,.75) 0 0 5px}.dvr .dvr-controls[data-dvr-controls] .live-info{display:none}.dvr .dvr-controls[data-dvr-controls] .live-button{display:block}.dvr.media-control.live[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar]{background-color:#005aff}.media-control.live[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar]{background-color:#ff0101}',""])},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(215),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(38),f=n(h),p=i(8),g=n(p),y=i(4),m=n(y),v=i(216),b=n(v),_=i(217),E=n(_);i(218);var T=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i)),r=i.options.closedCaptionsConfig;return n._title=r&&r.title?r.title:null,n._ariaLabel=r&&r.ariaLabel?r.ariaLabel:"cc-button",n._labelCb=r&&r.labelCallback&&"function"==typeof r.labelCallback?r.labelCallback:function(t){return t.name},n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"closed_captions"}},{key:"template",get:function(){return(0,g.default)(E.default)}},{key:"events",get:function(){return{"click [data-cc-button]":"toggleContextMenu","click [data-cc-select]":"onTrackSelect"}}},{key:"attributes",get:function(){return{class:"cc-controls","data-cc-controls":""}}}]),e.prototype.bindEvents=function(){this.listenTo(this.core.mediaControl,m.default.MEDIACONTROL_CONTAINERCHANGED,this.containerChanged),this.listenTo(this.core.mediaControl,m.default.MEDIACONTROL_RENDERED,this.render),this.listenTo(this.core.mediaControl,m.default.MEDIACONTROL_HIDE,this.hideContextMenu),this.container=this.core.getCurrentContainer(),this.container&&(this.listenTo(this.container,m.default.CONTAINER_SUBTITLE_AVAILABLE,this.onSubtitleAvailable),this.listenTo(this.container,m.default.CONTAINER_SUBTITLE_CHANGED,this.onSubtitleChanged),this.listenTo(this.container,m.default.CONTAINER_STOP,this.onContainerStop))},e.prototype.onContainerStop=function(){this.ccAvailable(!1)},e.prototype.containerChanged=function(){this.ccAvailable(!1),this.stopListening(),this.bindEvents()},e.prototype.onSubtitleAvailable=function(){this.renderCcButton(),this.ccAvailable(!0)},e.prototype.onSubtitleChanged=function(t){this.setCurrentContextMenuElement(t.id)},e.prototype.onTrackSelect=function(t){var e=parseInt(t.target.dataset.ccSelect,10);return this.container.closedCaptionsTrackId=e,this.hideContextMenu(),t.stopPropagation(),!1},e.prototype.ccAvailable=function(t){var e=t?"addClass":"removeClass";this.$el[e]("available")},e.prototype.toggleContextMenu=function(){this.$el.find("ul").toggle()},e.prototype.hideContextMenu=function(){this.$el.find("ul").hide()},e.prototype.contextMenuElement=function(t){return this.$el.find("ul a"+(isNaN(t)?"":'[data-cc-select="'+t+'"]')).parent()},e.prototype.setCurrentContextMenuElement=function(t){if(this._trackId!==t){this.contextMenuElement().removeClass("current"),this.contextMenuElement(t).addClass("current");var e=t>-1?"addClass":"removeClass";this.$ccButton[e]("enabled"),this._trackId=t}},e.prototype.renderCcButton=function(){for(var t=this.container?this.container.closedCaptionsTracks:[],e=0;e'},function(t,e){t.exports='\n\n'},function(t,e,i){var n=i(219);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,".cc-controls[data-cc-controls]{float:right;position:relative;display:none}.cc-controls[data-cc-controls].available{display:block}.cc-controls[data-cc-controls] .cc-button{padding:6px!important}.cc-controls[data-cc-controls] .cc-button.enabled{display:block;opacity:1}.cc-controls[data-cc-controls] .cc-button.enabled:hover{opacity:1;text-shadow:none}.cc-controls[data-cc-controls]>ul{list-style-type:none;position:absolute;bottom:25px;border:1px solid #000;display:none;background-color:#e6e6e6}.cc-controls[data-cc-controls] li{font-size:10px}.cc-controls[data-cc-controls] li[data-title]{background-color:#c3c2c2;padding:5px}.cc-controls[data-cc-controls] li a{color:#444;padding:2px 10px;display:block;text-decoration:none}.cc-controls[data-cc-controls] li a:hover{background-color:#555;color:#fff}.cc-controls[data-cc-controls] li a:hover a{color:#fff;text-decoration:none}.cc-controls[data-cc-controls] li.current a{color:red}",""])},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(221),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(30),f=n(h),p=i(4),g=n(p),y=i(6),m=n(y),v=i(58),b=n(v),_=i(76),E=n(_),T=(0,m.default)('link[rel="shortcut icon"]'),A=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i));return n._container=null,n.configure(),n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"favicon"}},{key:"oldIcon",get:function(){return T}}]),e.prototype.configure=function(){this.core.options.changeFavicon?this.enabled||(this.stopListening(this.core,g.default.CORE_OPTIONS_CHANGE),this.enable()):this.enabled&&(this.disable(),this.listenTo(this.core,g.default.CORE_OPTIONS_CHANGE,this.configure))},e.prototype.bindEvents=function(){this.listenTo(this.core,g.default.CORE_OPTIONS_CHANGE,this.configure),this.listenTo(this.core.mediaControl,g.default.MEDIACONTROL_CONTAINERCHANGED,this.containerChanged),this.core.mediaControl.container&&this.containerChanged()},e.prototype.containerChanged=function(){this._container&&this.stopListening(this._container),this._container=this.core.mediaControl.container,this.listenTo(this._container,g.default.CONTAINER_PLAY,this.setPlayIcon),this.listenTo(this._container,g.default.CONTAINER_PAUSE,this.setPauseIcon),this.listenTo(this._container,g.default.CONTAINER_STOP,this.resetIcon),this.listenTo(this._container,g.default.CONTAINER_ENDED,this.resetIcon),this.listenTo(this._container,g.default.CONTAINER_ERROR,this.resetIcon),this.resetIcon()},e.prototype.disable=function(){t.prototype.disable.call(this),this.resetIcon()},e.prototype.destroy=function(){t.prototype.destroy.call(this),this.resetIcon()},e.prototype.createIcon=function(t){var e=(0,m.default)("");e[0].width=16,e[0].height=16;var i=e[0].getContext("2d");i.fillStyle="#000";var n=(0,m.default)(t).find("path").attr("d"),r=new Path2D(n);i.fill(r);var a=(0,m.default)('');return a.attr("href",e[0].toDataURL("image/png")),a},e.prototype.setPlayIcon=function(){this.playIcon||(this.playIcon=this.createIcon(b.default)),this.changeIcon(this.playIcon)},e.prototype.setPauseIcon=function(){this.pauseIcon||(this.pauseIcon=this.createIcon(E.default)),this.changeIcon(this.pauseIcon)},e.prototype.resetIcon=function(){(0,m.default)('link[rel="shortcut icon"]').remove(),(0,m.default)("head").append(this.oldIcon)},e.prototype.changeIcon=function(t){t&&((0,m.default)('link[rel="shortcut icon"]').remove(),(0,m.default)("head").append(t))},e}(f.default);e.default=A,t.exports=e.default},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(223),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(5),f=i(38),p=n(f),g=i(8),y=n(g),m=i(4),v=n(m),b=i(9),_=n(b),E=i(224),T=n(E);i(225);var A=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i));return n.hoveringOverSeekBar=!1,n.hoverPosition=null,n.duration=null,n.actualLiveTime=!!n.mediaControl.options.actualLiveTime,n.actualLiveTime&&(n.mediaControl.options.actualLiveServerTime?n.actualLiveServerTimeDiff=(new Date).getTime()-new Date(n.mediaControl.options.actualLiveServerTime).getTime():n.actualLiveServerTimeDiff=0),n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"seek_time"}},{key:"template",get:function(){return(0,y.default)(T.default)}},{key:"attributes",get:function(){return{class:"seek-time","data-seek-time":""}}},{key:"mediaControl",get:function(){return this.core.mediaControl}},{key:"mediaControlContainer",get:function(){return this.mediaControl.container}},{key:"isLiveStreamWithDvr",get:function(){return this.mediaControlContainer&&this.mediaControlContainer.getPlaybackType()===_.default.LIVE&&this.mediaControlContainer.isDvrEnabled()}},{key:"durationShown",get:function(){return this.isLiveStreamWithDvr&&!this.useActualLiveTime}},{key:"useActualLiveTime",get:function(){return this.actualLiveTime&&this.isLiveStreamWithDvr}}]),e.prototype.bindEvents=function(){this.listenTo(this.mediaControl,v.default.MEDIACONTROL_RENDERED,this.render),this.listenTo(this.mediaControl,v.default.MEDIACONTROL_MOUSEMOVE_SEEKBAR,this.showTime),this.listenTo(this.mediaControl,v.default.MEDIACONTROL_MOUSELEAVE_SEEKBAR,this.hideTime),this.listenTo(this.mediaControl,v.default.MEDIACONTROL_CONTAINERCHANGED,this.onContainerChanged),this.mediaControlContainer&&(this.listenTo(this.mediaControlContainer,v.default.CONTAINER_PLAYBACKDVRSTATECHANGED,this.update),this.listenTo(this.mediaControlContainer,v.default.CONTAINER_TIMEUPDATE,this.updateDuration))},e.prototype.onContainerChanged=function(){this.stopListening(),this.bindEvents()},e.prototype.updateDuration=function(t){this.duration=t.total,this.update()},e.prototype.showTime=function(t){this.hoveringOverSeekBar=!0,this.calculateHoverPosition(t),this.update()},e.prototype.hideTime=function(){this.hoveringOverSeekBar=!1,this.update()},e.prototype.calculateHoverPosition=function(t){var e=t.pageX-this.mediaControl.$seekBarContainer.offset().left;this.hoverPosition=Math.min(1,Math.max(e/this.mediaControl.$seekBarContainer.width(),0))},e.prototype.getSeekTime=function(){var t=void 0,e=void 0;if(this.useActualLiveTime){var i=new Date((new Date).getTime()-this.actualLiveServerTimeDiff);e=(new Date(i)-i.setHours(0,0,0,0))/1e3,t=e-this.duration+this.hoverPosition*this.duration,t<0&&(t+=86400)}else t=this.hoverPosition*this.duration;return{seekTime:t,secondsSinceMidnight:e}},e.prototype.update=function(){if(this.rendered)if(this.shouldBeVisible()){var t=this.getSeekTime(),e=(0,h.formatTime)(t.seekTime,this.useActualLiveTime);if(e!==this.displayedSeekTime&&(this.$seekTimeEl.text(e),this.displayedSeekTime=e),this.durationShown){this.$durationEl.show();var i=(0,h.formatTime)(this.actualLiveTime?t.secondsSinceMidnight:this.duration,this.actualLiveTime);i!==this.displayedDuration&&(this.$durationEl.text(i),this.displayedDuration=i)}else this.$durationEl.hide();this.$el.show();var n=this.mediaControl.$seekBarContainer.width(),r=this.$el.width(),a=this.hoverPosition*n;a-=r/2,a=Math.max(0,Math.min(a,n-r)),this.$el.css("left",a)}else this.$el.hide(),this.$el.css("left","-100%")},e.prototype.shouldBeVisible=function(){return this.mediaControlContainer&&this.mediaControlContainer.settings.seekEnabled&&this.hoveringOverSeekBar&&null!==this.hoverPosition&&null!==this.duration},e.prototype.render=function(){this.rendered=!0,this.displayedDuration=null,this.displayedSeekTime=null,this.$el.html(this.template()),this.$el.hide(),this.mediaControl.$el.append(this.el),this.$seekTimeEl=this.$el.find("[data-seek-time]"),this.$durationEl=this.$el.find("[data-duration]"),this.$durationEl.hide(),this.update()},e}(p.default);e.default=A,t.exports=e.default},function(t,e){t.exports="\n\n"},function(t,e,i){var n=i(226);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,'.seek-time[data-seek-time]{position:absolute;white-space:nowrap;height:20px;line-height:20px;font-size:0;left:-100%;bottom:55px;background-color:rgba(2,2,2,.5);z-index:9999;transition:opacity .1s ease}.seek-time[data-seek-time].hidden[data-seek-time]{opacity:0}.seek-time[data-seek-time] [data-seek-time]{display:inline-block;color:#fff;font-size:10px;padding-left:7px;padding-right:7px;vertical-align:top}.seek-time[data-seek-time] [data-duration]{display:inline-block;color:hsla(0,0%,100%,.5);font-size:10px;padding-right:7px;vertical-align:top}.seek-time[data-seek-time] [data-duration]:before{content:"|";margin-right:7px}',""])},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(3),s=n(o),l=i(1),u=n(l),c=i(2),d=n(c),h=i(30),f=n(h),p=i(4),g=n(p),y=function(t){function e(){return(0,a.default)(this,e),(0,u.default)(this,t.apply(this,arguments))}return(0,d.default)(e,t),e.prototype.bindEvents=function(){this.listenTo(this.core,g.default.CORE_CONTAINERS_CREATED,this.onContainersCreated)},e.prototype.onContainersCreated=function(){var t=this.core.containers.filter(function(t){return"no_op"!==t.playback.name})[0]||this.core.containers[0];t&&this.core.containers.forEach(function(e){e!==t&&e.destroy()})},(0,s.default)(e,[{key:"name",get:function(){return"sources"}}]),e}(f.default);e.default=y,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(3),s=n(o),l=i(1),u=n(l),c=i(2),d=n(c),h=i(4),f=n(h),p=i(30),g=n(p),y=i(5),m=function(t){function e(){return(0,a.default)(this,e),(0,u.default)(this,t.apply(this,arguments))}return(0,d.default)(e,t),e.prototype.bindEvents=function(){this.listenTo(this.core.mediaControl,f.default.MEDIACONTROL_CONTAINERCHANGED,this.containerChanged);var t=this.core.getCurrentContainer();t&&(this.listenTo(t,f.default.CONTAINER_ENDED,this.ended),this.listenTo(t,f.default.CONTAINER_STOP,this.ended))},e.prototype.containerChanged=function(){this.stopListening(),this.bindEvents()},e.prototype.ended=function(){(void 0===this.core.options.exitFullscreenOnEnd||this.core.options.exitFullscreenOnEnd)&&y.Fullscreen.isFullscreen()&&this.core.toggleFullscreen()},(0,s.default)(e,[{key:"name",get:function(){return"end_video"}}]),e}(g.default);e.default=m,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(31),a=n(r),o=i(0),s=n(o),l=i(1),u=n(l),c=i(3),d=n(c),h=i(2),f=n(h),p=i(5),g=i(6),y=n(g),m=i(30),v=n(m),b=function(t){function e(i){(0,s.default)(this,e);var n=(0,u.default)(this,t.call(this,i));return n._initializeMessages(),n}return(0,f.default)(e,t),(0,d.default)(e,[{key:"name",get:function(){return"strings"}}]),e.prototype.t=function(t){var e=this._language();return(e&&this._messages[e]||this._messages.en)[t]||t},e.prototype._language=function(){return this.core.options.language||(0,p.getBrowserLanguage)()},e.prototype._initializeMessages=function(){var t={en:{live:"live",back_to_live:"back to live",disabled:"Disabled",playback_not_supported:"Your browser does not support the playback of this video. Please try using a different browser."},pt:{live:"ao vivo",back_to_live:"voltar para o ao vivo",disabled:"Desativado",playback_not_supported:"Seu navegador não supporta a reprodução deste video. Por favor, tente usar um navegador diferente."},es:{live:"vivo",back_to_live:"volver en vivo",disabled:"Discapacitado",playback_not_supported:"Su navegador no soporta la reproducción de un video. Por favor, trate de usar un navegador diferente."},ru:{live:"прямой эфир",back_to_live:"к прямому эфиру",disabled:"Отключено",playback_not_supported:"Ваш браузер не поддерживает воспроизведение этого видео. Пожалуйста, попробуйте другой браузер."},fr:{live:"en direct",disabled:"Désactivé",back_to_live:"retour au direct",playback_not_supported:"Votre navigateur ne supporte pas la lecture de cette vidéo. Merci de tenter sur un autre navigateur."},tr:{live:"canlı",back_to_live:"canlı yayına dön",disabled:"Engelli",playback_not_supported:"Tarayıcınız bu videoyu oynatma desteğine sahip değil. Lütfen farklı bir tarayıcı ile deneyin."},et:{live:"Otseülekanne",back_to_live:"Tagasi otseülekande juurde",disabled:"Keelatud",playback_not_supported:"Teie brauser ei toeta selle video taasesitust. Proovige kasutada muud brauserit."}},e=this.core.options.strings||{};this._messages=(0,a.default)(t).reduce(function(i,n){return i[n]=y.default.extend({},t[n],e[n]),i},{}),this._messages["pt-BR"]=this._messages.pt,this._messages["en-US"]=this._messages.en,this._messages["es-419"]=this._messages.es,this._messages["fr-FR"]=this._messages.fr,this._messages["tr-TR"]=this._messages.tr,this._messages["et-EE"]=this._messages.et},e}(v.default);e.default=b,t.exports=e.default}])}); +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Clappr=e():t.Clappr=e()}(this,function(){return function(t){function e(n){if(i[n])return i[n].exports;var r=i[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var i={};return e.m=t,e.c=i,e.d=function(t,i,n){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,"a",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=88)}([function(t,e,i){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,i){"use strict";e.__esModule=!0;var n=i(33),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":(0,r.default)(e))&&"function"!=typeof e?t:e}},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var r=i(120),a=n(r),o=i(71),s=n(o),l=i(33),u=n(l);e.default=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":(0,u.default)(e)));t.prototype=(0,s.default)(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(a.default?(0,a.default)(t,e):t.__proto__=e)}},function(t,e,i){"use strict";e.__esModule=!0;var n=i(70),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=function(){function t(t,e){for(var i=0;i0&&(o+=a+":",r<1&&(o+="00:")),(r&&r>0||e)&&(o+=("0"+r).slice(-2)+":"),o+=("0"+n).slice(-2)+":",o+=("0"+i).slice(-2),o.trim()}function s(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"t",e=0,i=O.params[t]||O.hashParams[t]||"",n=i.match(/[0-9]+[hms]+/g)||[];return n.length>0?function(){var t={h:3600,m:60,s:1};n.forEach(function(i){if(i){var n=i[i.length-1],r=parseInt(i.slice(0,i.length-1),10);e+=r*t[n]}})}():i&&(e=parseInt(i,10)),e}function l(t){return P[t]||(P[t]=0),t+ ++P[t]}function u(t){return t-parseFloat(t)+1>=0}function c(){var t=document.getElementsByTagName("script");return t.length?t[t.length-1].src:""}function d(){return window.navigator&&window.navigator.language}function h(){return window.performance&&window.performance.now?performance.now():Date.now()}function f(t,e){var i=t.indexOf(e);i>=0&&t.splice(i,1)}Object.defineProperty(e,"__esModule",{value:!0}),e.DomRecycler=e.cancelAnimationFrame=e.requestAnimationFrame=e.QueryString=e.Config=e.Fullscreen=void 0;var p=i(3),g=n(p),y=i(0),m=n(y),v=i(1),b=n(v),_=i(2),E=n(_),T=i(70),A=n(T),S=i(126),L=n(S);e.extend=a,e.formatTime=o,e.seekStringToSeconds=s,e.uniqueId=l,e.isNumber=u,e.currentScriptUrl=c,e.getBrowserLanguage=d,e.now=h,e.removeArrayItem=f,i(129);var R=i(13),k=n(R),w=i(6),C=n(w),I=e.Fullscreen={isFullscreen:function(){return!!(document.webkitFullscreenElement||document.webkitIsFullScreen||document.mozFullScreen||document.msFullscreenElement)},requestFullscreen:function(t){t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?t.webkitRequestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.msRequestFullscreen?t.msRequestFullscreen():t.querySelector&&t.querySelector("video")&&t.querySelector("video").webkitEnterFullScreen?t.querySelector("video").webkitEnterFullScreen():t.webkitEnterFullScreen&&t.webkitEnterFullScreen()},cancelFullscreen:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;t.exitFullscreen?t.exitFullscreen():t.webkitCancelFullScreen?t.webkitCancelFullScreen():t.webkitExitFullscreen?t.webkitExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.msExitFullscreen&&t.msExitFullscreen()},fullscreenEnabled:function(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled)}},D=e.Config=function(){function t(){(0,m.default)(this,t)}return t._defaultConfig=function(){return{volume:{value:100,parse:parseInt}}},t._defaultValueFor=function(t){try{return this._defaultConfig()[t].parse(this._defaultConfig()[t].value)}catch(t){return}},t._createKeyspace=function(t){return"clappr."+document.domain+"."+t},t.restore=function(t){return k.default.hasLocalstorage&&localStorage[this._createKeyspace(t)]?this._defaultConfig()[t].parse(localStorage[this._createKeyspace(t)]):this._defaultValueFor(t)},t.persist=function(t,e){if(k.default.hasLocalstorage)try{return localStorage[this._createKeyspace(t)]=e,!0}catch(t){return!1}},t}(),O=e.QueryString=function(){function t(){(0,m.default)(this,t)}return t.parse=function(t){for(var e=void 0,i=/\+/g,n=/([^&=]+)=?([^&]*)/g,r=function(t){return decodeURIComponent(t.replace(i," "))},a={};e=n.exec(t);)a[r(e[1]).toLowerCase()]=r(e[2]);return a},(0,g.default)(t,null,[{key:"params",get:function(){var t=window.location.search.substring(1);return t!==this.query&&(this._urlParams=this.parse(t),this.query=t),this._urlParams}},{key:"hashParams",get:function(){var t=window.location.hash.substring(1);return t!==this.hash&&(this._hashParams=this.parse(t),this.hash=t),this._hashParams}}]),t}(),P={},x=e.requestAnimationFrame=(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}).bind(window),N=e.cancelAnimationFrame=(window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.clearTimeout).bind(window),M=[],F=e.DomRecycler=function(){function t(){(0,m.default)(this,t)}return t.configure=function(t){this.options=C.default.extend(this.options,t)},t.create=function(t){return this.options.recycleVideo&&"video"===t&&M.length>0?M.shift():(0,C.default)("<"+t+">")},t.garbage=function(t){this.options.recycleVideo&&"VIDEO"===t[0].tagName.toUpperCase()&&(t.children().remove(),M.push(t))},t}();F.options={recycleVideo:!1},e.default={Config:D,Fullscreen:I,QueryString:O,DomRecycler:F,extend:a,formatTime:o,seekStringToSeconds:s,uniqueId:l,currentScriptUrl:c,isNumber:u,requestAnimationFrame:x,cancelAnimationFrame:N,getBrowserLanguage:d,now:h,removeArrayItem:f}},function(t,e){var i=function(){function t(t){return null==t?String(t):W[q.call(t)]||"object"}function e(e){return"function"==t(e)}function i(t){return null!=t&&t==t.window}function n(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function r(e){return"object"==t(e)}function a(t){return r(t)&&!i(t)&&Object.getPrototypeOf(t)==Object.prototype}function o(t){var e=!!t&&"length"in t&&t.length,n=S.type(t);return"function"!=n&&!i(t)&&("array"==n||0===e||"number"==typeof e&&e>0&&e-1 in t)}function s(t){return I.call(t,function(t){return null!=t})}function l(t){return t.length>0?S.fn.concat.apply([],t):t}function u(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function c(t){return t in x?x[t]:x[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function d(t,e){return"number"!=typeof e||N[u(t)]?e:e+"px"}function h(t){var e,i;return P[t]||(e=O.createElement(t),O.body.appendChild(e),i=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==i&&(i="block"),P[t]=i),P[t]}function f(t){return"children"in t?D.call(t.children):S.map(t.childNodes,function(t){if(1==t.nodeType)return t})}function p(t,e){var i,n=t?t.length:0;for(i=0;i]*>/,F=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,B=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,U=/^(?:body|html)$/i,G=/([A-Z])/g,K=["val","css","html","text","data","width","height","offset"],V=["after","prepend","before","append"],j=O.createElement("table"),Y=O.createElement("tr"),H={tr:O.createElement("tbody"),tbody:j,thead:j,tfoot:j,td:Y,th:Y,"*":O.createElement("div")},$=/complete|loaded|interactive/,z=/^[\w-]*$/,W={},q=W.toString,X={},Z=O.createElement("div"),J={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},Q=Array.isArray||function(t){return t instanceof Array};return X.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var i=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(i)return i.call(t,e);var n,r=t.parentNode,a=!r;return a&&(r=Z).appendChild(t),n=~X.qsa(r,e).indexOf(t),a&&Z.removeChild(t),n},R=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},k=function(t){return I.call(t,function(e,i){return t.indexOf(e)==i})},X.fragment=function(t,e,i){var n,r,o;return F.test(t)&&(n=S(O.createElement(RegExp.$1))),n||(t.replace&&(t=t.replace(B,"<$1>")),e===T&&(e=M.test(t)&&RegExp.$1),e in H||(e="*"),o=H[e],o.innerHTML=""+t,n=S.each(D.call(o.childNodes),function(){o.removeChild(this)})),a(i)&&(r=S(n),S.each(i,function(t,e){K.indexOf(t)>-1?r[t](e):r.attr(t,e)})),n},X.Z=function(t,e){return new p(t,e)},X.isZ=function(t){return t instanceof X.Z},X.init=function(t,i){var n;if(!t)return X.Z();if("string"==typeof t)if(t=t.trim(),"<"==t[0]&&M.test(t))n=X.fragment(t,RegExp.$1,i),t=null;else{if(i!==T)return S(i).find(t);n=X.qsa(O,t)}else{if(e(t))return S(O).ready(t);if(X.isZ(t))return t;if(Q(t))n=s(t);else if(r(t))n=[t],t=null;else if(M.test(t))n=X.fragment(t.trim(),RegExp.$1,i),t=null;else{if(i!==T)return S(i).find(t);n=X.qsa(O,t)}}return X.Z(n,t)},S=function(t,e){return X.init(t,e)},S.extend=function(t){var e,i=D.call(arguments,1);return"boolean"==typeof t&&(e=t,t=i.shift()),i.forEach(function(i){g(t,i,e)}),t},X.qsa=function(t,e){var i,n="#"==e[0],r=!n&&"."==e[0],a=n||r?e.slice(1):e,o=z.test(a);return t.getElementById&&o&&n?(i=t.getElementById(a))?[i]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:D.call(o&&!n&&t.getElementsByClassName?r?t.getElementsByClassName(a):t.getElementsByTagName(e):t.querySelectorAll(e))},S.contains=O.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},S.type=t,S.isFunction=e,S.isWindow=i,S.isArray=Q,S.isPlainObject=a,S.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},S.isNumeric=function(t){var e=Number(t),i=typeof t;return null!=t&&"boolean"!=i&&("string"!=i||t.length)&&!isNaN(e)&&isFinite(e)||!1},S.inArray=function(t,e,i){return w.indexOf.call(e,t,i)},S.camelCase=R,S.trim=function(t){return null==t?"":String.prototype.trim.call(t)},S.uuid=0,S.support={},S.expr={},S.noop=function(){},S.map=function(t,e){var i,n,r,a=[];if(o(t))for(n=0;n=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return w.every.call(this,function(e,i){return!1!==t.call(e,i,e)}),this},filter:function(t){return e(t)?this.not(this.not(t)):S(I.call(this,function(e){return X.matches(e,t)}))},add:function(t,e){return S(k(this.concat(S(t,e))))},is:function(t){return this.length>0&&X.matches(this[0],t)},not:function(t){var i=[];if(e(t)&&t.call!==T)this.each(function(e){t.call(this,e)||i.push(this)});else{var n="string"==typeof t?this.filter(t):o(t)&&e(t.item)?D.call(t):S(t);this.forEach(function(t){n.indexOf(t)<0&&i.push(t)})}return S(i)},has:function(t){return this.filter(function(){return r(t)?S.contains(this,t):S(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!r(t)?t:S(t)},last:function(){var t=this[this.length-1];return t&&!r(t)?t:S(t)},find:function(t){var e=this;return t?"object"==typeof t?S(t).filter(function(){var t=this;return w.some.call(e,function(e){return S.contains(e,t)})}):1==this.length?S(X.qsa(this[0],t)):this.map(function(){return X.qsa(this,t)}):S()},closest:function(t,e){var i=[],r="object"==typeof t&&S(t);return this.each(function(a,o){for(;o&&!(r?r.indexOf(o)>=0:X.matches(o,t));)o=o!==e&&!n(o)&&o.parentNode;o&&i.indexOf(o)<0&&i.push(o)}),S(i)},parents:function(t){for(var e=[],i=this;i.length>0;)i=S.map(i,function(t){if((t=t.parentNode)&&!n(t)&&e.indexOf(t)<0)return e.push(t),t});return y(e,t)},parent:function(t){return y(k(this.pluck("parentNode")),t)},children:function(t){return y(this.map(function(){return f(this)}),t)},contents:function(){return this.map(function(){return this.contentDocument||D.call(this.childNodes)})},siblings:function(t){return y(this.map(function(t,e){return I.call(f(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return S.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=h(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var i=e(t);if(this[0]&&!i)var n=S(t).get(0),r=n.parentNode||this.length>1;return this.each(function(e){S(this).wrapAll(i?t.call(this,e):r?n.cloneNode(!0):n)})},wrapAll:function(t){if(this[0]){S(this[0]).before(t=S(t));for(var e;(e=t.children()).length;)t=e.first();S(t).append(this)}return this},wrapInner:function(t){var i=e(t);return this.each(function(e){var n=S(this),r=n.contents(),a=i?t.call(this,e):t;r.length?r.wrapAll(a):n.append(a)})},unwrap:function(){return this.parent().each(function(){S(this).replaceWith(S(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(t){return this.each(function(){var e=S(this);(t===T?"none"==e.css("display"):t)?e.show():e.hide()})},prev:function(t){return S(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return S(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var i=this.innerHTML;S(this).empty().append(m(this,t,e,i))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var i=m(this,t,e,this.textContent);this.textContent=null==i?"":""+i}):0 in this?this.pluck("textContent").join(""):null},attr:function(t,e){var i;return"string"!=typeof t||1 in arguments?this.each(function(i){if(1===this.nodeType)if(r(t))for(A in t)v(this,A,t[A]);else v(this,t,m(this,e,i,this.getAttribute(t)))}):0 in this&&1==this[0].nodeType&&null!=(i=this[0].getAttribute(t))?i:T},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){v(this,t)},this)})},prop:function(t,e){return t=J[t]||t,1 in arguments?this.each(function(i){this[t]=m(this,e,i,this[t])}):this[0]&&this[0][t]},removeProp:function(t){return t=J[t]||t,this.each(function(){delete this[t]})},data:function(t,e){var i="data-"+t.replace(G,"-$1").toLowerCase(),n=1 in arguments?this.attr(i,e):this.attr(i);return null!==n?_(n):T},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each(function(e){this.value=m(this,t,e,this.value)})):this[0]&&(this[0].multiple?S(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(t){if(t)return this.each(function(e){var i=S(this),n=m(this,t,e,i.offset()),r=i.offsetParent().offset(),a={top:n.top-r.top,left:n.left-r.left};"static"==i.css("position")&&(a.position="relative"),i.css(a)});if(!this.length)return null;if(O.documentElement!==this[0]&&!S.contains(O.documentElement,this[0]))return{top:0,left:0};var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(e,i){if(arguments.length<2){var n=this[0];if("string"==typeof e){if(!n)return;return n.style[R(e)]||getComputedStyle(n,"").getPropertyValue(e)}if(Q(e)){if(!n)return;var r={},a=getComputedStyle(n,"");return S.each(e,function(t,e){r[e]=n.style[R(e)]||a.getPropertyValue(e)}),r}}var o="";if("string"==t(e))i||0===i?o=u(e)+":"+d(e,i):this.each(function(){this.style.removeProperty(u(e))});else for(A in e)e[A]||0===e[A]?o+=u(A)+":"+d(A,e[A])+";":this.each(function(){this.style.removeProperty(u(A))});return this.each(function(){this.style.cssText+=";"+o})},index:function(t){return t?this.indexOf(S(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&w.some.call(this,function(t){return this.test(b(t))},c(t))},addClass:function(t){return t?this.each(function(e){if("className"in this){L=[];var i=b(this);m(this,t,e,i).split(/\s+/g).forEach(function(t){S(this).hasClass(t)||L.push(t)},this),L.length&&b(this,i+(i?" ":"")+L.join(" "))}}):this},removeClass:function(t){return this.each(function(e){if("className"in this){if(t===T)return b(this,"");L=b(this),m(this,t,e,L).split(/\s+/g).forEach(function(t){L=L.replace(c(t)," ")}),b(this,L.trim())}})},toggleClass:function(t,e){return t?this.each(function(i){var n=S(this);m(this,t,i,b(this)).split(/\s+/g).forEach(function(t){(e===T?!n.hasClass(t):e)?n.addClass(t):n.removeClass(t)})}):this},scrollTop:function(t){if(this.length){var e="scrollTop"in this[0];return t===T?e?this[0].scrollTop:this[0].pageYOffset:this.each(e?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var e="scrollLeft"in this[0];return t===T?e?this[0].scrollLeft:this[0].pageXOffset:this.each(e?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),i=this.offset(),n=U.test(e[0].nodeName)?{top:0,left:0}:e.offset();return i.top-=parseFloat(S(t).css("margin-top"))||0,i.left-=parseFloat(S(t).css("margin-left"))||0,n.top+=parseFloat(S(e[0]).css("border-top-width"))||0,n.left+=parseFloat(S(e[0]).css("border-left-width"))||0,{top:i.top-n.top,left:i.left-n.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||O.body;t&&!U.test(t.nodeName)&&"static"==S(t).css("position");)t=t.offsetParent;return t})}},S.fn.detach=S.fn.remove,["width","height"].forEach(function(t){var e=t.replace(/./,function(t){return t[0].toUpperCase()});S.fn[t]=function(r){var a,o=this[0];return r===T?i(o)?o["inner"+e]:n(o)?o.documentElement["scroll"+e]:(a=this.offset())&&a[t]:this.each(function(e){o=S(this),o.css(t,m(this,r,e,o[t]()))})}}),V.forEach(function(e,i){var n=i%2;S.fn[e]=function(){var e,r,a=S.map(arguments,function(i){var n=[];return e=t(i),"array"==e?(i.forEach(function(t){return t.nodeType!==T?n.push(t):S.zepto.isZ(t)?n=n.concat(t.get()):void(n=n.concat(X.fragment(t)))}),n):"object"==e||null==i?i:X.fragment(i)}),o=this.length>1;return a.length<1?this:this.each(function(t,e){r=n?e:e.parentNode,e=0==i?e.nextSibling:1==i?e.firstChild:2==i?e:null;var s=S.contains(O.documentElement,r);a.forEach(function(t){if(o)t=t.cloneNode(!0);else if(!r)return S(t).remove();r.insertBefore(t,e),s&&E(t,function(t){if(!(null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src)){var e=t.ownerDocument?t.ownerDocument.defaultView:window;e.eval.call(e,t.innerHTML)}})})})},S.fn[n?e+"To":"insert"+(i?"Before":"After")]=function(t){return S(t)[e](this),this}}),X.Z.prototype=p.prototype=S.fn,X.uniq=k,X.deserializeValue=_,S.zepto=X,S}();window.Zepto=i,void 0===window.$&&(window.$=i),function(t){function e(e,i,n){var r=t.Event(i);return t(e).trigger(r,n),!r.isDefaultPrevented()}function i(t,i,n,r){if(t.global)return e(i||b,n,r)}function n(e){e.global&&0==t.active++&&i(e,null,"ajaxStart")}function r(e){e.global&&!--t.active&&i(e,null,"ajaxStop")}function a(t,e){var n=e.context;if(!1===e.beforeSend.call(n,t,e)||!1===i(e,n,"ajaxBeforeSend",[t,e]))return!1;i(e,n,"ajaxSend",[t,e])}function o(t,e,n,r){var a=n.context;n.success.call(a,t,"success",e),r&&r.resolveWith(a,[t,"success",e]),i(n,a,"ajaxSuccess",[e,n,t]),l("success",e,n)}function s(t,e,n,r,a){var o=r.context;r.error.call(o,n,e,t),a&&a.rejectWith(o,[n,e,t]),i(r,o,"ajaxError",[n,r,t||e]),l(e,n,r)}function l(t,e,n){var a=n.context;n.complete.call(a,e,t),i(n,a,"ajaxComplete",[e,n]),r(n)}function u(t,e,i){if(i.dataFilter==c)return t;var n=i.context;return i.dataFilter.call(n,t,e)}function c(){}function d(t){return t&&(t=t.split(";",2)[0]),t&&(t==S?"html":t==A?"json":E.test(t)?"script":T.test(t)&&"xml")||"text"}function h(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function f(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()&&"jsonp"!=e.dataType||(e.url=h(e.url,e.data),e.data=void 0)}function p(e,i,n,r){return t.isFunction(i)&&(r=n,n=i,i=void 0),t.isFunction(n)||(r=n,n=void 0),{url:e,data:i,success:n,dataType:r}}function g(e,i,n,r){var a,o=t.isArray(i),s=t.isPlainObject(i);t.each(i,function(i,l){a=t.type(l),r&&(i=n?r:r+"["+(s||"object"==a||"array"==a?i:"")+"]"),!r&&o?e.add(l.name,l.value):"array"==a||!n&&"object"==a?g(e,l,n,i):e.add(i,l)})}var y,m,v=+new Date,b=window.document,_=/)<[^<]*)*<\/script>/gi,E=/^(?:text|application)\/javascript/i,T=/^(?:text|application)\/xml/i,A="application/json",S="text/html",L=/^\s*$/,R=b.createElement("a");R.href=window.location.href,t.active=0,t.ajaxJSONP=function(e,i){if(!("type"in e))return t.ajax(e);var n,r,l=e.jsonpCallback,u=(t.isFunction(l)?l():l)||"Zepto"+v++,c=b.createElement("script"),d=window[u],h=function(e){t(c).triggerHandler("error",e||"abort")},f={abort:h};return i&&i.promise(f),t(c).on("load error",function(a,l){clearTimeout(r),t(c).off().remove(),"error"!=a.type&&n?o(n[0],f,e,i):s(null,l||"error",f,e,i),window[u]=d,n&&t.isFunction(d)&&d(n[0]),d=n=void 0}),!1===a(f,e)?(h("abort"),f):(window[u]=function(){n=arguments},c.src=e.url.replace(/\?(.+)=\?/,"?$1="+u),b.head.appendChild(c),e.timeout>0&&(r=setTimeout(function(){h("timeout")},e.timeout)),f)},t.ajaxSettings={type:"GET",beforeSend:c,success:c,error:c,complete:c,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:A,xml:"application/xml, text/xml",html:S,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0,dataFilter:c},t.ajax=function(e){var i,r,l=t.extend({},e||{}),p=t.Deferred&&t.Deferred();for(y in t.ajaxSettings)void 0===l[y]&&(l[y]=t.ajaxSettings[y]);n(l),l.crossDomain||(i=b.createElement("a"),i.href=l.url,i.href=i.href,l.crossDomain=R.protocol+"//"+R.host!=i.protocol+"//"+i.host),l.url||(l.url=window.location.toString()),(r=l.url.indexOf("#"))>-1&&(l.url=l.url.slice(0,r)),f(l);var g=l.dataType,v=/\?.+=\?/.test(l.url);if(v&&(g="jsonp"),!1!==l.cache&&(e&&!0===e.cache||"script"!=g&&"jsonp"!=g)||(l.url=h(l.url,"_="+Date.now())),"jsonp"==g)return v||(l.url=h(l.url,l.jsonp?l.jsonp+"=?":!1===l.jsonp?"":"callback=?")),t.ajaxJSONP(l,p);var _,E=l.accepts[g],T={},A=function(t,e){T[t.toLowerCase()]=[t,e]},S=/^([\w-]+:)\/\//.test(l.url)?RegExp.$1:window.location.protocol,k=l.xhr(),w=k.setRequestHeader;if(p&&p.promise(k),l.crossDomain||A("X-Requested-With","XMLHttpRequest"),A("Accept",E||"*/*"),(E=l.mimeType||E)&&(E.indexOf(",")>-1&&(E=E.split(",",2)[0]),k.overrideMimeType&&k.overrideMimeType(E)),(l.contentType||!1!==l.contentType&&l.data&&"GET"!=l.type.toUpperCase())&&A("Content-Type",l.contentType||"application/x-www-form-urlencoded"),l.headers)for(m in l.headers)A(m,l.headers[m]);if(k.setRequestHeader=A,k.onreadystatechange=function(){if(4==k.readyState){k.onreadystatechange=c,clearTimeout(_);var e,i=!1;if(k.status>=200&&k.status<300||304==k.status||0==k.status&&"file:"==S){if(g=g||d(l.mimeType||k.getResponseHeader("content-type")),"arraybuffer"==k.responseType||"blob"==k.responseType)e=k.response;else{e=k.responseText;try{e=u(e,g,l),"script"==g?(0,eval)(e):"xml"==g?e=k.responseXML:"json"==g&&(e=L.test(e)?null:t.parseJSON(e))}catch(t){i=t}if(i)return s(i,"parsererror",k,l,p)}o(e,k,l,p)}else s(k.statusText||null,k.status?"error":"abort",k,l,p)}},!1===a(k,l))return k.abort(),s(null,"abort",k,l,p),k;var C=!("async"in l)||l.async;if(k.open(l.type,l.url,C,l.username,l.password),l.xhrFields)for(m in l.xhrFields)k[m]=l.xhrFields[m];for(m in T)w.apply(k,T[m]);return l.timeout>0&&(_=setTimeout(function(){k.onreadystatechange=c,k.abort(),s(null,"timeout",k,l,p)},l.timeout)),k.send(l.data?l.data:null),k},t.get=function(){return t.ajax(p.apply(null,arguments))},t.post=function(){var e=p.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=p.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,i,n){if(!this.length)return this;var r,a=this,o=e.split(/\s/),s=p(e,i,n),l=s.success;return o.length>1&&(s.url=o[0],r=o[1]),s.success=function(e){a.html(r?t("
").html(e.replace(_,"")).find(r):e),l&&l.apply(a,arguments)},t.ajax(s),this};var k=encodeURIComponent;t.param=function(e,i){var n=[];return n.add=function(e,i){t.isFunction(i)&&(i=i()),null==i&&(i=""),this.push(k(e)+"="+k(i))},g(n,e,i),n.join("&").replace(/%20/g,"+")}}(i),function(t){t.Callbacks=function(e){e=t.extend({},e);var i,n,r,a,o,s,l=[],u=!e.once&&[],c=function(t){for(i=e.memory&&t,n=!0,s=a||0,a=0,o=l.length,r=!0;l&&s-1;)l.splice(n,1),r&&(n<=o&&--o,n<=s&&--s)}),this},has:function(e){return!(!l||!(e?t.inArray(e,l)>-1:l.length))},empty:function(){return o=l.length=0,this},disable:function(){return l=u=i=void 0,this},disabled:function(){return!l},lock:function(){return u=void 0,i||d.disable(),this},locked:function(){return!u},fireWith:function(t,e){return!l||n&&!u||(e=e||[],e=[t,e.slice?e.slice():e],r?u.push(e):c(e)),this},fire:function(){return d.fireWith(this,arguments)},fired:function(){return!!n}};return d}}(i),function(t){function e(i){var n=[["resolve","done",t.Callbacks({once:1,memory:1}),"resolved"],["reject","fail",t.Callbacks({once:1,memory:1}),"rejected"],["notify","progress",t.Callbacks({memory:1})]],r="pending",a={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},then:function(){var i=arguments;return e(function(e){t.each(n,function(n,r){var s=t.isFunction(i[n])&&i[n];o[r[1]](function(){var i=s&&s.apply(this,arguments);if(i&&t.isFunction(i.promise))i.promise().done(e.resolve).fail(e.reject).progress(e.notify);else{var n=this===a?e.promise():this,o=s?[i]:arguments;e[r[0]+"With"](n,o)}})}),i=null}).promise()},promise:function(e){return null!=e?t.extend(e,a):a}},o={};return t.each(n,function(t,e){var i=e[2],s=e[3];a[e[1]]=i.add,s&&i.add(function(){r=s},n[1^t][2].disable,n[2][2].lock),o[e[0]]=function(){return o[e[0]+"With"](this===o?a:this,arguments),this},o[e[0]+"With"]=i.fireWith}),a.promise(o),i&&i.call(o,o),o}var i=Array.prototype.slice;t.when=function(n){var r,a,o,s=i.call(arguments),l=s.length,u=0,c=1!==l||n&&t.isFunction(n.promise)?l:0,d=1===c?n:e(),h=function(t,e,n){return function(a){e[t]=this,n[t]=arguments.length>1?i.call(arguments):a,n===r?d.notifyWith(e,n):--c||d.resolveWith(e,n)}};if(l>1)for(r=new Array(l),a=new Array(l),o=new Array(l);u-1)return this},has:function(t,e,i){if(n.qsa(this,i).length)return this}},s=new RegExp("(.*):(\\w+)(?:\\(([^)]+)\\))?$\\s*"),l=/^\s*>/,u="Zepto"+ +new Date;n.qsa=function(e,a){return i(a,function(i,o,s){try{var c;!i&&o?i="*":l.test(i)&&(c=t(e).addClass(u),i="."+u+" "+i);var d=r(e,i)}catch(t){throw console.error("error performing selector: %o",a),t}finally{c&&c.removeClass(u)}return o?n.uniq(t.map(d,function(t,e){return o.call(t,e,d,s)})):d})},n.matches=function(t,e){return i(e,function(e,i,n){return(!e||a(t,e))&&(!i||i.call(t,null,n)===t)})}}(i),t.exports=i},function(t,e){function i(t,e){var i=t[1]||"",r=t[3];if(!r)return i;if(e&&"function"==typeof btoa){var a=n(r);return[i].concat(r.sources.map(function(t){return"/*# sourceURL="+r.sourceRoot+t+" */"})).concat([a]).join("\n")}return[i].join("\n")}function n(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=i(e,t);return e[2]?"@media "+e[2]+"{"+n+"}":n}).join("")},e.i=function(t,i){"string"==typeof t&&(t=[[null,t,""]]);for(var n={},r=0;r/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},r=/(.)^/,a={"'":"'","\\":"\\","\r":"r","\n":"n","\t":"t","\u2028":"u2028","\u2029":"u2029"},o=/\\|'|\r|\n|\t|\u2028|\u2029/g,s={"&":"&","<":"<",">":">",'"':""","'":"'"},l=new RegExp("[&<>\"']","g"),u=function(t){return null===t?"":(""+t).replace(l,function(t){return s[t]})},c=0,d=function(t,e){var i,s=new RegExp([(n.escape||r).source,(n.interpolate||r).source,(n.evaluate||r).source].join("|")+"|$","g"),l=0,d="__p+='";t.replace(s,function(e,i,n,r,s){return d+=t.slice(l,s).replace(o,function(t){return"\\"+a[t]}),i&&(d+="'+\n((__t=("+i+"))==null?'':escapeExpr(__t))+\n'"),n&&(d+="'+\n((__t=("+n+"))==null?'':__t)+\n'"),r&&(d+="';\n"+r+"\n__p+='"),l=s+e.length,e}),d+="';\n",n.variable||(d="with(obj||{}){\n"+d+"}\n"),d="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+d+"return __p;\n//# sourceURL=/microtemplates/source["+c+++"]";try{i=new Function(n.variable||"obj","escapeExpr",d)}catch(t){throw t.source=d,t}if(e)return i(e,u);var h=function(t){return i.call(this,t,u)};return h.source="function("+(n.variable||"obj")+"){\n"+d+"}",h};d.settings=n,e.default=d,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(5),f=i(21),p=n(f),g=function(t){function e(i,n){(0,a.default)(this,e);var r=(0,s.default)(this,t.call(this,i));return r.settings={},r._i18n=n,r}return(0,d.default)(e,t),(0,u.default)(e,[{key:"isAudioOnly",get:function(){return!1}},{key:"ended",get:function(){return!1}},{key:"i18n",get:function(){return this._i18n}},{key:"buffering",get:function(){return!1}}]),e.prototype.consent=function(){},e.prototype.play=function(){},e.prototype.pause=function(){},e.prototype.stop=function(){},e.prototype.seek=function(t){},e.prototype.seekPercentage=function(t){},e.prototype.getStartTimeOffset=function(){return 0},e.prototype.getDuration=function(){return 0},e.prototype.isPlaying=function(){return!1},e.prototype.getPlaybackType=function(){return e.NO_OP},e.prototype.isHighDefinitionInUse=function(){return!1},e.prototype.volume=function(t){},e.prototype.destroy=function(){this.$el.remove()},(0,u.default)(e,[{key:"isReady",get:function(){return!1}},{key:"hasClosedCaptionsTracks",get:function(){return this.closedCaptionsTracks.length>0}},{key:"closedCaptionsTracks",get:function(){return[]}},{key:"closedCaptionsTrackId",get:function(){return-1},set:function(t){}}]),e}(p.default);e.default=g,g.extend=function(t){return(0,h.extend)(g,t)},g.canPlay=function(t,e){return!1},g.VOD="vod",g.AOD="aod",g.LIVE="live",g.NO_OP="no_op",g.type="playback",t.exports=e.default},function(t,e,i){function n(t,e){for(var i=0;i=0&&b.splice(e,1)}function s(t){var e=document.createElement("style");return t.attrs.type="text/css",u(e,t.attrs),a(t,e),e}function l(t){var e=document.createElement("link");return t.attrs.type="text/css",t.attrs.rel="stylesheet",u(e,t.attrs),a(t,e),e}function u(t,e){Object.keys(e).forEach(function(i){t.setAttribute(i,e[i])})}function c(t,e){var i,n,r,a;if(e.transform&&t.css){if(!(a=e.transform(t.css)))return function(){};t.css=a}if(e.singleton){var u=v++;i=m||(m=s(e)),n=d.bind(null,i,u,!1),r=d.bind(null,i,u,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(i=l(e),n=f.bind(null,i,e),r=function(){o(i),i.href&&URL.revokeObjectURL(i.href)}):(i=s(e),n=h.bind(null,i),r=function(){o(i)});return n(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;n(t=e)}else r()}}function d(t,e,i,n){var r=i?"":n.css;if(t.styleSheet)t.styleSheet.cssText=E(e,r);else{var a=document.createTextNode(r),o=t.childNodes;o[e]&&t.removeChild(o[e]),o.length?t.insertBefore(a,o[e]):t.appendChild(a)}}function h(t,e){var i=e.css,n=e.media;if(n&&t.setAttribute("media",n),t.styleSheet)t.styleSheet.cssText=i;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(i))}}function f(t,e,i){var n=i.css,r=i.sourceMap,a=void 0===e.convertToAbsoluteUrls&&r;(e.convertToAbsoluteUrls||a)&&(n=_(n)),r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var o=new Blob([n],{type:"text/css"}),s=t.href;t.href=URL.createObjectURL(o),s&&URL.revokeObjectURL(s)}var p={},g=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),y=function(t){var e={};return function(i){if(void 0===e[i]){var n=t.call(this,i);if(n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[i]=n}return e[i]}}(function(t){return document.querySelector(t)}),m=null,v=0,b=[],_=i(140);t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");e=e||{},e.attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||(e.singleton=g()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var i=r(t,e);return n(i,e),function(t){for(var a=[],o=0;o0&&void 0!==arguments[0]?arguments[0]:{};(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i));return n._options=i,n.uniqueId=(0,h.uniqueId)("o"),n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"options",get:function(){return this._options}}]),e}(p.default);e.default=g,t.exports=e.default},function(t,e){var i={}.hasOwnProperty;t.exports=function(t,e){return i.call(t,e)}},function(t,e,i){var n=i(15),r=i(11),a=i(46),o=i(22),s=function(t,e,i){var l,u,c,d=t&s.F,h=t&s.G,f=t&s.S,p=t&s.P,g=t&s.B,y=t&s.W,m=h?r:r[e]||(r[e]={}),v=m.prototype,b=h?n:f?n[e]:(n[e]||{}).prototype;h&&(i=e);for(l in i)(u=!d&&b&&void 0!==b[l])&&l in m||(c=u?b[l]:i[l],m[l]=h&&"function"!=typeof b[l]?i[l]:g&&u?a(c,n):y&&b[l]==c?function(t){var e=function(e,i,n){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,i)}return new t(e,i,n)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(c):p&&"function"==typeof c?a(Function.call,c):c,p&&((m.virtual||(m.virtual={}))[l]=c,t&s.R&&v&&!v[l]&&o(v,l,c)))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,t.exports=s},function(t,e,i){t.exports=!i(27)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(6),f=n(h),p=i(5),g=i(17),y=n(g),m=/^(\S+)\s*(.*)$/,v=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i));return n.cid=(0,p.uniqueId)("c"),n._ensureElement(),n.delegateEvents(),n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"tagName",get:function(){return"div"}},{key:"events",get:function(){return{}}},{key:"attributes",get:function(){return{}}}]),e.prototype.$=function(t){return this.$el.find(t)},e.prototype.render=function(){return this},e.prototype.remove=function(){return this.$el.remove(),this.stopListening(),this.undelegateEvents(),this},e.prototype.setElement=function(t,e){return this.$el&&this.undelegateEvents(),this.$el=f.default.zepto.isZ(t)?t:(0,f.default)(t),this.el=this.$el[0],!1!==e&&this.delegateEvents(),this},e.prototype.delegateEvents=function(t){if(!t&&!(t=this.events))return this;this.undelegateEvents();for(var e in t){var i=t[e];if(i&&i.constructor!==Function&&(i=this[t[e]]),i){var n=e.match(m),r=n[1],a=n[2];r+=".delegateEvents"+this.cid,""===a?this.$el.on(r,i.bind(this)):this.$el.on(r,a,i.bind(this))}}return this},e.prototype.undelegateEvents=function(){return this.$el.off(".delegateEvents"+this.cid),this},e.prototype._ensureElement=function(){if(this.el)this.setElement(this.el,!1);else{var t=f.default.extend({},this.attributes);this.id&&(t.id=this.id),this.className&&(t.class=this.className);var e=p.DomRecycler.create(this.tagName).attr(t);this.setElement(e,!1)}},e}(y.default);e.default=v,t.exports=e.default},function(t,e,i){var n=i(16),r=i(28);t.exports=i(20)?function(t,e,i){return n.f(t,e,r(1,i))}:function(t,e,i){return t[e]=i,t}},function(t,e,i){var n=i(26);t.exports=function(t){if(!n(t))throw TypeError(t+" is not an object!");return t}},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(4),s=n(o),l=new s.default,u=function t(){(0,a.default)(this,t)};e.default=u,u.on=function(t,e,i){l.on(t,e,i)},u.once=function(t,e,i){l.once(t,e,i)},u.off=function(t,e,i){l.off(t,e,i)},u.trigger=function(t){for(var e=arguments.length,i=Array(e>1?e-1:0),n=1;n0?n:i)(t)}},function(t,e,i){var n=i(44)("keys"),r=i(32);t.exports=function(t){return n[t]||(n[t]=r(t))}},function(t,e,i){var n=i(15),r=n["__core-js_shared__"]||(n["__core-js_shared__"]={});t.exports=function(t){return r[t]||(r[t]={})}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,i){var n=i(95);t.exports=function(t,e,i){if(n(t),void 0===e)return t;switch(i){case 1:return function(i){return t.call(e,i)};case 2:return function(i,n){return t.call(e,i,n)};case 3:return function(i,n,r){return t.call(e,i,n,r)}}return function(){return t.apply(e,arguments)}}},function(t,e,i){var n=i(26);t.exports=function(t,e){if(!n(t))return t;var i,r;if(e&&"function"==typeof(i=t.toString)&&!n(r=i.call(t)))return r;if("function"==typeof(i=t.valueOf)&&!n(r=i.call(t)))return r;if(!e&&"function"==typeof(i=t.toString)&&!n(r=i.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=!0},function(t,e,i){var n=i(23),r=i(100),a=i(45),o=i(43)("IE_PROTO"),s=function(){},l=function(){var t,e=i(64)("iframe"),n=a.length;for(e.style.display="none",i(101).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write("\n * \n * ```\n * Now, create the player:\n * ```html\n * \n *
\n * \n * \n * ```\n */\n\nvar Player = function (_BaseObject) {\n (0, _inherits3.default)(Player, _BaseObject);\n (0, _createClass3.default)(Player, [{\n key: 'loader',\n set: function set(loader) {\n this._loader = loader;\n },\n get: function get() {\n if (!this._loader) this._loader = new _loader2.default(this.options.plugins || {}, this.options.playerId);\n\n return this._loader;\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n\n }, {\n key: 'ended',\n get: function get() {\n return this.core.mediaControl.container.ended;\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n\n }, {\n key: 'buffering',\n get: function get() {\n return this.core.mediaControl.container.buffering;\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n\n }, {\n key: 'isReady',\n get: function get() {\n return !!this._ready;\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n\n }, {\n key: 'eventsMapping',\n get: function get() {\n return {\n onReady: _events2.default.PLAYER_READY,\n onResize: _events2.default.PLAYER_RESIZE,\n onPlay: _events2.default.PLAYER_PLAY,\n onPause: _events2.default.PLAYER_PAUSE,\n onStop: _events2.default.PLAYER_STOP,\n onEnded: _events2.default.PLAYER_ENDED,\n onSeek: _events2.default.PLAYER_SEEK,\n onError: _events2.default.PLAYER_ERROR,\n onTimeUpdate: _events2.default.PLAYER_TIMEUPDATE,\n onVolumeUpdate: _events2.default.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: _events2.default.PLAYER_SUBTITLE_AVAILABLE\n };\n }\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {String} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload]\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength]\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu]\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n */\n\n }]);\n\n function Player(options) {\n (0, _classCallCheck3.default)(this, Player);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _BaseObject.call(this, options));\n\n var defaultOptions = { playerId: (0, _utils.uniqueId)(''), persistConfig: true, width: 640, height: 360, baseUrl: baseUrl, allowUserInteraction: _browser2.default.isMobile };\n _this._options = _clapprZepto2.default.extend(defaultOptions, options);\n _this.options.sources = _this._normalizeSources(options);\n if (!_this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n _this.options.allowUserInteraction = true;\n }\n if (!_this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n _this.options.disableKeyboardShortcuts = true;\n }\n _this._registerOptionEventListeners();\n _this._coreFactory = new _core_factory2.default(_this);\n _this.playerInfo = _player_info2.default.getInstance(_this.options.playerId);\n _this.playerInfo.currentSize = { width: options.width, height: options.height };\n _this.playerInfo.options = _this.options;\n if (_this.options.parentId) _this.setParentId(_this.options.parentId);else if (_this.options.parent) _this.attachTo(_this.options.parent);\n\n return _this;\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n\n\n Player.prototype.setParentId = function setParentId(parentId) {\n var el = document.querySelector(parentId);\n if (el) this.attachTo(el);\n\n return this;\n };\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n\n\n Player.prototype.attachTo = function attachTo(element) {\n this.options.parentElement = element;\n this.core = this._coreFactory.create();\n this._addEventListeners();\n return this;\n };\n\n Player.prototype._addEventListeners = function _addEventListeners() {\n if (!this.core.isReady) this.listenToOnce(this.core, _events2.default.CORE_READY, this._onReady);else this._onReady();\n\n this.listenTo(this.core.mediaControl, _events2.default.MEDIACONTROL_CONTAINERCHANGED, this._containerChanged);\n this.listenTo(this.core, _events2.default.CORE_FULLSCREEN, this._onFullscreenChange);\n return this;\n };\n\n Player.prototype._addContainerEventListeners = function _addContainerEventListeners() {\n var container = this.core.mediaControl.container;\n if (container) {\n this.listenTo(container, _events2.default.CONTAINER_PLAY, this._onPlay);\n this.listenTo(container, _events2.default.CONTAINER_PAUSE, this._onPause);\n this.listenTo(container, _events2.default.CONTAINER_STOP, this._onStop);\n this.listenTo(container, _events2.default.CONTAINER_ENDED, this._onEnded);\n this.listenTo(container, _events2.default.CONTAINER_SEEK, this._onSeek);\n this.listenTo(container, _events2.default.CONTAINER_ERROR, this._onError);\n this.listenTo(container, _events2.default.CONTAINER_TIMEUPDATE, this._onTimeUpdate);\n this.listenTo(container, _events2.default.CONTAINER_VOLUME, this._onVolumeUpdate);\n this.listenTo(container, _events2.default.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable);\n }\n return this;\n };\n\n Player.prototype._registerOptionEventListeners = function _registerOptionEventListeners() {\n var _this2 = this;\n\n var userEvents = this.options.events || {};\n (0, _keys2.default)(userEvents).forEach(function (userEvent) {\n var eventType = _this2.eventsMapping[userEvent];\n if (eventType) {\n var eventFunction = userEvents[userEvent];\n eventFunction = typeof eventFunction === 'function' && eventFunction;\n eventFunction && _this2.on(eventType, eventFunction);\n }\n });\n return this;\n };\n\n Player.prototype._containerChanged = function _containerChanged() {\n this.stopListening();\n this._addEventListeners();\n };\n\n Player.prototype._onReady = function _onReady() {\n this._ready = true;\n this._addContainerEventListeners();\n this.trigger(_events2.default.PLAYER_READY);\n };\n\n Player.prototype._onFullscreenChange = function _onFullscreenChange(fullscreen) {\n this.trigger(_events2.default.PLAYER_FULLSCREEN, fullscreen);\n };\n\n Player.prototype._onVolumeUpdate = function _onVolumeUpdate(volume) {\n this.trigger(_events2.default.PLAYER_VOLUMEUPDATE, volume);\n };\n\n Player.prototype._onSubtitleAvailable = function _onSubtitleAvailable() {\n this.trigger(_events2.default.PLAYER_SUBTITLE_AVAILABLE);\n };\n\n Player.prototype._onPlay = function _onPlay() {\n this.trigger(_events2.default.PLAYER_PLAY);\n };\n\n Player.prototype._onPause = function _onPause() {\n this.trigger(_events2.default.PLAYER_PAUSE);\n };\n\n Player.prototype._onStop = function _onStop() {\n this.trigger(_events2.default.PLAYER_STOP, this.getCurrentTime());\n };\n\n Player.prototype._onEnded = function _onEnded() {\n this.trigger(_events2.default.PLAYER_ENDED);\n };\n\n Player.prototype._onSeek = function _onSeek(time) {\n this.trigger(_events2.default.PLAYER_SEEK, time);\n };\n\n Player.prototype._onTimeUpdate = function _onTimeUpdate(timeProgress) {\n this.trigger(_events2.default.PLAYER_TIMEUPDATE, timeProgress);\n };\n\n Player.prototype._onError = function _onError(error) {\n this.trigger(_events2.default.PLAYER_ERROR, error);\n };\n\n Player.prototype._normalizeSources = function _normalizeSources(options) {\n var sources = options.sources || (options.source !== undefined ? [options.source] : []);\n return sources.length === 0 ? [{ source: '', mimeType: '' }] : sources;\n };\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n\n\n Player.prototype.resize = function resize(size) {\n this.core.resize(size);\n return this;\n };\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <>, mimeType: <>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n\n\n Player.prototype.load = function load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined) this.configure({ autoPlay: !!autoPlay });\n\n this.core.load(sources, mimeType);\n return this;\n };\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n\n\n Player.prototype.destroy = function destroy() {\n this.core.destroy();\n return this;\n };\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n\n\n Player.prototype.consent = function consent() {\n this.core.getCurrentPlayback().consent();\n return this;\n };\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n\n\n Player.prototype.play = function play() {\n this.core.mediaControl.container.play();\n return this;\n };\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n\n\n Player.prototype.pause = function pause() {\n this.core.mediaControl.container.pause();\n return this;\n };\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n\n\n Player.prototype.stop = function stop() {\n this.core.mediaControl.container.stop();\n return this;\n };\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n\n\n Player.prototype.seek = function seek(time) {\n this.core.mediaControl.container.seek(time);\n return this;\n };\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n\n\n Player.prototype.seekPercentage = function seekPercentage(percentage) {\n this.core.mediaControl.container.seekPercentage(percentage);\n return this;\n };\n\n /**\n * Set the volume for the current video (`source`).\n * @method setVolume\n * @param {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n * @return {Player} itself\n */\n\n\n Player.prototype.setVolume = function setVolume(volume) {\n if (this.core && this.core.mediaControl) this.core.mediaControl.setVolume(volume);\n\n return this;\n };\n\n /**\n * Get the volume for the current video\n * @method getVolume\n * @return {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n */\n\n\n Player.prototype.getVolume = function getVolume() {\n return this.core && this.core.mediaControl ? this.core.mediaControl.volume : 0;\n };\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n\n\n Player.prototype.mute = function mute() {\n this._mutedVolume = this.getVolume();\n this.setVolume(0);\n return this;\n };\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n\n\n Player.prototype.unmute = function unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100);\n this._mutedVolume = null;\n return this;\n };\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n\n\n Player.prototype.isPlaying = function isPlaying() {\n return this.core.mediaControl.container.isPlaying();\n };\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n\n\n Player.prototype.isDvrEnabled = function isDvrEnabled() {\n return this.core.mediaControl.container.isDvrEnabled();\n };\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n\n\n Player.prototype.isDvrInUse = function isDvrInUse() {\n return this.core.mediaControl.container.isDvrInUse();\n };\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n\n\n Player.prototype.configure = function configure(options) {\n this.core.configure(options);\n return this;\n };\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n\n\n Player.prototype.getPlugin = function getPlugin(name) {\n var plugins = this.core.plugins.concat(this.core.mediaControl.container.plugins);\n return plugins.filter(function (plugin) {\n return plugin.name === name;\n })[0];\n };\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n\n\n Player.prototype.getCurrentTime = function getCurrentTime() {\n return this.core.mediaControl.container.getCurrentTime();\n };\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n\n\n Player.prototype.getStartTimeOffset = function getStartTimeOffset() {\n return this.core.mediaControl.container.getStartTimeOffset();\n };\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n\n\n Player.prototype.getDuration = function getDuration() {\n return this.core.mediaControl.container.getDuration();\n };\n\n return Player;\n}(_base_object2.default);\n\nexports.default = Player;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(91);\nmodule.exports = __webpack_require__(11).Object.keys;\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(39)\n , $keys = __webpack_require__(25);\n\n__webpack_require__(62)('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(41);\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(14)\n , toLength = __webpack_require__(61)\n , toIndex = __webpack_require__(94);\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(42)\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(97), __esModule: true };\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(65);\n__webpack_require__(103);\nmodule.exports = __webpack_require__(51).f('iterator');\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(42)\n , defined = __webpack_require__(40);\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(49)\n , descriptor = __webpack_require__(28)\n , setToStringTag = __webpack_require__(50)\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(22)(IteratorPrototype, __webpack_require__(12)('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(16)\n , anObject = __webpack_require__(23)\n , getKeys = __webpack_require__(25);\n\nmodule.exports = __webpack_require__(20) ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(15).document && document.documentElement;\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(18)\n , toObject = __webpack_require__(39)\n , IE_PROTO = __webpack_require__(43)('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(104);\nvar global = __webpack_require__(15)\n , hide = __webpack_require__(22)\n , Iterators = __webpack_require__(29)\n , TO_STRING_TAG = __webpack_require__(12)('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype;\n if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(105)\n , step = __webpack_require__(106)\n , Iterators = __webpack_require__(29)\n , toIObject = __webpack_require__(14);\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(66)(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(){ /* empty */ };\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(108), __esModule: true };\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(109);\n__webpack_require__(115);\n__webpack_require__(116);\n__webpack_require__(117);\nmodule.exports = __webpack_require__(11).Symbol;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(15)\n , has = __webpack_require__(18)\n , DESCRIPTORS = __webpack_require__(20)\n , $export = __webpack_require__(19)\n , redefine = __webpack_require__(67)\n , META = __webpack_require__(110).KEY\n , $fails = __webpack_require__(27)\n , shared = __webpack_require__(44)\n , setToStringTag = __webpack_require__(50)\n , uid = __webpack_require__(32)\n , wks = __webpack_require__(12)\n , wksExt = __webpack_require__(51)\n , wksDefine = __webpack_require__(52)\n , keyOf = __webpack_require__(111)\n , enumKeys = __webpack_require__(112)\n , isArray = __webpack_require__(113)\n , anObject = __webpack_require__(23)\n , toIObject = __webpack_require__(14)\n , toPrimitive = __webpack_require__(47)\n , createDesc = __webpack_require__(28)\n , _create = __webpack_require__(49)\n , gOPNExt = __webpack_require__(114)\n , $GOPD = __webpack_require__(54)\n , $DP = __webpack_require__(16)\n , $keys = __webpack_require__(25)\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __webpack_require__(69).f = gOPNExt.f = $getOwnPropertyNames;\n __webpack_require__(53).f = $propertyIsEnumerable;\n __webpack_require__(68).f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !__webpack_require__(48)){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(22)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar META = __webpack_require__(32)('meta')\n , isObject = __webpack_require__(26)\n , has = __webpack_require__(18)\n , setDesc = __webpack_require__(16).f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !__webpack_require__(27)(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getKeys = __webpack_require__(25)\n , toIObject = __webpack_require__(14);\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// all enumerable object keys, includes symbols\nvar getKeys = __webpack_require__(25)\n , gOPS = __webpack_require__(68)\n , pIE = __webpack_require__(53);\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(41);\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = __webpack_require__(14)\n , gOPN = __webpack_require__(69).f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports) {\n\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(52)('asyncIterator');\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(52)('observable');\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(119);\nvar $Object = __webpack_require__(11).Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(19);\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !__webpack_require__(20), 'Object', {defineProperty: __webpack_require__(16).f});\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(121), __esModule: true };\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(122);\nmodule.exports = __webpack_require__(11).Object.setPrototypeOf;\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = __webpack_require__(19);\n$export($export.S, 'Object', {setPrototypeOf: __webpack_require__(123).set});\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = __webpack_require__(26)\n , anObject = __webpack_require__(23);\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = __webpack_require__(46)(Function.call, __webpack_require__(54).f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(125);\nvar $Object = __webpack_require__(11).Object;\nmodule.exports = function create(P, D){\n return $Object.create(P, D);\n};\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(19)\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: __webpack_require__(49)});\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(127), __esModule: true };\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(128);\nvar $Object = __webpack_require__(11).Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = __webpack_require__(14)\n , $getOwnPropertyDescriptor = __webpack_require__(54).f;\n\n__webpack_require__(62)('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function value(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null) throw new TypeError('\"this\" is null or not defined');\n\n var o = Object(this);\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n var len = o.length >>> 0;\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function') throw new TypeError('predicate must be a function');\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n var thisArg = arguments[1];\n\n // 5. Let k be 0.\n var k = 0;\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n var kValue = o[k];\n if (predicate.call(thisArg, kValue, k, o)) return kValue;\n\n // e. Increase k by 1.\n k++;\n }\n\n // 7. Return undefined.\n return undefined;\n }\n });\n}\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _vendor = __webpack_require__(56);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BOLD = 'font-weight: bold; font-size: 13px;';\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nvar INFO = 'color: #006600;' + BOLD;\nvar DEBUG = 'color: #0000ff;' + BOLD;\nvar WARN = 'color: #ff8000;' + BOLD;\nvar ERROR = 'color: #ff0000;' + BOLD;\n\nvar LEVEL_DEBUG = 0;\nvar LEVEL_INFO = 1;\nvar LEVEL_WARN = 2;\nvar LEVEL_ERROR = 3;\nvar LEVEL_DISABLED = LEVEL_ERROR;\n\nvar COLORS = [DEBUG, INFO, WARN, ERROR, ERROR];\nvar DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled'];\n\nvar Log = function () {\n function Log() {\n var _this = this;\n\n var level = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : LEVEL_INFO;\n var offLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : LEVEL_DISABLED;\n (0, _classCallCheck3.default)(this, Log);\n\n this.kibo = new _vendor.Kibo();\n this.kibo.down(['ctrl shift d'], function () {\n return _this.onOff();\n });\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress'];\n this.level = level;\n this.offLevel = offLevel;\n }\n\n Log.prototype.debug = function debug(klass) {\n this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1));\n };\n\n Log.prototype.info = function info(klass) {\n this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1));\n };\n\n Log.prototype.warn = function warn(klass) {\n this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1));\n };\n\n Log.prototype.error = function error(klass) {\n this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1));\n };\n\n Log.prototype.onOff = function onOff() {\n if (this.level === this.offLevel) {\n this.level = this.previousLevel;\n } else {\n this.previousLevel = this.level;\n this.level = this.offLevel;\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log) window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN);\n };\n\n Log.prototype.level = function level(newLevel) {\n this.level = newLevel;\n };\n\n Log.prototype.log = function log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return;\n if (level < this.level) return;\n\n if (!message) {\n message = klass;\n klass = null;\n }\n var color = COLORS[level];\n var klassDescription = '';\n if (klass) klassDescription = '[' + klass + ']';\n\n if (window.console && window.console.log) window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message));\n };\n\n return Log;\n}();\n\nexports.default = Log;\n\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG;\nLog.LEVEL_INFO = LEVEL_INFO;\nLog.LEVEL_WARN = LEVEL_WARN;\nLog.LEVEL_ERROR = LEVEL_ERROR;\n\nLog.getInstance = function () {\n if (this._instance === undefined) {\n this._instance = new this();\n this._instance.previousLevel = this._instance.level;\n this._instance.level = this._instance.offLevel;\n }\n return this._instance;\n};\n\nLog.setLevel = function (level) {\n this.getInstance().level = level;\n};\n\nLog.debug = function () {\n this.getInstance().debug.apply(this.getInstance(), arguments);\n};\nLog.info = function () {\n this.getInstance().info.apply(this.getInstance(), arguments);\n};\nLog.warn = function () {\n this.getInstance().warn.apply(this.getInstance(), arguments);\n};\nLog.error = function () {\n this.getInstance().error.apply(this.getInstance(), arguments);\n};\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function Kibo(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function () {\n for (var key in Kibo.KEY_NAMES_BY_CODE) {\n if (Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = function () {\n if (document.addEventListener) {\n return function (element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n } else if (document.attachEvent) {\n return function (element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n}();\n\nKibo.unregisterEvent = function () {\n if (document.removeEventListener) {\n return function (element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n } else if (document.detachEvent) {\n return function (element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n}();\n\nKibo.stringContains = function (string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function (string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function (string) {\n return string.toLowerCase().replace(/^./, function (match) {\n return match.toUpperCase();\n });\n};\n\nKibo.isString = function (what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = function () {\n if (Array.prototype.indexOf) {\n return function (haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n } else {\n return function (haystack, needle) {\n for (var i = 0; i < haystack.length; i++) {\n if (haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n}();\n\nKibo.extractModifiers = function (keyCombination) {\n var modifiers, i;\n modifiers = [];\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n if (Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n};\n\nKibo.extractKey = function (keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for (i = 0; i < keys.length; i++) {\n if (!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function (keyCombination) {\n var result, key;\n\n if (Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if (key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n};\n\nKibo.keyName = function (keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function (keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function () {\n var i,\n that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function (upOrDown) {\n var that = this;\n return function (e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if (Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for (i = 0; i < registeredKeys.any.length; i++) {\n if (registeredKeys.any[i](e) === false && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if (registeredKeys[lastModifiersAndKey]) {\n for (i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if (registeredKeys[lastModifiersAndKey][i](e) === false && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function (upOrDown, newKeys, func) {\n var i,\n keys,\n registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if (Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for (i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if (registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function (upOrDown, newKeys, func) {\n var i,\n j,\n keys,\n registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if (Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for (i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if (func === null) {\n delete registeredKeys[keys];\n } else {\n if (registeredKeys[keys]) {\n for (j = 0; j < registeredKeys[keys].length; j++) {\n if (String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function (keys) {\n return this.unregisterKeys('down', keys, null);\n};\n\nKibo.prototype.delegate = function (upOrDown, keys, func) {\n return func !== null || func !== undefined ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function (keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function (keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function (modifier) {\n if (!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function () {\n var result, i;\n\n result = [];\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n if (this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if (!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexports.default = Kibo;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core_factory = __webpack_require__(133);\n\nvar _core_factory2 = _interopRequireDefault(_core_factory);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _core_factory2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _base_object = __webpack_require__(17);\n\nvar _base_object2 = _interopRequireDefault(_base_object);\n\nvar _core = __webpack_require__(72);\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nvar CoreFactory = function (_BaseObject) {\n (0, _inherits3.default)(CoreFactory, _BaseObject);\n (0, _createClass3.default)(CoreFactory, [{\n key: 'loader',\n get: function get() {\n return this.player.loader;\n }\n\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n\n }]);\n\n function CoreFactory(player) {\n (0, _classCallCheck3.default)(this, CoreFactory);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _BaseObject.call(this));\n\n _this.player = player;\n _this._options = player.options;\n return _this;\n }\n\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n\n\n CoreFactory.prototype.create = function create() {\n this.options.loader = this.loader;\n this.core = new _core2.default(this.options);\n this.addCorePlugins();\n this.core.createContainers(this.options);\n return this.core;\n };\n\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n\n\n CoreFactory.prototype.addCorePlugins = function addCorePlugins() {\n var _this2 = this;\n\n this.loader.corePlugins.forEach(function (Plugin) {\n var plugin = new Plugin(_this2.core);\n _this2.core.addPlugin(plugin);\n _this2.setupExternalInterface(plugin);\n });\n return this.core;\n };\n\n CoreFactory.prototype.setupExternalInterface = function setupExternalInterface(plugin) {\n var externalFunctions = plugin.getExternalInterface();\n for (var key in externalFunctions) {\n this.player[key] = externalFunctions[key].bind(plugin);\n }\n };\n\n return CoreFactory;\n}(_base_object2.default);\n\nexports.default = CoreFactory;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _utils = __webpack_require__(5);\n\nvar _events = __webpack_require__(4);\n\nvar _events2 = _interopRequireDefault(_events);\n\nvar _ui_object = __webpack_require__(21);\n\nvar _ui_object2 = _interopRequireDefault(_ui_object);\n\nvar _browser = __webpack_require__(13);\n\nvar _browser2 = _interopRequireDefault(_browser);\n\nvar _container_factory = __webpack_require__(135);\n\nvar _container_factory2 = _interopRequireDefault(_container_factory);\n\nvar _media_control = __webpack_require__(74);\n\nvar _media_control2 = _interopRequireDefault(_media_control);\n\nvar _mediator = __webpack_require__(24);\n\nvar _mediator2 = _interopRequireDefault(_mediator);\n\nvar _player_info = __webpack_require__(34);\n\nvar _player_info2 = _interopRequireDefault(_player_info);\n\nvar _styler = __webpack_require__(77);\n\nvar _styler2 = _interopRequireDefault(_styler);\n\nvar _clapprZepto = __webpack_require__(6);\n\nvar _clapprZepto2 = _interopRequireDefault(_clapprZepto);\n\n__webpack_require__(153);\n\nvar _fonts = __webpack_require__(155);\n\nvar _fonts2 = _interopRequireDefault(_fonts);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nvar style = void 0;\n\n/**\n * The Core is responsible to manage Containers, the mediator, MediaControl\n * and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\n\nvar Core = function (_UIObject) {\n (0, _inherits3.default)(Core, _UIObject);\n (0, _createClass3.default)(Core, [{\n key: 'events',\n get: function get() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'showMediaControl',\n 'mouseleave': 'hideMediaControl'\n };\n }\n }, {\n key: 'attributes',\n get: function get() {\n return {\n 'data-player': '',\n tabindex: 9999\n };\n }\n\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n\n }, {\n key: 'isReady',\n get: function get() {\n return !!this.ready;\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n\n }, {\n key: 'i18n',\n get: function get() {\n return this.getPlugin('strings') || { t: function t(key) {\n return key;\n } };\n }\n }]);\n\n function Core(options) {\n (0, _classCallCheck3.default)(this, Core);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _UIObject.call(this, options));\n\n _this.configureDomRecycler();\n _this.playerInfo = _player_info2.default.getInstance(options.playerId);\n _this.firstResize = true;\n _this.plugins = [];\n _this.containers = [];\n _this.setupMediaControl(null);\n //FIXME fullscreen api sucks\n _this._boundFullscreenHandler = function () {\n return _this.handleFullscreenChange();\n };\n (0, _clapprZepto2.default)(document).bind('fullscreenchange', _this._boundFullscreenHandler);\n (0, _clapprZepto2.default)(document).bind('MSFullscreenChange', _this._boundFullscreenHandler);\n (0, _clapprZepto2.default)(document).bind('mozfullscreenchange', _this._boundFullscreenHandler);\n _browser2.default.isMobile && (0, _clapprZepto2.default)(window).bind('resize', function (o) {\n _this.handleWindowResize(o);\n });\n return _this;\n }\n\n Core.prototype.configureDomRecycler = function configureDomRecycler() {\n var recycleVideo = this.options && this.options.playback && this.options.playback.recycleVideo ? true : false;\n _utils.DomRecycler.configure({\n recycleVideo: recycleVideo\n });\n };\n\n Core.prototype.createContainers = function createContainers(options) {\n var _this2 = this;\n\n this.defer = _clapprZepto2.default.Deferred();\n this.defer.promise(this);\n this.containerFactory = new _container_factory2.default(options, options.loader, this.i18n);\n this.containerFactory.createContainers().then(function (containers) {\n return _this2.setupContainers(containers);\n }).then(function (containers) {\n return _this2.resolveOnContainersReady(containers);\n });\n };\n\n Core.prototype.updateSize = function updateSize() {\n if (_utils.Fullscreen.isFullscreen()) this.setFullscreen();else this.setPlayerSize();\n };\n\n Core.prototype.setFullscreen = function setFullscreen() {\n if (!_browser2.default.isiOS) {\n this.$el.addClass('fullscreen');\n this.$el.removeAttr('style');\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height };\n this.playerInfo.currentSize = { width: (0, _clapprZepto2.default)(window).width(), height: (0, _clapprZepto2.default)(window).height() };\n }\n };\n\n Core.prototype.setPlayerSize = function setPlayerSize() {\n this.$el.removeClass('fullscreen');\n this.playerInfo.currentSize = this.playerInfo.previousSize;\n this.playerInfo.previousSize = { width: (0, _clapprZepto2.default)(window).width(), height: (0, _clapprZepto2.default)(window).height() };\n this.resize(this.playerInfo.currentSize);\n };\n\n Core.prototype.resize = function resize(options) {\n if (!(0, _utils.isNumber)(options.height) && !(0, _utils.isNumber)(options.width)) {\n this.el.style.height = '' + options.height;\n this.el.style.width = '' + options.width;\n } else {\n this.el.style.height = options.height + 'px';\n this.el.style.width = options.width + 'px';\n }\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height };\n this.options.width = options.width;\n this.options.height = options.height;\n this.playerInfo.currentSize = options;\n this.triggerResize(this.playerInfo.currentSize);\n };\n\n Core.prototype.enableResizeObserver = function enableResizeObserver() {\n var _this3 = this;\n\n var checkSizeCallback = function checkSizeCallback() {\n if (_this3.playerInfo.computedSize.width !== _this3.el.clientWidth || _this3.playerInfo.computedSize.height !== _this3.el.clientHeight) {\n _this3.playerInfo.computedSize = { width: _this3.el.clientWidth, height: _this3.el.clientHeight };\n _this3.triggerResize(_this3.playerInfo.computedSize);\n }\n };\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500);\n };\n\n Core.prototype.triggerResize = function triggerResize(newSize) {\n var thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width;\n if (thereWasChange) {\n _mediator2.default.trigger(this.options.playerId + ':' + _events2.default.PLAYER_RESIZE, newSize);\n this.oldHeight = newSize.height;\n this.oldWidth = newSize.width;\n this.firstResize = false;\n }\n };\n\n Core.prototype.disableResizeObserver = function disableResizeObserver() {\n if (this.resizeObserverInterval) clearInterval(this.resizeObserverInterval);\n };\n\n Core.prototype.resolveOnContainersReady = function resolveOnContainersReady(containers) {\n var _this4 = this;\n\n _clapprZepto2.default.when.apply(_clapprZepto2.default, containers).done(function () {\n _this4.defer.resolve(_this4);\n _this4.ready = true;\n _this4.trigger(_events2.default.CORE_READY);\n });\n };\n\n Core.prototype.addPlugin = function addPlugin(plugin) {\n this.plugins.push(plugin);\n };\n\n Core.prototype.hasPlugin = function hasPlugin(name) {\n return !!this.getPlugin(name);\n };\n\n Core.prototype.getPlugin = function getPlugin(name) {\n return this.plugins.filter(function (plugin) {\n return plugin.name === name;\n })[0];\n };\n\n Core.prototype.load = function load(sources, mimeType) {\n var _this5 = this;\n\n this.options.mimeType = mimeType;\n sources = sources && sources.constructor === Array ? sources : [sources];\n this.containers.forEach(function (container) {\n return container.destroy();\n });\n this.mediaControl.container = null;\n this.containerFactory.options = _clapprZepto2.default.extend(this.options, { sources: sources });\n this.containerFactory.createContainers().then(function (containers) {\n _this5.setupContainers(containers);\n });\n };\n\n Core.prototype.destroy = function destroy() {\n this.disableResizeObserver();\n this.containers.forEach(function (container) {\n return container.destroy();\n });\n this.plugins.forEach(function (plugin) {\n return plugin.destroy();\n });\n this.$el.remove();\n this.mediaControl.destroy();\n (0, _clapprZepto2.default)(document).unbind('fullscreenchange', this._boundFullscreenHandler);\n (0, _clapprZepto2.default)(document).unbind('MSFullscreenChange', this._boundFullscreenHandler);\n (0, _clapprZepto2.default)(document).unbind('mozfullscreenchange', this._boundFullscreenHandler);\n };\n\n Core.prototype.handleFullscreenChange = function handleFullscreenChange() {\n this.trigger(_events2.default.CORE_FULLSCREEN, _utils.Fullscreen.isFullscreen());\n this.updateSize();\n this.mediaControl.show();\n };\n\n Core.prototype.handleWindowResize = function handleWindowResize(event) {\n var orientation = (0, _clapprZepto2.default)(window).width() > (0, _clapprZepto2.default)(window).height() ? 'landscape' : 'portrait';\n if (this._screenOrientation === orientation) return;\n this._screenOrientation = orientation;\n\n this.trigger(_events2.default.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n });\n };\n\n Core.prototype.setMediaControlContainer = function setMediaControlContainer(container) {\n this.mediaControl.setContainer(container);\n this.mediaControl.render();\n };\n\n Core.prototype.disableMediaControl = function disableMediaControl() {\n this.mediaControl.disable();\n this.$el.removeClass('nocursor');\n };\n\n Core.prototype.enableMediaControl = function enableMediaControl() {\n this.mediaControl.enable();\n };\n\n Core.prototype.removeContainer = function removeContainer(container) {\n this.stopListening(container);\n this.containers = this.containers.filter(function (c) {\n return c !== container;\n });\n };\n\n Core.prototype.appendContainer = function appendContainer(container) {\n this.listenTo(container, _events2.default.CONTAINER_DESTROYED, this.removeContainer);\n this.containers.push(container);\n };\n\n Core.prototype.setupContainers = function setupContainers(containers) {\n containers.map(this.appendContainer.bind(this));\n this.trigger(_events2.default.CORE_CONTAINERS_CREATED);\n this.renderContainers();\n this.setupMediaControl(this.getCurrentContainer());\n this.render();\n this.appendToParent();\n return this.containers;\n };\n\n Core.prototype.renderContainers = function renderContainers() {\n var _this6 = this;\n\n this.containers.map(function (container) {\n return _this6.el.appendChild(container.render().el);\n });\n };\n\n Core.prototype.createContainer = function createContainer(source, options) {\n var container = this.containerFactory.createContainer(source, options);\n this.appendContainer(container);\n this.el.appendChild(container.render().el);\n return container;\n };\n\n Core.prototype.setupMediaControl = function setupMediaControl(container) {\n if (this.mediaControl) {\n this.mediaControl.setContainer(container);\n } else {\n this.mediaControl = this.createMediaControl(_clapprZepto2.default.extend({ container: container, focusElement: this.el }, this.options));\n this.listenTo(this.mediaControl, _events2.default.MEDIACONTROL_FULLSCREEN, this.toggleFullscreen);\n this.listenTo(this.mediaControl, _events2.default.MEDIACONTROL_SHOW, this.onMediaControlShow.bind(this, true));\n this.listenTo(this.mediaControl, _events2.default.MEDIACONTROL_HIDE, this.onMediaControlShow.bind(this, false));\n }\n };\n\n Core.prototype.createMediaControl = function createMediaControl(options) {\n if (options.mediacontrol && options.mediacontrol.external) return new options.mediacontrol.external(options).render();else return new _media_control2.default(options).render();\n };\n\n Core.prototype.getCurrentContainer = function getCurrentContainer() {\n if (!this.mediaControl || !this.mediaControl.container) return this.containers[0];\n\n return this.mediaControl.container;\n };\n\n Core.prototype.getCurrentPlayback = function getCurrentPlayback() {\n var container = this.getCurrentContainer();\n return container && container.playback;\n };\n\n Core.prototype.getPlaybackType = function getPlaybackType() {\n var container = this.getCurrentContainer();\n return container && container.getPlaybackType();\n };\n\n Core.prototype.toggleFullscreen = function toggleFullscreen() {\n if (!_utils.Fullscreen.isFullscreen()) {\n _utils.Fullscreen.requestFullscreen(this.el);\n if (!_browser2.default.isiOS) this.$el.addClass('fullscreen');\n } else {\n _utils.Fullscreen.cancelFullscreen();\n if (!_browser2.default.isiOS) this.$el.removeClass('fullscreen nocursor');\n }\n this.mediaControl.show();\n };\n\n Core.prototype.showMediaControl = function showMediaControl(event) {\n this.mediaControl.show(event);\n };\n\n Core.prototype.hideMediaControl = function hideMediaControl() {\n this.mediaControl.hide(this.options.hideMediaControlDelay);\n };\n\n Core.prototype.onMediaControlShow = function onMediaControlShow(showing) {\n this.getCurrentContainer().trigger(showing ? _events2.default.CONTAINER_MEDIACONTROL_SHOW : _events2.default.CONTAINER_MEDIACONTROL_HIDE);\n\n if (showing) this.$el.removeClass('nocursor');else if (_utils.Fullscreen.isFullscreen()) this.$el.addClass('nocursor');\n };\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n\n\n Core.prototype.configure = function configure(options) {\n var _this7 = this;\n\n this._options = _clapprZepto2.default.extend(this._options, options);\n this.configureDomRecycler();\n var sources = options.source || options.sources;\n\n if (sources) {\n this.load(sources, options.mimeType || this.options.mimeType);\n } else {\n this.trigger(_events2.default.CORE_OPTIONS_CHANGE);\n\n this.containers.forEach(function (container) {\n container.configure(_this7.options);\n });\n }\n };\n\n Core.prototype.appendToParent = function appendToParent() {\n var hasCoreParent = this.$el.parent() && this.$el.parent().length;\n !hasCoreParent && this.$el.appendTo(this.options.parentElement);\n };\n\n Core.prototype.render = function render() {\n this.$el.append(this.mediaControl.render().el);\n\n if (!style) style = _styler2.default.getStyleFor(_fonts2.default, { baseUrl: this.options.baseUrl });\n\n (0, _clapprZepto2.default)('head').append(style);\n\n this.options.width = this.options.width || this.$el.width();\n this.options.height = this.options.height || this.$el.height();\n var size = { width: this.options.width, height: this.options.height };\n this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size;\n this.updateSize();\n\n this.previousSize = { width: this.$el.width(), height: this.$el.height() };\n\n this.enableResizeObserver();\n\n return this;\n };\n\n return Core;\n}(_ui_object2.default);\n\nexports.default = Core;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _container_factory = __webpack_require__(136);\n\nvar _container_factory2 = _interopRequireDefault(_container_factory);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _container_factory2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof2 = __webpack_require__(33);\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _base_object = __webpack_require__(17);\n\nvar _base_object2 = _interopRequireDefault(_base_object);\n\nvar _events = __webpack_require__(4);\n\nvar _events2 = _interopRequireDefault(_events);\n\nvar _container = __webpack_require__(73);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _clapprZepto = __webpack_require__(6);\n\nvar _clapprZepto2 = _interopRequireDefault(_clapprZepto);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The ContainerFactory is responsible for manage playback bootstrap and create containers.\n */\n\nvar ContainerFactory = function (_BaseObject) {\n (0, _inherits3.default)(ContainerFactory, _BaseObject);\n (0, _createClass3.default)(ContainerFactory, [{\n key: 'options',\n get: function get() {\n return this._options;\n },\n set: function set(options) {\n this._options = options;\n }\n }]);\n\n function ContainerFactory(options, loader, i18n) {\n (0, _classCallCheck3.default)(this, ContainerFactory);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _BaseObject.call(this, options));\n\n _this._i18n = i18n;\n _this.loader = loader;\n return _this;\n }\n\n ContainerFactory.prototype.createContainers = function createContainers() {\n var _this2 = this;\n\n return _clapprZepto2.default.Deferred(function (promise) {\n promise.resolve(_this2.options.sources.map(function (source) {\n return _this2.createContainer(source);\n }));\n });\n };\n\n ContainerFactory.prototype.findPlaybackPlugin = function findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(function (p) {\n return p.canPlay(source, mimeType);\n })[0];\n };\n\n ContainerFactory.prototype.createContainer = function createContainer(source) {\n var resolvedSource = null,\n mimeType = this.options.mimeType;\n if ((typeof source === 'undefined' ? 'undefined' : (0, _typeof3.default)(source)) === 'object') {\n resolvedSource = source.source.toString();\n if (source.mimeType) mimeType = source.mimeType;\n } else {\n resolvedSource = source.toString();\n }\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource;\n\n var options = _clapprZepto2.default.extend({}, this.options, {\n src: resolvedSource,\n mimeType: mimeType\n });\n var playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType);\n var playback = new playbackPlugin(options, this._i18n);\n\n options = _clapprZepto2.default.extend({}, options, { playback: playback });\n\n var container = new _container2.default(options, this._i18n);\n var defer = _clapprZepto2.default.Deferred();\n defer.promise(container);\n this.addContainerPlugins(container);\n this.listenToOnce(container, _events2.default.CONTAINER_READY, function () {\n return defer.resolve(container);\n });\n return container;\n };\n\n ContainerFactory.prototype.addContainerPlugins = function addContainerPlugins(container) {\n this.loader.containerPlugins.forEach(function (Plugin) {\n container.addPlugin(new Plugin(container));\n });\n };\n\n return ContainerFactory;\n}(_base_object2.default);\n\nexports.default = ContainerFactory;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _events = __webpack_require__(4);\n\nvar _events2 = _interopRequireDefault(_events);\n\nvar _ui_object = __webpack_require__(21);\n\nvar _ui_object2 = _interopRequireDefault(_ui_object);\n\n__webpack_require__(138);\n\nvar _clapprZepto = __webpack_require__(6);\n\nvar _clapprZepto2 = _interopRequireDefault(_clapprZepto);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Container is responsible for the video rendering and state\n */\n\nvar Container = function (_UIObject) {\n (0, _inherits3.default)(Container, _UIObject);\n (0, _createClass3.default)(Container, [{\n key: 'name',\n\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get: function get() {\n return 'Container';\n }\n }, {\n key: 'attributes',\n get: function get() {\n return { class: 'container', 'data-container': '' };\n }\n }, {\n key: 'events',\n get: function get() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'doubleTap': 'dblClicked',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n };\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n\n }, {\n key: 'ended',\n get: function get() {\n return this.playback.ended;\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n\n }, {\n key: 'buffering',\n get: function get() {\n return this.playback.buffering;\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n\n }, {\n key: 'i18n',\n get: function get() {\n return this._i18n;\n }\n\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n\n }, {\n key: 'hasClosedCaptionsTracks',\n get: function get() {\n return this.playback.hasClosedCaptionsTracks;\n }\n\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n\n }, {\n key: 'closedCaptionsTracks',\n get: function get() {\n return this.playback.closedCaptionsTracks;\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n\n }, {\n key: 'closedCaptionsTrackId',\n get: function get() {\n return this.playback.closedCaptionsTrackId;\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n ,\n set: function set(trackId) {\n this.playback.closedCaptionsTrackId = trackId;\n }\n\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n\n }]);\n\n function Container(options, i18n) {\n (0, _classCallCheck3.default)(this, Container);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _UIObject.call(this, options));\n\n _this._i18n = i18n;\n _this.currentTime = 0;\n _this.volume = 100;\n _this.playback = options.playback;\n _this.settings = _clapprZepto2.default.extend({}, _this.playback.settings);\n _this.isReady = false;\n _this.mediaControlDisabled = false;\n _this.plugins = [_this.playback];\n _this.bindEvents();\n return _this;\n }\n\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n\n\n Container.prototype.bindEvents = function bindEvents() {\n this.listenTo(this.playback, _events2.default.PLAYBACK_PROGRESS, this.progress);\n this.listenTo(this.playback, _events2.default.PLAYBACK_TIMEUPDATE, this.timeUpdated);\n this.listenTo(this.playback, _events2.default.PLAYBACK_READY, this.ready);\n this.listenTo(this.playback, _events2.default.PLAYBACK_BUFFERING, this.onBuffering);\n this.listenTo(this.playback, _events2.default.PLAYBACK_BUFFERFULL, this.bufferfull);\n this.listenTo(this.playback, _events2.default.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate);\n this.listenTo(this.playback, _events2.default.PLAYBACK_LOADEDMETADATA, this.loadedMetadata);\n this.listenTo(this.playback, _events2.default.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate);\n this.listenTo(this.playback, _events2.default.PLAYBACK_BITRATE, this.updateBitrate);\n this.listenTo(this.playback, _events2.default.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged);\n this.listenTo(this.playback, _events2.default.PLAYBACK_DVR, this.playbackDvrStateChanged);\n this.listenTo(this.playback, _events2.default.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl);\n this.listenTo(this.playback, _events2.default.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl);\n this.listenTo(this.playback, _events2.default.PLAYBACK_SEEKED, this.onSeeked);\n this.listenTo(this.playback, _events2.default.PLAYBACK_ENDED, this.onEnded);\n this.listenTo(this.playback, _events2.default.PLAYBACK_PLAY, this.playing);\n this.listenTo(this.playback, _events2.default.PLAYBACK_PAUSE, this.paused);\n this.listenTo(this.playback, _events2.default.PLAYBACK_STOP, this.stopped);\n this.listenTo(this.playback, _events2.default.PLAYBACK_ERROR, this.error);\n this.listenTo(this.playback, _events2.default.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable);\n this.listenTo(this.playback, _events2.default.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged);\n };\n\n Container.prototype.subtitleAvailable = function subtitleAvailable() {\n this.trigger(_events2.default.CONTAINER_SUBTITLE_AVAILABLE);\n };\n\n Container.prototype.subtitleChanged = function subtitleChanged(track) {\n this.trigger(_events2.default.CONTAINER_SUBTITLE_CHANGED, track);\n };\n\n Container.prototype.playbackStateChanged = function playbackStateChanged(state) {\n this.trigger(_events2.default.CONTAINER_PLAYBACKSTATE, state);\n };\n\n Container.prototype.playbackDvrStateChanged = function playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings;\n this.dvrInUse = dvrInUse;\n this.trigger(_events2.default.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse);\n };\n\n Container.prototype.updateBitrate = function updateBitrate(newBitrate) {\n this.trigger(_events2.default.CONTAINER_BITRATE, newBitrate);\n };\n\n Container.prototype.statsReport = function statsReport(metrics) {\n this.trigger(_events2.default.CONTAINER_STATS_REPORT, metrics);\n };\n\n Container.prototype.getPlaybackType = function getPlaybackType() {\n return this.playback.getPlaybackType();\n };\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n\n\n Container.prototype.isDvrEnabled = function isDvrEnabled() {\n return !!this.playback.dvrEnabled;\n };\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n\n\n Container.prototype.isDvrInUse = function isDvrInUse() {\n return !!this.dvrInUse;\n };\n\n /**\n * destroys the container\n * @method destroy\n */\n\n\n Container.prototype.destroy = function destroy() {\n this.trigger(_events2.default.CONTAINER_DESTROYED, this, this.name);\n this.stopListening();\n this.plugins.forEach(function (plugin) {\n return plugin.destroy();\n });\n this.$el.remove();\n };\n\n Container.prototype.setStyle = function setStyle(style) {\n this.$el.css(style);\n };\n\n Container.prototype.animate = function animate(style, duration) {\n return this.$el.animate(style, duration).promise();\n };\n\n Container.prototype.ready = function ready() {\n this.isReady = true;\n this.trigger(_events2.default.CONTAINER_READY, this.name);\n };\n\n Container.prototype.isPlaying = function isPlaying() {\n return this.playback.isPlaying();\n };\n\n Container.prototype.getStartTimeOffset = function getStartTimeOffset() {\n return this.playback.getStartTimeOffset();\n };\n\n Container.prototype.getCurrentTime = function getCurrentTime() {\n return this.currentTime;\n };\n\n Container.prototype.getDuration = function getDuration() {\n return this.playback.getDuration();\n };\n\n Container.prototype.error = function error(errorObj) {\n if (!this.isReady) this.ready();\n\n this.trigger(_events2.default.CONTAINER_ERROR, { error: errorObj, container: this }, this.name);\n };\n\n Container.prototype.loadedMetadata = function loadedMetadata(metadata) {\n this.trigger(_events2.default.CONTAINER_LOADEDMETADATA, metadata);\n };\n\n Container.prototype.timeUpdated = function timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current;\n this.trigger(_events2.default.CONTAINER_TIMEUPDATE, timeProgress, this.name);\n };\n\n Container.prototype.progress = function progress() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this.trigger.apply(this, [_events2.default.CONTAINER_PROGRESS].concat(args, [this.name]));\n };\n\n Container.prototype.playing = function playing() {\n this.trigger(_events2.default.CONTAINER_PLAY, this.name);\n };\n\n Container.prototype.paused = function paused() {\n this.trigger(_events2.default.CONTAINER_PAUSE, this.name);\n };\n\n /**\n * plays the playback\n * @method play\n */\n\n\n Container.prototype.play = function play() {\n this.playback.play();\n };\n\n /**\n * stops the playback\n * @method stop\n */\n\n\n Container.prototype.stop = function stop() {\n this.playback.stop();\n this.currentTime = 0;\n };\n\n /**\n * pauses the playback\n * @method pause\n */\n\n\n Container.prototype.pause = function pause() {\n this.playback.pause();\n };\n\n Container.prototype.onEnded = function onEnded() {\n this.trigger(_events2.default.CONTAINER_ENDED, this, this.name);\n this.currentTime = 0;\n };\n\n Container.prototype.stopped = function stopped() {\n this.trigger(_events2.default.CONTAINER_STOP);\n };\n\n Container.prototype.clicked = function clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_CLICK, this, this.name);\n };\n\n Container.prototype.dblClicked = function dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_DBLCLICK, this, this.name);\n };\n\n Container.prototype.onContextMenu = function onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_CONTEXTMENU, event, this.name);\n };\n\n Container.prototype.seek = function seek(time) {\n this.trigger(_events2.default.CONTAINER_SEEK, time, this.name);\n this.playback.seek(time);\n };\n\n Container.prototype.onSeeked = function onSeeked() {\n this.trigger(_events2.default.CONTAINER_SEEKED, this.name);\n };\n\n Container.prototype.seekPercentage = function seekPercentage(percentage) {\n var duration = this.getDuration();\n if (percentage >= 0 && percentage <= 100) {\n var time = duration * (percentage / 100);\n this.seek(time);\n }\n };\n\n Container.prototype.setVolume = function setVolume(value) {\n this.volume = parseInt(value, 10);\n this.trigger(_events2.default.CONTAINER_VOLUME, value, this.name);\n this.playback.volume(value);\n };\n\n Container.prototype.fullscreen = function fullscreen() {\n this.trigger(_events2.default.CONTAINER_FULLSCREEN, this.name);\n };\n\n Container.prototype.onBuffering = function onBuffering() {\n this.trigger(_events2.default.CONTAINER_STATE_BUFFERING, this.name);\n };\n\n Container.prototype.bufferfull = function bufferfull() {\n this.trigger(_events2.default.CONTAINER_STATE_BUFFERFULL, this.name);\n };\n\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n\n\n Container.prototype.addPlugin = function addPlugin(plugin) {\n this.plugins.push(plugin);\n };\n\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n\n\n Container.prototype.hasPlugin = function hasPlugin(name) {\n return !!this.getPlugin(name);\n };\n\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n\n\n Container.prototype.getPlugin = function getPlugin(name) {\n return this.plugins.filter(function (plugin) {\n return plugin.name === name;\n })[0];\n };\n\n Container.prototype.mouseEnter = function mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_MOUSE_ENTER);\n };\n\n Container.prototype.mouseLeave = function mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_MOUSE_LEAVE);\n };\n\n Container.prototype.settingsUpdate = function settingsUpdate() {\n this.settings = this.playback.settings;\n this.trigger(_events2.default.CONTAINER_SETTINGSUPDATE);\n };\n\n Container.prototype.highDefinitionUpdate = function highDefinitionUpdate(isHD) {\n this.trigger(_events2.default.CONTAINER_HIGHDEFINITIONUPDATE, isHD);\n };\n\n Container.prototype.isHighDefinitionInUse = function isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse();\n };\n\n Container.prototype.disableMediaControl = function disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true;\n this.trigger(_events2.default.CONTAINER_MEDIACONTROL_DISABLE);\n }\n };\n\n Container.prototype.enableMediaControl = function enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false;\n this.trigger(_events2.default.CONTAINER_MEDIACONTROL_ENABLE);\n }\n };\n\n Container.prototype.updateStyle = function updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.$el.removeClass('chromeless');else this.$el.addClass('chromeless');\n };\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n\n\n Container.prototype.configure = function configure(options) {\n this._options = _clapprZepto2.default.extend(this._options, options);\n this.updateStyle();\n this.trigger(_events2.default.CONTAINER_OPTIONS_CHANGE);\n };\n\n Container.prototype.render = function render() {\n this.$el.append(this.playback.render().el);\n this.updateStyle();\n return this;\n };\n\n return Container;\n}(_ui_object2.default);\n\nexports.default = Container;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a ').html(template(style.toString())(options))\n }\n}\n\nexport default Styler\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/styler.js","import Loader from './loader'\nexport default Loader\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loader/index.js","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/array/from.js\n// module id = 79\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/toConsumableArray.js\n// module id = 80\n// module chunks = 0","import Flash from './flash'\nexport default Flash\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/flash/index.js","import HTML5Audio from './html5_audio'\nexport default HTML5Audio\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html5_audio/index.js","import FlasHLS from './flashls'\nexport default FlasHLS\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/flashls/index.js","import HLS from './hls'\nexport default HLS\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/hls/index.js","import HTMLImg from './html_img'\nexport default HTMLImg\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html_img/index.js","import NoOp from './no_op'\nexport default NoOp\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/no_op/index.js","import PosterPlugin from './poster'\nexport default PosterPlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/poster/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Player from './components/player'\nimport Utils from './base/utils'\nimport Events from './base/events'\nimport Playback from './base/playback'\nimport ContainerPlugin from './base/container_plugin'\nimport CorePlugin from './base/core_plugin'\nimport UICorePlugin from './base/ui_core_plugin'\nimport UIContainerPlugin from './base/ui_container_plugin'\nimport BaseObject from './base/base_object'\nimport UIObject from './base/ui_object'\nimport Browser from './components/browser'\nimport Container from './components/container'\nimport Core from './components/core'\nimport Loader from './components/loader'\nimport Mediator from './components/mediator'\nimport MediaControl from './components/media_control'\nimport PlayerInfo from './components/player_info'\nimport BaseFlashPlayback from './playbacks/base_flash_playback'\nimport Flash from './playbacks/flash'\nimport FlasHLS from './playbacks/flashls'\nimport HLS from './playbacks/hls'\nimport HTML5Audio from './playbacks/html5_audio'\nimport HTML5Video from './playbacks/html5_video'\nimport HTMLImg from './playbacks/html_img'\nimport NoOp from './playbacks/no_op'\nimport Poster from './plugins/poster'\nimport Log from './plugins/log'\nimport Styler from './base/styler'\nimport Vendor from './vendor'\nimport template from './base/template'\n\nimport $ from 'clappr-zepto'\n\nconst version = VERSION\n\nexport default {\n Player,\n Mediator,\n Events,\n Browser,\n PlayerInfo,\n MediaControl,\n ContainerPlugin,\n UIContainerPlugin,\n CorePlugin,\n UICorePlugin,\n Playback,\n Container,\n Core,\n Loader,\n BaseObject,\n UIObject,\n Utils,\n BaseFlashPlayback,\n Flash,\n FlasHLS,\n HLS,\n HTML5Audio,\n HTML5Video,\n HTMLImg,\n NoOp,\n Poster,\n Log,\n Styler,\n Vendor,\n version,\n template,\n $\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { uniqueId, currentScriptUrl } from '../base/utils'\n\nimport BaseObject from '../base/base_object'\nimport Events from '../base/events'\nimport Browser from './browser'\nimport CoreFactory from './core_factory'\nimport Loader from './loader'\nimport PlayerInfo from './player_info'\nimport $ from 'clappr-zepto'\n\nconst baseUrl = currentScriptUrl().replace(/\\/[^/]+$/, '')\n\n/**\n * @class Player\n * @constructor\n * @extends BaseObject\n * @module components\n * @example\n * ### Using the Player\n *\n * Add the following script on your HTML:\n * ```html\n * \n * \n * \n * ```\n * Now, create the player:\n * ```html\n * \n *
\n * \n * \n * ```\n */\nexport default class Player extends BaseObject {\n\n set loader(loader) { this._loader = loader }\n get loader() {\n if (!this._loader)\n this._loader = new Loader(this.options.plugins || {}, this.options.playerId)\n\n return this._loader\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.core.mediaControl.container.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.core.mediaControl.container.buffering\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n get isReady() {\n return !!this._ready\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n get eventsMapping() {\n return {\n onReady: Events.PLAYER_READY,\n onResize: Events.PLAYER_RESIZE,\n onPlay: Events.PLAYER_PLAY,\n onPause: Events.PLAYER_PAUSE,\n onStop: Events.PLAYER_STOP,\n onEnded: Events.PLAYER_ENDED,\n onSeek: Events.PLAYER_SEEK,\n onError: Events.PLAYER_ERROR,\n onTimeUpdate: Events.PLAYER_TIMEUPDATE,\n onVolumeUpdate: Events.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: Events.PLAYER_SUBTITLE_AVAILABLE\n }\n }\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {String} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload]\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength]\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu]\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n */\n constructor(options) {\n super(options)\n const defaultOptions = { playerId: uniqueId(''), persistConfig: true, width: 640, height: 360, baseUrl: baseUrl, allowUserInteraction: Browser.isMobile }\n this._options = $.extend(defaultOptions, options)\n this.options.sources = this._normalizeSources(options)\n if (!this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n this.options.allowUserInteraction = true\n }\n if (!this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n this.options.disableKeyboardShortcuts = true\n }\n this._registerOptionEventListeners()\n this._coreFactory = new CoreFactory(this)\n this.playerInfo = PlayerInfo.getInstance(this.options.playerId)\n this.playerInfo.currentSize = { width: options.width, height: options.height }\n this.playerInfo.options = this.options\n if (this.options.parentId)\n this.setParentId(this.options.parentId)\n\n else if (this.options.parent)\n this.attachTo(this.options.parent)\n\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n setParentId(parentId) {\n const el = document.querySelector(parentId)\n if (el)\n this.attachTo(el)\n\n return this\n }\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n attachTo(element) {\n this.options.parentElement = element\n this.core = this._coreFactory.create()\n this._addEventListeners()\n return this\n }\n\n _addEventListeners() {\n if (!this.core.isReady)\n this.listenToOnce(this.core, Events.CORE_READY, this._onReady)\n else\n this._onReady()\n\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this._containerChanged)\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this._onFullscreenChange)\n return this\n }\n\n _addContainerEventListeners() {\n const container = this.core.mediaControl.container\n if (container) {\n this.listenTo(container, Events.CONTAINER_PLAY, this._onPlay)\n this.listenTo(container, Events.CONTAINER_PAUSE, this._onPause)\n this.listenTo(container, Events.CONTAINER_STOP, this._onStop)\n this.listenTo(container, Events.CONTAINER_ENDED, this._onEnded)\n this.listenTo(container, Events.CONTAINER_SEEK, this._onSeek)\n this.listenTo(container, Events.CONTAINER_ERROR, this._onError)\n this.listenTo(container, Events.CONTAINER_TIMEUPDATE, this._onTimeUpdate)\n this.listenTo(container, Events.CONTAINER_VOLUME, this._onVolumeUpdate)\n this.listenTo(container, Events.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable)\n }\n return this\n }\n\n _registerOptionEventListeners() {\n const userEvents = this.options.events || {}\n Object.keys(userEvents).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n if (eventType) {\n let eventFunction = userEvents[userEvent]\n eventFunction = typeof eventFunction === 'function' && eventFunction\n eventFunction && this.on(eventType, eventFunction)\n }\n })\n return this\n }\n\n _containerChanged() {\n this.stopListening()\n this._addEventListeners()\n }\n\n _onReady() {\n this._ready = true\n this._addContainerEventListeners()\n this.trigger(Events.PLAYER_READY)\n }\n\n _onFullscreenChange(fullscreen) {\n this.trigger(Events.PLAYER_FULLSCREEN, fullscreen)\n }\n\n _onVolumeUpdate(volume) {\n this.trigger(Events.PLAYER_VOLUMEUPDATE, volume)\n }\n\n _onSubtitleAvailable() {\n this.trigger(Events.PLAYER_SUBTITLE_AVAILABLE)\n }\n\n _onPlay() {\n this.trigger(Events.PLAYER_PLAY)\n }\n\n _onPause() {\n this.trigger(Events.PLAYER_PAUSE)\n }\n\n _onStop() {\n this.trigger(Events.PLAYER_STOP, this.getCurrentTime())\n }\n\n _onEnded() {\n this.trigger(Events.PLAYER_ENDED)\n }\n\n _onSeek(time) {\n this.trigger(Events.PLAYER_SEEK, time)\n }\n\n _onTimeUpdate(timeProgress) {\n this.trigger(Events.PLAYER_TIMEUPDATE, timeProgress)\n }\n\n _onError(error) {\n this.trigger(Events.PLAYER_ERROR, error)\n }\n\n _normalizeSources(options) {\n const sources = options.sources || (options.source !== undefined? [options.source] : [])\n return sources.length === 0 ? [{ source:'', mimeType:'' }] : sources\n }\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n resize(size) {\n this.core.resize(size)\n return this\n }\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <>, mimeType: <>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined)\n this.configure({ autoPlay: !!autoPlay })\n\n this.core.load(sources, mimeType)\n return this\n }\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n destroy() {\n this.core.destroy()\n return this\n }\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n consent() {\n this.core.getCurrentPlayback().consent()\n return this\n }\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n play() {\n this.core.mediaControl.container.play()\n return this\n }\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n pause() {\n this.core.mediaControl.container.pause()\n return this\n }\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n stop() {\n this.core.mediaControl.container.stop()\n return this\n }\n\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n seek(time) {\n this.core.mediaControl.container.seek(time)\n return this\n }\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n seekPercentage(percentage) {\n this.core.mediaControl.container.seekPercentage(percentage)\n return this\n }\n\n /**\n * Set the volume for the current video (`source`).\n * @method setVolume\n * @param {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n * @return {Player} itself\n */\n setVolume(volume) {\n if (this.core && this.core.mediaControl)\n this.core.mediaControl.setVolume(volume)\n\n return this\n }\n\n /**\n * Get the volume for the current video\n * @method getVolume\n * @return {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n */\n getVolume() {\n return this.core && this.core.mediaControl ? this.core.mediaControl.volume : 0\n }\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n mute() {\n this._mutedVolume = this.getVolume()\n this.setVolume(0)\n return this\n }\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100)\n this._mutedVolume = null\n return this\n }\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n isPlaying() {\n return this.core.mediaControl.container.isPlaying()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return this.core.mediaControl.container.isDvrEnabled()\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return this.core.mediaControl.container.isDvrInUse()\n }\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n configure(options) {\n this.core.configure(options)\n return this\n }\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n getPlugin(name) {\n const plugins = this.core.plugins.concat(this.core.mediaControl.container.plugins)\n return plugins.filter(plugin => plugin.name === name)[0]\n }\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n getCurrentTime() {\n return this.core.mediaControl.container.getCurrentTime()\n }\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() {\n return this.core.mediaControl.container.getStartTimeOffset()\n }\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n getDuration() {\n return this.core.mediaControl.container.getDuration()\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/player.js","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/keys.js\n// module id = 90\n// module chunks = 0","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.keys.js\n// module id = 91\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iobject.js\n// module id = 92\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-includes.js\n// module id = 93\n// module chunks = 0","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-index.js\n// module id = 94\n// module chunks = 0","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_a-function.js\n// module id = 95\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol/iterator.js\n// module id = 96\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/iterator.js\n// module id = 97\n// module chunks = 0","var toInteger = require('./_to-integer')\n , defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_string-at.js\n// module id = 98\n// module chunks = 0","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-create.js\n// module id = 99\n// module chunks = 0","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dps.js\n// module id = 100\n// module chunks = 0","module.exports = require('./_global').document && document.documentElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_html.js\n// module id = 101\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gpo.js\n// module id = 102\n// module chunks = 0","require('./es6.array.iterator');\nvar global = require('./_global')\n , hide = require('./_hide')\n , Iterators = require('./_iterators')\n , TO_STRING_TAG = require('./_wks')('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype;\n if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/web.dom.iterable.js\n// module id = 103\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n , step = require('./_iter-step')\n , Iterators = require('./_iterators')\n , toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.array.iterator.js\n// module id = 104\n// module chunks = 0","module.exports = function(){ /* empty */ };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_add-to-unscopables.js\n// module id = 105\n// module chunks = 0","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-step.js\n// module id = 106\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol.js\n// module id = 107\n// module chunks = 0","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/index.js\n// module id = 108\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global')\n , has = require('./_has')\n , DESCRIPTORS = require('./_descriptors')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , META = require('./_meta').KEY\n , $fails = require('./_fails')\n , shared = require('./_shared')\n , setToStringTag = require('./_set-to-string-tag')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , wksExt = require('./_wks-ext')\n , wksDefine = require('./_wks-define')\n , keyOf = require('./_keyof')\n , enumKeys = require('./_enum-keys')\n , isArray = require('./_is-array')\n , anObject = require('./_an-object')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , createDesc = require('./_property-desc')\n , _create = require('./_object-create')\n , gOPNExt = require('./_object-gopn-ext')\n , $GOPD = require('./_object-gopd')\n , $DP = require('./_object-dp')\n , $keys = require('./_object-keys')\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./_library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.symbol.js\n// module id = 109\n// module chunks = 0","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_meta.js\n// module id = 110\n// module chunks = 0","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_keyof.js\n// module id = 111\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie');\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_enum-keys.js\n// module id = 112\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-array.js\n// module id = 113\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject')\n , gOPN = require('./_object-gopn').f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn-ext.js\n// module id = 114\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.async-iterator.js\n// module id = 116\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.observable.js\n// module id = 117\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/define-property.js\n// module id = 118\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.define-property.js\n// module id = 119\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/set-prototype-of.js\n// module id = 120\n// module chunks = 0","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/set-prototype-of.js\n// module id = 121\n// module chunks = 0","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.set-prototype-of.js\n// module id = 122\n// module chunks = 0","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object')\n , anObject = require('./_an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-proto.js\n// module id = 123\n// module chunks = 0","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D){\n return $Object.create(P, D);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/create.js\n// module id = 124\n// module chunks = 0","var $export = require('./_export')\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: require('./_object-create')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.create.js\n// module id = 125\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js\n// module id = 126\n// module chunks = 0","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/get-own-property-descriptor.js\n// module id = 127\n// module chunks = 0","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject')\n , $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js\n// module id = 128\n// module chunks = 0","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null)\n throw new TypeError('\"this\" is null or not defined')\n\n\n let o = Object(this)\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n let len = o.length >>> 0\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function')\n throw new TypeError('predicate must be a function')\n\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n let thisArg = arguments[1]\n\n // 5. Let k be 0.\n let k = 0\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n let kValue = o[k]\n if (predicate.call(thisArg, kValue, k, o))\n return kValue\n\n // e. Increase k by 1.\n k++\n }\n\n // 7. Return undefined.\n return undefined\n }\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/polyfills.js","\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { Kibo } from '../../vendor'\n\nconst BOLD = 'font-weight: bold; font-size: 13px;'\nconst INFO = 'color: #006600;' + BOLD\nconst DEBUG = 'color: #0000ff;' + BOLD\nconst WARN = 'color: #ff8000;' + BOLD\nconst ERROR = 'color: #ff0000;' + BOLD\n\nconst LEVEL_DEBUG = 0\nconst LEVEL_INFO = 1\nconst LEVEL_WARN = 2\nconst LEVEL_ERROR = 3\nconst LEVEL_DISABLED = LEVEL_ERROR\n\nconst COLORS = [DEBUG, INFO, WARN, ERROR, ERROR]\nconst DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled']\n\nexport default class Log {\n constructor(level = LEVEL_INFO, offLevel = LEVEL_DISABLED) {\n this.kibo = new Kibo()\n this.kibo.down(['ctrl shift d'], () => this.onOff())\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress']\n this.level = level\n this.offLevel = offLevel\n }\n\n debug(klass) { this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1)) }\n info(klass) { this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1)) }\n warn(klass) { this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1)) }\n error(klass) { this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1)) }\n\n onOff() {\n if (this.level === this.offLevel) { this.level = this.previousLevel } else {\n this.previousLevel = this.level\n this.level = this.offLevel\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log)\n window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN)\n\n }\n\n level(newLevel) {\n this.level = newLevel\n }\n\n log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return\n if (level < this.level) return\n\n if (!message) {\n message = klass\n klass = null\n }\n const color = COLORS[level]\n let klassDescription = ''\n if (klass)\n klassDescription = '[' + klass + ']'\n\n if (window.console && window.console.log)\n window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message))\n\n }\n}\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG\nLog.LEVEL_INFO = LEVEL_INFO\nLog.LEVEL_WARN = LEVEL_WARN\nLog.LEVEL_ERROR = LEVEL_ERROR\n\nLog.getInstance = function() {\n if (this._instance === undefined) {\n this._instance = new this()\n this._instance.previousLevel = this._instance.level\n this._instance.level = this._instance.offLevel\n }\n return this._instance\n}\n\nLog.setLevel = function(level) { this.getInstance().level = level }\n\nLog.debug = function() { this.getInstance().debug.apply(this.getInstance(), arguments) }\nLog.info = function() { this.getInstance().info.apply(this.getInstance(), arguments) }\nLog.warn = function() { this.getInstance().warn.apply(this.getInstance(), arguments) }\nLog.error = function() { this.getInstance().error.apply(this.getInstance(), arguments) }\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/log/log.js","/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function() {\n for(var key in Kibo.KEY_NAMES_BY_CODE) {\n if(Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = (function() {\n if(document.addEventListener) {\n return function(element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n }\n else if(document.attachEvent) {\n return function(element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.unregisterEvent = (function() {\n if(document.removeEventListener) {\n return function(element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n }\n else if(document.detachEvent) {\n return function(element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.stringContains = function(string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function(string) {\n return string.toLowerCase().replace(/^./, function(match) { return match.toUpperCase(); });\n};\n\nKibo.isString = function(what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = (function() {\n if(Array.prototype.indexOf) {\n return function(haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n }\n else {\n return function(haystack, needle) {\n for(var i = 0; i < haystack.length; i++) {\n if(haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n})();\n\nKibo.extractModifiers = function(keyCombination) {\n var modifiers, i\n modifiers = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n}\n\nKibo.extractKey = function(keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for(i = 0; i < keys.length; i++) {\n if(!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function(keyCombination) {\n var result, key;\n\n if(Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if(key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n}\n\nKibo.keyName = function(keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function(keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function() {\n var i, that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function(upOrDown) {\n var that = this;\n return function(e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if(Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for(i = 0; i < registeredKeys.any.length; i++) {\n if((registeredKeys.any[i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if(registeredKeys[lastModifiersAndKey]) {\n for(i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if((registeredKeys[lastModifiersAndKey][i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function(upOrDown, newKeys, func) {\n var i, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function(upOrDown, newKeys, func) {\n var i, j, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(func === null) {\n delete registeredKeys[keys];\n } else {\n if(registeredKeys[keys]) {\n for(j = 0; j < registeredKeys[keys].length; j++) {\n if(String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function(keys) {\n return this.unregisterKeys('down', keys, null);\n}\n\nKibo.prototype.delegate = function(upOrDown, keys, func) {\n return (func !== null || func !== undefined) ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function(keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function(keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function(modifier) {\n if(!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function() {\n var result, i;\n\n result = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if(!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexport default Kibo\n\n\n\n// WEBPACK FOOTER //\n// ./src/vendor/kibo.js","import CoreFactory from './core_factory'\nexport default CoreFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseObject from '../../base/base_object'\nimport Core from '../core'\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class CoreFactory extends BaseObject {\n\n get loader() { return this.player.loader }\n\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n constructor(player) {\n super()\n this.player = player\n this._options = player.options\n }\n\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n create() {\n this.options.loader = this.loader\n this.core = new Core(this.options)\n this.addCorePlugins()\n this.core.createContainers(this.options)\n return this.core\n }\n\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n addCorePlugins() {\n this.loader.corePlugins.forEach((Plugin) => {\n const plugin = new Plugin(this.core)\n this.core.addPlugin(plugin)\n this.setupExternalInterface(plugin)\n })\n return this.core\n }\n\n setupExternalInterface(plugin) {\n const externalFunctions = plugin.getExternalInterface()\n for (const key in externalFunctions)\n this.player[key] = externalFunctions[key].bind(plugin)\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/core_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, Fullscreen, DomRecycler } from '../../base/utils'\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport Browser from '../../components/browser'\nimport ContainerFactory from '../../components/container_factory'\nimport MediaControl from '../../components/media_control'\nimport Mediator from '../../components/mediator'\nimport PlayerInfo from '../../components/player_info'\n\nimport Styler from '../../base/styler'\n\nimport $ from 'clappr-zepto'\n\nimport './public/style.scss'\nimport fontStyle from './public/fonts.css'\n\nlet style\n\n/**\n * The Core is responsible to manage Containers, the mediator, MediaControl\n * and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\nexport default class Core extends UIObject {\n get events() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'showMediaControl',\n 'mouseleave': 'hideMediaControl'\n }\n }\n\n get attributes() {\n return {\n 'data-player': '',\n tabindex: 9999\n }\n }\n\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n get isReady() {\n return !!this.ready\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this.getPlugin('strings') || { t: (key) => key }\n }\n\n constructor(options) {\n super(options)\n this.configureDomRecycler()\n this.playerInfo = PlayerInfo.getInstance(options.playerId)\n this.firstResize = true\n this.plugins = []\n this.containers = []\n this.setupMediaControl(null)\n //FIXME fullscreen api sucks\n this._boundFullscreenHandler = () => this.handleFullscreenChange()\n $(document).bind('fullscreenchange', this._boundFullscreenHandler)\n $(document).bind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).bind('mozfullscreenchange', this._boundFullscreenHandler)\n Browser.isMobile && $(window).bind('resize', (o) => { this.handleWindowResize(o) })\n }\n\n configureDomRecycler() {\n let recycleVideo = (this.options && this.options.playback && this.options.playback.recycleVideo) ? true : false\n DomRecycler.configure({\n recycleVideo: recycleVideo\n })\n }\n\n createContainers(options) {\n this.defer = $.Deferred()\n this.defer.promise(this)\n this.containerFactory = new ContainerFactory(options, options.loader, this.i18n)\n this.containerFactory\n .createContainers()\n .then((containers) => this.setupContainers(containers))\n .then((containers) => this.resolveOnContainersReady(containers))\n }\n\n updateSize() {\n if (Fullscreen.isFullscreen())\n this.setFullscreen()\n else\n this.setPlayerSize()\n\n }\n\n setFullscreen() {\n if(!Browser.isiOS) {\n this.$el.addClass('fullscreen')\n this.$el.removeAttr('style')\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.playerInfo.currentSize = { width: $(window).width(), height: $(window).height() }\n }\n }\n\n setPlayerSize() {\n this.$el.removeClass('fullscreen')\n this.playerInfo.currentSize = this.playerInfo.previousSize\n this.playerInfo.previousSize = { width: $(window).width(), height: $(window).height() }\n this.resize(this.playerInfo.currentSize)\n }\n\n resize(options) {\n if (!isNumber(options.height) && !isNumber(options.width)) {\n this.el.style.height = `${options.height}`\n this.el.style.width = `${options.width}`\n } else {\n this.el.style.height = `${options.height}px`\n this.el.style.width = `${options.width}px`\n }\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.options.width = options.width\n this.options.height = options.height\n this.playerInfo.currentSize = options\n this.triggerResize(this.playerInfo.currentSize)\n }\n\n enableResizeObserver() {\n const checkSizeCallback = () => {\n if (this.playerInfo.computedSize.width !== this.el.clientWidth ||\n this.playerInfo.computedSize.height !== this.el.clientHeight) {\n this.playerInfo.computedSize = { width: this.el.clientWidth, height: this.el.clientHeight }\n this.triggerResize(this.playerInfo.computedSize)\n }\n }\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500)\n }\n\n triggerResize(newSize) {\n const thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width\n if (thereWasChange) {\n Mediator.trigger(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, newSize)\n this.oldHeight = newSize.height\n this.oldWidth = newSize.width\n this.firstResize = false\n }\n }\n\n disableResizeObserver() {\n if (this.resizeObserverInterval) clearInterval(this.resizeObserverInterval)\n }\n\n resolveOnContainersReady(containers) {\n $.when.apply($, containers).done(() => {\n this.defer.resolve(this)\n this.ready = true\n this.trigger(Events.CORE_READY)\n })\n }\n\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n load(sources, mimeType) {\n this.options.mimeType = mimeType\n sources = sources && sources.constructor === Array ? sources : [sources]\n this.containers.forEach((container) => container.destroy())\n this.mediaControl.container = null\n this.containerFactory.options = $.extend(this.options, { sources })\n this.containerFactory.createContainers().then((containers) => {\n this.setupContainers(containers)\n })\n }\n\n destroy() {\n this.disableResizeObserver()\n this.containers.forEach((container) => container.destroy())\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n this.mediaControl.destroy()\n $(document).unbind('fullscreenchange', this._boundFullscreenHandler)\n $(document).unbind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).unbind('mozfullscreenchange', this._boundFullscreenHandler)\n }\n\n handleFullscreenChange() {\n this.trigger(Events.CORE_FULLSCREEN, Fullscreen.isFullscreen())\n this.updateSize()\n this.mediaControl.show()\n }\n\n handleWindowResize(event) {\n let orientation = ($(window).width() > $(window).height()) ? 'landscape' : 'portrait'\n if (this._screenOrientation === orientation) return\n this._screenOrientation = orientation\n\n this.trigger(Events.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n })\n }\n\n setMediaControlContainer(container) {\n this.mediaControl.setContainer(container)\n this.mediaControl.render()\n }\n\n disableMediaControl() {\n this.mediaControl.disable()\n this.$el.removeClass('nocursor')\n }\n\n enableMediaControl() {\n this.mediaControl.enable()\n }\n\n removeContainer(container) {\n this.stopListening(container)\n this.containers = this.containers.filter((c) => c !== container)\n }\n\n appendContainer(container) {\n this.listenTo(container, Events.CONTAINER_DESTROYED, this.removeContainer)\n this.containers.push(container)\n }\n\n setupContainers(containers) {\n containers.map(this.appendContainer.bind(this))\n this.trigger(Events.CORE_CONTAINERS_CREATED)\n this.renderContainers()\n this.setupMediaControl(this.getCurrentContainer())\n this.render()\n this.appendToParent()\n return this.containers\n }\n\n renderContainers() {\n this.containers.map((container) => this.el.appendChild(container.render().el))\n }\n\n createContainer(source, options) {\n const container = this.containerFactory.createContainer(source, options)\n this.appendContainer(container)\n this.el.appendChild(container.render().el)\n return container\n }\n\n setupMediaControl(container) {\n if (this.mediaControl) { this.mediaControl.setContainer(container) } else {\n this.mediaControl = this.createMediaControl($.extend({ container: container, focusElement: this.el }, this.options))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_FULLSCREEN, this.toggleFullscreen)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_SHOW, this.onMediaControlShow.bind(this, true))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_HIDE, this.onMediaControlShow.bind(this, false))\n }\n }\n\n createMediaControl(options) {\n if(options.mediacontrol && options.mediacontrol.external)\n return new options.mediacontrol.external(options).render()\n else\n return new MediaControl(options).render()\n\n }\n\n getCurrentContainer() {\n if (!this.mediaControl || !this.mediaControl.container)\n return this.containers[0]\n\n return this.mediaControl.container\n }\n\n getCurrentPlayback() {\n const container = this.getCurrentContainer()\n return container && container.playback\n }\n\n getPlaybackType() {\n const container = this.getCurrentContainer()\n return container && container.getPlaybackType()\n }\n\n toggleFullscreen() {\n if (!Fullscreen.isFullscreen()) {\n Fullscreen.requestFullscreen(this.el)\n if(!Browser.isiOS)\n this.$el.addClass('fullscreen')\n\n } else {\n Fullscreen.cancelFullscreen()\n if(!Browser.isiOS)\n this.$el.removeClass('fullscreen nocursor')\n\n }\n this.mediaControl.show()\n }\n\n showMediaControl(event) {\n this.mediaControl.show(event)\n }\n\n hideMediaControl() {\n this.mediaControl.hide(this.options.hideMediaControlDelay)\n }\n\n onMediaControlShow(showing) {\n this.getCurrentContainer().trigger(showing?Events.CONTAINER_MEDIACONTROL_SHOW:Events.CONTAINER_MEDIACONTROL_HIDE)\n\n if (showing)\n this.$el.removeClass('nocursor')\n else if (Fullscreen.isFullscreen())\n this.$el.addClass('nocursor')\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.configureDomRecycler()\n const sources = options.source || options.sources\n\n if (sources) { this.load(sources, options.mimeType || this.options.mimeType) } else {\n this.trigger(Events.CORE_OPTIONS_CHANGE)\n\n this.containers.forEach((container) => {\n container.configure(this.options)\n })\n }\n }\n\n appendToParent() {\n let hasCoreParent = this.$el.parent() && this.$el.parent().length\n !hasCoreParent && this.$el.appendTo(this.options.parentElement)\n }\n\n render() {\n this.$el.append(this.mediaControl.render().el)\n\n if (!style)\n style = Styler.getStyleFor(fontStyle, { baseUrl: this.options.baseUrl })\n\n $('head').append(style)\n\n this.options.width = this.options.width || this.$el.width()\n this.options.height = this.options.height || this.$el.height()\n const size = { width: this.options.width, height: this.options.height }\n this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size\n this.updateSize()\n\n this.previousSize = { width: this.$el.width(), height: this.$el.height() }\n\n this.enableResizeObserver()\n\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core/core.js","import ContainerFactory from './container_factory'\nexport default ContainerFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The ContainerFactory is responsible for manage playback bootstrap and create containers.\n */\n\nimport BaseObject from '../../base/base_object'\nimport Events from '../../base/events'\nimport Container from '../../components/container'\nimport $ from 'clappr-zepto'\n\nexport default class ContainerFactory extends BaseObject {\n get options() { return this._options }\n set options(options) { this._options = options }\n\n constructor(options, loader, i18n) {\n super(options)\n this._i18n = i18n\n this.loader = loader\n }\n\n createContainers() {\n return $.Deferred((promise) => {\n promise.resolve(this.options.sources.map((source) => {\n return this.createContainer(source)\n }))\n })\n }\n\n findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(p => p.canPlay(source, mimeType))[0]\n }\n\n createContainer(source) {\n let resolvedSource = null,\n mimeType = this.options.mimeType\n if (typeof source === 'object') {\n resolvedSource = source.source.toString()\n if (source.mimeType)\n mimeType = source.mimeType\n\n } else { resolvedSource = source.toString() }\n\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource\n\n let options = $.extend({}, this.options, {\n src: resolvedSource,\n mimeType: mimeType\n })\n const playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType)\n const playback = new playbackPlugin(options, this._i18n)\n\n options = $.extend({}, options, { playback: playback })\n\n const container = new Container(options, this._i18n)\n const defer = $.Deferred()\n defer.promise(container)\n this.addContainerPlugins(container)\n this.listenToOnce(container, Events.CONTAINER_READY, () => defer.resolve(container))\n return container\n }\n\n addContainerPlugins(container) {\n this.loader.containerPlugins.forEach((Plugin) => {\n container.addPlugin(new Plugin(container))\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/container_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Container is responsible for the video rendering and state\n */\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\n\nimport './public/style.scss'\n\nimport $ from 'clappr-zepto'\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class Container extends UIObject {\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get name() { return 'Container' }\n get attributes() { return { class: 'container', 'data-container': '' } }\n get events() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'doubleTap': 'dblClicked',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.playback.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.playback.buffering\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this._i18n\n }\n\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n get hasClosedCaptionsTracks() {\n return this.playback.hasClosedCaptionsTracks\n }\n\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n get closedCaptionsTracks() {\n return this.playback.closedCaptionsTracks\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n get closedCaptionsTrackId() {\n return this.playback.closedCaptionsTrackId\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n set closedCaptionsTrackId(trackId) {\n this.playback.closedCaptionsTrackId = trackId\n }\n\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n constructor(options, i18n) {\n super(options)\n this._i18n = i18n\n this.currentTime = 0\n this.volume = 100\n this.playback = options.playback\n this.settings = $.extend({}, this.playback.settings)\n this.isReady = false\n this.mediaControlDisabled = false\n this.plugins = [this.playback]\n this.bindEvents()\n }\n\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n bindEvents() {\n this.listenTo(this.playback, Events.PLAYBACK_PROGRESS, this.progress)\n this.listenTo(this.playback, Events.PLAYBACK_TIMEUPDATE, this.timeUpdated)\n this.listenTo(this.playback, Events.PLAYBACK_READY, this.ready)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERING, this.onBuffering)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERFULL, this.bufferfull)\n this.listenTo(this.playback, Events.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_LOADEDMETADATA, this.loadedMetadata)\n this.listenTo(this.playback, Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_BITRATE, this.updateBitrate)\n this.listenTo(this.playback, Events.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_DVR, this.playbackDvrStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_SEEKED, this.onSeeked)\n this.listenTo(this.playback, Events.PLAYBACK_ENDED, this.onEnded)\n this.listenTo(this.playback, Events.PLAYBACK_PLAY, this.playing)\n this.listenTo(this.playback, Events.PLAYBACK_PAUSE, this.paused)\n this.listenTo(this.playback, Events.PLAYBACK_STOP, this.stopped)\n this.listenTo(this.playback, Events.PLAYBACK_ERROR, this.error)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged)\n }\n\n subtitleAvailable() {\n this.trigger(Events.CONTAINER_SUBTITLE_AVAILABLE)\n }\n\n subtitleChanged(track) {\n this.trigger(Events.CONTAINER_SUBTITLE_CHANGED, track)\n }\n\n playbackStateChanged(state) {\n this.trigger(Events.CONTAINER_PLAYBACKSTATE, state)\n }\n\n playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings\n this.dvrInUse = dvrInUse\n this.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse)\n }\n\n updateBitrate(newBitrate) {\n this.trigger(Events.CONTAINER_BITRATE, newBitrate)\n }\n\n statsReport(metrics) {\n this.trigger(Events.CONTAINER_STATS_REPORT, metrics)\n }\n\n getPlaybackType() {\n return this.playback.getPlaybackType()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return !!this.playback.dvrEnabled\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return !!this.dvrInUse\n }\n\n /**\n * destroys the container\n * @method destroy\n */\n destroy() {\n this.trigger(Events.CONTAINER_DESTROYED, this, this.name)\n this.stopListening()\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n }\n\n setStyle(style) {\n this.$el.css(style)\n }\n\n animate(style, duration) {\n return this.$el.animate(style, duration).promise()\n }\n\n ready() {\n this.isReady = true\n this.trigger(Events.CONTAINER_READY, this.name)\n }\n\n isPlaying() {\n return this.playback.isPlaying()\n }\n\n getStartTimeOffset() {\n return this.playback.getStartTimeOffset()\n }\n\n getCurrentTime() {\n return this.currentTime\n }\n\n getDuration() {\n return this.playback.getDuration()\n }\n\n error(errorObj) {\n if (!this.isReady)\n this.ready()\n\n this.trigger(Events.CONTAINER_ERROR, { error: errorObj, container: this }, this.name)\n }\n\n loadedMetadata(metadata) {\n this.trigger(Events.CONTAINER_LOADEDMETADATA, metadata)\n }\n\n timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current\n this.trigger(Events.CONTAINER_TIMEUPDATE, timeProgress, this.name)\n }\n\n progress(...args) {\n this.trigger(Events.CONTAINER_PROGRESS, ...args, this.name)\n }\n\n playing() {\n this.trigger(Events.CONTAINER_PLAY, this.name)\n }\n\n paused() {\n this.trigger(Events.CONTAINER_PAUSE, this.name)\n }\n\n /**\n * plays the playback\n * @method play\n */\n play() {\n this.playback.play()\n }\n\n /**\n * stops the playback\n * @method stop\n */\n stop() {\n this.playback.stop()\n this.currentTime = 0\n }\n\n /**\n * pauses the playback\n * @method pause\n */\n pause() {\n this.playback.pause()\n }\n\n onEnded() {\n this.trigger(Events.CONTAINER_ENDED, this, this.name)\n this.currentTime = 0\n }\n\n stopped() {\n this.trigger(Events.CONTAINER_STOP)\n }\n\n clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CLICK, this, this.name)\n\n }\n\n dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_DBLCLICK, this, this.name)\n\n }\n\n onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CONTEXTMENU, event, this.name)\n\n }\n\n seek(time) {\n this.trigger(Events.CONTAINER_SEEK, time, this.name)\n this.playback.seek(time)\n }\n\n onSeeked() {\n this.trigger(Events.CONTAINER_SEEKED, this.name)\n }\n\n seekPercentage(percentage) {\n const duration = this.getDuration()\n if (percentage >= 0 && percentage <= 100) {\n const time = duration * (percentage / 100)\n this.seek(time)\n }\n }\n\n setVolume(value) {\n this.volume = parseInt(value, 10)\n this.trigger(Events.CONTAINER_VOLUME, value, this.name)\n this.playback.volume(value)\n }\n\n fullscreen() {\n this.trigger(Events.CONTAINER_FULLSCREEN, this.name)\n }\n\n onBuffering() {\n this.trigger(Events.CONTAINER_STATE_BUFFERING, this.name)\n }\n\n bufferfull() {\n this.trigger(Events.CONTAINER_STATE_BUFFERFULL, this.name)\n }\n\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_ENTER)\n\n }\n\n mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_LEAVE)\n\n }\n\n settingsUpdate() {\n this.settings = this.playback.settings\n this.trigger(Events.CONTAINER_SETTINGSUPDATE)\n }\n\n highDefinitionUpdate(isHD) {\n this.trigger(Events.CONTAINER_HIGHDEFINITIONUPDATE, isHD)\n }\n\n isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse()\n }\n\n disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true\n this.trigger(Events.CONTAINER_MEDIACONTROL_DISABLE)\n }\n }\n\n enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false\n this.trigger(Events.CONTAINER_MEDIACONTROL_ENABLE)\n }\n }\n\n updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.$el.removeClass('chromeless')\n else\n this.$el.addClass('chromeless')\n\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.updateStyle()\n this.trigger(Events.CONTAINER_OPTIONS_CHANGE)\n }\n\n render() {\n this.$el.append(this.playback.render().el)\n this.updateStyle()\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container/container.js","// style-loader: Adds some css to the DOM by adding a ').html((0, _template2.default)(style.toString())(options));\n }\n};\n\nexports.default = Styler;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _loader = __webpack_require__(157);\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _loader2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(159), __esModule: true };\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _from = __webpack_require__(79);\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _flash = __webpack_require__(170);\n\nvar _flash2 = _interopRequireDefault(_flash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _flash2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _html5_audio = __webpack_require__(176);\n\nvar _html5_audio2 = _interopRequireDefault(_html5_audio);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _html5_audio2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _flashls = __webpack_require__(177);\n\nvar _flashls2 = _interopRequireDefault(_flashls);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _flashls2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _hls = __webpack_require__(180);\n\nvar _hls2 = _interopRequireDefault(_hls);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _hls2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _html_img = __webpack_require__(182);\n\nvar _html_img2 = _interopRequireDefault(_html_img);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _html_img2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _no_op = __webpack_require__(185);\n\nvar _no_op2 = _interopRequireDefault(_no_op);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _no_op2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _poster = __webpack_require__(201);\n\nvar _poster2 = _interopRequireDefault(_poster);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _poster2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _player = __webpack_require__(89);\n\nvar _player2 = _interopRequireDefault(_player);\n\nvar _utils = __webpack_require__(5);\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _events = __webpack_require__(4);\n\nvar _events2 = _interopRequireDefault(_events);\n\nvar _playback = __webpack_require__(9);\n\nvar _playback2 = _interopRequireDefault(_playback);\n\nvar _container_plugin = __webpack_require__(37);\n\nvar _container_plugin2 = _interopRequireDefault(_container_plugin);\n\nvar _core_plugin = __webpack_require__(30);\n\nvar _core_plugin2 = _interopRequireDefault(_core_plugin);\n\nvar _ui_core_plugin = __webpack_require__(38);\n\nvar _ui_core_plugin2 = _interopRequireDefault(_ui_core_plugin);\n\nvar _ui_container_plugin = __webpack_require__(36);\n\nvar _ui_container_plugin2 = _interopRequireDefault(_ui_container_plugin);\n\nvar _base_object = __webpack_require__(17);\n\nvar _base_object2 = _interopRequireDefault(_base_object);\n\nvar _ui_object = __webpack_require__(21);\n\nvar _ui_object2 = _interopRequireDefault(_ui_object);\n\nvar _browser = __webpack_require__(13);\n\nvar _browser2 = _interopRequireDefault(_browser);\n\nvar _container = __webpack_require__(73);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _core = __webpack_require__(72);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _loader = __webpack_require__(78);\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nvar _mediator = __webpack_require__(24);\n\nvar _mediator2 = _interopRequireDefault(_mediator);\n\nvar _media_control = __webpack_require__(74);\n\nvar _media_control2 = _interopRequireDefault(_media_control);\n\nvar _player_info = __webpack_require__(34);\n\nvar _player_info2 = _interopRequireDefault(_player_info);\n\nvar _base_flash_playback = __webpack_require__(59);\n\nvar _base_flash_playback2 = _interopRequireDefault(_base_flash_playback);\n\nvar _flash = __webpack_require__(81);\n\nvar _flash2 = _interopRequireDefault(_flash);\n\nvar _flashls = __webpack_require__(83);\n\nvar _flashls2 = _interopRequireDefault(_flashls);\n\nvar _hls = __webpack_require__(84);\n\nvar _hls2 = _interopRequireDefault(_hls);\n\nvar _html5_audio = __webpack_require__(82);\n\nvar _html5_audio2 = _interopRequireDefault(_html5_audio);\n\nvar _html5_video = __webpack_require__(35);\n\nvar _html5_video2 = _interopRequireDefault(_html5_video);\n\nvar _html_img = __webpack_require__(85);\n\nvar _html_img2 = _interopRequireDefault(_html_img);\n\nvar _no_op = __webpack_require__(86);\n\nvar _no_op2 = _interopRequireDefault(_no_op);\n\nvar _poster = __webpack_require__(87);\n\nvar _poster2 = _interopRequireDefault(_poster);\n\nvar _log = __webpack_require__(55);\n\nvar _log2 = _interopRequireDefault(_log);\n\nvar _styler = __webpack_require__(77);\n\nvar _styler2 = _interopRequireDefault(_styler);\n\nvar _vendor = __webpack_require__(56);\n\nvar _vendor2 = _interopRequireDefault(_vendor);\n\nvar _template = __webpack_require__(8);\n\nvar _template2 = _interopRequireDefault(_template);\n\nvar _clapprZepto = __webpack_require__(6);\n\nvar _clapprZepto2 = _interopRequireDefault(_clapprZepto);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar version = \"0.2.83\"; // Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nexports.default = {\n Player: _player2.default,\n Mediator: _mediator2.default,\n Events: _events2.default,\n Browser: _browser2.default,\n PlayerInfo: _player_info2.default,\n MediaControl: _media_control2.default,\n ContainerPlugin: _container_plugin2.default,\n UIContainerPlugin: _ui_container_plugin2.default,\n CorePlugin: _core_plugin2.default,\n UICorePlugin: _ui_core_plugin2.default,\n Playback: _playback2.default,\n Container: _container2.default,\n Core: _core2.default,\n Loader: _loader2.default,\n BaseObject: _base_object2.default,\n UIObject: _ui_object2.default,\n Utils: _utils2.default,\n BaseFlashPlayback: _base_flash_playback2.default,\n Flash: _flash2.default,\n FlasHLS: _flashls2.default,\n HLS: _hls2.default,\n HTML5Audio: _html5_audio2.default,\n HTML5Video: _html5_video2.default,\n HTMLImg: _html_img2.default,\n NoOp: _no_op2.default,\n Poster: _poster2.default,\n Log: _log2.default,\n Styler: _styler2.default,\n Vendor: _vendor2.default,\n version: version,\n template: _template2.default,\n $: _clapprZepto2.default\n};\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _keys = __webpack_require__(31);\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _utils = __webpack_require__(5);\n\nvar _base_object = __webpack_require__(17);\n\nvar _base_object2 = _interopRequireDefault(_base_object);\n\nvar _events = __webpack_require__(4);\n\nvar _events2 = _interopRequireDefault(_events);\n\nvar _browser = __webpack_require__(13);\n\nvar _browser2 = _interopRequireDefault(_browser);\n\nvar _core_factory = __webpack_require__(132);\n\nvar _core_factory2 = _interopRequireDefault(_core_factory);\n\nvar _loader = __webpack_require__(78);\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nvar _player_info = __webpack_require__(34);\n\nvar _player_info2 = _interopRequireDefault(_player_info);\n\nvar _clapprZepto = __webpack_require__(6);\n\nvar _clapprZepto2 = _interopRequireDefault(_clapprZepto);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nvar baseUrl = (0, _utils.currentScriptUrl)().replace(/\\/[^/]+$/, '');\n\n/**\n * @class Player\n * @constructor\n * @extends BaseObject\n * @module components\n * @example\n * ### Using the Player\n *\n * Add the following script on your HTML:\n * ```html\n * \n * \n * \n * ```\n * Now, create the player:\n * ```html\n * \n *
\n * \n * \n * ```\n */\n\nvar Player = function (_BaseObject) {\n (0, _inherits3.default)(Player, _BaseObject);\n (0, _createClass3.default)(Player, [{\n key: 'loader',\n set: function set(loader) {\n this._loader = loader;\n },\n get: function get() {\n if (!this._loader) this._loader = new _loader2.default(this.options.plugins || {}, this.options.playerId);\n\n return this._loader;\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n\n }, {\n key: 'ended',\n get: function get() {\n return this.core.mediaControl.container.ended;\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n\n }, {\n key: 'buffering',\n get: function get() {\n return this.core.mediaControl.container.buffering;\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n\n }, {\n key: 'isReady',\n get: function get() {\n return !!this._ready;\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n\n }, {\n key: 'eventsMapping',\n get: function get() {\n return {\n onReady: _events2.default.PLAYER_READY,\n onResize: _events2.default.PLAYER_RESIZE,\n onPlay: _events2.default.PLAYER_PLAY,\n onPause: _events2.default.PLAYER_PAUSE,\n onStop: _events2.default.PLAYER_STOP,\n onEnded: _events2.default.PLAYER_ENDED,\n onSeek: _events2.default.PLAYER_SEEK,\n onError: _events2.default.PLAYER_ERROR,\n onTimeUpdate: _events2.default.PLAYER_TIMEUPDATE,\n onVolumeUpdate: _events2.default.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: _events2.default.PLAYER_SUBTITLE_AVAILABLE\n };\n }\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {String} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload]\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength]\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu]\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n */\n\n }]);\n\n function Player(options) {\n (0, _classCallCheck3.default)(this, Player);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _BaseObject.call(this, options));\n\n var defaultOptions = { playerId: (0, _utils.uniqueId)(''), persistConfig: true, width: 640, height: 360, baseUrl: baseUrl, allowUserInteraction: _browser2.default.isMobile };\n _this._options = _clapprZepto2.default.extend(defaultOptions, options);\n _this.options.sources = _this._normalizeSources(options);\n if (!_this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n _this.options.allowUserInteraction = true;\n }\n if (!_this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n _this.options.disableKeyboardShortcuts = true;\n }\n _this._registerOptionEventListeners();\n _this._coreFactory = new _core_factory2.default(_this);\n _this.playerInfo = _player_info2.default.getInstance(_this.options.playerId);\n _this.playerInfo.currentSize = { width: options.width, height: options.height };\n _this.playerInfo.options = _this.options;\n if (_this.options.parentId) _this.setParentId(_this.options.parentId);else if (_this.options.parent) _this.attachTo(_this.options.parent);\n\n return _this;\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n\n\n Player.prototype.setParentId = function setParentId(parentId) {\n var el = document.querySelector(parentId);\n if (el) this.attachTo(el);\n\n return this;\n };\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n\n\n Player.prototype.attachTo = function attachTo(element) {\n this.options.parentElement = element;\n this.core = this._coreFactory.create();\n this._addEventListeners();\n return this;\n };\n\n Player.prototype._addEventListeners = function _addEventListeners() {\n if (!this.core.isReady) this.listenToOnce(this.core, _events2.default.CORE_READY, this._onReady);else this._onReady();\n\n this.listenTo(this.core.mediaControl, _events2.default.MEDIACONTROL_CONTAINERCHANGED, this._containerChanged);\n this.listenTo(this.core, _events2.default.CORE_FULLSCREEN, this._onFullscreenChange);\n return this;\n };\n\n Player.prototype._addContainerEventListeners = function _addContainerEventListeners() {\n var container = this.core.mediaControl.container;\n if (container) {\n this.listenTo(container, _events2.default.CONTAINER_PLAY, this._onPlay);\n this.listenTo(container, _events2.default.CONTAINER_PAUSE, this._onPause);\n this.listenTo(container, _events2.default.CONTAINER_STOP, this._onStop);\n this.listenTo(container, _events2.default.CONTAINER_ENDED, this._onEnded);\n this.listenTo(container, _events2.default.CONTAINER_SEEK, this._onSeek);\n this.listenTo(container, _events2.default.CONTAINER_ERROR, this._onError);\n this.listenTo(container, _events2.default.CONTAINER_TIMEUPDATE, this._onTimeUpdate);\n this.listenTo(container, _events2.default.CONTAINER_VOLUME, this._onVolumeUpdate);\n this.listenTo(container, _events2.default.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable);\n }\n return this;\n };\n\n Player.prototype._registerOptionEventListeners = function _registerOptionEventListeners() {\n var _this2 = this;\n\n var userEvents = this.options.events || {};\n (0, _keys2.default)(userEvents).forEach(function (userEvent) {\n var eventType = _this2.eventsMapping[userEvent];\n if (eventType) {\n var eventFunction = userEvents[userEvent];\n eventFunction = typeof eventFunction === 'function' && eventFunction;\n eventFunction && _this2.on(eventType, eventFunction);\n }\n });\n return this;\n };\n\n Player.prototype._containerChanged = function _containerChanged() {\n this.stopListening();\n this._addEventListeners();\n };\n\n Player.prototype._onReady = function _onReady() {\n this._ready = true;\n this._addContainerEventListeners();\n this.trigger(_events2.default.PLAYER_READY);\n };\n\n Player.prototype._onFullscreenChange = function _onFullscreenChange(fullscreen) {\n this.trigger(_events2.default.PLAYER_FULLSCREEN, fullscreen);\n };\n\n Player.prototype._onVolumeUpdate = function _onVolumeUpdate(volume) {\n this.trigger(_events2.default.PLAYER_VOLUMEUPDATE, volume);\n };\n\n Player.prototype._onSubtitleAvailable = function _onSubtitleAvailable() {\n this.trigger(_events2.default.PLAYER_SUBTITLE_AVAILABLE);\n };\n\n Player.prototype._onPlay = function _onPlay() {\n this.trigger(_events2.default.PLAYER_PLAY);\n };\n\n Player.prototype._onPause = function _onPause() {\n this.trigger(_events2.default.PLAYER_PAUSE);\n };\n\n Player.prototype._onStop = function _onStop() {\n this.trigger(_events2.default.PLAYER_STOP, this.getCurrentTime());\n };\n\n Player.prototype._onEnded = function _onEnded() {\n this.trigger(_events2.default.PLAYER_ENDED);\n };\n\n Player.prototype._onSeek = function _onSeek(time) {\n this.trigger(_events2.default.PLAYER_SEEK, time);\n };\n\n Player.prototype._onTimeUpdate = function _onTimeUpdate(timeProgress) {\n this.trigger(_events2.default.PLAYER_TIMEUPDATE, timeProgress);\n };\n\n Player.prototype._onError = function _onError(error) {\n this.trigger(_events2.default.PLAYER_ERROR, error);\n };\n\n Player.prototype._normalizeSources = function _normalizeSources(options) {\n var sources = options.sources || (options.source !== undefined ? [options.source] : []);\n return sources.length === 0 ? [{ source: '', mimeType: '' }] : sources;\n };\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n\n\n Player.prototype.resize = function resize(size) {\n this.core.resize(size);\n return this;\n };\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <>, mimeType: <>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n\n\n Player.prototype.load = function load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined) this.configure({ autoPlay: !!autoPlay });\n\n this.core.load(sources, mimeType);\n return this;\n };\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n\n\n Player.prototype.destroy = function destroy() {\n this.core.destroy();\n return this;\n };\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n\n\n Player.prototype.consent = function consent() {\n this.core.getCurrentPlayback().consent();\n return this;\n };\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n\n\n Player.prototype.play = function play() {\n this.core.mediaControl.container.play();\n return this;\n };\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n\n\n Player.prototype.pause = function pause() {\n this.core.mediaControl.container.pause();\n return this;\n };\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n\n\n Player.prototype.stop = function stop() {\n this.core.mediaControl.container.stop();\n return this;\n };\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n\n\n Player.prototype.seek = function seek(time) {\n this.core.mediaControl.container.seek(time);\n return this;\n };\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n\n\n Player.prototype.seekPercentage = function seekPercentage(percentage) {\n this.core.mediaControl.container.seekPercentage(percentage);\n return this;\n };\n\n /**\n * Set the volume for the current video (`source`).\n * @method setVolume\n * @param {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n * @return {Player} itself\n */\n\n\n Player.prototype.setVolume = function setVolume(volume) {\n if (this.core && this.core.mediaControl) this.core.mediaControl.setVolume(volume);\n\n return this;\n };\n\n /**\n * Get the volume for the current video\n * @method getVolume\n * @return {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n */\n\n\n Player.prototype.getVolume = function getVolume() {\n return this.core && this.core.mediaControl ? this.core.mediaControl.volume : 0;\n };\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n\n\n Player.prototype.mute = function mute() {\n this._mutedVolume = this.getVolume();\n this.setVolume(0);\n return this;\n };\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n\n\n Player.prototype.unmute = function unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100);\n this._mutedVolume = null;\n return this;\n };\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n\n\n Player.prototype.isPlaying = function isPlaying() {\n return this.core.mediaControl.container.isPlaying();\n };\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n\n\n Player.prototype.isDvrEnabled = function isDvrEnabled() {\n return this.core.mediaControl.container.isDvrEnabled();\n };\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n\n\n Player.prototype.isDvrInUse = function isDvrInUse() {\n return this.core.mediaControl.container.isDvrInUse();\n };\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n\n\n Player.prototype.configure = function configure(options) {\n this.core.configure(options);\n return this;\n };\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n\n\n Player.prototype.getPlugin = function getPlugin(name) {\n var plugins = this.core.plugins.concat(this.core.mediaControl.container.plugins);\n return plugins.filter(function (plugin) {\n return plugin.name === name;\n })[0];\n };\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n\n\n Player.prototype.getCurrentTime = function getCurrentTime() {\n return this.core.mediaControl.container.getCurrentTime();\n };\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n\n\n Player.prototype.getStartTimeOffset = function getStartTimeOffset() {\n return this.core.mediaControl.container.getStartTimeOffset();\n };\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n\n\n Player.prototype.getDuration = function getDuration() {\n return this.core.mediaControl.container.getDuration();\n };\n\n return Player;\n}(_base_object2.default);\n\nexports.default = Player;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(91);\nmodule.exports = __webpack_require__(11).Object.keys;\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(39)\n , $keys = __webpack_require__(25);\n\n__webpack_require__(62)('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(41);\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(14)\n , toLength = __webpack_require__(61)\n , toIndex = __webpack_require__(94);\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(42)\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(97), __esModule: true };\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(65);\n__webpack_require__(103);\nmodule.exports = __webpack_require__(51).f('iterator');\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(42)\n , defined = __webpack_require__(40);\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(49)\n , descriptor = __webpack_require__(28)\n , setToStringTag = __webpack_require__(50)\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(22)(IteratorPrototype, __webpack_require__(12)('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(16)\n , anObject = __webpack_require__(23)\n , getKeys = __webpack_require__(25);\n\nmodule.exports = __webpack_require__(20) ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(15).document && document.documentElement;\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(18)\n , toObject = __webpack_require__(39)\n , IE_PROTO = __webpack_require__(43)('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(104);\nvar global = __webpack_require__(15)\n , hide = __webpack_require__(22)\n , Iterators = __webpack_require__(29)\n , TO_STRING_TAG = __webpack_require__(12)('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype;\n if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(105)\n , step = __webpack_require__(106)\n , Iterators = __webpack_require__(29)\n , toIObject = __webpack_require__(14);\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(66)(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(){ /* empty */ };\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(108), __esModule: true };\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(109);\n__webpack_require__(115);\n__webpack_require__(116);\n__webpack_require__(117);\nmodule.exports = __webpack_require__(11).Symbol;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(15)\n , has = __webpack_require__(18)\n , DESCRIPTORS = __webpack_require__(20)\n , $export = __webpack_require__(19)\n , redefine = __webpack_require__(67)\n , META = __webpack_require__(110).KEY\n , $fails = __webpack_require__(27)\n , shared = __webpack_require__(44)\n , setToStringTag = __webpack_require__(50)\n , uid = __webpack_require__(32)\n , wks = __webpack_require__(12)\n , wksExt = __webpack_require__(51)\n , wksDefine = __webpack_require__(52)\n , keyOf = __webpack_require__(111)\n , enumKeys = __webpack_require__(112)\n , isArray = __webpack_require__(113)\n , anObject = __webpack_require__(23)\n , toIObject = __webpack_require__(14)\n , toPrimitive = __webpack_require__(47)\n , createDesc = __webpack_require__(28)\n , _create = __webpack_require__(49)\n , gOPNExt = __webpack_require__(114)\n , $GOPD = __webpack_require__(54)\n , $DP = __webpack_require__(16)\n , $keys = __webpack_require__(25)\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __webpack_require__(69).f = gOPNExt.f = $getOwnPropertyNames;\n __webpack_require__(53).f = $propertyIsEnumerable;\n __webpack_require__(68).f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !__webpack_require__(48)){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(22)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar META = __webpack_require__(32)('meta')\n , isObject = __webpack_require__(26)\n , has = __webpack_require__(18)\n , setDesc = __webpack_require__(16).f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !__webpack_require__(27)(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getKeys = __webpack_require__(25)\n , toIObject = __webpack_require__(14);\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// all enumerable object keys, includes symbols\nvar getKeys = __webpack_require__(25)\n , gOPS = __webpack_require__(68)\n , pIE = __webpack_require__(53);\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(41);\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = __webpack_require__(14)\n , gOPN = __webpack_require__(69).f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports) {\n\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(52)('asyncIterator');\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(52)('observable');\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(119);\nvar $Object = __webpack_require__(11).Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(19);\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !__webpack_require__(20), 'Object', {defineProperty: __webpack_require__(16).f});\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(121), __esModule: true };\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(122);\nmodule.exports = __webpack_require__(11).Object.setPrototypeOf;\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = __webpack_require__(19);\n$export($export.S, 'Object', {setPrototypeOf: __webpack_require__(123).set});\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = __webpack_require__(26)\n , anObject = __webpack_require__(23);\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = __webpack_require__(46)(Function.call, __webpack_require__(54).f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(125);\nvar $Object = __webpack_require__(11).Object;\nmodule.exports = function create(P, D){\n return $Object.create(P, D);\n};\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(19)\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: __webpack_require__(49)});\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(127), __esModule: true };\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(128);\nvar $Object = __webpack_require__(11).Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = __webpack_require__(14)\n , $getOwnPropertyDescriptor = __webpack_require__(54).f;\n\n__webpack_require__(62)('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function value(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null) throw new TypeError('\"this\" is null or not defined');\n\n var o = Object(this);\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n var len = o.length >>> 0;\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function') throw new TypeError('predicate must be a function');\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n var thisArg = arguments[1];\n\n // 5. Let k be 0.\n var k = 0;\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n var kValue = o[k];\n if (predicate.call(thisArg, kValue, k, o)) return kValue;\n\n // e. Increase k by 1.\n k++;\n }\n\n // 7. Return undefined.\n return undefined;\n }\n });\n}\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _vendor = __webpack_require__(56);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BOLD = 'font-weight: bold; font-size: 13px;';\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nvar INFO = 'color: #006600;' + BOLD;\nvar DEBUG = 'color: #0000ff;' + BOLD;\nvar WARN = 'color: #ff8000;' + BOLD;\nvar ERROR = 'color: #ff0000;' + BOLD;\n\nvar LEVEL_DEBUG = 0;\nvar LEVEL_INFO = 1;\nvar LEVEL_WARN = 2;\nvar LEVEL_ERROR = 3;\nvar LEVEL_DISABLED = LEVEL_ERROR;\n\nvar COLORS = [DEBUG, INFO, WARN, ERROR, ERROR];\nvar DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled'];\n\nvar Log = function () {\n function Log() {\n var _this = this;\n\n var level = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : LEVEL_INFO;\n var offLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : LEVEL_DISABLED;\n (0, _classCallCheck3.default)(this, Log);\n\n this.kibo = new _vendor.Kibo();\n this.kibo.down(['ctrl shift d'], function () {\n return _this.onOff();\n });\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress'];\n this.level = level;\n this.offLevel = offLevel;\n }\n\n Log.prototype.debug = function debug(klass) {\n this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1));\n };\n\n Log.prototype.info = function info(klass) {\n this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1));\n };\n\n Log.prototype.warn = function warn(klass) {\n this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1));\n };\n\n Log.prototype.error = function error(klass) {\n this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1));\n };\n\n Log.prototype.onOff = function onOff() {\n if (this.level === this.offLevel) {\n this.level = this.previousLevel;\n } else {\n this.previousLevel = this.level;\n this.level = this.offLevel;\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log) window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN);\n };\n\n Log.prototype.level = function level(newLevel) {\n this.level = newLevel;\n };\n\n Log.prototype.log = function log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return;\n if (level < this.level) return;\n\n if (!message) {\n message = klass;\n klass = null;\n }\n var color = COLORS[level];\n var klassDescription = '';\n if (klass) klassDescription = '[' + klass + ']';\n\n if (window.console && window.console.log) window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message));\n };\n\n return Log;\n}();\n\nexports.default = Log;\n\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG;\nLog.LEVEL_INFO = LEVEL_INFO;\nLog.LEVEL_WARN = LEVEL_WARN;\nLog.LEVEL_ERROR = LEVEL_ERROR;\n\nLog.getInstance = function () {\n if (this._instance === undefined) {\n this._instance = new this();\n this._instance.previousLevel = this._instance.level;\n this._instance.level = this._instance.offLevel;\n }\n return this._instance;\n};\n\nLog.setLevel = function (level) {\n this.getInstance().level = level;\n};\n\nLog.debug = function () {\n this.getInstance().debug.apply(this.getInstance(), arguments);\n};\nLog.info = function () {\n this.getInstance().info.apply(this.getInstance(), arguments);\n};\nLog.warn = function () {\n this.getInstance().warn.apply(this.getInstance(), arguments);\n};\nLog.error = function () {\n this.getInstance().error.apply(this.getInstance(), arguments);\n};\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function Kibo(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function () {\n for (var key in Kibo.KEY_NAMES_BY_CODE) {\n if (Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = function () {\n if (document.addEventListener) {\n return function (element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n } else if (document.attachEvent) {\n return function (element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n}();\n\nKibo.unregisterEvent = function () {\n if (document.removeEventListener) {\n return function (element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n } else if (document.detachEvent) {\n return function (element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n}();\n\nKibo.stringContains = function (string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function (string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function (string) {\n return string.toLowerCase().replace(/^./, function (match) {\n return match.toUpperCase();\n });\n};\n\nKibo.isString = function (what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = function () {\n if (Array.prototype.indexOf) {\n return function (haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n } else {\n return function (haystack, needle) {\n for (var i = 0; i < haystack.length; i++) {\n if (haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n}();\n\nKibo.extractModifiers = function (keyCombination) {\n var modifiers, i;\n modifiers = [];\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n if (Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n};\n\nKibo.extractKey = function (keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for (i = 0; i < keys.length; i++) {\n if (!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function (keyCombination) {\n var result, key;\n\n if (Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if (key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n};\n\nKibo.keyName = function (keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function (keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function () {\n var i,\n that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function (upOrDown) {\n var that = this;\n return function (e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if (Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for (i = 0; i < registeredKeys.any.length; i++) {\n if (registeredKeys.any[i](e) === false && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if (registeredKeys[lastModifiersAndKey]) {\n for (i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if (registeredKeys[lastModifiersAndKey][i](e) === false && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function (upOrDown, newKeys, func) {\n var i,\n keys,\n registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if (Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for (i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if (registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function (upOrDown, newKeys, func) {\n var i,\n j,\n keys,\n registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if (Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for (i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if (func === null) {\n delete registeredKeys[keys];\n } else {\n if (registeredKeys[keys]) {\n for (j = 0; j < registeredKeys[keys].length; j++) {\n if (String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function (keys) {\n return this.unregisterKeys('down', keys, null);\n};\n\nKibo.prototype.delegate = function (upOrDown, keys, func) {\n return func !== null || func !== undefined ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function (keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function (keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function (modifier) {\n if (!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function () {\n var result, i;\n\n result = [];\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n if (this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if (!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexports.default = Kibo;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core_factory = __webpack_require__(133);\n\nvar _core_factory2 = _interopRequireDefault(_core_factory);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _core_factory2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _base_object = __webpack_require__(17);\n\nvar _base_object2 = _interopRequireDefault(_base_object);\n\nvar _core = __webpack_require__(72);\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nvar CoreFactory = function (_BaseObject) {\n (0, _inherits3.default)(CoreFactory, _BaseObject);\n (0, _createClass3.default)(CoreFactory, [{\n key: 'loader',\n get: function get() {\n return this.player.loader;\n }\n\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n\n }]);\n\n function CoreFactory(player) {\n (0, _classCallCheck3.default)(this, CoreFactory);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _BaseObject.call(this));\n\n _this.player = player;\n _this._options = player.options;\n return _this;\n }\n\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n\n\n CoreFactory.prototype.create = function create() {\n this.options.loader = this.loader;\n this.core = new _core2.default(this.options);\n this.addCorePlugins();\n this.core.createContainers(this.options);\n return this.core;\n };\n\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n\n\n CoreFactory.prototype.addCorePlugins = function addCorePlugins() {\n var _this2 = this;\n\n this.loader.corePlugins.forEach(function (Plugin) {\n var plugin = new Plugin(_this2.core);\n _this2.core.addPlugin(plugin);\n _this2.setupExternalInterface(plugin);\n });\n return this.core;\n };\n\n CoreFactory.prototype.setupExternalInterface = function setupExternalInterface(plugin) {\n var externalFunctions = plugin.getExternalInterface();\n for (var key in externalFunctions) {\n this.player[key] = externalFunctions[key].bind(plugin);\n }\n };\n\n return CoreFactory;\n}(_base_object2.default);\n\nexports.default = CoreFactory;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _utils = __webpack_require__(5);\n\nvar _events = __webpack_require__(4);\n\nvar _events2 = _interopRequireDefault(_events);\n\nvar _ui_object = __webpack_require__(21);\n\nvar _ui_object2 = _interopRequireDefault(_ui_object);\n\nvar _browser = __webpack_require__(13);\n\nvar _browser2 = _interopRequireDefault(_browser);\n\nvar _container_factory = __webpack_require__(135);\n\nvar _container_factory2 = _interopRequireDefault(_container_factory);\n\nvar _media_control = __webpack_require__(74);\n\nvar _media_control2 = _interopRequireDefault(_media_control);\n\nvar _mediator = __webpack_require__(24);\n\nvar _mediator2 = _interopRequireDefault(_mediator);\n\nvar _player_info = __webpack_require__(34);\n\nvar _player_info2 = _interopRequireDefault(_player_info);\n\nvar _styler = __webpack_require__(77);\n\nvar _styler2 = _interopRequireDefault(_styler);\n\nvar _clapprZepto = __webpack_require__(6);\n\nvar _clapprZepto2 = _interopRequireDefault(_clapprZepto);\n\n__webpack_require__(153);\n\nvar _fonts = __webpack_require__(155);\n\nvar _fonts2 = _interopRequireDefault(_fonts);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nvar style = void 0;\n\n/**\n * The Core is responsible to manage Containers, the mediator, MediaControl\n * and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\n\nvar Core = function (_UIObject) {\n (0, _inherits3.default)(Core, _UIObject);\n (0, _createClass3.default)(Core, [{\n key: 'events',\n get: function get() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'showMediaControl',\n 'mouseleave': 'hideMediaControl'\n };\n }\n }, {\n key: 'attributes',\n get: function get() {\n return {\n 'data-player': '',\n tabindex: 9999\n };\n }\n\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n\n }, {\n key: 'isReady',\n get: function get() {\n return !!this.ready;\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n\n }, {\n key: 'i18n',\n get: function get() {\n return this.getPlugin('strings') || { t: function t(key) {\n return key;\n } };\n }\n }]);\n\n function Core(options) {\n (0, _classCallCheck3.default)(this, Core);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _UIObject.call(this, options));\n\n _this.configureDomRecycler();\n _this.playerInfo = _player_info2.default.getInstance(options.playerId);\n _this.firstResize = true;\n _this.plugins = [];\n _this.containers = [];\n _this.setupMediaControl(null);\n //FIXME fullscreen api sucks\n _this._boundFullscreenHandler = function () {\n return _this.handleFullscreenChange();\n };\n (0, _clapprZepto2.default)(document).bind('fullscreenchange', _this._boundFullscreenHandler);\n (0, _clapprZepto2.default)(document).bind('MSFullscreenChange', _this._boundFullscreenHandler);\n (0, _clapprZepto2.default)(document).bind('mozfullscreenchange', _this._boundFullscreenHandler);\n _browser2.default.isMobile && (0, _clapprZepto2.default)(window).bind('resize', function (o) {\n _this.handleWindowResize(o);\n });\n return _this;\n }\n\n Core.prototype.configureDomRecycler = function configureDomRecycler() {\n var recycleVideo = this.options && this.options.playback && this.options.playback.recycleVideo ? true : false;\n _utils.DomRecycler.configure({\n recycleVideo: recycleVideo\n });\n };\n\n Core.prototype.createContainers = function createContainers(options) {\n var _this2 = this;\n\n this.defer = _clapprZepto2.default.Deferred();\n this.defer.promise(this);\n this.containerFactory = new _container_factory2.default(options, options.loader, this.i18n);\n this.containerFactory.createContainers().then(function (containers) {\n return _this2.setupContainers(containers);\n }).then(function (containers) {\n return _this2.resolveOnContainersReady(containers);\n });\n };\n\n Core.prototype.updateSize = function updateSize() {\n if (_utils.Fullscreen.isFullscreen()) this.setFullscreen();else this.setPlayerSize();\n };\n\n Core.prototype.setFullscreen = function setFullscreen() {\n if (!_browser2.default.isiOS) {\n this.$el.addClass('fullscreen');\n this.$el.removeAttr('style');\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height };\n this.playerInfo.currentSize = { width: (0, _clapprZepto2.default)(window).width(), height: (0, _clapprZepto2.default)(window).height() };\n }\n };\n\n Core.prototype.setPlayerSize = function setPlayerSize() {\n this.$el.removeClass('fullscreen');\n this.playerInfo.currentSize = this.playerInfo.previousSize;\n this.playerInfo.previousSize = { width: (0, _clapprZepto2.default)(window).width(), height: (0, _clapprZepto2.default)(window).height() };\n this.resize(this.playerInfo.currentSize);\n };\n\n Core.prototype.resize = function resize(options) {\n if (!(0, _utils.isNumber)(options.height) && !(0, _utils.isNumber)(options.width)) {\n this.el.style.height = '' + options.height;\n this.el.style.width = '' + options.width;\n } else {\n this.el.style.height = options.height + 'px';\n this.el.style.width = options.width + 'px';\n }\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height };\n this.options.width = options.width;\n this.options.height = options.height;\n this.playerInfo.currentSize = options;\n this.triggerResize(this.playerInfo.currentSize);\n };\n\n Core.prototype.enableResizeObserver = function enableResizeObserver() {\n var _this3 = this;\n\n var checkSizeCallback = function checkSizeCallback() {\n if (_this3.playerInfo.computedSize.width !== _this3.el.clientWidth || _this3.playerInfo.computedSize.height !== _this3.el.clientHeight) {\n _this3.playerInfo.computedSize = { width: _this3.el.clientWidth, height: _this3.el.clientHeight };\n _this3.triggerResize(_this3.playerInfo.computedSize);\n }\n };\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500);\n };\n\n Core.prototype.triggerResize = function triggerResize(newSize) {\n var thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width;\n if (thereWasChange) {\n _mediator2.default.trigger(this.options.playerId + ':' + _events2.default.PLAYER_RESIZE, newSize);\n this.oldHeight = newSize.height;\n this.oldWidth = newSize.width;\n this.firstResize = false;\n }\n };\n\n Core.prototype.disableResizeObserver = function disableResizeObserver() {\n if (this.resizeObserverInterval) clearInterval(this.resizeObserverInterval);\n };\n\n Core.prototype.resolveOnContainersReady = function resolveOnContainersReady(containers) {\n var _this4 = this;\n\n _clapprZepto2.default.when.apply(_clapprZepto2.default, containers).done(function () {\n _this4.defer.resolve(_this4);\n _this4.ready = true;\n _this4.trigger(_events2.default.CORE_READY);\n });\n };\n\n Core.prototype.addPlugin = function addPlugin(plugin) {\n this.plugins.push(plugin);\n };\n\n Core.prototype.hasPlugin = function hasPlugin(name) {\n return !!this.getPlugin(name);\n };\n\n Core.prototype.getPlugin = function getPlugin(name) {\n return this.plugins.filter(function (plugin) {\n return plugin.name === name;\n })[0];\n };\n\n Core.prototype.load = function load(sources, mimeType) {\n var _this5 = this;\n\n this.options.mimeType = mimeType;\n sources = sources && sources.constructor === Array ? sources : [sources];\n this.containers.forEach(function (container) {\n return container.destroy();\n });\n this.mediaControl.container = null;\n this.containerFactory.options = _clapprZepto2.default.extend(this.options, { sources: sources });\n this.containerFactory.createContainers().then(function (containers) {\n _this5.setupContainers(containers);\n });\n };\n\n Core.prototype.destroy = function destroy() {\n this.disableResizeObserver();\n this.containers.forEach(function (container) {\n return container.destroy();\n });\n this.plugins.forEach(function (plugin) {\n return plugin.destroy();\n });\n this.$el.remove();\n this.mediaControl.destroy();\n (0, _clapprZepto2.default)(document).unbind('fullscreenchange', this._boundFullscreenHandler);\n (0, _clapprZepto2.default)(document).unbind('MSFullscreenChange', this._boundFullscreenHandler);\n (0, _clapprZepto2.default)(document).unbind('mozfullscreenchange', this._boundFullscreenHandler);\n };\n\n Core.prototype.handleFullscreenChange = function handleFullscreenChange() {\n this.trigger(_events2.default.CORE_FULLSCREEN, _utils.Fullscreen.isFullscreen());\n this.updateSize();\n this.mediaControl.show();\n };\n\n Core.prototype.handleWindowResize = function handleWindowResize(event) {\n var orientation = (0, _clapprZepto2.default)(window).width() > (0, _clapprZepto2.default)(window).height() ? 'landscape' : 'portrait';\n if (this._screenOrientation === orientation) return;\n this._screenOrientation = orientation;\n\n this.trigger(_events2.default.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n });\n };\n\n Core.prototype.setMediaControlContainer = function setMediaControlContainer(container) {\n this.mediaControl.setContainer(container);\n this.mediaControl.render();\n };\n\n Core.prototype.disableMediaControl = function disableMediaControl() {\n this.mediaControl.disable();\n this.$el.removeClass('nocursor');\n };\n\n Core.prototype.enableMediaControl = function enableMediaControl() {\n this.mediaControl.enable();\n };\n\n Core.prototype.removeContainer = function removeContainer(container) {\n this.stopListening(container);\n this.containers = this.containers.filter(function (c) {\n return c !== container;\n });\n };\n\n Core.prototype.appendContainer = function appendContainer(container) {\n this.listenTo(container, _events2.default.CONTAINER_DESTROYED, this.removeContainer);\n this.containers.push(container);\n };\n\n Core.prototype.setupContainers = function setupContainers(containers) {\n containers.map(this.appendContainer.bind(this));\n this.trigger(_events2.default.CORE_CONTAINERS_CREATED);\n this.renderContainers();\n this.setupMediaControl(this.getCurrentContainer());\n this.render();\n this.appendToParent();\n return this.containers;\n };\n\n Core.prototype.renderContainers = function renderContainers() {\n var _this6 = this;\n\n this.containers.map(function (container) {\n return _this6.el.appendChild(container.render().el);\n });\n };\n\n Core.prototype.createContainer = function createContainer(source, options) {\n var container = this.containerFactory.createContainer(source, options);\n this.appendContainer(container);\n this.el.appendChild(container.render().el);\n return container;\n };\n\n Core.prototype.setupMediaControl = function setupMediaControl(container) {\n if (this.mediaControl) {\n this.mediaControl.setContainer(container);\n } else {\n this.mediaControl = this.createMediaControl(_clapprZepto2.default.extend({ container: container, focusElement: this.el }, this.options));\n this.listenTo(this.mediaControl, _events2.default.MEDIACONTROL_FULLSCREEN, this.toggleFullscreen);\n this.listenTo(this.mediaControl, _events2.default.MEDIACONTROL_SHOW, this.onMediaControlShow.bind(this, true));\n this.listenTo(this.mediaControl, _events2.default.MEDIACONTROL_HIDE, this.onMediaControlShow.bind(this, false));\n }\n };\n\n Core.prototype.createMediaControl = function createMediaControl(options) {\n if (options.mediacontrol && options.mediacontrol.external) return new options.mediacontrol.external(options).render();else return new _media_control2.default(options).render();\n };\n\n Core.prototype.getCurrentContainer = function getCurrentContainer() {\n if (!this.mediaControl || !this.mediaControl.container) return this.containers[0];\n\n return this.mediaControl.container;\n };\n\n Core.prototype.getCurrentPlayback = function getCurrentPlayback() {\n var container = this.getCurrentContainer();\n return container && container.playback;\n };\n\n Core.prototype.getPlaybackType = function getPlaybackType() {\n var container = this.getCurrentContainer();\n return container && container.getPlaybackType();\n };\n\n Core.prototype.toggleFullscreen = function toggleFullscreen() {\n if (!_utils.Fullscreen.isFullscreen()) {\n _utils.Fullscreen.requestFullscreen(this.el);\n if (!_browser2.default.isiOS) this.$el.addClass('fullscreen');\n } else {\n _utils.Fullscreen.cancelFullscreen();\n if (!_browser2.default.isiOS) this.$el.removeClass('fullscreen nocursor');\n }\n this.mediaControl.show();\n };\n\n Core.prototype.showMediaControl = function showMediaControl(event) {\n this.mediaControl.show(event);\n };\n\n Core.prototype.hideMediaControl = function hideMediaControl() {\n this.mediaControl.hide(this.options.hideMediaControlDelay);\n };\n\n Core.prototype.onMediaControlShow = function onMediaControlShow(showing) {\n this.getCurrentContainer().trigger(showing ? _events2.default.CONTAINER_MEDIACONTROL_SHOW : _events2.default.CONTAINER_MEDIACONTROL_HIDE);\n\n if (showing) this.$el.removeClass('nocursor');else if (_utils.Fullscreen.isFullscreen()) this.$el.addClass('nocursor');\n };\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n\n\n Core.prototype.configure = function configure(options) {\n var _this7 = this;\n\n this._options = _clapprZepto2.default.extend(this._options, options);\n this.configureDomRecycler();\n var sources = options.source || options.sources;\n\n if (sources) {\n this.load(sources, options.mimeType || this.options.mimeType);\n } else {\n this.trigger(_events2.default.CORE_OPTIONS_CHANGE);\n\n this.containers.forEach(function (container) {\n container.configure(_this7.options);\n });\n }\n };\n\n Core.prototype.appendToParent = function appendToParent() {\n var hasCoreParent = this.$el.parent() && this.$el.parent().length;\n !hasCoreParent && this.$el.appendTo(this.options.parentElement);\n };\n\n Core.prototype.render = function render() {\n this.$el.append(this.mediaControl.render().el);\n\n if (!style) style = _styler2.default.getStyleFor(_fonts2.default, { baseUrl: this.options.baseUrl });\n\n (0, _clapprZepto2.default)('head').append(style);\n\n this.options.width = this.options.width || this.$el.width();\n this.options.height = this.options.height || this.$el.height();\n var size = { width: this.options.width, height: this.options.height };\n this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size;\n this.updateSize();\n\n this.previousSize = { width: this.$el.width(), height: this.$el.height() };\n\n this.enableResizeObserver();\n\n return this;\n };\n\n return Core;\n}(_ui_object2.default);\n\nexports.default = Core;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _container_factory = __webpack_require__(136);\n\nvar _container_factory2 = _interopRequireDefault(_container_factory);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _container_factory2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof2 = __webpack_require__(33);\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _base_object = __webpack_require__(17);\n\nvar _base_object2 = _interopRequireDefault(_base_object);\n\nvar _events = __webpack_require__(4);\n\nvar _events2 = _interopRequireDefault(_events);\n\nvar _container = __webpack_require__(73);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _clapprZepto = __webpack_require__(6);\n\nvar _clapprZepto2 = _interopRequireDefault(_clapprZepto);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The ContainerFactory is responsible for manage playback bootstrap and create containers.\n */\n\nvar ContainerFactory = function (_BaseObject) {\n (0, _inherits3.default)(ContainerFactory, _BaseObject);\n (0, _createClass3.default)(ContainerFactory, [{\n key: 'options',\n get: function get() {\n return this._options;\n },\n set: function set(options) {\n this._options = options;\n }\n }]);\n\n function ContainerFactory(options, loader, i18n) {\n (0, _classCallCheck3.default)(this, ContainerFactory);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _BaseObject.call(this, options));\n\n _this._i18n = i18n;\n _this.loader = loader;\n return _this;\n }\n\n ContainerFactory.prototype.createContainers = function createContainers() {\n var _this2 = this;\n\n return _clapprZepto2.default.Deferred(function (promise) {\n promise.resolve(_this2.options.sources.map(function (source) {\n return _this2.createContainer(source);\n }));\n });\n };\n\n ContainerFactory.prototype.findPlaybackPlugin = function findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(function (p) {\n return p.canPlay(source, mimeType);\n })[0];\n };\n\n ContainerFactory.prototype.createContainer = function createContainer(source) {\n var resolvedSource = null,\n mimeType = this.options.mimeType;\n if ((typeof source === 'undefined' ? 'undefined' : (0, _typeof3.default)(source)) === 'object') {\n resolvedSource = source.source.toString();\n if (source.mimeType) mimeType = source.mimeType;\n } else {\n resolvedSource = source.toString();\n }\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource;\n\n var options = _clapprZepto2.default.extend({}, this.options, {\n src: resolvedSource,\n mimeType: mimeType\n });\n var playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType);\n var playback = new playbackPlugin(options, this._i18n);\n\n options = _clapprZepto2.default.extend({}, options, { playback: playback });\n\n var container = new _container2.default(options, this._i18n);\n var defer = _clapprZepto2.default.Deferred();\n defer.promise(container);\n this.addContainerPlugins(container);\n this.listenToOnce(container, _events2.default.CONTAINER_READY, function () {\n return defer.resolve(container);\n });\n return container;\n };\n\n ContainerFactory.prototype.addContainerPlugins = function addContainerPlugins(container) {\n this.loader.containerPlugins.forEach(function (Plugin) {\n container.addPlugin(new Plugin(container));\n });\n };\n\n return ContainerFactory;\n}(_base_object2.default);\n\nexports.default = ContainerFactory;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _events = __webpack_require__(4);\n\nvar _events2 = _interopRequireDefault(_events);\n\nvar _ui_object = __webpack_require__(21);\n\nvar _ui_object2 = _interopRequireDefault(_ui_object);\n\n__webpack_require__(138);\n\nvar _clapprZepto = __webpack_require__(6);\n\nvar _clapprZepto2 = _interopRequireDefault(_clapprZepto);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Container is responsible for the video rendering and state\n */\n\nvar Container = function (_UIObject) {\n (0, _inherits3.default)(Container, _UIObject);\n (0, _createClass3.default)(Container, [{\n key: 'name',\n\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get: function get() {\n return 'Container';\n }\n }, {\n key: 'attributes',\n get: function get() {\n return { class: 'container', 'data-container': '' };\n }\n }, {\n key: 'events',\n get: function get() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'doubleTap': 'dblClicked',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n };\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n\n }, {\n key: 'ended',\n get: function get() {\n return this.playback.ended;\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n\n }, {\n key: 'buffering',\n get: function get() {\n return this.playback.buffering;\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n\n }, {\n key: 'i18n',\n get: function get() {\n return this._i18n;\n }\n\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n\n }, {\n key: 'hasClosedCaptionsTracks',\n get: function get() {\n return this.playback.hasClosedCaptionsTracks;\n }\n\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n\n }, {\n key: 'closedCaptionsTracks',\n get: function get() {\n return this.playback.closedCaptionsTracks;\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n\n }, {\n key: 'closedCaptionsTrackId',\n get: function get() {\n return this.playback.closedCaptionsTrackId;\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n ,\n set: function set(trackId) {\n this.playback.closedCaptionsTrackId = trackId;\n }\n\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n\n }]);\n\n function Container(options, i18n) {\n (0, _classCallCheck3.default)(this, Container);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _UIObject.call(this, options));\n\n _this._i18n = i18n;\n _this.currentTime = 0;\n _this.volume = 100;\n _this.playback = options.playback;\n _this.settings = _clapprZepto2.default.extend({}, _this.playback.settings);\n _this.isReady = false;\n _this.mediaControlDisabled = false;\n _this.plugins = [_this.playback];\n _this.bindEvents();\n return _this;\n }\n\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n\n\n Container.prototype.bindEvents = function bindEvents() {\n this.listenTo(this.playback, _events2.default.PLAYBACK_PROGRESS, this.progress);\n this.listenTo(this.playback, _events2.default.PLAYBACK_TIMEUPDATE, this.timeUpdated);\n this.listenTo(this.playback, _events2.default.PLAYBACK_READY, this.ready);\n this.listenTo(this.playback, _events2.default.PLAYBACK_BUFFERING, this.onBuffering);\n this.listenTo(this.playback, _events2.default.PLAYBACK_BUFFERFULL, this.bufferfull);\n this.listenTo(this.playback, _events2.default.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate);\n this.listenTo(this.playback, _events2.default.PLAYBACK_LOADEDMETADATA, this.loadedMetadata);\n this.listenTo(this.playback, _events2.default.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate);\n this.listenTo(this.playback, _events2.default.PLAYBACK_BITRATE, this.updateBitrate);\n this.listenTo(this.playback, _events2.default.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged);\n this.listenTo(this.playback, _events2.default.PLAYBACK_DVR, this.playbackDvrStateChanged);\n this.listenTo(this.playback, _events2.default.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl);\n this.listenTo(this.playback, _events2.default.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl);\n this.listenTo(this.playback, _events2.default.PLAYBACK_SEEKED, this.onSeeked);\n this.listenTo(this.playback, _events2.default.PLAYBACK_ENDED, this.onEnded);\n this.listenTo(this.playback, _events2.default.PLAYBACK_PLAY, this.playing);\n this.listenTo(this.playback, _events2.default.PLAYBACK_PAUSE, this.paused);\n this.listenTo(this.playback, _events2.default.PLAYBACK_STOP, this.stopped);\n this.listenTo(this.playback, _events2.default.PLAYBACK_ERROR, this.error);\n this.listenTo(this.playback, _events2.default.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable);\n this.listenTo(this.playback, _events2.default.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged);\n };\n\n Container.prototype.subtitleAvailable = function subtitleAvailable() {\n this.trigger(_events2.default.CONTAINER_SUBTITLE_AVAILABLE);\n };\n\n Container.prototype.subtitleChanged = function subtitleChanged(track) {\n this.trigger(_events2.default.CONTAINER_SUBTITLE_CHANGED, track);\n };\n\n Container.prototype.playbackStateChanged = function playbackStateChanged(state) {\n this.trigger(_events2.default.CONTAINER_PLAYBACKSTATE, state);\n };\n\n Container.prototype.playbackDvrStateChanged = function playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings;\n this.dvrInUse = dvrInUse;\n this.trigger(_events2.default.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse);\n };\n\n Container.prototype.updateBitrate = function updateBitrate(newBitrate) {\n this.trigger(_events2.default.CONTAINER_BITRATE, newBitrate);\n };\n\n Container.prototype.statsReport = function statsReport(metrics) {\n this.trigger(_events2.default.CONTAINER_STATS_REPORT, metrics);\n };\n\n Container.prototype.getPlaybackType = function getPlaybackType() {\n return this.playback.getPlaybackType();\n };\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n\n\n Container.prototype.isDvrEnabled = function isDvrEnabled() {\n return !!this.playback.dvrEnabled;\n };\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n\n\n Container.prototype.isDvrInUse = function isDvrInUse() {\n return !!this.dvrInUse;\n };\n\n /**\n * destroys the container\n * @method destroy\n */\n\n\n Container.prototype.destroy = function destroy() {\n this.trigger(_events2.default.CONTAINER_DESTROYED, this, this.name);\n this.stopListening();\n this.plugins.forEach(function (plugin) {\n return plugin.destroy();\n });\n this.$el.remove();\n };\n\n Container.prototype.setStyle = function setStyle(style) {\n this.$el.css(style);\n };\n\n Container.prototype.animate = function animate(style, duration) {\n return this.$el.animate(style, duration).promise();\n };\n\n Container.prototype.ready = function ready() {\n this.isReady = true;\n this.trigger(_events2.default.CONTAINER_READY, this.name);\n };\n\n Container.prototype.isPlaying = function isPlaying() {\n return this.playback.isPlaying();\n };\n\n Container.prototype.getStartTimeOffset = function getStartTimeOffset() {\n return this.playback.getStartTimeOffset();\n };\n\n Container.prototype.getCurrentTime = function getCurrentTime() {\n return this.currentTime;\n };\n\n Container.prototype.getDuration = function getDuration() {\n return this.playback.getDuration();\n };\n\n Container.prototype.error = function error(errorObj) {\n if (!this.isReady) this.ready();\n\n this.trigger(_events2.default.CONTAINER_ERROR, { error: errorObj, container: this }, this.name);\n };\n\n Container.prototype.loadedMetadata = function loadedMetadata(metadata) {\n this.trigger(_events2.default.CONTAINER_LOADEDMETADATA, metadata);\n };\n\n Container.prototype.timeUpdated = function timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current;\n this.trigger(_events2.default.CONTAINER_TIMEUPDATE, timeProgress, this.name);\n };\n\n Container.prototype.progress = function progress() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this.trigger.apply(this, [_events2.default.CONTAINER_PROGRESS].concat(args, [this.name]));\n };\n\n Container.prototype.playing = function playing() {\n this.trigger(_events2.default.CONTAINER_PLAY, this.name);\n };\n\n Container.prototype.paused = function paused() {\n this.trigger(_events2.default.CONTAINER_PAUSE, this.name);\n };\n\n /**\n * plays the playback\n * @method play\n */\n\n\n Container.prototype.play = function play() {\n this.playback.play();\n };\n\n /**\n * stops the playback\n * @method stop\n */\n\n\n Container.prototype.stop = function stop() {\n this.playback.stop();\n this.currentTime = 0;\n };\n\n /**\n * pauses the playback\n * @method pause\n */\n\n\n Container.prototype.pause = function pause() {\n this.playback.pause();\n };\n\n Container.prototype.onEnded = function onEnded() {\n this.trigger(_events2.default.CONTAINER_ENDED, this, this.name);\n this.currentTime = 0;\n };\n\n Container.prototype.stopped = function stopped() {\n this.trigger(_events2.default.CONTAINER_STOP);\n };\n\n Container.prototype.clicked = function clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_CLICK, this, this.name);\n };\n\n Container.prototype.dblClicked = function dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_DBLCLICK, this, this.name);\n };\n\n Container.prototype.onContextMenu = function onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_CONTEXTMENU, event, this.name);\n };\n\n Container.prototype.seek = function seek(time) {\n this.trigger(_events2.default.CONTAINER_SEEK, time, this.name);\n this.playback.seek(time);\n };\n\n Container.prototype.onSeeked = function onSeeked() {\n this.trigger(_events2.default.CONTAINER_SEEKED, this.name);\n };\n\n Container.prototype.seekPercentage = function seekPercentage(percentage) {\n var duration = this.getDuration();\n if (percentage >= 0 && percentage <= 100) {\n var time = duration * (percentage / 100);\n this.seek(time);\n }\n };\n\n Container.prototype.setVolume = function setVolume(value) {\n this.volume = parseInt(value, 10);\n this.trigger(_events2.default.CONTAINER_VOLUME, value, this.name);\n this.playback.volume(value);\n };\n\n Container.prototype.fullscreen = function fullscreen() {\n this.trigger(_events2.default.CONTAINER_FULLSCREEN, this.name);\n };\n\n Container.prototype.onBuffering = function onBuffering() {\n this.trigger(_events2.default.CONTAINER_STATE_BUFFERING, this.name);\n };\n\n Container.prototype.bufferfull = function bufferfull() {\n this.trigger(_events2.default.CONTAINER_STATE_BUFFERFULL, this.name);\n };\n\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n\n\n Container.prototype.addPlugin = function addPlugin(plugin) {\n this.plugins.push(plugin);\n };\n\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n\n\n Container.prototype.hasPlugin = function hasPlugin(name) {\n return !!this.getPlugin(name);\n };\n\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n\n\n Container.prototype.getPlugin = function getPlugin(name) {\n return this.plugins.filter(function (plugin) {\n return plugin.name === name;\n })[0];\n };\n\n Container.prototype.mouseEnter = function mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_MOUSE_ENTER);\n };\n\n Container.prototype.mouseLeave = function mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_MOUSE_LEAVE);\n };\n\n Container.prototype.settingsUpdate = function settingsUpdate() {\n this.settings = this.playback.settings;\n this.trigger(_events2.default.CONTAINER_SETTINGSUPDATE);\n };\n\n Container.prototype.highDefinitionUpdate = function highDefinitionUpdate(isHD) {\n this.trigger(_events2.default.CONTAINER_HIGHDEFINITIONUPDATE, isHD);\n };\n\n Container.prototype.isHighDefinitionInUse = function isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse();\n };\n\n Container.prototype.disableMediaControl = function disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true;\n this.trigger(_events2.default.CONTAINER_MEDIACONTROL_DISABLE);\n }\n };\n\n Container.prototype.enableMediaControl = function enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false;\n this.trigger(_events2.default.CONTAINER_MEDIACONTROL_ENABLE);\n }\n };\n\n Container.prototype.updateStyle = function updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.$el.removeClass('chromeless');else this.$el.addClass('chromeless');\n };\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n\n\n Container.prototype.configure = function configure(options) {\n this._options = _clapprZepto2.default.extend(this._options, options);\n this.updateStyle();\n this.trigger(_events2.default.CONTAINER_OPTIONS_CHANGE);\n };\n\n Container.prototype.render = function render() {\n this.$el.append(this.playback.render().el);\n this.updateStyle();\n return this;\n };\n\n return Container;\n}(_ui_object2.default);\n\nexports.default = Container;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a ').html(template(style.toString())(options))\n }\n}\n\nexport default Styler\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/styler.js","import Loader from './loader'\nexport default Loader\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loader/index.js","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/array/from.js\n// module id = 79\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/toConsumableArray.js\n// module id = 80\n// module chunks = 0","import Flash from './flash'\nexport default Flash\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/flash/index.js","import HTML5Audio from './html5_audio'\nexport default HTML5Audio\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html5_audio/index.js","import FlasHLS from './flashls'\nexport default FlasHLS\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/flashls/index.js","import HLS from './hls'\nexport default HLS\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/hls/index.js","import HTMLImg from './html_img'\nexport default HTMLImg\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html_img/index.js","import NoOp from './no_op'\nexport default NoOp\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/no_op/index.js","import PosterPlugin from './poster'\nexport default PosterPlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/poster/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Player from './components/player'\nimport Utils from './base/utils'\nimport Events from './base/events'\nimport Playback from './base/playback'\nimport ContainerPlugin from './base/container_plugin'\nimport CorePlugin from './base/core_plugin'\nimport UICorePlugin from './base/ui_core_plugin'\nimport UIContainerPlugin from './base/ui_container_plugin'\nimport BaseObject from './base/base_object'\nimport UIObject from './base/ui_object'\nimport Browser from './components/browser'\nimport Container from './components/container'\nimport Core from './components/core'\nimport Loader from './components/loader'\nimport Mediator from './components/mediator'\nimport MediaControl from './components/media_control'\nimport PlayerInfo from './components/player_info'\nimport BaseFlashPlayback from './playbacks/base_flash_playback'\nimport Flash from './playbacks/flash'\nimport FlasHLS from './playbacks/flashls'\nimport HLS from './playbacks/hls'\nimport HTML5Audio from './playbacks/html5_audio'\nimport HTML5Video from './playbacks/html5_video'\nimport HTMLImg from './playbacks/html_img'\nimport NoOp from './playbacks/no_op'\nimport Poster from './plugins/poster'\nimport Log from './plugins/log'\nimport Styler from './base/styler'\nimport Vendor from './vendor'\nimport template from './base/template'\n\nimport $ from 'clappr-zepto'\n\nconst version = VERSION\n\nexport default {\n Player,\n Mediator,\n Events,\n Browser,\n PlayerInfo,\n MediaControl,\n ContainerPlugin,\n UIContainerPlugin,\n CorePlugin,\n UICorePlugin,\n Playback,\n Container,\n Core,\n Loader,\n BaseObject,\n UIObject,\n Utils,\n BaseFlashPlayback,\n Flash,\n FlasHLS,\n HLS,\n HTML5Audio,\n HTML5Video,\n HTMLImg,\n NoOp,\n Poster,\n Log,\n Styler,\n Vendor,\n version,\n template,\n $\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { uniqueId, currentScriptUrl } from '../base/utils'\n\nimport BaseObject from '../base/base_object'\nimport Events from '../base/events'\nimport Browser from './browser'\nimport CoreFactory from './core_factory'\nimport Loader from './loader'\nimport PlayerInfo from './player_info'\nimport $ from 'clappr-zepto'\n\nconst baseUrl = currentScriptUrl().replace(/\\/[^/]+$/, '')\n\n/**\n * @class Player\n * @constructor\n * @extends BaseObject\n * @module components\n * @example\n * ### Using the Player\n *\n * Add the following script on your HTML:\n * ```html\n * \n * \n * \n * ```\n * Now, create the player:\n * ```html\n * \n *
\n * \n * \n * ```\n */\nexport default class Player extends BaseObject {\n\n set loader(loader) { this._loader = loader }\n get loader() {\n if (!this._loader)\n this._loader = new Loader(this.options.plugins || {}, this.options.playerId)\n\n return this._loader\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.core.mediaControl.container.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.core.mediaControl.container.buffering\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n get isReady() {\n return !!this._ready\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n get eventsMapping() {\n return {\n onReady: Events.PLAYER_READY,\n onResize: Events.PLAYER_RESIZE,\n onPlay: Events.PLAYER_PLAY,\n onPause: Events.PLAYER_PAUSE,\n onStop: Events.PLAYER_STOP,\n onEnded: Events.PLAYER_ENDED,\n onSeek: Events.PLAYER_SEEK,\n onError: Events.PLAYER_ERROR,\n onTimeUpdate: Events.PLAYER_TIMEUPDATE,\n onVolumeUpdate: Events.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: Events.PLAYER_SUBTITLE_AVAILABLE\n }\n }\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {String} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload]\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength]\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu]\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n */\n constructor(options) {\n super(options)\n const defaultOptions = { playerId: uniqueId(''), persistConfig: true, width: 640, height: 360, baseUrl: baseUrl, allowUserInteraction: Browser.isMobile }\n this._options = $.extend(defaultOptions, options)\n this.options.sources = this._normalizeSources(options)\n if (!this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n this.options.allowUserInteraction = true\n }\n if (!this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n this.options.disableKeyboardShortcuts = true\n }\n this._registerOptionEventListeners()\n this._coreFactory = new CoreFactory(this)\n this.playerInfo = PlayerInfo.getInstance(this.options.playerId)\n this.playerInfo.currentSize = { width: options.width, height: options.height }\n this.playerInfo.options = this.options\n if (this.options.parentId)\n this.setParentId(this.options.parentId)\n\n else if (this.options.parent)\n this.attachTo(this.options.parent)\n\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n setParentId(parentId) {\n const el = document.querySelector(parentId)\n if (el)\n this.attachTo(el)\n\n return this\n }\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n attachTo(element) {\n this.options.parentElement = element\n this.core = this._coreFactory.create()\n this._addEventListeners()\n return this\n }\n\n _addEventListeners() {\n if (!this.core.isReady)\n this.listenToOnce(this.core, Events.CORE_READY, this._onReady)\n else\n this._onReady()\n\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this._containerChanged)\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this._onFullscreenChange)\n return this\n }\n\n _addContainerEventListeners() {\n const container = this.core.mediaControl.container\n if (container) {\n this.listenTo(container, Events.CONTAINER_PLAY, this._onPlay)\n this.listenTo(container, Events.CONTAINER_PAUSE, this._onPause)\n this.listenTo(container, Events.CONTAINER_STOP, this._onStop)\n this.listenTo(container, Events.CONTAINER_ENDED, this._onEnded)\n this.listenTo(container, Events.CONTAINER_SEEK, this._onSeek)\n this.listenTo(container, Events.CONTAINER_ERROR, this._onError)\n this.listenTo(container, Events.CONTAINER_TIMEUPDATE, this._onTimeUpdate)\n this.listenTo(container, Events.CONTAINER_VOLUME, this._onVolumeUpdate)\n this.listenTo(container, Events.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable)\n }\n return this\n }\n\n _registerOptionEventListeners() {\n const userEvents = this.options.events || {}\n Object.keys(userEvents).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n if (eventType) {\n let eventFunction = userEvents[userEvent]\n eventFunction = typeof eventFunction === 'function' && eventFunction\n eventFunction && this.on(eventType, eventFunction)\n }\n })\n return this\n }\n\n _containerChanged() {\n this.stopListening()\n this._addEventListeners()\n }\n\n _onReady() {\n this._ready = true\n this._addContainerEventListeners()\n this.trigger(Events.PLAYER_READY)\n }\n\n _onFullscreenChange(fullscreen) {\n this.trigger(Events.PLAYER_FULLSCREEN, fullscreen)\n }\n\n _onVolumeUpdate(volume) {\n this.trigger(Events.PLAYER_VOLUMEUPDATE, volume)\n }\n\n _onSubtitleAvailable() {\n this.trigger(Events.PLAYER_SUBTITLE_AVAILABLE)\n }\n\n _onPlay() {\n this.trigger(Events.PLAYER_PLAY)\n }\n\n _onPause() {\n this.trigger(Events.PLAYER_PAUSE)\n }\n\n _onStop() {\n this.trigger(Events.PLAYER_STOP, this.getCurrentTime())\n }\n\n _onEnded() {\n this.trigger(Events.PLAYER_ENDED)\n }\n\n _onSeek(time) {\n this.trigger(Events.PLAYER_SEEK, time)\n }\n\n _onTimeUpdate(timeProgress) {\n this.trigger(Events.PLAYER_TIMEUPDATE, timeProgress)\n }\n\n _onError(error) {\n this.trigger(Events.PLAYER_ERROR, error)\n }\n\n _normalizeSources(options) {\n const sources = options.sources || (options.source !== undefined? [options.source] : [])\n return sources.length === 0 ? [{ source:'', mimeType:'' }] : sources\n }\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n resize(size) {\n this.core.resize(size)\n return this\n }\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <>, mimeType: <>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined)\n this.configure({ autoPlay: !!autoPlay })\n\n this.core.load(sources, mimeType)\n return this\n }\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n destroy() {\n this.core.destroy()\n return this\n }\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n consent() {\n this.core.getCurrentPlayback().consent()\n return this\n }\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n play() {\n this.core.mediaControl.container.play()\n return this\n }\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n pause() {\n this.core.mediaControl.container.pause()\n return this\n }\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n stop() {\n this.core.mediaControl.container.stop()\n return this\n }\n\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n seek(time) {\n this.core.mediaControl.container.seek(time)\n return this\n }\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n seekPercentage(percentage) {\n this.core.mediaControl.container.seekPercentage(percentage)\n return this\n }\n\n /**\n * Set the volume for the current video (`source`).\n * @method setVolume\n * @param {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n * @return {Player} itself\n */\n setVolume(volume) {\n if (this.core && this.core.mediaControl)\n this.core.mediaControl.setVolume(volume)\n\n return this\n }\n\n /**\n * Get the volume for the current video\n * @method getVolume\n * @return {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n */\n getVolume() {\n return this.core && this.core.mediaControl ? this.core.mediaControl.volume : 0\n }\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n mute() {\n this._mutedVolume = this.getVolume()\n this.setVolume(0)\n return this\n }\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100)\n this._mutedVolume = null\n return this\n }\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n isPlaying() {\n return this.core.mediaControl.container.isPlaying()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return this.core.mediaControl.container.isDvrEnabled()\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return this.core.mediaControl.container.isDvrInUse()\n }\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n configure(options) {\n this.core.configure(options)\n return this\n }\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n getPlugin(name) {\n const plugins = this.core.plugins.concat(this.core.mediaControl.container.plugins)\n return plugins.filter(plugin => plugin.name === name)[0]\n }\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n getCurrentTime() {\n return this.core.mediaControl.container.getCurrentTime()\n }\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() {\n return this.core.mediaControl.container.getStartTimeOffset()\n }\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n getDuration() {\n return this.core.mediaControl.container.getDuration()\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/player.js","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/keys.js\n// module id = 90\n// module chunks = 0","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.keys.js\n// module id = 91\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iobject.js\n// module id = 92\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-includes.js\n// module id = 93\n// module chunks = 0","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-index.js\n// module id = 94\n// module chunks = 0","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_a-function.js\n// module id = 95\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol/iterator.js\n// module id = 96\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/iterator.js\n// module id = 97\n// module chunks = 0","var toInteger = require('./_to-integer')\n , defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_string-at.js\n// module id = 98\n// module chunks = 0","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-create.js\n// module id = 99\n// module chunks = 0","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dps.js\n// module id = 100\n// module chunks = 0","module.exports = require('./_global').document && document.documentElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_html.js\n// module id = 101\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gpo.js\n// module id = 102\n// module chunks = 0","require('./es6.array.iterator');\nvar global = require('./_global')\n , hide = require('./_hide')\n , Iterators = require('./_iterators')\n , TO_STRING_TAG = require('./_wks')('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype;\n if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/web.dom.iterable.js\n// module id = 103\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n , step = require('./_iter-step')\n , Iterators = require('./_iterators')\n , toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.array.iterator.js\n// module id = 104\n// module chunks = 0","module.exports = function(){ /* empty */ };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_add-to-unscopables.js\n// module id = 105\n// module chunks = 0","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-step.js\n// module id = 106\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol.js\n// module id = 107\n// module chunks = 0","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/index.js\n// module id = 108\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global')\n , has = require('./_has')\n , DESCRIPTORS = require('./_descriptors')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , META = require('./_meta').KEY\n , $fails = require('./_fails')\n , shared = require('./_shared')\n , setToStringTag = require('./_set-to-string-tag')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , wksExt = require('./_wks-ext')\n , wksDefine = require('./_wks-define')\n , keyOf = require('./_keyof')\n , enumKeys = require('./_enum-keys')\n , isArray = require('./_is-array')\n , anObject = require('./_an-object')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , createDesc = require('./_property-desc')\n , _create = require('./_object-create')\n , gOPNExt = require('./_object-gopn-ext')\n , $GOPD = require('./_object-gopd')\n , $DP = require('./_object-dp')\n , $keys = require('./_object-keys')\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./_library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.symbol.js\n// module id = 109\n// module chunks = 0","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_meta.js\n// module id = 110\n// module chunks = 0","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_keyof.js\n// module id = 111\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie');\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_enum-keys.js\n// module id = 112\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-array.js\n// module id = 113\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject')\n , gOPN = require('./_object-gopn').f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn-ext.js\n// module id = 114\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.async-iterator.js\n// module id = 116\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.observable.js\n// module id = 117\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/define-property.js\n// module id = 118\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.define-property.js\n// module id = 119\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/set-prototype-of.js\n// module id = 120\n// module chunks = 0","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/set-prototype-of.js\n// module id = 121\n// module chunks = 0","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.set-prototype-of.js\n// module id = 122\n// module chunks = 0","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object')\n , anObject = require('./_an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-proto.js\n// module id = 123\n// module chunks = 0","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D){\n return $Object.create(P, D);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/create.js\n// module id = 124\n// module chunks = 0","var $export = require('./_export')\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: require('./_object-create')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.create.js\n// module id = 125\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js\n// module id = 126\n// module chunks = 0","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/get-own-property-descriptor.js\n// module id = 127\n// module chunks = 0","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject')\n , $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js\n// module id = 128\n// module chunks = 0","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null)\n throw new TypeError('\"this\" is null or not defined')\n\n\n let o = Object(this)\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n let len = o.length >>> 0\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function')\n throw new TypeError('predicate must be a function')\n\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n let thisArg = arguments[1]\n\n // 5. Let k be 0.\n let k = 0\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n let kValue = o[k]\n if (predicate.call(thisArg, kValue, k, o))\n return kValue\n\n // e. Increase k by 1.\n k++\n }\n\n // 7. Return undefined.\n return undefined\n }\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/polyfills.js","\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { Kibo } from '../../vendor'\n\nconst BOLD = 'font-weight: bold; font-size: 13px;'\nconst INFO = 'color: #006600;' + BOLD\nconst DEBUG = 'color: #0000ff;' + BOLD\nconst WARN = 'color: #ff8000;' + BOLD\nconst ERROR = 'color: #ff0000;' + BOLD\n\nconst LEVEL_DEBUG = 0\nconst LEVEL_INFO = 1\nconst LEVEL_WARN = 2\nconst LEVEL_ERROR = 3\nconst LEVEL_DISABLED = LEVEL_ERROR\n\nconst COLORS = [DEBUG, INFO, WARN, ERROR, ERROR]\nconst DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled']\n\nexport default class Log {\n constructor(level = LEVEL_INFO, offLevel = LEVEL_DISABLED) {\n this.kibo = new Kibo()\n this.kibo.down(['ctrl shift d'], () => this.onOff())\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress']\n this.level = level\n this.offLevel = offLevel\n }\n\n debug(klass) { this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1)) }\n info(klass) { this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1)) }\n warn(klass) { this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1)) }\n error(klass) { this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1)) }\n\n onOff() {\n if (this.level === this.offLevel) { this.level = this.previousLevel } else {\n this.previousLevel = this.level\n this.level = this.offLevel\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log)\n window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN)\n\n }\n\n level(newLevel) {\n this.level = newLevel\n }\n\n log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return\n if (level < this.level) return\n\n if (!message) {\n message = klass\n klass = null\n }\n const color = COLORS[level]\n let klassDescription = ''\n if (klass)\n klassDescription = '[' + klass + ']'\n\n if (window.console && window.console.log)\n window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message))\n\n }\n}\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG\nLog.LEVEL_INFO = LEVEL_INFO\nLog.LEVEL_WARN = LEVEL_WARN\nLog.LEVEL_ERROR = LEVEL_ERROR\n\nLog.getInstance = function() {\n if (this._instance === undefined) {\n this._instance = new this()\n this._instance.previousLevel = this._instance.level\n this._instance.level = this._instance.offLevel\n }\n return this._instance\n}\n\nLog.setLevel = function(level) { this.getInstance().level = level }\n\nLog.debug = function() { this.getInstance().debug.apply(this.getInstance(), arguments) }\nLog.info = function() { this.getInstance().info.apply(this.getInstance(), arguments) }\nLog.warn = function() { this.getInstance().warn.apply(this.getInstance(), arguments) }\nLog.error = function() { this.getInstance().error.apply(this.getInstance(), arguments) }\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/log/log.js","/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function() {\n for(var key in Kibo.KEY_NAMES_BY_CODE) {\n if(Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = (function() {\n if(document.addEventListener) {\n return function(element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n }\n else if(document.attachEvent) {\n return function(element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.unregisterEvent = (function() {\n if(document.removeEventListener) {\n return function(element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n }\n else if(document.detachEvent) {\n return function(element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.stringContains = function(string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function(string) {\n return string.toLowerCase().replace(/^./, function(match) { return match.toUpperCase(); });\n};\n\nKibo.isString = function(what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = (function() {\n if(Array.prototype.indexOf) {\n return function(haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n }\n else {\n return function(haystack, needle) {\n for(var i = 0; i < haystack.length; i++) {\n if(haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n})();\n\nKibo.extractModifiers = function(keyCombination) {\n var modifiers, i\n modifiers = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n}\n\nKibo.extractKey = function(keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for(i = 0; i < keys.length; i++) {\n if(!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function(keyCombination) {\n var result, key;\n\n if(Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if(key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n}\n\nKibo.keyName = function(keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function(keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function() {\n var i, that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function(upOrDown) {\n var that = this;\n return function(e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if(Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for(i = 0; i < registeredKeys.any.length; i++) {\n if((registeredKeys.any[i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if(registeredKeys[lastModifiersAndKey]) {\n for(i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if((registeredKeys[lastModifiersAndKey][i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function(upOrDown, newKeys, func) {\n var i, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function(upOrDown, newKeys, func) {\n var i, j, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(func === null) {\n delete registeredKeys[keys];\n } else {\n if(registeredKeys[keys]) {\n for(j = 0; j < registeredKeys[keys].length; j++) {\n if(String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function(keys) {\n return this.unregisterKeys('down', keys, null);\n}\n\nKibo.prototype.delegate = function(upOrDown, keys, func) {\n return (func !== null || func !== undefined) ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function(keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function(keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function(modifier) {\n if(!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function() {\n var result, i;\n\n result = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if(!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexport default Kibo\n\n\n\n// WEBPACK FOOTER //\n// ./src/vendor/kibo.js","import CoreFactory from './core_factory'\nexport default CoreFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseObject from '../../base/base_object'\nimport Core from '../core'\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class CoreFactory extends BaseObject {\n\n get loader() { return this.player.loader }\n\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n constructor(player) {\n super()\n this.player = player\n this._options = player.options\n }\n\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n create() {\n this.options.loader = this.loader\n this.core = new Core(this.options)\n this.addCorePlugins()\n this.core.createContainers(this.options)\n return this.core\n }\n\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n addCorePlugins() {\n this.loader.corePlugins.forEach((Plugin) => {\n const plugin = new Plugin(this.core)\n this.core.addPlugin(plugin)\n this.setupExternalInterface(plugin)\n })\n return this.core\n }\n\n setupExternalInterface(plugin) {\n const externalFunctions = plugin.getExternalInterface()\n for (const key in externalFunctions)\n this.player[key] = externalFunctions[key].bind(plugin)\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/core_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, Fullscreen, DomRecycler } from '../../base/utils'\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport Browser from '../../components/browser'\nimport ContainerFactory from '../../components/container_factory'\nimport MediaControl from '../../components/media_control'\nimport Mediator from '../../components/mediator'\nimport PlayerInfo from '../../components/player_info'\n\nimport Styler from '../../base/styler'\n\nimport $ from 'clappr-zepto'\n\nimport './public/style.scss'\nimport fontStyle from './public/fonts.css'\n\nlet style\n\n/**\n * The Core is responsible to manage Containers, the mediator, MediaControl\n * and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\nexport default class Core extends UIObject {\n get events() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'showMediaControl',\n 'mouseleave': 'hideMediaControl'\n }\n }\n\n get attributes() {\n return {\n 'data-player': '',\n tabindex: 9999\n }\n }\n\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n get isReady() {\n return !!this.ready\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this.getPlugin('strings') || { t: (key) => key }\n }\n\n constructor(options) {\n super(options)\n this.configureDomRecycler()\n this.playerInfo = PlayerInfo.getInstance(options.playerId)\n this.firstResize = true\n this.plugins = []\n this.containers = []\n this.setupMediaControl(null)\n //FIXME fullscreen api sucks\n this._boundFullscreenHandler = () => this.handleFullscreenChange()\n $(document).bind('fullscreenchange', this._boundFullscreenHandler)\n $(document).bind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).bind('mozfullscreenchange', this._boundFullscreenHandler)\n Browser.isMobile && $(window).bind('resize', (o) => { this.handleWindowResize(o) })\n }\n\n configureDomRecycler() {\n let recycleVideo = (this.options && this.options.playback && this.options.playback.recycleVideo) ? true : false\n DomRecycler.configure({\n recycleVideo: recycleVideo\n })\n }\n\n createContainers(options) {\n this.defer = $.Deferred()\n this.defer.promise(this)\n this.containerFactory = new ContainerFactory(options, options.loader, this.i18n)\n this.containerFactory\n .createContainers()\n .then((containers) => this.setupContainers(containers))\n .then((containers) => this.resolveOnContainersReady(containers))\n }\n\n updateSize() {\n if (Fullscreen.isFullscreen())\n this.setFullscreen()\n else\n this.setPlayerSize()\n\n }\n\n setFullscreen() {\n if(!Browser.isiOS) {\n this.$el.addClass('fullscreen')\n this.$el.removeAttr('style')\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.playerInfo.currentSize = { width: $(window).width(), height: $(window).height() }\n }\n }\n\n setPlayerSize() {\n this.$el.removeClass('fullscreen')\n this.playerInfo.currentSize = this.playerInfo.previousSize\n this.playerInfo.previousSize = { width: $(window).width(), height: $(window).height() }\n this.resize(this.playerInfo.currentSize)\n }\n\n resize(options) {\n if (!isNumber(options.height) && !isNumber(options.width)) {\n this.el.style.height = `${options.height}`\n this.el.style.width = `${options.width}`\n } else {\n this.el.style.height = `${options.height}px`\n this.el.style.width = `${options.width}px`\n }\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.options.width = options.width\n this.options.height = options.height\n this.playerInfo.currentSize = options\n this.triggerResize(this.playerInfo.currentSize)\n }\n\n enableResizeObserver() {\n const checkSizeCallback = () => {\n if (this.playerInfo.computedSize.width !== this.el.clientWidth ||\n this.playerInfo.computedSize.height !== this.el.clientHeight) {\n this.playerInfo.computedSize = { width: this.el.clientWidth, height: this.el.clientHeight }\n this.triggerResize(this.playerInfo.computedSize)\n }\n }\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500)\n }\n\n triggerResize(newSize) {\n const thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width\n if (thereWasChange) {\n Mediator.trigger(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, newSize)\n this.oldHeight = newSize.height\n this.oldWidth = newSize.width\n this.firstResize = false\n }\n }\n\n disableResizeObserver() {\n if (this.resizeObserverInterval) clearInterval(this.resizeObserverInterval)\n }\n\n resolveOnContainersReady(containers) {\n $.when.apply($, containers).done(() => {\n this.defer.resolve(this)\n this.ready = true\n this.trigger(Events.CORE_READY)\n })\n }\n\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n load(sources, mimeType) {\n this.options.mimeType = mimeType\n sources = sources && sources.constructor === Array ? sources : [sources]\n this.containers.forEach((container) => container.destroy())\n this.mediaControl.container = null\n this.containerFactory.options = $.extend(this.options, { sources })\n this.containerFactory.createContainers().then((containers) => {\n this.setupContainers(containers)\n })\n }\n\n destroy() {\n this.disableResizeObserver()\n this.containers.forEach((container) => container.destroy())\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n this.mediaControl.destroy()\n $(document).unbind('fullscreenchange', this._boundFullscreenHandler)\n $(document).unbind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).unbind('mozfullscreenchange', this._boundFullscreenHandler)\n }\n\n handleFullscreenChange() {\n this.trigger(Events.CORE_FULLSCREEN, Fullscreen.isFullscreen())\n this.updateSize()\n this.mediaControl.show()\n }\n\n handleWindowResize(event) {\n let orientation = ($(window).width() > $(window).height()) ? 'landscape' : 'portrait'\n if (this._screenOrientation === orientation) return\n this._screenOrientation = orientation\n\n this.trigger(Events.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n })\n }\n\n setMediaControlContainer(container) {\n this.mediaControl.setContainer(container)\n this.mediaControl.render()\n }\n\n disableMediaControl() {\n this.mediaControl.disable()\n this.$el.removeClass('nocursor')\n }\n\n enableMediaControl() {\n this.mediaControl.enable()\n }\n\n removeContainer(container) {\n this.stopListening(container)\n this.containers = this.containers.filter((c) => c !== container)\n }\n\n appendContainer(container) {\n this.listenTo(container, Events.CONTAINER_DESTROYED, this.removeContainer)\n this.containers.push(container)\n }\n\n setupContainers(containers) {\n containers.map(this.appendContainer.bind(this))\n this.trigger(Events.CORE_CONTAINERS_CREATED)\n this.renderContainers()\n this.setupMediaControl(this.getCurrentContainer())\n this.render()\n this.appendToParent()\n return this.containers\n }\n\n renderContainers() {\n this.containers.map((container) => this.el.appendChild(container.render().el))\n }\n\n createContainer(source, options) {\n const container = this.containerFactory.createContainer(source, options)\n this.appendContainer(container)\n this.el.appendChild(container.render().el)\n return container\n }\n\n setupMediaControl(container) {\n if (this.mediaControl) { this.mediaControl.setContainer(container) } else {\n this.mediaControl = this.createMediaControl($.extend({ container: container, focusElement: this.el }, this.options))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_FULLSCREEN, this.toggleFullscreen)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_SHOW, this.onMediaControlShow.bind(this, true))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_HIDE, this.onMediaControlShow.bind(this, false))\n }\n }\n\n createMediaControl(options) {\n if(options.mediacontrol && options.mediacontrol.external)\n return new options.mediacontrol.external(options).render()\n else\n return new MediaControl(options).render()\n\n }\n\n getCurrentContainer() {\n if (!this.mediaControl || !this.mediaControl.container)\n return this.containers[0]\n\n return this.mediaControl.container\n }\n\n getCurrentPlayback() {\n const container = this.getCurrentContainer()\n return container && container.playback\n }\n\n getPlaybackType() {\n const container = this.getCurrentContainer()\n return container && container.getPlaybackType()\n }\n\n toggleFullscreen() {\n if (!Fullscreen.isFullscreen()) {\n Fullscreen.requestFullscreen(this.el)\n if(!Browser.isiOS)\n this.$el.addClass('fullscreen')\n\n } else {\n Fullscreen.cancelFullscreen()\n if(!Browser.isiOS)\n this.$el.removeClass('fullscreen nocursor')\n\n }\n this.mediaControl.show()\n }\n\n showMediaControl(event) {\n this.mediaControl.show(event)\n }\n\n hideMediaControl() {\n this.mediaControl.hide(this.options.hideMediaControlDelay)\n }\n\n onMediaControlShow(showing) {\n this.getCurrentContainer().trigger(showing?Events.CONTAINER_MEDIACONTROL_SHOW:Events.CONTAINER_MEDIACONTROL_HIDE)\n\n if (showing)\n this.$el.removeClass('nocursor')\n else if (Fullscreen.isFullscreen())\n this.$el.addClass('nocursor')\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.configureDomRecycler()\n const sources = options.source || options.sources\n\n if (sources) { this.load(sources, options.mimeType || this.options.mimeType) } else {\n this.trigger(Events.CORE_OPTIONS_CHANGE)\n\n this.containers.forEach((container) => {\n container.configure(this.options)\n })\n }\n }\n\n appendToParent() {\n let hasCoreParent = this.$el.parent() && this.$el.parent().length\n !hasCoreParent && this.$el.appendTo(this.options.parentElement)\n }\n\n render() {\n this.$el.append(this.mediaControl.render().el)\n\n if (!style)\n style = Styler.getStyleFor(fontStyle, { baseUrl: this.options.baseUrl })\n\n $('head').append(style)\n\n this.options.width = this.options.width || this.$el.width()\n this.options.height = this.options.height || this.$el.height()\n const size = { width: this.options.width, height: this.options.height }\n this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size\n this.updateSize()\n\n this.previousSize = { width: this.$el.width(), height: this.$el.height() }\n\n this.enableResizeObserver()\n\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core/core.js","import ContainerFactory from './container_factory'\nexport default ContainerFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The ContainerFactory is responsible for manage playback bootstrap and create containers.\n */\n\nimport BaseObject from '../../base/base_object'\nimport Events from '../../base/events'\nimport Container from '../../components/container'\nimport $ from 'clappr-zepto'\n\nexport default class ContainerFactory extends BaseObject {\n get options() { return this._options }\n set options(options) { this._options = options }\n\n constructor(options, loader, i18n) {\n super(options)\n this._i18n = i18n\n this.loader = loader\n }\n\n createContainers() {\n return $.Deferred((promise) => {\n promise.resolve(this.options.sources.map((source) => {\n return this.createContainer(source)\n }))\n })\n }\n\n findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(p => p.canPlay(source, mimeType))[0]\n }\n\n createContainer(source) {\n let resolvedSource = null,\n mimeType = this.options.mimeType\n if (typeof source === 'object') {\n resolvedSource = source.source.toString()\n if (source.mimeType)\n mimeType = source.mimeType\n\n } else { resolvedSource = source.toString() }\n\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource\n\n let options = $.extend({}, this.options, {\n src: resolvedSource,\n mimeType: mimeType\n })\n const playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType)\n const playback = new playbackPlugin(options, this._i18n)\n\n options = $.extend({}, options, { playback: playback })\n\n const container = new Container(options, this._i18n)\n const defer = $.Deferred()\n defer.promise(container)\n this.addContainerPlugins(container)\n this.listenToOnce(container, Events.CONTAINER_READY, () => defer.resolve(container))\n return container\n }\n\n addContainerPlugins(container) {\n this.loader.containerPlugins.forEach((Plugin) => {\n container.addPlugin(new Plugin(container))\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/container_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Container is responsible for the video rendering and state\n */\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\n\nimport './public/style.scss'\n\nimport $ from 'clappr-zepto'\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class Container extends UIObject {\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get name() { return 'Container' }\n get attributes() { return { class: 'container', 'data-container': '' } }\n get events() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'doubleTap': 'dblClicked',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.playback.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.playback.buffering\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this._i18n\n }\n\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n get hasClosedCaptionsTracks() {\n return this.playback.hasClosedCaptionsTracks\n }\n\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n get closedCaptionsTracks() {\n return this.playback.closedCaptionsTracks\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n get closedCaptionsTrackId() {\n return this.playback.closedCaptionsTrackId\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n set closedCaptionsTrackId(trackId) {\n this.playback.closedCaptionsTrackId = trackId\n }\n\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n constructor(options, i18n) {\n super(options)\n this._i18n = i18n\n this.currentTime = 0\n this.volume = 100\n this.playback = options.playback\n this.settings = $.extend({}, this.playback.settings)\n this.isReady = false\n this.mediaControlDisabled = false\n this.plugins = [this.playback]\n this.bindEvents()\n }\n\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n bindEvents() {\n this.listenTo(this.playback, Events.PLAYBACK_PROGRESS, this.progress)\n this.listenTo(this.playback, Events.PLAYBACK_TIMEUPDATE, this.timeUpdated)\n this.listenTo(this.playback, Events.PLAYBACK_READY, this.ready)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERING, this.onBuffering)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERFULL, this.bufferfull)\n this.listenTo(this.playback, Events.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_LOADEDMETADATA, this.loadedMetadata)\n this.listenTo(this.playback, Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_BITRATE, this.updateBitrate)\n this.listenTo(this.playback, Events.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_DVR, this.playbackDvrStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_SEEKED, this.onSeeked)\n this.listenTo(this.playback, Events.PLAYBACK_ENDED, this.onEnded)\n this.listenTo(this.playback, Events.PLAYBACK_PLAY, this.playing)\n this.listenTo(this.playback, Events.PLAYBACK_PAUSE, this.paused)\n this.listenTo(this.playback, Events.PLAYBACK_STOP, this.stopped)\n this.listenTo(this.playback, Events.PLAYBACK_ERROR, this.error)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged)\n }\n\n subtitleAvailable() {\n this.trigger(Events.CONTAINER_SUBTITLE_AVAILABLE)\n }\n\n subtitleChanged(track) {\n this.trigger(Events.CONTAINER_SUBTITLE_CHANGED, track)\n }\n\n playbackStateChanged(state) {\n this.trigger(Events.CONTAINER_PLAYBACKSTATE, state)\n }\n\n playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings\n this.dvrInUse = dvrInUse\n this.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse)\n }\n\n updateBitrate(newBitrate) {\n this.trigger(Events.CONTAINER_BITRATE, newBitrate)\n }\n\n statsReport(metrics) {\n this.trigger(Events.CONTAINER_STATS_REPORT, metrics)\n }\n\n getPlaybackType() {\n return this.playback.getPlaybackType()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return !!this.playback.dvrEnabled\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return !!this.dvrInUse\n }\n\n /**\n * destroys the container\n * @method destroy\n */\n destroy() {\n this.trigger(Events.CONTAINER_DESTROYED, this, this.name)\n this.stopListening()\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n }\n\n setStyle(style) {\n this.$el.css(style)\n }\n\n animate(style, duration) {\n return this.$el.animate(style, duration).promise()\n }\n\n ready() {\n this.isReady = true\n this.trigger(Events.CONTAINER_READY, this.name)\n }\n\n isPlaying() {\n return this.playback.isPlaying()\n }\n\n getStartTimeOffset() {\n return this.playback.getStartTimeOffset()\n }\n\n getCurrentTime() {\n return this.currentTime\n }\n\n getDuration() {\n return this.playback.getDuration()\n }\n\n error(errorObj) {\n if (!this.isReady)\n this.ready()\n\n this.trigger(Events.CONTAINER_ERROR, { error: errorObj, container: this }, this.name)\n }\n\n loadedMetadata(metadata) {\n this.trigger(Events.CONTAINER_LOADEDMETADATA, metadata)\n }\n\n timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current\n this.trigger(Events.CONTAINER_TIMEUPDATE, timeProgress, this.name)\n }\n\n progress(...args) {\n this.trigger(Events.CONTAINER_PROGRESS, ...args, this.name)\n }\n\n playing() {\n this.trigger(Events.CONTAINER_PLAY, this.name)\n }\n\n paused() {\n this.trigger(Events.CONTAINER_PAUSE, this.name)\n }\n\n /**\n * plays the playback\n * @method play\n */\n play() {\n this.playback.play()\n }\n\n /**\n * stops the playback\n * @method stop\n */\n stop() {\n this.playback.stop()\n this.currentTime = 0\n }\n\n /**\n * pauses the playback\n * @method pause\n */\n pause() {\n this.playback.pause()\n }\n\n onEnded() {\n this.trigger(Events.CONTAINER_ENDED, this, this.name)\n this.currentTime = 0\n }\n\n stopped() {\n this.trigger(Events.CONTAINER_STOP)\n }\n\n clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CLICK, this, this.name)\n\n }\n\n dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_DBLCLICK, this, this.name)\n\n }\n\n onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CONTEXTMENU, event, this.name)\n\n }\n\n seek(time) {\n this.trigger(Events.CONTAINER_SEEK, time, this.name)\n this.playback.seek(time)\n }\n\n onSeeked() {\n this.trigger(Events.CONTAINER_SEEKED, this.name)\n }\n\n seekPercentage(percentage) {\n const duration = this.getDuration()\n if (percentage >= 0 && percentage <= 100) {\n const time = duration * (percentage / 100)\n this.seek(time)\n }\n }\n\n setVolume(value) {\n this.volume = parseInt(value, 10)\n this.trigger(Events.CONTAINER_VOLUME, value, this.name)\n this.playback.volume(value)\n }\n\n fullscreen() {\n this.trigger(Events.CONTAINER_FULLSCREEN, this.name)\n }\n\n onBuffering() {\n this.trigger(Events.CONTAINER_STATE_BUFFERING, this.name)\n }\n\n bufferfull() {\n this.trigger(Events.CONTAINER_STATE_BUFFERFULL, this.name)\n }\n\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_ENTER)\n\n }\n\n mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_LEAVE)\n\n }\n\n settingsUpdate() {\n this.settings = this.playback.settings\n this.trigger(Events.CONTAINER_SETTINGSUPDATE)\n }\n\n highDefinitionUpdate(isHD) {\n this.trigger(Events.CONTAINER_HIGHDEFINITIONUPDATE, isHD)\n }\n\n isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse()\n }\n\n disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true\n this.trigger(Events.CONTAINER_MEDIACONTROL_DISABLE)\n }\n }\n\n enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false\n this.trigger(Events.CONTAINER_MEDIACONTROL_ENABLE)\n }\n }\n\n updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.$el.removeClass('chromeless')\n else\n this.$el.addClass('chromeless')\n\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.updateStyle()\n this.trigger(Events.CONTAINER_OPTIONS_CHANGE)\n }\n\n render() {\n this.$el.append(this.playback.render().el)\n this.updateStyle()\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container/container.js","// style-loader: Adds some css to the DOM by adding a ').html(template(style.toString())(options))\n }\n}\n\nexport default Styler\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/styler.js","import Loader from './loader'\nexport default Loader\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loader/index.js","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/array/from.js\n// module id = 79\n// module chunks = 0","import HTML5Audio from './html5_audio'\nexport default HTML5Audio\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html5_audio/index.js","import HTMLImg from './html_img'\nexport default HTMLImg\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html_img/index.js","import NoOp from './no_op'\nexport default NoOp\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/no_op/index.js","import PosterPlugin from './poster'\nexport default PosterPlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/poster/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Player from './components/player'\nimport Utils from './base/utils'\nimport Events from './base/events'\nimport Playback from './base/playback'\nimport ContainerPlugin from './base/container_plugin'\nimport CorePlugin from './base/core_plugin'\nimport UICorePlugin from './base/ui_core_plugin'\nimport UIContainerPlugin from './base/ui_container_plugin'\nimport BaseObject from './base/base_object'\nimport UIObject from './base/ui_object'\nimport Browser from './components/browser'\nimport Container from './components/container'\nimport Core from './components/core'\nimport Loader from './components/loader'\nimport Mediator from './components/mediator'\nimport MediaControl from './components/media_control'\nimport PlayerInfo from './components/player_info'\nimport BaseFlashPlayback from './playbacks/base_flash_playback'\nimport Flash from './playbacks/flash'\nimport FlasHLS from './playbacks/flashls'\nimport HLS from './playbacks/hls'\nimport HTML5Audio from './playbacks/html5_audio'\nimport HTML5Video from './playbacks/html5_video'\nimport HTMLImg from './playbacks/html_img'\nimport NoOp from './playbacks/no_op'\nimport Poster from './plugins/poster'\nimport Log from './plugins/log'\nimport Styler from './base/styler'\nimport Vendor from './vendor'\nimport template from './base/template'\n\nimport $ from 'clappr-zepto'\n\nconst version = VERSION\n\nexport default {\n Player,\n Mediator,\n Events,\n Browser,\n PlayerInfo,\n MediaControl,\n ContainerPlugin,\n UIContainerPlugin,\n CorePlugin,\n UICorePlugin,\n Playback,\n Container,\n Core,\n Loader,\n BaseObject,\n UIObject,\n Utils,\n BaseFlashPlayback,\n Flash,\n FlasHLS,\n HLS,\n HTML5Audio,\n HTML5Video,\n HTMLImg,\n NoOp,\n Poster,\n Log,\n Styler,\n Vendor,\n version,\n template,\n $\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { uniqueId, currentScriptUrl } from '../base/utils'\n\nimport BaseObject from '../base/base_object'\nimport Events from '../base/events'\nimport Browser from './browser'\nimport CoreFactory from './core_factory'\nimport Loader from './loader'\nimport PlayerInfo from './player_info'\nimport $ from 'clappr-zepto'\n\nconst baseUrl = currentScriptUrl().replace(/\\/[^/]+$/, '')\n\n/**\n * @class Player\n * @constructor\n * @extends BaseObject\n * @module components\n * @example\n * ### Using the Player\n *\n * Add the following script on your HTML:\n * ```html\n * \n * \n * \n * ```\n * Now, create the player:\n * ```html\n * \n *
\n * \n * \n * ```\n */\nexport default class Player extends BaseObject {\n\n set loader(loader) { this._loader = loader }\n get loader() {\n if (!this._loader)\n this._loader = new Loader(this.options.plugins || {}, this.options.playerId)\n\n return this._loader\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.core.mediaControl.container.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.core.mediaControl.container.buffering\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n get isReady() {\n return !!this._ready\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n get eventsMapping() {\n return {\n onReady: Events.PLAYER_READY,\n onResize: Events.PLAYER_RESIZE,\n onPlay: Events.PLAYER_PLAY,\n onPause: Events.PLAYER_PAUSE,\n onStop: Events.PLAYER_STOP,\n onEnded: Events.PLAYER_ENDED,\n onSeek: Events.PLAYER_SEEK,\n onError: Events.PLAYER_ERROR,\n onTimeUpdate: Events.PLAYER_TIMEUPDATE,\n onVolumeUpdate: Events.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: Events.PLAYER_SUBTITLE_AVAILABLE\n }\n }\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {String} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload]\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength]\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu]\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n */\n constructor(options) {\n super(options)\n const defaultOptions = { playerId: uniqueId(''), persistConfig: true, width: 640, height: 360, baseUrl: baseUrl, allowUserInteraction: Browser.isMobile }\n this._options = $.extend(defaultOptions, options)\n this.options.sources = this._normalizeSources(options)\n if (!this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n this.options.allowUserInteraction = true\n }\n if (!this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n this.options.disableKeyboardShortcuts = true\n }\n this._registerOptionEventListeners()\n this._coreFactory = new CoreFactory(this)\n this.playerInfo = PlayerInfo.getInstance(this.options.playerId)\n this.playerInfo.currentSize = { width: options.width, height: options.height }\n this.playerInfo.options = this.options\n if (this.options.parentId)\n this.setParentId(this.options.parentId)\n\n else if (this.options.parent)\n this.attachTo(this.options.parent)\n\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n setParentId(parentId) {\n const el = document.querySelector(parentId)\n if (el)\n this.attachTo(el)\n\n return this\n }\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n attachTo(element) {\n this.options.parentElement = element\n this.core = this._coreFactory.create()\n this._addEventListeners()\n return this\n }\n\n _addEventListeners() {\n if (!this.core.isReady)\n this.listenToOnce(this.core, Events.CORE_READY, this._onReady)\n else\n this._onReady()\n\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this._containerChanged)\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this._onFullscreenChange)\n return this\n }\n\n _addContainerEventListeners() {\n const container = this.core.mediaControl.container\n if (container) {\n this.listenTo(container, Events.CONTAINER_PLAY, this._onPlay)\n this.listenTo(container, Events.CONTAINER_PAUSE, this._onPause)\n this.listenTo(container, Events.CONTAINER_STOP, this._onStop)\n this.listenTo(container, Events.CONTAINER_ENDED, this._onEnded)\n this.listenTo(container, Events.CONTAINER_SEEK, this._onSeek)\n this.listenTo(container, Events.CONTAINER_ERROR, this._onError)\n this.listenTo(container, Events.CONTAINER_TIMEUPDATE, this._onTimeUpdate)\n this.listenTo(container, Events.CONTAINER_VOLUME, this._onVolumeUpdate)\n this.listenTo(container, Events.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable)\n }\n return this\n }\n\n _registerOptionEventListeners() {\n const userEvents = this.options.events || {}\n Object.keys(userEvents).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n if (eventType) {\n let eventFunction = userEvents[userEvent]\n eventFunction = typeof eventFunction === 'function' && eventFunction\n eventFunction && this.on(eventType, eventFunction)\n }\n })\n return this\n }\n\n _containerChanged() {\n this.stopListening()\n this._addEventListeners()\n }\n\n _onReady() {\n this._ready = true\n this._addContainerEventListeners()\n this.trigger(Events.PLAYER_READY)\n }\n\n _onFullscreenChange(fullscreen) {\n this.trigger(Events.PLAYER_FULLSCREEN, fullscreen)\n }\n\n _onVolumeUpdate(volume) {\n this.trigger(Events.PLAYER_VOLUMEUPDATE, volume)\n }\n\n _onSubtitleAvailable() {\n this.trigger(Events.PLAYER_SUBTITLE_AVAILABLE)\n }\n\n _onPlay() {\n this.trigger(Events.PLAYER_PLAY)\n }\n\n _onPause() {\n this.trigger(Events.PLAYER_PAUSE)\n }\n\n _onStop() {\n this.trigger(Events.PLAYER_STOP, this.getCurrentTime())\n }\n\n _onEnded() {\n this.trigger(Events.PLAYER_ENDED)\n }\n\n _onSeek(time) {\n this.trigger(Events.PLAYER_SEEK, time)\n }\n\n _onTimeUpdate(timeProgress) {\n this.trigger(Events.PLAYER_TIMEUPDATE, timeProgress)\n }\n\n _onError(error) {\n this.trigger(Events.PLAYER_ERROR, error)\n }\n\n _normalizeSources(options) {\n const sources = options.sources || (options.source !== undefined? [options.source] : [])\n return sources.length === 0 ? [{ source:'', mimeType:'' }] : sources\n }\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n resize(size) {\n this.core.resize(size)\n return this\n }\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <>, mimeType: <>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined)\n this.configure({ autoPlay: !!autoPlay })\n\n this.core.load(sources, mimeType)\n return this\n }\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n destroy() {\n this.core.destroy()\n return this\n }\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n consent() {\n this.core.getCurrentPlayback().consent()\n return this\n }\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n play() {\n this.core.mediaControl.container.play()\n return this\n }\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n pause() {\n this.core.mediaControl.container.pause()\n return this\n }\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n stop() {\n this.core.mediaControl.container.stop()\n return this\n }\n\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n seek(time) {\n this.core.mediaControl.container.seek(time)\n return this\n }\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n seekPercentage(percentage) {\n this.core.mediaControl.container.seekPercentage(percentage)\n return this\n }\n\n /**\n * Set the volume for the current video (`source`).\n * @method setVolume\n * @param {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n * @return {Player} itself\n */\n setVolume(volume) {\n if (this.core && this.core.mediaControl)\n this.core.mediaControl.setVolume(volume)\n\n return this\n }\n\n /**\n * Get the volume for the current video\n * @method getVolume\n * @return {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n */\n getVolume() {\n return this.core && this.core.mediaControl ? this.core.mediaControl.volume : 0\n }\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n mute() {\n this._mutedVolume = this.getVolume()\n this.setVolume(0)\n return this\n }\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100)\n this._mutedVolume = null\n return this\n }\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n isPlaying() {\n return this.core.mediaControl.container.isPlaying()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return this.core.mediaControl.container.isDvrEnabled()\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return this.core.mediaControl.container.isDvrInUse()\n }\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n configure(options) {\n this.core.configure(options)\n return this\n }\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n getPlugin(name) {\n const plugins = this.core.plugins.concat(this.core.mediaControl.container.plugins)\n return plugins.filter(plugin => plugin.name === name)[0]\n }\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n getCurrentTime() {\n return this.core.mediaControl.container.getCurrentTime()\n }\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() {\n return this.core.mediaControl.container.getStartTimeOffset()\n }\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n getDuration() {\n return this.core.mediaControl.container.getDuration()\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/player.js","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/keys.js\n// module id = 86\n// module chunks = 0","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.keys.js\n// module id = 87\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iobject.js\n// module id = 88\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-includes.js\n// module id = 89\n// module chunks = 0","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-index.js\n// module id = 90\n// module chunks = 0","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_a-function.js\n// module id = 91\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol/iterator.js\n// module id = 92\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/iterator.js\n// module id = 93\n// module chunks = 0","var toInteger = require('./_to-integer')\n , defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_string-at.js\n// module id = 94\n// module chunks = 0","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-create.js\n// module id = 95\n// module chunks = 0","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dps.js\n// module id = 96\n// module chunks = 0","module.exports = require('./_global').document && document.documentElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_html.js\n// module id = 97\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gpo.js\n// module id = 98\n// module chunks = 0","require('./es6.array.iterator');\nvar global = require('./_global')\n , hide = require('./_hide')\n , Iterators = require('./_iterators')\n , TO_STRING_TAG = require('./_wks')('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype;\n if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/web.dom.iterable.js\n// module id = 99\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n , step = require('./_iter-step')\n , Iterators = require('./_iterators')\n , toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.array.iterator.js\n// module id = 100\n// module chunks = 0","module.exports = function(){ /* empty */ };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_add-to-unscopables.js\n// module id = 101\n// module chunks = 0","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-step.js\n// module id = 102\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol.js\n// module id = 103\n// module chunks = 0","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/index.js\n// module id = 104\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global')\n , has = require('./_has')\n , DESCRIPTORS = require('./_descriptors')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , META = require('./_meta').KEY\n , $fails = require('./_fails')\n , shared = require('./_shared')\n , setToStringTag = require('./_set-to-string-tag')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , wksExt = require('./_wks-ext')\n , wksDefine = require('./_wks-define')\n , keyOf = require('./_keyof')\n , enumKeys = require('./_enum-keys')\n , isArray = require('./_is-array')\n , anObject = require('./_an-object')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , createDesc = require('./_property-desc')\n , _create = require('./_object-create')\n , gOPNExt = require('./_object-gopn-ext')\n , $GOPD = require('./_object-gopd')\n , $DP = require('./_object-dp')\n , $keys = require('./_object-keys')\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./_library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.symbol.js\n// module id = 105\n// module chunks = 0","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_meta.js\n// module id = 106\n// module chunks = 0","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_keyof.js\n// module id = 107\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie');\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_enum-keys.js\n// module id = 108\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-array.js\n// module id = 109\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject')\n , gOPN = require('./_object-gopn').f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn-ext.js\n// module id = 110\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.async-iterator.js\n// module id = 112\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.observable.js\n// module id = 113\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/define-property.js\n// module id = 114\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.define-property.js\n// module id = 115\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/set-prototype-of.js\n// module id = 116\n// module chunks = 0","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/set-prototype-of.js\n// module id = 117\n// module chunks = 0","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.set-prototype-of.js\n// module id = 118\n// module chunks = 0","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object')\n , anObject = require('./_an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-proto.js\n// module id = 119\n// module chunks = 0","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D){\n return $Object.create(P, D);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/create.js\n// module id = 120\n// module chunks = 0","var $export = require('./_export')\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: require('./_object-create')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.create.js\n// module id = 121\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js\n// module id = 122\n// module chunks = 0","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/get-own-property-descriptor.js\n// module id = 123\n// module chunks = 0","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject')\n , $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js\n// module id = 124\n// module chunks = 0","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null)\n throw new TypeError('\"this\" is null or not defined')\n\n\n let o = Object(this)\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n let len = o.length >>> 0\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function')\n throw new TypeError('predicate must be a function')\n\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n let thisArg = arguments[1]\n\n // 5. Let k be 0.\n let k = 0\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n let kValue = o[k]\n if (predicate.call(thisArg, kValue, k, o))\n return kValue\n\n // e. Increase k by 1.\n k++\n }\n\n // 7. Return undefined.\n return undefined\n }\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/polyfills.js","\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { Kibo } from '../../vendor'\n\nconst BOLD = 'font-weight: bold; font-size: 13px;'\nconst INFO = 'color: #006600;' + BOLD\nconst DEBUG = 'color: #0000ff;' + BOLD\nconst WARN = 'color: #ff8000;' + BOLD\nconst ERROR = 'color: #ff0000;' + BOLD\n\nconst LEVEL_DEBUG = 0\nconst LEVEL_INFO = 1\nconst LEVEL_WARN = 2\nconst LEVEL_ERROR = 3\nconst LEVEL_DISABLED = LEVEL_ERROR\n\nconst COLORS = [DEBUG, INFO, WARN, ERROR, ERROR]\nconst DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled']\n\nexport default class Log {\n constructor(level = LEVEL_INFO, offLevel = LEVEL_DISABLED) {\n this.kibo = new Kibo()\n this.kibo.down(['ctrl shift d'], () => this.onOff())\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress']\n this.level = level\n this.offLevel = offLevel\n }\n\n debug(klass) { this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1)) }\n info(klass) { this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1)) }\n warn(klass) { this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1)) }\n error(klass) { this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1)) }\n\n onOff() {\n if (this.level === this.offLevel) { this.level = this.previousLevel } else {\n this.previousLevel = this.level\n this.level = this.offLevel\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log)\n window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN)\n\n }\n\n level(newLevel) {\n this.level = newLevel\n }\n\n log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return\n if (level < this.level) return\n\n if (!message) {\n message = klass\n klass = null\n }\n const color = COLORS[level]\n let klassDescription = ''\n if (klass)\n klassDescription = '[' + klass + ']'\n\n if (window.console && window.console.log)\n window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message))\n\n }\n}\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG\nLog.LEVEL_INFO = LEVEL_INFO\nLog.LEVEL_WARN = LEVEL_WARN\nLog.LEVEL_ERROR = LEVEL_ERROR\n\nLog.getInstance = function() {\n if (this._instance === undefined) {\n this._instance = new this()\n this._instance.previousLevel = this._instance.level\n this._instance.level = this._instance.offLevel\n }\n return this._instance\n}\n\nLog.setLevel = function(level) { this.getInstance().level = level }\n\nLog.debug = function() { this.getInstance().debug.apply(this.getInstance(), arguments) }\nLog.info = function() { this.getInstance().info.apply(this.getInstance(), arguments) }\nLog.warn = function() { this.getInstance().warn.apply(this.getInstance(), arguments) }\nLog.error = function() { this.getInstance().error.apply(this.getInstance(), arguments) }\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/log/log.js","/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function() {\n for(var key in Kibo.KEY_NAMES_BY_CODE) {\n if(Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = (function() {\n if(document.addEventListener) {\n return function(element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n }\n else if(document.attachEvent) {\n return function(element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.unregisterEvent = (function() {\n if(document.removeEventListener) {\n return function(element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n }\n else if(document.detachEvent) {\n return function(element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.stringContains = function(string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function(string) {\n return string.toLowerCase().replace(/^./, function(match) { return match.toUpperCase(); });\n};\n\nKibo.isString = function(what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = (function() {\n if(Array.prototype.indexOf) {\n return function(haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n }\n else {\n return function(haystack, needle) {\n for(var i = 0; i < haystack.length; i++) {\n if(haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n})();\n\nKibo.extractModifiers = function(keyCombination) {\n var modifiers, i\n modifiers = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n}\n\nKibo.extractKey = function(keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for(i = 0; i < keys.length; i++) {\n if(!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function(keyCombination) {\n var result, key;\n\n if(Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if(key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n}\n\nKibo.keyName = function(keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function(keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function() {\n var i, that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function(upOrDown) {\n var that = this;\n return function(e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if(Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for(i = 0; i < registeredKeys.any.length; i++) {\n if((registeredKeys.any[i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if(registeredKeys[lastModifiersAndKey]) {\n for(i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if((registeredKeys[lastModifiersAndKey][i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function(upOrDown, newKeys, func) {\n var i, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function(upOrDown, newKeys, func) {\n var i, j, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(func === null) {\n delete registeredKeys[keys];\n } else {\n if(registeredKeys[keys]) {\n for(j = 0; j < registeredKeys[keys].length; j++) {\n if(String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function(keys) {\n return this.unregisterKeys('down', keys, null);\n}\n\nKibo.prototype.delegate = function(upOrDown, keys, func) {\n return (func !== null || func !== undefined) ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function(keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function(keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function(modifier) {\n if(!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function() {\n var result, i;\n\n result = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if(!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexport default Kibo\n\n\n\n// WEBPACK FOOTER //\n// ./src/vendor/kibo.js","import CoreFactory from './core_factory'\nexport default CoreFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseObject from '../../base/base_object'\nimport Core from '../core'\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class CoreFactory extends BaseObject {\n\n get loader() { return this.player.loader }\n\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n constructor(player) {\n super()\n this.player = player\n this._options = player.options\n }\n\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n create() {\n this.options.loader = this.loader\n this.core = new Core(this.options)\n this.addCorePlugins()\n this.core.createContainers(this.options)\n return this.core\n }\n\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n addCorePlugins() {\n this.loader.corePlugins.forEach((Plugin) => {\n const plugin = new Plugin(this.core)\n this.core.addPlugin(plugin)\n this.setupExternalInterface(plugin)\n })\n return this.core\n }\n\n setupExternalInterface(plugin) {\n const externalFunctions = plugin.getExternalInterface()\n for (const key in externalFunctions)\n this.player[key] = externalFunctions[key].bind(plugin)\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/core_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, Fullscreen, DomRecycler } from '../../base/utils'\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport Browser from '../../components/browser'\nimport ContainerFactory from '../../components/container_factory'\nimport MediaControl from '../../components/media_control'\nimport Mediator from '../../components/mediator'\nimport PlayerInfo from '../../components/player_info'\n\nimport Styler from '../../base/styler'\n\nimport $ from 'clappr-zepto'\n\nimport './public/style.scss'\nimport fontStyle from './public/fonts.css'\n\nlet style\n\n/**\n * The Core is responsible to manage Containers, the mediator, MediaControl\n * and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\nexport default class Core extends UIObject {\n get events() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'showMediaControl',\n 'mouseleave': 'hideMediaControl'\n }\n }\n\n get attributes() {\n return {\n 'data-player': '',\n tabindex: 9999\n }\n }\n\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n get isReady() {\n return !!this.ready\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this.getPlugin('strings') || { t: (key) => key }\n }\n\n constructor(options) {\n super(options)\n this.configureDomRecycler()\n this.playerInfo = PlayerInfo.getInstance(options.playerId)\n this.firstResize = true\n this.plugins = []\n this.containers = []\n this.setupMediaControl(null)\n //FIXME fullscreen api sucks\n this._boundFullscreenHandler = () => this.handleFullscreenChange()\n $(document).bind('fullscreenchange', this._boundFullscreenHandler)\n $(document).bind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).bind('mozfullscreenchange', this._boundFullscreenHandler)\n Browser.isMobile && $(window).bind('resize', (o) => { this.handleWindowResize(o) })\n }\n\n configureDomRecycler() {\n let recycleVideo = (this.options && this.options.playback && this.options.playback.recycleVideo) ? true : false\n DomRecycler.configure({\n recycleVideo: recycleVideo\n })\n }\n\n createContainers(options) {\n this.defer = $.Deferred()\n this.defer.promise(this)\n this.containerFactory = new ContainerFactory(options, options.loader, this.i18n)\n this.containerFactory\n .createContainers()\n .then((containers) => this.setupContainers(containers))\n .then((containers) => this.resolveOnContainersReady(containers))\n }\n\n updateSize() {\n if (Fullscreen.isFullscreen())\n this.setFullscreen()\n else\n this.setPlayerSize()\n\n }\n\n setFullscreen() {\n if(!Browser.isiOS) {\n this.$el.addClass('fullscreen')\n this.$el.removeAttr('style')\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.playerInfo.currentSize = { width: $(window).width(), height: $(window).height() }\n }\n }\n\n setPlayerSize() {\n this.$el.removeClass('fullscreen')\n this.playerInfo.currentSize = this.playerInfo.previousSize\n this.playerInfo.previousSize = { width: $(window).width(), height: $(window).height() }\n this.resize(this.playerInfo.currentSize)\n }\n\n resize(options) {\n if (!isNumber(options.height) && !isNumber(options.width)) {\n this.el.style.height = `${options.height}`\n this.el.style.width = `${options.width}`\n } else {\n this.el.style.height = `${options.height}px`\n this.el.style.width = `${options.width}px`\n }\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.options.width = options.width\n this.options.height = options.height\n this.playerInfo.currentSize = options\n this.triggerResize(this.playerInfo.currentSize)\n }\n\n enableResizeObserver() {\n const checkSizeCallback = () => {\n if (this.playerInfo.computedSize.width !== this.el.clientWidth ||\n this.playerInfo.computedSize.height !== this.el.clientHeight) {\n this.playerInfo.computedSize = { width: this.el.clientWidth, height: this.el.clientHeight }\n this.triggerResize(this.playerInfo.computedSize)\n }\n }\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500)\n }\n\n triggerResize(newSize) {\n const thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width\n if (thereWasChange) {\n Mediator.trigger(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, newSize)\n this.oldHeight = newSize.height\n this.oldWidth = newSize.width\n this.firstResize = false\n }\n }\n\n disableResizeObserver() {\n if (this.resizeObserverInterval) clearInterval(this.resizeObserverInterval)\n }\n\n resolveOnContainersReady(containers) {\n $.when.apply($, containers).done(() => {\n this.defer.resolve(this)\n this.ready = true\n this.trigger(Events.CORE_READY)\n })\n }\n\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n load(sources, mimeType) {\n this.options.mimeType = mimeType\n sources = sources && sources.constructor === Array ? sources : [sources]\n this.containers.forEach((container) => container.destroy())\n this.mediaControl.container = null\n this.containerFactory.options = $.extend(this.options, { sources })\n this.containerFactory.createContainers().then((containers) => {\n this.setupContainers(containers)\n })\n }\n\n destroy() {\n this.disableResizeObserver()\n this.containers.forEach((container) => container.destroy())\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n this.mediaControl.destroy()\n $(document).unbind('fullscreenchange', this._boundFullscreenHandler)\n $(document).unbind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).unbind('mozfullscreenchange', this._boundFullscreenHandler)\n }\n\n handleFullscreenChange() {\n this.trigger(Events.CORE_FULLSCREEN, Fullscreen.isFullscreen())\n this.updateSize()\n this.mediaControl.show()\n }\n\n handleWindowResize(event) {\n let orientation = ($(window).width() > $(window).height()) ? 'landscape' : 'portrait'\n if (this._screenOrientation === orientation) return\n this._screenOrientation = orientation\n\n this.trigger(Events.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n })\n }\n\n setMediaControlContainer(container) {\n this.mediaControl.setContainer(container)\n this.mediaControl.render()\n }\n\n disableMediaControl() {\n this.mediaControl.disable()\n this.$el.removeClass('nocursor')\n }\n\n enableMediaControl() {\n this.mediaControl.enable()\n }\n\n removeContainer(container) {\n this.stopListening(container)\n this.containers = this.containers.filter((c) => c !== container)\n }\n\n appendContainer(container) {\n this.listenTo(container, Events.CONTAINER_DESTROYED, this.removeContainer)\n this.containers.push(container)\n }\n\n setupContainers(containers) {\n containers.map(this.appendContainer.bind(this))\n this.trigger(Events.CORE_CONTAINERS_CREATED)\n this.renderContainers()\n this.setupMediaControl(this.getCurrentContainer())\n this.render()\n this.appendToParent()\n return this.containers\n }\n\n renderContainers() {\n this.containers.map((container) => this.el.appendChild(container.render().el))\n }\n\n createContainer(source, options) {\n const container = this.containerFactory.createContainer(source, options)\n this.appendContainer(container)\n this.el.appendChild(container.render().el)\n return container\n }\n\n setupMediaControl(container) {\n if (this.mediaControl) { this.mediaControl.setContainer(container) } else {\n this.mediaControl = this.createMediaControl($.extend({ container: container, focusElement: this.el }, this.options))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_FULLSCREEN, this.toggleFullscreen)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_SHOW, this.onMediaControlShow.bind(this, true))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_HIDE, this.onMediaControlShow.bind(this, false))\n }\n }\n\n createMediaControl(options) {\n if(options.mediacontrol && options.mediacontrol.external)\n return new options.mediacontrol.external(options).render()\n else\n return new MediaControl(options).render()\n\n }\n\n getCurrentContainer() {\n if (!this.mediaControl || !this.mediaControl.container)\n return this.containers[0]\n\n return this.mediaControl.container\n }\n\n getCurrentPlayback() {\n const container = this.getCurrentContainer()\n return container && container.playback\n }\n\n getPlaybackType() {\n const container = this.getCurrentContainer()\n return container && container.getPlaybackType()\n }\n\n toggleFullscreen() {\n if (!Fullscreen.isFullscreen()) {\n Fullscreen.requestFullscreen(this.el)\n if(!Browser.isiOS)\n this.$el.addClass('fullscreen')\n\n } else {\n Fullscreen.cancelFullscreen()\n if(!Browser.isiOS)\n this.$el.removeClass('fullscreen nocursor')\n\n }\n this.mediaControl.show()\n }\n\n showMediaControl(event) {\n this.mediaControl.show(event)\n }\n\n hideMediaControl() {\n this.mediaControl.hide(this.options.hideMediaControlDelay)\n }\n\n onMediaControlShow(showing) {\n this.getCurrentContainer().trigger(showing?Events.CONTAINER_MEDIACONTROL_SHOW:Events.CONTAINER_MEDIACONTROL_HIDE)\n\n if (showing)\n this.$el.removeClass('nocursor')\n else if (Fullscreen.isFullscreen())\n this.$el.addClass('nocursor')\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.configureDomRecycler()\n const sources = options.source || options.sources\n\n if (sources) { this.load(sources, options.mimeType || this.options.mimeType) } else {\n this.trigger(Events.CORE_OPTIONS_CHANGE)\n\n this.containers.forEach((container) => {\n container.configure(this.options)\n })\n }\n }\n\n appendToParent() {\n let hasCoreParent = this.$el.parent() && this.$el.parent().length\n !hasCoreParent && this.$el.appendTo(this.options.parentElement)\n }\n\n render() {\n this.$el.append(this.mediaControl.render().el)\n\n if (!style)\n style = Styler.getStyleFor(fontStyle, { baseUrl: this.options.baseUrl })\n\n $('head').append(style)\n\n this.options.width = this.options.width || this.$el.width()\n this.options.height = this.options.height || this.$el.height()\n const size = { width: this.options.width, height: this.options.height }\n this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size\n this.updateSize()\n\n this.previousSize = { width: this.$el.width(), height: this.$el.height() }\n\n this.enableResizeObserver()\n\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core/core.js","import ContainerFactory from './container_factory'\nexport default ContainerFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The ContainerFactory is responsible for manage playback bootstrap and create containers.\n */\n\nimport BaseObject from '../../base/base_object'\nimport Events from '../../base/events'\nimport Container from '../../components/container'\nimport $ from 'clappr-zepto'\n\nexport default class ContainerFactory extends BaseObject {\n get options() { return this._options }\n set options(options) { this._options = options }\n\n constructor(options, loader, i18n) {\n super(options)\n this._i18n = i18n\n this.loader = loader\n }\n\n createContainers() {\n return $.Deferred((promise) => {\n promise.resolve(this.options.sources.map((source) => {\n return this.createContainer(source)\n }))\n })\n }\n\n findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(p => p.canPlay(source, mimeType))[0]\n }\n\n createContainer(source) {\n let resolvedSource = null,\n mimeType = this.options.mimeType\n if (typeof source === 'object') {\n resolvedSource = source.source.toString()\n if (source.mimeType)\n mimeType = source.mimeType\n\n } else { resolvedSource = source.toString() }\n\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource\n\n let options = $.extend({}, this.options, {\n src: resolvedSource,\n mimeType: mimeType\n })\n const playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType)\n const playback = new playbackPlugin(options, this._i18n)\n\n options = $.extend({}, options, { playback: playback })\n\n const container = new Container(options, this._i18n)\n const defer = $.Deferred()\n defer.promise(container)\n this.addContainerPlugins(container)\n this.listenToOnce(container, Events.CONTAINER_READY, () => defer.resolve(container))\n return container\n }\n\n addContainerPlugins(container) {\n this.loader.containerPlugins.forEach((Plugin) => {\n container.addPlugin(new Plugin(container))\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/container_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Container is responsible for the video rendering and state\n */\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\n\nimport './public/style.scss'\n\nimport $ from 'clappr-zepto'\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class Container extends UIObject {\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get name() { return 'Container' }\n get attributes() { return { class: 'container', 'data-container': '' } }\n get events() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'doubleTap': 'dblClicked',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.playback.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.playback.buffering\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this._i18n\n }\n\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n get hasClosedCaptionsTracks() {\n return this.playback.hasClosedCaptionsTracks\n }\n\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n get closedCaptionsTracks() {\n return this.playback.closedCaptionsTracks\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n get closedCaptionsTrackId() {\n return this.playback.closedCaptionsTrackId\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n set closedCaptionsTrackId(trackId) {\n this.playback.closedCaptionsTrackId = trackId\n }\n\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n constructor(options, i18n) {\n super(options)\n this._i18n = i18n\n this.currentTime = 0\n this.volume = 100\n this.playback = options.playback\n this.settings = $.extend({}, this.playback.settings)\n this.isReady = false\n this.mediaControlDisabled = false\n this.plugins = [this.playback]\n this.bindEvents()\n }\n\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n bindEvents() {\n this.listenTo(this.playback, Events.PLAYBACK_PROGRESS, this.progress)\n this.listenTo(this.playback, Events.PLAYBACK_TIMEUPDATE, this.timeUpdated)\n this.listenTo(this.playback, Events.PLAYBACK_READY, this.ready)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERING, this.onBuffering)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERFULL, this.bufferfull)\n this.listenTo(this.playback, Events.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_LOADEDMETADATA, this.loadedMetadata)\n this.listenTo(this.playback, Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_BITRATE, this.updateBitrate)\n this.listenTo(this.playback, Events.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_DVR, this.playbackDvrStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_SEEKED, this.onSeeked)\n this.listenTo(this.playback, Events.PLAYBACK_ENDED, this.onEnded)\n this.listenTo(this.playback, Events.PLAYBACK_PLAY, this.playing)\n this.listenTo(this.playback, Events.PLAYBACK_PAUSE, this.paused)\n this.listenTo(this.playback, Events.PLAYBACK_STOP, this.stopped)\n this.listenTo(this.playback, Events.PLAYBACK_ERROR, this.error)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged)\n }\n\n subtitleAvailable() {\n this.trigger(Events.CONTAINER_SUBTITLE_AVAILABLE)\n }\n\n subtitleChanged(track) {\n this.trigger(Events.CONTAINER_SUBTITLE_CHANGED, track)\n }\n\n playbackStateChanged(state) {\n this.trigger(Events.CONTAINER_PLAYBACKSTATE, state)\n }\n\n playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings\n this.dvrInUse = dvrInUse\n this.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse)\n }\n\n updateBitrate(newBitrate) {\n this.trigger(Events.CONTAINER_BITRATE, newBitrate)\n }\n\n statsReport(metrics) {\n this.trigger(Events.CONTAINER_STATS_REPORT, metrics)\n }\n\n getPlaybackType() {\n return this.playback.getPlaybackType()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return !!this.playback.dvrEnabled\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return !!this.dvrInUse\n }\n\n /**\n * destroys the container\n * @method destroy\n */\n destroy() {\n this.trigger(Events.CONTAINER_DESTROYED, this, this.name)\n this.stopListening()\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n }\n\n setStyle(style) {\n this.$el.css(style)\n }\n\n animate(style, duration) {\n return this.$el.animate(style, duration).promise()\n }\n\n ready() {\n this.isReady = true\n this.trigger(Events.CONTAINER_READY, this.name)\n }\n\n isPlaying() {\n return this.playback.isPlaying()\n }\n\n getStartTimeOffset() {\n return this.playback.getStartTimeOffset()\n }\n\n getCurrentTime() {\n return this.currentTime\n }\n\n getDuration() {\n return this.playback.getDuration()\n }\n\n error(errorObj) {\n if (!this.isReady)\n this.ready()\n\n this.trigger(Events.CONTAINER_ERROR, { error: errorObj, container: this }, this.name)\n }\n\n loadedMetadata(metadata) {\n this.trigger(Events.CONTAINER_LOADEDMETADATA, metadata)\n }\n\n timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current\n this.trigger(Events.CONTAINER_TIMEUPDATE, timeProgress, this.name)\n }\n\n progress(...args) {\n this.trigger(Events.CONTAINER_PROGRESS, ...args, this.name)\n }\n\n playing() {\n this.trigger(Events.CONTAINER_PLAY, this.name)\n }\n\n paused() {\n this.trigger(Events.CONTAINER_PAUSE, this.name)\n }\n\n /**\n * plays the playback\n * @method play\n */\n play() {\n this.playback.play()\n }\n\n /**\n * stops the playback\n * @method stop\n */\n stop() {\n this.playback.stop()\n this.currentTime = 0\n }\n\n /**\n * pauses the playback\n * @method pause\n */\n pause() {\n this.playback.pause()\n }\n\n onEnded() {\n this.trigger(Events.CONTAINER_ENDED, this, this.name)\n this.currentTime = 0\n }\n\n stopped() {\n this.trigger(Events.CONTAINER_STOP)\n }\n\n clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CLICK, this, this.name)\n\n }\n\n dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_DBLCLICK, this, this.name)\n\n }\n\n onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CONTEXTMENU, event, this.name)\n\n }\n\n seek(time) {\n this.trigger(Events.CONTAINER_SEEK, time, this.name)\n this.playback.seek(time)\n }\n\n onSeeked() {\n this.trigger(Events.CONTAINER_SEEKED, this.name)\n }\n\n seekPercentage(percentage) {\n const duration = this.getDuration()\n if (percentage >= 0 && percentage <= 100) {\n const time = duration * (percentage / 100)\n this.seek(time)\n }\n }\n\n setVolume(value) {\n this.volume = parseInt(value, 10)\n this.trigger(Events.CONTAINER_VOLUME, value, this.name)\n this.playback.volume(value)\n }\n\n fullscreen() {\n this.trigger(Events.CONTAINER_FULLSCREEN, this.name)\n }\n\n onBuffering() {\n this.trigger(Events.CONTAINER_STATE_BUFFERING, this.name)\n }\n\n bufferfull() {\n this.trigger(Events.CONTAINER_STATE_BUFFERFULL, this.name)\n }\n\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_ENTER)\n\n }\n\n mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_LEAVE)\n\n }\n\n settingsUpdate() {\n this.settings = this.playback.settings\n this.trigger(Events.CONTAINER_SETTINGSUPDATE)\n }\n\n highDefinitionUpdate(isHD) {\n this.trigger(Events.CONTAINER_HIGHDEFINITIONUPDATE, isHD)\n }\n\n isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse()\n }\n\n disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true\n this.trigger(Events.CONTAINER_MEDIACONTROL_DISABLE)\n }\n }\n\n enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false\n this.trigger(Events.CONTAINER_MEDIACONTROL_ENABLE)\n }\n }\n\n updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.$el.removeClass('chromeless')\n else\n this.$el.addClass('chromeless')\n\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.updateStyle()\n this.trigger(Events.CONTAINER_OPTIONS_CHANGE)\n }\n\n render() {\n this.$el.append(this.playback.render().el)\n this.updateStyle()\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container/container.js","// style-loader: Adds some css to the DOM by adding a ').html(template(style.toString())(options))\n }\n}\n\nexport default Styler\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/styler.js","import Loader from './loader'\nexport default Loader\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loader/index.js","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/array/from.js\n// module id = 79\n// module chunks = 0","import HTML5Audio from './html5_audio'\nexport default HTML5Audio\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html5_audio/index.js","import HTMLImg from './html_img'\nexport default HTMLImg\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html_img/index.js","import NoOp from './no_op'\nexport default NoOp\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/no_op/index.js","import PosterPlugin from './poster'\nexport default PosterPlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/poster/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Player from './components/player'\nimport Utils from './base/utils'\nimport Events from './base/events'\nimport Playback from './base/playback'\nimport ContainerPlugin from './base/container_plugin'\nimport CorePlugin from './base/core_plugin'\nimport UICorePlugin from './base/ui_core_plugin'\nimport UIContainerPlugin from './base/ui_container_plugin'\nimport BaseObject from './base/base_object'\nimport UIObject from './base/ui_object'\nimport Browser from './components/browser'\nimport Container from './components/container'\nimport Core from './components/core'\nimport Loader from './components/loader'\nimport Mediator from './components/mediator'\nimport MediaControl from './components/media_control'\nimport PlayerInfo from './components/player_info'\nimport BaseFlashPlayback from './playbacks/base_flash_playback'\nimport Flash from './playbacks/flash'\nimport FlasHLS from './playbacks/flashls'\nimport HLS from './playbacks/hls'\nimport HTML5Audio from './playbacks/html5_audio'\nimport HTML5Video from './playbacks/html5_video'\nimport HTMLImg from './playbacks/html_img'\nimport NoOp from './playbacks/no_op'\nimport Poster from './plugins/poster'\nimport Log from './plugins/log'\nimport Styler from './base/styler'\nimport Vendor from './vendor'\nimport template from './base/template'\n\nimport $ from 'clappr-zepto'\n\nconst version = VERSION\n\nexport default {\n Player,\n Mediator,\n Events,\n Browser,\n PlayerInfo,\n MediaControl,\n ContainerPlugin,\n UIContainerPlugin,\n CorePlugin,\n UICorePlugin,\n Playback,\n Container,\n Core,\n Loader,\n BaseObject,\n UIObject,\n Utils,\n BaseFlashPlayback,\n Flash,\n FlasHLS,\n HLS,\n HTML5Audio,\n HTML5Video,\n HTMLImg,\n NoOp,\n Poster,\n Log,\n Styler,\n Vendor,\n version,\n template,\n $\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { uniqueId, currentScriptUrl } from '../base/utils'\n\nimport BaseObject from '../base/base_object'\nimport Events from '../base/events'\nimport Browser from './browser'\nimport CoreFactory from './core_factory'\nimport Loader from './loader'\nimport PlayerInfo from './player_info'\nimport $ from 'clappr-zepto'\n\nconst baseUrl = currentScriptUrl().replace(/\\/[^/]+$/, '')\n\n/**\n * @class Player\n * @constructor\n * @extends BaseObject\n * @module components\n * @example\n * ### Using the Player\n *\n * Add the following script on your HTML:\n * ```html\n * \n * \n * \n * ```\n * Now, create the player:\n * ```html\n * \n *
\n * \n * \n * ```\n */\nexport default class Player extends BaseObject {\n\n set loader(loader) { this._loader = loader }\n get loader() {\n if (!this._loader)\n this._loader = new Loader(this.options.plugins || {}, this.options.playerId)\n\n return this._loader\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.core.mediaControl.container.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.core.mediaControl.container.buffering\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n get isReady() {\n return !!this._ready\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n get eventsMapping() {\n return {\n onReady: Events.PLAYER_READY,\n onResize: Events.PLAYER_RESIZE,\n onPlay: Events.PLAYER_PLAY,\n onPause: Events.PLAYER_PAUSE,\n onStop: Events.PLAYER_STOP,\n onEnded: Events.PLAYER_ENDED,\n onSeek: Events.PLAYER_SEEK,\n onError: Events.PLAYER_ERROR,\n onTimeUpdate: Events.PLAYER_TIMEUPDATE,\n onVolumeUpdate: Events.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: Events.PLAYER_SUBTITLE_AVAILABLE\n }\n }\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {String} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload]\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength]\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu]\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n */\n constructor(options) {\n super(options)\n const defaultOptions = { playerId: uniqueId(''), persistConfig: true, width: 640, height: 360, baseUrl: baseUrl, allowUserInteraction: Browser.isMobile }\n this._options = $.extend(defaultOptions, options)\n this.options.sources = this._normalizeSources(options)\n if (!this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n this.options.allowUserInteraction = true\n }\n if (!this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n this.options.disableKeyboardShortcuts = true\n }\n this._registerOptionEventListeners()\n this._coreFactory = new CoreFactory(this)\n this.playerInfo = PlayerInfo.getInstance(this.options.playerId)\n this.playerInfo.currentSize = { width: options.width, height: options.height }\n this.playerInfo.options = this.options\n if (this.options.parentId)\n this.setParentId(this.options.parentId)\n\n else if (this.options.parent)\n this.attachTo(this.options.parent)\n\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n setParentId(parentId) {\n const el = document.querySelector(parentId)\n if (el)\n this.attachTo(el)\n\n return this\n }\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n attachTo(element) {\n this.options.parentElement = element\n this.core = this._coreFactory.create()\n this._addEventListeners()\n return this\n }\n\n _addEventListeners() {\n if (!this.core.isReady)\n this.listenToOnce(this.core, Events.CORE_READY, this._onReady)\n else\n this._onReady()\n\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this._containerChanged)\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this._onFullscreenChange)\n return this\n }\n\n _addContainerEventListeners() {\n const container = this.core.mediaControl.container\n if (container) {\n this.listenTo(container, Events.CONTAINER_PLAY, this._onPlay)\n this.listenTo(container, Events.CONTAINER_PAUSE, this._onPause)\n this.listenTo(container, Events.CONTAINER_STOP, this._onStop)\n this.listenTo(container, Events.CONTAINER_ENDED, this._onEnded)\n this.listenTo(container, Events.CONTAINER_SEEK, this._onSeek)\n this.listenTo(container, Events.CONTAINER_ERROR, this._onError)\n this.listenTo(container, Events.CONTAINER_TIMEUPDATE, this._onTimeUpdate)\n this.listenTo(container, Events.CONTAINER_VOLUME, this._onVolumeUpdate)\n this.listenTo(container, Events.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable)\n }\n return this\n }\n\n _registerOptionEventListeners() {\n const userEvents = this.options.events || {}\n Object.keys(userEvents).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n if (eventType) {\n let eventFunction = userEvents[userEvent]\n eventFunction = typeof eventFunction === 'function' && eventFunction\n eventFunction && this.on(eventType, eventFunction)\n }\n })\n return this\n }\n\n _containerChanged() {\n this.stopListening()\n this._addEventListeners()\n }\n\n _onReady() {\n this._ready = true\n this._addContainerEventListeners()\n this.trigger(Events.PLAYER_READY)\n }\n\n _onFullscreenChange(fullscreen) {\n this.trigger(Events.PLAYER_FULLSCREEN, fullscreen)\n }\n\n _onVolumeUpdate(volume) {\n this.trigger(Events.PLAYER_VOLUMEUPDATE, volume)\n }\n\n _onSubtitleAvailable() {\n this.trigger(Events.PLAYER_SUBTITLE_AVAILABLE)\n }\n\n _onPlay() {\n this.trigger(Events.PLAYER_PLAY)\n }\n\n _onPause() {\n this.trigger(Events.PLAYER_PAUSE)\n }\n\n _onStop() {\n this.trigger(Events.PLAYER_STOP, this.getCurrentTime())\n }\n\n _onEnded() {\n this.trigger(Events.PLAYER_ENDED)\n }\n\n _onSeek(time) {\n this.trigger(Events.PLAYER_SEEK, time)\n }\n\n _onTimeUpdate(timeProgress) {\n this.trigger(Events.PLAYER_TIMEUPDATE, timeProgress)\n }\n\n _onError(error) {\n this.trigger(Events.PLAYER_ERROR, error)\n }\n\n _normalizeSources(options) {\n const sources = options.sources || (options.source !== undefined? [options.source] : [])\n return sources.length === 0 ? [{ source:'', mimeType:'' }] : sources\n }\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n resize(size) {\n this.core.resize(size)\n return this\n }\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <>, mimeType: <>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined)\n this.configure({ autoPlay: !!autoPlay })\n\n this.core.load(sources, mimeType)\n return this\n }\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n destroy() {\n this.core.destroy()\n return this\n }\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n consent() {\n this.core.getCurrentPlayback().consent()\n return this\n }\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n play() {\n this.core.mediaControl.container.play()\n return this\n }\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n pause() {\n this.core.mediaControl.container.pause()\n return this\n }\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n stop() {\n this.core.mediaControl.container.stop()\n return this\n }\n\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n seek(time) {\n this.core.mediaControl.container.seek(time)\n return this\n }\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n seekPercentage(percentage) {\n this.core.mediaControl.container.seekPercentage(percentage)\n return this\n }\n\n /**\n * Set the volume for the current video (`source`).\n * @method setVolume\n * @param {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n * @return {Player} itself\n */\n setVolume(volume) {\n if (this.core && this.core.mediaControl)\n this.core.mediaControl.setVolume(volume)\n\n return this\n }\n\n /**\n * Get the volume for the current video\n * @method getVolume\n * @return {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n */\n getVolume() {\n return this.core && this.core.mediaControl ? this.core.mediaControl.volume : 0\n }\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n mute() {\n this._mutedVolume = this.getVolume()\n this.setVolume(0)\n return this\n }\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100)\n this._mutedVolume = null\n return this\n }\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n isPlaying() {\n return this.core.mediaControl.container.isPlaying()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return this.core.mediaControl.container.isDvrEnabled()\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return this.core.mediaControl.container.isDvrInUse()\n }\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n configure(options) {\n this.core.configure(options)\n return this\n }\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n getPlugin(name) {\n const plugins = this.core.plugins.concat(this.core.mediaControl.container.plugins)\n return plugins.filter(plugin => plugin.name === name)[0]\n }\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n getCurrentTime() {\n return this.core.mediaControl.container.getCurrentTime()\n }\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() {\n return this.core.mediaControl.container.getStartTimeOffset()\n }\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n getDuration() {\n return this.core.mediaControl.container.getDuration()\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/player.js","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/keys.js\n// module id = 86\n// module chunks = 0","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.keys.js\n// module id = 87\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iobject.js\n// module id = 88\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-includes.js\n// module id = 89\n// module chunks = 0","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-index.js\n// module id = 90\n// module chunks = 0","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_a-function.js\n// module id = 91\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol/iterator.js\n// module id = 92\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/iterator.js\n// module id = 93\n// module chunks = 0","var toInteger = require('./_to-integer')\n , defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_string-at.js\n// module id = 94\n// module chunks = 0","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-create.js\n// module id = 95\n// module chunks = 0","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dps.js\n// module id = 96\n// module chunks = 0","module.exports = require('./_global').document && document.documentElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_html.js\n// module id = 97\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gpo.js\n// module id = 98\n// module chunks = 0","require('./es6.array.iterator');\nvar global = require('./_global')\n , hide = require('./_hide')\n , Iterators = require('./_iterators')\n , TO_STRING_TAG = require('./_wks')('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype;\n if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/web.dom.iterable.js\n// module id = 99\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n , step = require('./_iter-step')\n , Iterators = require('./_iterators')\n , toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.array.iterator.js\n// module id = 100\n// module chunks = 0","module.exports = function(){ /* empty */ };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_add-to-unscopables.js\n// module id = 101\n// module chunks = 0","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-step.js\n// module id = 102\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol.js\n// module id = 103\n// module chunks = 0","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/index.js\n// module id = 104\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global')\n , has = require('./_has')\n , DESCRIPTORS = require('./_descriptors')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , META = require('./_meta').KEY\n , $fails = require('./_fails')\n , shared = require('./_shared')\n , setToStringTag = require('./_set-to-string-tag')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , wksExt = require('./_wks-ext')\n , wksDefine = require('./_wks-define')\n , keyOf = require('./_keyof')\n , enumKeys = require('./_enum-keys')\n , isArray = require('./_is-array')\n , anObject = require('./_an-object')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , createDesc = require('./_property-desc')\n , _create = require('./_object-create')\n , gOPNExt = require('./_object-gopn-ext')\n , $GOPD = require('./_object-gopd')\n , $DP = require('./_object-dp')\n , $keys = require('./_object-keys')\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./_library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.symbol.js\n// module id = 105\n// module chunks = 0","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_meta.js\n// module id = 106\n// module chunks = 0","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_keyof.js\n// module id = 107\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie');\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_enum-keys.js\n// module id = 108\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-array.js\n// module id = 109\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject')\n , gOPN = require('./_object-gopn').f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn-ext.js\n// module id = 110\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.async-iterator.js\n// module id = 112\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.observable.js\n// module id = 113\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/define-property.js\n// module id = 114\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.define-property.js\n// module id = 115\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/set-prototype-of.js\n// module id = 116\n// module chunks = 0","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/set-prototype-of.js\n// module id = 117\n// module chunks = 0","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.set-prototype-of.js\n// module id = 118\n// module chunks = 0","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object')\n , anObject = require('./_an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-proto.js\n// module id = 119\n// module chunks = 0","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D){\n return $Object.create(P, D);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/create.js\n// module id = 120\n// module chunks = 0","var $export = require('./_export')\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: require('./_object-create')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.create.js\n// module id = 121\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js\n// module id = 122\n// module chunks = 0","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/get-own-property-descriptor.js\n// module id = 123\n// module chunks = 0","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject')\n , $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js\n// module id = 124\n// module chunks = 0","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null)\n throw new TypeError('\"this\" is null or not defined')\n\n\n let o = Object(this)\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n let len = o.length >>> 0\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function')\n throw new TypeError('predicate must be a function')\n\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n let thisArg = arguments[1]\n\n // 5. Let k be 0.\n let k = 0\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n let kValue = o[k]\n if (predicate.call(thisArg, kValue, k, o))\n return kValue\n\n // e. Increase k by 1.\n k++\n }\n\n // 7. Return undefined.\n return undefined\n }\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/polyfills.js","\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { Kibo } from '../../vendor'\n\nconst BOLD = 'font-weight: bold; font-size: 13px;'\nconst INFO = 'color: #006600;' + BOLD\nconst DEBUG = 'color: #0000ff;' + BOLD\nconst WARN = 'color: #ff8000;' + BOLD\nconst ERROR = 'color: #ff0000;' + BOLD\n\nconst LEVEL_DEBUG = 0\nconst LEVEL_INFO = 1\nconst LEVEL_WARN = 2\nconst LEVEL_ERROR = 3\nconst LEVEL_DISABLED = LEVEL_ERROR\n\nconst COLORS = [DEBUG, INFO, WARN, ERROR, ERROR]\nconst DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled']\n\nexport default class Log {\n constructor(level = LEVEL_INFO, offLevel = LEVEL_DISABLED) {\n this.kibo = new Kibo()\n this.kibo.down(['ctrl shift d'], () => this.onOff())\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress']\n this.level = level\n this.offLevel = offLevel\n }\n\n debug(klass) { this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1)) }\n info(klass) { this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1)) }\n warn(klass) { this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1)) }\n error(klass) { this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1)) }\n\n onOff() {\n if (this.level === this.offLevel) { this.level = this.previousLevel } else {\n this.previousLevel = this.level\n this.level = this.offLevel\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log)\n window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN)\n\n }\n\n level(newLevel) {\n this.level = newLevel\n }\n\n log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return\n if (level < this.level) return\n\n if (!message) {\n message = klass\n klass = null\n }\n const color = COLORS[level]\n let klassDescription = ''\n if (klass)\n klassDescription = '[' + klass + ']'\n\n if (window.console && window.console.log)\n window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message))\n\n }\n}\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG\nLog.LEVEL_INFO = LEVEL_INFO\nLog.LEVEL_WARN = LEVEL_WARN\nLog.LEVEL_ERROR = LEVEL_ERROR\n\nLog.getInstance = function() {\n if (this._instance === undefined) {\n this._instance = new this()\n this._instance.previousLevel = this._instance.level\n this._instance.level = this._instance.offLevel\n }\n return this._instance\n}\n\nLog.setLevel = function(level) { this.getInstance().level = level }\n\nLog.debug = function() { this.getInstance().debug.apply(this.getInstance(), arguments) }\nLog.info = function() { this.getInstance().info.apply(this.getInstance(), arguments) }\nLog.warn = function() { this.getInstance().warn.apply(this.getInstance(), arguments) }\nLog.error = function() { this.getInstance().error.apply(this.getInstance(), arguments) }\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/log/log.js","/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function() {\n for(var key in Kibo.KEY_NAMES_BY_CODE) {\n if(Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = (function() {\n if(document.addEventListener) {\n return function(element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n }\n else if(document.attachEvent) {\n return function(element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.unregisterEvent = (function() {\n if(document.removeEventListener) {\n return function(element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n }\n else if(document.detachEvent) {\n return function(element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.stringContains = function(string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function(string) {\n return string.toLowerCase().replace(/^./, function(match) { return match.toUpperCase(); });\n};\n\nKibo.isString = function(what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = (function() {\n if(Array.prototype.indexOf) {\n return function(haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n }\n else {\n return function(haystack, needle) {\n for(var i = 0; i < haystack.length; i++) {\n if(haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n})();\n\nKibo.extractModifiers = function(keyCombination) {\n var modifiers, i\n modifiers = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n}\n\nKibo.extractKey = function(keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for(i = 0; i < keys.length; i++) {\n if(!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function(keyCombination) {\n var result, key;\n\n if(Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if(key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n}\n\nKibo.keyName = function(keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function(keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function() {\n var i, that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function(upOrDown) {\n var that = this;\n return function(e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if(Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for(i = 0; i < registeredKeys.any.length; i++) {\n if((registeredKeys.any[i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if(registeredKeys[lastModifiersAndKey]) {\n for(i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if((registeredKeys[lastModifiersAndKey][i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function(upOrDown, newKeys, func) {\n var i, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function(upOrDown, newKeys, func) {\n var i, j, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(func === null) {\n delete registeredKeys[keys];\n } else {\n if(registeredKeys[keys]) {\n for(j = 0; j < registeredKeys[keys].length; j++) {\n if(String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function(keys) {\n return this.unregisterKeys('down', keys, null);\n}\n\nKibo.prototype.delegate = function(upOrDown, keys, func) {\n return (func !== null || func !== undefined) ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function(keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function(keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function(modifier) {\n if(!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function() {\n var result, i;\n\n result = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if(!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexport default Kibo\n\n\n\n// WEBPACK FOOTER //\n// ./src/vendor/kibo.js","import CoreFactory from './core_factory'\nexport default CoreFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseObject from '../../base/base_object'\nimport Core from '../core'\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class CoreFactory extends BaseObject {\n\n get loader() { return this.player.loader }\n\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n constructor(player) {\n super()\n this.player = player\n this._options = player.options\n }\n\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n create() {\n this.options.loader = this.loader\n this.core = new Core(this.options)\n this.addCorePlugins()\n this.core.createContainers(this.options)\n return this.core\n }\n\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n addCorePlugins() {\n this.loader.corePlugins.forEach((Plugin) => {\n const plugin = new Plugin(this.core)\n this.core.addPlugin(plugin)\n this.setupExternalInterface(plugin)\n })\n return this.core\n }\n\n setupExternalInterface(plugin) {\n const externalFunctions = plugin.getExternalInterface()\n for (const key in externalFunctions)\n this.player[key] = externalFunctions[key].bind(plugin)\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/core_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, Fullscreen, DomRecycler } from '../../base/utils'\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport Browser from '../../components/browser'\nimport ContainerFactory from '../../components/container_factory'\nimport MediaControl from '../../components/media_control'\nimport Mediator from '../../components/mediator'\nimport PlayerInfo from '../../components/player_info'\n\nimport Styler from '../../base/styler'\n\nimport $ from 'clappr-zepto'\n\nimport './public/style.scss'\nimport fontStyle from './public/fonts.css'\n\nlet style\n\n/**\n * The Core is responsible to manage Containers, the mediator, MediaControl\n * and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\nexport default class Core extends UIObject {\n get events() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'showMediaControl',\n 'mouseleave': 'hideMediaControl'\n }\n }\n\n get attributes() {\n return {\n 'data-player': '',\n tabindex: 9999\n }\n }\n\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n get isReady() {\n return !!this.ready\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this.getPlugin('strings') || { t: (key) => key }\n }\n\n constructor(options) {\n super(options)\n this.configureDomRecycler()\n this.playerInfo = PlayerInfo.getInstance(options.playerId)\n this.firstResize = true\n this.plugins = []\n this.containers = []\n this.setupMediaControl(null)\n //FIXME fullscreen api sucks\n this._boundFullscreenHandler = () => this.handleFullscreenChange()\n $(document).bind('fullscreenchange', this._boundFullscreenHandler)\n $(document).bind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).bind('mozfullscreenchange', this._boundFullscreenHandler)\n Browser.isMobile && $(window).bind('resize', (o) => { this.handleWindowResize(o) })\n }\n\n configureDomRecycler() {\n let recycleVideo = (this.options && this.options.playback && this.options.playback.recycleVideo) ? true : false\n DomRecycler.configure({\n recycleVideo: recycleVideo\n })\n }\n\n createContainers(options) {\n this.defer = $.Deferred()\n this.defer.promise(this)\n this.containerFactory = new ContainerFactory(options, options.loader, this.i18n)\n this.containerFactory\n .createContainers()\n .then((containers) => this.setupContainers(containers))\n .then((containers) => this.resolveOnContainersReady(containers))\n }\n\n updateSize() {\n if (Fullscreen.isFullscreen())\n this.setFullscreen()\n else\n this.setPlayerSize()\n\n }\n\n setFullscreen() {\n if(!Browser.isiOS) {\n this.$el.addClass('fullscreen')\n this.$el.removeAttr('style')\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.playerInfo.currentSize = { width: $(window).width(), height: $(window).height() }\n }\n }\n\n setPlayerSize() {\n this.$el.removeClass('fullscreen')\n this.playerInfo.currentSize = this.playerInfo.previousSize\n this.playerInfo.previousSize = { width: $(window).width(), height: $(window).height() }\n this.resize(this.playerInfo.currentSize)\n }\n\n resize(options) {\n if (!isNumber(options.height) && !isNumber(options.width)) {\n this.el.style.height = `${options.height}`\n this.el.style.width = `${options.width}`\n } else {\n this.el.style.height = `${options.height}px`\n this.el.style.width = `${options.width}px`\n }\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.options.width = options.width\n this.options.height = options.height\n this.playerInfo.currentSize = options\n this.triggerResize(this.playerInfo.currentSize)\n }\n\n enableResizeObserver() {\n const checkSizeCallback = () => {\n if (this.playerInfo.computedSize.width !== this.el.clientWidth ||\n this.playerInfo.computedSize.height !== this.el.clientHeight) {\n this.playerInfo.computedSize = { width: this.el.clientWidth, height: this.el.clientHeight }\n this.triggerResize(this.playerInfo.computedSize)\n }\n }\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500)\n }\n\n triggerResize(newSize) {\n const thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width\n if (thereWasChange) {\n Mediator.trigger(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, newSize)\n this.oldHeight = newSize.height\n this.oldWidth = newSize.width\n this.firstResize = false\n }\n }\n\n disableResizeObserver() {\n if (this.resizeObserverInterval) clearInterval(this.resizeObserverInterval)\n }\n\n resolveOnContainersReady(containers) {\n $.when.apply($, containers).done(() => {\n this.defer.resolve(this)\n this.ready = true\n this.trigger(Events.CORE_READY)\n })\n }\n\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n load(sources, mimeType) {\n this.options.mimeType = mimeType\n sources = sources && sources.constructor === Array ? sources : [sources]\n this.containers.forEach((container) => container.destroy())\n this.mediaControl.container = null\n this.containerFactory.options = $.extend(this.options, { sources })\n this.containerFactory.createContainers().then((containers) => {\n this.setupContainers(containers)\n })\n }\n\n destroy() {\n this.disableResizeObserver()\n this.containers.forEach((container) => container.destroy())\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n this.mediaControl.destroy()\n $(document).unbind('fullscreenchange', this._boundFullscreenHandler)\n $(document).unbind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).unbind('mozfullscreenchange', this._boundFullscreenHandler)\n }\n\n handleFullscreenChange() {\n this.trigger(Events.CORE_FULLSCREEN, Fullscreen.isFullscreen())\n this.updateSize()\n this.mediaControl.show()\n }\n\n handleWindowResize(event) {\n let orientation = ($(window).width() > $(window).height()) ? 'landscape' : 'portrait'\n if (this._screenOrientation === orientation) return\n this._screenOrientation = orientation\n\n this.trigger(Events.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n })\n }\n\n setMediaControlContainer(container) {\n this.mediaControl.setContainer(container)\n this.mediaControl.render()\n }\n\n disableMediaControl() {\n this.mediaControl.disable()\n this.$el.removeClass('nocursor')\n }\n\n enableMediaControl() {\n this.mediaControl.enable()\n }\n\n removeContainer(container) {\n this.stopListening(container)\n this.containers = this.containers.filter((c) => c !== container)\n }\n\n appendContainer(container) {\n this.listenTo(container, Events.CONTAINER_DESTROYED, this.removeContainer)\n this.containers.push(container)\n }\n\n setupContainers(containers) {\n containers.map(this.appendContainer.bind(this))\n this.trigger(Events.CORE_CONTAINERS_CREATED)\n this.renderContainers()\n this.setupMediaControl(this.getCurrentContainer())\n this.render()\n this.appendToParent()\n return this.containers\n }\n\n renderContainers() {\n this.containers.map((container) => this.el.appendChild(container.render().el))\n }\n\n createContainer(source, options) {\n const container = this.containerFactory.createContainer(source, options)\n this.appendContainer(container)\n this.el.appendChild(container.render().el)\n return container\n }\n\n setupMediaControl(container) {\n if (this.mediaControl) { this.mediaControl.setContainer(container) } else {\n this.mediaControl = this.createMediaControl($.extend({ container: container, focusElement: this.el }, this.options))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_FULLSCREEN, this.toggleFullscreen)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_SHOW, this.onMediaControlShow.bind(this, true))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_HIDE, this.onMediaControlShow.bind(this, false))\n }\n }\n\n createMediaControl(options) {\n if(options.mediacontrol && options.mediacontrol.external)\n return new options.mediacontrol.external(options).render()\n else\n return new MediaControl(options).render()\n\n }\n\n getCurrentContainer() {\n if (!this.mediaControl || !this.mediaControl.container)\n return this.containers[0]\n\n return this.mediaControl.container\n }\n\n getCurrentPlayback() {\n const container = this.getCurrentContainer()\n return container && container.playback\n }\n\n getPlaybackType() {\n const container = this.getCurrentContainer()\n return container && container.getPlaybackType()\n }\n\n toggleFullscreen() {\n if (!Fullscreen.isFullscreen()) {\n Fullscreen.requestFullscreen(this.el)\n if(!Browser.isiOS)\n this.$el.addClass('fullscreen')\n\n } else {\n Fullscreen.cancelFullscreen()\n if(!Browser.isiOS)\n this.$el.removeClass('fullscreen nocursor')\n\n }\n this.mediaControl.show()\n }\n\n showMediaControl(event) {\n this.mediaControl.show(event)\n }\n\n hideMediaControl() {\n this.mediaControl.hide(this.options.hideMediaControlDelay)\n }\n\n onMediaControlShow(showing) {\n this.getCurrentContainer().trigger(showing?Events.CONTAINER_MEDIACONTROL_SHOW:Events.CONTAINER_MEDIACONTROL_HIDE)\n\n if (showing)\n this.$el.removeClass('nocursor')\n else if (Fullscreen.isFullscreen())\n this.$el.addClass('nocursor')\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.configureDomRecycler()\n const sources = options.source || options.sources\n\n if (sources) { this.load(sources, options.mimeType || this.options.mimeType) } else {\n this.trigger(Events.CORE_OPTIONS_CHANGE)\n\n this.containers.forEach((container) => {\n container.configure(this.options)\n })\n }\n }\n\n appendToParent() {\n let hasCoreParent = this.$el.parent() && this.$el.parent().length\n !hasCoreParent && this.$el.appendTo(this.options.parentElement)\n }\n\n render() {\n this.$el.append(this.mediaControl.render().el)\n\n if (!style)\n style = Styler.getStyleFor(fontStyle, { baseUrl: this.options.baseUrl })\n\n $('head').append(style)\n\n this.options.width = this.options.width || this.$el.width()\n this.options.height = this.options.height || this.$el.height()\n const size = { width: this.options.width, height: this.options.height }\n this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size\n this.updateSize()\n\n this.previousSize = { width: this.$el.width(), height: this.$el.height() }\n\n this.enableResizeObserver()\n\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core/core.js","import ContainerFactory from './container_factory'\nexport default ContainerFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The ContainerFactory is responsible for manage playback bootstrap and create containers.\n */\n\nimport BaseObject from '../../base/base_object'\nimport Events from '../../base/events'\nimport Container from '../../components/container'\nimport $ from 'clappr-zepto'\n\nexport default class ContainerFactory extends BaseObject {\n get options() { return this._options }\n set options(options) { this._options = options }\n\n constructor(options, loader, i18n) {\n super(options)\n this._i18n = i18n\n this.loader = loader\n }\n\n createContainers() {\n return $.Deferred((promise) => {\n promise.resolve(this.options.sources.map((source) => {\n return this.createContainer(source)\n }))\n })\n }\n\n findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(p => p.canPlay(source, mimeType))[0]\n }\n\n createContainer(source) {\n let resolvedSource = null,\n mimeType = this.options.mimeType\n if (typeof source === 'object') {\n resolvedSource = source.source.toString()\n if (source.mimeType)\n mimeType = source.mimeType\n\n } else { resolvedSource = source.toString() }\n\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource\n\n let options = $.extend({}, this.options, {\n src: resolvedSource,\n mimeType: mimeType\n })\n const playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType)\n const playback = new playbackPlugin(options, this._i18n)\n\n options = $.extend({}, options, { playback: playback })\n\n const container = new Container(options, this._i18n)\n const defer = $.Deferred()\n defer.promise(container)\n this.addContainerPlugins(container)\n this.listenToOnce(container, Events.CONTAINER_READY, () => defer.resolve(container))\n return container\n }\n\n addContainerPlugins(container) {\n this.loader.containerPlugins.forEach((Plugin) => {\n container.addPlugin(new Plugin(container))\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/container_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Container is responsible for the video rendering and state\n */\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\n\nimport './public/style.scss'\n\nimport $ from 'clappr-zepto'\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class Container extends UIObject {\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get name() { return 'Container' }\n get attributes() { return { class: 'container', 'data-container': '' } }\n get events() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'doubleTap': 'dblClicked',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.playback.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.playback.buffering\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this._i18n\n }\n\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n get hasClosedCaptionsTracks() {\n return this.playback.hasClosedCaptionsTracks\n }\n\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n get closedCaptionsTracks() {\n return this.playback.closedCaptionsTracks\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n get closedCaptionsTrackId() {\n return this.playback.closedCaptionsTrackId\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n set closedCaptionsTrackId(trackId) {\n this.playback.closedCaptionsTrackId = trackId\n }\n\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n constructor(options, i18n) {\n super(options)\n this._i18n = i18n\n this.currentTime = 0\n this.volume = 100\n this.playback = options.playback\n this.settings = $.extend({}, this.playback.settings)\n this.isReady = false\n this.mediaControlDisabled = false\n this.plugins = [this.playback]\n this.bindEvents()\n }\n\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n bindEvents() {\n this.listenTo(this.playback, Events.PLAYBACK_PROGRESS, this.progress)\n this.listenTo(this.playback, Events.PLAYBACK_TIMEUPDATE, this.timeUpdated)\n this.listenTo(this.playback, Events.PLAYBACK_READY, this.ready)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERING, this.onBuffering)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERFULL, this.bufferfull)\n this.listenTo(this.playback, Events.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_LOADEDMETADATA, this.loadedMetadata)\n this.listenTo(this.playback, Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_BITRATE, this.updateBitrate)\n this.listenTo(this.playback, Events.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_DVR, this.playbackDvrStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_SEEKED, this.onSeeked)\n this.listenTo(this.playback, Events.PLAYBACK_ENDED, this.onEnded)\n this.listenTo(this.playback, Events.PLAYBACK_PLAY, this.playing)\n this.listenTo(this.playback, Events.PLAYBACK_PAUSE, this.paused)\n this.listenTo(this.playback, Events.PLAYBACK_STOP, this.stopped)\n this.listenTo(this.playback, Events.PLAYBACK_ERROR, this.error)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged)\n }\n\n subtitleAvailable() {\n this.trigger(Events.CONTAINER_SUBTITLE_AVAILABLE)\n }\n\n subtitleChanged(track) {\n this.trigger(Events.CONTAINER_SUBTITLE_CHANGED, track)\n }\n\n playbackStateChanged(state) {\n this.trigger(Events.CONTAINER_PLAYBACKSTATE, state)\n }\n\n playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings\n this.dvrInUse = dvrInUse\n this.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse)\n }\n\n updateBitrate(newBitrate) {\n this.trigger(Events.CONTAINER_BITRATE, newBitrate)\n }\n\n statsReport(metrics) {\n this.trigger(Events.CONTAINER_STATS_REPORT, metrics)\n }\n\n getPlaybackType() {\n return this.playback.getPlaybackType()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return !!this.playback.dvrEnabled\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return !!this.dvrInUse\n }\n\n /**\n * destroys the container\n * @method destroy\n */\n destroy() {\n this.trigger(Events.CONTAINER_DESTROYED, this, this.name)\n this.stopListening()\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n }\n\n setStyle(style) {\n this.$el.css(style)\n }\n\n animate(style, duration) {\n return this.$el.animate(style, duration).promise()\n }\n\n ready() {\n this.isReady = true\n this.trigger(Events.CONTAINER_READY, this.name)\n }\n\n isPlaying() {\n return this.playback.isPlaying()\n }\n\n getStartTimeOffset() {\n return this.playback.getStartTimeOffset()\n }\n\n getCurrentTime() {\n return this.currentTime\n }\n\n getDuration() {\n return this.playback.getDuration()\n }\n\n error(errorObj) {\n if (!this.isReady)\n this.ready()\n\n this.trigger(Events.CONTAINER_ERROR, { error: errorObj, container: this }, this.name)\n }\n\n loadedMetadata(metadata) {\n this.trigger(Events.CONTAINER_LOADEDMETADATA, metadata)\n }\n\n timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current\n this.trigger(Events.CONTAINER_TIMEUPDATE, timeProgress, this.name)\n }\n\n progress(...args) {\n this.trigger(Events.CONTAINER_PROGRESS, ...args, this.name)\n }\n\n playing() {\n this.trigger(Events.CONTAINER_PLAY, this.name)\n }\n\n paused() {\n this.trigger(Events.CONTAINER_PAUSE, this.name)\n }\n\n /**\n * plays the playback\n * @method play\n */\n play() {\n this.playback.play()\n }\n\n /**\n * stops the playback\n * @method stop\n */\n stop() {\n this.playback.stop()\n this.currentTime = 0\n }\n\n /**\n * pauses the playback\n * @method pause\n */\n pause() {\n this.playback.pause()\n }\n\n onEnded() {\n this.trigger(Events.CONTAINER_ENDED, this, this.name)\n this.currentTime = 0\n }\n\n stopped() {\n this.trigger(Events.CONTAINER_STOP)\n }\n\n clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CLICK, this, this.name)\n\n }\n\n dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_DBLCLICK, this, this.name)\n\n }\n\n onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CONTEXTMENU, event, this.name)\n\n }\n\n seek(time) {\n this.trigger(Events.CONTAINER_SEEK, time, this.name)\n this.playback.seek(time)\n }\n\n onSeeked() {\n this.trigger(Events.CONTAINER_SEEKED, this.name)\n }\n\n seekPercentage(percentage) {\n const duration = this.getDuration()\n if (percentage >= 0 && percentage <= 100) {\n const time = duration * (percentage / 100)\n this.seek(time)\n }\n }\n\n setVolume(value) {\n this.volume = parseInt(value, 10)\n this.trigger(Events.CONTAINER_VOLUME, value, this.name)\n this.playback.volume(value)\n }\n\n fullscreen() {\n this.trigger(Events.CONTAINER_FULLSCREEN, this.name)\n }\n\n onBuffering() {\n this.trigger(Events.CONTAINER_STATE_BUFFERING, this.name)\n }\n\n bufferfull() {\n this.trigger(Events.CONTAINER_STATE_BUFFERFULL, this.name)\n }\n\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_ENTER)\n\n }\n\n mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_LEAVE)\n\n }\n\n settingsUpdate() {\n this.settings = this.playback.settings\n this.trigger(Events.CONTAINER_SETTINGSUPDATE)\n }\n\n highDefinitionUpdate(isHD) {\n this.trigger(Events.CONTAINER_HIGHDEFINITIONUPDATE, isHD)\n }\n\n isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse()\n }\n\n disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true\n this.trigger(Events.CONTAINER_MEDIACONTROL_DISABLE)\n }\n }\n\n enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false\n this.trigger(Events.CONTAINER_MEDIACONTROL_ENABLE)\n }\n }\n\n updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.$el.removeClass('chromeless')\n else\n this.$el.addClass('chromeless')\n\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.updateStyle()\n this.trigger(Events.CONTAINER_OPTIONS_CHANGE)\n }\n\n render() {\n this.$el.append(this.playback.render().el)\n this.updateStyle()\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container/container.js","// style-loader: Adds some css to the DOM by adding a ').html((0,s.default)(t.toString())(e))}};e.default=l,t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(153),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=o.default,t.exports=e.default},function(t,e,n){t.exports={default:n(155),__esModule:!0}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(167),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=o.default,t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(168),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=o.default,t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(171),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=o.default,t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(187),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=o.default,t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(85),r=i(o),a=n(5),s=i(a),l=n(4),u=i(l),c=n(12),d=i(c),f=n(36),p=i(f),h=n(30),y=i(h),g=n(37),m=i(g),v=n(35),b=i(v),_=n(16),E=i(_),T=n(20),C=i(T),k=n(24),A=i(k),O=n(73),w=i(O),x=n(72),I=i(x),N=n(78),S=i(N),P=n(56),R=i(P),L=n(74),D=i(L),M=n(34),B=i(M),F=n(21),$=i(F),U=n(21),j=i(U),V=n(21),Y=i(V),K=n(21),H=i(K),z=n(80),G=i(z),q=n(58),W=i(q),Z=n(81),X=i(Z),J=n(82),Q=i(J),tt=n(83),et=i(tt),nt=n(71),it=i(nt),ot=n(77),rt=i(ot),at=n(54),st=i(at),lt=n(10),ut=i(lt),ct=n(6),dt=i(ct);e.default={Player:r.default,Mediator:R.default,Events:u.default,Browser:A.default,PlayerInfo:B.default,MediaControl:D.default,ContainerPlugin:p.default,UIContainerPlugin:b.default,CorePlugin:y.default,UICorePlugin:m.default,Playback:d.default,Container:w.default,Core:I.default,Loader:S.default,BaseObject:E.default,UIObject:C.default,Utils:s.default,BaseFlashPlayback:$.default,Flash:j.default,FlasHLS:Y.default,HLS:H.default,HTML5Audio:G.default,HTML5Video:W.default,HTMLImg:X.default,NoOp:Q.default,Poster:et.default,Log:it.default,Styler:rt.default,Vendor:st.default,version:"0.2.82",template:ut.default,$:dt.default},t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(31),r=i(o),a=n(0),s=i(a),l=n(1),u=i(l),c=n(3),d=i(c),f=n(2),p=i(f),h=n(5),y=n(16),g=i(y),m=n(4),v=i(m),b=n(24),_=i(b),E=n(128),T=i(E),C=n(78),k=i(C),A=n(34),O=i(A),w=n(6),x=i(w),I=(0,h.currentScriptUrl)().replace(/\/[^\/]+$/,""),N=function(t){function e(n){(0,s.default)(this,e);var i=(0,u.default)(this,t.call(this,n)),o={playerId:(0,h.uniqueId)(""),persistConfig:!0,width:640,height:360,baseUrl:I,allowUserInteraction:_.default.isMobile};return i._options=x.default.extend(o,n),i.options.sources=i._normalizeSources(n),i.options.chromeless||(i.options.allowUserInteraction=!0),i.options.allowUserInteraction||(i.options.disableKeyboardShortcuts=!0),i._registerOptionEventListeners(),i._coreFactory=new T.default(i),i.playerInfo=O.default.getInstance(i.options.playerId),i.playerInfo.currentSize={width:n.width,height:n.height},i.playerInfo.options=i.options,i.options.parentId?i.setParentId(i.options.parentId):i.options.parent&&i.attachTo(i.options.parent),i}return(0,p.default)(e,t),(0,d.default)(e,[{key:"loader",set:function(t){this._loader=t},get:function(){return this._loader||(this._loader=new k.default(this.options.plugins||{},this.options.playerId)),this._loader}},{key:"ended",get:function(){return this.core.mediaControl.container.ended}},{key:"buffering",get:function(){return this.core.mediaControl.container.buffering}},{key:"isReady",get:function(){return!!this._ready}},{key:"eventsMapping",get:function(){return{onReady:v.default.PLAYER_READY,onResize:v.default.PLAYER_RESIZE,onPlay:v.default.PLAYER_PLAY,onPause:v.default.PLAYER_PAUSE,onStop:v.default.PLAYER_STOP,onEnded:v.default.PLAYER_ENDED,onSeek:v.default.PLAYER_SEEK,onError:v.default.PLAYER_ERROR,onTimeUpdate:v.default.PLAYER_TIMEUPDATE,onVolumeUpdate:v.default.PLAYER_VOLUMEUPDATE,onSubtitleAvailable:v.default.PLAYER_SUBTITLE_AVAILABLE}}}]),e.prototype.setParentId=function(t){var e=document.querySelector(t);return e&&this.attachTo(e),this},e.prototype.attachTo=function(t){return this.options.parentElement=t,this.core=this._coreFactory.create(),this._addEventListeners(),this},e.prototype._addEventListeners=function(){return this.core.isReady?this._onReady():this.listenToOnce(this.core,v.default.CORE_READY,this._onReady),this.listenTo(this.core.mediaControl,v.default.MEDIACONTROL_CONTAINERCHANGED,this._containerChanged),this.listenTo(this.core,v.default.CORE_FULLSCREEN,this._onFullscreenChange),this},e.prototype._addContainerEventListeners=function(){var t=this.core.mediaControl.container;return t&&(this.listenTo(t,v.default.CONTAINER_PLAY,this._onPlay),this.listenTo(t,v.default.CONTAINER_PAUSE,this._onPause),this.listenTo(t,v.default.CONTAINER_STOP,this._onStop),this.listenTo(t,v.default.CONTAINER_ENDED,this._onEnded),this.listenTo(t,v.default.CONTAINER_SEEK,this._onSeek),this.listenTo(t,v.default.CONTAINER_ERROR,this._onError),this.listenTo(t,v.default.CONTAINER_TIMEUPDATE,this._onTimeUpdate),this.listenTo(t,v.default.CONTAINER_VOLUME,this._onVolumeUpdate),this.listenTo(t,v.default.CONTAINER_SUBTITLE_AVAILABLE,this._onSubtitleAvailable)),this},e.prototype._registerOptionEventListeners=function(){var t=this,e=this.options.events||{};return(0,r.default)(e).forEach(function(n){var i=t.eventsMapping[n];if(i){var o=e[n];o="function"==typeof o&&o,o&&t.on(i,o)}}),this},e.prototype._containerChanged=function(){this.stopListening(),this._addEventListeners()},e.prototype._onReady=function(){this._ready=!0,this._addContainerEventListeners(),this.trigger(v.default.PLAYER_READY)},e.prototype._onFullscreenChange=function(t){this.trigger(v.default.PLAYER_FULLSCREEN,t)},e.prototype._onVolumeUpdate=function(t){this.trigger(v.default.PLAYER_VOLUMEUPDATE,t)},e.prototype._onSubtitleAvailable=function(){this.trigger(v.default.PLAYER_SUBTITLE_AVAILABLE)},e.prototype._onPlay=function(){this.trigger(v.default.PLAYER_PLAY)},e.prototype._onPause=function(){this.trigger(v.default.PLAYER_PAUSE)},e.prototype._onStop=function(){this.trigger(v.default.PLAYER_STOP,this.getCurrentTime())},e.prototype._onEnded=function(){this.trigger(v.default.PLAYER_ENDED)},e.prototype._onSeek=function(t){this.trigger(v.default.PLAYER_SEEK,t)},e.prototype._onTimeUpdate=function(t){this.trigger(v.default.PLAYER_TIMEUPDATE,t)},e.prototype._onError=function(t){this.trigger(v.default.PLAYER_ERROR,t)},e.prototype._normalizeSources=function(t){var e=t.sources||(void 0!==t.source?[t.source]:[]);return 0===e.length?[{source:"",mimeType:""}]:e},e.prototype.resize=function(t){return this.core.resize(t),this},e.prototype.load=function(t,e,n){return void 0!==n&&this.configure({autoPlay:!!n}),this.core.load(t,e),this},e.prototype.destroy=function(){return this.core.destroy(),this},e.prototype.consent=function(){return this.core.getCurrentPlayback().consent(),this},e.prototype.play=function(){return this.core.mediaControl.container.play(),this},e.prototype.pause=function(){return this.core.mediaControl.container.pause(),this},e.prototype.stop=function(){return this.core.mediaControl.container.stop(),this},e.prototype.seek=function(t){return this.core.mediaControl.container.seek(t),this},e.prototype.seekPercentage=function(t){return this.core.mediaControl.container.seekPercentage(t),this},e.prototype.setVolume=function(t){return this.core&&this.core.mediaControl&&this.core.mediaControl.setVolume(t),this},e.prototype.getVolume=function(){return this.core&&this.core.mediaControl?this.core.mediaControl.volume:0},e.prototype.mute=function(){return this._mutedVolume=this.getVolume(),this.setVolume(0),this},e.prototype.unmute=function(){return this.setVolume("number"==typeof this._mutedVolume?this._mutedVolume:100),this._mutedVolume=null,this},e.prototype.isPlaying=function(){return this.core.mediaControl.container.isPlaying()},e.prototype.isDvrEnabled=function(){return this.core.mediaControl.container.isDvrEnabled()},e.prototype.isDvrInUse=function(){return this.core.mediaControl.container.isDvrInUse()},e.prototype.configure=function(t){return this.core.configure(t),this},e.prototype.getPlugin=function(t){return this.core.plugins.concat(this.core.mediaControl.container.plugins).filter(function(e){return e.name===t})[0]},e.prototype.getCurrentTime=function(){return this.core.mediaControl.container.getCurrentTime()},e.prototype.getStartTimeOffset=function(){return this.core.mediaControl.container.getStartTimeOffset()},e.prototype.getDuration=function(){return this.core.mediaControl.container.getDuration()},e}(g.default);e.default=N,t.exports=e.default},function(t,e,n){n(87),t.exports=n(8).Object.keys},function(t,e,n){var i=n(38),o=n(25);n(61)("keys",function(){return function(t){return o(i(t))}})},function(t,e,n){var i=n(40);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==i(t)?t.split(""):Object(t)}},function(t,e,n){var i=n(13),o=n(60),r=n(90);t.exports=function(t){return function(e,n,a){var s,l=i(e),u=o(l.length),c=r(a,u);if(t&&n!=n){for(;u>c;)if((s=l[c++])!=s)return!0}else for(;u>c;c++)if((t||c in l)&&l[c]===n)return t||c||0;return!t&&-1}}},function(t,e,n){var i=n(41),o=Math.max,r=Math.min;t.exports=function(t,e){return t=i(t),t<0?o(t+e,0):r(t,e)}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,n){t.exports={default:n(93),__esModule:!0}},function(t,e,n){n(64),n(99),t.exports=n(50).f("iterator")},function(t,e,n){var i=n(41),o=n(39);t.exports=function(t){return function(e,n){var r,a,s=String(o(e)),l=i(n),u=s.length;return l<0||l>=u?t?"":void 0:(r=s.charCodeAt(l),r<55296||r>56319||l+1===u||(a=s.charCodeAt(l+1))<56320||a>57343?t?s.charAt(l):r:t?s.slice(l,l+2):a-56320+(r-55296<<10)+65536)}}},function(t,e,n){"use strict";var i=n(48),o=n(28),r=n(49),a={};n(22)(a,n(11)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=i(a,{next:o(1,n)}),r(t,e+" Iterator")}},function(t,e,n){var i=n(15),o=n(23),r=n(25);t.exports=n(19)?Object.defineProperties:function(t,e){o(t);for(var n,a=r(e),s=a.length,l=0;s>l;)i.f(t,n=a[l++],e[n]);return t}},function(t,e,n){t.exports=n(14).document&&document.documentElement},function(t,e,n){var i=n(17),o=n(38),r=n(42)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),i(t,r)?t[r]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,e,n){n(100);for(var i=n(14),o=n(22),r=n(29),a=n(11)("toStringTag"),s=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],l=0;l<5;l++){var u=s[l],c=i[u],d=c&&c.prototype;d&&!d[a]&&o(d,a,u),r[u]=r.Array}},function(t,e,n){"use strict";var i=n(101),o=n(102),r=n(29),a=n(13);t.exports=n(65)(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):"keys"==e?o(0,n):"values"==e?o(0,t[n]):o(0,[n,t[n]])},"values"),r.Arguments=r.Array,i("keys"),i("values"),i("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){t.exports={default:n(104),__esModule:!0}},function(t,e,n){n(105),n(111),n(112),n(113),t.exports=n(8).Symbol},function(t,e,n){"use strict";var i=n(14),o=n(17),r=n(19),a=n(18),s=n(66),l=n(106).KEY,u=n(27),c=n(43),d=n(49),f=n(32),p=n(11),h=n(50),y=n(51),g=n(107),m=n(108),v=n(109),b=n(23),_=n(13),E=n(46),T=n(28),C=n(48),k=n(110),A=n(53),O=n(15),w=n(25),x=A.f,I=O.f,N=k.f,S=i.Symbol,P=i.JSON,R=P&&P.stringify,L=p("_hidden"),D=p("toPrimitive"),M={}.propertyIsEnumerable,B=c("symbol-registry"),F=c("symbols"),$=c("op-symbols"),U=Object.prototype,j="function"==typeof S,V=i.QObject,Y=!V||!V.prototype||!V.prototype.findChild,K=r&&u(function(){return 7!=C(I({},"a",{get:function(){return I(this,"a",{value:7}).a}})).a})?function(t,e,n){var i=x(U,e);i&&delete U[e],I(t,e,n),i&&t!==U&&I(U,e,i)}:I,H=function(t){var e=F[t]=C(S.prototype);return e._k=t,e},z=j&&"symbol"==typeof S.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof S},G=function(t,e,n){return t===U&&G($,e,n),b(t),e=E(e,!0),b(n),o(F,e)?(n.enumerable?(o(t,L)&&t[L][e]&&(t[L][e]=!1),n=C(n,{enumerable:T(0,!1)})):(o(t,L)||I(t,L,T(1,{})),t[L][e]=!0),K(t,e,n)):I(t,e,n)},q=function(t,e){b(t);for(var n,i=m(e=_(e)),o=0,r=i.length;r>o;)G(t,n=i[o++],e[n]);return t},W=function(t,e){return void 0===e?C(t):q(C(t),e)},Z=function(t){var e=M.call(this,t=E(t,!0));return!(this===U&&o(F,t)&&!o($,t))&&(!(e||!o(this,t)||!o(F,t)||o(this,L)&&this[L][t])||e)},X=function(t,e){if(t=_(t),e=E(e,!0),t!==U||!o(F,e)||o($,e)){var n=x(t,e);return!n||!o(F,e)||o(t,L)&&t[L][e]||(n.enumerable=!0),n}},J=function(t){for(var e,n=N(_(t)),i=[],r=0;n.length>r;)o(F,e=n[r++])||e==L||e==l||i.push(e);return i},Q=function(t){for(var e,n=t===U,i=N(n?$:_(t)),r=[],a=0;i.length>a;)!o(F,e=i[a++])||n&&!o(U,e)||r.push(F[e]);return r};j||(S=function(){if(this instanceof S)throw TypeError("Symbol is not a constructor!");var t=f(arguments.length>0?arguments[0]:void 0),e=function(n){this===U&&e.call($,n),o(this,L)&&o(this[L],t)&&(this[L][t]=!1),K(this,t,T(1,n))};return r&&Y&&K(U,t,{configurable:!0,set:e}),H(t)},s(S.prototype,"toString",function(){return this._k}),A.f=X,O.f=G,n(68).f=k.f=J,n(52).f=Z,n(67).f=Q,r&&!n(47)&&s(U,"propertyIsEnumerable",Z,!0),h.f=function(t){return H(p(t))}),a(a.G+a.W+a.F*!j,{Symbol:S});for(var tt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),et=0;tt.length>et;)p(tt[et++]);for(var tt=w(p.store),et=0;tt.length>et;)y(tt[et++]);a(a.S+a.F*!j,"Symbol",{for:function(t){return o(B,t+="")?B[t]:B[t]=S(t)},keyFor:function(t){if(z(t))return g(B,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){Y=!0},useSimple:function(){Y=!1}}),a(a.S+a.F*!j,"Object",{create:W,defineProperty:G,defineProperties:q,getOwnPropertyDescriptor:X,getOwnPropertyNames:J,getOwnPropertySymbols:Q}),P&&a(a.S+a.F*(!j||u(function(){var t=S();return"[null]"!=R([t])||"{}"!=R({a:t})||"{}"!=R(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!z(t)){for(var e,n,i=[t],o=1;arguments.length>o;)i.push(arguments[o++]);return e=i[1],"function"==typeof e&&(n=e),!n&&v(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!z(e))return e}),i[1]=e,R.apply(P,i)}}}),S.prototype[D]||n(22)(S.prototype,D,S.prototype.valueOf),d(S,"Symbol"),d(Math,"Math",!0),d(i.JSON,"JSON",!0)},function(t,e,n){var i=n(32)("meta"),o=n(26),r=n(17),a=n(15).f,s=0,l=Object.isExtensible||function(){return!0},u=!n(27)(function(){return l(Object.preventExtensions({}))}),c=function(t){a(t,i,{value:{i:"O"+ ++s,w:{}}})},d=function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!r(t,i)){if(!l(t))return"F";if(!e)return"E";c(t)}return t[i].i},f=function(t,e){if(!r(t,i)){if(!l(t))return!0;if(!e)return!1;c(t)}return t[i].w},p=function(t){return u&&h.NEED&&l(t)&&!r(t,i)&&c(t),t},h=t.exports={KEY:i,NEED:!1,fastKey:d,getWeak:f,onFreeze:p}},function(t,e,n){var i=n(25),o=n(13);t.exports=function(t,e){for(var n,r=o(t),a=i(r),s=a.length,l=0;s>l;)if(r[n=a[l++]]===e)return n}},function(t,e,n){var i=n(25),o=n(67),r=n(52);t.exports=function(t){var e=i(t),n=o.f;if(n)for(var a,s=n(t),l=r.f,u=0;s.length>u;)l.call(t,a=s[u++])&&e.push(a);return e}},function(t,e,n){var i=n(40);t.exports=Array.isArray||function(t){return"Array"==i(t)}},function(t,e,n){var i=n(13),o=n(68).f,r={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return o(t)}catch(t){return a.slice()}};t.exports.f=function(t){return a&&"[object Window]"==r.call(t)?s(t):o(i(t))}},function(t,e){},function(t,e,n){n(51)("asyncIterator")},function(t,e,n){n(51)("observable")},function(t,e,n){n(115);var i=n(8).Object;t.exports=function(t,e,n){return i.defineProperty(t,e,n)}},function(t,e,n){var i=n(18);i(i.S+i.F*!n(19),"Object",{defineProperty:n(15).f})},function(t,e,n){t.exports={default:n(117),__esModule:!0}},function(t,e,n){n(118),t.exports=n(8).Object.setPrototypeOf},function(t,e,n){var i=n(18);i(i.S,"Object",{setPrototypeOf:n(119).set})},function(t,e,n){var i=n(26),o=n(23),r=function(t,e){if(o(t),!i(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,i){try{i=n(45)(Function.call,n(53).f(Object.prototype,"__proto__").set,2),i(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,n){return r(t,n),e?t.__proto__=n:i(t,n),t}}({},!1):void 0),check:r}},function(t,e,n){n(121);var i=n(8).Object;t.exports=function(t,e){return i.create(t,e)}},function(t,e,n){var i=n(18);i(i.S,"Object",{create:n(48)})},function(t,e,n){t.exports={default:n(123),__esModule:!0}},function(t,e,n){n(124);var i=n(8).Object;t.exports=function(t,e){return i.getOwnPropertyDescriptor(t,e)}},function(t,e,n){var i=n(13),o=n(53).f;n(61)("getOwnPropertyDescriptor",function(){return function(t,e){return o(i(t),e)}})},function(t,e,n){"use strict";Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(t){if(null==this)throw new TypeError('"this" is null or not defined');var e=Object(this),n=e.length>>>0;if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var i=arguments[1],o=0;o0&&void 0!==arguments[0]?arguments[0]:u,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c;(0,o.default)(this,t),this.kibo=new r.Kibo,this.kibo.down(["ctrl shift d"],function(){return e.onOff()}),this.BLACKLIST=["timeupdate","playback:timeupdate","playback:progress","container:hover","container:timeupdate","container:progress"],this.level=n,this.offLevel=i}return t.prototype.debug=function(t){this.log(t,0,Array.prototype.slice.call(arguments,1))},t.prototype.info=function(t){this.log(t,u,Array.prototype.slice.call(arguments,1))},t.prototype.warn=function(t){this.log(t,2,Array.prototype.slice.call(arguments,1))},t.prototype.error=function(t){this.log(t,3,Array.prototype.slice.call(arguments,1))},t.prototype.onOff=function(){this.level===this.offLevel?this.level=this.previousLevel:(this.previousLevel=this.level,this.level=this.offLevel),window.console&&window.console.log&&window.console.log("%c[Clappr.Log] set log level to "+f[this.level],s)},t.prototype.level=function(t){this.level=t},t.prototype.log=function(t,e,n){if(!(this.BLACKLIST.indexOf(n[0])>=0||e(0,N.default)(window).height()?"landscape":"portrait";this._screenOrientation!==e&&(this._screenOrientation=e,this.trigger(h.default.CORE_SCREEN_ORIENTATION_CHANGED,{event:t,orientation:this._screenOrientation}))},e.prototype.setMediaControlContainer=function(t){this.mediaControl.setContainer(t),this.mediaControl.render()},e.prototype.disableMediaControl=function(){this.mediaControl.disable(),this.$el.removeClass("nocursor")},e.prototype.enableMediaControl=function(){this.mediaControl.enable()},e.prototype.removeContainer=function(t){this.stopListening(t),this.containers=this.containers.filter(function(e){return e!==t})},e.prototype.appendContainer=function(t){this.listenTo(t,h.default.CONTAINER_DESTROYED,this.removeContainer),this.containers.push(t)},e.prototype.setupContainers=function(t){return t.map(this.appendContainer.bind(this)),this.trigger(h.default.CORE_CONTAINERS_CREATED),this.renderContainers(),this.setupMediaControl(this.getCurrentContainer()),this.render(),this.appendToParent(),this.containers},e.prototype.renderContainers=function(){var t=this;this.containers.map(function(e){return t.el.appendChild(e.render().el)})},e.prototype.createContainer=function(t,e){var n=this.containerFactory.createContainer(t,e);return this.appendContainer(n),this.el.appendChild(n.render().el),n},e.prototype.setupMediaControl=function(t){this.mediaControl?this.mediaControl.setContainer(t):(this.mediaControl=this.createMediaControl(N.default.extend({container:t,focusElement:this.el},this.options)),this.listenTo(this.mediaControl,h.default.MEDIACONTROL_FULLSCREEN,this.toggleFullscreen),this.listenTo(this.mediaControl,h.default.MEDIACONTROL_SHOW,this.onMediaControlShow.bind(this,!0)),this.listenTo(this.mediaControl,h.default.MEDIACONTROL_HIDE,this.onMediaControlShow.bind(this,!1)))},e.prototype.createMediaControl=function(t){return t.mediacontrol&&t.mediacontrol.external?new t.mediacontrol.external(t).render():new T.default(t).render()},e.prototype.getCurrentContainer=function(){return this.mediaControl&&this.mediaControl.container?this.mediaControl.container:this.containers[0]},e.prototype.getCurrentPlayback=function(){var t=this.getCurrentContainer();return t&&t.playback},e.prototype.getPlaybackType=function(){var t=this.getCurrentContainer();return t&&t.getPlaybackType()},e.prototype.toggleFullscreen=function(){f.Fullscreen.isFullscreen()?(f.Fullscreen.cancelFullscreen(),v.default.isiOS||this.$el.removeClass("fullscreen nocursor")):(f.Fullscreen.requestFullscreen(this.el),v.default.isiOS||this.$el.addClass("fullscreen")),this.mediaControl.show()},e.prototype.showMediaControl=function(t){this.mediaControl.show(t)},e.prototype.hideMediaControl=function(){this.mediaControl.hide(this.options.hideMediaControlDelay)},e.prototype.onMediaControlShow=function(t){this.getCurrentContainer().trigger(t?h.default.CONTAINER_MEDIACONTROL_SHOW:h.default.CONTAINER_MEDIACONTROL_HIDE),t?this.$el.removeClass("nocursor"):f.Fullscreen.isFullscreen()&&this.$el.addClass("nocursor")},e.prototype.configure=function(t){var e=this;this._options=N.default.extend(this._options,t),this.configureDomRecycler();var n=t.source||t.sources;n?this.load(n,t.mimeType||this.options.mimeType):(this.trigger(h.default.CORE_OPTIONS_CHANGE),this.containers.forEach(function(t){t.configure(e.options)}))},e.prototype.appendToParent=function(){!(this.$el.parent()&&this.$el.parent().length)&&this.$el.appendTo(this.options.parentElement)},e.prototype.render=function(){this.$el.append(this.mediaControl.render().el),R||(R=x.default.getStyleFor(P.default,{baseUrl:this.options.baseUrl})),(0,N.default)("head").append(R),this.options.width=this.options.width||this.$el.width(),this.options.height=this.options.height||this.$el.height();var t={width:this.options.width,height:this.options.height};return this.playerInfo.previousSize=this.playerInfo.currentSize=this.playerInfo.computedSize=t,this.updateSize(),this.previousSize={width:this.$el.width(),height:this.$el.height()},this.enableResizeObserver(),this},e}(g.default);e.default=L,t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(132),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=o.default,t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(33),r=i(o),a=n(0),s=i(a),l=n(1),u=i(l),c=n(3),d=i(c),f=n(2),p=i(f),h=n(16),y=i(h),g=n(4),m=i(g),v=n(73),b=i(v),_=n(6),E=i(_),T=function(t){function e(n,i,o){(0,s.default)(this,e);var r=(0,u.default)(this,t.call(this,n));return r._i18n=o,r.loader=i,r}return(0,p.default)(e,t),(0,d.default)(e,[{key:"options",get:function(){return this._options},set:function(t){this._options=t}}]),e.prototype.createContainers=function(){var t=this;return E.default.Deferred(function(e){e.resolve(t.options.sources.map(function(e){return t.createContainer(e)}))})},e.prototype.findPlaybackPlugin=function(t,e){return this.loader.playbackPlugins.filter(function(n){return n.canPlay(t,e)})[0]},e.prototype.createContainer=function(t){var e=null,n=this.options.mimeType;"object"===(void 0===t?"undefined":(0,r.default)(t))?(e=t.source.toString(),t.mimeType&&(n=t.mimeType)):e=t.toString(),e.match(/^\/\//)&&(e=window.location.protocol+e);var i=E.default.extend({},this.options,{src:e,mimeType:n}),o=this.findPlaybackPlugin(e,n),a=new o(i,this._i18n);i=E.default.extend({},i,{playback:a});var s=new b.default(i,this._i18n),l=E.default.Deferred();return l.promise(s),this.addContainerPlugins(s),this.listenToOnce(s,m.default.CONTAINER_READY,function(){return l.resolve(s)}),s},e.prototype.addContainerPlugins=function(t){this.loader.containerPlugins.forEach(function(e){t.addPlugin(new e(t))})},e}(y.default);e.default=T,t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(3),u=i(l),c=n(2),d=i(c),f=n(4),p=i(f),h=n(20),y=i(h);n(134);var g=n(6),m=i(g),v=function(t){function e(n,i){(0,r.default)(this,e);var o=(0,s.default)(this,t.call(this,n));return o._i18n=i,o.currentTime=0,o.volume=100,o.playback=n.playback,o.settings=m.default.extend({},o.playback.settings),o.isReady=!1,o.mediaControlDisabled=!1,o.plugins=[o.playback],o.bindEvents(),o}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"Container"}},{key:"attributes",get:function(){return{class:"container","data-container":""}}},{key:"events",get:function(){return{click:"clicked",dblclick:"dblClicked",doubleTap:"dblClicked",contextmenu:"onContextMenu",mouseenter:"mouseEnter",mouseleave:"mouseLeave"}}},{key:"ended",get:function(){return this.playback.ended}},{key:"buffering",get:function(){return this.playback.buffering}},{key:"i18n",get:function(){return this._i18n}},{key:"hasClosedCaptionsTracks",get:function(){return this.playback.hasClosedCaptionsTracks}},{key:"closedCaptionsTracks",get:function(){return this.playback.closedCaptionsTracks}},{key:"closedCaptionsTrackId",get:function(){return this.playback.closedCaptionsTrackId},set:function(t){this.playback.closedCaptionsTrackId=t}}]),e.prototype.bindEvents=function(){this.listenTo(this.playback,p.default.PLAYBACK_PROGRESS,this.progress),this.listenTo(this.playback,p.default.PLAYBACK_TIMEUPDATE,this.timeUpdated),this.listenTo(this.playback,p.default.PLAYBACK_READY,this.ready),this.listenTo(this.playback,p.default.PLAYBACK_BUFFERING,this.onBuffering),this.listenTo(this.playback,p.default.PLAYBACK_BUFFERFULL,this.bufferfull),this.listenTo(this.playback,p.default.PLAYBACK_SETTINGSUPDATE,this.settingsUpdate),this.listenTo(this.playback,p.default.PLAYBACK_LOADEDMETADATA,this.loadedMetadata),this.listenTo(this.playback,p.default.PLAYBACK_HIGHDEFINITIONUPDATE,this.highDefinitionUpdate),this.listenTo(this.playback,p.default.PLAYBACK_BITRATE,this.updateBitrate),this.listenTo(this.playback,p.default.PLAYBACK_PLAYBACKSTATE,this.playbackStateChanged),this.listenTo(this.playback,p.default.PLAYBACK_DVR,this.playbackDvrStateChanged),this.listenTo(this.playback,p.default.PLAYBACK_MEDIACONTROL_DISABLE,this.disableMediaControl),this.listenTo(this.playback,p.default.PLAYBACK_MEDIACONTROL_ENABLE,this.enableMediaControl),this.listenTo(this.playback,p.default.PLAYBACK_SEEKED,this.onSeeked),this.listenTo(this.playback,p.default.PLAYBACK_ENDED,this.onEnded),this.listenTo(this.playback,p.default.PLAYBACK_PLAY,this.playing),this.listenTo(this.playback,p.default.PLAYBACK_PAUSE,this.paused),this.listenTo(this.playback,p.default.PLAYBACK_STOP,this.stopped),this.listenTo(this.playback,p.default.PLAYBACK_ERROR,this.error),this.listenTo(this.playback,p.default.PLAYBACK_SUBTITLE_AVAILABLE,this.subtitleAvailable),this.listenTo(this.playback,p.default.PLAYBACK_SUBTITLE_CHANGED,this.subtitleChanged)},e.prototype.subtitleAvailable=function(){this.trigger(p.default.CONTAINER_SUBTITLE_AVAILABLE)},e.prototype.subtitleChanged=function(t){this.trigger(p.default.CONTAINER_SUBTITLE_CHANGED,t)},e.prototype.playbackStateChanged=function(t){this.trigger(p.default.CONTAINER_PLAYBACKSTATE,t)},e.prototype.playbackDvrStateChanged=function(t){this.settings=this.playback.settings,this.dvrInUse=t,this.trigger(p.default.CONTAINER_PLAYBACKDVRSTATECHANGED,t)},e.prototype.updateBitrate=function(t){this.trigger(p.default.CONTAINER_BITRATE,t)},e.prototype.statsReport=function(t){this.trigger(p.default.CONTAINER_STATS_REPORT,t)},e.prototype.getPlaybackType=function(){return this.playback.getPlaybackType()},e.prototype.isDvrEnabled=function(){return!!this.playback.dvrEnabled},e.prototype.isDvrInUse=function(){return!!this.dvrInUse},e.prototype.destroy=function(){this.trigger(p.default.CONTAINER_DESTROYED,this,this.name),this.stopListening(),this.plugins.forEach(function(t){return t.destroy()}),this.$el.remove()},e.prototype.setStyle=function(t){this.$el.css(t)},e.prototype.animate=function(t,e){return this.$el.animate(t,e).promise()},e.prototype.ready=function(){this.isReady=!0,this.trigger(p.default.CONTAINER_READY,this.name)},e.prototype.isPlaying=function(){return this.playback.isPlaying()},e.prototype.getStartTimeOffset=function(){return this.playback.getStartTimeOffset()},e.prototype.getCurrentTime=function(){return this.currentTime},e.prototype.getDuration=function(){return this.playback.getDuration()},e.prototype.error=function(t){this.isReady||this.ready(),this.trigger(p.default.CONTAINER_ERROR,{error:t,container:this},this.name)},e.prototype.loadedMetadata=function(t){this.trigger(p.default.CONTAINER_LOADEDMETADATA,t)},e.prototype.timeUpdated=function(t){this.currentTime=t.current,this.trigger(p.default.CONTAINER_TIMEUPDATE,t,this.name)},e.prototype.progress=function(){for(var t=arguments.length,e=Array(t),n=0;n=0&&t<=100){var n=e*(t/100);this.seek(n)}},e.prototype.setVolume=function(t){this.volume=parseInt(t,10),this.trigger(p.default.CONTAINER_VOLUME,t,this.name),this.playback.volume(t)},e.prototype.fullscreen=function(){this.trigger(p.default.CONTAINER_FULLSCREEN,this.name)},e.prototype.onBuffering=function(){this.trigger(p.default.CONTAINER_STATE_BUFFERING,this.name)},e.prototype.bufferfull=function(){this.trigger(p.default.CONTAINER_STATE_BUFFERFULL,this.name)},e.prototype.addPlugin=function(t){this.plugins.push(t)},e.prototype.hasPlugin=function(t){return!!this.getPlugin(t)},e.prototype.getPlugin=function(t){return this.plugins.filter(function(e){return e.name===t})[0]},e.prototype.mouseEnter=function(){this.options.chromeless&&!this.options.allowUserInteraction||this.trigger(p.default.CONTAINER_MOUSE_ENTER)},e.prototype.mouseLeave=function(){this.options.chromeless&&!this.options.allowUserInteraction||this.trigger(p.default.CONTAINER_MOUSE_LEAVE)},e.prototype.settingsUpdate=function(){this.settings=this.playback.settings,this.trigger(p.default.CONTAINER_SETTINGSUPDATE)},e.prototype.highDefinitionUpdate=function(t){this.trigger(p.default.CONTAINER_HIGHDEFINITIONUPDATE,t)},e.prototype.isHighDefinitionInUse=function(){return this.playback.isHighDefinitionInUse()},e.prototype.disableMediaControl=function(){this.mediaControlDisabled||(this.mediaControlDisabled=!0,this.trigger(p.default.CONTAINER_MEDIACONTROL_DISABLE))},e.prototype.enableMediaControl=function(){this.mediaControlDisabled&&(this.mediaControlDisabled=!1,this.trigger(p.default.CONTAINER_MEDIACONTROL_ENABLE))},e.prototype.updateStyle=function(){!this.options.chromeless||this.options.allowUserInteraction?this.$el.removeClass("chromeless"):this.$el.addClass("chromeless")},e.prototype.configure=function(t){this._options=m.default.extend(this._options,t),this.updateStyle(),this.trigger(p.default.CONTAINER_OPTIONS_CHANGE)},e.prototype.render=function(){return this.$el.append(this.playback.render().el),this.updateStyle(),this},e}(y.default);e.default=v,t.exports=e.default},function(t,e,n){var i=n(135);"string"==typeof i&&(i=[[t.i,i,""]]);var o={singleton:!0,hmr:!0};o.transform=void 0;n(9)(i,o);i.locals&&(t.exports=i.locals)},function(t,e,n){e=t.exports=n(7)(void 0),e.push([t.i,".container[data-container]{position:absolute;background-color:#000;height:100%;width:100%}.container[data-container] .chromeless{cursor:default}[data-player]:not(.nocursor) .container[data-container]:not(.chromeless).pointer-enabled{cursor:pointer}",""])},function(t,e){t.exports=function(t){var e="undefined"!=typeof window&&window.location;if(!e)throw new Error("fixUrls requires window.location");if(!t||"string"!=typeof t)return t;var n=e.protocol+"//"+e.host,i=n+e.pathname.replace(/\/[^\/]*$/,"/");return t.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(t,e){var o=e.trim().replace(/^"(.*)"$/,function(t,e){return e}).replace(/^'(.*)'$/,function(t,e){return e});if(/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(o))return t;var r;return r=0===o.indexOf("//")?o:0===o.indexOf("/")?n+o:i+o.replace(/^\.\//,""),"url("+JSON.stringify(r)+")"})}},function(t,e,n){"use strict";(function(i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(138),a=o(r),s=n(0),l=o(s),u=n(1),c=o(u),d=n(3),f=o(d),p=n(2),h=o(p),y=n(5),g=n(54),m=n(4),v=o(m),b=n(20),_=o(b),E=n(24),T=o(E),C=n(56),k=o(C),A=n(10),O=o(A),w=n(12),x=o(w),I=n(6),N=o(I);n(140);var S=n(142),P=o(S),R=n(57),L=o(R),D=n(76),M=o(D),B=n(143),F=o(B),$=n(144),U=o($),j=n(145),V=o(j),Y=n(146),K=o(Y),H=n(147),z=o(H),G=n(148),q=o(G),W=function(t){function e(n){(0,l.default)(this,e);var i=(0,c.default)(this,t.call(this,n));i.persistConfig=i.options.persistConfig,i.container=n.container,i.currentPositionValue=null,i.currentDurationValue=null;var o=i.persistConfig?y.Config.restore("volume"):100;return i.setVolume(i.options.mute?0:o),i.keepVisible=!1,i.fullScreenOnVideoTagSupported=null,i.addEventListeners(),i.settings={left:["play","stop","pause"],right:["volume"],default:["position","seekbar","duration"]},i.container?N.default.isEmptyObject(i.container.settings)||(i.settings=N.default.extend({},i.container.settings)):i.settings={},i.userDisabled=!1,(i.container&&i.container.mediaControlDisabled||i.options.chromeless)&&i.disable(),i.stopDragHandler=function(t){return i.stopDrag(t)},i.updateDragHandler=function(t){return i.updateDrag(t)},(0,N.default)(document).bind("mouseup",i.stopDragHandler),(0,N.default)(document).bind("mousemove",i.updateDragHandler),i}return(0,h.default)(e,t),(0,f.default)(e,[{key:"name",get:function(){return"MediaControl"}},{key:"disabled",get:function(){return this.userDisabled||this.container&&this.container.getPlaybackType()===x.default.NO_OP}},{key:"attributes",get:function(){return{class:"media-control","data-media-control":""}}},{key:"events",get:function(){return{"click [data-play]":"play","click [data-pause]":"pause","click [data-playpause]":"togglePlayPause","click [data-stop]":"stop","click [data-playstop]":"togglePlayStop","click [data-fullscreen]":"toggleFullscreen","click .bar-container[data-seekbar]":"seek","click .bar-container[data-volume]":"onVolumeClick","click .drawer-icon[data-volume]":"toggleMute","mouseenter .drawer-container[data-volume]":"showVolumeBar","mouseleave .drawer-container[data-volume]":"hideVolumeBar","mousedown .bar-container[data-volume]":"startVolumeDrag","mousemove .bar-container[data-volume]":"mousemoveOnVolumeBar","mousedown .bar-scrubber[data-seekbar]":"startSeekDrag","mousemove .bar-container[data-seekbar]":"mousemoveOnSeekBar","mouseleave .bar-container[data-seekbar]":"mouseleaveOnSeekBar","mouseenter .media-control-layer[data-controls]":"setUserKeepVisible","mouseleave .media-control-layer[data-controls]":"resetUserKeepVisible"}}},{key:"template",get:function(){return(0,O.default)(P.default)}},{key:"volume",get:function(){return this.container&&this.container.isReady?this.container.volume:this.intendedVolume}},{key:"muted",get:function(){return 0===this.volume}}]),e.prototype.addEventListeners=function(){this.container&&(k.default.on(this.options.playerId+":"+v.default.PLAYER_RESIZE,this.playerResize,this),this.listenTo(this.container,v.default.CONTAINER_PLAY,this.changeTogglePlay),this.listenTo(this.container,v.default.CONTAINER_PAUSE,this.changeTogglePlay),this.listenTo(this.container,v.default.CONTAINER_STOP,this.changeTogglePlay),this.listenTo(this.container,v.default.CONTAINER_DBLCLICK,this.toggleFullscreen),this.listenTo(this.container,v.default.CONTAINER_TIMEUPDATE,this.onTimeUpdate),this.listenTo(this.container,v.default.CONTAINER_PROGRESS,this.updateProgressBar),this.listenTo(this.container,v.default.CONTAINER_SETTINGSUPDATE,this.settingsUpdate),this.listenTo(this.container,v.default.CONTAINER_PLAYBACKDVRSTATECHANGED,this.settingsUpdate),this.listenTo(this.container,v.default.CONTAINER_HIGHDEFINITIONUPDATE,this.highDefinitionUpdate),this.listenTo(this.container,v.default.CONTAINER_MEDIACONTROL_DISABLE,this.disable),this.listenTo(this.container,v.default.CONTAINER_MEDIACONTROL_ENABLE,this.enable),this.listenTo(this.container,v.default.CONTAINER_ENDED,this.ended),this.listenTo(this.container,v.default.CONTAINER_VOLUME,this.onVolumeChanged),"video"===this.container.playback.el.nodeName.toLowerCase()&&this.listenToOnce(this.container,v.default.CONTAINER_LOADEDMETADATA,this.onLoadedMetadataOnVideoTag))},e.prototype.disable=function(){this.userDisabled=!0,this.hide(),this.$el.hide()},e.prototype.enable=function(){this.options.chromeless||(this.userDisabled=!1,this.show())},e.prototype.play=function(){this.container.play()},e.prototype.pause=function(){this.container.pause()},e.prototype.stop=function(){this.container.stop()},e.prototype.onVolumeChanged=function(){this.updateVolumeUI()},e.prototype.onLoadedMetadataOnVideoTag=function(){var t=this.container.playback.el;!y.Fullscreen.fullscreenEnabled()&&t.webkitSupportsFullscreen&&(this.fullScreenOnVideoTagSupported=!0,this.settingsUpdate())},e.prototype.updateVolumeUI=function(){if(this.rendered){this.$volumeBarContainer.find(".bar-fill-2").css({});var t=this.$volumeBarContainer.width(),e=this.$volumeBarBackground.width(),n=(t-e)/2,i=e*this.volume/100+n;this.$volumeBarFill.css({width:this.volume+"%"}),this.$volumeBarScrubber.css({left:i}),this.$volumeBarContainer.find(".segmented-bar-element").removeClass("fill");var o=Math.ceil(this.volume/10);this.$volumeBarContainer.find(".segmented-bar-element").slice(0,o).addClass("fill"),this.$volumeIcon.html(""),this.$volumeIcon.removeClass("muted"),this.muted?(this.$volumeIcon.append(V.default),this.$volumeIcon.addClass("muted")):this.$volumeIcon.append(U.default),this.applyButtonStyle(this.$volumeIcon)}},e.prototype.changeTogglePlay=function(){this.$playPauseToggle.html(""),this.$playStopToggle.html(""),this.container&&this.container.isPlaying()?(this.$playPauseToggle.append(M.default),this.$playStopToggle.append(F.default),this.trigger(v.default.MEDIACONTROL_PLAYING)):(this.$playPauseToggle.append(L.default),this.$playStopToggle.append(L.default),this.trigger(v.default.MEDIACONTROL_NOTPLAYING),T.default.isMobile&&this.show()),this.applyButtonStyle(this.$playPauseToggle),this.applyButtonStyle(this.$playStopToggle)},e.prototype.mousemoveOnSeekBar=function(t){if(this.settings.seekEnabled){var e=t.pageX-this.$seekBarContainer.offset().left-this.$seekBarHover.width()/2;this.$seekBarHover.css({left:e})}this.trigger(v.default.MEDIACONTROL_MOUSEMOVE_SEEKBAR,t)},e.prototype.mouseleaveOnSeekBar=function(t){this.trigger(v.default.MEDIACONTROL_MOUSELEAVE_SEEKBAR,t)},e.prototype.onVolumeClick=function(t){this.setVolume(this.getVolumeFromUIEvent(t))},e.prototype.mousemoveOnVolumeBar=function(t){this.draggingVolumeBar&&this.setVolume(this.getVolumeFromUIEvent(t))},e.prototype.playerResize=function(t){this.$fullscreenToggle.html(""),y.Fullscreen.isFullscreen()?this.$fullscreenToggle.append(z.default):this.$fullscreenToggle.append(K.default),this.applyButtonStyle(this.$fullscreenToggle),this.$el.removeClass("w320"),(t.width<=320||this.options.hideVolumeBar)&&this.$el.addClass("w320")},e.prototype.togglePlayPause=function(){return this.container.isPlaying()?this.container.pause():this.container.play(),!1},e.prototype.togglePlayStop=function(){this.container.isPlaying()?this.container.stop():this.container.play()},e.prototype.startSeekDrag=function(t){this.settings.seekEnabled&&(this.draggingSeekBar=!0,this.$el.addClass("dragging"),this.$seekBarLoaded.addClass("media-control-notransition"),this.$seekBarPosition.addClass("media-control-notransition"),this.$seekBarScrubber.addClass("media-control-notransition"),t&&t.preventDefault())},e.prototype.startVolumeDrag=function(t){this.draggingVolumeBar=!0,this.$el.addClass("dragging"),t&&t.preventDefault()},e.prototype.stopDrag=function(t){this.draggingSeekBar&&this.seek(t),this.$el.removeClass("dragging"),this.$seekBarLoaded.removeClass("media-control-notransition"),this.$seekBarPosition.removeClass("media-control-notransition"),this.$seekBarScrubber.removeClass("media-control-notransition dragging"),this.draggingSeekBar=!1,this.draggingVolumeBar=!1},e.prototype.updateDrag=function(t){if(this.draggingSeekBar){t.preventDefault();var e=t.pageX-this.$seekBarContainer.offset().left,n=e/this.$seekBarContainer.width()*100;n=Math.min(100,Math.max(n,0)),this.setSeekPercentage(n)}else this.draggingVolumeBar&&(t.preventDefault(),this.setVolume(this.getVolumeFromUIEvent(t)))},e.prototype.getVolumeFromUIEvent=function(t){return(t.pageX-this.$volumeBarContainer.offset().left)/this.$volumeBarContainer.width()*100},e.prototype.toggleMute=function(){this.setVolume(this.muted?100:0)},e.prototype.setVolume=function(t){var e=this;t=Math.min(100,Math.max(t,0)),this.intendedVolume=t,this.persistConfig&&y.Config.persist("volume",t);var n=function(){e.container.isReady?e.container.setVolume(t):e.listenToOnce(e.container,v.default.CONTAINER_READY,function(){e.container.setVolume(t)})};this.container?n():this.listenToOnce(this,v.default.MEDIACONTROL_CONTAINERCHANGED,function(){n()})},e.prototype.toggleFullscreen=function(){this.trigger(v.default.MEDIACONTROL_FULLSCREEN,this.name),this.container.fullscreen(),this.resetUserKeepVisible()},e.prototype.setContainer=function(t){this.container&&(this.stopListening(this.container),this.fullScreenOnVideoTagSupported=null),k.default.off(this.options.playerId+":"+v.default.PLAYER_RESIZE,this.playerResize,this),this.container=t,this.setVolume(this.intendedVolume),this.changeTogglePlay(),this.addEventListeners(),this.settingsUpdate(),this.container.trigger(v.default.CONTAINER_PLAYBACKDVRSTATECHANGED,this.container.isDvrInUse()),this.container.mediaControlDisabled&&this.disable(),this.trigger(v.default.MEDIACONTROL_CONTAINERCHANGED)},e.prototype.showVolumeBar=function(){this.hideVolumeId&&clearTimeout(this.hideVolumeId),this.$volumeBarContainer.removeClass("volume-bar-hide")},e.prototype.hideVolumeBar=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:400;this.$volumeBarContainer&&(this.draggingVolumeBar?this.hideVolumeId=setTimeout(function(){return t.hideVolumeBar()},e):(this.hideVolumeId&&clearTimeout(this.hideVolumeId),this.hideVolumeId=setTimeout(function(){return t.$volumeBarContainer.addClass("volume-bar-hide")},e)))},e.prototype.ended=function(){this.changeTogglePlay()},e.prototype.updateProgressBar=function(t){var e=t.start/t.total*100,n=t.current/t.total*100;this.$seekBarLoaded.css({left:e+"%",width:n-e+"%"})},e.prototype.onTimeUpdate=function(t){if(!this.draggingSeekBar){var e=t.current<0?t.total:t.current;this.currentPositionValue=e,this.currentDurationValue=t.total,this.renderSeekBar()}},e.prototype.renderSeekBar=function(){if(null!==this.currentPositionValue&&null!==this.currentDurationValue){this.currentSeekBarPercentage=100,(this.container.getPlaybackType()!==x.default.LIVE||this.container.isDvrInUse())&&(this.currentSeekBarPercentage=this.currentPositionValue/this.currentDurationValue*100),this.setSeekPercentage(this.currentSeekBarPercentage);var t=(0,y.formatTime)(this.currentPositionValue),e=(0,y.formatTime)(this.currentDurationValue);t!==this.displayedPosition&&(this.$position.text(t),this.displayedPosition=t),e!==this.displayedDuration&&(this.$duration.text(e),this.displayedDuration=e)}},e.prototype.seek=function(t){if(this.settings.seekEnabled){var e=t.pageX-this.$seekBarContainer.offset().left,n=e/this.$seekBarContainer.width()*100;return n=Math.min(100,Math.max(n,0)),this.container.seekPercentage(n),this.setSeekPercentage(n),!1}},e.prototype.setKeepVisible=function(){this.keepVisible=!0},e.prototype.resetKeepVisible=function(){this.keepVisible=!1},e.prototype.setUserKeepVisible=function(){this.userKeepVisible=!0},e.prototype.resetUserKeepVisible=function(){this.userKeepVisible=!1},e.prototype.isVisible=function(){return!this.$el.hasClass("media-control-hide")},e.prototype.show=function(t){var e=this;if(!this.disabled){(!t||t.clientX!==this.lastMouseX&&t.clientY!==this.lastMouseY||navigator.userAgent.match(/firefox/i))&&(clearTimeout(this.hideId),this.$el.show(),this.trigger(v.default.MEDIACONTROL_SHOW,this.name),this.$el.removeClass("media-control-hide"),this.hideId=setTimeout(function(){return e.hide()},2e3),t&&(this.lastMouseX=t.clientX,this.lastMouseY=t.clientY))}},e.prototype.hide=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(this.isVisible()&&(!T.default.isMobile||this.container.isPlaying())){var n=e||2e3;clearTimeout(this.hideId),(this.disabled||!1!==this.options.hideMediaControl)&&(!this.disabled&&(e||this.userKeepVisible||this.keepVisible||this.draggingSeekBar||this.draggingVolumeBar)?this.hideId=setTimeout(function(){return t.hide()},n):(this.trigger(v.default.MEDIACONTROL_HIDE,this.name),this.$el.addClass("media-control-hide"),this.hideVolumeBar(0)))}},e.prototype.settingsUpdate=function(){var t=this.getSettings();!t||this.fullScreenOnVideoTagSupported||y.Fullscreen.fullscreenEnabled()||(t.default&&(0,y.removeArrayItem)(t.default,"fullscreen"),t.left&&(0,y.removeArrayItem)(t.left,"fullscreen"),t.right&&(0,y.removeArrayItem)(t.right,"fullscreen")),(0,a.default)(this.settings)!==(0,a.default)(t)&&(this.settings=t,this.render())},e.prototype.getSettings=function(){return N.default.extend(!0,{},this.container.settings)},e.prototype.highDefinitionUpdate=function(t){var e=t?"addClass":"removeClass";this.$hdIndicator[e]("enabled")},e.prototype.createCachedElements=function(){var t=this.$el.find(".media-control-layer");this.$duration=t.find(".media-control-indicator[data-duration]"),this.$fullscreenToggle=t.find("button.media-control-button[data-fullscreen]"),this.$playPauseToggle=t.find("button.media-control-button[data-playpause]"),this.$playStopToggle=t.find("button.media-control-button[data-playstop]"),this.$position=t.find(".media-control-indicator[data-position]"),this.$seekBarContainer=t.find(".bar-container[data-seekbar]"),this.$seekBarHover=t.find(".bar-hover[data-seekbar]"),this.$seekBarLoaded=t.find(".bar-fill-1[data-seekbar]"),this.$seekBarPosition=t.find(".bar-fill-2[data-seekbar]"),this.$seekBarScrubber=t.find(".bar-scrubber[data-seekbar]"),this.$volumeBarContainer=t.find(".bar-container[data-volume]"),this.$volumeContainer=t.find(".drawer-container[data-volume]"),this.$volumeIcon=t.find(".drawer-icon[data-volume]"),this.$volumeBarBackground=this.$el.find(".bar-background[data-volume]"),this.$volumeBarFill=this.$el.find(".bar-fill-1[data-volume]"),this.$volumeBarScrubber=this.$el.find(".bar-scrubber[data-volume]"),this.$hdIndicator=this.$el.find("button.media-control-button[data-hd-indicator]"),this.resetIndicators(),this.initializeIcons()},e.prototype.resetIndicators=function(){this.displayedPosition=this.$position.text(),this.displayedDuration=this.$duration.text()},e.prototype.initializeIcons=function(){var t=this.$el.find(".media-control-layer");t.find("button.media-control-button[data-play]").append(L.default),t.find("button.media-control-button[data-pause]").append(M.default),t.find("button.media-control-button[data-stop]").append(F.default),this.$playPauseToggle.append(L.default),this.$playStopToggle.append(L.default),this.$volumeIcon.append(U.default),this.$fullscreenToggle.append(K.default),this.$hdIndicator.append(q.default)},e.prototype.setSeekPercentage=function(t){t=Math.max(Math.min(t,100),0),this.displayedSeekBarPercentage!==t&&(this.displayedSeekBarPercentage=t,this.$seekBarPosition.removeClass("media-control-notransition"),this.$seekBarScrubber.removeClass("media-control-notransition"),this.$seekBarPosition.css({width:t+"%"}),this.$seekBarScrubber.css({left:t+"%"}))},e.prototype.seekRelative=function(t){if(this.settings.seekEnabled){var e=this.container.getCurrentTime(),n=this.container.getDuration(),i=Math.min(Math.max(e+t,0),n);i=Math.min(100*i/n,100),this.container.seekPercentage(i)}},e.prototype.bindKeyAndShow=function(t,e){var n=this;this.kibo.down(t,function(){return n.show(),e()})},e.prototype.bindKeyEvents=function(){var t=this;this.unbindKeyEvents(),this.kibo=new g.Kibo(this.options.focusElement),this.bindKeyAndShow("space",function(){return t.togglePlayPause()}),this.bindKeyAndShow("left",function(){return t.seekRelative(-5)}),this.bindKeyAndShow("right",function(){return t.seekRelative(5)}),this.bindKeyAndShow("shift left",function(){return t.seekRelative(-10)}),this.bindKeyAndShow("shift right",function(){return t.seekRelative(10)}),this.bindKeyAndShow("shift ctrl left",function(){return t.seekRelative(-15)}),this.bindKeyAndShow("shift ctrl right",function(){return t.seekRelative(15)}),["1","2","3","4","5","6","7","8","9","0"].forEach(function(e){t.bindKeyAndShow(e,function(){return t.settings.seekEnabled&&t.container.seekPercentage(10*e)})})},e.prototype.unbindKeyEvents=function(){this.kibo&&(this.kibo.off("space"),this.kibo.off("left"),this.kibo.off("right"),this.kibo.off("shift left"),this.kibo.off("shift right"),this.kibo.off("shift ctrl left"),this.kibo.off("shift ctrl right"),this.kibo.off(["1","2","3","4","5","6","7","8","9","0"]))},e.prototype.parseColors=function(){if(this.options.mediacontrol){this.buttonsColor=this.options.mediacontrol.buttons;var t=this.options.mediacontrol.seekbar;this.$el.find(".bar-fill-2[data-seekbar]").css("background-color",t),this.$el.find(".media-control-icon svg path").css("fill",this.buttonsColor),this.$el.find(".segmented-bar-element[data-volume]").css("boxShadow","inset 2px 0 0 "+this.buttonsColor)}},e.prototype.applyButtonStyle=function(t){this.buttonsColor&&t&&(0,N.default)(t).find("svg path").css("fill",this.buttonsColor)},e.prototype.destroy=function(){this.remove(),(0,N.default)(document).unbind("mouseup",this.stopDragHandler),(0,N.default)(document).unbind("mousemove",this.updateDragHandler),this.unbindKeyEvents()},e.prototype.render=function(){var t=this;this.$el.html(this.template({settings:this.settings})),this.createCachedElements(),this.$playPauseToggle.addClass("paused"),this.$playStopToggle.addClass("stopped"),this.changeTogglePlay(),this.hideId=setTimeout(function(){return t.hide()},1e3),this.disabled&&this.hide(),T.default.isSafari&&T.default.isMobile&&(T.default.version<10?this.$volumeContainer.css("display","none"):this.$volumeBarContainer.css("display","none")),this.$seekBarPosition.addClass("media-control-notransition"),this.$seekBarScrubber.addClass("media-control-notransition");var e=0;return this.displayedSeekBarPercentage&&(e=this.displayedSeekBarPercentage),this.displayedSeekBarPercentage=null,this.setSeekPercentage(e),i.nextTick(function(){t.settings.seekEnabled||t.$seekBarContainer.addClass("seek-disabled"),T.default.isMobile||t.options.disableKeyboardShortcuts||t.bindKeyEvents(),t.playerResize({width:t.options.width,height:t.options.height}),t.hideVolumeBar(0)}),this.parseColors(),this.highDefinitionUpdate(),this.rendered=!0,this.updateVolumeUI(),this.trigger(v.default.MEDIACONTROL_RENDERED),this},e}(_.default);e.default=W,W.extend=function(t){return(0,y.extend)(W,t)},t.exports=e.default}).call(e,n(55))},function(t,e,n){t.exports={default:n(139),__esModule:!0}},function(t,e,n){var i=n(8),o=i.JSON||(i.JSON={stringify:JSON.stringify});t.exports=function(t){return o.stringify.apply(o,arguments)}},function(t,e,n){var i=n(141);"string"==typeof i&&(i=[[t.i,i,""]]);var o={singleton:!0,hmr:!0};o.transform=void 0;n(9)(i,o);i.locals&&(t.exports=i.locals)},function(t,e,n){e=t.exports=n(7)(void 0),e.push([t.i,".media-control-notransition{transition:none!important}.media-control[data-media-control]{position:absolute;width:100%;height:100%;z-index:9999;pointer-events:none}.media-control[data-media-control].dragging{pointer-events:auto;cursor:-webkit-grabbing!important;cursor:grabbing!important;cursor:url("+n(75)+"),move}.media-control[data-media-control].dragging *{cursor:-webkit-grabbing!important;cursor:grabbing!important;cursor:url("+n(75)+'),move}.media-control[data-media-control] .media-control-background[data-background]{position:absolute;height:40%;width:100%;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.9));transition:opacity .6s ease-out}.media-control[data-media-control] .media-control-icon{line-height:0;letter-spacing:0;speak:none;color:#fff;opacity:.5;vertical-align:middle;text-align:left;transition:all .1s ease}.media-control[data-media-control] .media-control-icon:hover{color:#fff;opacity:.75;text-shadow:hsla(0,0%,100%,.8) 0 0 5px}.media-control[data-media-control].media-control-hide .media-control-background[data-background]{opacity:0}.media-control[data-media-control].media-control-hide .media-control-layer[data-controls]{bottom:-50px}.media-control[data-media-control].media-control-hide .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar]{opacity:0}.media-control[data-media-control] .media-control-layer[data-controls]{position:absolute;bottom:7px;width:100%;height:32px;font-size:0;vertical-align:middle;pointer-events:auto;transition:bottom .4s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-left-panel[data-media-control]{position:absolute;top:0;left:4px;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-center-panel[data-media-control]{height:100%;text-align:center;line-height:32px}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-right-panel[data-media-control]{position:absolute;top:0;right:4px;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button{background-color:transparent;border:0;margin:0 6px;padding:0;cursor:pointer;display:inline-block;width:32px;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg{width:100%;height:22px}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg path{fill:#fff}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button:focus{outline:none}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-pause],.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-play],.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-stop]{float:left;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-fullscreen]{float:right;background-color:transparent;border:0;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator]{background-color:transparent;border:0;cursor:default;display:none;float:right;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled{display:block;opacity:1}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled:hover{opacity:1;text-shadow:none}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playpause],.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playstop]{float:left}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration],.media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position]{display:inline-block;font-size:10px;color:#fff;cursor:default;line-height:32px;position:relative}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position]{margin:0 6px 0 7px}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration]{color:hsla(0,0%,100%,.5);margin-right:6px}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration]:before{content:"|";margin-right:7px}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar]{position:absolute;top:-20px;left:0;display:inline-block;vertical-align:middle;width:100%;height:25px;cursor:pointer}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar]{width:100%;height:1px;position:relative;top:12px;background-color:#666}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-1[data-seekbar]{position:absolute;top:0;left:0;width:0;height:100%;background-color:#c2c2c2;transition:all .1s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar]{position:absolute;top:0;left:0;width:0;height:100%;background-color:#005aff;transition:all .1s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-hover[data-seekbar]{opacity:0;position:absolute;top:-3px;width:5px;height:7px;background-color:hsla(0,0%,100%,.5);transition:opacity .1s ease}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar]:hover .bar-background[data-seekbar] .bar-hover[data-seekbar]{opacity:1}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar].seek-disabled{cursor:default}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar].seek-disabled:hover .bar-background[data-seekbar] .bar-hover[data-seekbar]{opacity:0}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar]{position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);top:2px;left:0;width:20px;height:20px;opacity:1;transition:all .1s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] .bar-scrubber-icon[data-seekbar]{position:absolute;left:6px;top:6px;width:8px;height:8px;border-radius:10px;box-shadow:0 0 0 6px hsla(0,0%,100%,.2);background-color:#fff}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume]{float:right;display:inline-block;height:32px;cursor:pointer;margin:0 6px;box-sizing:border-box}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume]{float:left;bottom:0}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume]{background-color:transparent;border:0;box-sizing:content-box;width:32px;height:32px;opacity:.5}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume]:hover{opacity:.75}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] svg{height:24px;position:relative;top:3px}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] svg path{fill:#fff}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume].muted svg{margin-left:2px}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume]{float:left;position:relative;overflow:hidden;top:6px;width:42px;height:18px;padding:3px 0;transition:width .2s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume]{height:1px;position:relative;top:7px;margin:0 3px;background-color:#666}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-fill-1[data-volume]{position:absolute;top:0;left:0;width:0;height:100%;background-color:#c2c2c2;transition:all .1s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-fill-2[data-volume]{position:absolute;top:0;left:0;width:0;height:100%;background-color:#005aff;transition:all .1s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-hover[data-volume]{opacity:0;position:absolute;top:-3px;width:5px;height:7px;background-color:hsla(0,0%,100%,.5);transition:opacity .1s ease}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-scrubber[data-volume]{position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);top:0;left:0;width:20px;height:20px;opacity:1;transition:all .1s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-scrubber[data-volume] .bar-scrubber-icon[data-volume]{position:absolute;left:6px;top:6px;width:8px;height:8px;border-radius:10px;box-shadow:0 0 0 6px hsla(0,0%,100%,.2);background-color:#fff}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]{float:left;width:4px;padding-left:2px;height:12px;opacity:.5;box-shadow:inset 2px 0 0 #fff;transition:-webkit-transform .2s ease-out;transition:transform .2s ease-out;transition:transform .2s ease-out,-webkit-transform .2s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume].fill{box-shadow:inset 2px 0 0 #fff;opacity:1}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:first-of-type{padding-left:0}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:hover{-webkit-transform:scaleY(1.5);transform:scaleY(1.5)}.media-control[data-media-control].w320 .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume].volume-bar-hide{width:0;height:12px;top:9px;padding:0}',""])},function(t,e){t.exports='
\n
\n <% var renderBar = function(name) { %>\n
>\n
>\n
>
\n
>
\n
>
\n
\n
>\n
>
\n
\n
\n <% }; %>\n <% var renderSegmentedBar = function(name, segments) {\n segments = segments || 10; %>\n
>\n <% for (var i = 0; i < segments; i++) { %>\n
>
\n <% } %>\n
\n <% }; %>\n <% var renderDrawer = function(name, renderContent) { %>\n
>\n
>\n
>
\n >\n
\n <% renderContent(name); %>\n
\n <% }; %>\n <% var renderIndicator = function(name) { %>\n
>
\n <% }; %>\n <% var renderButton = function(name) { %>\n \n <% }; %>\n <% var templates = {\n bar: renderBar,\n segmentedBar: renderSegmentedBar,\n };\n var render = function(settingsList) {\n settingsList.forEach(function(setting) {\n if(setting === "seekbar") {\n renderBar(setting);\n } else if (setting === "volume") {\n renderDrawer(setting, settings.volumeBarTemplate ? templates[settings.volumeBarTemplate] : function(name) { return renderSegmentedBar(name); });\n } else if (setting === "duration" || setting === "position") {\n renderIndicator(setting);\n } else {\n renderButton(setting);\n }\n });\n }; %>\n <% if (settings.default && settings.default.length) { %>\n
\n <% render(settings.default); %>\n
\n <% } %>\n <% if (settings.left && settings.left.length) { %>\n
\n <% render(settings.left); %>\n
\n <% } %>\n <% if (settings.right && settings.right.length) { %>\n
\n <% render(settings.right); %>\n
\n <% } %>\n
\n'},function(t,e){t.exports=''},function(t,e){t.exports=''},function(t,e){t.exports=''},function(t,e){t.exports=''},function(t,e){t.exports=''},function(t,e){t.exports=''},function(t,e,n){var i=n(150);"string"==typeof i&&(i=[[t.i,i,""]]);var o={singleton:!0,hmr:!0};o.transform=void 0;n(9)(i,o);i.locals&&(t.exports=i.locals)},function(t,e,n){e=t.exports=n(7)(void 0),e.push([t.i,'[data-player]{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translateZ(0);transform:translateZ(0);position:relative;margin:0;padding:0;border:0;font-style:normal;font-weight:400;text-align:center;overflow:hidden;font-size:100%;font-family:Roboto,Open Sans,Arial,sans-serif;text-shadow:0 0 0;box-sizing:border-box}[data-player] a,[data-player] abbr,[data-player] acronym,[data-player] address,[data-player] applet,[data-player] article,[data-player] aside,[data-player] audio,[data-player] b,[data-player] big,[data-player] blockquote,[data-player] canvas,[data-player] caption,[data-player] center,[data-player] cite,[data-player] code,[data-player] dd,[data-player] del,[data-player] details,[data-player] dfn,[data-player] div,[data-player] dl,[data-player] dt,[data-player] em,[data-player] embed,[data-player] fieldset,[data-player] figcaption,[data-player] figure,[data-player] footer,[data-player] form,[data-player] h1,[data-player] h2,[data-player] h3,[data-player] h4,[data-player] h5,[data-player] h6,[data-player] header,[data-player] hgroup,[data-player] i,[data-player] iframe,[data-player] img,[data-player] ins,[data-player] kbd,[data-player] label,[data-player] legend,[data-player] li,[data-player] mark,[data-player] menu,[data-player] nav,[data-player] object,[data-player] ol,[data-player] output,[data-player] p,[data-player] pre,[data-player] q,[data-player] ruby,[data-player] s,[data-player] samp,[data-player] section,[data-player] small,[data-player] span,[data-player] strike,[data-player] strong,[data-player] sub,[data-player] summary,[data-player] sup,[data-player] table,[data-player] tbody,[data-player] td,[data-player] tfoot,[data-player] th,[data-player] thead,[data-player] time,[data-player] tr,[data-player] tt,[data-player] u,[data-player] ul,[data-player] var,[data-player] video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}[data-player] table{border-collapse:collapse;border-spacing:0}[data-player] caption,[data-player] td,[data-player] th{text-align:left;font-weight:400;vertical-align:middle}[data-player] blockquote,[data-player] q{quotes:none}[data-player] blockquote:after,[data-player] blockquote:before,[data-player] q:after,[data-player] q:before{content:"";content:none}[data-player] a img{border:none}[data-player]:focus{outline:0}[data-player] *{max-width:none;box-sizing:inherit;float:none}[data-player] div{display:block}[data-player].fullscreen{width:100%!important;height:100%!important;top:0;left:0}[data-player].nocursor{cursor:none}.clappr-style{display:none!important}',""])},function(t,e,n){e=t.exports=n(7)(void 0),e.push([t.i,'@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:local("Roboto"),local("Roboto-Regular"),url('+n(152)+') format("truetype")}',""])},function(t,e){t.exports="<%=baseUrl%>/38861cba61c66739c1452c3a71e39852.ttf"},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(70),r=i(o),a=n(0),s=i(a),l=n(1),u=i(l),c=n(2),d=i(c),f=n(16),p=i(f),h=n(34),y=i(h),g=n(58),m=i(g),v=n(21),b=(i(v),n(80)),_=i(b),E=n(21),T=(i(E),n(21)),C=(i(T),n(81)),k=i(C),A=n(82),O=i(A),w=n(175),x=i(w),I=n(180),N=i(I),S=n(182),P=i(S),R=n(83),L=i(R),D=n(191),M=i(D),B=n(193),F=i(B),$=n(195),U=i($),j=n(200),V=i(j),Y=n(206),K=i(Y),H=n(208),z=i(H),G=n(213),q=i(G),W=n(214),Z=i(W),X=n(215),J=i(X),Q=function(t){function e(n,i){(0,s.default)(this,e);var o=(0,u.default)(this,t.call(this));return o.playerId=i,o.playbackPlugins=[m.default,_.default,k.default,O.default],o.containerPlugins=[x.default,P.default,L.default,N.default,M.default,F.default],o.corePlugins=[U.default,V.default,K.default,z.default,q.default,Z.default,J.default],n&&(Array.isArray(n)||o.validateExternalPluginsType(n),o.addExternalPlugins(n)),o}return(0,d.default)(e,t),e.prototype.groupPluginsByType=function(t){return Array.isArray(t)&&(t=t.reduce(function(t,e){return t[e.type]||(t[e.type]=[]),t[e.type].push(e),t},{})),t},e.prototype.removeDups=function(t){var e=function(t,e){return t[e.prototype.name]&&delete t[e.prototype.name],t[e.prototype.name]=e,t},n=t.reduceRight(e,(0,r.default)(null)),i=[];for(var o in n)i.unshift(n[o]);return i},e.prototype.addExternalPlugins=function(t){t=this.groupPluginsByType(t),t.playback&&(this.playbackPlugins=this.removeDups(t.playback.concat(this.playbackPlugins))),t.container&&(this.containerPlugins=this.removeDups(t.container.concat(this.containerPlugins))),t.core&&(this.corePlugins=this.removeDups(t.core.concat(this.corePlugins))),y.default.getInstance(this.playerId).playbackPlugins=this.playbackPlugins},e.prototype.validateExternalPluginsType=function(t){["playback","container","core"].forEach(function(e){(t[e]||[]).forEach(function(t){var n="external "+t.type+" plugin on "+e+" array";if(t.type!==e)throw new ReferenceError(n)})})},e}(p.default);e.default=Q,t.exports=e.default},function(t,e,n){"use strict";(function(i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(79),a=o(r),s=n(0),l=o(s),u=n(1),c=o(u),d=n(3),f=o(d),p=n(2),h=o(p),y=n(163),g=o(y),m=n(31),v=o(m),b=n(5),_=n(12),E=o(_),T=n(24),C=o(T),k=n(4),A=o(k),O=n(6),w=o(O),x=n(10),I=o(x),N=n(164),S=o(N);n(165);var P={mp4:["avc1.42E01E","avc1.58A01E","avc1.4D401E","avc1.64001E","mp4v.20.8","mp4v.20.240","mp4a.40.2"].map(function(t){return'video/mp4; codecs="'+t+', mp4a.40.2"'}),ogg:['video/ogg; codecs="theora, vorbis"','video/ogg; codecs="dirac"','video/ogg; codecs="theora, speex"'],"3gpp":['video/3gpp; codecs="mp4v.20.8, samr"'],webm:['video/webm; codecs="vp8, vorbis"'],mkv:['video/x-matroska; codecs="theora, vorbis"'],m3u8:["application/x-mpegurl"]};P.ogv=P.ogg,P["3gp"]=P["3gpp"];var R={wav:["audio/wav"],mp3:["audio/mp3",'audio/mpeg;codecs="mp3"'],aac:['audio/mp4;codecs="mp4a.40.5"'],oga:["audio/ogg"]},L=(0,v.default)(R).reduce(function(t,e){return[].concat((0,g.default)(t),(0,g.default)(R[e]))},[]),D=function(t){function e(){(0,l.default)(this,e);for(var n=arguments.length,o=Array(n),r=0;r=0}},{key:"attributes",get:function(){return{"data-html5-video":""}}},{key:"events",get:function(){return{canplay:"_onCanPlay",canplaythrough:"_handleBufferingEvents",durationchange:"_onDurationChange",ended:"_onEnded",error:"_onError",loadeddata:"_onLoadedData",loadedmetadata:"_onLoadedMetadata",pause:"_onPause",playing:"_onPlaying",progress:"_onProgress",seeking:"_handleBufferingEvents",seeked:"_onSeeked",stalled:"_handleBufferingEvents",timeupdate:"_onTimeUpdate",waiting:"_onWaiting"}}},{key:"ended",get:function(){return this.el.ended}},{key:"buffering",get:function(){return this._isBuffering}}]),e.prototype._setupExternalTracks=function(t){this._externalTracks=t.map(function(t){return{kind:t.kind||"subtitles",label:t.label,lang:t.lang,src:t.src}})},e.prototype._setupSrc=function(t){this.el.src!==t&&(this._ccIsSetup=!1,this.el.src=t,this._src=this.el.src)},e.prototype._onLoadedMetadata=function(t){this._handleBufferingEvents(),this.trigger(A.default.PLAYBACK_LOADEDMETADATA,{duration:t.target.duration,data:t}),this._updateSettings();var e=void 0===this._options.autoSeekFromUrl||this._options.autoSeekFromUrl;this.getPlaybackType()!==E.default.LIVE&&e&&this._checkInitialSeek()},e.prototype._onDurationChange=function(){this._updateSettings(),this._onTimeUpdate(),this._onProgress()},e.prototype._updateSettings=function(){this.getPlaybackType()===E.default.VOD||this.getPlaybackType()===E.default.AOD?this.settings.left=["playpause","position","duration"]:this.settings.left=["playstop"],this.settings.seekEnabled=this.isSeekEnabled(),this.trigger(A.default.PLAYBACK_SETTINGSUPDATE)},e.prototype.isSeekEnabled=function(){return isFinite(this.getDuration())},e.prototype.getPlaybackType=function(){var t="audio"===this.tagName?E.default.AOD:E.default.VOD;return[0,void 0,1/0].indexOf(this.el.duration)>=0?E.default.LIVE:t},e.prototype.isHighDefinitionInUse=function(){return!1},e.prototype.consent=function(){!this.isPlaying()&&this.el.load()},e.prototype.play=function(){this.trigger(A.default.PLAYBACK_PLAY_INTENT),this._stopped=!1,this._setupSrc(this._src),this._handleBufferingEvents();var t=this.el.play();t&&t.catch&&t.catch(function(){})},e.prototype.pause=function(){this.el.pause()},e.prototype.stop=function(){this.pause(),this._stopped=!0,this.el.removeAttribute("src"),this._stopPlayheadMovingChecks(),this._handleBufferingEvents(),this.trigger(A.default.PLAYBACK_STOP)},e.prototype.volume=function(t){0===t?(this.$el.attr({muted:"true"}),this.el.muted=!0):(this.$el.attr({muted:null}),this.el.muted=!1),this.el.volume=t/100},e.prototype.mute=function(){this.el.muted=!0},e.prototype.unmute=function(){this.el.muted=!1},e.prototype.isMuted=function(){return!!this.el.volume},e.prototype.isPlaying=function(){return!this.el.paused&&!this.el.ended},e.prototype._startPlayheadMovingChecks=function(){null===this._playheadMovingTimer&&(this._playheadMovingTimeOnCheck=null,this._determineIfPlayheadMoving(),this._playheadMovingTimer=setInterval(this._determineIfPlayheadMoving.bind(this),500))},e.prototype._stopPlayheadMovingChecks=function(){null!==this._playheadMovingTimer&&(clearInterval(this._playheadMovingTimer),this._playheadMovingTimer=null,this._playheadMoving=!1)},e.prototype._determineIfPlayheadMoving=function(){var t=this._playheadMovingTimeOnCheck,e=this.el.currentTime;this._playheadMoving=t!==e,this._playheadMovingTimeOnCheck=e,this._handleBufferingEvents()},e.prototype._onWaiting=function(){this._loadStarted=!0,this._handleBufferingEvents()},e.prototype._onLoadedData=function(){this._loadStarted=!0,this._handleBufferingEvents()},e.prototype._onCanPlay=function(){this._handleBufferingEvents()},e.prototype._onPlaying=function(){this._checkForClosedCaptions(),this._startPlayheadMovingChecks(),this._handleBufferingEvents(),this.trigger(A.default.PLAYBACK_PLAY)},e.prototype._onPause=function(){this._stopPlayheadMovingChecks(),this._handleBufferingEvents(),this.trigger(A.default.PLAYBACK_PAUSE)},e.prototype._onSeeked=function(){this._handleBufferingEvents(),this.trigger(A.default.PLAYBACK_SEEKED)},e.prototype._onEnded=function(){this._handleBufferingEvents(),this.trigger(A.default.PLAYBACK_ENDED,this.name)},e.prototype._handleBufferingEvents=function(){var t=!this.el.ended&&!this.el.paused,e=this._loadStarted&&!this.el.ended&&!this._stopped&&(t&&!this._playheadMoving||this.el.readyState=t[n].start&&this.el.currentTime<=t[n].end&&(e=n);var i={start:t[e].start,current:t[e].end,total:this.el.duration};this.trigger(A.default.PLAYBACK_PROGRESS,i,t)}},e.prototype._typeFor=function(t){var n=e._mimeTypesForUrl(t,P,this.options.mimeType);return 0===n.length&&(n=e._mimeTypesForUrl(t,R,this.options.mimeType)),(n[0]||"").split(";")[0]},e.prototype._ready=function(){this._isReadyState||(this._isReadyState=!0,this.trigger(A.default.PLAYBACK_READY,this.name))},e.prototype._checkForClosedCaptions=function(){if(this.isHTML5Video&&!this._ccIsSetup){if(this.hasClosedCaptionsTracks){this.trigger(A.default.PLAYBACK_SUBTITLE_AVAILABLE);var t=this.closedCaptionsTrackId;this.closedCaptionsTrackId=t,this.handleTextTrackChange=this._handleTextTrackChange.bind(this),this.el.textTracks.addEventListener("change",this.handleTextTrackChange)}this._ccIsSetup=!0}},e.prototype._handleTextTrackChange=function(){var t=this.closedCaptionsTracks,e=t.find(function(t){return"showing"===t.track.mode})||{id:-1};this._ccTrackId!==e.id&&(this._ccTrackId=e.id,this.trigger(A.default.PLAYBACK_SUBTITLE_CHANGED,{id:e.id}))},e.prototype.render=function(){return this.options.playback.disableContextMenu&&this.$el.on("contextmenu",function(){return!1}),this._externalTracks&&this._externalTracks.length>0&&this.$el.html(this.template({tracks:this._externalTracks})),this._ready(),this},(0,f.default)(e,[{key:"isReady",get:function(){return this._isReadyState}},{key:"isHTML5Video",get:function(){return this.name===e.prototype.name}},{key:"closedCaptionsTracks",get:function(){var t=0,e=function(){return t++};return(this.el.textTracks?(0,a.default)(this.el.textTracks):[]).filter(function(t){return"subtitles"===t.kind||"captions"===t.kind}).map(function(t){return{id:e(),name:t.label,track:t}})}},{key:"closedCaptionsTrackId",get:function(){return this._ccTrackId},set:function(t){if((0,b.isNumber)(t)){var e=this.closedCaptionsTracks,n=void 0;if(-1!==t){if(!(n=e.find(function(e){return e.id===t})))return;if("showing"===n.track.mode)return}e.filter(function(t){return"hidden"!==t.track.mode}).forEach(function(t){return t.track.mode="hidden"}),n&&(n.track.mode="showing"),this._ccTrackId=t,this.trigger(A.default.PLAYBACK_SUBTITLE_CHANGED,{id:t})}}},{key:"template",get:function(){return(0,I.default)(S.default)}}]),e}(E.default);e.default=D,D._mimeTypesForUrl=function(t,e,n){var i=(t.split("?")[0].match(/.*\.(.*)$/)||[])[1],o=n||i&&e[i.toLowerCase()]||[];return o.constructor===Array?o:[o]},D._canPlay=function(t,e,n,i){var o=D._mimeTypesForUrl(n,e,i),r=document.createElement(t);return!!o.filter(function(t){return!!r.canPlayType(t).replace(/no/,"")})[0]},D.canPlay=function(t,e){return D._canPlay("audio",R,t,e)||D._canPlay("video",P,t,e)},t.exports=e.default}).call(e,n(55))},function(t,e,n){n(64),n(156),t.exports=n(8).Array.from},function(t,e,n){"use strict";var i=n(45),o=n(18),r=n(38),a=n(157),s=n(158),l=n(60),u=n(159),c=n(160);o(o.S+o.F*!n(162)(function(t){Array.from(t)}),"Array",{from:function(t){var e,n,o,d,f=r(t),p="function"==typeof this?this:Array,h=arguments.length,y=h>1?arguments[1]:void 0,g=void 0!==y,m=0,v=c(f);if(g&&(y=i(y,h>2?arguments[2]:void 0,2)),void 0==v||p==Array&&s(v))for(e=l(f.length),n=new p(e);e>m;m++)u(n,m,g?y(f[m],m):f[m]);else for(d=v.call(f),n=new p;!(o=d.next()).done;m++)u(n,m,g?a(d,y,[o.value,m],!0):o.value);return n.length=m,n}})},function(t,e,n){var i=n(23);t.exports=function(t,e,n,o){try{return o?e(i(n)[0],n[1]):e(n)}catch(e){var r=t.return;throw void 0!==r&&i(r.call(t)),e}}},function(t,e,n){var i=n(29),o=n(11)("iterator"),r=Array.prototype;t.exports=function(t){return void 0!==t&&(i.Array===t||r[o]===t)}},function(t,e,n){"use strict";var i=n(15),o=n(28);t.exports=function(t,e,n){e in t?i.f(t,e,o(0,n)):t[e]=n}},function(t,e,n){var i=n(161),o=n(11)("iterator"),r=n(29);t.exports=n(8).getIteratorMethod=function(t){if(void 0!=t)return t[o]||t["@@iterator"]||r[i(t)]}},function(t,e,n){var i=n(40),o=n(11)("toStringTag"),r="Arguments"==i(function(){return arguments}()),a=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,n,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=a(e=Object(t),o))?n:r?i(e):"Object"==(s=i(e))&&"function"==typeof e.callee?"Arguments":s}},function(t,e,n){var i=n(11)("iterator"),o=!1;try{var r=[7][i]();r.return=function(){o=!0},Array.from(r,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var r=[7],a=r[i]();a.next=function(){return{done:n=!0}},r[i]=function(){return a},t(r)}catch(t){}return n}},function(t,e,n){"use strict";e.__esModule=!0;var i=n(79),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e\n

<%=message%>

\n"},function(t,e,n){var i=n(174);"string"==typeof i&&(i=[[t.i,i,""]]);var o={singleton:!0,hmr:!0};o.transform=void 0;n(9)(i,o);i.locals&&(t.exports=i.locals)},function(t,e,n){e=t.exports=n(7)(void 0),e.push([t.i,"[data-no-op]{position:absolute;height:100%;width:100%;text-align:center}[data-no-op] p[data-no-op-msg]{position:absolute;text-align:center;font-size:25px;left:0;right:0;color:#fff;padding:10px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);max-height:100%;overflow:auto}[data-no-op] canvas[data-no-op-canvas]{background-color:#777;height:100%;width:100%}",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(176),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=o.default,t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(3),u=i(l),c=n(2),d=i(c),f=n(35),p=i(f),h=n(4),y=i(h),g=n(10),m=i(g),v=n(177),b=i(v);n(178);var _=function(t){function e(n){(0,r.default)(this,e);var i=(0,s.default)(this,t.call(this,n));return i.template=(0,m.default)(b.default),i.showTimeout=null,i.listenTo(i.container,y.default.CONTAINER_STATE_BUFFERING,i.onBuffering),i.listenTo(i.container,y.default.CONTAINER_STATE_BUFFERFULL,i.onBufferFull),i.listenTo(i.container,y.default.CONTAINER_STOP,i.onStop),i.listenTo(i.container,y.default.CONTAINER_ENDED,i.onStop),i.listenTo(i.container,y.default.CONTAINER_ERROR,i.onStop),i.render(),i}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"spinner"}},{key:"attributes",get:function(){return{"data-spinner":"",class:"spinner-three-bounce"}}}]),e.prototype.onBuffering=function(){this.show()},e.prototype.onBufferFull=function(){this.hide()},e.prototype.onStop=function(){this.hide()},e.prototype.show=function(){var t=this;null===this.showTimeout&&(this.showTimeout=setTimeout(function(){return t.$el.show()},300))},e.prototype.hide=function(){null!==this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.$el.hide()},e.prototype.render=function(){return this.$el.html(this.template()),this.container.$el.append(this.$el),this.$el.hide(),this.container.buffering&&this.onBuffering(),this},e}(p.default);e.default=_,t.exports=e.default},function(t,e){t.exports="

\n"},function(t,e,n){var i=n(179);"string"==typeof i&&(i=[[t.i,i,""]]);var o={singleton:!0,hmr:!0};o.transform=void 0;n(9)(i,o);i.locals&&(t.exports=i.locals)},function(t,e,n){e=t.exports=n(7)(void 0),e.push([t.i,".spinner-three-bounce[data-spinner]{position:absolute;margin:0 auto;width:70px;text-align:center;z-index:999;left:0;right:0;margin-left:auto;margin-right:auto;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.spinner-three-bounce[data-spinner]>div{width:18px;height:18px;background-color:#fff;border-radius:100%;display:inline-block;-webkit-animation:bouncedelay 1.4s infinite ease-in-out;animation:bouncedelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.spinner-three-bounce[data-spinner] [data-bounce1]{-webkit-animation-delay:-.32s;animation-delay:-.32s}.spinner-three-bounce[data-spinner] [data-bounce2]{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes bouncedelay{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes bouncedelay{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(181),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=o.default,t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(3),u=i(l),c=n(2),d=i(c),f=n(36),p=i(f),h=n(4),y=i(h),g=n(6),m=i(g),v=function(t){function e(n){(0,r.default)(this,e);var i=(0,s.default)(this,t.call(this,n));return i.setInitialAttrs(),i.reportInterval=i.options.reportInterval||5e3,i.state="IDLE",i}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"stats"}}]),e.prototype.bindEvents=function(){this.listenTo(this.container.playback,y.default.PLAYBACK_PLAY,this.onPlay),this.listenTo(this.container,y.default.CONTAINER_STOP,this.onStop),this.listenTo(this.container,y.default.CONTAINER_ENDED,this.onStop),this.listenTo(this.container,y.default.CONTAINER_DESTROYED,this.onStop),this.listenTo(this.container,y.default.CONTAINER_STATE_BUFFERING,this.onBuffering),this.listenTo(this.container,y.default.CONTAINER_STATE_BUFFERFULL,this.onBufferFull),this.listenTo(this.container,y.default.CONTAINER_STATS_ADD,this.onStatsAdd),this.listenTo(this.container,y.default.CONTAINER_BITRATE,this.onStatsAdd),this.listenTo(this.container.playback,y.default.PLAYBACK_STATS_ADD,this.onStatsAdd)},e.prototype.setInitialAttrs=function(){this.firstPlay=!0,this.startupTime=0,this.rebufferingTime=0,this.watchingTime=0,this.rebuffers=0,this.externalMetrics={}},e.prototype.onPlay=function(){this.state="PLAYING",this.watchingTimeInit=Date.now(),this.intervalId||(this.intervalId=setInterval(this.report.bind(this),this.reportInterval))},e.prototype.onStop=function(){clearInterval(this.intervalId),this.report(),this.intervalId=void 0,this.state="STOPPED"},e.prototype.onBuffering=function(){this.firstPlay?this.startupTimeInit=Date.now():this.rebufferingTimeInit=Date.now(),this.state="BUFFERING",this.rebuffers++},e.prototype.onBufferFull=function(){this.firstPlay&&this.startupTimeInit?(this.firstPlay=!1,this.startupTime=Date.now()-this.startupTimeInit,this.watchingTimeInit=Date.now()):this.rebufferingTimeInit&&(this.rebufferingTime+=this.getRebufferingTime()),this.rebufferingTimeInit=void 0,this.state="PLAYING"},e.prototype.getRebufferingTime=function(){return Date.now()-this.rebufferingTimeInit},e.prototype.getWatchingTime=function(){return Date.now()-this.watchingTimeInit-this.rebufferingTime},e.prototype.isRebuffering=function(){return!!this.rebufferingTimeInit},e.prototype.onStatsAdd=function(t){m.default.extend(this.externalMetrics,t)},e.prototype.getStats=function(){var t={startupTime:this.startupTime,rebuffers:this.rebuffers,rebufferingTime:this.isRebuffering()?this.rebufferingTime+this.getRebufferingTime():this.rebufferingTime,watchingTime:this.isRebuffering()?this.getWatchingTime()-this.getRebufferingTime():this.getWatchingTime()};return m.default.extend(t,this.externalMetrics),t},e.prototype.report=function(){this.container.statsReport(this.getStats())},e}(p.default);e.default=v,t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(183),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=o.default,t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(3),u=i(l),c=n(2),d=i(c),f=n(35),p=i(f),h=n(4),y=i(h),g=n(10),m=i(g),v=n(184),b=i(v);n(185);var _=function(t){function e(n){(0,r.default)(this,e);var i=(0,s.default)(this,t.call(this,n));return i.configure(),i}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"watermark"}},{key:"template",get:function(){return(0,m.default)(b.default)}}]),e.prototype.bindEvents=function(){this.listenTo(this.container,y.default.CONTAINER_PLAY,this.onPlay),this.listenTo(this.container,y.default.CONTAINER_STOP,this.onStop),this.listenTo(this.container,y.default.CONTAINER_OPTIONS_CHANGE,this.configure)},e.prototype.configure=function(){this.position=this.options.position||"bottom-right",this.options.watermark?(this.imageUrl=this.options.watermark,this.imageLink=this.options.watermarkLink,this.render()):this.$el.remove()},e.prototype.onPlay=function(){this.hidden||this.$el.show()},e.prototype.onStop=function(){this.$el.hide()},e.prototype.render=function(){this.$el.hide();var t={position:this.position,imageUrl:this.imageUrl,imageLink:this.imageLink};return this.$el.html(this.template(t)),this.container.$el.append(this.$el),this},e}(p.default);e.default=_,t.exports=e.default},function(t,e){t.exports="
>\n<% if(typeof imageLink !== 'undefined') { %>\n\">\n<% } %>\n\">\n<% if(typeof imageLink !== 'undefined') { %>\n\n<% } %>\n
\n"},function(t,e,n){var i=n(186);"string"==typeof i&&(i=[[t.i,i,""]]);var o={singleton:!0,hmr:!0};o.transform=void 0;n(9)(i,o);i.locals&&(t.exports=i.locals)},function(t,e,n){e=t.exports=n(7)(void 0),e.push([t.i,"[data-watermark]{position:absolute;min-width:70px;max-width:200px;width:12%;text-align:center;z-index:10}[data-watermark] a{outline:none;cursor:pointer}[data-watermark] img{max-width:100%}[data-watermark-bottom-left]{bottom:10px;left:10px}[data-watermark-bottom-right]{bottom:10px;right:42px}[data-watermark-top-left]{top:10px;left:10px}[data-watermark-top-right]{top:10px;right:37px}",""])},function(t,e,n){"use strict";(function(i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(0),a=o(r),s=n(1),l=o(s),u=n(3),c=o(u),d=n(2),f=o(d),p=n(35),h=o(p),y=n(4),g=o(y),m=n(10),v=o(m),b=n(12),_=o(b),E=n(188),T=o(E),C=n(57),k=o(C);n(189);var A=function(t){function e(n){(0,a.default)(this,e);var o=(0,l.default)(this,t.call(this,n));return o.hasStartedPlaying=!1,o.playRequested=!1,o.render(),i.nextTick(function(){return o.update()}),o}return(0,f.default)(e,t),(0,c.default)(e,[{key:"name",get:function(){return"poster"}},{key:"template",get:function(){return(0,v.default)(T.default)}},{key:"shouldRender",get:function(){var t=!(!this.options.poster||!this.options.poster.showForNoOp);return"html_img"!==this.container.playback.name&&(this.container.playback.getPlaybackType()!==_.default.NO_OP||t)}},{key:"attributes",get:function(){return{class:"player-poster","data-poster":""}}},{key:"events",get:function(){return{click:"clicked"}}},{key:"showOnVideoEnd",get:function(){return!this.options.poster||this.options.poster.showOnVideoEnd||void 0===this.options.poster.showOnVideoEnd}}]),e.prototype.bindEvents=function(){this.listenTo(this.container,g.default.CONTAINER_STOP,this.onStop),this.listenTo(this.container,g.default.CONTAINER_PLAY,this.onPlay),this.listenTo(this.container,g.default.CONTAINER_STATE_BUFFERING,this.update),this.listenTo(this.container,g.default.CONTAINER_STATE_BUFFERFULL,this.update),this.listenTo(this.container,g.default.CONTAINER_OPTIONS_CHANGE,this.render),this.showOnVideoEnd&&this.listenTo(this.container,g.default.CONTAINER_ENDED,this.onStop)},e.prototype.stopListening=function(){t.prototype.stopListening.call(this)},e.prototype.onPlay=function(){this.hasStartedPlaying=!0,this.update()},e.prototype.onStop=function(){this.hasStartedPlaying=!1,this.playRequested=!1,this.update()},e.prototype.showPlayButton=function(t){!t||this.options.chromeless&&!this.options.allowUserInteraction?(this.$playButton.hide(),this.$el.removeClass("clickable")):(this.$playButton.show(),this.$el.addClass("clickable"))},e.prototype.clicked=function(){return this.options.chromeless&&!this.options.allowUserInteraction||(this.playRequested=!0,this.update(),this.container.play()),!1},e.prototype.shouldHideOnPlay=function(){return!this.container.playback.isAudioOnly},e.prototype.update=function(){if(this.shouldRender){var t=!this.playRequested&&!this.hasStartedPlaying&&!this.container.buffering;this.showPlayButton(t),this.hasStartedPlaying?(this.container.enableMediaControl(),this.shouldHideOnPlay()&&this.$el.hide()):(this.container.disableMediaControl(),this.$el.show())}},e.prototype.render=function(){if(this.shouldRender){this.$el.html(this.template());if(this.options.poster&&void 0===this.options.poster.custom){var t=this.options.poster.url||this.options.poster;this.$el.css({"background-image":"url("+t+")"})}else this.options.poster&&this.$el.css({background:this.options.poster.custom});this.container.$el.append(this.el),this.$playWrapper=this.$el.find(".play-wrapper"),this.$playWrapper.append(k.default),this.$playButton=this.$playWrapper.find("svg"),this.$playButton.addClass("poster-icon"),this.$playButton.attr("data-poster","");var e=this.options.mediacontrol&&this.options.mediacontrol.buttons;return e&&this.$el.find("svg path").css("fill",e),this.options.mediacontrol&&this.options.mediacontrol.buttons&&(e=this.options.mediacontrol.buttons,this.$playButton.css("color",e)),this.update(),this}},e}(h.default);e.default=A,t.exports=e.default}).call(e,n(55))},function(t,e){t.exports='
\n'},function(t,e,n){var i=n(190);"string"==typeof i&&(i=[[t.i,i,""]]);var o={singleton:!0,hmr:!0};o.transform=void 0;n(9)(i,o);i.locals&&(t.exports=i.locals)},function(t,e,n){e=t.exports=n(7)(void 0),e.push([t.i,".player-poster[data-poster]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;height:100%;width:100%;z-index:998;top:0;left:0;background-color:#000;background-size:cover;background-repeat:no-repeat;background-position:50% 50%}.player-poster[data-poster].clickable{cursor:pointer}.player-poster[data-poster]:hover .play-wrapper[data-poster]{opacity:1}.player-poster[data-poster] .play-wrapper[data-poster]{width:100%;height:25%;margin:0 auto;opacity:.75;transition:opacity .1s ease}.player-poster[data-poster] .play-wrapper[data-poster] svg{height:100%}.player-poster[data-poster] .play-wrapper[data-poster] svg path{fill:#fff}",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(192),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=o.default,t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(3),u=i(l),c=n(2),d=i(c),f=n(36),p=i(f),h=n(4),y=i(h),g=function(t){function e(n){(0,r.default)(this,e);var i=(0,s.default)(this,t.call(this,n));return i.container.options.gaAccount&&(i.account=i.container.options.gaAccount,i.trackerName=i.container.options.gaTrackerName?i.container.options.gaTrackerName+".":"Clappr.",i.domainName=i.container.options.gaDomainName,i.currentHDState=void 0,i.embedScript()),i}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"google_analytics"}}]),e.prototype.embedScript=function(){var t=this;if(window._gat)this.addEventListeners();else{var e=document.createElement("script");e.setAttribute("type","text/javascript"),e.setAttribute("async","async"),e.setAttribute("src","//www.google-analytics.com/ga.js"),e.onload=function(){return t.addEventListeners()},document.body.appendChild(e)}},e.prototype.addEventListeners=function(){var t=this;this.container&&(this.listenTo(this.container,y.default.CONTAINER_READY,this.onReady),this.listenTo(this.container,y.default.CONTAINER_PLAY,this.onPlay),this.listenTo(this.container,y.default.CONTAINER_STOP,this.onStop),this.listenTo(this.container,y.default.CONTAINER_PAUSE,this.onPause),this.listenTo(this.container,y.default.CONTAINER_ENDED,this.onEnded),this.listenTo(this.container,y.default.CONTAINER_STATE_BUFFERING,this.onBuffering),this.listenTo(this.container,y.default.CONTAINER_STATE_BUFFERFULL,this.onBufferFull),this.listenTo(this.container,y.default.CONTAINER_ERROR,this.onError),this.listenTo(this.container,y.default.CONTAINER_PLAYBACKSTATE,this.onPlaybackChanged),this.listenTo(this.container,y.default.CONTAINER_VOLUME,function(e){return t.onVolumeChanged(e)}),this.listenTo(this.container,y.default.CONTAINER_SEEK,function(e){return t.onSeek(e)}),this.listenTo(this.container,y.default.CONTAINER_FULL_SCREEN,this.onFullscreen),this.listenTo(this.container,y.default.CONTAINER_HIGHDEFINITIONUPDATE,this.onHD),this.listenTo(this.container,y.default.CONTAINER_PLAYBACKDVRSTATECHANGED,this.onDVR)),_gaq.push([this.trackerName+"_setAccount",this.account]),this.domainName&&_gaq.push([this.trackerName+"_setDomainName",this.domainName])},e.prototype.onReady=function(){this.push(["Video","Playback",this.container.playback.name])},e.prototype.onPlay=function(){this.push(["Video","Play",this.container.playback.src])},e.prototype.onStop=function(){this.push(["Video","Stop",this.container.playback.src])},e.prototype.onEnded=function(){this.push(["Video","Ended",this.container.playback.src])},e.prototype.onBuffering=function(){this.push(["Video","Buffering",this.container.playback.src])},e.prototype.onBufferFull=function(){this.push(["Video","Bufferfull",this.container.playback.src])},e.prototype.onError=function(){this.push(["Video","Error",this.container.playback.src])},e.prototype.onHD=function(t){var e=t?"ON":"OFF";e!==this.currentHDState&&(this.currentHDState=e,this.push(["Video","HD - "+e,this.container.playback.src]))},e.prototype.onPlaybackChanged=function(t){null!==t.type&&this.push(["Video","Playback Type - "+t.type,this.container.playback.src])},e.prototype.onDVR=function(t){var e=t?"ON":"OFF";this.push(["Interaction","DVR - "+e,this.container.playback.src])},e.prototype.onPause=function(){this.push(["Video","Pause",this.container.playback.src])},e.prototype.onSeek=function(){this.push(["Video","Seek",this.container.playback.src])},e.prototype.onVolumeChanged=function(){this.push(["Interaction","Volume",this.container.playback.src])},e.prototype.onFullscreen=function(){this.push(["Interaction","Fullscreen",this.container.playback.src])},e.prototype.push=function(t){var e=[this.trackerName+"_trackEvent"].concat(t);_gaq.push(e)},e}(p.default);e.default=g,t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(194),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=o.default,t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(3),u=i(l),c=n(2),d=i(c),f=n(36),p=i(f),h=n(4),y=i(h),g=n(12),m=i(g),v=function(t){function e(n){return(0,r.default)(this,e),(0,s.default)(this,t.call(this,n))}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"click_to_pause"}}]),e.prototype.bindEvents=function(){this.listenTo(this.container,y.default.CONTAINER_CLICK,this.click),this.listenTo(this.container,y.default.CONTAINER_SETTINGSUPDATE,this.settingsUpdate)},e.prototype.click=function(){(this.container.getPlaybackType()!==m.default.LIVE||this.container.isDvrEnabled())&&(this.container.isPlaying()?this.container.pause():this.container.play())},e.prototype.settingsUpdate=function(){var t=this.container.getPlaybackType()!==m.default.LIVE||this.container.isDvrEnabled();if(t!==this.pointerEnabled){var e=t?"addClass":"removeClass";this.container.$el[e]("pointer-enabled"),this.pointerEnabled=t}},e}(p.default);e.default=v,t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(196),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=o.default,t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(3),u=i(l),c=n(2),d=i(c),f=n(37),p=i(f),h=n(10),y=i(h),g=n(12),m=i(g),v=n(4),b=i(v),_=n(197),E=i(_);n(198);var T=function(t){function e(n){(0,r.default)(this,e);var i=(0,s.default)(this,t.call(this,n));return i.settingsUpdate(),i}return(0,d.default)(e,t),(0,u.default)(e,[{key:"template",get:function(){return(0,y.default)(E.default)}},{key:"name",get:function(){return"dvr_controls"}},{key:"events",get:function(){return{"click .live-button":"click"}}},{key:"attributes",get:function(){return{class:"dvr-controls","data-dvr-controls":""}}}]),e.prototype.bindEvents=function(){this.listenTo(this.core.mediaControl,b.default.MEDIACONTROL_CONTAINERCHANGED,this.containerChanged),this.listenTo(this.core.mediaControl,b.default.MEDIACONTROL_RENDERED,this.settingsUpdate),this.listenTo(this.core,b.default.CORE_OPTIONS_CHANGE,this.render),this.core.getCurrentContainer()&&(this.listenToOnce(this.core.getCurrentContainer(),b.default.CONTAINER_TIMEUPDATE,this.render),this.listenTo(this.core.getCurrentContainer(),b.default.CONTAINER_PLAYBACKDVRSTATECHANGED,this.dvrChanged))},e.prototype.containerChanged=function(){this.stopListening(),this.bindEvents()},e.prototype.dvrChanged=function(t){this.core.getPlaybackType()===m.default.LIVE&&(this.settingsUpdate(),this.core.mediaControl.$el.addClass("live"),t?(this.core.mediaControl.$el.addClass("dvr"),this.core.mediaControl.$el.find(".media-control-indicator[data-position], .media-control-indicator[data-duration]").hide()):this.core.mediaControl.$el.removeClass("dvr"))},e.prototype.click=function(){var t=this.core.mediaControl,e=t.container;e.isPlaying()||e.play(),t.$el.hasClass("dvr")&&e.seek(e.getDuration())},e.prototype.settingsUpdate=function(){var t=this;this.stopListening(),this.core.mediaControl.$el.removeClass("live"),this.shouldRender()&&(this.render(),this.$el.click(function(){return t.click()})),this.bindEvents()},e.prototype.shouldRender=function(){return(void 0===this.core.options.useDvrControls||!!this.core.options.useDvrControls)&&this.core.getPlaybackType()===m.default.LIVE},e.prototype.render=function(){return this.$el.html(this.template({live:this.core.i18n.t("live"),backToLive:this.core.i18n.t("back_to_live")})),this.shouldRender()&&(this.core.mediaControl.$el.addClass("live"),this.core.mediaControl.$(".media-control-left-panel[data-media-control]").append(this.$el)),this},e}(p.default);e.default=T,t.exports=e.default},function(t,e){t.exports='
<%= live %>
\n\n'},function(t,e,n){var i=n(199);"string"==typeof i&&(i=[[t.i,i,""]]);var o={singleton:!0,hmr:!0};o.transform=void 0;n(9)(i,o);i.locals&&(t.exports=i.locals)},function(t,e,n){e=t.exports=n(7)(void 0),e.push([t.i,'.dvr-controls[data-dvr-controls]{display:inline-block;float:left;color:#fff;line-height:32px;font-size:10px;font-weight:700;margin-left:6px}.dvr-controls[data-dvr-controls] .live-info{cursor:default;font-family:Roboto,Open Sans,Arial,sans-serif;text-transform:uppercase}.dvr-controls[data-dvr-controls] .live-info:before{content:"";display:inline-block;position:relative;width:7px;height:7px;border-radius:3.5px;margin-right:3.5px;background-color:#ff0101}.dvr-controls[data-dvr-controls] .live-info.disabled{opacity:.3}.dvr-controls[data-dvr-controls] .live-info.disabled:before{background-color:#fff}.dvr-controls[data-dvr-controls] .live-button{cursor:pointer;outline:none;display:none;border:0;color:#fff;background-color:transparent;height:32px;padding:0;opacity:.7;font-family:Roboto,Open Sans,Arial,sans-serif;text-transform:uppercase;transition:all .1s ease}.dvr-controls[data-dvr-controls] .live-button:before{content:"";display:inline-block;position:relative;width:7px;height:7px;border-radius:3.5px;margin-right:3.5px;background-color:#fff}.dvr-controls[data-dvr-controls] .live-button:hover{opacity:1;text-shadow:hsla(0,0%,100%,.75) 0 0 5px}.dvr .dvr-controls[data-dvr-controls] .live-info{display:none}.dvr .dvr-controls[data-dvr-controls] .live-button{display:block}.dvr.media-control.live[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar]{background-color:#005aff}.media-control.live[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar]{background-color:#ff0101}',""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(201),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=o.default,t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(3),u=i(l),c=n(2),d=i(c),f=n(37),p=i(f),h=n(10),y=i(h),g=n(4),m=i(g),v=n(202),b=i(v),_=n(203),E=i(_);n(204);var T=function(t){function e(n){(0,r.default)(this,e);var i=(0,s.default)(this,t.call(this,n)),o=n.options.closedCaptionsConfig;return i._title=o&&o.title?o.title:null,i._ariaLabel=o&&o.ariaLabel?o.ariaLabel:"cc-button",i._labelCb=o&&o.labelCallback&&"function"==typeof o.labelCallback?o.labelCallback:function(t){return t.name},i}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"closed_captions"}},{key:"template",get:function(){return(0,y.default)(E.default)}},{key:"events",get:function(){return{"click [data-cc-button]":"toggleContextMenu","click [data-cc-select]":"onTrackSelect"}}},{key:"attributes",get:function(){return{class:"cc-controls","data-cc-controls":""}}}]),e.prototype.bindEvents=function(){this.listenTo(this.core.mediaControl,m.default.MEDIACONTROL_CONTAINERCHANGED,this.containerChanged),this.listenTo(this.core.mediaControl,m.default.MEDIACONTROL_RENDERED,this.render),this.listenTo(this.core.mediaControl,m.default.MEDIACONTROL_HIDE,this.hideContextMenu),this.container=this.core.getCurrentContainer(),this.container&&(this.listenTo(this.container,m.default.CONTAINER_SUBTITLE_AVAILABLE,this.onSubtitleAvailable),this.listenTo(this.container,m.default.CONTAINER_SUBTITLE_CHANGED,this.onSubtitleChanged),this.listenTo(this.container,m.default.CONTAINER_STOP,this.onContainerStop))},e.prototype.onContainerStop=function(){this.ccAvailable(!1)},e.prototype.containerChanged=function(){this.ccAvailable(!1),this.stopListening(),this.bindEvents()},e.prototype.onSubtitleAvailable=function(){this.renderCcButton(),this.ccAvailable(!0)},e.prototype.onSubtitleChanged=function(t){this.setCurrentContextMenuElement(t.id)},e.prototype.onTrackSelect=function(t){var e=parseInt(t.target.dataset.ccSelect,10);return this.container.closedCaptionsTrackId=e,this.hideContextMenu(),t.stopPropagation(),!1},e.prototype.ccAvailable=function(t){var e=t?"addClass":"removeClass";this.$el[e]("available")},e.prototype.toggleContextMenu=function(){this.$el.find("ul").toggle()},e.prototype.hideContextMenu=function(){this.$el.find("ul").hide()},e.prototype.contextMenuElement=function(t){return this.$el.find("ul a"+(isNaN(t)?"":'[data-cc-select="'+t+'"]')).parent()},e.prototype.setCurrentContextMenuElement=function(t){if(this._trackId!==t){this.contextMenuElement().removeClass("current"),this.contextMenuElement(t).addClass("current");var e=t>-1?"addClass":"removeClass";this.$ccButton[e]("enabled"),this._trackId=t}},e.prototype.renderCcButton=function(){for(var t=this.container?this.container.closedCaptionsTracks:[],e=0;e'},function(t,e){t.exports='\n\n'},function(t,e,n){var i=n(205);"string"==typeof i&&(i=[[t.i,i,""]]);var o={singleton:!0,hmr:!0};o.transform=void 0;n(9)(i,o);i.locals&&(t.exports=i.locals)},function(t,e,n){e=t.exports=n(7)(void 0),e.push([t.i,".cc-controls[data-cc-controls]{float:right;position:relative;display:none}.cc-controls[data-cc-controls].available{display:block}.cc-controls[data-cc-controls] .cc-button{padding:6px!important}.cc-controls[data-cc-controls] .cc-button.enabled{display:block;opacity:1}.cc-controls[data-cc-controls] .cc-button.enabled:hover{opacity:1;text-shadow:none}.cc-controls[data-cc-controls]>ul{list-style-type:none;position:absolute;bottom:25px;border:1px solid #000;display:none;background-color:#e6e6e6}.cc-controls[data-cc-controls] li{font-size:10px}.cc-controls[data-cc-controls] li[data-title]{background-color:#c3c2c2;padding:5px}.cc-controls[data-cc-controls] li a{color:#444;padding:2px 10px;display:block;text-decoration:none}.cc-controls[data-cc-controls] li a:hover{background-color:#555;color:#fff}.cc-controls[data-cc-controls] li a:hover a{color:#fff;text-decoration:none}.cc-controls[data-cc-controls] li.current a{color:red}",""])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(207),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=o.default,t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(3),u=i(l),c=n(2),d=i(c),f=n(30),p=i(f),h=n(4),y=i(h),g=n(6),m=i(g),v=n(57),b=i(v),_=n(76),E=i(_),T=(0,m.default)('link[rel="shortcut icon"]'),C=function(t){function e(n){(0,r.default)(this,e);var i=(0,s.default)(this,t.call(this,n));return i._container=null,i.configure(),i}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"favicon"}},{key:"oldIcon",get:function(){return T}}]),e.prototype.configure=function(){this.core.options.changeFavicon?this.enabled||(this.stopListening(this.core,y.default.CORE_OPTIONS_CHANGE),this.enable()):this.enabled&&(this.disable(),this.listenTo(this.core,y.default.CORE_OPTIONS_CHANGE,this.configure))},e.prototype.bindEvents=function(){this.listenTo(this.core,y.default.CORE_OPTIONS_CHANGE,this.configure),this.listenTo(this.core.mediaControl,y.default.MEDIACONTROL_CONTAINERCHANGED,this.containerChanged),this.core.mediaControl.container&&this.containerChanged()},e.prototype.containerChanged=function(){this._container&&this.stopListening(this._container),this._container=this.core.mediaControl.container,this.listenTo(this._container,y.default.CONTAINER_PLAY,this.setPlayIcon),this.listenTo(this._container,y.default.CONTAINER_PAUSE,this.setPauseIcon),this.listenTo(this._container,y.default.CONTAINER_STOP,this.resetIcon),this.listenTo(this._container,y.default.CONTAINER_ENDED,this.resetIcon),this.listenTo(this._container,y.default.CONTAINER_ERROR,this.resetIcon),this.resetIcon()},e.prototype.disable=function(){t.prototype.disable.call(this),this.resetIcon()},e.prototype.destroy=function(){t.prototype.destroy.call(this),this.resetIcon()},e.prototype.createIcon=function(t){var e=(0,m.default)("");e[0].width=16,e[0].height=16;var n=e[0].getContext("2d");n.fillStyle="#000";var i=(0,m.default)(t).find("path").attr("d"),o=new Path2D(i);n.fill(o);var r=(0,m.default)('');return r.attr("href",e[0].toDataURL("image/png")),r},e.prototype.setPlayIcon=function(){this.playIcon||(this.playIcon=this.createIcon(b.default)),this.changeIcon(this.playIcon)},e.prototype.setPauseIcon=function(){this.pauseIcon||(this.pauseIcon=this.createIcon(E.default)),this.changeIcon(this.pauseIcon)},e.prototype.resetIcon=function(){(0,m.default)('link[rel="shortcut icon"]').remove(),(0,m.default)("head").append(this.oldIcon)},e.prototype.changeIcon=function(t){t&&((0,m.default)('link[rel="shortcut icon"]').remove(),(0,m.default)("head").append(t))},e}(p.default);e.default=C,t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(209),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=o.default,t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(3),u=i(l),c=n(2),d=i(c),f=n(5),p=n(37),h=i(p),y=n(10),g=i(y),m=n(4),v=i(m),b=n(12),_=i(b),E=n(210),T=i(E);n(211);var C=function(t){function e(n){(0,r.default)(this,e);var i=(0,s.default)(this,t.call(this,n));return i.hoveringOverSeekBar=!1,i.hoverPosition=null,i.duration=null,i.actualLiveTime=!!i.mediaControl.options.actualLiveTime,i.actualLiveTime&&(i.mediaControl.options.actualLiveServerTime?i.actualLiveServerTimeDiff=(new Date).getTime()-new Date(i.mediaControl.options.actualLiveServerTime).getTime():i.actualLiveServerTimeDiff=0),i}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"seek_time"}},{key:"template",get:function(){return(0,g.default)(T.default)}},{key:"attributes",get:function(){return{class:"seek-time","data-seek-time":""}}},{key:"mediaControl",get:function(){return this.core.mediaControl}},{key:"mediaControlContainer",get:function(){return this.mediaControl.container}},{key:"isLiveStreamWithDvr",get:function(){return this.mediaControlContainer&&this.mediaControlContainer.getPlaybackType()===_.default.LIVE&&this.mediaControlContainer.isDvrEnabled()}},{key:"durationShown",get:function(){return this.isLiveStreamWithDvr&&!this.useActualLiveTime}},{key:"useActualLiveTime",get:function(){return this.actualLiveTime&&this.isLiveStreamWithDvr}}]),e.prototype.bindEvents=function(){this.listenTo(this.mediaControl,v.default.MEDIACONTROL_RENDERED,this.render),this.listenTo(this.mediaControl,v.default.MEDIACONTROL_MOUSEMOVE_SEEKBAR,this.showTime),this.listenTo(this.mediaControl,v.default.MEDIACONTROL_MOUSELEAVE_SEEKBAR,this.hideTime),this.listenTo(this.mediaControl,v.default.MEDIACONTROL_CONTAINERCHANGED,this.onContainerChanged),this.mediaControlContainer&&(this.listenTo(this.mediaControlContainer,v.default.CONTAINER_PLAYBACKDVRSTATECHANGED,this.update),this.listenTo(this.mediaControlContainer,v.default.CONTAINER_TIMEUPDATE,this.updateDuration))},e.prototype.onContainerChanged=function(){this.stopListening(),this.bindEvents()},e.prototype.updateDuration=function(t){this.duration=t.total,this.update()},e.prototype.showTime=function(t){this.hoveringOverSeekBar=!0,this.calculateHoverPosition(t),this.update()},e.prototype.hideTime=function(){this.hoveringOverSeekBar=!1,this.update()},e.prototype.calculateHoverPosition=function(t){var e=t.pageX-this.mediaControl.$seekBarContainer.offset().left;this.hoverPosition=Math.min(1,Math.max(e/this.mediaControl.$seekBarContainer.width(),0))},e.prototype.getSeekTime=function(){var t=void 0,e=void 0;if(this.useActualLiveTime){var n=new Date((new Date).getTime()-this.actualLiveServerTimeDiff);e=(new Date(n)-n.setHours(0,0,0,0))/1e3,t=e-this.duration+this.hoverPosition*this.duration,t<0&&(t+=86400)}else t=this.hoverPosition*this.duration;return{seekTime:t,secondsSinceMidnight:e}},e.prototype.update=function(){if(this.rendered)if(this.shouldBeVisible()){var t=this.getSeekTime(),e=(0,f.formatTime)(t.seekTime,this.useActualLiveTime);if(e!==this.displayedSeekTime&&(this.$seekTimeEl.text(e),this.displayedSeekTime=e),this.durationShown){this.$durationEl.show();var n=(0,f.formatTime)(this.actualLiveTime?t.secondsSinceMidnight:this.duration,this.actualLiveTime);n!==this.displayedDuration&&(this.$durationEl.text(n),this.displayedDuration=n)}else this.$durationEl.hide();this.$el.show();var i=this.mediaControl.$seekBarContainer.width(),o=this.$el.width(),r=this.hoverPosition*i;r-=o/2,r=Math.max(0,Math.min(r,i-o)),this.$el.css("left",r)}else this.$el.hide(),this.$el.css("left","-100%")},e.prototype.shouldBeVisible=function(){return this.mediaControlContainer&&this.mediaControlContainer.settings.seekEnabled&&this.hoveringOverSeekBar&&null!==this.hoverPosition&&null!==this.duration},e.prototype.render=function(){this.rendered=!0,this.displayedDuration=null,this.displayedSeekTime=null,this.$el.html(this.template()),this.$el.hide(),this.mediaControl.$el.append(this.el),this.$seekTimeEl=this.$el.find("[data-seek-time]"),this.$durationEl=this.$el.find("[data-duration]"),this.$durationEl.hide(),this.update()},e}(h.default);e.default=C,t.exports=e.default},function(t,e){t.exports="\n\n"},function(t,e,n){var i=n(212);"string"==typeof i&&(i=[[t.i,i,""]]);var o={singleton:!0,hmr:!0};o.transform=void 0;n(9)(i,o);i.locals&&(t.exports=i.locals)},function(t,e,n){e=t.exports=n(7)(void 0),e.push([t.i,'.seek-time[data-seek-time]{position:absolute;white-space:nowrap;height:20px;line-height:20px;font-size:0;left:-100%;bottom:55px;background-color:rgba(2,2,2,.5);z-index:9999;transition:opacity .1s ease}.seek-time[data-seek-time].hidden[data-seek-time]{opacity:0}.seek-time[data-seek-time] [data-seek-time]{display:inline-block;color:#fff;font-size:10px;padding-left:7px;padding-right:7px;vertical-align:top}.seek-time[data-seek-time] [data-duration]{display:inline-block;color:hsla(0,0%,100%,.5);font-size:10px;padding-right:7px;vertical-align:top}.seek-time[data-seek-time] [data-duration]:before{content:"|";margin-right:7px}',""])},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(3),s=i(a),l=n(1),u=i(l),c=n(2),d=i(c),f=n(30),p=i(f),h=n(4),y=i(h),g=function(t){function e(){return(0,r.default)(this,e),(0,u.default)(this,t.apply(this,arguments))}return(0,d.default)(e,t),e.prototype.bindEvents=function(){this.listenTo(this.core,y.default.CORE_CONTAINERS_CREATED,this.onContainersCreated)},e.prototype.onContainersCreated=function(){var t=this.core.containers.filter(function(t){return"no_op"!==t.playback.name})[0]||this.core.containers[0];t&&this.core.containers.forEach(function(e){e!==t&&e.destroy()})},(0,s.default)(e,[{key:"name",get:function(){return"sources"}}]),e}(p.default);e.default=g,t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(3),s=i(a),l=n(1),u=i(l),c=n(2),d=i(c),f=n(4),p=i(f),h=n(30),y=i(h),g=n(5),m=function(t){function e(){return(0,r.default)(this,e),(0,u.default)(this,t.apply(this,arguments))}return(0,d.default)(e,t),e.prototype.bindEvents=function(){this.listenTo(this.core.mediaControl,p.default.MEDIACONTROL_CONTAINERCHANGED,this.containerChanged);var t=this.core.getCurrentContainer();t&&(this.listenTo(t,p.default.CONTAINER_ENDED,this.ended),this.listenTo(t,p.default.CONTAINER_STOP,this.ended))},e.prototype.containerChanged=function(){this.stopListening(),this.bindEvents()},e.prototype.ended=function(){(void 0===this.core.options.exitFullscreenOnEnd||this.core.options.exitFullscreenOnEnd)&&g.Fullscreen.isFullscreen()&&this.core.toggleFullscreen()},(0,s.default)(e,[{key:"name",get:function(){return"end_video"}}]),e}(y.default);e.default=m,t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(31),r=i(o),a=n(0),s=i(a),l=n(1),u=i(l),c=n(3),d=i(c),f=n(2),p=i(f),h=n(5),y=n(6),g=i(y),m=n(30),v=i(m),b=function(t){function e(n){(0,s.default)(this,e);var i=(0,u.default)(this,t.call(this,n));return i._initializeMessages(),i}return(0,p.default)(e,t),(0,d.default)(e,[{key:"name",get:function(){return"strings"}}]),e.prototype.t=function(t){var e=this._language();return(e&&this._messages[e]||this._messages.en)[t]||t},e.prototype._language=function(){return this.core.options.language||(0,h.getBrowserLanguage)()},e.prototype._initializeMessages=function(){var t={en:{live:"live",back_to_live:"back to live",disabled:"Disabled",playback_not_supported:"Your browser does not support the playback of this video. Please try using a different browser."},pt:{live:"ao vivo",back_to_live:"voltar para o ao vivo",disabled:"Desativado",playback_not_supported:"Seu navegador não supporta a reprodução deste video. Por favor, tente usar um navegador diferente."},es:{live:"vivo",back_to_live:"volver en vivo",disabled:"Discapacitado",playback_not_supported:"Su navegador no soporta la reproducción de un video. Por favor, trate de usar un navegador diferente."},ru:{live:"прямой эфир",back_to_live:"к прямому эфиру",disabled:"Отключено",playback_not_supported:"Ваш браузер не поддерживает воспроизведение этого видео. Пожалуйста, попробуйте другой браузер."},fr:{live:"en direct",disabled:"Désactivé",back_to_live:"retour au direct",playback_not_supported:"Votre navigateur ne supporte pas la lecture de cette vidéo. Merci de tenter sur un autre navigateur."},tr:{live:"canlı",back_to_live:"canlı yayına dön",disabled:"Engelli",playback_not_supported:"Tarayıcınız bu videoyu oynatma desteğine sahip değil. Lütfen farklı bir tarayıcı ile deneyin."},et:{live:"Otseülekanne",back_to_live:"Tagasi otseülekande juurde",disabled:"Keelatud",playback_not_supported:"Teie brauser ei toeta selle video taasesitust. Proovige kasutada muud brauserit."}},e=this.core.options.strings||{};this._messages=(0,r.default)(t).reduce(function(n,i){return n[i]=g.default.extend({},t[i],e[i]),n},{}),this._messages["pt-BR"]=this._messages.pt,this._messages["en-US"]=this._messages.en,this._messages["es-419"]=this._messages.es,this._messages["fr-FR"]=this._messages.fr,this._messages["tr-TR"]=this._messages.tr,this._messages["et-EE"]=this._messages.et},e}(v.default);e.default=b,t.exports=e.default}])}); +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Clappr=e():t.Clappr=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var o=n[i]={i:i,l:!1,exports:{}};return t[i].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=84)}([function(t,e,n){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";e.__esModule=!0;var i=n(33),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":(0,o.default)(e))&&"function"!=typeof e?t:e}},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=n(116),r=i(o),a=n(70),s=i(a),l=n(33),u=i(l);e.default=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":(0,u.default)(e)));t.prototype=(0,s.default)(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(r.default?(0,r.default)(t,e):t.__proto__=e)}},function(t,e,n){"use strict";e.__esModule=!0;var i=n(69),o=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default=function(){function t(t,e){for(var n=0;n0&&(a+=r+":",o<1&&(a+="00:")),(o&&o>0||e)&&(a+=("0"+o).slice(-2)+":"),a+=("0"+i).slice(-2)+":",a+=("0"+n).slice(-2),a.trim()}function s(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"t",e=0,n=P.params[t]||P.hashParams[t]||"",i=n.match(/[0-9]+[hms]+/g)||[];return i.length>0?function(){var t={h:3600,m:60,s:1};i.forEach(function(n){if(n){var i=n[n.length-1],o=parseInt(n.slice(0,n.length-1),10);e+=o*t[i]}})}():n&&(e=parseInt(n,10)),e}function l(t){return R[t]||(R[t]=0),t+ ++R[t]}function u(t){return t-parseFloat(t)+1>=0}function c(){var t=document.getElementsByTagName("script");return t.length?t[t.length-1].src:""}function d(){return window.navigator&&window.navigator.language}function f(){return window.performance&&window.performance.now?performance.now():Date.now()}function p(t,e){var n=t.indexOf(e);n>=0&&t.splice(n,1)}Object.defineProperty(e,"__esModule",{value:!0}),e.DomRecycler=e.cancelAnimationFrame=e.requestAnimationFrame=e.QueryString=e.Config=e.Fullscreen=void 0;var h=n(3),y=i(h),g=n(0),m=i(g),v=n(1),b=i(v),_=n(2),E=i(_),T=n(69),C=i(T),k=n(122),A=i(k);e.extend=r,e.formatTime=a,e.seekStringToSeconds=s,e.uniqueId=l,e.isNumber=u,e.currentScriptUrl=c,e.getBrowserLanguage=d,e.now=f,e.removeArrayItem=p,n(125);var O=n(24),w=i(O),x=n(6),I=i(x),N=e.Fullscreen={isFullscreen:function(){return!!(document.webkitFullscreenElement||document.webkitIsFullScreen||document.mozFullScreen||document.msFullscreenElement)},requestFullscreen:function(t){t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?t.webkitRequestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.msRequestFullscreen?t.msRequestFullscreen():t.querySelector&&t.querySelector("video")&&t.querySelector("video").webkitEnterFullScreen?t.querySelector("video").webkitEnterFullScreen():t.webkitEnterFullScreen&&t.webkitEnterFullScreen()},cancelFullscreen:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;t.exitFullscreen?t.exitFullscreen():t.webkitCancelFullScreen?t.webkitCancelFullScreen():t.webkitExitFullscreen?t.webkitExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.msExitFullscreen&&t.msExitFullscreen()},fullscreenEnabled:function(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled)}},S=e.Config=function(){function t(){(0,m.default)(this,t)}return t._defaultConfig=function(){return{volume:{value:100,parse:parseInt}}},t._defaultValueFor=function(t){try{return this._defaultConfig()[t].parse(this._defaultConfig()[t].value)}catch(t){return}},t._createKeyspace=function(t){return"clappr."+document.domain+"."+t},t.restore=function(t){return w.default.hasLocalstorage&&localStorage[this._createKeyspace(t)]?this._defaultConfig()[t].parse(localStorage[this._createKeyspace(t)]):this._defaultValueFor(t)},t.persist=function(t,e){if(w.default.hasLocalstorage)try{return localStorage[this._createKeyspace(t)]=e,!0}catch(t){return!1}},t}(),P=e.QueryString=function(){function t(){(0,m.default)(this,t)}return t.parse=function(t){for(var e=void 0,n=/\+/g,i=/([^&=]+)=?([^&]*)/g,o=function(t){return decodeURIComponent(t.replace(n," "))},r={};e=i.exec(t);)r[o(e[1]).toLowerCase()]=o(e[2]);return r},(0,y.default)(t,null,[{key:"params",get:function(){var t=window.location.search.substring(1);return t!==this.query&&(this._urlParams=this.parse(t),this.query=t),this._urlParams}},{key:"hashParams",get:function(){var t=window.location.hash.substring(1);return t!==this.hash&&(this._hashParams=this.parse(t),this.hash=t),this._hashParams}}]),t}(),R={},L=e.requestAnimationFrame=(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}).bind(window),D=e.cancelAnimationFrame=(window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.clearTimeout).bind(window),M=[],B=e.DomRecycler=function(){function t(){(0,m.default)(this,t)}return t.configure=function(t){this.options=I.default.extend(this.options,t)},t.create=function(t){return this.options.recycleVideo&&"video"===t&&M.length>0?M.shift():(0,I.default)("<"+t+">")},t.garbage=function(t){this.options.recycleVideo&&"VIDEO"===t[0].tagName.toUpperCase()&&(t.children().remove(),M.push(t))},t}();B.options={recycleVideo:!1},e.default={Config:S,Fullscreen:N,QueryString:P,DomRecycler:B,extend:r,formatTime:a,seekStringToSeconds:s,uniqueId:l,currentScriptUrl:c,isNumber:u,requestAnimationFrame:L,cancelAnimationFrame:D,getBrowserLanguage:d,now:f,removeArrayItem:p}},function(t,e){var n=function(){function t(t){return null==t?String(t):q[W.call(t)]||"object"}function e(e){return"function"==t(e)}function n(t){return null!=t&&t==t.window}function i(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function o(e){return"object"==t(e)}function r(t){return o(t)&&!n(t)&&Object.getPrototypeOf(t)==Object.prototype}function a(t){var e=!!t&&"length"in t&&t.length,i=k.type(t);return"function"!=i&&!n(t)&&("array"==i||0===e||"number"==typeof e&&e>0&&e-1 in t)}function s(t){return N.call(t,function(t){return null!=t})}function l(t){return t.length>0?k.fn.concat.apply([],t):t}function u(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function c(t){return t in L?L[t]:L[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function d(t,e){return"number"!=typeof e||D[u(t)]?e:e+"px"}function f(t){var e,n;return R[t]||(e=P.createElement(t),P.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),R[t]=n),R[t]}function p(t){return"children"in t?S.call(t.children):k.map(t.childNodes,function(t){if(1==t.nodeType)return t})}function h(t,e){var n,i=t?t.length:0;for(n=0;n]*>/,B=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,F=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,$=/^(?:body|html)$/i,U=/([A-Z])/g,j=["val","css","html","text","data","width","height","offset"],V=["after","prepend","before","append"],Y=P.createElement("table"),K=P.createElement("tr"),H={tr:P.createElement("tbody"),tbody:Y,thead:Y,tfoot:Y,td:K,th:K,"*":P.createElement("div")},z=/complete|loaded|interactive/,G=/^[\w-]*$/,q={},W=q.toString,Z={},X=P.createElement("div"),J={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},Q=Array.isArray||function(t){return t instanceof Array};return Z.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var i,o=t.parentNode,r=!o;return r&&(o=X).appendChild(t),i=~Z.qsa(o,e).indexOf(t),r&&X.removeChild(t),i},O=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},w=function(t){return N.call(t,function(e,n){return t.indexOf(e)==n})},Z.fragment=function(t,e,n){var i,o,a;return B.test(t)&&(i=k(P.createElement(RegExp.$1))),i||(t.replace&&(t=t.replace(F,"<$1>")),e===T&&(e=M.test(t)&&RegExp.$1),e in H||(e="*"),a=H[e],a.innerHTML=""+t,i=k.each(S.call(a.childNodes),function(){a.removeChild(this)})),r(n)&&(o=k(i),k.each(n,function(t,e){j.indexOf(t)>-1?o[t](e):o.attr(t,e)})),i},Z.Z=function(t,e){return new h(t,e)},Z.isZ=function(t){return t instanceof Z.Z},Z.init=function(t,n){var i;if(!t)return Z.Z();if("string"==typeof t)if(t=t.trim(),"<"==t[0]&&M.test(t))i=Z.fragment(t,RegExp.$1,n),t=null;else{if(n!==T)return k(n).find(t);i=Z.qsa(P,t)}else{if(e(t))return k(P).ready(t);if(Z.isZ(t))return t;if(Q(t))i=s(t);else if(o(t))i=[t],t=null;else if(M.test(t))i=Z.fragment(t.trim(),RegExp.$1,n),t=null;else{if(n!==T)return k(n).find(t);i=Z.qsa(P,t)}}return Z.Z(i,t)},k=function(t,e){return Z.init(t,e)},k.extend=function(t){var e,n=S.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){y(t,n,e)}),t},Z.qsa=function(t,e){var n,i="#"==e[0],o=!i&&"."==e[0],r=i||o?e.slice(1):e,a=G.test(r);return t.getElementById&&a&&i?(n=t.getElementById(r))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:S.call(a&&!i&&t.getElementsByClassName?o?t.getElementsByClassName(r):t.getElementsByTagName(e):t.querySelectorAll(e))},k.contains=P.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},k.type=t,k.isFunction=e,k.isWindow=n,k.isArray=Q,k.isPlainObject=r,k.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},k.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},k.inArray=function(t,e,n){return x.indexOf.call(e,t,n)},k.camelCase=O,k.trim=function(t){return null==t?"":String.prototype.trim.call(t)},k.uuid=0,k.support={},k.expr={},k.noop=function(){},k.map=function(t,e){var n,i,o,r=[];if(a(t))for(i=0;i=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return x.every.call(this,function(e,n){return!1!==t.call(e,n,e)}),this},filter:function(t){return e(t)?this.not(this.not(t)):k(N.call(this,function(e){return Z.matches(e,t)}))},add:function(t,e){return k(w(this.concat(k(t,e))))},is:function(t){return this.length>0&&Z.matches(this[0],t)},not:function(t){var n=[];if(e(t)&&t.call!==T)this.each(function(e){t.call(this,e)||n.push(this)});else{var i="string"==typeof t?this.filter(t):a(t)&&e(t.item)?S.call(t):k(t);this.forEach(function(t){i.indexOf(t)<0&&n.push(t)})}return k(n)},has:function(t){return this.filter(function(){return o(t)?k.contains(this,t):k(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!o(t)?t:k(t)},last:function(){var t=this[this.length-1];return t&&!o(t)?t:k(t)},find:function(t){var e=this;return t?"object"==typeof t?k(t).filter(function(){var t=this;return x.some.call(e,function(e){return k.contains(e,t)})}):1==this.length?k(Z.qsa(this[0],t)):this.map(function(){return Z.qsa(this,t)}):k()},closest:function(t,e){var n=[],o="object"==typeof t&&k(t);return this.each(function(r,a){for(;a&&!(o?o.indexOf(a)>=0:Z.matches(a,t));)a=a!==e&&!i(a)&&a.parentNode;a&&n.indexOf(a)<0&&n.push(a)}),k(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=k.map(n,function(t){if((t=t.parentNode)&&!i(t)&&e.indexOf(t)<0)return e.push(t),t});return g(e,t)},parent:function(t){return g(w(this.pluck("parentNode")),t)},children:function(t){return g(this.map(function(){return p(this)}),t)},contents:function(){return this.map(function(){return this.contentDocument||S.call(this.childNodes)})},siblings:function(t){return g(this.map(function(t,e){return N.call(p(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return k.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=f(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var n=e(t);if(this[0]&&!n)var i=k(t).get(0),o=i.parentNode||this.length>1;return this.each(function(e){k(this).wrapAll(n?t.call(this,e):o?i.cloneNode(!0):i)})},wrapAll:function(t){if(this[0]){k(this[0]).before(t=k(t));for(var e;(e=t.children()).length;)t=e.first();k(t).append(this)}return this},wrapInner:function(t){var n=e(t);return this.each(function(e){var i=k(this),o=i.contents(),r=n?t.call(this,e):t;o.length?o.wrapAll(r):i.append(r)})},unwrap:function(){return this.parent().each(function(){k(this).replaceWith(k(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(t){return this.each(function(){var e=k(this);(t===T?"none"==e.css("display"):t)?e.show():e.hide()})},prev:function(t){return k(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return k(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var n=this.innerHTML;k(this).empty().append(m(this,t,e,n))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var n=m(this,t,e,this.textContent);this.textContent=null==n?"":""+n}):0 in this?this.pluck("textContent").join(""):null},attr:function(t,e){var n;return"string"!=typeof t||1 in arguments?this.each(function(n){if(1===this.nodeType)if(o(t))for(C in t)v(this,C,t[C]);else v(this,t,m(this,e,n,this.getAttribute(t)))}):0 in this&&1==this[0].nodeType&&null!=(n=this[0].getAttribute(t))?n:T},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){v(this,t)},this)})},prop:function(t,e){return t=J[t]||t,1 in arguments?this.each(function(n){this[t]=m(this,e,n,this[t])}):this[0]&&this[0][t]},removeProp:function(t){return t=J[t]||t,this.each(function(){delete this[t]})},data:function(t,e){var n="data-"+t.replace(U,"-$1").toLowerCase(),i=1 in arguments?this.attr(n,e):this.attr(n);return null!==i?_(i):T},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each(function(e){this.value=m(this,t,e,this.value)})):this[0]&&(this[0].multiple?k(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(t){if(t)return this.each(function(e){var n=k(this),i=m(this,t,e,n.offset()),o=n.offsetParent().offset(),r={top:i.top-o.top,left:i.left-o.left};"static"==n.css("position")&&(r.position="relative"),n.css(r)});if(!this.length)return null;if(P.documentElement!==this[0]&&!k.contains(P.documentElement,this[0]))return{top:0,left:0};var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(e,n){if(arguments.length<2){var i=this[0];if("string"==typeof e){if(!i)return;return i.style[O(e)]||getComputedStyle(i,"").getPropertyValue(e)}if(Q(e)){if(!i)return;var o={},r=getComputedStyle(i,"");return k.each(e,function(t,e){o[e]=i.style[O(e)]||r.getPropertyValue(e)}),o}}var a="";if("string"==t(e))n||0===n?a=u(e)+":"+d(e,n):this.each(function(){this.style.removeProperty(u(e))});else for(C in e)e[C]||0===e[C]?a+=u(C)+":"+d(C,e[C])+";":this.each(function(){this.style.removeProperty(u(C))});return this.each(function(){this.style.cssText+=";"+a})},index:function(t){return t?this.indexOf(k(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&x.some.call(this,function(t){return this.test(b(t))},c(t))},addClass:function(t){return t?this.each(function(e){if("className"in this){A=[];var n=b(this);m(this,t,e,n).split(/\s+/g).forEach(function(t){k(this).hasClass(t)||A.push(t)},this),A.length&&b(this,n+(n?" ":"")+A.join(" "))}}):this},removeClass:function(t){return this.each(function(e){if("className"in this){if(t===T)return b(this,"");A=b(this),m(this,t,e,A).split(/\s+/g).forEach(function(t){A=A.replace(c(t)," ")}),b(this,A.trim())}})},toggleClass:function(t,e){return t?this.each(function(n){var i=k(this);m(this,t,n,b(this)).split(/\s+/g).forEach(function(t){(e===T?!i.hasClass(t):e)?i.addClass(t):i.removeClass(t)})}):this},scrollTop:function(t){if(this.length){var e="scrollTop"in this[0];return t===T?e?this[0].scrollTop:this[0].pageYOffset:this.each(e?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var e="scrollLeft"in this[0];return t===T?e?this[0].scrollLeft:this[0].pageXOffset:this.each(e?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),i=$.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(k(t).css("margin-top"))||0,n.left-=parseFloat(k(t).css("margin-left"))||0,i.top+=parseFloat(k(e[0]).css("border-top-width"))||0,i.left+=parseFloat(k(e[0]).css("border-left-width"))||0,{top:n.top-i.top,left:n.left-i.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||P.body;t&&!$.test(t.nodeName)&&"static"==k(t).css("position");)t=t.offsetParent;return t})}},k.fn.detach=k.fn.remove,["width","height"].forEach(function(t){var e=t.replace(/./,function(t){return t[0].toUpperCase()});k.fn[t]=function(o){var r,a=this[0];return o===T?n(a)?a["inner"+e]:i(a)?a.documentElement["scroll"+e]:(r=this.offset())&&r[t]:this.each(function(e){a=k(this),a.css(t,m(this,o,e,a[t]()))})}}),V.forEach(function(e,n){var i=n%2;k.fn[e]=function(){var e,o,r=k.map(arguments,function(n){var i=[];return e=t(n),"array"==e?(n.forEach(function(t){return t.nodeType!==T?i.push(t):k.zepto.isZ(t)?i=i.concat(t.get()):void(i=i.concat(Z.fragment(t)))}),i):"object"==e||null==n?n:Z.fragment(n)}),a=this.length>1;return r.length<1?this:this.each(function(t,e){o=i?e:e.parentNode,e=0==n?e.nextSibling:1==n?e.firstChild:2==n?e:null;var s=k.contains(P.documentElement,o);r.forEach(function(t){if(a)t=t.cloneNode(!0);else if(!o)return k(t).remove();o.insertBefore(t,e),s&&E(t,function(t){if(!(null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src)){var e=t.ownerDocument?t.ownerDocument.defaultView:window;e.eval.call(e,t.innerHTML)}})})})},k.fn[i?e+"To":"insert"+(n?"Before":"After")]=function(t){return k(t)[e](this),this}}),Z.Z.prototype=h.prototype=k.fn,Z.uniq=w,Z.deserializeValue=_,k.zepto=Z,k}();window.Zepto=n,void 0===window.$&&(window.$=n),function(t){function e(e,n,i){var o=t.Event(n);return t(e).trigger(o,i),!o.isDefaultPrevented()}function n(t,n,i,o){if(t.global)return e(n||b,i,o)}function i(e){e.global&&0==t.active++&&n(e,null,"ajaxStart")}function o(e){e.global&&!--t.active&&n(e,null,"ajaxStop")}function r(t,e){var i=e.context;if(!1===e.beforeSend.call(i,t,e)||!1===n(e,i,"ajaxBeforeSend",[t,e]))return!1;n(e,i,"ajaxSend",[t,e])}function a(t,e,i,o){var r=i.context;i.success.call(r,t,"success",e),o&&o.resolveWith(r,[t,"success",e]),n(i,r,"ajaxSuccess",[e,i,t]),l("success",e,i)}function s(t,e,i,o,r){var a=o.context;o.error.call(a,i,e,t),r&&r.rejectWith(a,[i,e,t]),n(o,a,"ajaxError",[i,o,t||e]),l(e,i,o)}function l(t,e,i){var r=i.context;i.complete.call(r,e,t),n(i,r,"ajaxComplete",[e,i]),o(i)}function u(t,e,n){if(n.dataFilter==c)return t;var i=n.context;return n.dataFilter.call(i,t,e)}function c(){}function d(t){return t&&(t=t.split(";",2)[0]),t&&(t==k?"html":t==C?"json":E.test(t)?"script":T.test(t)&&"xml")||"text"}function f(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function p(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()&&"jsonp"!=e.dataType||(e.url=f(e.url,e.data),e.data=void 0)}function h(e,n,i,o){return t.isFunction(n)&&(o=i,i=n,n=void 0),t.isFunction(i)||(o=i,i=void 0),{url:e,data:n,success:i,dataType:o}}function y(e,n,i,o){var r,a=t.isArray(n),s=t.isPlainObject(n);t.each(n,function(n,l){r=t.type(l),o&&(n=i?o:o+"["+(s||"object"==r||"array"==r?n:"")+"]"),!o&&a?e.add(l.name,l.value):"array"==r||!i&&"object"==r?y(e,l,i,n):e.add(n,l)})}var g,m,v=+new Date,b=window.document,_=/)<[^<]*)*<\/script>/gi,E=/^(?:text|application)\/javascript/i,T=/^(?:text|application)\/xml/i,C="application/json",k="text/html",A=/^\s*$/,O=b.createElement("a");O.href=window.location.href,t.active=0,t.ajaxJSONP=function(e,n){if(!("type"in e))return t.ajax(e);var i,o,l=e.jsonpCallback,u=(t.isFunction(l)?l():l)||"Zepto"+v++,c=b.createElement("script"),d=window[u],f=function(e){t(c).triggerHandler("error",e||"abort")},p={abort:f};return n&&n.promise(p),t(c).on("load error",function(r,l){clearTimeout(o),t(c).off().remove(),"error"!=r.type&&i?a(i[0],p,e,n):s(null,l||"error",p,e,n),window[u]=d,i&&t.isFunction(d)&&d(i[0]),d=i=void 0}),!1===r(p,e)?(f("abort"),p):(window[u]=function(){i=arguments},c.src=e.url.replace(/\?(.+)=\?/,"?$1="+u),b.head.appendChild(c),e.timeout>0&&(o=setTimeout(function(){f("timeout")},e.timeout)),p)},t.ajaxSettings={type:"GET",beforeSend:c,success:c,error:c,complete:c,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:C,xml:"application/xml, text/xml",html:k,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0,dataFilter:c},t.ajax=function(e){var n,o,l=t.extend({},e||{}),h=t.Deferred&&t.Deferred();for(g in t.ajaxSettings)void 0===l[g]&&(l[g]=t.ajaxSettings[g]);i(l),l.crossDomain||(n=b.createElement("a"),n.href=l.url,n.href=n.href,l.crossDomain=O.protocol+"//"+O.host!=n.protocol+"//"+n.host),l.url||(l.url=window.location.toString()),(o=l.url.indexOf("#"))>-1&&(l.url=l.url.slice(0,o)),p(l);var y=l.dataType,v=/\?.+=\?/.test(l.url);if(v&&(y="jsonp"),!1!==l.cache&&(e&&!0===e.cache||"script"!=y&&"jsonp"!=y)||(l.url=f(l.url,"_="+Date.now())),"jsonp"==y)return v||(l.url=f(l.url,l.jsonp?l.jsonp+"=?":!1===l.jsonp?"":"callback=?")),t.ajaxJSONP(l,h);var _,E=l.accepts[y],T={},C=function(t,e){T[t.toLowerCase()]=[t,e]},k=/^([\w-]+:)\/\//.test(l.url)?RegExp.$1:window.location.protocol,w=l.xhr(),x=w.setRequestHeader;if(h&&h.promise(w),l.crossDomain||C("X-Requested-With","XMLHttpRequest"),C("Accept",E||"*/*"),(E=l.mimeType||E)&&(E.indexOf(",")>-1&&(E=E.split(",",2)[0]),w.overrideMimeType&&w.overrideMimeType(E)),(l.contentType||!1!==l.contentType&&l.data&&"GET"!=l.type.toUpperCase())&&C("Content-Type",l.contentType||"application/x-www-form-urlencoded"),l.headers)for(m in l.headers)C(m,l.headers[m]);if(w.setRequestHeader=C,w.onreadystatechange=function(){if(4==w.readyState){w.onreadystatechange=c,clearTimeout(_);var e,n=!1;if(w.status>=200&&w.status<300||304==w.status||0==w.status&&"file:"==k){if(y=y||d(l.mimeType||w.getResponseHeader("content-type")),"arraybuffer"==w.responseType||"blob"==w.responseType)e=w.response;else{e=w.responseText;try{e=u(e,y,l),"script"==y?(0,eval)(e):"xml"==y?e=w.responseXML:"json"==y&&(e=A.test(e)?null:t.parseJSON(e))}catch(t){n=t}if(n)return s(n,"parsererror",w,l,h)}a(e,w,l,h)}else s(w.statusText||null,w.status?"error":"abort",w,l,h)}},!1===r(w,l))return w.abort(),s(null,"abort",w,l,h),w;var I=!("async"in l)||l.async;if(w.open(l.type,l.url,I,l.username,l.password),l.xhrFields)for(m in l.xhrFields)w[m]=l.xhrFields[m];for(m in T)x.apply(w,T[m]);return l.timeout>0&&(_=setTimeout(function(){w.onreadystatechange=c,w.abort(),s(null,"timeout",w,l,h)},l.timeout)),w.send(l.data?l.data:null),w},t.get=function(){return t.ajax(h.apply(null,arguments))},t.post=function(){var e=h.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=h.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,n,i){if(!this.length)return this;var o,r=this,a=e.split(/\s/),s=h(e,n,i),l=s.success;return a.length>1&&(s.url=a[0],o=a[1]),s.success=function(e){r.html(o?t("
").html(e.replace(_,"")).find(o):e),l&&l.apply(r,arguments)},t.ajax(s),this};var w=encodeURIComponent;t.param=function(e,n){var i=[];return i.add=function(e,n){t.isFunction(n)&&(n=n()),null==n&&(n=""),this.push(w(e)+"="+w(n))},y(i,e,n),i.join("&").replace(/%20/g,"+")}}(n),function(t){t.Callbacks=function(e){e=t.extend({},e);var n,i,o,r,a,s,l=[],u=!e.once&&[],c=function(t){for(n=e.memory&&t,i=!0,s=r||0,r=0,a=l.length,o=!0;l&&s-1;)l.splice(i,1),o&&(i<=a&&--a,i<=s&&--s)}),this},has:function(e){return!(!l||!(e?t.inArray(e,l)>-1:l.length))},empty:function(){return a=l.length=0,this},disable:function(){return l=u=n=void 0,this},disabled:function(){return!l},lock:function(){return u=void 0,n||d.disable(),this},locked:function(){return!u},fireWith:function(t,e){return!l||i&&!u||(e=e||[],e=[t,e.slice?e.slice():e],o?u.push(e):c(e)),this},fire:function(){return d.fireWith(this,arguments)},fired:function(){return!!i}};return d}}(n),function(t){function e(n){var i=[["resolve","done",t.Callbacks({once:1,memory:1}),"resolved"],["reject","fail",t.Callbacks({once:1,memory:1}),"rejected"],["notify","progress",t.Callbacks({memory:1})]],o="pending",r={state:function(){return o},always:function(){return a.done(arguments).fail(arguments),this},then:function(){var n=arguments;return e(function(e){t.each(i,function(i,o){var s=t.isFunction(n[i])&&n[i];a[o[1]](function(){var n=s&&s.apply(this,arguments);if(n&&t.isFunction(n.promise))n.promise().done(e.resolve).fail(e.reject).progress(e.notify);else{var i=this===r?e.promise():this,a=s?[n]:arguments;e[o[0]+"With"](i,a)}})}),n=null}).promise()},promise:function(e){return null!=e?t.extend(e,r):r}},a={};return t.each(i,function(t,e){var n=e[2],s=e[3];r[e[1]]=n.add,s&&n.add(function(){o=s},i[1^t][2].disable,i[2][2].lock),a[e[0]]=function(){return a[e[0]+"With"](this===a?r:this,arguments),this},a[e[0]+"With"]=n.fireWith}),r.promise(a),n&&n.call(a,a),a}var n=Array.prototype.slice;t.when=function(i){var o,r,a,s=n.call(arguments),l=s.length,u=0,c=1!==l||i&&t.isFunction(i.promise)?l:0,d=1===c?i:e(),f=function(t,e,i){return function(r){e[t]=this,i[t]=arguments.length>1?n.call(arguments):r,i===o?d.notifyWith(e,i):--c||d.resolveWith(e,i)}};if(l>1)for(o=new Array(l),r=new Array(l),a=new Array(l);u-1)return this},has:function(t,e,n){if(i.qsa(this,n).length)return this}},s=new RegExp("(.*):(\\w+)(?:\\(([^)]+)\\))?$\\s*"),l=/^\s*>/,u="Zepto"+ +new Date;i.qsa=function(e,r){return n(r,function(n,a,s){try{var c;!n&&a?n="*":l.test(n)&&(c=t(e).addClass(u),n="."+u+" "+n);var d=o(e,n)}catch(t){throw console.error("error performing selector: %o",r),t}finally{c&&c.removeClass(u)}return a?i.uniq(t.map(d,function(t,e){return a.call(t,e,d,s)})):d})},i.matches=function(t,e){return n(e,function(e,n,i){return(!e||r(t,e))&&(!n||n.call(t,null,i)===t)})}}(n),t.exports=n},function(t,e){function n(t,e){var n=t[1]||"",o=t[3];if(!o)return n;if(e&&"function"==typeof btoa){var r=i(o);return[n].concat(o.sources.map(function(t){return"/*# sourceURL="+o.sourceRoot+t+" */"})).concat([r]).join("\n")}return[n].join("\n")}function i(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var i=n(e,t);return e[2]?"@media "+e[2]+"{"+i+"}":i}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var i={},o=0;o=0&&b.splice(e,1)}function s(t){var e=document.createElement("style");return t.attrs.type="text/css",u(e,t.attrs),r(t,e),e}function l(t){var e=document.createElement("link");return t.attrs.type="text/css",t.attrs.rel="stylesheet",u(e,t.attrs),r(t,e),e}function u(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function c(t,e){var n,i,o,r;if(e.transform&&t.css){if(!(r=e.transform(t.css)))return function(){};t.css=r}if(e.singleton){var u=v++;n=m||(m=s(e)),i=d.bind(null,n,u,!1),o=d.bind(null,n,u,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=l(e),i=p.bind(null,n,e),o=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(e),i=f.bind(null,n),o=function(){a(n)});return i(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;i(t=e)}else o()}}function d(t,e,n,i){var o=n?"":i.css;if(t.styleSheet)t.styleSheet.cssText=E(e,o);else{var r=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(r,a[e]):t.appendChild(r)}}function f(t,e){var n=e.css,i=e.media;if(i&&t.setAttribute("media",i),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function p(t,e,n){var i=n.css,o=n.sourceMap,r=void 0===e.convertToAbsoluteUrls&&o;(e.convertToAbsoluteUrls||r)&&(i=_(i)),o&&(i+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var a=new Blob([i],{type:"text/css"}),s=t.href;t.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}var h={},y=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),g=function(t){var e={};return function(n){if(void 0===e[n]){var i=t.call(this,n);if(i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(t){i=null}e[n]=i}return e[n]}}(function(t){return document.querySelector(t)}),m=null,v=0,b=[],_=n(136);t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");e=e||{},e.attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||(e.singleton=y()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var n=o(t,e);return i(n,e),function(t){for(var r=[],a=0;a/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},o=/(.)^/,r={"'":"'","\\":"\\","\r":"r","\n":"n","\t":"t","\u2028":"u2028","\u2029":"u2029"},a=/\\|'|\r|\n|\t|\u2028|\u2029/g,s={"&":"&","<":"<",">":">",'"':""","'":"'"},l=new RegExp("[&<>\"']","g"),u=function(t){return null===t?"":(""+t).replace(l,function(t){return s[t]})},c=0,d=function(t,e){var n,s=new RegExp([(i.escape||o).source,(i.interpolate||o).source,(i.evaluate||o).source].join("|")+"|$","g"),l=0,d="__p+='";t.replace(s,function(e,n,i,o,s){return d+=t.slice(l,s).replace(a,function(t){return"\\"+r[t]}),n&&(d+="'+\n((__t=("+n+"))==null?'':escapeExpr(__t))+\n'"),i&&(d+="'+\n((__t=("+i+"))==null?'':__t)+\n'"),o&&(d+="';\n"+o+"\n__p+='"),l=s+e.length,e}),d+="';\n",i.variable||(d="with(obj||{}){\n"+d+"}\n"),d="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+d+"return __p;\n//# sourceURL=/microtemplates/source["+c+++"]";try{n=new Function(i.variable||"obj","escapeExpr",d)}catch(t){throw t.source=d,t}if(e)return n(e,u);var f=function(t){return n.call(this,t,u)};return f.source="function("+(i.variable||"obj")+"){\n"+d+"}",f};d.settings=i,e.default=d,t.exports=e.default},function(t,e,n){var i=n(43)("wks"),o=n(32),r=n(14).Symbol,a="function"==typeof r;(t.exports=function(t){return i[t]||(i[t]=a&&r[t]||(a?r:o)("Symbol."+t))}).store=i},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(3),u=i(l),c=n(2),d=i(c),f=n(5),p=n(20),h=i(p),y=function(t){function e(n,i){(0,r.default)(this,e);var o=(0,s.default)(this,t.call(this,n));return o.settings={},o._i18n=i,o}return(0,d.default)(e,t),(0,u.default)(e,[{key:"isAudioOnly",get:function(){return!1}},{key:"ended",get:function(){return!1}},{key:"i18n",get:function(){return this._i18n}},{key:"buffering",get:function(){return!1}}]),e.prototype.consent=function(){},e.prototype.play=function(){},e.prototype.pause=function(){},e.prototype.stop=function(){},e.prototype.seek=function(t){},e.prototype.seekPercentage=function(t){},e.prototype.getStartTimeOffset=function(){return 0},e.prototype.getDuration=function(){return 0},e.prototype.isPlaying=function(){return!1},e.prototype.getPlaybackType=function(){return e.NO_OP},e.prototype.isHighDefinitionInUse=function(){return!1},e.prototype.volume=function(t){},e.prototype.destroy=function(){this.$el.remove()},(0,u.default)(e,[{key:"isReady",get:function(){return!1}},{key:"hasClosedCaptionsTracks",get:function(){return this.closedCaptionsTracks.length>0}},{key:"closedCaptionsTracks",get:function(){return[]}},{key:"closedCaptionsTrackId",get:function(){return-1},set:function(t){}}]),e}(h.default);e.default=y,y.extend=function(t){return(0,f.extend)(y,t)},y.canPlay=function(t,e){return!1},y.VOD="vod",y.AOD="aod",y.LIVE="live",y.NO_OP="no_op",y.type="playback",t.exports=e.default},function(t,e,n){var i=n(88),o=n(39);t.exports=function(t){return i(o(t))}},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){var i=n(23),o=n(62),r=n(46),a=Object.defineProperty;e.f=n(19)?Object.defineProperty:function(t,e,n){if(i(t),e=r(e,!0),i(n),o)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(3),u=i(l),c=n(2),d=i(c),f=n(5),p=n(4),h=i(p),y=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,r.default)(this,e);var i=(0,s.default)(this,t.call(this,n));return i._options=n,i.uniqueId=(0,f.uniqueId)("o"),i}return(0,d.default)(e,t),(0,u.default)(e,[{key:"options",get:function(){return this._options}}]),e}(h.default);e.default=y,t.exports=e.default},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var i=n(14),o=n(8),r=n(45),a=n(22),s=function(t,e,n){var l,u,c,d=t&s.F,f=t&s.G,p=t&s.S,h=t&s.P,y=t&s.B,g=t&s.W,m=f?o:o[e]||(o[e]={}),v=m.prototype,b=f?i:p?i[e]:(i[e]||{}).prototype;f&&(n=e);for(l in n)(u=!d&&b&&void 0!==b[l])&&l in m||(c=u?b[l]:n[l],m[l]=f&&"function"!=typeof b[l]?n[l]:y&&u?r(c,i):g&&b[l]==c?function(t){var e=function(e,n,i){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,i)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(c):h&&"function"==typeof c?r(Function.call,c):c,h&&((m.virtual||(m.virtual={}))[l]=c,t&s.R&&v&&!v[l]&&a(v,l,c)))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,t.exports=s},function(t,e,n){t.exports=!n(27)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(3),u=i(l),c=n(2),d=i(c),f=n(6),p=i(f),h=n(5),y=n(16),g=i(y),m=/^(\S+)\s*(.*)$/,v=function(t){function e(n){(0,r.default)(this,e);var i=(0,s.default)(this,t.call(this,n));return i.cid=(0,h.uniqueId)("c"),i._ensureElement(),i.delegateEvents(),i}return(0,d.default)(e,t),(0,u.default)(e,[{key:"tagName",get:function(){return"div"}},{key:"events",get:function(){return{}}},{key:"attributes",get:function(){return{}}}]),e.prototype.$=function(t){return this.$el.find(t)},e.prototype.render=function(){return this},e.prototype.remove=function(){return this.$el.remove(),this.stopListening(),this.undelegateEvents(),this},e.prototype.setElement=function(t,e){return this.$el&&this.undelegateEvents(),this.$el=p.default.zepto.isZ(t)?t:(0,p.default)(t),this.el=this.$el[0],!1!==e&&this.delegateEvents(),this},e.prototype.delegateEvents=function(t){if(!t&&!(t=this.events))return this;this.undelegateEvents();for(var e in t){var n=t[e];if(n&&n.constructor!==Function&&(n=this[t[e]]),n){var i=e.match(m),o=i[1],r=i[2];o+=".delegateEvents"+this.cid,""===r?this.$el.on(o,n.bind(this)):this.$el.on(o,r,n.bind(this))}}return this},e.prototype.undelegateEvents=function(){return this.$el.off(".delegateEvents"+this.cid),this},e.prototype._ensureElement=function(){if(this.el)this.setElement(this.el,!1);else{var t=p.default.extend({},this.attributes);this.id&&(t.id=this.id),this.className&&(t.class=this.className);var e=h.DomRecycler.create(this.tagName).attr(t);this.setElement(e,!1)}},e}(g.default);e.default=v,t.exports=e.default},function(t,e,n){"use strict";t.exports=void 0},function(t,e,n){var i=n(15),o=n(28);t.exports=n(19)?function(t,e,n){return i.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var i=n(26);t.exports=function(t){if(!i(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i={},o=e.getBrowserInfo=function(t){var e=t.match(/\b(playstation 4|nx|opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[],n=void 0;if(/trident/i.test(e[1]))return n=/\brv[ :]+(\d+)/g.exec(t)||[],{name:"IE",version:parseInt(n[1]||"")};if("Chrome"===e[1]){if(null!=(n=t.match(/\bOPR\/(\d+)/)))return{name:"Opera",version:parseInt(n[1])};if(null!=(n=t.match(/\bEdge\/(\d+)/)))return{name:"Edge",version:parseInt(n[1])}}else/android/i.test(t)&&(n=t.match(/version\/(\d+)/i))&&(e.splice(1,1,"Android WebView"),e.splice(2,1,n[1]));return e=e[2]?[e[1],e[2]]:[navigator.appName,navigator.appVersion,"-?"],{name:e[0],version:parseInt(e[1])}},r=o(navigator.userAgent);i.isEdge=/edge/i.test(navigator.userAgent),i.isChrome=/chrome|CriOS/i.test(navigator.userAgent)&&!i.isEdge,i.isSafari=/safari/i.test(navigator.userAgent)&&!i.isChrome&&!i.isEdge,i.isFirefox=/firefox/i.test(navigator.userAgent),i.isLegacyIE=!!window.ActiveXObject,i.isIE=i.isLegacyIE||/trident.*rv:1\d/i.test(navigator.userAgent),i.isIE11=/trident.*rv:11/i.test(navigator.userAgent),i.isChromecast=i.isChrome&&/CrKey/i.test(navigator.userAgent),i.isMobile=/Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone|IEMobile|Mobile Safari|Opera Mini/i.test(navigator.userAgent),i.isiOS=/iPad|iPhone|iPod/i.test(navigator.userAgent),i.isAndroid=/Android/i.test(navigator.userAgent),i.isWindowsPhone=/Windows Phone/i.test(navigator.userAgent),i.isWin8App=/MSAppHost/i.test(navigator.userAgent),i.isWiiU=/WiiU/i.test(navigator.userAgent),i.isPS4=/PlayStation 4/i.test(navigator.userAgent),i.hasLocalstorage=function(){try{return localStorage.setItem("clappr","clappr"),localStorage.removeItem("clappr"),!0}catch(t){return!1}}(),i.hasFlash=function(){try{return!!new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(t){return!(!navigator.mimeTypes||void 0===navigator.mimeTypes["application/x-shockwave-flash"]||!navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin)}}(),i.name=r.name,i.version=r.version,e.default=i},function(t,e,n){var i=n(59),o=n(44);t.exports=Object.keys||function(t){return i(t,o)}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){t.exports={}},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(2),u=i(l),c=n(5),d=n(16),f=i(d),p=function(t){function e(n){(0,r.default)(this,e);var i=(0,s.default)(this,t.call(this,n.options));return i.core=n,i.enabled=!0,i.bindEvents(),i}return(0,u.default)(e,t),e.prototype.bindEvents=function(){},e.prototype.enable=function(){this.enabled||(this.bindEvents(),this.enabled=!0)},e.prototype.disable=function(){this.enabled&&(this.stopListening(),this.enabled=!1)},e.prototype.getExternalInterface=function(){return{}},e.prototype.destroy=function(){this.stopListening()},e}(f.default);e.default=p,p.extend=function(t){return(0,c.extend)(p,t)},p.type="core",t.exports=e.default},function(t,e,n){t.exports={default:n(86),__esModule:!0}},function(t,e){var n=0,i=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+i).toString(36))}},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=n(92),r=i(o),a=n(103),s=i(a),l="function"==typeof s.default&&"symbol"==typeof r.default?function(t){return typeof t}:function(t){return t&&"function"==typeof s.default&&t.constructor===s.default&&t!==s.default.prototype?"symbol":typeof t};e.default="function"==typeof s.default&&"symbol"===l(r.default)?function(t){return void 0===t?"undefined":l(t)}:function(t){return t&&"function"==typeof s.default&&t.constructor===s.default&&t!==s.default.prototype?"symbol":void 0===t?"undefined":l(t)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(0),o=function(t){return t&&t.__esModule?t:{default:t}}(i),r=function t(){(0,o.default)(this,t),this.options={},this.playbackPlugins=[],this.currentSize={width:0,height:0}};r._players={},r.getInstance=function(t){return r._players[t]||(r._players[t]=new r)},e.default=r,t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(2),u=i(l),c=n(5),d=n(20),f=i(d),p=function(t){function e(n){(0,r.default)(this,e);var i=(0,s.default)(this,t.call(this,n.options));return i.container=n,i.enabled=!0,i.bindEvents(),i}return(0,u.default)(e,t),e.prototype.enable=function(){this.enabled||(this.bindEvents(),this.$el.show(),this.enabled=!0)},e.prototype.disable=function(){this.stopListening(),this.$el.hide(),this.enabled=!1},e.prototype.bindEvents=function(){},e.prototype.destroy=function(){this.remove()},e}(f.default);e.default=p,p.extend=function(t){return(0,c.extend)(p,t)},p.type="container",t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(2),u=i(l),c=n(16),d=i(c),f=n(5),p=function(t){function e(n){(0,r.default)(this,e);var i=(0,s.default)(this,t.call(this,n.options));return i.container=n,i.enabled=!0,i.bindEvents(),i}return(0,u.default)(e,t),e.prototype.enable=function(){this.enabled||(this.bindEvents(),this.enabled=!0)},e.prototype.disable=function(){this.enabled&&(this.stopListening(),this.enabled=!1)},e.prototype.bindEvents=function(){},e.prototype.destroy=function(){this.stopListening()},e}(d.default);e.default=p,p.extend=function(t){return(0,f.extend)(p,t)},p.type="container",t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=i(o),a=n(1),s=i(a),l=n(2),u=i(l),c=n(5),d=n(20),f=i(d),p=function(t){function e(n){(0,r.default)(this,e);var i=(0,s.default)(this,t.call(this,n.options));return i.core=n,i.enabled=!0,i.bindEvents(),i.render(),i}return(0,u.default)(e,t),e.prototype.bindEvents=function(){},e.prototype.getExternalInterface=function(){return{}},e.prototype.enable=function(){this.enabled||(this.bindEvents(),this.$el.show(),this.enabled=!0)},e.prototype.disable=function(){this.stopListening(),this.$el.hide(),this.enabled=!1},e.prototype.destroy=function(){this.remove()},e.prototype.render=function(){return this},e}(f.default);e.default=p,p.extend=function(t){return(0,c.extend)(p,t)},p.type="core",t.exports=e.default},function(t,e,n){var i=n(39);t.exports=function(t){return Object(i(t))}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){var i=n(43)("keys"),o=n(32);t.exports=function(t){return i[t]||(i[t]=o(t))}},function(t,e,n){var i=n(14),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});t.exports=function(t){return o[t]||(o[t]={})}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var i=n(91);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,o){return t.call(e,n,i,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var i=n(26);t.exports=function(t,e){if(!i(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!i(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!i(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!i(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=!0},function(t,e,n){var i=n(23),o=n(96),r=n(44),a=n(42)("IE_PROTO"),s=function(){},l=function(){var t,e=n(63)("iframe"),i=r.length;for(e.style.display="none",n(97).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write("\n * \n * ```\n * Now, create the player:\n * ```html\n * \n *
\n * \n * \n * ```\n */\n\nvar Player = function (_BaseObject) {\n (0, _inherits3.default)(Player, _BaseObject);\n (0, _createClass3.default)(Player, [{\n key: 'loader',\n set: function set(loader) {\n this._loader = loader;\n },\n get: function get() {\n if (!this._loader) this._loader = new _loader2.default(this.options.plugins || {}, this.options.playerId);\n\n return this._loader;\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n\n }, {\n key: 'ended',\n get: function get() {\n return this.core.mediaControl.container.ended;\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n\n }, {\n key: 'buffering',\n get: function get() {\n return this.core.mediaControl.container.buffering;\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n\n }, {\n key: 'isReady',\n get: function get() {\n return !!this._ready;\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n\n }, {\n key: 'eventsMapping',\n get: function get() {\n return {\n onReady: _events2.default.PLAYER_READY,\n onResize: _events2.default.PLAYER_RESIZE,\n onPlay: _events2.default.PLAYER_PLAY,\n onPause: _events2.default.PLAYER_PAUSE,\n onStop: _events2.default.PLAYER_STOP,\n onEnded: _events2.default.PLAYER_ENDED,\n onSeek: _events2.default.PLAYER_SEEK,\n onError: _events2.default.PLAYER_ERROR,\n onTimeUpdate: _events2.default.PLAYER_TIMEUPDATE,\n onVolumeUpdate: _events2.default.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: _events2.default.PLAYER_SUBTITLE_AVAILABLE\n };\n }\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {String} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload]\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength]\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu]\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n */\n\n }]);\n\n function Player(options) {\n (0, _classCallCheck3.default)(this, Player);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _BaseObject.call(this, options));\n\n var defaultOptions = { playerId: (0, _utils.uniqueId)(''), persistConfig: true, width: 640, height: 360, baseUrl: baseUrl, allowUserInteraction: _browser2.default.isMobile };\n _this._options = _clapprZepto2.default.extend(defaultOptions, options);\n _this.options.sources = _this._normalizeSources(options);\n if (!_this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n _this.options.allowUserInteraction = true;\n }\n if (!_this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n _this.options.disableKeyboardShortcuts = true;\n }\n _this._registerOptionEventListeners();\n _this._coreFactory = new _core_factory2.default(_this);\n _this.playerInfo = _player_info2.default.getInstance(_this.options.playerId);\n _this.playerInfo.currentSize = { width: options.width, height: options.height };\n _this.playerInfo.options = _this.options;\n if (_this.options.parentId) _this.setParentId(_this.options.parentId);else if (_this.options.parent) _this.attachTo(_this.options.parent);\n\n return _this;\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n\n\n Player.prototype.setParentId = function setParentId(parentId) {\n var el = document.querySelector(parentId);\n if (el) this.attachTo(el);\n\n return this;\n };\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n\n\n Player.prototype.attachTo = function attachTo(element) {\n this.options.parentElement = element;\n this.core = this._coreFactory.create();\n this._addEventListeners();\n return this;\n };\n\n Player.prototype._addEventListeners = function _addEventListeners() {\n if (!this.core.isReady) this.listenToOnce(this.core, _events2.default.CORE_READY, this._onReady);else this._onReady();\n\n this.listenTo(this.core.mediaControl, _events2.default.MEDIACONTROL_CONTAINERCHANGED, this._containerChanged);\n this.listenTo(this.core, _events2.default.CORE_FULLSCREEN, this._onFullscreenChange);\n return this;\n };\n\n Player.prototype._addContainerEventListeners = function _addContainerEventListeners() {\n var container = this.core.mediaControl.container;\n if (container) {\n this.listenTo(container, _events2.default.CONTAINER_PLAY, this._onPlay);\n this.listenTo(container, _events2.default.CONTAINER_PAUSE, this._onPause);\n this.listenTo(container, _events2.default.CONTAINER_STOP, this._onStop);\n this.listenTo(container, _events2.default.CONTAINER_ENDED, this._onEnded);\n this.listenTo(container, _events2.default.CONTAINER_SEEK, this._onSeek);\n this.listenTo(container, _events2.default.CONTAINER_ERROR, this._onError);\n this.listenTo(container, _events2.default.CONTAINER_TIMEUPDATE, this._onTimeUpdate);\n this.listenTo(container, _events2.default.CONTAINER_VOLUME, this._onVolumeUpdate);\n this.listenTo(container, _events2.default.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable);\n }\n return this;\n };\n\n Player.prototype._registerOptionEventListeners = function _registerOptionEventListeners() {\n var _this2 = this;\n\n var userEvents = this.options.events || {};\n (0, _keys2.default)(userEvents).forEach(function (userEvent) {\n var eventType = _this2.eventsMapping[userEvent];\n if (eventType) {\n var eventFunction = userEvents[userEvent];\n eventFunction = typeof eventFunction === 'function' && eventFunction;\n eventFunction && _this2.on(eventType, eventFunction);\n }\n });\n return this;\n };\n\n Player.prototype._containerChanged = function _containerChanged() {\n this.stopListening();\n this._addEventListeners();\n };\n\n Player.prototype._onReady = function _onReady() {\n this._ready = true;\n this._addContainerEventListeners();\n this.trigger(_events2.default.PLAYER_READY);\n };\n\n Player.prototype._onFullscreenChange = function _onFullscreenChange(fullscreen) {\n this.trigger(_events2.default.PLAYER_FULLSCREEN, fullscreen);\n };\n\n Player.prototype._onVolumeUpdate = function _onVolumeUpdate(volume) {\n this.trigger(_events2.default.PLAYER_VOLUMEUPDATE, volume);\n };\n\n Player.prototype._onSubtitleAvailable = function _onSubtitleAvailable() {\n this.trigger(_events2.default.PLAYER_SUBTITLE_AVAILABLE);\n };\n\n Player.prototype._onPlay = function _onPlay() {\n this.trigger(_events2.default.PLAYER_PLAY);\n };\n\n Player.prototype._onPause = function _onPause() {\n this.trigger(_events2.default.PLAYER_PAUSE);\n };\n\n Player.prototype._onStop = function _onStop() {\n this.trigger(_events2.default.PLAYER_STOP, this.getCurrentTime());\n };\n\n Player.prototype._onEnded = function _onEnded() {\n this.trigger(_events2.default.PLAYER_ENDED);\n };\n\n Player.prototype._onSeek = function _onSeek(time) {\n this.trigger(_events2.default.PLAYER_SEEK, time);\n };\n\n Player.prototype._onTimeUpdate = function _onTimeUpdate(timeProgress) {\n this.trigger(_events2.default.PLAYER_TIMEUPDATE, timeProgress);\n };\n\n Player.prototype._onError = function _onError(error) {\n this.trigger(_events2.default.PLAYER_ERROR, error);\n };\n\n Player.prototype._normalizeSources = function _normalizeSources(options) {\n var sources = options.sources || (options.source !== undefined ? [options.source] : []);\n return sources.length === 0 ? [{ source: '', mimeType: '' }] : sources;\n };\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n\n\n Player.prototype.resize = function resize(size) {\n this.core.resize(size);\n return this;\n };\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <>, mimeType: <>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n\n\n Player.prototype.load = function load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined) this.configure({ autoPlay: !!autoPlay });\n\n this.core.load(sources, mimeType);\n return this;\n };\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n\n\n Player.prototype.destroy = function destroy() {\n this.core.destroy();\n return this;\n };\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n\n\n Player.prototype.consent = function consent() {\n this.core.getCurrentPlayback().consent();\n return this;\n };\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n\n\n Player.prototype.play = function play() {\n this.core.mediaControl.container.play();\n return this;\n };\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n\n\n Player.prototype.pause = function pause() {\n this.core.mediaControl.container.pause();\n return this;\n };\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n\n\n Player.prototype.stop = function stop() {\n this.core.mediaControl.container.stop();\n return this;\n };\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n\n\n Player.prototype.seek = function seek(time) {\n this.core.mediaControl.container.seek(time);\n return this;\n };\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n\n\n Player.prototype.seekPercentage = function seekPercentage(percentage) {\n this.core.mediaControl.container.seekPercentage(percentage);\n return this;\n };\n\n /**\n * Set the volume for the current video (`source`).\n * @method setVolume\n * @param {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n * @return {Player} itself\n */\n\n\n Player.prototype.setVolume = function setVolume(volume) {\n if (this.core && this.core.mediaControl) this.core.mediaControl.setVolume(volume);\n\n return this;\n };\n\n /**\n * Get the volume for the current video\n * @method getVolume\n * @return {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n */\n\n\n Player.prototype.getVolume = function getVolume() {\n return this.core && this.core.mediaControl ? this.core.mediaControl.volume : 0;\n };\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n\n\n Player.prototype.mute = function mute() {\n this._mutedVolume = this.getVolume();\n this.setVolume(0);\n return this;\n };\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n\n\n Player.prototype.unmute = function unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100);\n this._mutedVolume = null;\n return this;\n };\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n\n\n Player.prototype.isPlaying = function isPlaying() {\n return this.core.mediaControl.container.isPlaying();\n };\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n\n\n Player.prototype.isDvrEnabled = function isDvrEnabled() {\n return this.core.mediaControl.container.isDvrEnabled();\n };\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n\n\n Player.prototype.isDvrInUse = function isDvrInUse() {\n return this.core.mediaControl.container.isDvrInUse();\n };\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n\n\n Player.prototype.configure = function configure(options) {\n this.core.configure(options);\n return this;\n };\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n\n\n Player.prototype.getPlugin = function getPlugin(name) {\n var plugins = this.core.plugins.concat(this.core.mediaControl.container.plugins);\n return plugins.filter(function (plugin) {\n return plugin.name === name;\n })[0];\n };\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n\n\n Player.prototype.getCurrentTime = function getCurrentTime() {\n return this.core.mediaControl.container.getCurrentTime();\n };\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n\n\n Player.prototype.getStartTimeOffset = function getStartTimeOffset() {\n return this.core.mediaControl.container.getStartTimeOffset();\n };\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n\n\n Player.prototype.getDuration = function getDuration() {\n return this.core.mediaControl.container.getDuration();\n };\n\n return Player;\n}(_base_object2.default);\n\nexports.default = Player;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(87);\nmodule.exports = __webpack_require__(8).Object.keys;\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(38)\n , $keys = __webpack_require__(25);\n\n__webpack_require__(61)('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(40);\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(13)\n , toLength = __webpack_require__(60)\n , toIndex = __webpack_require__(90);\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(41)\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(93), __esModule: true };\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(64);\n__webpack_require__(99);\nmodule.exports = __webpack_require__(50).f('iterator');\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(41)\n , defined = __webpack_require__(39);\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(48)\n , descriptor = __webpack_require__(28)\n , setToStringTag = __webpack_require__(49)\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(22)(IteratorPrototype, __webpack_require__(11)('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(15)\n , anObject = __webpack_require__(23)\n , getKeys = __webpack_require__(25);\n\nmodule.exports = __webpack_require__(19) ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(14).document && document.documentElement;\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(17)\n , toObject = __webpack_require__(38)\n , IE_PROTO = __webpack_require__(42)('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(100);\nvar global = __webpack_require__(14)\n , hide = __webpack_require__(22)\n , Iterators = __webpack_require__(29)\n , TO_STRING_TAG = __webpack_require__(11)('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype;\n if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(101)\n , step = __webpack_require__(102)\n , Iterators = __webpack_require__(29)\n , toIObject = __webpack_require__(13);\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(65)(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(){ /* empty */ };\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(104), __esModule: true };\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(105);\n__webpack_require__(111);\n__webpack_require__(112);\n__webpack_require__(113);\nmodule.exports = __webpack_require__(8).Symbol;\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(14)\n , has = __webpack_require__(17)\n , DESCRIPTORS = __webpack_require__(19)\n , $export = __webpack_require__(18)\n , redefine = __webpack_require__(66)\n , META = __webpack_require__(106).KEY\n , $fails = __webpack_require__(27)\n , shared = __webpack_require__(43)\n , setToStringTag = __webpack_require__(49)\n , uid = __webpack_require__(32)\n , wks = __webpack_require__(11)\n , wksExt = __webpack_require__(50)\n , wksDefine = __webpack_require__(51)\n , keyOf = __webpack_require__(107)\n , enumKeys = __webpack_require__(108)\n , isArray = __webpack_require__(109)\n , anObject = __webpack_require__(23)\n , toIObject = __webpack_require__(13)\n , toPrimitive = __webpack_require__(46)\n , createDesc = __webpack_require__(28)\n , _create = __webpack_require__(48)\n , gOPNExt = __webpack_require__(110)\n , $GOPD = __webpack_require__(53)\n , $DP = __webpack_require__(15)\n , $keys = __webpack_require__(25)\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __webpack_require__(68).f = gOPNExt.f = $getOwnPropertyNames;\n __webpack_require__(52).f = $propertyIsEnumerable;\n __webpack_require__(67).f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !__webpack_require__(47)){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(22)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar META = __webpack_require__(32)('meta')\n , isObject = __webpack_require__(26)\n , has = __webpack_require__(17)\n , setDesc = __webpack_require__(15).f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !__webpack_require__(27)(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getKeys = __webpack_require__(25)\n , toIObject = __webpack_require__(13);\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// all enumerable object keys, includes symbols\nvar getKeys = __webpack_require__(25)\n , gOPS = __webpack_require__(67)\n , pIE = __webpack_require__(52);\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(40);\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = __webpack_require__(13)\n , gOPN = __webpack_require__(68).f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports) {\n\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(51)('asyncIterator');\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(51)('observable');\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(115);\nvar $Object = __webpack_require__(8).Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(18);\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !__webpack_require__(19), 'Object', {defineProperty: __webpack_require__(15).f});\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(117), __esModule: true };\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(118);\nmodule.exports = __webpack_require__(8).Object.setPrototypeOf;\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = __webpack_require__(18);\n$export($export.S, 'Object', {setPrototypeOf: __webpack_require__(119).set});\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = __webpack_require__(26)\n , anObject = __webpack_require__(23);\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = __webpack_require__(45)(Function.call, __webpack_require__(53).f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(121);\nvar $Object = __webpack_require__(8).Object;\nmodule.exports = function create(P, D){\n return $Object.create(P, D);\n};\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(18)\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: __webpack_require__(48)});\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(123), __esModule: true };\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(124);\nvar $Object = __webpack_require__(8).Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = __webpack_require__(13)\n , $getOwnPropertyDescriptor = __webpack_require__(53).f;\n\n__webpack_require__(61)('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function value(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null) throw new TypeError('\"this\" is null or not defined');\n\n var o = Object(this);\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n var len = o.length >>> 0;\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function') throw new TypeError('predicate must be a function');\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n var thisArg = arguments[1];\n\n // 5. Let k be 0.\n var k = 0;\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n var kValue = o[k];\n if (predicate.call(thisArg, kValue, k, o)) return kValue;\n\n // e. Increase k by 1.\n k++;\n }\n\n // 7. Return undefined.\n return undefined;\n }\n });\n}\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _vendor = __webpack_require__(54);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BOLD = 'font-weight: bold; font-size: 13px;';\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nvar INFO = 'color: #006600;' + BOLD;\nvar DEBUG = 'color: #0000ff;' + BOLD;\nvar WARN = 'color: #ff8000;' + BOLD;\nvar ERROR = 'color: #ff0000;' + BOLD;\n\nvar LEVEL_DEBUG = 0;\nvar LEVEL_INFO = 1;\nvar LEVEL_WARN = 2;\nvar LEVEL_ERROR = 3;\nvar LEVEL_DISABLED = LEVEL_ERROR;\n\nvar COLORS = [DEBUG, INFO, WARN, ERROR, ERROR];\nvar DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled'];\n\nvar Log = function () {\n function Log() {\n var _this = this;\n\n var level = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : LEVEL_INFO;\n var offLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : LEVEL_DISABLED;\n (0, _classCallCheck3.default)(this, Log);\n\n this.kibo = new _vendor.Kibo();\n this.kibo.down(['ctrl shift d'], function () {\n return _this.onOff();\n });\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress'];\n this.level = level;\n this.offLevel = offLevel;\n }\n\n Log.prototype.debug = function debug(klass) {\n this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1));\n };\n\n Log.prototype.info = function info(klass) {\n this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1));\n };\n\n Log.prototype.warn = function warn(klass) {\n this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1));\n };\n\n Log.prototype.error = function error(klass) {\n this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1));\n };\n\n Log.prototype.onOff = function onOff() {\n if (this.level === this.offLevel) {\n this.level = this.previousLevel;\n } else {\n this.previousLevel = this.level;\n this.level = this.offLevel;\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log) window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN);\n };\n\n Log.prototype.level = function level(newLevel) {\n this.level = newLevel;\n };\n\n Log.prototype.log = function log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return;\n if (level < this.level) return;\n\n if (!message) {\n message = klass;\n klass = null;\n }\n var color = COLORS[level];\n var klassDescription = '';\n if (klass) klassDescription = '[' + klass + ']';\n\n if (window.console && window.console.log) window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message));\n };\n\n return Log;\n}();\n\nexports.default = Log;\n\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG;\nLog.LEVEL_INFO = LEVEL_INFO;\nLog.LEVEL_WARN = LEVEL_WARN;\nLog.LEVEL_ERROR = LEVEL_ERROR;\n\nLog.getInstance = function () {\n if (this._instance === undefined) {\n this._instance = new this();\n this._instance.previousLevel = this._instance.level;\n this._instance.level = this._instance.offLevel;\n }\n return this._instance;\n};\n\nLog.setLevel = function (level) {\n this.getInstance().level = level;\n};\n\nLog.debug = function () {\n this.getInstance().debug.apply(this.getInstance(), arguments);\n};\nLog.info = function () {\n this.getInstance().info.apply(this.getInstance(), arguments);\n};\nLog.warn = function () {\n this.getInstance().warn.apply(this.getInstance(), arguments);\n};\nLog.error = function () {\n this.getInstance().error.apply(this.getInstance(), arguments);\n};\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function Kibo(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function () {\n for (var key in Kibo.KEY_NAMES_BY_CODE) {\n if (Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = function () {\n if (document.addEventListener) {\n return function (element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n } else if (document.attachEvent) {\n return function (element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n}();\n\nKibo.unregisterEvent = function () {\n if (document.removeEventListener) {\n return function (element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n } else if (document.detachEvent) {\n return function (element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n}();\n\nKibo.stringContains = function (string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function (string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function (string) {\n return string.toLowerCase().replace(/^./, function (match) {\n return match.toUpperCase();\n });\n};\n\nKibo.isString = function (what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = function () {\n if (Array.prototype.indexOf) {\n return function (haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n } else {\n return function (haystack, needle) {\n for (var i = 0; i < haystack.length; i++) {\n if (haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n}();\n\nKibo.extractModifiers = function (keyCombination) {\n var modifiers, i;\n modifiers = [];\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n if (Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n};\n\nKibo.extractKey = function (keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for (i = 0; i < keys.length; i++) {\n if (!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function (keyCombination) {\n var result, key;\n\n if (Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if (key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n};\n\nKibo.keyName = function (keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function (keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function () {\n var i,\n that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function (upOrDown) {\n var that = this;\n return function (e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if (Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for (i = 0; i < registeredKeys.any.length; i++) {\n if (registeredKeys.any[i](e) === false && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if (registeredKeys[lastModifiersAndKey]) {\n for (i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if (registeredKeys[lastModifiersAndKey][i](e) === false && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function (upOrDown, newKeys, func) {\n var i,\n keys,\n registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if (Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for (i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if (registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function (upOrDown, newKeys, func) {\n var i,\n j,\n keys,\n registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if (Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for (i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if (func === null) {\n delete registeredKeys[keys];\n } else {\n if (registeredKeys[keys]) {\n for (j = 0; j < registeredKeys[keys].length; j++) {\n if (String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function (keys) {\n return this.unregisterKeys('down', keys, null);\n};\n\nKibo.prototype.delegate = function (upOrDown, keys, func) {\n return func !== null || func !== undefined ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function (keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function (keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function (modifier) {\n if (!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function () {\n var result, i;\n\n result = [];\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n if (this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if (!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexports.default = Kibo;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core_factory = __webpack_require__(129);\n\nvar _core_factory2 = _interopRequireDefault(_core_factory);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _core_factory2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _base_object = __webpack_require__(16);\n\nvar _base_object2 = _interopRequireDefault(_base_object);\n\nvar _core = __webpack_require__(72);\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nvar CoreFactory = function (_BaseObject) {\n (0, _inherits3.default)(CoreFactory, _BaseObject);\n (0, _createClass3.default)(CoreFactory, [{\n key: 'loader',\n get: function get() {\n return this.player.loader;\n }\n\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n\n }]);\n\n function CoreFactory(player) {\n (0, _classCallCheck3.default)(this, CoreFactory);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _BaseObject.call(this));\n\n _this.player = player;\n _this._options = player.options;\n return _this;\n }\n\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n\n\n CoreFactory.prototype.create = function create() {\n this.options.loader = this.loader;\n this.core = new _core2.default(this.options);\n this.addCorePlugins();\n this.core.createContainers(this.options);\n return this.core;\n };\n\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n\n\n CoreFactory.prototype.addCorePlugins = function addCorePlugins() {\n var _this2 = this;\n\n this.loader.corePlugins.forEach(function (Plugin) {\n var plugin = new Plugin(_this2.core);\n _this2.core.addPlugin(plugin);\n _this2.setupExternalInterface(plugin);\n });\n return this.core;\n };\n\n CoreFactory.prototype.setupExternalInterface = function setupExternalInterface(plugin) {\n var externalFunctions = plugin.getExternalInterface();\n for (var key in externalFunctions) {\n this.player[key] = externalFunctions[key].bind(plugin);\n }\n };\n\n return CoreFactory;\n}(_base_object2.default);\n\nexports.default = CoreFactory;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _utils = __webpack_require__(5);\n\nvar _events = __webpack_require__(4);\n\nvar _events2 = _interopRequireDefault(_events);\n\nvar _ui_object = __webpack_require__(20);\n\nvar _ui_object2 = _interopRequireDefault(_ui_object);\n\nvar _browser = __webpack_require__(24);\n\nvar _browser2 = _interopRequireDefault(_browser);\n\nvar _container_factory = __webpack_require__(131);\n\nvar _container_factory2 = _interopRequireDefault(_container_factory);\n\nvar _media_control = __webpack_require__(74);\n\nvar _media_control2 = _interopRequireDefault(_media_control);\n\nvar _mediator = __webpack_require__(56);\n\nvar _mediator2 = _interopRequireDefault(_mediator);\n\nvar _player_info = __webpack_require__(34);\n\nvar _player_info2 = _interopRequireDefault(_player_info);\n\nvar _styler = __webpack_require__(77);\n\nvar _styler2 = _interopRequireDefault(_styler);\n\nvar _clapprZepto = __webpack_require__(6);\n\nvar _clapprZepto2 = _interopRequireDefault(_clapprZepto);\n\n__webpack_require__(149);\n\nvar _fonts = __webpack_require__(151);\n\nvar _fonts2 = _interopRequireDefault(_fonts);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nvar style = void 0;\n\n/**\n * The Core is responsible to manage Containers, the mediator, MediaControl\n * and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\n\nvar Core = function (_UIObject) {\n (0, _inherits3.default)(Core, _UIObject);\n (0, _createClass3.default)(Core, [{\n key: 'events',\n get: function get() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'showMediaControl',\n 'mouseleave': 'hideMediaControl'\n };\n }\n }, {\n key: 'attributes',\n get: function get() {\n return {\n 'data-player': '',\n tabindex: 9999\n };\n }\n\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n\n }, {\n key: 'isReady',\n get: function get() {\n return !!this.ready;\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n\n }, {\n key: 'i18n',\n get: function get() {\n return this.getPlugin('strings') || { t: function t(key) {\n return key;\n } };\n }\n }]);\n\n function Core(options) {\n (0, _classCallCheck3.default)(this, Core);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _UIObject.call(this, options));\n\n _this.configureDomRecycler();\n _this.playerInfo = _player_info2.default.getInstance(options.playerId);\n _this.firstResize = true;\n _this.plugins = [];\n _this.containers = [];\n _this.setupMediaControl(null);\n //FIXME fullscreen api sucks\n _this._boundFullscreenHandler = function () {\n return _this.handleFullscreenChange();\n };\n (0, _clapprZepto2.default)(document).bind('fullscreenchange', _this._boundFullscreenHandler);\n (0, _clapprZepto2.default)(document).bind('MSFullscreenChange', _this._boundFullscreenHandler);\n (0, _clapprZepto2.default)(document).bind('mozfullscreenchange', _this._boundFullscreenHandler);\n _browser2.default.isMobile && (0, _clapprZepto2.default)(window).bind('resize', function (o) {\n _this.handleWindowResize(o);\n });\n return _this;\n }\n\n Core.prototype.configureDomRecycler = function configureDomRecycler() {\n var recycleVideo = this.options && this.options.playback && this.options.playback.recycleVideo ? true : false;\n _utils.DomRecycler.configure({\n recycleVideo: recycleVideo\n });\n };\n\n Core.prototype.createContainers = function createContainers(options) {\n var _this2 = this;\n\n this.defer = _clapprZepto2.default.Deferred();\n this.defer.promise(this);\n this.containerFactory = new _container_factory2.default(options, options.loader, this.i18n);\n this.containerFactory.createContainers().then(function (containers) {\n return _this2.setupContainers(containers);\n }).then(function (containers) {\n return _this2.resolveOnContainersReady(containers);\n });\n };\n\n Core.prototype.updateSize = function updateSize() {\n if (_utils.Fullscreen.isFullscreen()) this.setFullscreen();else this.setPlayerSize();\n };\n\n Core.prototype.setFullscreen = function setFullscreen() {\n if (!_browser2.default.isiOS) {\n this.$el.addClass('fullscreen');\n this.$el.removeAttr('style');\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height };\n this.playerInfo.currentSize = { width: (0, _clapprZepto2.default)(window).width(), height: (0, _clapprZepto2.default)(window).height() };\n }\n };\n\n Core.prototype.setPlayerSize = function setPlayerSize() {\n this.$el.removeClass('fullscreen');\n this.playerInfo.currentSize = this.playerInfo.previousSize;\n this.playerInfo.previousSize = { width: (0, _clapprZepto2.default)(window).width(), height: (0, _clapprZepto2.default)(window).height() };\n this.resize(this.playerInfo.currentSize);\n };\n\n Core.prototype.resize = function resize(options) {\n if (!(0, _utils.isNumber)(options.height) && !(0, _utils.isNumber)(options.width)) {\n this.el.style.height = '' + options.height;\n this.el.style.width = '' + options.width;\n } else {\n this.el.style.height = options.height + 'px';\n this.el.style.width = options.width + 'px';\n }\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height };\n this.options.width = options.width;\n this.options.height = options.height;\n this.playerInfo.currentSize = options;\n this.triggerResize(this.playerInfo.currentSize);\n };\n\n Core.prototype.enableResizeObserver = function enableResizeObserver() {\n var _this3 = this;\n\n var checkSizeCallback = function checkSizeCallback() {\n if (_this3.playerInfo.computedSize.width !== _this3.el.clientWidth || _this3.playerInfo.computedSize.height !== _this3.el.clientHeight) {\n _this3.playerInfo.computedSize = { width: _this3.el.clientWidth, height: _this3.el.clientHeight };\n _this3.triggerResize(_this3.playerInfo.computedSize);\n }\n };\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500);\n };\n\n Core.prototype.triggerResize = function triggerResize(newSize) {\n var thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width;\n if (thereWasChange) {\n _mediator2.default.trigger(this.options.playerId + ':' + _events2.default.PLAYER_RESIZE, newSize);\n this.oldHeight = newSize.height;\n this.oldWidth = newSize.width;\n this.firstResize = false;\n }\n };\n\n Core.prototype.disableResizeObserver = function disableResizeObserver() {\n if (this.resizeObserverInterval) clearInterval(this.resizeObserverInterval);\n };\n\n Core.prototype.resolveOnContainersReady = function resolveOnContainersReady(containers) {\n var _this4 = this;\n\n _clapprZepto2.default.when.apply(_clapprZepto2.default, containers).done(function () {\n _this4.defer.resolve(_this4);\n _this4.ready = true;\n _this4.trigger(_events2.default.CORE_READY);\n });\n };\n\n Core.prototype.addPlugin = function addPlugin(plugin) {\n this.plugins.push(plugin);\n };\n\n Core.prototype.hasPlugin = function hasPlugin(name) {\n return !!this.getPlugin(name);\n };\n\n Core.prototype.getPlugin = function getPlugin(name) {\n return this.plugins.filter(function (plugin) {\n return plugin.name === name;\n })[0];\n };\n\n Core.prototype.load = function load(sources, mimeType) {\n var _this5 = this;\n\n this.options.mimeType = mimeType;\n sources = sources && sources.constructor === Array ? sources : [sources];\n this.containers.forEach(function (container) {\n return container.destroy();\n });\n this.mediaControl.container = null;\n this.containerFactory.options = _clapprZepto2.default.extend(this.options, { sources: sources });\n this.containerFactory.createContainers().then(function (containers) {\n _this5.setupContainers(containers);\n });\n };\n\n Core.prototype.destroy = function destroy() {\n this.disableResizeObserver();\n this.containers.forEach(function (container) {\n return container.destroy();\n });\n this.plugins.forEach(function (plugin) {\n return plugin.destroy();\n });\n this.$el.remove();\n this.mediaControl.destroy();\n (0, _clapprZepto2.default)(document).unbind('fullscreenchange', this._boundFullscreenHandler);\n (0, _clapprZepto2.default)(document).unbind('MSFullscreenChange', this._boundFullscreenHandler);\n (0, _clapprZepto2.default)(document).unbind('mozfullscreenchange', this._boundFullscreenHandler);\n };\n\n Core.prototype.handleFullscreenChange = function handleFullscreenChange() {\n this.trigger(_events2.default.CORE_FULLSCREEN, _utils.Fullscreen.isFullscreen());\n this.updateSize();\n this.mediaControl.show();\n };\n\n Core.prototype.handleWindowResize = function handleWindowResize(event) {\n var orientation = (0, _clapprZepto2.default)(window).width() > (0, _clapprZepto2.default)(window).height() ? 'landscape' : 'portrait';\n if (this._screenOrientation === orientation) return;\n this._screenOrientation = orientation;\n\n this.trigger(_events2.default.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n });\n };\n\n Core.prototype.setMediaControlContainer = function setMediaControlContainer(container) {\n this.mediaControl.setContainer(container);\n this.mediaControl.render();\n };\n\n Core.prototype.disableMediaControl = function disableMediaControl() {\n this.mediaControl.disable();\n this.$el.removeClass('nocursor');\n };\n\n Core.prototype.enableMediaControl = function enableMediaControl() {\n this.mediaControl.enable();\n };\n\n Core.prototype.removeContainer = function removeContainer(container) {\n this.stopListening(container);\n this.containers = this.containers.filter(function (c) {\n return c !== container;\n });\n };\n\n Core.prototype.appendContainer = function appendContainer(container) {\n this.listenTo(container, _events2.default.CONTAINER_DESTROYED, this.removeContainer);\n this.containers.push(container);\n };\n\n Core.prototype.setupContainers = function setupContainers(containers) {\n containers.map(this.appendContainer.bind(this));\n this.trigger(_events2.default.CORE_CONTAINERS_CREATED);\n this.renderContainers();\n this.setupMediaControl(this.getCurrentContainer());\n this.render();\n this.appendToParent();\n return this.containers;\n };\n\n Core.prototype.renderContainers = function renderContainers() {\n var _this6 = this;\n\n this.containers.map(function (container) {\n return _this6.el.appendChild(container.render().el);\n });\n };\n\n Core.prototype.createContainer = function createContainer(source, options) {\n var container = this.containerFactory.createContainer(source, options);\n this.appendContainer(container);\n this.el.appendChild(container.render().el);\n return container;\n };\n\n Core.prototype.setupMediaControl = function setupMediaControl(container) {\n if (this.mediaControl) {\n this.mediaControl.setContainer(container);\n } else {\n this.mediaControl = this.createMediaControl(_clapprZepto2.default.extend({ container: container, focusElement: this.el }, this.options));\n this.listenTo(this.mediaControl, _events2.default.MEDIACONTROL_FULLSCREEN, this.toggleFullscreen);\n this.listenTo(this.mediaControl, _events2.default.MEDIACONTROL_SHOW, this.onMediaControlShow.bind(this, true));\n this.listenTo(this.mediaControl, _events2.default.MEDIACONTROL_HIDE, this.onMediaControlShow.bind(this, false));\n }\n };\n\n Core.prototype.createMediaControl = function createMediaControl(options) {\n if (options.mediacontrol && options.mediacontrol.external) return new options.mediacontrol.external(options).render();else return new _media_control2.default(options).render();\n };\n\n Core.prototype.getCurrentContainer = function getCurrentContainer() {\n if (!this.mediaControl || !this.mediaControl.container) return this.containers[0];\n\n return this.mediaControl.container;\n };\n\n Core.prototype.getCurrentPlayback = function getCurrentPlayback() {\n var container = this.getCurrentContainer();\n return container && container.playback;\n };\n\n Core.prototype.getPlaybackType = function getPlaybackType() {\n var container = this.getCurrentContainer();\n return container && container.getPlaybackType();\n };\n\n Core.prototype.toggleFullscreen = function toggleFullscreen() {\n if (!_utils.Fullscreen.isFullscreen()) {\n _utils.Fullscreen.requestFullscreen(this.el);\n if (!_browser2.default.isiOS) this.$el.addClass('fullscreen');\n } else {\n _utils.Fullscreen.cancelFullscreen();\n if (!_browser2.default.isiOS) this.$el.removeClass('fullscreen nocursor');\n }\n this.mediaControl.show();\n };\n\n Core.prototype.showMediaControl = function showMediaControl(event) {\n this.mediaControl.show(event);\n };\n\n Core.prototype.hideMediaControl = function hideMediaControl() {\n this.mediaControl.hide(this.options.hideMediaControlDelay);\n };\n\n Core.prototype.onMediaControlShow = function onMediaControlShow(showing) {\n this.getCurrentContainer().trigger(showing ? _events2.default.CONTAINER_MEDIACONTROL_SHOW : _events2.default.CONTAINER_MEDIACONTROL_HIDE);\n\n if (showing) this.$el.removeClass('nocursor');else if (_utils.Fullscreen.isFullscreen()) this.$el.addClass('nocursor');\n };\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n\n\n Core.prototype.configure = function configure(options) {\n var _this7 = this;\n\n this._options = _clapprZepto2.default.extend(this._options, options);\n this.configureDomRecycler();\n var sources = options.source || options.sources;\n\n if (sources) {\n this.load(sources, options.mimeType || this.options.mimeType);\n } else {\n this.trigger(_events2.default.CORE_OPTIONS_CHANGE);\n\n this.containers.forEach(function (container) {\n container.configure(_this7.options);\n });\n }\n };\n\n Core.prototype.appendToParent = function appendToParent() {\n var hasCoreParent = this.$el.parent() && this.$el.parent().length;\n !hasCoreParent && this.$el.appendTo(this.options.parentElement);\n };\n\n Core.prototype.render = function render() {\n this.$el.append(this.mediaControl.render().el);\n\n if (!style) style = _styler2.default.getStyleFor(_fonts2.default, { baseUrl: this.options.baseUrl });\n\n (0, _clapprZepto2.default)('head').append(style);\n\n this.options.width = this.options.width || this.$el.width();\n this.options.height = this.options.height || this.$el.height();\n var size = { width: this.options.width, height: this.options.height };\n this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size;\n this.updateSize();\n\n this.previousSize = { width: this.$el.width(), height: this.$el.height() };\n\n this.enableResizeObserver();\n\n return this;\n };\n\n return Core;\n}(_ui_object2.default);\n\nexports.default = Core;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _container_factory = __webpack_require__(132);\n\nvar _container_factory2 = _interopRequireDefault(_container_factory);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _container_factory2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof2 = __webpack_require__(33);\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _base_object = __webpack_require__(16);\n\nvar _base_object2 = _interopRequireDefault(_base_object);\n\nvar _events = __webpack_require__(4);\n\nvar _events2 = _interopRequireDefault(_events);\n\nvar _container = __webpack_require__(73);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _clapprZepto = __webpack_require__(6);\n\nvar _clapprZepto2 = _interopRequireDefault(_clapprZepto);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The ContainerFactory is responsible for manage playback bootstrap and create containers.\n */\n\nvar ContainerFactory = function (_BaseObject) {\n (0, _inherits3.default)(ContainerFactory, _BaseObject);\n (0, _createClass3.default)(ContainerFactory, [{\n key: 'options',\n get: function get() {\n return this._options;\n },\n set: function set(options) {\n this._options = options;\n }\n }]);\n\n function ContainerFactory(options, loader, i18n) {\n (0, _classCallCheck3.default)(this, ContainerFactory);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _BaseObject.call(this, options));\n\n _this._i18n = i18n;\n _this.loader = loader;\n return _this;\n }\n\n ContainerFactory.prototype.createContainers = function createContainers() {\n var _this2 = this;\n\n return _clapprZepto2.default.Deferred(function (promise) {\n promise.resolve(_this2.options.sources.map(function (source) {\n return _this2.createContainer(source);\n }));\n });\n };\n\n ContainerFactory.prototype.findPlaybackPlugin = function findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(function (p) {\n return p.canPlay(source, mimeType);\n })[0];\n };\n\n ContainerFactory.prototype.createContainer = function createContainer(source) {\n var resolvedSource = null,\n mimeType = this.options.mimeType;\n if ((typeof source === 'undefined' ? 'undefined' : (0, _typeof3.default)(source)) === 'object') {\n resolvedSource = source.source.toString();\n if (source.mimeType) mimeType = source.mimeType;\n } else {\n resolvedSource = source.toString();\n }\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource;\n\n var options = _clapprZepto2.default.extend({}, this.options, {\n src: resolvedSource,\n mimeType: mimeType\n });\n var playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType);\n var playback = new playbackPlugin(options, this._i18n);\n\n options = _clapprZepto2.default.extend({}, options, { playback: playback });\n\n var container = new _container2.default(options, this._i18n);\n var defer = _clapprZepto2.default.Deferred();\n defer.promise(container);\n this.addContainerPlugins(container);\n this.listenToOnce(container, _events2.default.CONTAINER_READY, function () {\n return defer.resolve(container);\n });\n return container;\n };\n\n ContainerFactory.prototype.addContainerPlugins = function addContainerPlugins(container) {\n this.loader.containerPlugins.forEach(function (Plugin) {\n container.addPlugin(new Plugin(container));\n });\n };\n\n return ContainerFactory;\n}(_base_object2.default);\n\nexports.default = ContainerFactory;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _events = __webpack_require__(4);\n\nvar _events2 = _interopRequireDefault(_events);\n\nvar _ui_object = __webpack_require__(20);\n\nvar _ui_object2 = _interopRequireDefault(_ui_object);\n\n__webpack_require__(134);\n\nvar _clapprZepto = __webpack_require__(6);\n\nvar _clapprZepto2 = _interopRequireDefault(_clapprZepto);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Container is responsible for the video rendering and state\n */\n\nvar Container = function (_UIObject) {\n (0, _inherits3.default)(Container, _UIObject);\n (0, _createClass3.default)(Container, [{\n key: 'name',\n\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get: function get() {\n return 'Container';\n }\n }, {\n key: 'attributes',\n get: function get() {\n return { class: 'container', 'data-container': '' };\n }\n }, {\n key: 'events',\n get: function get() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'doubleTap': 'dblClicked',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n };\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n\n }, {\n key: 'ended',\n get: function get() {\n return this.playback.ended;\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n\n }, {\n key: 'buffering',\n get: function get() {\n return this.playback.buffering;\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n\n }, {\n key: 'i18n',\n get: function get() {\n return this._i18n;\n }\n\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n\n }, {\n key: 'hasClosedCaptionsTracks',\n get: function get() {\n return this.playback.hasClosedCaptionsTracks;\n }\n\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n\n }, {\n key: 'closedCaptionsTracks',\n get: function get() {\n return this.playback.closedCaptionsTracks;\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n\n }, {\n key: 'closedCaptionsTrackId',\n get: function get() {\n return this.playback.closedCaptionsTrackId;\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n ,\n set: function set(trackId) {\n this.playback.closedCaptionsTrackId = trackId;\n }\n\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n\n }]);\n\n function Container(options, i18n) {\n (0, _classCallCheck3.default)(this, Container);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _UIObject.call(this, options));\n\n _this._i18n = i18n;\n _this.currentTime = 0;\n _this.volume = 100;\n _this.playback = options.playback;\n _this.settings = _clapprZepto2.default.extend({}, _this.playback.settings);\n _this.isReady = false;\n _this.mediaControlDisabled = false;\n _this.plugins = [_this.playback];\n _this.bindEvents();\n return _this;\n }\n\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n\n\n Container.prototype.bindEvents = function bindEvents() {\n this.listenTo(this.playback, _events2.default.PLAYBACK_PROGRESS, this.progress);\n this.listenTo(this.playback, _events2.default.PLAYBACK_TIMEUPDATE, this.timeUpdated);\n this.listenTo(this.playback, _events2.default.PLAYBACK_READY, this.ready);\n this.listenTo(this.playback, _events2.default.PLAYBACK_BUFFERING, this.onBuffering);\n this.listenTo(this.playback, _events2.default.PLAYBACK_BUFFERFULL, this.bufferfull);\n this.listenTo(this.playback, _events2.default.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate);\n this.listenTo(this.playback, _events2.default.PLAYBACK_LOADEDMETADATA, this.loadedMetadata);\n this.listenTo(this.playback, _events2.default.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate);\n this.listenTo(this.playback, _events2.default.PLAYBACK_BITRATE, this.updateBitrate);\n this.listenTo(this.playback, _events2.default.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged);\n this.listenTo(this.playback, _events2.default.PLAYBACK_DVR, this.playbackDvrStateChanged);\n this.listenTo(this.playback, _events2.default.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl);\n this.listenTo(this.playback, _events2.default.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl);\n this.listenTo(this.playback, _events2.default.PLAYBACK_SEEKED, this.onSeeked);\n this.listenTo(this.playback, _events2.default.PLAYBACK_ENDED, this.onEnded);\n this.listenTo(this.playback, _events2.default.PLAYBACK_PLAY, this.playing);\n this.listenTo(this.playback, _events2.default.PLAYBACK_PAUSE, this.paused);\n this.listenTo(this.playback, _events2.default.PLAYBACK_STOP, this.stopped);\n this.listenTo(this.playback, _events2.default.PLAYBACK_ERROR, this.error);\n this.listenTo(this.playback, _events2.default.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable);\n this.listenTo(this.playback, _events2.default.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged);\n };\n\n Container.prototype.subtitleAvailable = function subtitleAvailable() {\n this.trigger(_events2.default.CONTAINER_SUBTITLE_AVAILABLE);\n };\n\n Container.prototype.subtitleChanged = function subtitleChanged(track) {\n this.trigger(_events2.default.CONTAINER_SUBTITLE_CHANGED, track);\n };\n\n Container.prototype.playbackStateChanged = function playbackStateChanged(state) {\n this.trigger(_events2.default.CONTAINER_PLAYBACKSTATE, state);\n };\n\n Container.prototype.playbackDvrStateChanged = function playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings;\n this.dvrInUse = dvrInUse;\n this.trigger(_events2.default.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse);\n };\n\n Container.prototype.updateBitrate = function updateBitrate(newBitrate) {\n this.trigger(_events2.default.CONTAINER_BITRATE, newBitrate);\n };\n\n Container.prototype.statsReport = function statsReport(metrics) {\n this.trigger(_events2.default.CONTAINER_STATS_REPORT, metrics);\n };\n\n Container.prototype.getPlaybackType = function getPlaybackType() {\n return this.playback.getPlaybackType();\n };\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n\n\n Container.prototype.isDvrEnabled = function isDvrEnabled() {\n return !!this.playback.dvrEnabled;\n };\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n\n\n Container.prototype.isDvrInUse = function isDvrInUse() {\n return !!this.dvrInUse;\n };\n\n /**\n * destroys the container\n * @method destroy\n */\n\n\n Container.prototype.destroy = function destroy() {\n this.trigger(_events2.default.CONTAINER_DESTROYED, this, this.name);\n this.stopListening();\n this.plugins.forEach(function (plugin) {\n return plugin.destroy();\n });\n this.$el.remove();\n };\n\n Container.prototype.setStyle = function setStyle(style) {\n this.$el.css(style);\n };\n\n Container.prototype.animate = function animate(style, duration) {\n return this.$el.animate(style, duration).promise();\n };\n\n Container.prototype.ready = function ready() {\n this.isReady = true;\n this.trigger(_events2.default.CONTAINER_READY, this.name);\n };\n\n Container.prototype.isPlaying = function isPlaying() {\n return this.playback.isPlaying();\n };\n\n Container.prototype.getStartTimeOffset = function getStartTimeOffset() {\n return this.playback.getStartTimeOffset();\n };\n\n Container.prototype.getCurrentTime = function getCurrentTime() {\n return this.currentTime;\n };\n\n Container.prototype.getDuration = function getDuration() {\n return this.playback.getDuration();\n };\n\n Container.prototype.error = function error(errorObj) {\n if (!this.isReady) this.ready();\n\n this.trigger(_events2.default.CONTAINER_ERROR, { error: errorObj, container: this }, this.name);\n };\n\n Container.prototype.loadedMetadata = function loadedMetadata(metadata) {\n this.trigger(_events2.default.CONTAINER_LOADEDMETADATA, metadata);\n };\n\n Container.prototype.timeUpdated = function timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current;\n this.trigger(_events2.default.CONTAINER_TIMEUPDATE, timeProgress, this.name);\n };\n\n Container.prototype.progress = function progress() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this.trigger.apply(this, [_events2.default.CONTAINER_PROGRESS].concat(args, [this.name]));\n };\n\n Container.prototype.playing = function playing() {\n this.trigger(_events2.default.CONTAINER_PLAY, this.name);\n };\n\n Container.prototype.paused = function paused() {\n this.trigger(_events2.default.CONTAINER_PAUSE, this.name);\n };\n\n /**\n * plays the playback\n * @method play\n */\n\n\n Container.prototype.play = function play() {\n this.playback.play();\n };\n\n /**\n * stops the playback\n * @method stop\n */\n\n\n Container.prototype.stop = function stop() {\n this.playback.stop();\n this.currentTime = 0;\n };\n\n /**\n * pauses the playback\n * @method pause\n */\n\n\n Container.prototype.pause = function pause() {\n this.playback.pause();\n };\n\n Container.prototype.onEnded = function onEnded() {\n this.trigger(_events2.default.CONTAINER_ENDED, this, this.name);\n this.currentTime = 0;\n };\n\n Container.prototype.stopped = function stopped() {\n this.trigger(_events2.default.CONTAINER_STOP);\n };\n\n Container.prototype.clicked = function clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_CLICK, this, this.name);\n };\n\n Container.prototype.dblClicked = function dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_DBLCLICK, this, this.name);\n };\n\n Container.prototype.onContextMenu = function onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_CONTEXTMENU, event, this.name);\n };\n\n Container.prototype.seek = function seek(time) {\n this.trigger(_events2.default.CONTAINER_SEEK, time, this.name);\n this.playback.seek(time);\n };\n\n Container.prototype.onSeeked = function onSeeked() {\n this.trigger(_events2.default.CONTAINER_SEEKED, this.name);\n };\n\n Container.prototype.seekPercentage = function seekPercentage(percentage) {\n var duration = this.getDuration();\n if (percentage >= 0 && percentage <= 100) {\n var time = duration * (percentage / 100);\n this.seek(time);\n }\n };\n\n Container.prototype.setVolume = function setVolume(value) {\n this.volume = parseInt(value, 10);\n this.trigger(_events2.default.CONTAINER_VOLUME, value, this.name);\n this.playback.volume(value);\n };\n\n Container.prototype.fullscreen = function fullscreen() {\n this.trigger(_events2.default.CONTAINER_FULLSCREEN, this.name);\n };\n\n Container.prototype.onBuffering = function onBuffering() {\n this.trigger(_events2.default.CONTAINER_STATE_BUFFERING, this.name);\n };\n\n Container.prototype.bufferfull = function bufferfull() {\n this.trigger(_events2.default.CONTAINER_STATE_BUFFERFULL, this.name);\n };\n\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n\n\n Container.prototype.addPlugin = function addPlugin(plugin) {\n this.plugins.push(plugin);\n };\n\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n\n\n Container.prototype.hasPlugin = function hasPlugin(name) {\n return !!this.getPlugin(name);\n };\n\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n\n\n Container.prototype.getPlugin = function getPlugin(name) {\n return this.plugins.filter(function (plugin) {\n return plugin.name === name;\n })[0];\n };\n\n Container.prototype.mouseEnter = function mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_MOUSE_ENTER);\n };\n\n Container.prototype.mouseLeave = function mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_MOUSE_LEAVE);\n };\n\n Container.prototype.settingsUpdate = function settingsUpdate() {\n this.settings = this.playback.settings;\n this.trigger(_events2.default.CONTAINER_SETTINGSUPDATE);\n };\n\n Container.prototype.highDefinitionUpdate = function highDefinitionUpdate(isHD) {\n this.trigger(_events2.default.CONTAINER_HIGHDEFINITIONUPDATE, isHD);\n };\n\n Container.prototype.isHighDefinitionInUse = function isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse();\n };\n\n Container.prototype.disableMediaControl = function disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true;\n this.trigger(_events2.default.CONTAINER_MEDIACONTROL_DISABLE);\n }\n };\n\n Container.prototype.enableMediaControl = function enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false;\n this.trigger(_events2.default.CONTAINER_MEDIACONTROL_ENABLE);\n }\n };\n\n Container.prototype.updateStyle = function updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.$el.removeClass('chromeless');else this.$el.addClass('chromeless');\n };\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n\n\n Container.prototype.configure = function configure(options) {\n this._options = _clapprZepto2.default.extend(this._options, options);\n this.updateStyle();\n this.trigger(_events2.default.CONTAINER_OPTIONS_CHANGE);\n };\n\n Container.prototype.render = function render() {\n this.$el.append(this.playback.render().el);\n this.updateStyle();\n return this;\n };\n\n return Container;\n}(_ui_object2.default);\n\nexports.default = Container;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a ').html(template(style.toString())(options))\n }\n}\n\nexport default Styler\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/styler.js","import Loader from './loader'\nexport default Loader\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loader/index.js","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/array/from.js\n// module id = 79\n// module chunks = 0","import HTML5Audio from './html5_audio'\nexport default HTML5Audio\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html5_audio/index.js","import HTMLImg from './html_img'\nexport default HTMLImg\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html_img/index.js","import NoOp from './no_op'\nexport default NoOp\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/no_op/index.js","import PosterPlugin from './poster'\nexport default PosterPlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/poster/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Player from './components/player'\nimport Utils from './base/utils'\nimport Events from './base/events'\nimport Playback from './base/playback'\nimport ContainerPlugin from './base/container_plugin'\nimport CorePlugin from './base/core_plugin'\nimport UICorePlugin from './base/ui_core_plugin'\nimport UIContainerPlugin from './base/ui_container_plugin'\nimport BaseObject from './base/base_object'\nimport UIObject from './base/ui_object'\nimport Browser from './components/browser'\nimport Container from './components/container'\nimport Core from './components/core'\nimport Loader from './components/loader'\nimport Mediator from './components/mediator'\nimport MediaControl from './components/media_control'\nimport PlayerInfo from './components/player_info'\nimport BaseFlashPlayback from './playbacks/base_flash_playback'\nimport Flash from './playbacks/flash'\nimport FlasHLS from './playbacks/flashls'\nimport HLS from './playbacks/hls'\nimport HTML5Audio from './playbacks/html5_audio'\nimport HTML5Video from './playbacks/html5_video'\nimport HTMLImg from './playbacks/html_img'\nimport NoOp from './playbacks/no_op'\nimport Poster from './plugins/poster'\nimport Log from './plugins/log'\nimport Styler from './base/styler'\nimport Vendor from './vendor'\nimport template from './base/template'\n\nimport $ from 'clappr-zepto'\n\nconst version = VERSION\n\nexport default {\n Player,\n Mediator,\n Events,\n Browser,\n PlayerInfo,\n MediaControl,\n ContainerPlugin,\n UIContainerPlugin,\n CorePlugin,\n UICorePlugin,\n Playback,\n Container,\n Core,\n Loader,\n BaseObject,\n UIObject,\n Utils,\n BaseFlashPlayback,\n Flash,\n FlasHLS,\n HLS,\n HTML5Audio,\n HTML5Video,\n HTMLImg,\n NoOp,\n Poster,\n Log,\n Styler,\n Vendor,\n version,\n template,\n $\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { uniqueId, currentScriptUrl } from '../base/utils'\n\nimport BaseObject from '../base/base_object'\nimport Events from '../base/events'\nimport Browser from './browser'\nimport CoreFactory from './core_factory'\nimport Loader from './loader'\nimport PlayerInfo from './player_info'\nimport $ from 'clappr-zepto'\n\nconst baseUrl = currentScriptUrl().replace(/\\/[^/]+$/, '')\n\n/**\n * @class Player\n * @constructor\n * @extends BaseObject\n * @module components\n * @example\n * ### Using the Player\n *\n * Add the following script on your HTML:\n * ```html\n * \n * \n * \n * ```\n * Now, create the player:\n * ```html\n * \n *
\n * \n * \n * ```\n */\nexport default class Player extends BaseObject {\n\n set loader(loader) { this._loader = loader }\n get loader() {\n if (!this._loader)\n this._loader = new Loader(this.options.plugins || {}, this.options.playerId)\n\n return this._loader\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.core.mediaControl.container.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.core.mediaControl.container.buffering\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n get isReady() {\n return !!this._ready\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n get eventsMapping() {\n return {\n onReady: Events.PLAYER_READY,\n onResize: Events.PLAYER_RESIZE,\n onPlay: Events.PLAYER_PLAY,\n onPause: Events.PLAYER_PAUSE,\n onStop: Events.PLAYER_STOP,\n onEnded: Events.PLAYER_ENDED,\n onSeek: Events.PLAYER_SEEK,\n onError: Events.PLAYER_ERROR,\n onTimeUpdate: Events.PLAYER_TIMEUPDATE,\n onVolumeUpdate: Events.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: Events.PLAYER_SUBTITLE_AVAILABLE\n }\n }\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {String} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload]\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength]\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu]\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n */\n constructor(options) {\n super(options)\n const defaultOptions = { playerId: uniqueId(''), persistConfig: true, width: 640, height: 360, baseUrl: baseUrl, allowUserInteraction: Browser.isMobile }\n this._options = $.extend(defaultOptions, options)\n this.options.sources = this._normalizeSources(options)\n if (!this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n this.options.allowUserInteraction = true\n }\n if (!this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n this.options.disableKeyboardShortcuts = true\n }\n this._registerOptionEventListeners()\n this._coreFactory = new CoreFactory(this)\n this.playerInfo = PlayerInfo.getInstance(this.options.playerId)\n this.playerInfo.currentSize = { width: options.width, height: options.height }\n this.playerInfo.options = this.options\n if (this.options.parentId)\n this.setParentId(this.options.parentId)\n\n else if (this.options.parent)\n this.attachTo(this.options.parent)\n\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n setParentId(parentId) {\n const el = document.querySelector(parentId)\n if (el)\n this.attachTo(el)\n\n return this\n }\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n attachTo(element) {\n this.options.parentElement = element\n this.core = this._coreFactory.create()\n this._addEventListeners()\n return this\n }\n\n _addEventListeners() {\n if (!this.core.isReady)\n this.listenToOnce(this.core, Events.CORE_READY, this._onReady)\n else\n this._onReady()\n\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this._containerChanged)\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this._onFullscreenChange)\n return this\n }\n\n _addContainerEventListeners() {\n const container = this.core.mediaControl.container\n if (container) {\n this.listenTo(container, Events.CONTAINER_PLAY, this._onPlay)\n this.listenTo(container, Events.CONTAINER_PAUSE, this._onPause)\n this.listenTo(container, Events.CONTAINER_STOP, this._onStop)\n this.listenTo(container, Events.CONTAINER_ENDED, this._onEnded)\n this.listenTo(container, Events.CONTAINER_SEEK, this._onSeek)\n this.listenTo(container, Events.CONTAINER_ERROR, this._onError)\n this.listenTo(container, Events.CONTAINER_TIMEUPDATE, this._onTimeUpdate)\n this.listenTo(container, Events.CONTAINER_VOLUME, this._onVolumeUpdate)\n this.listenTo(container, Events.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable)\n }\n return this\n }\n\n _registerOptionEventListeners() {\n const userEvents = this.options.events || {}\n Object.keys(userEvents).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n if (eventType) {\n let eventFunction = userEvents[userEvent]\n eventFunction = typeof eventFunction === 'function' && eventFunction\n eventFunction && this.on(eventType, eventFunction)\n }\n })\n return this\n }\n\n _containerChanged() {\n this.stopListening()\n this._addEventListeners()\n }\n\n _onReady() {\n this._ready = true\n this._addContainerEventListeners()\n this.trigger(Events.PLAYER_READY)\n }\n\n _onFullscreenChange(fullscreen) {\n this.trigger(Events.PLAYER_FULLSCREEN, fullscreen)\n }\n\n _onVolumeUpdate(volume) {\n this.trigger(Events.PLAYER_VOLUMEUPDATE, volume)\n }\n\n _onSubtitleAvailable() {\n this.trigger(Events.PLAYER_SUBTITLE_AVAILABLE)\n }\n\n _onPlay() {\n this.trigger(Events.PLAYER_PLAY)\n }\n\n _onPause() {\n this.trigger(Events.PLAYER_PAUSE)\n }\n\n _onStop() {\n this.trigger(Events.PLAYER_STOP, this.getCurrentTime())\n }\n\n _onEnded() {\n this.trigger(Events.PLAYER_ENDED)\n }\n\n _onSeek(time) {\n this.trigger(Events.PLAYER_SEEK, time)\n }\n\n _onTimeUpdate(timeProgress) {\n this.trigger(Events.PLAYER_TIMEUPDATE, timeProgress)\n }\n\n _onError(error) {\n this.trigger(Events.PLAYER_ERROR, error)\n }\n\n _normalizeSources(options) {\n const sources = options.sources || (options.source !== undefined? [options.source] : [])\n return sources.length === 0 ? [{ source:'', mimeType:'' }] : sources\n }\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n resize(size) {\n this.core.resize(size)\n return this\n }\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <>, mimeType: <>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined)\n this.configure({ autoPlay: !!autoPlay })\n\n this.core.load(sources, mimeType)\n return this\n }\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n destroy() {\n this.core.destroy()\n return this\n }\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n consent() {\n this.core.getCurrentPlayback().consent()\n return this\n }\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n play() {\n this.core.mediaControl.container.play()\n return this\n }\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n pause() {\n this.core.mediaControl.container.pause()\n return this\n }\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n stop() {\n this.core.mediaControl.container.stop()\n return this\n }\n\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n seek(time) {\n this.core.mediaControl.container.seek(time)\n return this\n }\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n seekPercentage(percentage) {\n this.core.mediaControl.container.seekPercentage(percentage)\n return this\n }\n\n /**\n * Set the volume for the current video (`source`).\n * @method setVolume\n * @param {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n * @return {Player} itself\n */\n setVolume(volume) {\n if (this.core && this.core.mediaControl)\n this.core.mediaControl.setVolume(volume)\n\n return this\n }\n\n /**\n * Get the volume for the current video\n * @method getVolume\n * @return {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n */\n getVolume() {\n return this.core && this.core.mediaControl ? this.core.mediaControl.volume : 0\n }\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n mute() {\n this._mutedVolume = this.getVolume()\n this.setVolume(0)\n return this\n }\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100)\n this._mutedVolume = null\n return this\n }\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n isPlaying() {\n return this.core.mediaControl.container.isPlaying()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return this.core.mediaControl.container.isDvrEnabled()\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return this.core.mediaControl.container.isDvrInUse()\n }\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n configure(options) {\n this.core.configure(options)\n return this\n }\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n getPlugin(name) {\n const plugins = this.core.plugins.concat(this.core.mediaControl.container.plugins)\n return plugins.filter(plugin => plugin.name === name)[0]\n }\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n getCurrentTime() {\n return this.core.mediaControl.container.getCurrentTime()\n }\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() {\n return this.core.mediaControl.container.getStartTimeOffset()\n }\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n getDuration() {\n return this.core.mediaControl.container.getDuration()\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/player.js","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/keys.js\n// module id = 86\n// module chunks = 0","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.keys.js\n// module id = 87\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iobject.js\n// module id = 88\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-includes.js\n// module id = 89\n// module chunks = 0","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-index.js\n// module id = 90\n// module chunks = 0","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_a-function.js\n// module id = 91\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol/iterator.js\n// module id = 92\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/iterator.js\n// module id = 93\n// module chunks = 0","var toInteger = require('./_to-integer')\n , defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_string-at.js\n// module id = 94\n// module chunks = 0","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-create.js\n// module id = 95\n// module chunks = 0","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dps.js\n// module id = 96\n// module chunks = 0","module.exports = require('./_global').document && document.documentElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_html.js\n// module id = 97\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gpo.js\n// module id = 98\n// module chunks = 0","require('./es6.array.iterator');\nvar global = require('./_global')\n , hide = require('./_hide')\n , Iterators = require('./_iterators')\n , TO_STRING_TAG = require('./_wks')('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype;\n if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/web.dom.iterable.js\n// module id = 99\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n , step = require('./_iter-step')\n , Iterators = require('./_iterators')\n , toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.array.iterator.js\n// module id = 100\n// module chunks = 0","module.exports = function(){ /* empty */ };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_add-to-unscopables.js\n// module id = 101\n// module chunks = 0","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-step.js\n// module id = 102\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol.js\n// module id = 103\n// module chunks = 0","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/index.js\n// module id = 104\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global')\n , has = require('./_has')\n , DESCRIPTORS = require('./_descriptors')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , META = require('./_meta').KEY\n , $fails = require('./_fails')\n , shared = require('./_shared')\n , setToStringTag = require('./_set-to-string-tag')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , wksExt = require('./_wks-ext')\n , wksDefine = require('./_wks-define')\n , keyOf = require('./_keyof')\n , enumKeys = require('./_enum-keys')\n , isArray = require('./_is-array')\n , anObject = require('./_an-object')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , createDesc = require('./_property-desc')\n , _create = require('./_object-create')\n , gOPNExt = require('./_object-gopn-ext')\n , $GOPD = require('./_object-gopd')\n , $DP = require('./_object-dp')\n , $keys = require('./_object-keys')\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./_library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.symbol.js\n// module id = 105\n// module chunks = 0","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_meta.js\n// module id = 106\n// module chunks = 0","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_keyof.js\n// module id = 107\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie');\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_enum-keys.js\n// module id = 108\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-array.js\n// module id = 109\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject')\n , gOPN = require('./_object-gopn').f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn-ext.js\n// module id = 110\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.async-iterator.js\n// module id = 112\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.observable.js\n// module id = 113\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/define-property.js\n// module id = 114\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.define-property.js\n// module id = 115\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/set-prototype-of.js\n// module id = 116\n// module chunks = 0","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/set-prototype-of.js\n// module id = 117\n// module chunks = 0","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.set-prototype-of.js\n// module id = 118\n// module chunks = 0","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object')\n , anObject = require('./_an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-proto.js\n// module id = 119\n// module chunks = 0","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D){\n return $Object.create(P, D);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/create.js\n// module id = 120\n// module chunks = 0","var $export = require('./_export')\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: require('./_object-create')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.create.js\n// module id = 121\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js\n// module id = 122\n// module chunks = 0","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/get-own-property-descriptor.js\n// module id = 123\n// module chunks = 0","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject')\n , $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js\n// module id = 124\n// module chunks = 0","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null)\n throw new TypeError('\"this\" is null or not defined')\n\n\n let o = Object(this)\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n let len = o.length >>> 0\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function')\n throw new TypeError('predicate must be a function')\n\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n let thisArg = arguments[1]\n\n // 5. Let k be 0.\n let k = 0\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n let kValue = o[k]\n if (predicate.call(thisArg, kValue, k, o))\n return kValue\n\n // e. Increase k by 1.\n k++\n }\n\n // 7. Return undefined.\n return undefined\n }\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/polyfills.js","\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { Kibo } from '../../vendor'\n\nconst BOLD = 'font-weight: bold; font-size: 13px;'\nconst INFO = 'color: #006600;' + BOLD\nconst DEBUG = 'color: #0000ff;' + BOLD\nconst WARN = 'color: #ff8000;' + BOLD\nconst ERROR = 'color: #ff0000;' + BOLD\n\nconst LEVEL_DEBUG = 0\nconst LEVEL_INFO = 1\nconst LEVEL_WARN = 2\nconst LEVEL_ERROR = 3\nconst LEVEL_DISABLED = LEVEL_ERROR\n\nconst COLORS = [DEBUG, INFO, WARN, ERROR, ERROR]\nconst DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled']\n\nexport default class Log {\n constructor(level = LEVEL_INFO, offLevel = LEVEL_DISABLED) {\n this.kibo = new Kibo()\n this.kibo.down(['ctrl shift d'], () => this.onOff())\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress']\n this.level = level\n this.offLevel = offLevel\n }\n\n debug(klass) { this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1)) }\n info(klass) { this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1)) }\n warn(klass) { this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1)) }\n error(klass) { this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1)) }\n\n onOff() {\n if (this.level === this.offLevel) { this.level = this.previousLevel } else {\n this.previousLevel = this.level\n this.level = this.offLevel\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log)\n window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN)\n\n }\n\n level(newLevel) {\n this.level = newLevel\n }\n\n log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return\n if (level < this.level) return\n\n if (!message) {\n message = klass\n klass = null\n }\n const color = COLORS[level]\n let klassDescription = ''\n if (klass)\n klassDescription = '[' + klass + ']'\n\n if (window.console && window.console.log)\n window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message))\n\n }\n}\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG\nLog.LEVEL_INFO = LEVEL_INFO\nLog.LEVEL_WARN = LEVEL_WARN\nLog.LEVEL_ERROR = LEVEL_ERROR\n\nLog.getInstance = function() {\n if (this._instance === undefined) {\n this._instance = new this()\n this._instance.previousLevel = this._instance.level\n this._instance.level = this._instance.offLevel\n }\n return this._instance\n}\n\nLog.setLevel = function(level) { this.getInstance().level = level }\n\nLog.debug = function() { this.getInstance().debug.apply(this.getInstance(), arguments) }\nLog.info = function() { this.getInstance().info.apply(this.getInstance(), arguments) }\nLog.warn = function() { this.getInstance().warn.apply(this.getInstance(), arguments) }\nLog.error = function() { this.getInstance().error.apply(this.getInstance(), arguments) }\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/log/log.js","/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function() {\n for(var key in Kibo.KEY_NAMES_BY_CODE) {\n if(Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = (function() {\n if(document.addEventListener) {\n return function(element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n }\n else if(document.attachEvent) {\n return function(element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.unregisterEvent = (function() {\n if(document.removeEventListener) {\n return function(element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n }\n else if(document.detachEvent) {\n return function(element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.stringContains = function(string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function(string) {\n return string.toLowerCase().replace(/^./, function(match) { return match.toUpperCase(); });\n};\n\nKibo.isString = function(what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = (function() {\n if(Array.prototype.indexOf) {\n return function(haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n }\n else {\n return function(haystack, needle) {\n for(var i = 0; i < haystack.length; i++) {\n if(haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n})();\n\nKibo.extractModifiers = function(keyCombination) {\n var modifiers, i\n modifiers = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n}\n\nKibo.extractKey = function(keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for(i = 0; i < keys.length; i++) {\n if(!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function(keyCombination) {\n var result, key;\n\n if(Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if(key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n}\n\nKibo.keyName = function(keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function(keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function() {\n var i, that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function(upOrDown) {\n var that = this;\n return function(e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if(Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for(i = 0; i < registeredKeys.any.length; i++) {\n if((registeredKeys.any[i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if(registeredKeys[lastModifiersAndKey]) {\n for(i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if((registeredKeys[lastModifiersAndKey][i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function(upOrDown, newKeys, func) {\n var i, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function(upOrDown, newKeys, func) {\n var i, j, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(func === null) {\n delete registeredKeys[keys];\n } else {\n if(registeredKeys[keys]) {\n for(j = 0; j < registeredKeys[keys].length; j++) {\n if(String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function(keys) {\n return this.unregisterKeys('down', keys, null);\n}\n\nKibo.prototype.delegate = function(upOrDown, keys, func) {\n return (func !== null || func !== undefined) ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function(keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function(keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function(modifier) {\n if(!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function() {\n var result, i;\n\n result = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if(!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexport default Kibo\n\n\n\n// WEBPACK FOOTER //\n// ./src/vendor/kibo.js","import CoreFactory from './core_factory'\nexport default CoreFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseObject from '../../base/base_object'\nimport Core from '../core'\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class CoreFactory extends BaseObject {\n\n get loader() { return this.player.loader }\n\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n constructor(player) {\n super()\n this.player = player\n this._options = player.options\n }\n\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n create() {\n this.options.loader = this.loader\n this.core = new Core(this.options)\n this.addCorePlugins()\n this.core.createContainers(this.options)\n return this.core\n }\n\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n addCorePlugins() {\n this.loader.corePlugins.forEach((Plugin) => {\n const plugin = new Plugin(this.core)\n this.core.addPlugin(plugin)\n this.setupExternalInterface(plugin)\n })\n return this.core\n }\n\n setupExternalInterface(plugin) {\n const externalFunctions = plugin.getExternalInterface()\n for (const key in externalFunctions)\n this.player[key] = externalFunctions[key].bind(plugin)\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/core_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, Fullscreen, DomRecycler } from '../../base/utils'\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport Browser from '../../components/browser'\nimport ContainerFactory from '../../components/container_factory'\nimport MediaControl from '../../components/media_control'\nimport Mediator from '../../components/mediator'\nimport PlayerInfo from '../../components/player_info'\n\nimport Styler from '../../base/styler'\n\nimport $ from 'clappr-zepto'\n\nimport './public/style.scss'\nimport fontStyle from './public/fonts.css'\n\nlet style\n\n/**\n * The Core is responsible to manage Containers, the mediator, MediaControl\n * and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\nexport default class Core extends UIObject {\n get events() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'showMediaControl',\n 'mouseleave': 'hideMediaControl'\n }\n }\n\n get attributes() {\n return {\n 'data-player': '',\n tabindex: 9999\n }\n }\n\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n get isReady() {\n return !!this.ready\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this.getPlugin('strings') || { t: (key) => key }\n }\n\n constructor(options) {\n super(options)\n this.configureDomRecycler()\n this.playerInfo = PlayerInfo.getInstance(options.playerId)\n this.firstResize = true\n this.plugins = []\n this.containers = []\n this.setupMediaControl(null)\n //FIXME fullscreen api sucks\n this._boundFullscreenHandler = () => this.handleFullscreenChange()\n $(document).bind('fullscreenchange', this._boundFullscreenHandler)\n $(document).bind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).bind('mozfullscreenchange', this._boundFullscreenHandler)\n Browser.isMobile && $(window).bind('resize', (o) => { this.handleWindowResize(o) })\n }\n\n configureDomRecycler() {\n let recycleVideo = (this.options && this.options.playback && this.options.playback.recycleVideo) ? true : false\n DomRecycler.configure({\n recycleVideo: recycleVideo\n })\n }\n\n createContainers(options) {\n this.defer = $.Deferred()\n this.defer.promise(this)\n this.containerFactory = new ContainerFactory(options, options.loader, this.i18n)\n this.containerFactory\n .createContainers()\n .then((containers) => this.setupContainers(containers))\n .then((containers) => this.resolveOnContainersReady(containers))\n }\n\n updateSize() {\n if (Fullscreen.isFullscreen())\n this.setFullscreen()\n else\n this.setPlayerSize()\n\n }\n\n setFullscreen() {\n if(!Browser.isiOS) {\n this.$el.addClass('fullscreen')\n this.$el.removeAttr('style')\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.playerInfo.currentSize = { width: $(window).width(), height: $(window).height() }\n }\n }\n\n setPlayerSize() {\n this.$el.removeClass('fullscreen')\n this.playerInfo.currentSize = this.playerInfo.previousSize\n this.playerInfo.previousSize = { width: $(window).width(), height: $(window).height() }\n this.resize(this.playerInfo.currentSize)\n }\n\n resize(options) {\n if (!isNumber(options.height) && !isNumber(options.width)) {\n this.el.style.height = `${options.height}`\n this.el.style.width = `${options.width}`\n } else {\n this.el.style.height = `${options.height}px`\n this.el.style.width = `${options.width}px`\n }\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.options.width = options.width\n this.options.height = options.height\n this.playerInfo.currentSize = options\n this.triggerResize(this.playerInfo.currentSize)\n }\n\n enableResizeObserver() {\n const checkSizeCallback = () => {\n if (this.playerInfo.computedSize.width !== this.el.clientWidth ||\n this.playerInfo.computedSize.height !== this.el.clientHeight) {\n this.playerInfo.computedSize = { width: this.el.clientWidth, height: this.el.clientHeight }\n this.triggerResize(this.playerInfo.computedSize)\n }\n }\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500)\n }\n\n triggerResize(newSize) {\n const thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width\n if (thereWasChange) {\n Mediator.trigger(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, newSize)\n this.oldHeight = newSize.height\n this.oldWidth = newSize.width\n this.firstResize = false\n }\n }\n\n disableResizeObserver() {\n if (this.resizeObserverInterval) clearInterval(this.resizeObserverInterval)\n }\n\n resolveOnContainersReady(containers) {\n $.when.apply($, containers).done(() => {\n this.defer.resolve(this)\n this.ready = true\n this.trigger(Events.CORE_READY)\n })\n }\n\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n load(sources, mimeType) {\n this.options.mimeType = mimeType\n sources = sources && sources.constructor === Array ? sources : [sources]\n this.containers.forEach((container) => container.destroy())\n this.mediaControl.container = null\n this.containerFactory.options = $.extend(this.options, { sources })\n this.containerFactory.createContainers().then((containers) => {\n this.setupContainers(containers)\n })\n }\n\n destroy() {\n this.disableResizeObserver()\n this.containers.forEach((container) => container.destroy())\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n this.mediaControl.destroy()\n $(document).unbind('fullscreenchange', this._boundFullscreenHandler)\n $(document).unbind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).unbind('mozfullscreenchange', this._boundFullscreenHandler)\n }\n\n handleFullscreenChange() {\n this.trigger(Events.CORE_FULLSCREEN, Fullscreen.isFullscreen())\n this.updateSize()\n this.mediaControl.show()\n }\n\n handleWindowResize(event) {\n let orientation = ($(window).width() > $(window).height()) ? 'landscape' : 'portrait'\n if (this._screenOrientation === orientation) return\n this._screenOrientation = orientation\n\n this.trigger(Events.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n })\n }\n\n setMediaControlContainer(container) {\n this.mediaControl.setContainer(container)\n this.mediaControl.render()\n }\n\n disableMediaControl() {\n this.mediaControl.disable()\n this.$el.removeClass('nocursor')\n }\n\n enableMediaControl() {\n this.mediaControl.enable()\n }\n\n removeContainer(container) {\n this.stopListening(container)\n this.containers = this.containers.filter((c) => c !== container)\n }\n\n appendContainer(container) {\n this.listenTo(container, Events.CONTAINER_DESTROYED, this.removeContainer)\n this.containers.push(container)\n }\n\n setupContainers(containers) {\n containers.map(this.appendContainer.bind(this))\n this.trigger(Events.CORE_CONTAINERS_CREATED)\n this.renderContainers()\n this.setupMediaControl(this.getCurrentContainer())\n this.render()\n this.appendToParent()\n return this.containers\n }\n\n renderContainers() {\n this.containers.map((container) => this.el.appendChild(container.render().el))\n }\n\n createContainer(source, options) {\n const container = this.containerFactory.createContainer(source, options)\n this.appendContainer(container)\n this.el.appendChild(container.render().el)\n return container\n }\n\n setupMediaControl(container) {\n if (this.mediaControl) { this.mediaControl.setContainer(container) } else {\n this.mediaControl = this.createMediaControl($.extend({ container: container, focusElement: this.el }, this.options))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_FULLSCREEN, this.toggleFullscreen)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_SHOW, this.onMediaControlShow.bind(this, true))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_HIDE, this.onMediaControlShow.bind(this, false))\n }\n }\n\n createMediaControl(options) {\n if(options.mediacontrol && options.mediacontrol.external)\n return new options.mediacontrol.external(options).render()\n else\n return new MediaControl(options).render()\n\n }\n\n getCurrentContainer() {\n if (!this.mediaControl || !this.mediaControl.container)\n return this.containers[0]\n\n return this.mediaControl.container\n }\n\n getCurrentPlayback() {\n const container = this.getCurrentContainer()\n return container && container.playback\n }\n\n getPlaybackType() {\n const container = this.getCurrentContainer()\n return container && container.getPlaybackType()\n }\n\n toggleFullscreen() {\n if (!Fullscreen.isFullscreen()) {\n Fullscreen.requestFullscreen(this.el)\n if(!Browser.isiOS)\n this.$el.addClass('fullscreen')\n\n } else {\n Fullscreen.cancelFullscreen()\n if(!Browser.isiOS)\n this.$el.removeClass('fullscreen nocursor')\n\n }\n this.mediaControl.show()\n }\n\n showMediaControl(event) {\n this.mediaControl.show(event)\n }\n\n hideMediaControl() {\n this.mediaControl.hide(this.options.hideMediaControlDelay)\n }\n\n onMediaControlShow(showing) {\n this.getCurrentContainer().trigger(showing?Events.CONTAINER_MEDIACONTROL_SHOW:Events.CONTAINER_MEDIACONTROL_HIDE)\n\n if (showing)\n this.$el.removeClass('nocursor')\n else if (Fullscreen.isFullscreen())\n this.$el.addClass('nocursor')\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.configureDomRecycler()\n const sources = options.source || options.sources\n\n if (sources) { this.load(sources, options.mimeType || this.options.mimeType) } else {\n this.trigger(Events.CORE_OPTIONS_CHANGE)\n\n this.containers.forEach((container) => {\n container.configure(this.options)\n })\n }\n }\n\n appendToParent() {\n let hasCoreParent = this.$el.parent() && this.$el.parent().length\n !hasCoreParent && this.$el.appendTo(this.options.parentElement)\n }\n\n render() {\n this.$el.append(this.mediaControl.render().el)\n\n if (!style)\n style = Styler.getStyleFor(fontStyle, { baseUrl: this.options.baseUrl })\n\n $('head').append(style)\n\n this.options.width = this.options.width || this.$el.width()\n this.options.height = this.options.height || this.$el.height()\n const size = { width: this.options.width, height: this.options.height }\n this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size\n this.updateSize()\n\n this.previousSize = { width: this.$el.width(), height: this.$el.height() }\n\n this.enableResizeObserver()\n\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core/core.js","import ContainerFactory from './container_factory'\nexport default ContainerFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The ContainerFactory is responsible for manage playback bootstrap and create containers.\n */\n\nimport BaseObject from '../../base/base_object'\nimport Events from '../../base/events'\nimport Container from '../../components/container'\nimport $ from 'clappr-zepto'\n\nexport default class ContainerFactory extends BaseObject {\n get options() { return this._options }\n set options(options) { this._options = options }\n\n constructor(options, loader, i18n) {\n super(options)\n this._i18n = i18n\n this.loader = loader\n }\n\n createContainers() {\n return $.Deferred((promise) => {\n promise.resolve(this.options.sources.map((source) => {\n return this.createContainer(source)\n }))\n })\n }\n\n findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(p => p.canPlay(source, mimeType))[0]\n }\n\n createContainer(source) {\n let resolvedSource = null,\n mimeType = this.options.mimeType\n if (typeof source === 'object') {\n resolvedSource = source.source.toString()\n if (source.mimeType)\n mimeType = source.mimeType\n\n } else { resolvedSource = source.toString() }\n\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource\n\n let options = $.extend({}, this.options, {\n src: resolvedSource,\n mimeType: mimeType\n })\n const playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType)\n const playback = new playbackPlugin(options, this._i18n)\n\n options = $.extend({}, options, { playback: playback })\n\n const container = new Container(options, this._i18n)\n const defer = $.Deferred()\n defer.promise(container)\n this.addContainerPlugins(container)\n this.listenToOnce(container, Events.CONTAINER_READY, () => defer.resolve(container))\n return container\n }\n\n addContainerPlugins(container) {\n this.loader.containerPlugins.forEach((Plugin) => {\n container.addPlugin(new Plugin(container))\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/container_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Container is responsible for the video rendering and state\n */\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\n\nimport './public/style.scss'\n\nimport $ from 'clappr-zepto'\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class Container extends UIObject {\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get name() { return 'Container' }\n get attributes() { return { class: 'container', 'data-container': '' } }\n get events() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'doubleTap': 'dblClicked',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.playback.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.playback.buffering\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this._i18n\n }\n\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n get hasClosedCaptionsTracks() {\n return this.playback.hasClosedCaptionsTracks\n }\n\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n get closedCaptionsTracks() {\n return this.playback.closedCaptionsTracks\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n get closedCaptionsTrackId() {\n return this.playback.closedCaptionsTrackId\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n set closedCaptionsTrackId(trackId) {\n this.playback.closedCaptionsTrackId = trackId\n }\n\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n constructor(options, i18n) {\n super(options)\n this._i18n = i18n\n this.currentTime = 0\n this.volume = 100\n this.playback = options.playback\n this.settings = $.extend({}, this.playback.settings)\n this.isReady = false\n this.mediaControlDisabled = false\n this.plugins = [this.playback]\n this.bindEvents()\n }\n\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n bindEvents() {\n this.listenTo(this.playback, Events.PLAYBACK_PROGRESS, this.progress)\n this.listenTo(this.playback, Events.PLAYBACK_TIMEUPDATE, this.timeUpdated)\n this.listenTo(this.playback, Events.PLAYBACK_READY, this.ready)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERING, this.onBuffering)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERFULL, this.bufferfull)\n this.listenTo(this.playback, Events.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_LOADEDMETADATA, this.loadedMetadata)\n this.listenTo(this.playback, Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_BITRATE, this.updateBitrate)\n this.listenTo(this.playback, Events.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_DVR, this.playbackDvrStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_SEEKED, this.onSeeked)\n this.listenTo(this.playback, Events.PLAYBACK_ENDED, this.onEnded)\n this.listenTo(this.playback, Events.PLAYBACK_PLAY, this.playing)\n this.listenTo(this.playback, Events.PLAYBACK_PAUSE, this.paused)\n this.listenTo(this.playback, Events.PLAYBACK_STOP, this.stopped)\n this.listenTo(this.playback, Events.PLAYBACK_ERROR, this.error)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged)\n }\n\n subtitleAvailable() {\n this.trigger(Events.CONTAINER_SUBTITLE_AVAILABLE)\n }\n\n subtitleChanged(track) {\n this.trigger(Events.CONTAINER_SUBTITLE_CHANGED, track)\n }\n\n playbackStateChanged(state) {\n this.trigger(Events.CONTAINER_PLAYBACKSTATE, state)\n }\n\n playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings\n this.dvrInUse = dvrInUse\n this.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse)\n }\n\n updateBitrate(newBitrate) {\n this.trigger(Events.CONTAINER_BITRATE, newBitrate)\n }\n\n statsReport(metrics) {\n this.trigger(Events.CONTAINER_STATS_REPORT, metrics)\n }\n\n getPlaybackType() {\n return this.playback.getPlaybackType()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return !!this.playback.dvrEnabled\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return !!this.dvrInUse\n }\n\n /**\n * destroys the container\n * @method destroy\n */\n destroy() {\n this.trigger(Events.CONTAINER_DESTROYED, this, this.name)\n this.stopListening()\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n }\n\n setStyle(style) {\n this.$el.css(style)\n }\n\n animate(style, duration) {\n return this.$el.animate(style, duration).promise()\n }\n\n ready() {\n this.isReady = true\n this.trigger(Events.CONTAINER_READY, this.name)\n }\n\n isPlaying() {\n return this.playback.isPlaying()\n }\n\n getStartTimeOffset() {\n return this.playback.getStartTimeOffset()\n }\n\n getCurrentTime() {\n return this.currentTime\n }\n\n getDuration() {\n return this.playback.getDuration()\n }\n\n error(errorObj) {\n if (!this.isReady)\n this.ready()\n\n this.trigger(Events.CONTAINER_ERROR, { error: errorObj, container: this }, this.name)\n }\n\n loadedMetadata(metadata) {\n this.trigger(Events.CONTAINER_LOADEDMETADATA, metadata)\n }\n\n timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current\n this.trigger(Events.CONTAINER_TIMEUPDATE, timeProgress, this.name)\n }\n\n progress(...args) {\n this.trigger(Events.CONTAINER_PROGRESS, ...args, this.name)\n }\n\n playing() {\n this.trigger(Events.CONTAINER_PLAY, this.name)\n }\n\n paused() {\n this.trigger(Events.CONTAINER_PAUSE, this.name)\n }\n\n /**\n * plays the playback\n * @method play\n */\n play() {\n this.playback.play()\n }\n\n /**\n * stops the playback\n * @method stop\n */\n stop() {\n this.playback.stop()\n this.currentTime = 0\n }\n\n /**\n * pauses the playback\n * @method pause\n */\n pause() {\n this.playback.pause()\n }\n\n onEnded() {\n this.trigger(Events.CONTAINER_ENDED, this, this.name)\n this.currentTime = 0\n }\n\n stopped() {\n this.trigger(Events.CONTAINER_STOP)\n }\n\n clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CLICK, this, this.name)\n\n }\n\n dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_DBLCLICK, this, this.name)\n\n }\n\n onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CONTEXTMENU, event, this.name)\n\n }\n\n seek(time) {\n this.trigger(Events.CONTAINER_SEEK, time, this.name)\n this.playback.seek(time)\n }\n\n onSeeked() {\n this.trigger(Events.CONTAINER_SEEKED, this.name)\n }\n\n seekPercentage(percentage) {\n const duration = this.getDuration()\n if (percentage >= 0 && percentage <= 100) {\n const time = duration * (percentage / 100)\n this.seek(time)\n }\n }\n\n setVolume(value) {\n this.volume = parseInt(value, 10)\n this.trigger(Events.CONTAINER_VOLUME, value, this.name)\n this.playback.volume(value)\n }\n\n fullscreen() {\n this.trigger(Events.CONTAINER_FULLSCREEN, this.name)\n }\n\n onBuffering() {\n this.trigger(Events.CONTAINER_STATE_BUFFERING, this.name)\n }\n\n bufferfull() {\n this.trigger(Events.CONTAINER_STATE_BUFFERFULL, this.name)\n }\n\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_ENTER)\n\n }\n\n mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_LEAVE)\n\n }\n\n settingsUpdate() {\n this.settings = this.playback.settings\n this.trigger(Events.CONTAINER_SETTINGSUPDATE)\n }\n\n highDefinitionUpdate(isHD) {\n this.trigger(Events.CONTAINER_HIGHDEFINITIONUPDATE, isHD)\n }\n\n isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse()\n }\n\n disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true\n this.trigger(Events.CONTAINER_MEDIACONTROL_DISABLE)\n }\n }\n\n enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false\n this.trigger(Events.CONTAINER_MEDIACONTROL_ENABLE)\n }\n }\n\n updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.$el.removeClass('chromeless')\n else\n this.$el.addClass('chromeless')\n\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.updateStyle()\n this.trigger(Events.CONTAINER_OPTIONS_CHANGE)\n }\n\n render() {\n this.$el.append(this.playback.render().el)\n this.updateStyle()\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container/container.js","// style-loader: Adds some css to the DOM by adding a ').html((0, _template2.default)(style.toString())(options));\n }\n};\n\nexports.default = Styler;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _loader = __webpack_require__(153);\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _loader2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(155), __esModule: true };\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _html5_audio = __webpack_require__(167);\n\nvar _html5_audio2 = _interopRequireDefault(_html5_audio);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _html5_audio2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _html_img = __webpack_require__(168);\n\nvar _html_img2 = _interopRequireDefault(_html_img);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _html_img2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _no_op = __webpack_require__(171);\n\nvar _no_op2 = _interopRequireDefault(_no_op);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _no_op2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _poster = __webpack_require__(187);\n\nvar _poster2 = _interopRequireDefault(_poster);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _poster2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _player = __webpack_require__(85);\n\nvar _player2 = _interopRequireDefault(_player);\n\nvar _utils = __webpack_require__(5);\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _events = __webpack_require__(4);\n\nvar _events2 = _interopRequireDefault(_events);\n\nvar _playback = __webpack_require__(12);\n\nvar _playback2 = _interopRequireDefault(_playback);\n\nvar _container_plugin = __webpack_require__(36);\n\nvar _container_plugin2 = _interopRequireDefault(_container_plugin);\n\nvar _core_plugin = __webpack_require__(30);\n\nvar _core_plugin2 = _interopRequireDefault(_core_plugin);\n\nvar _ui_core_plugin = __webpack_require__(37);\n\nvar _ui_core_plugin2 = _interopRequireDefault(_ui_core_plugin);\n\nvar _ui_container_plugin = __webpack_require__(35);\n\nvar _ui_container_plugin2 = _interopRequireDefault(_ui_container_plugin);\n\nvar _base_object = __webpack_require__(16);\n\nvar _base_object2 = _interopRequireDefault(_base_object);\n\nvar _ui_object = __webpack_require__(20);\n\nvar _ui_object2 = _interopRequireDefault(_ui_object);\n\nvar _browser = __webpack_require__(24);\n\nvar _browser2 = _interopRequireDefault(_browser);\n\nvar _container = __webpack_require__(73);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _core = __webpack_require__(72);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _loader = __webpack_require__(78);\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nvar _mediator = __webpack_require__(56);\n\nvar _mediator2 = _interopRequireDefault(_mediator);\n\nvar _media_control = __webpack_require__(74);\n\nvar _media_control2 = _interopRequireDefault(_media_control);\n\nvar _player_info = __webpack_require__(34);\n\nvar _player_info2 = _interopRequireDefault(_player_info);\n\nvar _base_flash_playback = __webpack_require__(21);\n\nvar _base_flash_playback2 = _interopRequireDefault(_base_flash_playback);\n\nvar _flash = __webpack_require__(21);\n\nvar _flash2 = _interopRequireDefault(_flash);\n\nvar _flashls = __webpack_require__(21);\n\nvar _flashls2 = _interopRequireDefault(_flashls);\n\nvar _hls = __webpack_require__(21);\n\nvar _hls2 = _interopRequireDefault(_hls);\n\nvar _html5_audio = __webpack_require__(80);\n\nvar _html5_audio2 = _interopRequireDefault(_html5_audio);\n\nvar _html5_video = __webpack_require__(58);\n\nvar _html5_video2 = _interopRequireDefault(_html5_video);\n\nvar _html_img = __webpack_require__(81);\n\nvar _html_img2 = _interopRequireDefault(_html_img);\n\nvar _no_op = __webpack_require__(82);\n\nvar _no_op2 = _interopRequireDefault(_no_op);\n\nvar _poster = __webpack_require__(83);\n\nvar _poster2 = _interopRequireDefault(_poster);\n\nvar _log = __webpack_require__(71);\n\nvar _log2 = _interopRequireDefault(_log);\n\nvar _styler = __webpack_require__(77);\n\nvar _styler2 = _interopRequireDefault(_styler);\n\nvar _vendor = __webpack_require__(54);\n\nvar _vendor2 = _interopRequireDefault(_vendor);\n\nvar _template = __webpack_require__(10);\n\nvar _template2 = _interopRequireDefault(_template);\n\nvar _clapprZepto = __webpack_require__(6);\n\nvar _clapprZepto2 = _interopRequireDefault(_clapprZepto);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar version = \"0.2.83\"; // Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nexports.default = {\n Player: _player2.default,\n Mediator: _mediator2.default,\n Events: _events2.default,\n Browser: _browser2.default,\n PlayerInfo: _player_info2.default,\n MediaControl: _media_control2.default,\n ContainerPlugin: _container_plugin2.default,\n UIContainerPlugin: _ui_container_plugin2.default,\n CorePlugin: _core_plugin2.default,\n UICorePlugin: _ui_core_plugin2.default,\n Playback: _playback2.default,\n Container: _container2.default,\n Core: _core2.default,\n Loader: _loader2.default,\n BaseObject: _base_object2.default,\n UIObject: _ui_object2.default,\n Utils: _utils2.default,\n BaseFlashPlayback: _base_flash_playback2.default,\n Flash: _flash2.default,\n FlasHLS: _flashls2.default,\n HLS: _hls2.default,\n HTML5Audio: _html5_audio2.default,\n HTML5Video: _html5_video2.default,\n HTMLImg: _html_img2.default,\n NoOp: _no_op2.default,\n Poster: _poster2.default,\n Log: _log2.default,\n Styler: _styler2.default,\n Vendor: _vendor2.default,\n version: version,\n template: _template2.default,\n $: _clapprZepto2.default\n};\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _keys = __webpack_require__(31);\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _utils = __webpack_require__(5);\n\nvar _base_object = __webpack_require__(16);\n\nvar _base_object2 = _interopRequireDefault(_base_object);\n\nvar _events = __webpack_require__(4);\n\nvar _events2 = _interopRequireDefault(_events);\n\nvar _browser = __webpack_require__(24);\n\nvar _browser2 = _interopRequireDefault(_browser);\n\nvar _core_factory = __webpack_require__(128);\n\nvar _core_factory2 = _interopRequireDefault(_core_factory);\n\nvar _loader = __webpack_require__(78);\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nvar _player_info = __webpack_require__(34);\n\nvar _player_info2 = _interopRequireDefault(_player_info);\n\nvar _clapprZepto = __webpack_require__(6);\n\nvar _clapprZepto2 = _interopRequireDefault(_clapprZepto);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nvar baseUrl = (0, _utils.currentScriptUrl)().replace(/\\/[^/]+$/, '');\n\n/**\n * @class Player\n * @constructor\n * @extends BaseObject\n * @module components\n * @example\n * ### Using the Player\n *\n * Add the following script on your HTML:\n * ```html\n * \n * \n * \n * ```\n * Now, create the player:\n * ```html\n * \n *
\n * \n * \n * ```\n */\n\nvar Player = function (_BaseObject) {\n (0, _inherits3.default)(Player, _BaseObject);\n (0, _createClass3.default)(Player, [{\n key: 'loader',\n set: function set(loader) {\n this._loader = loader;\n },\n get: function get() {\n if (!this._loader) this._loader = new _loader2.default(this.options.plugins || {}, this.options.playerId);\n\n return this._loader;\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n\n }, {\n key: 'ended',\n get: function get() {\n return this.core.mediaControl.container.ended;\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n\n }, {\n key: 'buffering',\n get: function get() {\n return this.core.mediaControl.container.buffering;\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n\n }, {\n key: 'isReady',\n get: function get() {\n return !!this._ready;\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n\n }, {\n key: 'eventsMapping',\n get: function get() {\n return {\n onReady: _events2.default.PLAYER_READY,\n onResize: _events2.default.PLAYER_RESIZE,\n onPlay: _events2.default.PLAYER_PLAY,\n onPause: _events2.default.PLAYER_PAUSE,\n onStop: _events2.default.PLAYER_STOP,\n onEnded: _events2.default.PLAYER_ENDED,\n onSeek: _events2.default.PLAYER_SEEK,\n onError: _events2.default.PLAYER_ERROR,\n onTimeUpdate: _events2.default.PLAYER_TIMEUPDATE,\n onVolumeUpdate: _events2.default.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: _events2.default.PLAYER_SUBTITLE_AVAILABLE\n };\n }\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {String} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload]\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength]\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu]\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n */\n\n }]);\n\n function Player(options) {\n (0, _classCallCheck3.default)(this, Player);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _BaseObject.call(this, options));\n\n var defaultOptions = { playerId: (0, _utils.uniqueId)(''), persistConfig: true, width: 640, height: 360, baseUrl: baseUrl, allowUserInteraction: _browser2.default.isMobile };\n _this._options = _clapprZepto2.default.extend(defaultOptions, options);\n _this.options.sources = _this._normalizeSources(options);\n if (!_this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n _this.options.allowUserInteraction = true;\n }\n if (!_this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n _this.options.disableKeyboardShortcuts = true;\n }\n _this._registerOptionEventListeners();\n _this._coreFactory = new _core_factory2.default(_this);\n _this.playerInfo = _player_info2.default.getInstance(_this.options.playerId);\n _this.playerInfo.currentSize = { width: options.width, height: options.height };\n _this.playerInfo.options = _this.options;\n if (_this.options.parentId) _this.setParentId(_this.options.parentId);else if (_this.options.parent) _this.attachTo(_this.options.parent);\n\n return _this;\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n\n\n Player.prototype.setParentId = function setParentId(parentId) {\n var el = document.querySelector(parentId);\n if (el) this.attachTo(el);\n\n return this;\n };\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n\n\n Player.prototype.attachTo = function attachTo(element) {\n this.options.parentElement = element;\n this.core = this._coreFactory.create();\n this._addEventListeners();\n return this;\n };\n\n Player.prototype._addEventListeners = function _addEventListeners() {\n if (!this.core.isReady) this.listenToOnce(this.core, _events2.default.CORE_READY, this._onReady);else this._onReady();\n\n this.listenTo(this.core.mediaControl, _events2.default.MEDIACONTROL_CONTAINERCHANGED, this._containerChanged);\n this.listenTo(this.core, _events2.default.CORE_FULLSCREEN, this._onFullscreenChange);\n return this;\n };\n\n Player.prototype._addContainerEventListeners = function _addContainerEventListeners() {\n var container = this.core.mediaControl.container;\n if (container) {\n this.listenTo(container, _events2.default.CONTAINER_PLAY, this._onPlay);\n this.listenTo(container, _events2.default.CONTAINER_PAUSE, this._onPause);\n this.listenTo(container, _events2.default.CONTAINER_STOP, this._onStop);\n this.listenTo(container, _events2.default.CONTAINER_ENDED, this._onEnded);\n this.listenTo(container, _events2.default.CONTAINER_SEEK, this._onSeek);\n this.listenTo(container, _events2.default.CONTAINER_ERROR, this._onError);\n this.listenTo(container, _events2.default.CONTAINER_TIMEUPDATE, this._onTimeUpdate);\n this.listenTo(container, _events2.default.CONTAINER_VOLUME, this._onVolumeUpdate);\n this.listenTo(container, _events2.default.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable);\n }\n return this;\n };\n\n Player.prototype._registerOptionEventListeners = function _registerOptionEventListeners() {\n var _this2 = this;\n\n var userEvents = this.options.events || {};\n (0, _keys2.default)(userEvents).forEach(function (userEvent) {\n var eventType = _this2.eventsMapping[userEvent];\n if (eventType) {\n var eventFunction = userEvents[userEvent];\n eventFunction = typeof eventFunction === 'function' && eventFunction;\n eventFunction && _this2.on(eventType, eventFunction);\n }\n });\n return this;\n };\n\n Player.prototype._containerChanged = function _containerChanged() {\n this.stopListening();\n this._addEventListeners();\n };\n\n Player.prototype._onReady = function _onReady() {\n this._ready = true;\n this._addContainerEventListeners();\n this.trigger(_events2.default.PLAYER_READY);\n };\n\n Player.prototype._onFullscreenChange = function _onFullscreenChange(fullscreen) {\n this.trigger(_events2.default.PLAYER_FULLSCREEN, fullscreen);\n };\n\n Player.prototype._onVolumeUpdate = function _onVolumeUpdate(volume) {\n this.trigger(_events2.default.PLAYER_VOLUMEUPDATE, volume);\n };\n\n Player.prototype._onSubtitleAvailable = function _onSubtitleAvailable() {\n this.trigger(_events2.default.PLAYER_SUBTITLE_AVAILABLE);\n };\n\n Player.prototype._onPlay = function _onPlay() {\n this.trigger(_events2.default.PLAYER_PLAY);\n };\n\n Player.prototype._onPause = function _onPause() {\n this.trigger(_events2.default.PLAYER_PAUSE);\n };\n\n Player.prototype._onStop = function _onStop() {\n this.trigger(_events2.default.PLAYER_STOP, this.getCurrentTime());\n };\n\n Player.prototype._onEnded = function _onEnded() {\n this.trigger(_events2.default.PLAYER_ENDED);\n };\n\n Player.prototype._onSeek = function _onSeek(time) {\n this.trigger(_events2.default.PLAYER_SEEK, time);\n };\n\n Player.prototype._onTimeUpdate = function _onTimeUpdate(timeProgress) {\n this.trigger(_events2.default.PLAYER_TIMEUPDATE, timeProgress);\n };\n\n Player.prototype._onError = function _onError(error) {\n this.trigger(_events2.default.PLAYER_ERROR, error);\n };\n\n Player.prototype._normalizeSources = function _normalizeSources(options) {\n var sources = options.sources || (options.source !== undefined ? [options.source] : []);\n return sources.length === 0 ? [{ source: '', mimeType: '' }] : sources;\n };\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n\n\n Player.prototype.resize = function resize(size) {\n this.core.resize(size);\n return this;\n };\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <>, mimeType: <>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n\n\n Player.prototype.load = function load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined) this.configure({ autoPlay: !!autoPlay });\n\n this.core.load(sources, mimeType);\n return this;\n };\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n\n\n Player.prototype.destroy = function destroy() {\n this.core.destroy();\n return this;\n };\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n\n\n Player.prototype.consent = function consent() {\n this.core.getCurrentPlayback().consent();\n return this;\n };\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n\n\n Player.prototype.play = function play() {\n this.core.mediaControl.container.play();\n return this;\n };\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n\n\n Player.prototype.pause = function pause() {\n this.core.mediaControl.container.pause();\n return this;\n };\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n\n\n Player.prototype.stop = function stop() {\n this.core.mediaControl.container.stop();\n return this;\n };\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n\n\n Player.prototype.seek = function seek(time) {\n this.core.mediaControl.container.seek(time);\n return this;\n };\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n\n\n Player.prototype.seekPercentage = function seekPercentage(percentage) {\n this.core.mediaControl.container.seekPercentage(percentage);\n return this;\n };\n\n /**\n * Set the volume for the current video (`source`).\n * @method setVolume\n * @param {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n * @return {Player} itself\n */\n\n\n Player.prototype.setVolume = function setVolume(volume) {\n if (this.core && this.core.mediaControl) this.core.mediaControl.setVolume(volume);\n\n return this;\n };\n\n /**\n * Get the volume for the current video\n * @method getVolume\n * @return {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n */\n\n\n Player.prototype.getVolume = function getVolume() {\n return this.core && this.core.mediaControl ? this.core.mediaControl.volume : 0;\n };\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n\n\n Player.prototype.mute = function mute() {\n this._mutedVolume = this.getVolume();\n this.setVolume(0);\n return this;\n };\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n\n\n Player.prototype.unmute = function unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100);\n this._mutedVolume = null;\n return this;\n };\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n\n\n Player.prototype.isPlaying = function isPlaying() {\n return this.core.mediaControl.container.isPlaying();\n };\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n\n\n Player.prototype.isDvrEnabled = function isDvrEnabled() {\n return this.core.mediaControl.container.isDvrEnabled();\n };\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n\n\n Player.prototype.isDvrInUse = function isDvrInUse() {\n return this.core.mediaControl.container.isDvrInUse();\n };\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n\n\n Player.prototype.configure = function configure(options) {\n this.core.configure(options);\n return this;\n };\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n\n\n Player.prototype.getPlugin = function getPlugin(name) {\n var plugins = this.core.plugins.concat(this.core.mediaControl.container.plugins);\n return plugins.filter(function (plugin) {\n return plugin.name === name;\n })[0];\n };\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n\n\n Player.prototype.getCurrentTime = function getCurrentTime() {\n return this.core.mediaControl.container.getCurrentTime();\n };\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n\n\n Player.prototype.getStartTimeOffset = function getStartTimeOffset() {\n return this.core.mediaControl.container.getStartTimeOffset();\n };\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n\n\n Player.prototype.getDuration = function getDuration() {\n return this.core.mediaControl.container.getDuration();\n };\n\n return Player;\n}(_base_object2.default);\n\nexports.default = Player;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(87);\nmodule.exports = __webpack_require__(8).Object.keys;\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(38)\n , $keys = __webpack_require__(25);\n\n__webpack_require__(61)('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(40);\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(13)\n , toLength = __webpack_require__(60)\n , toIndex = __webpack_require__(90);\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(41)\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(93), __esModule: true };\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(64);\n__webpack_require__(99);\nmodule.exports = __webpack_require__(50).f('iterator');\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(41)\n , defined = __webpack_require__(39);\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(48)\n , descriptor = __webpack_require__(28)\n , setToStringTag = __webpack_require__(49)\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(22)(IteratorPrototype, __webpack_require__(11)('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(15)\n , anObject = __webpack_require__(23)\n , getKeys = __webpack_require__(25);\n\nmodule.exports = __webpack_require__(19) ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(14).document && document.documentElement;\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(17)\n , toObject = __webpack_require__(38)\n , IE_PROTO = __webpack_require__(42)('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(100);\nvar global = __webpack_require__(14)\n , hide = __webpack_require__(22)\n , Iterators = __webpack_require__(29)\n , TO_STRING_TAG = __webpack_require__(11)('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype;\n if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(101)\n , step = __webpack_require__(102)\n , Iterators = __webpack_require__(29)\n , toIObject = __webpack_require__(13);\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(65)(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(){ /* empty */ };\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(104), __esModule: true };\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(105);\n__webpack_require__(111);\n__webpack_require__(112);\n__webpack_require__(113);\nmodule.exports = __webpack_require__(8).Symbol;\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(14)\n , has = __webpack_require__(17)\n , DESCRIPTORS = __webpack_require__(19)\n , $export = __webpack_require__(18)\n , redefine = __webpack_require__(66)\n , META = __webpack_require__(106).KEY\n , $fails = __webpack_require__(27)\n , shared = __webpack_require__(43)\n , setToStringTag = __webpack_require__(49)\n , uid = __webpack_require__(32)\n , wks = __webpack_require__(11)\n , wksExt = __webpack_require__(50)\n , wksDefine = __webpack_require__(51)\n , keyOf = __webpack_require__(107)\n , enumKeys = __webpack_require__(108)\n , isArray = __webpack_require__(109)\n , anObject = __webpack_require__(23)\n , toIObject = __webpack_require__(13)\n , toPrimitive = __webpack_require__(46)\n , createDesc = __webpack_require__(28)\n , _create = __webpack_require__(48)\n , gOPNExt = __webpack_require__(110)\n , $GOPD = __webpack_require__(53)\n , $DP = __webpack_require__(15)\n , $keys = __webpack_require__(25)\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __webpack_require__(68).f = gOPNExt.f = $getOwnPropertyNames;\n __webpack_require__(52).f = $propertyIsEnumerable;\n __webpack_require__(67).f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !__webpack_require__(47)){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(22)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar META = __webpack_require__(32)('meta')\n , isObject = __webpack_require__(26)\n , has = __webpack_require__(17)\n , setDesc = __webpack_require__(15).f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !__webpack_require__(27)(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getKeys = __webpack_require__(25)\n , toIObject = __webpack_require__(13);\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// all enumerable object keys, includes symbols\nvar getKeys = __webpack_require__(25)\n , gOPS = __webpack_require__(67)\n , pIE = __webpack_require__(52);\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(40);\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = __webpack_require__(13)\n , gOPN = __webpack_require__(68).f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports) {\n\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(51)('asyncIterator');\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(51)('observable');\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(115);\nvar $Object = __webpack_require__(8).Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(18);\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !__webpack_require__(19), 'Object', {defineProperty: __webpack_require__(15).f});\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(117), __esModule: true };\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(118);\nmodule.exports = __webpack_require__(8).Object.setPrototypeOf;\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = __webpack_require__(18);\n$export($export.S, 'Object', {setPrototypeOf: __webpack_require__(119).set});\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = __webpack_require__(26)\n , anObject = __webpack_require__(23);\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = __webpack_require__(45)(Function.call, __webpack_require__(53).f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(121);\nvar $Object = __webpack_require__(8).Object;\nmodule.exports = function create(P, D){\n return $Object.create(P, D);\n};\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(18)\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: __webpack_require__(48)});\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(123), __esModule: true };\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(124);\nvar $Object = __webpack_require__(8).Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = __webpack_require__(13)\n , $getOwnPropertyDescriptor = __webpack_require__(53).f;\n\n__webpack_require__(61)('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function value(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null) throw new TypeError('\"this\" is null or not defined');\n\n var o = Object(this);\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n var len = o.length >>> 0;\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function') throw new TypeError('predicate must be a function');\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n var thisArg = arguments[1];\n\n // 5. Let k be 0.\n var k = 0;\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n var kValue = o[k];\n if (predicate.call(thisArg, kValue, k, o)) return kValue;\n\n // e. Increase k by 1.\n k++;\n }\n\n // 7. Return undefined.\n return undefined;\n }\n });\n}\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _vendor = __webpack_require__(54);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BOLD = 'font-weight: bold; font-size: 13px;';\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nvar INFO = 'color: #006600;' + BOLD;\nvar DEBUG = 'color: #0000ff;' + BOLD;\nvar WARN = 'color: #ff8000;' + BOLD;\nvar ERROR = 'color: #ff0000;' + BOLD;\n\nvar LEVEL_DEBUG = 0;\nvar LEVEL_INFO = 1;\nvar LEVEL_WARN = 2;\nvar LEVEL_ERROR = 3;\nvar LEVEL_DISABLED = LEVEL_ERROR;\n\nvar COLORS = [DEBUG, INFO, WARN, ERROR, ERROR];\nvar DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled'];\n\nvar Log = function () {\n function Log() {\n var _this = this;\n\n var level = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : LEVEL_INFO;\n var offLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : LEVEL_DISABLED;\n (0, _classCallCheck3.default)(this, Log);\n\n this.kibo = new _vendor.Kibo();\n this.kibo.down(['ctrl shift d'], function () {\n return _this.onOff();\n });\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress'];\n this.level = level;\n this.offLevel = offLevel;\n }\n\n Log.prototype.debug = function debug(klass) {\n this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1));\n };\n\n Log.prototype.info = function info(klass) {\n this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1));\n };\n\n Log.prototype.warn = function warn(klass) {\n this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1));\n };\n\n Log.prototype.error = function error(klass) {\n this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1));\n };\n\n Log.prototype.onOff = function onOff() {\n if (this.level === this.offLevel) {\n this.level = this.previousLevel;\n } else {\n this.previousLevel = this.level;\n this.level = this.offLevel;\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log) window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN);\n };\n\n Log.prototype.level = function level(newLevel) {\n this.level = newLevel;\n };\n\n Log.prototype.log = function log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return;\n if (level < this.level) return;\n\n if (!message) {\n message = klass;\n klass = null;\n }\n var color = COLORS[level];\n var klassDescription = '';\n if (klass) klassDescription = '[' + klass + ']';\n\n if (window.console && window.console.log) window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message));\n };\n\n return Log;\n}();\n\nexports.default = Log;\n\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG;\nLog.LEVEL_INFO = LEVEL_INFO;\nLog.LEVEL_WARN = LEVEL_WARN;\nLog.LEVEL_ERROR = LEVEL_ERROR;\n\nLog.getInstance = function () {\n if (this._instance === undefined) {\n this._instance = new this();\n this._instance.previousLevel = this._instance.level;\n this._instance.level = this._instance.offLevel;\n }\n return this._instance;\n};\n\nLog.setLevel = function (level) {\n this.getInstance().level = level;\n};\n\nLog.debug = function () {\n this.getInstance().debug.apply(this.getInstance(), arguments);\n};\nLog.info = function () {\n this.getInstance().info.apply(this.getInstance(), arguments);\n};\nLog.warn = function () {\n this.getInstance().warn.apply(this.getInstance(), arguments);\n};\nLog.error = function () {\n this.getInstance().error.apply(this.getInstance(), arguments);\n};\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function Kibo(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function () {\n for (var key in Kibo.KEY_NAMES_BY_CODE) {\n if (Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = function () {\n if (document.addEventListener) {\n return function (element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n } else if (document.attachEvent) {\n return function (element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n}();\n\nKibo.unregisterEvent = function () {\n if (document.removeEventListener) {\n return function (element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n } else if (document.detachEvent) {\n return function (element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n}();\n\nKibo.stringContains = function (string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function (string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function (string) {\n return string.toLowerCase().replace(/^./, function (match) {\n return match.toUpperCase();\n });\n};\n\nKibo.isString = function (what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = function () {\n if (Array.prototype.indexOf) {\n return function (haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n } else {\n return function (haystack, needle) {\n for (var i = 0; i < haystack.length; i++) {\n if (haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n}();\n\nKibo.extractModifiers = function (keyCombination) {\n var modifiers, i;\n modifiers = [];\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n if (Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n};\n\nKibo.extractKey = function (keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for (i = 0; i < keys.length; i++) {\n if (!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function (keyCombination) {\n var result, key;\n\n if (Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if (key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n};\n\nKibo.keyName = function (keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function (keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function () {\n var i,\n that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function (upOrDown) {\n var that = this;\n return function (e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if (Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for (i = 0; i < registeredKeys.any.length; i++) {\n if (registeredKeys.any[i](e) === false && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if (registeredKeys[lastModifiersAndKey]) {\n for (i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if (registeredKeys[lastModifiersAndKey][i](e) === false && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function (upOrDown, newKeys, func) {\n var i,\n keys,\n registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if (Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for (i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if (registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function (upOrDown, newKeys, func) {\n var i,\n j,\n keys,\n registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if (Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for (i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if (func === null) {\n delete registeredKeys[keys];\n } else {\n if (registeredKeys[keys]) {\n for (j = 0; j < registeredKeys[keys].length; j++) {\n if (String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function (keys) {\n return this.unregisterKeys('down', keys, null);\n};\n\nKibo.prototype.delegate = function (upOrDown, keys, func) {\n return func !== null || func !== undefined ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function (keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function (keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function (modifier) {\n if (!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function () {\n var result, i;\n\n result = [];\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n if (this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if (!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexports.default = Kibo;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core_factory = __webpack_require__(129);\n\nvar _core_factory2 = _interopRequireDefault(_core_factory);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _core_factory2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _base_object = __webpack_require__(16);\n\nvar _base_object2 = _interopRequireDefault(_base_object);\n\nvar _core = __webpack_require__(72);\n\nvar _core2 = _interopRequireDefault(_core);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nvar CoreFactory = function (_BaseObject) {\n (0, _inherits3.default)(CoreFactory, _BaseObject);\n (0, _createClass3.default)(CoreFactory, [{\n key: 'loader',\n get: function get() {\n return this.player.loader;\n }\n\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n\n }]);\n\n function CoreFactory(player) {\n (0, _classCallCheck3.default)(this, CoreFactory);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _BaseObject.call(this));\n\n _this.player = player;\n _this._options = player.options;\n return _this;\n }\n\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n\n\n CoreFactory.prototype.create = function create() {\n this.options.loader = this.loader;\n this.core = new _core2.default(this.options);\n this.addCorePlugins();\n this.core.createContainers(this.options);\n return this.core;\n };\n\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n\n\n CoreFactory.prototype.addCorePlugins = function addCorePlugins() {\n var _this2 = this;\n\n this.loader.corePlugins.forEach(function (Plugin) {\n var plugin = new Plugin(_this2.core);\n _this2.core.addPlugin(plugin);\n _this2.setupExternalInterface(plugin);\n });\n return this.core;\n };\n\n CoreFactory.prototype.setupExternalInterface = function setupExternalInterface(plugin) {\n var externalFunctions = plugin.getExternalInterface();\n for (var key in externalFunctions) {\n this.player[key] = externalFunctions[key].bind(plugin);\n }\n };\n\n return CoreFactory;\n}(_base_object2.default);\n\nexports.default = CoreFactory;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _utils = __webpack_require__(5);\n\nvar _events = __webpack_require__(4);\n\nvar _events2 = _interopRequireDefault(_events);\n\nvar _ui_object = __webpack_require__(20);\n\nvar _ui_object2 = _interopRequireDefault(_ui_object);\n\nvar _browser = __webpack_require__(24);\n\nvar _browser2 = _interopRequireDefault(_browser);\n\nvar _container_factory = __webpack_require__(131);\n\nvar _container_factory2 = _interopRequireDefault(_container_factory);\n\nvar _media_control = __webpack_require__(74);\n\nvar _media_control2 = _interopRequireDefault(_media_control);\n\nvar _mediator = __webpack_require__(56);\n\nvar _mediator2 = _interopRequireDefault(_mediator);\n\nvar _player_info = __webpack_require__(34);\n\nvar _player_info2 = _interopRequireDefault(_player_info);\n\nvar _styler = __webpack_require__(77);\n\nvar _styler2 = _interopRequireDefault(_styler);\n\nvar _clapprZepto = __webpack_require__(6);\n\nvar _clapprZepto2 = _interopRequireDefault(_clapprZepto);\n\n__webpack_require__(149);\n\nvar _fonts = __webpack_require__(151);\n\nvar _fonts2 = _interopRequireDefault(_fonts);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nvar style = void 0;\n\n/**\n * The Core is responsible to manage Containers, the mediator, MediaControl\n * and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\n\nvar Core = function (_UIObject) {\n (0, _inherits3.default)(Core, _UIObject);\n (0, _createClass3.default)(Core, [{\n key: 'events',\n get: function get() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'showMediaControl',\n 'mouseleave': 'hideMediaControl'\n };\n }\n }, {\n key: 'attributes',\n get: function get() {\n return {\n 'data-player': '',\n tabindex: 9999\n };\n }\n\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n\n }, {\n key: 'isReady',\n get: function get() {\n return !!this.ready;\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n\n }, {\n key: 'i18n',\n get: function get() {\n return this.getPlugin('strings') || { t: function t(key) {\n return key;\n } };\n }\n }]);\n\n function Core(options) {\n (0, _classCallCheck3.default)(this, Core);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _UIObject.call(this, options));\n\n _this.configureDomRecycler();\n _this.playerInfo = _player_info2.default.getInstance(options.playerId);\n _this.firstResize = true;\n _this.plugins = [];\n _this.containers = [];\n _this.setupMediaControl(null);\n //FIXME fullscreen api sucks\n _this._boundFullscreenHandler = function () {\n return _this.handleFullscreenChange();\n };\n (0, _clapprZepto2.default)(document).bind('fullscreenchange', _this._boundFullscreenHandler);\n (0, _clapprZepto2.default)(document).bind('MSFullscreenChange', _this._boundFullscreenHandler);\n (0, _clapprZepto2.default)(document).bind('mozfullscreenchange', _this._boundFullscreenHandler);\n _browser2.default.isMobile && (0, _clapprZepto2.default)(window).bind('resize', function (o) {\n _this.handleWindowResize(o);\n });\n return _this;\n }\n\n Core.prototype.configureDomRecycler = function configureDomRecycler() {\n var recycleVideo = this.options && this.options.playback && this.options.playback.recycleVideo ? true : false;\n _utils.DomRecycler.configure({\n recycleVideo: recycleVideo\n });\n };\n\n Core.prototype.createContainers = function createContainers(options) {\n var _this2 = this;\n\n this.defer = _clapprZepto2.default.Deferred();\n this.defer.promise(this);\n this.containerFactory = new _container_factory2.default(options, options.loader, this.i18n);\n this.containerFactory.createContainers().then(function (containers) {\n return _this2.setupContainers(containers);\n }).then(function (containers) {\n return _this2.resolveOnContainersReady(containers);\n });\n };\n\n Core.prototype.updateSize = function updateSize() {\n if (_utils.Fullscreen.isFullscreen()) this.setFullscreen();else this.setPlayerSize();\n };\n\n Core.prototype.setFullscreen = function setFullscreen() {\n if (!_browser2.default.isiOS) {\n this.$el.addClass('fullscreen');\n this.$el.removeAttr('style');\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height };\n this.playerInfo.currentSize = { width: (0, _clapprZepto2.default)(window).width(), height: (0, _clapprZepto2.default)(window).height() };\n }\n };\n\n Core.prototype.setPlayerSize = function setPlayerSize() {\n this.$el.removeClass('fullscreen');\n this.playerInfo.currentSize = this.playerInfo.previousSize;\n this.playerInfo.previousSize = { width: (0, _clapprZepto2.default)(window).width(), height: (0, _clapprZepto2.default)(window).height() };\n this.resize(this.playerInfo.currentSize);\n };\n\n Core.prototype.resize = function resize(options) {\n if (!(0, _utils.isNumber)(options.height) && !(0, _utils.isNumber)(options.width)) {\n this.el.style.height = '' + options.height;\n this.el.style.width = '' + options.width;\n } else {\n this.el.style.height = options.height + 'px';\n this.el.style.width = options.width + 'px';\n }\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height };\n this.options.width = options.width;\n this.options.height = options.height;\n this.playerInfo.currentSize = options;\n this.triggerResize(this.playerInfo.currentSize);\n };\n\n Core.prototype.enableResizeObserver = function enableResizeObserver() {\n var _this3 = this;\n\n var checkSizeCallback = function checkSizeCallback() {\n if (_this3.playerInfo.computedSize.width !== _this3.el.clientWidth || _this3.playerInfo.computedSize.height !== _this3.el.clientHeight) {\n _this3.playerInfo.computedSize = { width: _this3.el.clientWidth, height: _this3.el.clientHeight };\n _this3.triggerResize(_this3.playerInfo.computedSize);\n }\n };\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500);\n };\n\n Core.prototype.triggerResize = function triggerResize(newSize) {\n var thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width;\n if (thereWasChange) {\n _mediator2.default.trigger(this.options.playerId + ':' + _events2.default.PLAYER_RESIZE, newSize);\n this.oldHeight = newSize.height;\n this.oldWidth = newSize.width;\n this.firstResize = false;\n }\n };\n\n Core.prototype.disableResizeObserver = function disableResizeObserver() {\n if (this.resizeObserverInterval) clearInterval(this.resizeObserverInterval);\n };\n\n Core.prototype.resolveOnContainersReady = function resolveOnContainersReady(containers) {\n var _this4 = this;\n\n _clapprZepto2.default.when.apply(_clapprZepto2.default, containers).done(function () {\n _this4.defer.resolve(_this4);\n _this4.ready = true;\n _this4.trigger(_events2.default.CORE_READY);\n });\n };\n\n Core.prototype.addPlugin = function addPlugin(plugin) {\n this.plugins.push(plugin);\n };\n\n Core.prototype.hasPlugin = function hasPlugin(name) {\n return !!this.getPlugin(name);\n };\n\n Core.prototype.getPlugin = function getPlugin(name) {\n return this.plugins.filter(function (plugin) {\n return plugin.name === name;\n })[0];\n };\n\n Core.prototype.load = function load(sources, mimeType) {\n var _this5 = this;\n\n this.options.mimeType = mimeType;\n sources = sources && sources.constructor === Array ? sources : [sources];\n this.containers.forEach(function (container) {\n return container.destroy();\n });\n this.mediaControl.container = null;\n this.containerFactory.options = _clapprZepto2.default.extend(this.options, { sources: sources });\n this.containerFactory.createContainers().then(function (containers) {\n _this5.setupContainers(containers);\n });\n };\n\n Core.prototype.destroy = function destroy() {\n this.disableResizeObserver();\n this.containers.forEach(function (container) {\n return container.destroy();\n });\n this.plugins.forEach(function (plugin) {\n return plugin.destroy();\n });\n this.$el.remove();\n this.mediaControl.destroy();\n (0, _clapprZepto2.default)(document).unbind('fullscreenchange', this._boundFullscreenHandler);\n (0, _clapprZepto2.default)(document).unbind('MSFullscreenChange', this._boundFullscreenHandler);\n (0, _clapprZepto2.default)(document).unbind('mozfullscreenchange', this._boundFullscreenHandler);\n };\n\n Core.prototype.handleFullscreenChange = function handleFullscreenChange() {\n this.trigger(_events2.default.CORE_FULLSCREEN, _utils.Fullscreen.isFullscreen());\n this.updateSize();\n this.mediaControl.show();\n };\n\n Core.prototype.handleWindowResize = function handleWindowResize(event) {\n var orientation = (0, _clapprZepto2.default)(window).width() > (0, _clapprZepto2.default)(window).height() ? 'landscape' : 'portrait';\n if (this._screenOrientation === orientation) return;\n this._screenOrientation = orientation;\n\n this.trigger(_events2.default.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n });\n };\n\n Core.prototype.setMediaControlContainer = function setMediaControlContainer(container) {\n this.mediaControl.setContainer(container);\n this.mediaControl.render();\n };\n\n Core.prototype.disableMediaControl = function disableMediaControl() {\n this.mediaControl.disable();\n this.$el.removeClass('nocursor');\n };\n\n Core.prototype.enableMediaControl = function enableMediaControl() {\n this.mediaControl.enable();\n };\n\n Core.prototype.removeContainer = function removeContainer(container) {\n this.stopListening(container);\n this.containers = this.containers.filter(function (c) {\n return c !== container;\n });\n };\n\n Core.prototype.appendContainer = function appendContainer(container) {\n this.listenTo(container, _events2.default.CONTAINER_DESTROYED, this.removeContainer);\n this.containers.push(container);\n };\n\n Core.prototype.setupContainers = function setupContainers(containers) {\n containers.map(this.appendContainer.bind(this));\n this.trigger(_events2.default.CORE_CONTAINERS_CREATED);\n this.renderContainers();\n this.setupMediaControl(this.getCurrentContainer());\n this.render();\n this.appendToParent();\n return this.containers;\n };\n\n Core.prototype.renderContainers = function renderContainers() {\n var _this6 = this;\n\n this.containers.map(function (container) {\n return _this6.el.appendChild(container.render().el);\n });\n };\n\n Core.prototype.createContainer = function createContainer(source, options) {\n var container = this.containerFactory.createContainer(source, options);\n this.appendContainer(container);\n this.el.appendChild(container.render().el);\n return container;\n };\n\n Core.prototype.setupMediaControl = function setupMediaControl(container) {\n if (this.mediaControl) {\n this.mediaControl.setContainer(container);\n } else {\n this.mediaControl = this.createMediaControl(_clapprZepto2.default.extend({ container: container, focusElement: this.el }, this.options));\n this.listenTo(this.mediaControl, _events2.default.MEDIACONTROL_FULLSCREEN, this.toggleFullscreen);\n this.listenTo(this.mediaControl, _events2.default.MEDIACONTROL_SHOW, this.onMediaControlShow.bind(this, true));\n this.listenTo(this.mediaControl, _events2.default.MEDIACONTROL_HIDE, this.onMediaControlShow.bind(this, false));\n }\n };\n\n Core.prototype.createMediaControl = function createMediaControl(options) {\n if (options.mediacontrol && options.mediacontrol.external) return new options.mediacontrol.external(options).render();else return new _media_control2.default(options).render();\n };\n\n Core.prototype.getCurrentContainer = function getCurrentContainer() {\n if (!this.mediaControl || !this.mediaControl.container) return this.containers[0];\n\n return this.mediaControl.container;\n };\n\n Core.prototype.getCurrentPlayback = function getCurrentPlayback() {\n var container = this.getCurrentContainer();\n return container && container.playback;\n };\n\n Core.prototype.getPlaybackType = function getPlaybackType() {\n var container = this.getCurrentContainer();\n return container && container.getPlaybackType();\n };\n\n Core.prototype.toggleFullscreen = function toggleFullscreen() {\n if (!_utils.Fullscreen.isFullscreen()) {\n _utils.Fullscreen.requestFullscreen(this.el);\n if (!_browser2.default.isiOS) this.$el.addClass('fullscreen');\n } else {\n _utils.Fullscreen.cancelFullscreen();\n if (!_browser2.default.isiOS) this.$el.removeClass('fullscreen nocursor');\n }\n this.mediaControl.show();\n };\n\n Core.prototype.showMediaControl = function showMediaControl(event) {\n this.mediaControl.show(event);\n };\n\n Core.prototype.hideMediaControl = function hideMediaControl() {\n this.mediaControl.hide(this.options.hideMediaControlDelay);\n };\n\n Core.prototype.onMediaControlShow = function onMediaControlShow(showing) {\n this.getCurrentContainer().trigger(showing ? _events2.default.CONTAINER_MEDIACONTROL_SHOW : _events2.default.CONTAINER_MEDIACONTROL_HIDE);\n\n if (showing) this.$el.removeClass('nocursor');else if (_utils.Fullscreen.isFullscreen()) this.$el.addClass('nocursor');\n };\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n\n\n Core.prototype.configure = function configure(options) {\n var _this7 = this;\n\n this._options = _clapprZepto2.default.extend(this._options, options);\n this.configureDomRecycler();\n var sources = options.source || options.sources;\n\n if (sources) {\n this.load(sources, options.mimeType || this.options.mimeType);\n } else {\n this.trigger(_events2.default.CORE_OPTIONS_CHANGE);\n\n this.containers.forEach(function (container) {\n container.configure(_this7.options);\n });\n }\n };\n\n Core.prototype.appendToParent = function appendToParent() {\n var hasCoreParent = this.$el.parent() && this.$el.parent().length;\n !hasCoreParent && this.$el.appendTo(this.options.parentElement);\n };\n\n Core.prototype.render = function render() {\n this.$el.append(this.mediaControl.render().el);\n\n if (!style) style = _styler2.default.getStyleFor(_fonts2.default, { baseUrl: this.options.baseUrl });\n\n (0, _clapprZepto2.default)('head').append(style);\n\n this.options.width = this.options.width || this.$el.width();\n this.options.height = this.options.height || this.$el.height();\n var size = { width: this.options.width, height: this.options.height };\n this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size;\n this.updateSize();\n\n this.previousSize = { width: this.$el.width(), height: this.$el.height() };\n\n this.enableResizeObserver();\n\n return this;\n };\n\n return Core;\n}(_ui_object2.default);\n\nexports.default = Core;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _container_factory = __webpack_require__(132);\n\nvar _container_factory2 = _interopRequireDefault(_container_factory);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _container_factory2.default;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof2 = __webpack_require__(33);\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _base_object = __webpack_require__(16);\n\nvar _base_object2 = _interopRequireDefault(_base_object);\n\nvar _events = __webpack_require__(4);\n\nvar _events2 = _interopRequireDefault(_events);\n\nvar _container = __webpack_require__(73);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _clapprZepto = __webpack_require__(6);\n\nvar _clapprZepto2 = _interopRequireDefault(_clapprZepto);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The ContainerFactory is responsible for manage playback bootstrap and create containers.\n */\n\nvar ContainerFactory = function (_BaseObject) {\n (0, _inherits3.default)(ContainerFactory, _BaseObject);\n (0, _createClass3.default)(ContainerFactory, [{\n key: 'options',\n get: function get() {\n return this._options;\n },\n set: function set(options) {\n this._options = options;\n }\n }]);\n\n function ContainerFactory(options, loader, i18n) {\n (0, _classCallCheck3.default)(this, ContainerFactory);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _BaseObject.call(this, options));\n\n _this._i18n = i18n;\n _this.loader = loader;\n return _this;\n }\n\n ContainerFactory.prototype.createContainers = function createContainers() {\n var _this2 = this;\n\n return _clapprZepto2.default.Deferred(function (promise) {\n promise.resolve(_this2.options.sources.map(function (source) {\n return _this2.createContainer(source);\n }));\n });\n };\n\n ContainerFactory.prototype.findPlaybackPlugin = function findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(function (p) {\n return p.canPlay(source, mimeType);\n })[0];\n };\n\n ContainerFactory.prototype.createContainer = function createContainer(source) {\n var resolvedSource = null,\n mimeType = this.options.mimeType;\n if ((typeof source === 'undefined' ? 'undefined' : (0, _typeof3.default)(source)) === 'object') {\n resolvedSource = source.source.toString();\n if (source.mimeType) mimeType = source.mimeType;\n } else {\n resolvedSource = source.toString();\n }\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource;\n\n var options = _clapprZepto2.default.extend({}, this.options, {\n src: resolvedSource,\n mimeType: mimeType\n });\n var playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType);\n var playback = new playbackPlugin(options, this._i18n);\n\n options = _clapprZepto2.default.extend({}, options, { playback: playback });\n\n var container = new _container2.default(options, this._i18n);\n var defer = _clapprZepto2.default.Deferred();\n defer.promise(container);\n this.addContainerPlugins(container);\n this.listenToOnce(container, _events2.default.CONTAINER_READY, function () {\n return defer.resolve(container);\n });\n return container;\n };\n\n ContainerFactory.prototype.addContainerPlugins = function addContainerPlugins(container) {\n this.loader.containerPlugins.forEach(function (Plugin) {\n container.addPlugin(new Plugin(container));\n });\n };\n\n return ContainerFactory;\n}(_base_object2.default);\n\nexports.default = ContainerFactory;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(0);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(1);\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _createClass2 = __webpack_require__(3);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _inherits2 = __webpack_require__(2);\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _events = __webpack_require__(4);\n\nvar _events2 = _interopRequireDefault(_events);\n\nvar _ui_object = __webpack_require__(20);\n\nvar _ui_object2 = _interopRequireDefault(_ui_object);\n\n__webpack_require__(134);\n\nvar _clapprZepto = __webpack_require__(6);\n\nvar _clapprZepto2 = _interopRequireDefault(_clapprZepto);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Container is responsible for the video rendering and state\n */\n\nvar Container = function (_UIObject) {\n (0, _inherits3.default)(Container, _UIObject);\n (0, _createClass3.default)(Container, [{\n key: 'name',\n\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get: function get() {\n return 'Container';\n }\n }, {\n key: 'attributes',\n get: function get() {\n return { class: 'container', 'data-container': '' };\n }\n }, {\n key: 'events',\n get: function get() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'doubleTap': 'dblClicked',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n };\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n\n }, {\n key: 'ended',\n get: function get() {\n return this.playback.ended;\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n\n }, {\n key: 'buffering',\n get: function get() {\n return this.playback.buffering;\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n\n }, {\n key: 'i18n',\n get: function get() {\n return this._i18n;\n }\n\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n\n }, {\n key: 'hasClosedCaptionsTracks',\n get: function get() {\n return this.playback.hasClosedCaptionsTracks;\n }\n\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n\n }, {\n key: 'closedCaptionsTracks',\n get: function get() {\n return this.playback.closedCaptionsTracks;\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n\n }, {\n key: 'closedCaptionsTrackId',\n get: function get() {\n return this.playback.closedCaptionsTrackId;\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n ,\n set: function set(trackId) {\n this.playback.closedCaptionsTrackId = trackId;\n }\n\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n\n }]);\n\n function Container(options, i18n) {\n (0, _classCallCheck3.default)(this, Container);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _UIObject.call(this, options));\n\n _this._i18n = i18n;\n _this.currentTime = 0;\n _this.volume = 100;\n _this.playback = options.playback;\n _this.settings = _clapprZepto2.default.extend({}, _this.playback.settings);\n _this.isReady = false;\n _this.mediaControlDisabled = false;\n _this.plugins = [_this.playback];\n _this.bindEvents();\n return _this;\n }\n\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n\n\n Container.prototype.bindEvents = function bindEvents() {\n this.listenTo(this.playback, _events2.default.PLAYBACK_PROGRESS, this.progress);\n this.listenTo(this.playback, _events2.default.PLAYBACK_TIMEUPDATE, this.timeUpdated);\n this.listenTo(this.playback, _events2.default.PLAYBACK_READY, this.ready);\n this.listenTo(this.playback, _events2.default.PLAYBACK_BUFFERING, this.onBuffering);\n this.listenTo(this.playback, _events2.default.PLAYBACK_BUFFERFULL, this.bufferfull);\n this.listenTo(this.playback, _events2.default.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate);\n this.listenTo(this.playback, _events2.default.PLAYBACK_LOADEDMETADATA, this.loadedMetadata);\n this.listenTo(this.playback, _events2.default.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate);\n this.listenTo(this.playback, _events2.default.PLAYBACK_BITRATE, this.updateBitrate);\n this.listenTo(this.playback, _events2.default.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged);\n this.listenTo(this.playback, _events2.default.PLAYBACK_DVR, this.playbackDvrStateChanged);\n this.listenTo(this.playback, _events2.default.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl);\n this.listenTo(this.playback, _events2.default.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl);\n this.listenTo(this.playback, _events2.default.PLAYBACK_SEEKED, this.onSeeked);\n this.listenTo(this.playback, _events2.default.PLAYBACK_ENDED, this.onEnded);\n this.listenTo(this.playback, _events2.default.PLAYBACK_PLAY, this.playing);\n this.listenTo(this.playback, _events2.default.PLAYBACK_PAUSE, this.paused);\n this.listenTo(this.playback, _events2.default.PLAYBACK_STOP, this.stopped);\n this.listenTo(this.playback, _events2.default.PLAYBACK_ERROR, this.error);\n this.listenTo(this.playback, _events2.default.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable);\n this.listenTo(this.playback, _events2.default.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged);\n };\n\n Container.prototype.subtitleAvailable = function subtitleAvailable() {\n this.trigger(_events2.default.CONTAINER_SUBTITLE_AVAILABLE);\n };\n\n Container.prototype.subtitleChanged = function subtitleChanged(track) {\n this.trigger(_events2.default.CONTAINER_SUBTITLE_CHANGED, track);\n };\n\n Container.prototype.playbackStateChanged = function playbackStateChanged(state) {\n this.trigger(_events2.default.CONTAINER_PLAYBACKSTATE, state);\n };\n\n Container.prototype.playbackDvrStateChanged = function playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings;\n this.dvrInUse = dvrInUse;\n this.trigger(_events2.default.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse);\n };\n\n Container.prototype.updateBitrate = function updateBitrate(newBitrate) {\n this.trigger(_events2.default.CONTAINER_BITRATE, newBitrate);\n };\n\n Container.prototype.statsReport = function statsReport(metrics) {\n this.trigger(_events2.default.CONTAINER_STATS_REPORT, metrics);\n };\n\n Container.prototype.getPlaybackType = function getPlaybackType() {\n return this.playback.getPlaybackType();\n };\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n\n\n Container.prototype.isDvrEnabled = function isDvrEnabled() {\n return !!this.playback.dvrEnabled;\n };\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n\n\n Container.prototype.isDvrInUse = function isDvrInUse() {\n return !!this.dvrInUse;\n };\n\n /**\n * destroys the container\n * @method destroy\n */\n\n\n Container.prototype.destroy = function destroy() {\n this.trigger(_events2.default.CONTAINER_DESTROYED, this, this.name);\n this.stopListening();\n this.plugins.forEach(function (plugin) {\n return plugin.destroy();\n });\n this.$el.remove();\n };\n\n Container.prototype.setStyle = function setStyle(style) {\n this.$el.css(style);\n };\n\n Container.prototype.animate = function animate(style, duration) {\n return this.$el.animate(style, duration).promise();\n };\n\n Container.prototype.ready = function ready() {\n this.isReady = true;\n this.trigger(_events2.default.CONTAINER_READY, this.name);\n };\n\n Container.prototype.isPlaying = function isPlaying() {\n return this.playback.isPlaying();\n };\n\n Container.prototype.getStartTimeOffset = function getStartTimeOffset() {\n return this.playback.getStartTimeOffset();\n };\n\n Container.prototype.getCurrentTime = function getCurrentTime() {\n return this.currentTime;\n };\n\n Container.prototype.getDuration = function getDuration() {\n return this.playback.getDuration();\n };\n\n Container.prototype.error = function error(errorObj) {\n if (!this.isReady) this.ready();\n\n this.trigger(_events2.default.CONTAINER_ERROR, { error: errorObj, container: this }, this.name);\n };\n\n Container.prototype.loadedMetadata = function loadedMetadata(metadata) {\n this.trigger(_events2.default.CONTAINER_LOADEDMETADATA, metadata);\n };\n\n Container.prototype.timeUpdated = function timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current;\n this.trigger(_events2.default.CONTAINER_TIMEUPDATE, timeProgress, this.name);\n };\n\n Container.prototype.progress = function progress() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this.trigger.apply(this, [_events2.default.CONTAINER_PROGRESS].concat(args, [this.name]));\n };\n\n Container.prototype.playing = function playing() {\n this.trigger(_events2.default.CONTAINER_PLAY, this.name);\n };\n\n Container.prototype.paused = function paused() {\n this.trigger(_events2.default.CONTAINER_PAUSE, this.name);\n };\n\n /**\n * plays the playback\n * @method play\n */\n\n\n Container.prototype.play = function play() {\n this.playback.play();\n };\n\n /**\n * stops the playback\n * @method stop\n */\n\n\n Container.prototype.stop = function stop() {\n this.playback.stop();\n this.currentTime = 0;\n };\n\n /**\n * pauses the playback\n * @method pause\n */\n\n\n Container.prototype.pause = function pause() {\n this.playback.pause();\n };\n\n Container.prototype.onEnded = function onEnded() {\n this.trigger(_events2.default.CONTAINER_ENDED, this, this.name);\n this.currentTime = 0;\n };\n\n Container.prototype.stopped = function stopped() {\n this.trigger(_events2.default.CONTAINER_STOP);\n };\n\n Container.prototype.clicked = function clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_CLICK, this, this.name);\n };\n\n Container.prototype.dblClicked = function dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_DBLCLICK, this, this.name);\n };\n\n Container.prototype.onContextMenu = function onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_CONTEXTMENU, event, this.name);\n };\n\n Container.prototype.seek = function seek(time) {\n this.trigger(_events2.default.CONTAINER_SEEK, time, this.name);\n this.playback.seek(time);\n };\n\n Container.prototype.onSeeked = function onSeeked() {\n this.trigger(_events2.default.CONTAINER_SEEKED, this.name);\n };\n\n Container.prototype.seekPercentage = function seekPercentage(percentage) {\n var duration = this.getDuration();\n if (percentage >= 0 && percentage <= 100) {\n var time = duration * (percentage / 100);\n this.seek(time);\n }\n };\n\n Container.prototype.setVolume = function setVolume(value) {\n this.volume = parseInt(value, 10);\n this.trigger(_events2.default.CONTAINER_VOLUME, value, this.name);\n this.playback.volume(value);\n };\n\n Container.prototype.fullscreen = function fullscreen() {\n this.trigger(_events2.default.CONTAINER_FULLSCREEN, this.name);\n };\n\n Container.prototype.onBuffering = function onBuffering() {\n this.trigger(_events2.default.CONTAINER_STATE_BUFFERING, this.name);\n };\n\n Container.prototype.bufferfull = function bufferfull() {\n this.trigger(_events2.default.CONTAINER_STATE_BUFFERFULL, this.name);\n };\n\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n\n\n Container.prototype.addPlugin = function addPlugin(plugin) {\n this.plugins.push(plugin);\n };\n\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n\n\n Container.prototype.hasPlugin = function hasPlugin(name) {\n return !!this.getPlugin(name);\n };\n\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n\n\n Container.prototype.getPlugin = function getPlugin(name) {\n return this.plugins.filter(function (plugin) {\n return plugin.name === name;\n })[0];\n };\n\n Container.prototype.mouseEnter = function mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_MOUSE_ENTER);\n };\n\n Container.prototype.mouseLeave = function mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_MOUSE_LEAVE);\n };\n\n Container.prototype.settingsUpdate = function settingsUpdate() {\n this.settings = this.playback.settings;\n this.trigger(_events2.default.CONTAINER_SETTINGSUPDATE);\n };\n\n Container.prototype.highDefinitionUpdate = function highDefinitionUpdate(isHD) {\n this.trigger(_events2.default.CONTAINER_HIGHDEFINITIONUPDATE, isHD);\n };\n\n Container.prototype.isHighDefinitionInUse = function isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse();\n };\n\n Container.prototype.disableMediaControl = function disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true;\n this.trigger(_events2.default.CONTAINER_MEDIACONTROL_DISABLE);\n }\n };\n\n Container.prototype.enableMediaControl = function enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false;\n this.trigger(_events2.default.CONTAINER_MEDIACONTROL_ENABLE);\n }\n };\n\n Container.prototype.updateStyle = function updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.$el.removeClass('chromeless');else this.$el.addClass('chromeless');\n };\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n\n\n Container.prototype.configure = function configure(options) {\n this._options = _clapprZepto2.default.extend(this._options, options);\n this.updateStyle();\n this.trigger(_events2.default.CONTAINER_OPTIONS_CHANGE);\n };\n\n Container.prototype.render = function render() {\n this.$el.append(this.playback.render().el);\n this.updateStyle();\n return this;\n };\n\n return Container;\n}(_ui_object2.default);\n\nexports.default = Container;\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a ').html(template(style.toString())(options))\n }\n}\n\nexport default Styler\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/styler.js","import Loader from './loader'\nexport default Loader\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loader/index.js","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/array/from.js\n// module id = 79\n// module chunks = 0","import HTML5Audio from './html5_audio'\nexport default HTML5Audio\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html5_audio/index.js","import HTMLImg from './html_img'\nexport default HTMLImg\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html_img/index.js","import NoOp from './no_op'\nexport default NoOp\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/no_op/index.js","import PosterPlugin from './poster'\nexport default PosterPlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/poster/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Player from './components/player'\nimport Utils from './base/utils'\nimport Events from './base/events'\nimport Playback from './base/playback'\nimport ContainerPlugin from './base/container_plugin'\nimport CorePlugin from './base/core_plugin'\nimport UICorePlugin from './base/ui_core_plugin'\nimport UIContainerPlugin from './base/ui_container_plugin'\nimport BaseObject from './base/base_object'\nimport UIObject from './base/ui_object'\nimport Browser from './components/browser'\nimport Container from './components/container'\nimport Core from './components/core'\nimport Loader from './components/loader'\nimport Mediator from './components/mediator'\nimport MediaControl from './components/media_control'\nimport PlayerInfo from './components/player_info'\nimport BaseFlashPlayback from './playbacks/base_flash_playback'\nimport Flash from './playbacks/flash'\nimport FlasHLS from './playbacks/flashls'\nimport HLS from './playbacks/hls'\nimport HTML5Audio from './playbacks/html5_audio'\nimport HTML5Video from './playbacks/html5_video'\nimport HTMLImg from './playbacks/html_img'\nimport NoOp from './playbacks/no_op'\nimport Poster from './plugins/poster'\nimport Log from './plugins/log'\nimport Styler from './base/styler'\nimport Vendor from './vendor'\nimport template from './base/template'\n\nimport $ from 'clappr-zepto'\n\nconst version = VERSION\n\nexport default {\n Player,\n Mediator,\n Events,\n Browser,\n PlayerInfo,\n MediaControl,\n ContainerPlugin,\n UIContainerPlugin,\n CorePlugin,\n UICorePlugin,\n Playback,\n Container,\n Core,\n Loader,\n BaseObject,\n UIObject,\n Utils,\n BaseFlashPlayback,\n Flash,\n FlasHLS,\n HLS,\n HTML5Audio,\n HTML5Video,\n HTMLImg,\n NoOp,\n Poster,\n Log,\n Styler,\n Vendor,\n version,\n template,\n $\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { uniqueId, currentScriptUrl } from '../base/utils'\n\nimport BaseObject from '../base/base_object'\nimport Events from '../base/events'\nimport Browser from './browser'\nimport CoreFactory from './core_factory'\nimport Loader from './loader'\nimport PlayerInfo from './player_info'\nimport $ from 'clappr-zepto'\n\nconst baseUrl = currentScriptUrl().replace(/\\/[^/]+$/, '')\n\n/**\n * @class Player\n * @constructor\n * @extends BaseObject\n * @module components\n * @example\n * ### Using the Player\n *\n * Add the following script on your HTML:\n * ```html\n * \n * \n * \n * ```\n * Now, create the player:\n * ```html\n * \n *
\n * \n * \n * ```\n */\nexport default class Player extends BaseObject {\n\n set loader(loader) { this._loader = loader }\n get loader() {\n if (!this._loader)\n this._loader = new Loader(this.options.plugins || {}, this.options.playerId)\n\n return this._loader\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.core.mediaControl.container.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.core.mediaControl.container.buffering\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n get isReady() {\n return !!this._ready\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n get eventsMapping() {\n return {\n onReady: Events.PLAYER_READY,\n onResize: Events.PLAYER_RESIZE,\n onPlay: Events.PLAYER_PLAY,\n onPause: Events.PLAYER_PAUSE,\n onStop: Events.PLAYER_STOP,\n onEnded: Events.PLAYER_ENDED,\n onSeek: Events.PLAYER_SEEK,\n onError: Events.PLAYER_ERROR,\n onTimeUpdate: Events.PLAYER_TIMEUPDATE,\n onVolumeUpdate: Events.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: Events.PLAYER_SUBTITLE_AVAILABLE\n }\n }\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {String} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload]\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength]\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu]\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n */\n constructor(options) {\n super(options)\n const defaultOptions = { playerId: uniqueId(''), persistConfig: true, width: 640, height: 360, baseUrl: baseUrl, allowUserInteraction: Browser.isMobile }\n this._options = $.extend(defaultOptions, options)\n this.options.sources = this._normalizeSources(options)\n if (!this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n this.options.allowUserInteraction = true\n }\n if (!this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n this.options.disableKeyboardShortcuts = true\n }\n this._registerOptionEventListeners()\n this._coreFactory = new CoreFactory(this)\n this.playerInfo = PlayerInfo.getInstance(this.options.playerId)\n this.playerInfo.currentSize = { width: options.width, height: options.height }\n this.playerInfo.options = this.options\n if (this.options.parentId)\n this.setParentId(this.options.parentId)\n\n else if (this.options.parent)\n this.attachTo(this.options.parent)\n\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n setParentId(parentId) {\n const el = document.querySelector(parentId)\n if (el)\n this.attachTo(el)\n\n return this\n }\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n attachTo(element) {\n this.options.parentElement = element\n this.core = this._coreFactory.create()\n this._addEventListeners()\n return this\n }\n\n _addEventListeners() {\n if (!this.core.isReady)\n this.listenToOnce(this.core, Events.CORE_READY, this._onReady)\n else\n this._onReady()\n\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this._containerChanged)\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this._onFullscreenChange)\n return this\n }\n\n _addContainerEventListeners() {\n const container = this.core.mediaControl.container\n if (container) {\n this.listenTo(container, Events.CONTAINER_PLAY, this._onPlay)\n this.listenTo(container, Events.CONTAINER_PAUSE, this._onPause)\n this.listenTo(container, Events.CONTAINER_STOP, this._onStop)\n this.listenTo(container, Events.CONTAINER_ENDED, this._onEnded)\n this.listenTo(container, Events.CONTAINER_SEEK, this._onSeek)\n this.listenTo(container, Events.CONTAINER_ERROR, this._onError)\n this.listenTo(container, Events.CONTAINER_TIMEUPDATE, this._onTimeUpdate)\n this.listenTo(container, Events.CONTAINER_VOLUME, this._onVolumeUpdate)\n this.listenTo(container, Events.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable)\n }\n return this\n }\n\n _registerOptionEventListeners() {\n const userEvents = this.options.events || {}\n Object.keys(userEvents).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n if (eventType) {\n let eventFunction = userEvents[userEvent]\n eventFunction = typeof eventFunction === 'function' && eventFunction\n eventFunction && this.on(eventType, eventFunction)\n }\n })\n return this\n }\n\n _containerChanged() {\n this.stopListening()\n this._addEventListeners()\n }\n\n _onReady() {\n this._ready = true\n this._addContainerEventListeners()\n this.trigger(Events.PLAYER_READY)\n }\n\n _onFullscreenChange(fullscreen) {\n this.trigger(Events.PLAYER_FULLSCREEN, fullscreen)\n }\n\n _onVolumeUpdate(volume) {\n this.trigger(Events.PLAYER_VOLUMEUPDATE, volume)\n }\n\n _onSubtitleAvailable() {\n this.trigger(Events.PLAYER_SUBTITLE_AVAILABLE)\n }\n\n _onPlay() {\n this.trigger(Events.PLAYER_PLAY)\n }\n\n _onPause() {\n this.trigger(Events.PLAYER_PAUSE)\n }\n\n _onStop() {\n this.trigger(Events.PLAYER_STOP, this.getCurrentTime())\n }\n\n _onEnded() {\n this.trigger(Events.PLAYER_ENDED)\n }\n\n _onSeek(time) {\n this.trigger(Events.PLAYER_SEEK, time)\n }\n\n _onTimeUpdate(timeProgress) {\n this.trigger(Events.PLAYER_TIMEUPDATE, timeProgress)\n }\n\n _onError(error) {\n this.trigger(Events.PLAYER_ERROR, error)\n }\n\n _normalizeSources(options) {\n const sources = options.sources || (options.source !== undefined? [options.source] : [])\n return sources.length === 0 ? [{ source:'', mimeType:'' }] : sources\n }\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n resize(size) {\n this.core.resize(size)\n return this\n }\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <>, mimeType: <>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined)\n this.configure({ autoPlay: !!autoPlay })\n\n this.core.load(sources, mimeType)\n return this\n }\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n destroy() {\n this.core.destroy()\n return this\n }\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n consent() {\n this.core.getCurrentPlayback().consent()\n return this\n }\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n play() {\n this.core.mediaControl.container.play()\n return this\n }\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n pause() {\n this.core.mediaControl.container.pause()\n return this\n }\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n stop() {\n this.core.mediaControl.container.stop()\n return this\n }\n\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n seek(time) {\n this.core.mediaControl.container.seek(time)\n return this\n }\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n seekPercentage(percentage) {\n this.core.mediaControl.container.seekPercentage(percentage)\n return this\n }\n\n /**\n * Set the volume for the current video (`source`).\n * @method setVolume\n * @param {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n * @return {Player} itself\n */\n setVolume(volume) {\n if (this.core && this.core.mediaControl)\n this.core.mediaControl.setVolume(volume)\n\n return this\n }\n\n /**\n * Get the volume for the current video\n * @method getVolume\n * @return {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n */\n getVolume() {\n return this.core && this.core.mediaControl ? this.core.mediaControl.volume : 0\n }\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n mute() {\n this._mutedVolume = this.getVolume()\n this.setVolume(0)\n return this\n }\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100)\n this._mutedVolume = null\n return this\n }\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n isPlaying() {\n return this.core.mediaControl.container.isPlaying()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return this.core.mediaControl.container.isDvrEnabled()\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return this.core.mediaControl.container.isDvrInUse()\n }\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n configure(options) {\n this.core.configure(options)\n return this\n }\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n getPlugin(name) {\n const plugins = this.core.plugins.concat(this.core.mediaControl.container.plugins)\n return plugins.filter(plugin => plugin.name === name)[0]\n }\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n getCurrentTime() {\n return this.core.mediaControl.container.getCurrentTime()\n }\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() {\n return this.core.mediaControl.container.getStartTimeOffset()\n }\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n getDuration() {\n return this.core.mediaControl.container.getDuration()\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/player.js","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/keys.js\n// module id = 86\n// module chunks = 0","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.keys.js\n// module id = 87\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iobject.js\n// module id = 88\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-includes.js\n// module id = 89\n// module chunks = 0","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-index.js\n// module id = 90\n// module chunks = 0","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_a-function.js\n// module id = 91\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol/iterator.js\n// module id = 92\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/iterator.js\n// module id = 93\n// module chunks = 0","var toInteger = require('./_to-integer')\n , defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_string-at.js\n// module id = 94\n// module chunks = 0","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-create.js\n// module id = 95\n// module chunks = 0","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dps.js\n// module id = 96\n// module chunks = 0","module.exports = require('./_global').document && document.documentElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_html.js\n// module id = 97\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gpo.js\n// module id = 98\n// module chunks = 0","require('./es6.array.iterator');\nvar global = require('./_global')\n , hide = require('./_hide')\n , Iterators = require('./_iterators')\n , TO_STRING_TAG = require('./_wks')('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype;\n if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/web.dom.iterable.js\n// module id = 99\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n , step = require('./_iter-step')\n , Iterators = require('./_iterators')\n , toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.array.iterator.js\n// module id = 100\n// module chunks = 0","module.exports = function(){ /* empty */ };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_add-to-unscopables.js\n// module id = 101\n// module chunks = 0","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-step.js\n// module id = 102\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol.js\n// module id = 103\n// module chunks = 0","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/index.js\n// module id = 104\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global')\n , has = require('./_has')\n , DESCRIPTORS = require('./_descriptors')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , META = require('./_meta').KEY\n , $fails = require('./_fails')\n , shared = require('./_shared')\n , setToStringTag = require('./_set-to-string-tag')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , wksExt = require('./_wks-ext')\n , wksDefine = require('./_wks-define')\n , keyOf = require('./_keyof')\n , enumKeys = require('./_enum-keys')\n , isArray = require('./_is-array')\n , anObject = require('./_an-object')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , createDesc = require('./_property-desc')\n , _create = require('./_object-create')\n , gOPNExt = require('./_object-gopn-ext')\n , $GOPD = require('./_object-gopd')\n , $DP = require('./_object-dp')\n , $keys = require('./_object-keys')\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./_library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.symbol.js\n// module id = 105\n// module chunks = 0","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_meta.js\n// module id = 106\n// module chunks = 0","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_keyof.js\n// module id = 107\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie');\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_enum-keys.js\n// module id = 108\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-array.js\n// module id = 109\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject')\n , gOPN = require('./_object-gopn').f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn-ext.js\n// module id = 110\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.async-iterator.js\n// module id = 112\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.observable.js\n// module id = 113\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/define-property.js\n// module id = 114\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.define-property.js\n// module id = 115\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/set-prototype-of.js\n// module id = 116\n// module chunks = 0","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/set-prototype-of.js\n// module id = 117\n// module chunks = 0","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.set-prototype-of.js\n// module id = 118\n// module chunks = 0","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object')\n , anObject = require('./_an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-proto.js\n// module id = 119\n// module chunks = 0","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D){\n return $Object.create(P, D);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/create.js\n// module id = 120\n// module chunks = 0","var $export = require('./_export')\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: require('./_object-create')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.create.js\n// module id = 121\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js\n// module id = 122\n// module chunks = 0","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/get-own-property-descriptor.js\n// module id = 123\n// module chunks = 0","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject')\n , $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js\n// module id = 124\n// module chunks = 0","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null)\n throw new TypeError('\"this\" is null or not defined')\n\n\n let o = Object(this)\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n let len = o.length >>> 0\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function')\n throw new TypeError('predicate must be a function')\n\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n let thisArg = arguments[1]\n\n // 5. Let k be 0.\n let k = 0\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n let kValue = o[k]\n if (predicate.call(thisArg, kValue, k, o))\n return kValue\n\n // e. Increase k by 1.\n k++\n }\n\n // 7. Return undefined.\n return undefined\n }\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/polyfills.js","\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { Kibo } from '../../vendor'\n\nconst BOLD = 'font-weight: bold; font-size: 13px;'\nconst INFO = 'color: #006600;' + BOLD\nconst DEBUG = 'color: #0000ff;' + BOLD\nconst WARN = 'color: #ff8000;' + BOLD\nconst ERROR = 'color: #ff0000;' + BOLD\n\nconst LEVEL_DEBUG = 0\nconst LEVEL_INFO = 1\nconst LEVEL_WARN = 2\nconst LEVEL_ERROR = 3\nconst LEVEL_DISABLED = LEVEL_ERROR\n\nconst COLORS = [DEBUG, INFO, WARN, ERROR, ERROR]\nconst DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled']\n\nexport default class Log {\n constructor(level = LEVEL_INFO, offLevel = LEVEL_DISABLED) {\n this.kibo = new Kibo()\n this.kibo.down(['ctrl shift d'], () => this.onOff())\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress']\n this.level = level\n this.offLevel = offLevel\n }\n\n debug(klass) { this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1)) }\n info(klass) { this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1)) }\n warn(klass) { this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1)) }\n error(klass) { this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1)) }\n\n onOff() {\n if (this.level === this.offLevel) { this.level = this.previousLevel } else {\n this.previousLevel = this.level\n this.level = this.offLevel\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log)\n window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN)\n\n }\n\n level(newLevel) {\n this.level = newLevel\n }\n\n log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return\n if (level < this.level) return\n\n if (!message) {\n message = klass\n klass = null\n }\n const color = COLORS[level]\n let klassDescription = ''\n if (klass)\n klassDescription = '[' + klass + ']'\n\n if (window.console && window.console.log)\n window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message))\n\n }\n}\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG\nLog.LEVEL_INFO = LEVEL_INFO\nLog.LEVEL_WARN = LEVEL_WARN\nLog.LEVEL_ERROR = LEVEL_ERROR\n\nLog.getInstance = function() {\n if (this._instance === undefined) {\n this._instance = new this()\n this._instance.previousLevel = this._instance.level\n this._instance.level = this._instance.offLevel\n }\n return this._instance\n}\n\nLog.setLevel = function(level) { this.getInstance().level = level }\n\nLog.debug = function() { this.getInstance().debug.apply(this.getInstance(), arguments) }\nLog.info = function() { this.getInstance().info.apply(this.getInstance(), arguments) }\nLog.warn = function() { this.getInstance().warn.apply(this.getInstance(), arguments) }\nLog.error = function() { this.getInstance().error.apply(this.getInstance(), arguments) }\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/log/log.js","/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function() {\n for(var key in Kibo.KEY_NAMES_BY_CODE) {\n if(Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = (function() {\n if(document.addEventListener) {\n return function(element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n }\n else if(document.attachEvent) {\n return function(element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.unregisterEvent = (function() {\n if(document.removeEventListener) {\n return function(element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n }\n else if(document.detachEvent) {\n return function(element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.stringContains = function(string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function(string) {\n return string.toLowerCase().replace(/^./, function(match) { return match.toUpperCase(); });\n};\n\nKibo.isString = function(what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = (function() {\n if(Array.prototype.indexOf) {\n return function(haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n }\n else {\n return function(haystack, needle) {\n for(var i = 0; i < haystack.length; i++) {\n if(haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n})();\n\nKibo.extractModifiers = function(keyCombination) {\n var modifiers, i\n modifiers = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n}\n\nKibo.extractKey = function(keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for(i = 0; i < keys.length; i++) {\n if(!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function(keyCombination) {\n var result, key;\n\n if(Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if(key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n}\n\nKibo.keyName = function(keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function(keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function() {\n var i, that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function(upOrDown) {\n var that = this;\n return function(e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if(Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for(i = 0; i < registeredKeys.any.length; i++) {\n if((registeredKeys.any[i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if(registeredKeys[lastModifiersAndKey]) {\n for(i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if((registeredKeys[lastModifiersAndKey][i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function(upOrDown, newKeys, func) {\n var i, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function(upOrDown, newKeys, func) {\n var i, j, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(func === null) {\n delete registeredKeys[keys];\n } else {\n if(registeredKeys[keys]) {\n for(j = 0; j < registeredKeys[keys].length; j++) {\n if(String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function(keys) {\n return this.unregisterKeys('down', keys, null);\n}\n\nKibo.prototype.delegate = function(upOrDown, keys, func) {\n return (func !== null || func !== undefined) ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function(keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function(keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function(modifier) {\n if(!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function() {\n var result, i;\n\n result = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if(!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexport default Kibo\n\n\n\n// WEBPACK FOOTER //\n// ./src/vendor/kibo.js","import CoreFactory from './core_factory'\nexport default CoreFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseObject from '../../base/base_object'\nimport Core from '../core'\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class CoreFactory extends BaseObject {\n\n get loader() { return this.player.loader }\n\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n constructor(player) {\n super()\n this.player = player\n this._options = player.options\n }\n\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n create() {\n this.options.loader = this.loader\n this.core = new Core(this.options)\n this.addCorePlugins()\n this.core.createContainers(this.options)\n return this.core\n }\n\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n addCorePlugins() {\n this.loader.corePlugins.forEach((Plugin) => {\n const plugin = new Plugin(this.core)\n this.core.addPlugin(plugin)\n this.setupExternalInterface(plugin)\n })\n return this.core\n }\n\n setupExternalInterface(plugin) {\n const externalFunctions = plugin.getExternalInterface()\n for (const key in externalFunctions)\n this.player[key] = externalFunctions[key].bind(plugin)\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/core_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, Fullscreen, DomRecycler } from '../../base/utils'\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport Browser from '../../components/browser'\nimport ContainerFactory from '../../components/container_factory'\nimport MediaControl from '../../components/media_control'\nimport Mediator from '../../components/mediator'\nimport PlayerInfo from '../../components/player_info'\n\nimport Styler from '../../base/styler'\n\nimport $ from 'clappr-zepto'\n\nimport './public/style.scss'\nimport fontStyle from './public/fonts.css'\n\nlet style\n\n/**\n * The Core is responsible to manage Containers, the mediator, MediaControl\n * and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\nexport default class Core extends UIObject {\n get events() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'showMediaControl',\n 'mouseleave': 'hideMediaControl'\n }\n }\n\n get attributes() {\n return {\n 'data-player': '',\n tabindex: 9999\n }\n }\n\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n get isReady() {\n return !!this.ready\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this.getPlugin('strings') || { t: (key) => key }\n }\n\n constructor(options) {\n super(options)\n this.configureDomRecycler()\n this.playerInfo = PlayerInfo.getInstance(options.playerId)\n this.firstResize = true\n this.plugins = []\n this.containers = []\n this.setupMediaControl(null)\n //FIXME fullscreen api sucks\n this._boundFullscreenHandler = () => this.handleFullscreenChange()\n $(document).bind('fullscreenchange', this._boundFullscreenHandler)\n $(document).bind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).bind('mozfullscreenchange', this._boundFullscreenHandler)\n Browser.isMobile && $(window).bind('resize', (o) => { this.handleWindowResize(o) })\n }\n\n configureDomRecycler() {\n let recycleVideo = (this.options && this.options.playback && this.options.playback.recycleVideo) ? true : false\n DomRecycler.configure({\n recycleVideo: recycleVideo\n })\n }\n\n createContainers(options) {\n this.defer = $.Deferred()\n this.defer.promise(this)\n this.containerFactory = new ContainerFactory(options, options.loader, this.i18n)\n this.containerFactory\n .createContainers()\n .then((containers) => this.setupContainers(containers))\n .then((containers) => this.resolveOnContainersReady(containers))\n }\n\n updateSize() {\n if (Fullscreen.isFullscreen())\n this.setFullscreen()\n else\n this.setPlayerSize()\n\n }\n\n setFullscreen() {\n if(!Browser.isiOS) {\n this.$el.addClass('fullscreen')\n this.$el.removeAttr('style')\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.playerInfo.currentSize = { width: $(window).width(), height: $(window).height() }\n }\n }\n\n setPlayerSize() {\n this.$el.removeClass('fullscreen')\n this.playerInfo.currentSize = this.playerInfo.previousSize\n this.playerInfo.previousSize = { width: $(window).width(), height: $(window).height() }\n this.resize(this.playerInfo.currentSize)\n }\n\n resize(options) {\n if (!isNumber(options.height) && !isNumber(options.width)) {\n this.el.style.height = `${options.height}`\n this.el.style.width = `${options.width}`\n } else {\n this.el.style.height = `${options.height}px`\n this.el.style.width = `${options.width}px`\n }\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.options.width = options.width\n this.options.height = options.height\n this.playerInfo.currentSize = options\n this.triggerResize(this.playerInfo.currentSize)\n }\n\n enableResizeObserver() {\n const checkSizeCallback = () => {\n if (this.playerInfo.computedSize.width !== this.el.clientWidth ||\n this.playerInfo.computedSize.height !== this.el.clientHeight) {\n this.playerInfo.computedSize = { width: this.el.clientWidth, height: this.el.clientHeight }\n this.triggerResize(this.playerInfo.computedSize)\n }\n }\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500)\n }\n\n triggerResize(newSize) {\n const thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width\n if (thereWasChange) {\n Mediator.trigger(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, newSize)\n this.oldHeight = newSize.height\n this.oldWidth = newSize.width\n this.firstResize = false\n }\n }\n\n disableResizeObserver() {\n if (this.resizeObserverInterval) clearInterval(this.resizeObserverInterval)\n }\n\n resolveOnContainersReady(containers) {\n $.when.apply($, containers).done(() => {\n this.defer.resolve(this)\n this.ready = true\n this.trigger(Events.CORE_READY)\n })\n }\n\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n load(sources, mimeType) {\n this.options.mimeType = mimeType\n sources = sources && sources.constructor === Array ? sources : [sources]\n this.containers.forEach((container) => container.destroy())\n this.mediaControl.container = null\n this.containerFactory.options = $.extend(this.options, { sources })\n this.containerFactory.createContainers().then((containers) => {\n this.setupContainers(containers)\n })\n }\n\n destroy() {\n this.disableResizeObserver()\n this.containers.forEach((container) => container.destroy())\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n this.mediaControl.destroy()\n $(document).unbind('fullscreenchange', this._boundFullscreenHandler)\n $(document).unbind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).unbind('mozfullscreenchange', this._boundFullscreenHandler)\n }\n\n handleFullscreenChange() {\n this.trigger(Events.CORE_FULLSCREEN, Fullscreen.isFullscreen())\n this.updateSize()\n this.mediaControl.show()\n }\n\n handleWindowResize(event) {\n let orientation = ($(window).width() > $(window).height()) ? 'landscape' : 'portrait'\n if (this._screenOrientation === orientation) return\n this._screenOrientation = orientation\n\n this.trigger(Events.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n })\n }\n\n setMediaControlContainer(container) {\n this.mediaControl.setContainer(container)\n this.mediaControl.render()\n }\n\n disableMediaControl() {\n this.mediaControl.disable()\n this.$el.removeClass('nocursor')\n }\n\n enableMediaControl() {\n this.mediaControl.enable()\n }\n\n removeContainer(container) {\n this.stopListening(container)\n this.containers = this.containers.filter((c) => c !== container)\n }\n\n appendContainer(container) {\n this.listenTo(container, Events.CONTAINER_DESTROYED, this.removeContainer)\n this.containers.push(container)\n }\n\n setupContainers(containers) {\n containers.map(this.appendContainer.bind(this))\n this.trigger(Events.CORE_CONTAINERS_CREATED)\n this.renderContainers()\n this.setupMediaControl(this.getCurrentContainer())\n this.render()\n this.appendToParent()\n return this.containers\n }\n\n renderContainers() {\n this.containers.map((container) => this.el.appendChild(container.render().el))\n }\n\n createContainer(source, options) {\n const container = this.containerFactory.createContainer(source, options)\n this.appendContainer(container)\n this.el.appendChild(container.render().el)\n return container\n }\n\n setupMediaControl(container) {\n if (this.mediaControl) { this.mediaControl.setContainer(container) } else {\n this.mediaControl = this.createMediaControl($.extend({ container: container, focusElement: this.el }, this.options))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_FULLSCREEN, this.toggleFullscreen)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_SHOW, this.onMediaControlShow.bind(this, true))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_HIDE, this.onMediaControlShow.bind(this, false))\n }\n }\n\n createMediaControl(options) {\n if(options.mediacontrol && options.mediacontrol.external)\n return new options.mediacontrol.external(options).render()\n else\n return new MediaControl(options).render()\n\n }\n\n getCurrentContainer() {\n if (!this.mediaControl || !this.mediaControl.container)\n return this.containers[0]\n\n return this.mediaControl.container\n }\n\n getCurrentPlayback() {\n const container = this.getCurrentContainer()\n return container && container.playback\n }\n\n getPlaybackType() {\n const container = this.getCurrentContainer()\n return container && container.getPlaybackType()\n }\n\n toggleFullscreen() {\n if (!Fullscreen.isFullscreen()) {\n Fullscreen.requestFullscreen(this.el)\n if(!Browser.isiOS)\n this.$el.addClass('fullscreen')\n\n } else {\n Fullscreen.cancelFullscreen()\n if(!Browser.isiOS)\n this.$el.removeClass('fullscreen nocursor')\n\n }\n this.mediaControl.show()\n }\n\n showMediaControl(event) {\n this.mediaControl.show(event)\n }\n\n hideMediaControl() {\n this.mediaControl.hide(this.options.hideMediaControlDelay)\n }\n\n onMediaControlShow(showing) {\n this.getCurrentContainer().trigger(showing?Events.CONTAINER_MEDIACONTROL_SHOW:Events.CONTAINER_MEDIACONTROL_HIDE)\n\n if (showing)\n this.$el.removeClass('nocursor')\n else if (Fullscreen.isFullscreen())\n this.$el.addClass('nocursor')\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.configureDomRecycler()\n const sources = options.source || options.sources\n\n if (sources) { this.load(sources, options.mimeType || this.options.mimeType) } else {\n this.trigger(Events.CORE_OPTIONS_CHANGE)\n\n this.containers.forEach((container) => {\n container.configure(this.options)\n })\n }\n }\n\n appendToParent() {\n let hasCoreParent = this.$el.parent() && this.$el.parent().length\n !hasCoreParent && this.$el.appendTo(this.options.parentElement)\n }\n\n render() {\n this.$el.append(this.mediaControl.render().el)\n\n if (!style)\n style = Styler.getStyleFor(fontStyle, { baseUrl: this.options.baseUrl })\n\n $('head').append(style)\n\n this.options.width = this.options.width || this.$el.width()\n this.options.height = this.options.height || this.$el.height()\n const size = { width: this.options.width, height: this.options.height }\n this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size\n this.updateSize()\n\n this.previousSize = { width: this.$el.width(), height: this.$el.height() }\n\n this.enableResizeObserver()\n\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core/core.js","import ContainerFactory from './container_factory'\nexport default ContainerFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The ContainerFactory is responsible for manage playback bootstrap and create containers.\n */\n\nimport BaseObject from '../../base/base_object'\nimport Events from '../../base/events'\nimport Container from '../../components/container'\nimport $ from 'clappr-zepto'\n\nexport default class ContainerFactory extends BaseObject {\n get options() { return this._options }\n set options(options) { this._options = options }\n\n constructor(options, loader, i18n) {\n super(options)\n this._i18n = i18n\n this.loader = loader\n }\n\n createContainers() {\n return $.Deferred((promise) => {\n promise.resolve(this.options.sources.map((source) => {\n return this.createContainer(source)\n }))\n })\n }\n\n findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(p => p.canPlay(source, mimeType))[0]\n }\n\n createContainer(source) {\n let resolvedSource = null,\n mimeType = this.options.mimeType\n if (typeof source === 'object') {\n resolvedSource = source.source.toString()\n if (source.mimeType)\n mimeType = source.mimeType\n\n } else { resolvedSource = source.toString() }\n\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource\n\n let options = $.extend({}, this.options, {\n src: resolvedSource,\n mimeType: mimeType\n })\n const playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType)\n const playback = new playbackPlugin(options, this._i18n)\n\n options = $.extend({}, options, { playback: playback })\n\n const container = new Container(options, this._i18n)\n const defer = $.Deferred()\n defer.promise(container)\n this.addContainerPlugins(container)\n this.listenToOnce(container, Events.CONTAINER_READY, () => defer.resolve(container))\n return container\n }\n\n addContainerPlugins(container) {\n this.loader.containerPlugins.forEach((Plugin) => {\n container.addPlugin(new Plugin(container))\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/container_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Container is responsible for the video rendering and state\n */\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\n\nimport './public/style.scss'\n\nimport $ from 'clappr-zepto'\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class Container extends UIObject {\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get name() { return 'Container' }\n get attributes() { return { class: 'container', 'data-container': '' } }\n get events() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'doubleTap': 'dblClicked',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.playback.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.playback.buffering\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this._i18n\n }\n\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n get hasClosedCaptionsTracks() {\n return this.playback.hasClosedCaptionsTracks\n }\n\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n get closedCaptionsTracks() {\n return this.playback.closedCaptionsTracks\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n get closedCaptionsTrackId() {\n return this.playback.closedCaptionsTrackId\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n set closedCaptionsTrackId(trackId) {\n this.playback.closedCaptionsTrackId = trackId\n }\n\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n constructor(options, i18n) {\n super(options)\n this._i18n = i18n\n this.currentTime = 0\n this.volume = 100\n this.playback = options.playback\n this.settings = $.extend({}, this.playback.settings)\n this.isReady = false\n this.mediaControlDisabled = false\n this.plugins = [this.playback]\n this.bindEvents()\n }\n\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n bindEvents() {\n this.listenTo(this.playback, Events.PLAYBACK_PROGRESS, this.progress)\n this.listenTo(this.playback, Events.PLAYBACK_TIMEUPDATE, this.timeUpdated)\n this.listenTo(this.playback, Events.PLAYBACK_READY, this.ready)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERING, this.onBuffering)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERFULL, this.bufferfull)\n this.listenTo(this.playback, Events.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_LOADEDMETADATA, this.loadedMetadata)\n this.listenTo(this.playback, Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_BITRATE, this.updateBitrate)\n this.listenTo(this.playback, Events.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_DVR, this.playbackDvrStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_SEEKED, this.onSeeked)\n this.listenTo(this.playback, Events.PLAYBACK_ENDED, this.onEnded)\n this.listenTo(this.playback, Events.PLAYBACK_PLAY, this.playing)\n this.listenTo(this.playback, Events.PLAYBACK_PAUSE, this.paused)\n this.listenTo(this.playback, Events.PLAYBACK_STOP, this.stopped)\n this.listenTo(this.playback, Events.PLAYBACK_ERROR, this.error)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged)\n }\n\n subtitleAvailable() {\n this.trigger(Events.CONTAINER_SUBTITLE_AVAILABLE)\n }\n\n subtitleChanged(track) {\n this.trigger(Events.CONTAINER_SUBTITLE_CHANGED, track)\n }\n\n playbackStateChanged(state) {\n this.trigger(Events.CONTAINER_PLAYBACKSTATE, state)\n }\n\n playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings\n this.dvrInUse = dvrInUse\n this.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse)\n }\n\n updateBitrate(newBitrate) {\n this.trigger(Events.CONTAINER_BITRATE, newBitrate)\n }\n\n statsReport(metrics) {\n this.trigger(Events.CONTAINER_STATS_REPORT, metrics)\n }\n\n getPlaybackType() {\n return this.playback.getPlaybackType()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return !!this.playback.dvrEnabled\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return !!this.dvrInUse\n }\n\n /**\n * destroys the container\n * @method destroy\n */\n destroy() {\n this.trigger(Events.CONTAINER_DESTROYED, this, this.name)\n this.stopListening()\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n }\n\n setStyle(style) {\n this.$el.css(style)\n }\n\n animate(style, duration) {\n return this.$el.animate(style, duration).promise()\n }\n\n ready() {\n this.isReady = true\n this.trigger(Events.CONTAINER_READY, this.name)\n }\n\n isPlaying() {\n return this.playback.isPlaying()\n }\n\n getStartTimeOffset() {\n return this.playback.getStartTimeOffset()\n }\n\n getCurrentTime() {\n return this.currentTime\n }\n\n getDuration() {\n return this.playback.getDuration()\n }\n\n error(errorObj) {\n if (!this.isReady)\n this.ready()\n\n this.trigger(Events.CONTAINER_ERROR, { error: errorObj, container: this }, this.name)\n }\n\n loadedMetadata(metadata) {\n this.trigger(Events.CONTAINER_LOADEDMETADATA, metadata)\n }\n\n timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current\n this.trigger(Events.CONTAINER_TIMEUPDATE, timeProgress, this.name)\n }\n\n progress(...args) {\n this.trigger(Events.CONTAINER_PROGRESS, ...args, this.name)\n }\n\n playing() {\n this.trigger(Events.CONTAINER_PLAY, this.name)\n }\n\n paused() {\n this.trigger(Events.CONTAINER_PAUSE, this.name)\n }\n\n /**\n * plays the playback\n * @method play\n */\n play() {\n this.playback.play()\n }\n\n /**\n * stops the playback\n * @method stop\n */\n stop() {\n this.playback.stop()\n this.currentTime = 0\n }\n\n /**\n * pauses the playback\n * @method pause\n */\n pause() {\n this.playback.pause()\n }\n\n onEnded() {\n this.trigger(Events.CONTAINER_ENDED, this, this.name)\n this.currentTime = 0\n }\n\n stopped() {\n this.trigger(Events.CONTAINER_STOP)\n }\n\n clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CLICK, this, this.name)\n\n }\n\n dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_DBLCLICK, this, this.name)\n\n }\n\n onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CONTEXTMENU, event, this.name)\n\n }\n\n seek(time) {\n this.trigger(Events.CONTAINER_SEEK, time, this.name)\n this.playback.seek(time)\n }\n\n onSeeked() {\n this.trigger(Events.CONTAINER_SEEKED, this.name)\n }\n\n seekPercentage(percentage) {\n const duration = this.getDuration()\n if (percentage >= 0 && percentage <= 100) {\n const time = duration * (percentage / 100)\n this.seek(time)\n }\n }\n\n setVolume(value) {\n this.volume = parseInt(value, 10)\n this.trigger(Events.CONTAINER_VOLUME, value, this.name)\n this.playback.volume(value)\n }\n\n fullscreen() {\n this.trigger(Events.CONTAINER_FULLSCREEN, this.name)\n }\n\n onBuffering() {\n this.trigger(Events.CONTAINER_STATE_BUFFERING, this.name)\n }\n\n bufferfull() {\n this.trigger(Events.CONTAINER_STATE_BUFFERFULL, this.name)\n }\n\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_ENTER)\n\n }\n\n mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_LEAVE)\n\n }\n\n settingsUpdate() {\n this.settings = this.playback.settings\n this.trigger(Events.CONTAINER_SETTINGSUPDATE)\n }\n\n highDefinitionUpdate(isHD) {\n this.trigger(Events.CONTAINER_HIGHDEFINITIONUPDATE, isHD)\n }\n\n isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse()\n }\n\n disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true\n this.trigger(Events.CONTAINER_MEDIACONTROL_DISABLE)\n }\n }\n\n enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false\n this.trigger(Events.CONTAINER_MEDIACONTROL_ENABLE)\n }\n }\n\n updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.$el.removeClass('chromeless')\n else\n this.$el.addClass('chromeless')\n\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.updateStyle()\n this.trigger(Events.CONTAINER_OPTIONS_CHANGE)\n }\n\n render() {\n this.$el.append(this.playback.render().el)\n this.updateStyle()\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container/container.js","// style-loader: Adds some css to the DOM by adding a