-
Notifications
You must be signed in to change notification settings - Fork 837
/
clappr.plainhtml5.js.map
1 lines (1 loc) · 637 KB
/
clappr.plainhtml5.js.map
1
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap fe0093aec46dab8ad504","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:///./node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./src/base/template.js","webpack:///./node_modules/core-js/library/modules/_wks.js","webpack:///./src/base/playback.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:///./src/base/void.js","webpack:///./node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/core-js/library/modules/_an-object.js","webpack:///./src/components/browser.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/core-js/library/modules/_uid.js","webpack:///./node_modules/babel-runtime/helpers/typeof.js","webpack:///./src/components/player_info.js","webpack:///./src/base/ui_container_plugin.js","webpack:///./src/base/container_plugin.js","webpack:///./src/base/ui_core_plugin.js","webpack:///./node_modules/babel-runtime/core-js/object/keys.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/vendor/index.js","webpack:///./node_modules/node-libs-browser/node_modules/process/browser.js","webpack:///./src/components/mediator.js","webpack:///./src/icons/01-play.svg","webpack:///./src/playbacks/html5_video/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/plugins/log/index.js","webpack:///./src/components/core/index.js","webpack:///./src/components/container/index.js","webpack:///./src/components/media_control/index.js","webpack:///./node_modules/css-loader/lib/url/escape.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/helpers/toConsumableArray.js","webpack:///./node_modules/babel-runtime/core-js/array/from.js","webpack:///./src/playbacks/html5_audio/index.js","webpack:///./src/playbacks/html_img/index.js","webpack:///./src/playbacks/no_op/index.js","webpack:///./src/plugins/spinner_three_bounce/index.js","webpack:///./src/plugins/watermark/index.js","webpack:///./src/plugins/poster/index.js","webpack:///./src/plugins/click_to_pause/index.js","webpack:///./src/plugins/dvr_controls/index.js","webpack:///./src/plugins/favicon/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:///./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/html5_video.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/html5_audio/html5_audio.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/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/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/click_to_pause.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/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_SEEK","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","MEDIACONTROL_OPTIONS_CHANGE","assign","extend","formatTime","seekStringToSeconds","uniqueId","isNumber","currentScriptUrl","getBrowserLanguage","now","removeArrayItem","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","BaseObject","_options","delegateEventSplitter","UIObject","cid","_ensureElement","delegateEvents","$","selector","find","undelegateEvents","setElement","element","delegate","zepto","isZ","attrs","attributes","className","attr","module","exports","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","CorePlugin","core","enabled","bindEvents","enable","disable","getExternalInterface","PlayerInfo","playbackPlugins","currentSize","width","height","_players","getInstance","playerId","UIContainerPlugin","container","show","hide","ContainerPlugin","UICorePlugin","Kibo","Mediator","opts","Styler","getStyleFor","style","baseUrl","html","toString","Player","MediaControl","Container","Core","Loader","Utils","BaseFlashPlayback","Flash","FlasHLS","HLS","HTML5Audio","HTML5Video","HTMLImg","NoOp","ClickToPausePlugin","DVRControls","Favicon","Log","Poster","SpinnerThreeBouncePlugin","WaterMarkPlugin","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","newEvents","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","keepVisible","fullScreenOnVideoTagSupported","setInitialVolume","addEventListeners","left","right","default","isEmptyObject","stopDragHandler","stopDrag","updateDragHandler","updateDrag","playerResize","changeTogglePlay","updateProgressBar","onVolumeChanged","nodeName","onLoadedMetadataOnVideoTag","initialVolume","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","isInitialVolume","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","useOnlyPlainHtml5Plugins","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","_onSeeking","_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","updateSettings","mimetypes","_onLoad","evt","m","resource","_noiseFrameNum","playbackNotSupported","playbackNotSupportedMessage","showForNoOp","_animate","_noise","idata","createImageData","canvas","buffer32","Uint32Array","buffer","err","random","pow","putImageData","_loop","_stop","_animationHandle","getContext","showTimeout","onBufferFull","StatsPlugin","setInitialAttrs","reportInterval","onStatsAdd","firstPlay","startupTime","rebufferingTime","watchingTime","rebuffers","externalMetrics","watchingTimeInit","intervalId","report","startupTimeInit","rebufferingTimeInit","getRebufferingTime","getWatchingTime","totalTime","isRebuffering","metric","getStats","watermark","imageUrl","imageLink","watermarkLink","hidden","templateOptions","PosterPlugin","showOnVideoEnd","hasStartedPlaying","playRequested","update","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","status","playbackState","array","res","click","pointerEnabled","containerChanged","dvrChanged","useDvrControls","live","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","insertAfter","prepend","oldIcon","_container","changeFavicon","setPlayIcon","setPauseIcon","resetIcon","createIcon","svg","fillStyle","d","path","Path2D","fill","icon","toDataURL","playIcon","changeIcon","pauseIcon","SeekTime","mediaControlContainer","isLiveStreamWithDvr","actualLiveTime","hoveringOverSeekBar","hoverPosition","firstFragDateTime","actualLiveServerTime","actualLiveServerTimeDiff","getTime","showTime","hideTime","onContainerChanged","updateDuration","calculateHoverPosition","getSeekTime","secondsSinceMidnight","useActualLiveTime","setHours","shouldBeVisible","currentSeekTime","displayedSeekTime","$seekTimeEl","durationShown","$durationEl","currentDuration","elWidth","elLeftPos","SourcesPlugin","onContainersCreated","firstValidSource","EndVideo","exitOnEnd","exitFullscreenOnEnd","Strings","_initializeMessages","_language","_messages","defaultMessages","strings"],"mappings":"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Af,OAAiC,OAAnE,EAA4E;AAC5EgO,QAAIE,QAAJ,GAAezO,MAAf;AACA+N,eAAW/O,IAAX,CAAgBuP,GAAhB;AACD,G;;;;;AAGHP,YAAYE,OAAZ,GAAsB,EAAEE,cAAc,KAAhB,EAAtB;;kBAEe;AACblE,gBADa;AAEbxB,wBAFa;AAGbqC,0BAHa;AAIbiD,0BAJa;AAKb/G,gBALa;AAMbC,wBANa;AAObC,0CAPa;AAQbC,oBARa;AASbE,oCATa;AAUbD,oBAVa;AAWbwF,8CAXa;AAYbM,4CAZa;AAab5F,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,6BAA6B;AAC7B,qCAAqC,gC;;;;;;ACDrC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,EAAE;AACF;AA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A;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;;;;;;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;;;;;;;;;;;;;;;;;;AC3KtC;;;;;;AAEA,IAAMpY,SAAS,sBAAf,C,CAVA;AACA;AACA;;AAEA;;;;IAQqBqY,Q;;;;kBAAAA,Q;;;AAGrBA,SAASvX,EAAT,GAAc,UAAS1B,IAAT,EAAeoB,QAAf,EAAyBO,OAAzB,EAAkC;AAC9Cf,SAAOc,EAAP,CAAU1B,IAAV,EAAgBoB,QAAhB,EAA0BO,OAA1B;AACA;AACD,CAHD;;AAKAsX,SAASnX,IAAT,GAAgB,UAAS9B,IAAT,EAAeoB,QAAf,EAAyBO,OAAzB,EAAkC;AAChDf,SAAOkB,IAAP,CAAY9B,IAAZ,EAAkBoB,QAAlB,EAA4BO,OAA5B;AACA;AACD,CAHD;;AAKAsX,SAASlX,GAAT,GAAe,UAAS/B,IAAT,EAAeoB,QAAf,EAAyBO,OAAzB,EAAkC;AAC/Cf,SAAOmB,GAAP,CAAW/B,IAAX,EAAiBoB,QAAjB,EAA2BO,OAA3B;AACA;AACD,CAHD;;AAKAsX,SAAS5W,OAAT,GAAmB,UAASrC,IAAT,EAAwB;AAAA,oCAANkZ,IAAM;AAANA,QAAM;AAAA;;AACzCtY,SAAOyB,OAAP,CAAelC,KAAf,CAAqBS,MAArB,GAA8BZ,IAA9B,SAAuCkZ,IAAvC;AACA;AACD,CAHD;;AAKAD,SAASvW,aAAT,GAAyB,UAAS5C,GAAT,EAAcE,IAAd,EAAoBoB,QAApB,EAA8B;AACrDR,SAAO8B,aAAP,CAAqB5C,GAArB,EAA0BE,IAA1B,EAAgCoB,QAAhC;AACA;AACD,CAHD;;;;;;;ACnCA,iK;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;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;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,mDAAmD,OAAO,EAAE;AAC5D,E;;;;;;ACTA;AACA,qEAAsE,gBAAgB,UAAU,GAAG;AACnG,CAAC,E;;;;;;ACFD;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;ACNA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B,cAAc;AACd;AACA,CAAC;AACD;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,UAAU;AACV,CAAC,E;;;;;;;AChBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,wCAAwC,oCAAoC;AAC5E,4CAA4C,oCAAoC;AAChF,KAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA,iCAAiC,2BAA2B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,E;;;;;;ACrEA,yC;;;;;;ACAA,yC;;;;;;ACAA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;ACNA,kBAAkB,yD;;;;;;ACAlB,kBAAkB,yD;;;;;;;;;;;;;ACAlB;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACfA,qE;;;;;;ACAA,+O;;;;;;;;;;;;;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;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,yD;;;;;;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,+C;;;;;;;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,8D;;;;;;ACDA;AACA;AACA,8BAA8B,6CAA4C,E;;;;;;ACF1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,OAAO,UAAU,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA,E;;;;;;ACxBA;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA,8BAA8B,gCAAoC,E;;;;;;ACFlE,kBAAkB,yD;;;;;;ACAlB;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;;;;ACRD;AACA;AACA;;AAEA;;;;;;AAMA,IAAI,CAAC/Z,MAAMC,SAAN,CAAgBoV,IAArB,EAA2B;AACzB;AACAqK,SAAOC,cAAP,CAAsB3f,MAAMC,SAA5B,EAAuC,MAAvC,EAA+C;AAC7C;AACA6D,WAAO,eAAS8b,SAAT,EAAoB;AACzB;AACA,UAAI,QAAQ,IAAZ,EACE,MAAM,IAAIC,SAAJ,CAAc,+BAAd,CAAN;;AAGF,UAAIC,IAAIJ,OAAO,IAAP,CAAR;;AAEA;AACA,UAAIK,MAAMD,EAAE9e,MAAF,KAAa,CAAvB;;AAEA;AACA,UAAI,OAAO4e,SAAP,KAAqB,UAAzB,EACE,MAAM,IAAIC,SAAJ,CAAc,8BAAd,CAAN;;AAGF;AACA,UAAIG,UAAU1d,UAAU,CAAV,CAAd;;AAEA;AACA,UAAIG,IAAI,CAAR;;AAEA;AACA,aAAOA,IAAIsd,GAAX,EAAgB;AACd;AACA;AACA;AACA;AACA,YAAIE,SAASH,EAAErd,CAAF,CAAb;AACA,YAAImd,UAAUje,IAAV,CAAeqe,OAAf,EAAwBC,MAAxB,EAAgCxd,CAAhC,EAAmCqd,CAAnC,CAAJ,EACE,OAAOG,MAAP;;AAEF;AACAxd;AACD;;AAED;AACA,aAAOkL,SAAP;AACD;AAxC4C,GAA/C;AA0CD,C;;;;;;;;;;;;;;;;;AClDD;;;;AAEA,IAAMuS,OAAO,qCAAb;AALA;AACA;;AAKA,IAAMC,OAAO,oBAAoBD,IAAjC;AACA,IAAME,QAAQ,oBAAoBF,IAAlC;AACA,IAAMG,OAAO,oBAAoBH,IAAjC;AACA,IAAMI,QAAQ,oBAAoBJ,IAAlC;;AAEA,IAAMK,cAAc,CAApB;AACA,IAAMC,aAAa,CAAnB;AACA,IAAMC,aAAa,CAAnB;AACA,IAAMC,cAAc,CAApB;AACA,IAAMC,iBAAiBD,WAAvB;;AAEA,IAAME,SAAS,CAACR,KAAD,EAAQD,IAAR,EAAcE,IAAd,EAAoBC,KAApB,EAA2BA,KAA3B,CAAf;AACA,IAAMO,eAAe,CAAC,OAAD,EAAU,MAAV,EAAkB,MAAlB,EAA0B,OAA1B,EAAmC,UAAnC,CAArB;;IAEqB7F,G;AACnB,iBAA2D;AAAA;;AAAA,QAA/C8F,KAA+C,uEAAvCN,UAAuC;AAAA,QAA3BO,QAA2B,uEAAhBJ,cAAgB;AAAA;;AACzD,SAAKK,IAAL,GAAY,kBAAZ;AACA,SAAKA,IAAL,CAAUC,IAAV,CAAe,CAAC,cAAD,CAAf,EAAiC;AAAA,aAAM,MAAKC,KAAL,EAAN;AAAA,KAAjC;AACA,SAAKC,SAAL,GAAiB,CAAC,YAAD,EAAe,qBAAf,EAAsC,mBAAtC,EAA2D,iBAA3D,EAA8E,sBAA9E,EAAsG,oBAAtG,CAAjB;AACA,SAAKL,KAAL,GAAaA,KAAb;AACA,SAAKC,QAAL,GAAgBA,QAAhB;AACD;;gBAEDle,K,kBAAMzB,K,EAAO;AAAE,SAAKggB,GAAL,CAAShgB,KAAT,EAAgBmf,WAAhB,EAA6BvgB,MAAMC,SAAN,CAAgBF,KAAhB,CAAsB4B,IAAtB,CAA2BW,SAA3B,EAAsC,CAAtC,CAA7B;AAAwE,G;;gBACvF+e,I,iBAAKjgB,K,EAAO;AAAE,SAAKggB,GAAL,CAAShgB,KAAT,EAAgBof,UAAhB,EAA4BxgB,MAAMC,SAAN,CAAgBF,KAAhB,CAAsB4B,IAAtB,CAA2BW,SAA3B,EAAsC,CAAtC,CAA5B;AAAuE,G;;gBACrFgf,I,iBAAKlgB,K,EAAO;AAAE,SAAKggB,GAAL,CAAShgB,KAAT,EAAgBqf,UAAhB,EAA4BzgB,MAAMC,SAAN,CAAgBF,KAAhB,CAAsB4B,IAAtB,CAA2BW,SAA3B,EAAsC,CAAtC,CAA5B;AAAuE,G;;gBACrFR,K,kBAAMV,K,EAAO;AAAE,SAAKggB,GAAL,CAAShgB,KAAT,EAAgBsf,WAAhB,EAA6B1gB,MAAMC,SAAN,CAAgBF,KAAhB,CAAsB4B,IAAtB,CAA2BW,SAA3B,EAAsC,CAAtC,CAA7B;AAAwE,G;;gBAEvF4e,K,oBAAQ;AACN,QAAI,KAAKJ,KAAL,KAAe,KAAKC,QAAxB,EAAkC;AAAE,WAAKD,KAAL,GAAa,KAAKS,aAAlB;AAAiC,KAArE,MAA2E;AACzE,WAAKA,aAAL,GAAqB,KAAKT,KAA1B;AACA,WAAKA,KAAL,GAAa,KAAKC,QAAlB;AACD;AACD;AACA,QAAIjS,OAAO0S,OAAP,IAAkB1S,OAAO0S,OAAP,CAAeJ,GAArC,EACEtS,OAAO0S,OAAP,CAAeJ,GAAf,CAAmB,qCAAqCP,aAAa,KAAKC,KAAlB,CAAxD,EAAkFT,IAAlF;AAEH,G;;gBAEDS,K,kBAAMW,Q,EAAU;AACd,SAAKX,KAAL,GAAaW,QAAb;AACD,G;;gBAEDL,G,gBAAIhgB,K,EAAO0f,K,EAAOY,O,EAAS;AACzB,QAAI,KAAKP,SAAL,CAAenQ,OAAf,CAAuB0Q,QAAQ,CAAR,CAAvB,KAAsC,CAA1C,EAA6C;AAC7C,QAAIZ,QAAQ,KAAKA,KAAjB,EAAwB;;AAExB,QAAI,CAACY,OAAL,EAAc;AACZA,gBAAUtgB,KAAV;AACAA,cAAQ,IAAR;AACD;AACD,QAAMugB,QAAQf,OAAOE,KAAP,CAAd;AACA,QAAIc,mBAAmB,EAAvB;AACA,QAAIxgB,KAAJ,EACEwgB,mBAAmB,MAAMxgB,KAAN,GAAc,GAAjC;;AAEF,QAAI0N,OAAO0S,OAAP,IAAkB1S,OAAO0S,OAAP,CAAeJ,GAArC,EACEtS,OAAO0S,OAAP,CAAeJ,GAAf,CAAmB3gB,KAAnB,CAAyB+gB,OAAzB,EAAkC,CAAC,QAAQX,aAAaC,KAAb,CAAR,GAA8B,GAA9B,GAAoCc,gBAArC,EAAuDD,KAAvD,EAA8DjhB,MAA9D,CAAqEghB,OAArE,CAAlC;AAEH,G;;;;;kBA7CkB1G,G;;;AAgDrBA,IAAIuF,WAAJ,GAAkBA,WAAlB;AACAvF,IAAIwF,UAAJ,GAAiBA,UAAjB;AACAxF,IAAIyF,UAAJ,GAAiBA,UAAjB;AACAzF,IAAI0F,WAAJ,GAAkBA,WAAlB;;AAEA1F,IAAIlC,WAAJ,GAAkB,YAAW;AAC3B,MAAI,KAAK+I,SAAL,KAAmBlU,SAAvB,EAAkC;AAChC,SAAKkU,SAAL,GAAiB,IAAI,IAAJ,EAAjB;AACA,SAAKA,SAAL,CAAeN,aAAf,GAA+B,KAAKM,SAAL,CAAef,KAA9C;AACA,SAAKe,SAAL,CAAef,KAAf,GAAuB,KAAKe,SAAL,CAAed,QAAtC;AACD;AACD,SAAO,KAAKc,SAAZ;AACD,CAPD;;AASA7G,IAAI8G,QAAJ,GAAe,UAAShB,KAAT,EAAgB;AAAE,OAAKhI,WAAL,GAAmBgI,KAAnB,GAA2BA,KAA3B;AAAkC,CAAnE;;AAEA9F,IAAInY,KAAJ,GAAY,YAAW;AAAE,OAAKiW,WAAL,GAAmBjW,KAAnB,CAAyBpC,KAAzB,CAA+B,KAAKqY,WAAL,EAA/B,EAAmDxW,SAAnD;AAA+D,CAAxF;AACA0Y,IAAIqG,IAAJ,GAAW,YAAW;AAAE,OAAKvI,WAAL,GAAmBuI,IAAnB,CAAwB5gB,KAAxB,CAA8B,KAAKqY,WAAL,EAA9B,EAAkDxW,SAAlD;AAA8D,CAAtF;AACA0Y,IAAIsG,IAAJ,GAAW,YAAW;AAAE,OAAKxI,WAAL,GAAmBwI,IAAnB,CAAwB7gB,KAAxB,CAA8B,KAAKqY,WAAL,EAA9B,EAAkDxW,SAAlD;AAA8D,CAAtF;AACA0Y,IAAIlZ,KAAJ,GAAY,YAAW;AAAE,OAAKgX,WAAL,GAAmBhX,KAAnB,CAAyBrB,KAAzB,CAA+B,KAAKqY,WAAL,EAA/B,EAAmDxW,SAAnD;AAA+D,CAAxF;;;;;;;;;;;;;ACxFA;AACA;AACA;;AAEA,IAAIgX,OAAO,SAAPA,IAAO,CAAS9D,OAAT,EAAkB;AAC3B,OAAKA,OAAL,GAAeA,WAAW1G,OAAO/C,QAAjC;AACA,OAAKZ,UAAL;AACD,CAHD;;AAKAmO,KAAKyI,iBAAL,GAAyB;AACvB,KAAG,WADoB,EACP,GAAG,KADI,EACG,IAAI,OADP;AAEvB,MAAI,OAFmB,EAEV,IAAI,MAFM,EAEE,IAAI,KAFN;AAGvB,MAAI,WAHmB;AAIvB,MAAI,KAJmB;AAKvB,MAAI,OALmB;AAMvB,MAAI,MANmB,EAMX,IAAI,IANO,EAMD,IAAI,OANH,EAMY,IAAI,MANhB;AAOvB,MAAI,GAPmB,EAOd,IAAI,GAPU,EAOL,IAAI,GAPC,EAOI,IAAI,GAPR,EAOa,IAAI,GAPjB,EAOsB,IAAI,GAP1B,EAO+B,IAAI,GAPnC,EAOwC,IAAI,GAP5C,EAOiD,IAAI,GAPrD,EAO0D,IAAI,GAP9D;AAQvB,MAAI,GARmB,EAQd,IAAI,GARU,EAQL,IAAI,GARC,EAQI,IAAI,GARR,EAQa,IAAI,GARjB,EAQsB,IAAI,GAR1B,EAQ+B,IAAI,GARnC,EAQwC,IAAI,GAR5C,EAQiD,IAAI,GARrD,EAQ0D,IAAI,GAR9D;AASvB,MAAI,GATmB,EASd,IAAI,GATU,EASL,IAAI,GATC,EASI,IAAI,GATR,EASa,IAAI,GATjB,EASsB,IAAI,GAT1B,EAS+B,IAAI,GATnC,EASwC,IAAI,GAT5C,EASiD,IAAI,GATrD,EAS0D,IAAI,GAT9D;AAUvB,MAAI,GAVmB,EAUd,IAAI,GAVU,EAUL,IAAI,GAVC,EAUI,IAAI,GAVR,EAUa,IAAI,GAVjB,EAUsB,IAAI,GAV1B,EAU+B,KAAK,IAVpC,EAU0C,KAAK,IAV/C,EAUqD,KAAK,IAV1D;AAWvB,OAAK,IAXkB,EAWZ,KAAK,IAXO,EAWD,KAAK,IAXJ,EAWU,KAAK,IAXf,EAWqB,KAAK,IAX1B,EAWgC,KAAK,IAXrC,EAW2C,KAAK,KAXhD,EAWuD,KAAK,KAX5D,EAWmE,KAAK;AAXxE,CAAzB;;AAcAzI,KAAK0I,iBAAL,GAAyB,EAAzB;AACA,CAAC,YAAW;AACV,OAAI,IAAIxhB,GAAR,IAAe8Y,KAAKyI,iBAApB,EAAuC;AACrC,QAAGrC,OAAOzf,SAAP,CAAiBgiB,cAAjB,CAAgCtgB,IAAhC,CAAqC2X,KAAKyI,iBAA1C,EAA6DvhB,GAA7D,CAAH,EAAsE;AACpE8Y,WAAK0I,iBAAL,CAAuB1I,KAAKyI,iBAAL,CAAuBvhB,GAAvB,CAAvB,IAAsD,CAACA,GAAvD;AACD;AACF;AACF,CAND;;AAQA8Y,KAAK4I,SAAL,GAAiB,CAAC,OAAD,EAAU,MAAV,EAAkB,KAAlB,CAAjB;;AAEA5I,KAAK6I,aAAL,GAAsB,YAAW;AAC/B,MAAGpW,SAASqW,gBAAZ,EAA8B;AAC5B,WAAO,UAAS5M,OAAT,EAAkBjS,SAAlB,EAA6B8e,IAA7B,EAAmC;AACxC7M,cAAQ4M,gBAAR,CAAyB7e,SAAzB,EAAoC8e,IAApC,EAA0C,KAA1C;AACD,KAFD;AAGD,GAJD,MAKK,IAAGtW,SAASuW,WAAZ,EAAyB;AAC5B,WAAO,UAAS9M,OAAT,EAAkBjS,SAAlB,EAA6B8e,IAA7B,EAAmC;AACxC7M,cAAQ8M,WAAR,CAAoB,OAAO/e,SAA3B,EAAsC8e,IAAtC;AACD,KAFD;AAGD;AACF,CAXoB,EAArB;;AAaA/I,KAAKiJ,eAAL,GAAwB,YAAW;AACjC,MAAGxW,SAASyW,mBAAZ,EAAiC;AAC/B,WAAO,UAAShN,OAAT,EAAkBjS,SAAlB,EAA6B8e,IAA7B,EAAmC;AACxC7M,cAAQgN,mBAAR,CAA4Bjf,SAA5B,EAAuC8e,IAAvC,EAA6C,KAA7C;AACD,KAFD;AAGD,GAJD,MAKK,IAAGtW,SAAS0W,WAAZ,EAAyB;AAC5B,WAAO,UAASjN,OAAT,EAAkBjS,SAAlB,EAA6B8e,IAA7B,EAAmC;AACxC7M,cAAQiN,WAAR,CAAoB,OAAOlf,SAA3B,EAAsC8e,IAAtC;AACD,KAFD;AAGD;AACF,CAXsB,EAAvB;;AAaA/I,KAAKoJ,cAAL,GAAsB,UAASlQ,MAAT,EAAiBxD,SAAjB,EAA4B;AAChD,SAAOwD,OAAOxB,OAAP,CAAehC,SAAf,MAA8B,CAAC,CAAtC;AACD,CAFD;;AAIAsK,KAAKqJ,UAAL,GAAkB,UAASnQ,MAAT,EAAiB;AACjC,SAAOA,OAAO9D,OAAP,CAAe,YAAf,EAA6B,EAA7B,EAAiCA,OAAjC,CAAyC,MAAzC,EAAiD,GAAjD,CAAP;AACD,CAFD;;AAIA4K,KAAKsJ,UAAL,GAAkB,UAASpQ,MAAT,EAAiB;AACjC,SAAOA,OAAO5O,WAAP,GAAqB8K,OAArB,CAA6B,IAA7B,EAAmC,UAASN,KAAT,EAAgB;AAAE,WAAOA,MAAM1K,WAAN,EAAP;AAA6B,GAAlF,CAAP;AACD,CAFD;;AAIA4V,KAAKuJ,QAAL,GAAgB,UAASC,IAAT,EAAe;AAC7B,SAAOxJ,KAAKoJ,cAAL,CAAoBhD,OAAOzf,SAAP,CAAiB6Z,QAAjB,CAA0BnY,IAA1B,CAA+BmhB,IAA/B,CAApB,EAA0D,QAA1D,CAAP;AACD,CAFD;;AAIAxJ,KAAKyJ,aAAL,GAAsB,YAAW;AAC/B,MAAG/iB,MAAMC,SAAN,CAAgB+Q,OAAnB,EAA4B;AAC1B,WAAO,UAASgS,QAAT,EAAmBC,MAAnB,EAA2B;AAChC,aAAOD,SAAShS,OAAT,CAAiBiS,MAAjB,MAA6B,CAAC,CAArC;AACD,KAFD;AAGD,GAJD,MAKK;AACH,WAAO,UAASD,QAAT,EAAmBC,MAAnB,EAA2B;AAChC,WAAI,IAAIniB,IAAI,CAAZ,EAAeA,IAAIkiB,SAAShiB,MAA5B,EAAoCF,GAApC,EAAyC;AACvC,YAAGkiB,SAASliB,CAAT,MAAgBmiB,MAAnB,EAA2B;AACzB,iBAAO,IAAP;AACD;AACF;AACD,aAAO,KAAP;AACD,KAPD;AAQD;AACF,CAhBoB,EAArB;;AAkBA3J,KAAK4J,gBAAL,GAAwB,UAASC,cAAT,EAAyB;AAC/C,MAAIC,SAAJ,EAAetiB,CAAf;AACAsiB,cAAY,EAAZ;AACA,OAAItiB,IAAI,CAAR,EAAWA,IAAIwY,KAAK4I,SAAL,CAAelhB,MAA9B,EAAsCF,GAAtC,EAA2C;AACzC,QAAGwY,KAAKoJ,cAAL,CAAoBS,cAApB,EAAoC7J,KAAK4I,SAAL,CAAephB,CAAf,CAApC,CAAH,EAA2D;AACzDsiB,gBAAUjhB,IAAV,CAAemX,KAAK4I,SAAL,CAAephB,CAAf,CAAf;AACD;AACF;AACD,SAAOsiB,SAAP;AACD,CATD;;AAWA9J,KAAK+J,UAAL,GAAkB,UAASF,cAAT,EAAyB;AACzC,MAAIG,IAAJ,EAAUxiB,CAAV;AACAwiB,SAAOhK,KAAKqJ,UAAL,CAAgBQ,cAAhB,EAAgCtiB,KAAhC,CAAsC,GAAtC,CAAP;AACA,OAAIC,IAAI,CAAR,EAAWA,IAAIwiB,KAAKtiB,MAApB,EAA4BF,GAA5B,EAAiC;AAC/B,QAAG,CAACwY,KAAKyJ,aAAL,CAAmBzJ,KAAK4I,SAAxB,EAAmCoB,KAAKxiB,CAAL,CAAnC,CAAJ,EAAiD;AAC/C,aAAOwiB,KAAKxiB,CAAL,CAAP;AACD;AACF;AACF,CARD;;AAUAwY,KAAKiK,eAAL,GAAuB,UAASJ,cAAT,EAAyB;AAC9C,MAAIK,MAAJ,EAAYhjB,GAAZ;;AAEA,MAAG8Y,KAAKoJ,cAAL,CAAoBS,cAApB,EAAoC,KAApC,CAAH,EAA+C;AAC7C,WAAO7J,KAAKqJ,UAAL,CAAgBQ,cAAhB,EAAgCtiB,KAAhC,CAAsC,GAAtC,EAA2Cd,KAA3C,CAAiD,CAAjD,EAAoD,CAApD,EAAuDiE,IAAvD,CAA4D,GAA5D,CAAP;AACD;;AAEDwf,WAASlK,KAAK4J,gBAAL,CAAsBC,cAAtB,CAAT;;AAEA3iB,QAAM8Y,KAAK+J,UAAL,CAAgBF,cAAhB,CAAN;AACA,MAAG3iB,OAAO,CAAC8Y,KAAKyJ,aAAL,CAAmBzJ,KAAK4I,SAAxB,EAAmC1hB,GAAnC,CAAX,EAAoD;AAClDgjB,WAAOrhB,IAAP,CAAY3B,GAAZ;AACD;;AAED,SAAOgjB,OAAOxf,IAAP,CAAY,GAAZ,CAAP;AACD,CAfD;;AAiBAsV,KAAKmK,OAAL,GAAe,UAASC,OAAT,EAAkB;AAC/B,SAAOpK,KAAKyI,iBAAL,CAAuB2B,UAAU,EAAjC,CAAP;AACD,CAFD;;AAIApK,KAAKoK,OAAL,GAAe,UAASD,OAAT,EAAkB;AAC/B,SAAO,CAACnK,KAAK0I,iBAAL,CAAuByB,OAAvB,CAAR;AACD,CAFD;;AAIAnK,KAAKrZ,SAAL,CAAekL,UAAf,GAA4B,YAAW;AACrC,MAAIrK,CAAJ;AAAA,MAAO6iB,OAAO,IAAd;;AAEA,OAAKC,WAAL,GAAmB,CAAC,CAApB;AACA,OAAKC,aAAL,GAAqB,EAArB;AACA,OAAI/iB,IAAI,CAAR,EAAWA,IAAIwY,KAAK4I,SAAL,CAAelhB,MAA9B,EAAsCF,GAAtC,EAA2C;AACzC,SAAK+iB,aAAL,CAAmBvK,KAAK4I,SAAL,CAAephB,CAAf,CAAnB,IAAwC,KAAxC;AACD;;AAED,OAAKgjB,QAAL,GAAgB,EAAEC,KAAK,EAAP,EAAhB;AACA,OAAKC,MAAL,GAAc,EAAED,KAAK,EAAP,EAAd;AACA,OAAKE,WAAL,GAAmB,KAAKC,OAAL,CAAa,MAAb,CAAnB;AACA,OAAKC,SAAL,GAAiB,KAAKD,OAAL,CAAa,IAAb,CAAjB;;AAEA5K,OAAK6I,aAAL,CAAmB,KAAK3M,OAAxB,EAAiC,SAAjC,EAA4C,KAAKyO,WAAjD;AACA3K,OAAK6I,aAAL,CAAmB,KAAK3M,OAAxB,EAAiC,OAAjC,EAA0C,KAAK2O,SAA/C;AACA7K,OAAK6I,aAAL,CAAmBrT,MAAnB,EAA2B,QAA3B,EAAqC,SAASsV,QAAT,GAAoB;AACvD9K,SAAKiJ,eAAL,CAAqBoB,KAAKnO,OAA1B,EAAmC,SAAnC,EAA8CmO,KAAKM,WAAnD;AACA3K,SAAKiJ,eAAL,CAAqBoB,KAAKnO,OAA1B,EAAmC,OAAnC,EAA4CmO,KAAKQ,SAAjD;AACA7K,SAAKiJ,eAAL,CAAqBzT,MAArB,EAA6B,QAA7B,EAAuCsV,QAAvC;AACD,GAJD;AAKD,CArBD;;AAuBA9K,KAAKrZ,SAAL,CAAeikB,OAAf,GAAyB,UAASG,QAAT,EAAmB;AAC1C,MAAIV,OAAO,IAAX;AACA,SAAO,UAASjW,CAAT,EAAY;AACjB,QAAI5M,CAAJ,EAAOwjB,cAAP,EAAuBC,mBAAvB;;AAEA7W,QAAIA,KAAKoB,OAAO0V,KAAhB;;AAEAb,SAAKC,WAAL,GAAmBlW,EAAEgW,OAArB;AACA,SAAI5iB,IAAI,CAAR,EAAWA,IAAIwY,KAAK4I,SAAL,CAAelhB,MAA9B,EAAsCF,GAAtC,EAA2C;AACzC6iB,WAAKE,aAAL,CAAmBvK,KAAK4I,SAAL,CAAephB,CAAf,CAAnB,IAAwC4M,EAAE4L,KAAK4I,SAAL,CAAephB,CAAf,IAAoB,KAAtB,CAAxC;AACD;AACD,QAAGwY,KAAKyJ,aAAL,CAAmBzJ,KAAK4I,SAAxB,EAAmC5I,KAAKmK,OAAL,CAAaE,KAAKC,WAAlB,CAAnC,CAAH,EAAuE;AACrED,WAAKE,aAAL,CAAmBvK,KAAKmK,OAAL,CAAaE,KAAKC,WAAlB,CAAnB,IAAqD,IAArD;AACD;;AAEDU,qBAAiBX,KAAK,SAASrK,KAAKsJ,UAAL,CAAgByB,QAAhB,CAAd,CAAjB;;AAEA,SAAIvjB,IAAI,CAAR,EAAWA,IAAIwjB,eAAeP,GAAf,CAAmB/iB,MAAlC,EAA0CF,GAA1C,EAA+C;AAC7C,UAAIwjB,eAAeP,GAAf,CAAmBjjB,CAAnB,EAAsB4M,CAAtB,MAA6B,KAA9B,IAAwCA,EAAE+W,cAA7C,EAA6D;AAC3D/W,UAAE+W,cAAF;AACD;AACF;;AAEDF,0BAAsBZ,KAAKY,mBAAL,EAAtB;AACA,QAAGD,eAAeC,mBAAf,CAAH,EAAwC;AACtC,WAAIzjB,IAAI,CAAR,EAAWA,IAAIwjB,eAAeC,mBAAf,EAAoCvjB,MAAnD,EAA2DF,GAA3D,EAAgE;AAC9D,YAAIwjB,eAAeC,mBAAf,EAAoCzjB,CAApC,EAAuC4M,CAAvC,MAA8C,KAA/C,IAAyDA,EAAE+W,cAA9D,EAA8E;AAC5E/W,YAAE+W,cAAF;AACD;AACF;AACF;AACF,GA7BD;AA8BD,CAhCD;;AAkCAnL,KAAKrZ,SAAL,CAAeykB,YAAf,GAA8B,UAASL,QAAT,EAAmBM,OAAnB,EAA4BtC,IAA5B,EAAkC;AAC9D,MAAIvhB,CAAJ;AAAA,MAAOwiB,IAAP;AAAA,MAAagB,iBAAiB,KAAK,SAAShL,KAAKsJ,UAAL,CAAgByB,QAAhB,CAAd,CAA9B;;AAEA,MAAG/K,KAAKuJ,QAAL,CAAc8B,OAAd,CAAH,EAA2B;AACzBA,cAAU,CAACA,OAAD,CAAV;AACD;;AAED,OAAI7jB,IAAI,CAAR,EAAWA,IAAI6jB,QAAQ3jB,MAAvB,EAA+BF,GAA/B,EAAoC;AAClCwiB,WAAOqB,QAAQ7jB,CAAR,CAAP;AACAwiB,WAAOhK,KAAKiK,eAAL,CAAqBD,OAAO,EAA5B,CAAP;;AAEA,QAAGgB,eAAehB,IAAf,CAAH,EAAyB;AACvBgB,qBAAehB,IAAf,EAAqBnhB,IAArB,CAA0BkgB,IAA1B;AACD,KAFD,MAEO;AACLiC,qBAAehB,IAAf,IAAuB,CAACjB,IAAD,CAAvB;AACD;AACF;;AAED,SAAO,IAAP;AACD,CAnBD;;AAqBA;AACA/I,KAAKrZ,SAAL,CAAe2kB,cAAf,GAAgC,UAASP,QAAT,EAAmBM,OAAnB,EAA4BtC,IAA5B,EAAkC;AAChE,MAAIvhB,CAAJ;AAAA,MAAO0B,CAAP;AAAA,MAAU8gB,IAAV;AAAA,MAAgBgB,iBAAiB,KAAK,SAAShL,KAAKsJ,UAAL,CAAgByB,QAAhB,CAAd,CAAjC;;AAEA,MAAG/K,KAAKuJ,QAAL,CAAc8B,OAAd,CAAH,EAA2B;AACzBA,cAAU,CAACA,OAAD,CAAV;AACD;;AAED,OAAI7jB,IAAI,CAAR,EAAWA,IAAI6jB,QAAQ3jB,MAAvB,EAA+BF,GAA/B,EAAoC;AAClCwiB,WAAOqB,QAAQ7jB,CAAR,CAAP;AACAwiB,WAAOhK,KAAKiK,eAAL,CAAqBD,OAAO,EAA5B,CAAP;;AAEA,QAAGjB,SAAS,IAAZ,EAAkB;AAChB,aAAOiC,eAAehB,IAAf,CAAP;AACD,KAFD,MAEO;AACL,UAAGgB,eAAehB,IAAf,CAAH,EAAyB;AACvB,aAAI9gB,IAAI,CAAR,EAAWA,IAAI8hB,eAAehB,IAAf,EAAqBtiB,MAApC,EAA4CwB,GAA5C,EAAiD;AAC/C,cAAGqiB,OAAOP,eAAehB,IAAf,EAAqB9gB,CAArB,CAAP,MAAoCqiB,OAAOxC,IAAP,CAAvC,EAAqD;AACnDiC,2BAAehB,IAAf,EAAqBrS,MAArB,CAA4BzO,CAA5B,EAA+B,CAA/B;AACA;AACD;AACF;AACF;AACF;AACF;;AAED,SAAO,IAAP;AACD,CA1BD;;AA4BA8W,KAAKrZ,SAAL,CAAeoC,GAAf,GAAqB,UAASihB,IAAT,EAAe;AAClC,SAAO,KAAKsB,cAAL,CAAoB,MAApB,EAA4BtB,IAA5B,EAAkC,IAAlC,CAAP;AACD,CAFD;;AAIAhK,KAAKrZ,SAAL,CAAewV,QAAf,GAA0B,UAAS4O,QAAT,EAAmBf,IAAnB,EAAyBjB,IAAzB,EAA+B;AACvD,SAAQA,SAAS,IAAT,IAAiBA,SAAS1U,SAA3B,GAAwC,KAAK+W,YAAL,CAAkBL,QAAlB,EAA4Bf,IAA5B,EAAkCjB,IAAlC,CAAxC,GAAkF,KAAKuC,cAAL,CAAoBP,QAApB,EAA8Bf,IAA9B,EAAoCjB,IAApC,CAAzF;AACD,CAFD;;AAIA/I,KAAKrZ,SAAL,CAAeghB,IAAf,GAAsB,UAASqC,IAAT,EAAejB,IAAf,EAAqB;AACzC,SAAO,KAAK5M,QAAL,CAAc,MAAd,EAAsB6N,IAAtB,EAA4BjB,IAA5B,CAAP;AACD,CAFD;;AAIA/I,KAAKrZ,SAAL,CAAe6kB,EAAf,GAAoB,UAASxB,IAAT,EAAejB,IAAf,EAAqB;AACvC,SAAO,KAAK5M,QAAL,CAAc,IAAd,EAAoB6N,IAApB,EAA0BjB,IAA1B,CAAP;AACD,CAFD;;AAIA/I,KAAKrZ,SAAL,CAAe8kB,OAAf,GAAyB,UAASC,QAAT,EAAmB;AAC1C,MAAG,CAACA,QAAJ,EAAc;AACZ,WAAO1L,KAAKmK,OAAL,CAAa,KAAKG,WAAlB,CAAP;AACD;;AAED,SAAO,KAAKC,aAAL,CAAmBmB,QAAnB,CAAP;AACD,CAND;;AAQA1L,KAAKrZ,SAAL,CAAeskB,mBAAf,GAAqC,YAAW;AAC9C,MAAIf,MAAJ,EAAY1iB,CAAZ;;AAEA0iB,WAAS,EAAT;AACA,OAAI1iB,IAAI,CAAR,EAAWA,IAAIwY,KAAK4I,SAAL,CAAelhB,MAA9B,EAAsCF,GAAtC,EAA2C;AACzC,QAAG,KAAKikB,OAAL,CAAazL,KAAK4I,SAAL,CAAephB,CAAf,CAAb,CAAH,EAAoC;AAClC0iB,aAAOrhB,IAAP,CAAYmX,KAAK4I,SAAL,CAAephB,CAAf,CAAZ;AACD;AACF;;AAED,MAAG,CAACwY,KAAKyJ,aAAL,CAAmBS,MAAnB,EAA2B,KAAKuB,OAAL,EAA3B,CAAJ,EAAgD;AAC9CvB,WAAOrhB,IAAP,CAAY,KAAK4iB,OAAL,EAAZ;AACD;;AAED,SAAOvB,OAAOxf,IAAP,CAAY,GAAZ,CAAP;AACD,CAfD;;kBAiBesV,I;;;;;;;;;;;;;;AChSf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIA;;;;AACA;;;;;;AAEA;;;;;;;AAPA;AACA;AACA;;IAYqB2L,W;;;;wBAEN;AAAE,aAAO,KAAKC,MAAL,CAAY7J,MAAnB;AAA2B;;AAE1C;;;;;;;;AAKA,uBAAY6J,MAAZ,EAAoB;AAAA;;AAAA,+DAClB,sBADkB;;AAElB,UAAKA,MAAL,GAAcA,MAAd;AACA,UAAKrQ,QAAL,GAAgBqQ,OAAO7T,OAAvB;AAHkB;AAInB;;AAED;;;;;;;wBAKAC,M,qBAAS;AACP,SAAKD,OAAL,CAAagK,MAAb,GAAsB,KAAKA,MAA3B;AACA,SAAKnD,IAAL,GAAY,mBAAS,KAAK7G,OAAd,CAAZ;AACA,SAAK8T,cAAL;AACA,SAAKjN,IAAL,CAAUkN,gBAAV,CAA2B,KAAK/T,OAAhC;AACA,WAAO,KAAK6G,IAAZ;AACD,G;;AAED;;;;;;;wBAKAiN,c,6BAAiB;AAAA;;AACf,SAAK9J,MAAL,CAAYgK,WAAZ,CAAwB/gB,OAAxB,CAAgC,UAACghB,MAAD,EAAY;AAC1C,UAAM7F,SAAS,IAAI6F,MAAJ,CAAW,OAAKpN,IAAhB,CAAf;AACA,aAAKA,IAAL,CAAUqN,SAAV,CAAoB9F,MAApB;AACA,aAAK+F,sBAAL,CAA4B/F,MAA5B;AACD,KAJD;AAKA,WAAO,KAAKvH,IAAZ;AACD,G;;wBAEDsN,sB,mCAAuB/F,M,EAAQ;AAC7B,QAAMgG,oBAAoBhG,OAAOlH,oBAAP,EAA1B;AACA,SAAK,IAAM/X,GAAX,IAAkBilB,iBAAlB;AACE,WAAKP,MAAL,CAAY1kB,GAAZ,IAAmBilB,kBAAkBjlB,GAAlB,EAAuB6P,IAAvB,CAA4BoP,MAA5B,CAAnB;AADF;AAGD,G;;;;;kBA/CkBwF,W;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVrB;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AAEA;;;;AAEA;;;;AAEA;;AACA;;;;;;AAnBA;AACA;AACA;;AAmBA,IAAItL,cAAJ;;AAEA;;;;;;;;;IAQqBO,I;;;;wBACN;AACX,aAAO;AACL,kCAA0B,wBADrB;AAEL,qBAAa,kBAFR;AAGL,sBAAc;AAHT,OAAP;AAKD;;;wBAEgB;AACf,aAAO;AACL,uBAAe,EADV;AAELwL,kBAAU;AAFL,OAAP;AAID;;AAED;;;;;;;;wBAKc;AACZ,aAAO,CAAC,CAAC,KAAKC,KAAd;AACD;;AAED;;;;;;;;wBAKW;AACT,aAAO,KAAKnG,SAAL,CAAe,SAAf,KAA6B,EAAEoG,GAAG,WAACplB,GAAD;AAAA,iBAASA,GAAT;AAAA,SAAL,EAApC;AACD;;;AAED,gBAAY6Q,OAAZ,EAAqB;AAAA;;AAAA,+DACnB,qBAAMA,OAAN,CADmB;;AAEnB,UAAKwU,oBAAL;AACA,UAAK7I,UAAL,GAAkB,sBAAWlE,WAAX,CAAuBzH,QAAQ0H,QAA/B,CAAlB;AACA,UAAK+M,WAAL,GAAmB,IAAnB;AACA,UAAKvK,OAAL,GAAe,EAAf;AACA,UAAKwK,UAAL,GAAkB,EAAlB;AACA,UAAKC,iBAAL,CAAuB,IAAvB;AACA;AACA,UAAKC,uBAAL,GAA+B;AAAA,aAAM,MAAKC,sBAAL,EAAN;AAAA,KAA/B;AACA,+BAAEna,QAAF,EAAYsE,IAAZ,CAAiB,kBAAjB,EAAqC,MAAK4V,uBAA1C;AACA,+BAAEla,QAAF,EAAYsE,IAAZ,CAAiB,oBAAjB,EAAuC,MAAK4V,uBAA5C;AACA,+BAAEla,QAAF,EAAYsE,IAAZ,CAAiB,qBAAjB,EAAwC,MAAK4V,uBAA7C;AACA,sBAAQvO,QAAR,IAAoB,2BAAE5I,MAAF,EAAUuB,IAAV,CAAe,QAAf,EAAyB,UAACyP,CAAD,EAAO;AAAE,YAAKqG,kBAAL,CAAwBrG,CAAxB;AAA4B,KAA9D,CAApB;AAbmB;AAcpB;;iBAED+F,oB,mCAAuB;AACrB,QAAItU,eAAgB,KAAKF,OAAL,IAAgB,KAAKA,OAAL,CAAa+U,QAA7B,IAAyC,KAAK/U,OAAL,CAAa+U,QAAb,CAAsB7U,YAAhE,GAAgF,IAAhF,GAAuF,KAA1G;AACA,uBAAYH,SAAZ,CAAsB;AACpBG,oBAAcA;AADM,KAAtB;AAGD,G;;iBAED6T,gB,6BAAiB/T,O,EAAS;AAAA;;AACxB,SAAKgV,KAAL,GAAa,sBAAEC,QAAF,EAAb;AACA,SAAKD,KAAL,CAAWE,OAAX,CAAmB,IAAnB;AACA,SAAKC,gBAAL,GAAwB,gCAAqBnV,OAArB,EAA8BA,QAAQgK,MAAtC,EAA8C,KAAKhI,IAAnD,CAAxB;AACA,SAAKmT,gBAAL,CACGpB,gBADH,GAEGqB,IAFH,CAEQ,UAACV,UAAD;AAAA,aAAgB,OAAKW,eAAL,CAAqBX,UAArB,CAAhB;AAAA,KAFR,EAGGU,IAHH,CAGQ,UAACV,UAAD;AAAA,aAAgB,OAAKY,wBAAL,CAA8BZ,UAA9B,CAAhB;AAAA,KAHR;AAID,G;;iBAEDa,U,yBAAa;AACX,QAAI,kBAAW9a,YAAX,EAAJ,EACE,KAAK+a,aAAL,GADF,KAGE,KAAKC,aAAL;AAEH,G;;iBAEDD,a,4BAAgB;AACd,QAAG,CAAC,kBAAQlP,KAAZ,EAAmB;AACjB,WAAKjG,GAAL,CAASqV,QAAT,CAAkB,YAAlB;AACA,WAAKrV,GAAL,CAASsV,UAAT,CAAoB,OAApB;AACA,WAAKhK,UAAL,CAAgBiK,YAAhB,GAA+B,EAAEtO,OAAO,KAAKtH,OAAL,CAAasH,KAAtB,EAA6BC,QAAQ,KAAKvH,OAAL,CAAauH,MAAlD,EAA/B;AACA,WAAKoE,UAAL,CAAgBtE,WAAhB,GAA8B,EAAEC,OAAO,2BAAE7J,MAAF,EAAU6J,KAAV,EAAT,EAA4BC,QAAQ,2BAAE9J,MAAF,EAAU8J,MAAV,EAApC,EAA9B;AACD;AACF,G;;iBAEDkO,a,4BAAgB;AACd,SAAKpV,GAAL,CAASwV,WAAT,CAAqB,YAArB;AACA,SAAKlK,UAAL,CAAgBtE,WAAhB,GAA8B,KAAKsE,UAAL,CAAgBiK,YAA9C;AACA,SAAKjK,UAAL,CAAgBiK,YAAhB,GAA+B,EAAEtO,OAAO,2BAAE7J,MAAF,EAAU6J,KAAV,EAAT,EAA4BC,QAAQ,2BAAE9J,MAAF,EAAU8J,MAAV,EAApC,EAA/B;AACA,SAAKgG,MAAL,CAAY,KAAK5B,UAAL,CAAgBtE,WAA5B;AACD,G;;iBAEDkG,M,mBAAOvN,O,EAAS;AACd,QAAI,CAAC,qBAASA,QAAQuH,MAAjB,CAAD,IAA6B,CAAC,qBAASvH,QAAQsH,KAAjB,CAAlC,EAA4D;AAC1D,WAAKtM,EAAL,CAAQsN,KAAR,CAAcf,MAAd,QAA0BvH,QAAQuH,MAAlC;AACA,WAAKvM,EAAL,CAAQsN,KAAR,CAAchB,KAAd,QAAyBtH,QAAQsH,KAAjC;AACD,KAHD,MAGO;AACL,WAAKtM,EAAL,CAAQsN,KAAR,CAAcf,MAAd,GAA0BvH,QAAQuH,MAAlC;AACA,WAAKvM,EAAL,CAAQsN,KAAR,CAAchB,KAAd,GAAyBtH,QAAQsH,KAAjC;AACD;AACD,SAAKqE,UAAL,CAAgBiK,YAAhB,GAA+B,EAAEtO,OAAO,KAAKtH,OAAL,CAAasH,KAAtB,EAA6BC,QAAQ,KAAKvH,OAAL,CAAauH,MAAlD,EAA/B;AACA,SAAKvH,OAAL,CAAasH,KAAb,GAAqBtH,QAAQsH,KAA7B;AACA,SAAKtH,OAAL,CAAauH,MAAb,GAAsBvH,QAAQuH,MAA9B;AACA,SAAKoE,UAAL,CAAgBtE,WAAhB,GAA8BrH,OAA9B;AACA,SAAK8V,aAAL,CAAmB,KAAKnK,UAAL,CAAgBtE,WAAnC;AACD,G;;iBAED0O,oB,mCAAuB;AAAA;;AACrB,QAAMC,oBAAoB,SAApBA,iBAAoB,GAAM;AAC9B,UAAI,OAAKrK,UAAL,CAAgBsK,YAAhB,CAA6B3O,KAA7B,KAAuC,OAAKtM,EAAL,CAAQkb,WAA/C,IACA,OAAKvK,UAAL,CAAgBsK,YAAhB,CAA6B1O,MAA7B,KAAwC,OAAKvM,EAAL,CAAQmb,YADpD,EACkE;AAChE,eAAKxK,UAAL,CAAgBsK,YAAhB,GAA+B,EAAE3O,OAAO,OAAKtM,EAAL,CAAQkb,WAAjB,EAA8B3O,QAAQ,OAAKvM,EAAL,CAAQmb,YAA9C,EAA/B;AACA,eAAKL,aAAL,CAAmB,OAAKnK,UAAL,CAAgBsK,YAAnC;AACD;AACF,KAND;AAOA,SAAKG,sBAAL,GAA8BC,YAAYL,iBAAZ,EAA+B,GAA/B,CAA9B;AACD,G;;iBAEDF,a,0BAAcQ,O,EAAS;AACrB,QAAMC,iBAAiB,KAAK9B,WAAL,IAAoB,KAAK+B,SAAL,KAAmBF,QAAQ/O,MAA/C,IAAyD,KAAKkP,QAAL,KAAkBH,QAAQhP,KAA1G;AACA,QAAIiP,cAAJ,EAAoB;AAClB,yBAASjlB,OAAT,CAAoB,KAAK0O,OAAL,CAAa0H,QAAjC,SAA6C,iBAAOtU,aAApD,EAAqEkjB,OAArE;AACA,WAAKE,SAAL,GAAiBF,QAAQ/O,MAAzB;AACA,WAAKkP,QAAL,GAAgBH,QAAQhP,KAAxB;AACA,WAAKmN,WAAL,GAAmB,KAAnB;AACD;AACF,G;;iBAEDiC,qB,oCAAwB;AACtB,QAAI,KAAKN,sBAAT,EAAiCO,cAAc,KAAKP,sBAAnB;AAClC,G;;iBAEDd,wB,qCAAyBZ,U,EAAY;AAAA;;AACnC,0BAAEkC,IAAF,CAAOxnB,KAAP,wBAAgBslB,UAAhB,EAA4BmC,IAA5B,CAAiC,YAAM;AACrC,aAAK7B,KAAL,CAAW8B,OAAX;AACA,aAAKxC,KAAL,GAAa,IAAb;AACA,aAAKhjB,OAAL,CAAa,iBAAOwE,UAApB;AACD,KAJD;AAKD,G;;iBAEDoe,S,sBAAU9F,M,EAAQ;AAChB,SAAKlE,OAAL,CAAapZ,IAAb,CAAkBsd,MAAlB;AACD,G;;iBAED2I,S,sBAAU9nB,I,EAAM;AACd,WAAO,CAAC,CAAC,KAAKkf,SAAL,CAAelf,IAAf,CAAT;AACD,G;;iBAEDkf,S,sBAAUlf,I,EAAM;AACd,WAAO,KAAKib,OAAL,CAAarX,MAAb,CAAoB;AAAA,aAAUub,OAAOnf,IAAP,KAAgBA,IAA1B;AAAA,KAApB,EAAoD,CAApD,CAAP;AACD,G;;iBAEDwe,I,iBAAKpC,O,EAASnI,Q,EAAU;AAAA;;AACtB,SAAKlD,OAAL,CAAakD,QAAb,GAAwBA,QAAxB;AACAmI,cAAUA,WAAWA,QAAQ9Z,WAAR,KAAwB5C,KAAnC,GAA2C0c,OAA3C,GAAqD,CAACA,OAAD,CAA/D;AACA,SAAKqJ,UAAL,CAAgBzhB,OAAhB,CAAwB,UAAC2U,SAAD;AAAA,aAAeA,UAAU9E,OAAV,EAAf;AAAA,KAAxB;AACA,SAAKqH,YAAL,CAAkBvC,SAAlB,GAA8B,IAA9B;AACA,SAAKuN,gBAAL,CAAsBnV,OAAtB,GAAgC,sBAAEjH,MAAF,CAAS,KAAKiH,OAAd,EAAuB,EAAEqL,gBAAF,EAAvB,CAAhC;AACA,SAAK8J,gBAAL,CAAsBpB,gBAAtB,GACGqB,IADH,CACQ,UAACV,UAAD;AAAA,aAAgB,OAAKW,eAAL,CAAqBX,UAArB,CAAhB;AAAA,KADR,EAEGU,IAFH,CAEQ,UAACV,UAAD;AAAA,aAAgB,OAAKY,wBAAL,CAA8BZ,UAA9B,CAAhB;AAAA,KAFR;AAGD,G;;iBAED5R,O,sBAAU;AACR,SAAK4T,qBAAL;AACA,SAAKhC,UAAL,CAAgBzhB,OAAhB,CAAwB,UAAC2U,SAAD;AAAA,aAAeA,UAAU9E,OAAV,EAAf;AAAA,KAAxB;AACA,SAAKoH,OAAL,CAAajX,OAAb,CAAqB,UAACmb,MAAD;AAAA,aAAYA,OAAOtL,OAAP,EAAZ;AAAA,KAArB;AACA,SAAKzC,GAAL,CAASvO,MAAT;AACA,SAAKqY,YAAL,CAAkBrH,OAAlB;AACA,+BAAEpI,QAAF,EAAYsc,MAAZ,CAAmB,kBAAnB,EAAuC,KAAKpC,uBAA5C;AACA,+BAAEla,QAAF,EAAYsc,MAAZ,CAAmB,oBAAnB,EAAyC,KAAKpC,uBAA9C;AACA,+BAAEla,QAAF,EAAYsc,MAAZ,CAAmB,qBAAnB,EAA0C,KAAKpC,uBAA/C;AACD,G;;iBAEDC,sB,qCAAyB;AACvB,SAAKvjB,OAAL,CAAa,iBAAOyE,eAApB,EAAqC,kBAAW0E,YAAX,EAArC;AACA,SAAK8a,UAAL;AACA,SAAKpL,YAAL,CAAkBtC,IAAlB;AACD,G;;iBAEDiN,kB,+BAAmB3B,K,EAAO;AACxB,QAAI8D,cAAe,2BAAExZ,MAAF,EAAU6J,KAAV,KAAoB,2BAAE7J,MAAF,EAAU8J,MAAV,EAArB,GAA2C,WAA3C,GAAyD,UAA3E;AACA,QAAI,KAAK2P,kBAAL,KAA4BD,WAAhC,EAA6C;AAC7C,SAAKC,kBAAL,GAA0BD,WAA1B;;AAEA,SAAK3lB,OAAL,CAAa,iBAAO0E,+BAApB,EAAqD;AACnDmd,aAAOA,KAD4C;AAEnD8D,mBAAa,KAAKC;AAFiC,KAArD;AAID,G;;iBAEDC,wB,qCAAyBvP,S,EAAW;AAClC,SAAKuC,YAAL,CAAkBiN,YAAlB,CAA+BxP,SAA/B;AACA,SAAKuC,YAAL,CAAkB3I,MAAlB;AACD,G;;iBAED6V,mB,kCAAsB;AACpB,SAAKlN,YAAL,CAAkBlD,OAAlB;AACA,SAAK5G,GAAL,CAASwV,WAAT,CAAqB,UAArB;AACD,G;;iBAEDyB,kB,iCAAqB;AACnB,SAAKnN,YAAL,CAAkBnD,MAAlB;AACD,G;;iBAEDuQ,e,4BAAgB3P,S,EAAW;AACzB,SAAKjW,aAAL,CAAmBiW,SAAnB;AACA,SAAK8M,UAAL,GAAkB,KAAKA,UAAL,CAAgB7hB,MAAhB,CAAuB,UAAC2kB,CAAD;AAAA,aAAOA,MAAM5P,SAAb;AAAA,KAAvB,CAAlB;AACD,G;;iBAED6P,e,4BAAgB7P,S,EAAW;AACzB,SAAK7U,QAAL,CAAc6U,SAAd,EAAyB,iBAAOvR,mBAAhC,EAAqD,KAAKkhB,eAA1D;AACA,SAAK7C,UAAL,CAAgB5jB,IAAhB,CAAqB8W,SAArB;AACD,G;;iBAEDyN,e,4BAAgBX,U,EAAY;AAC1BA,eAAWliB,GAAX,CAAe,KAAKilB,eAAL,CAAqBzY,IAArB,CAA0B,IAA1B,CAAf;AACA,SAAK1N,OAAL,CAAa,iBAAOsE,uBAApB;AACA,SAAK8hB,gBAAL;AACA,SAAK/C,iBAAL,CAAuB,KAAKgD,mBAAL,EAAvB;AACA,SAAKnW,MAAL;AACA,SAAKoW,cAAL;AACA,WAAO,KAAKlD,UAAZ;AACD,G;;iBAEDgD,gB,+BAAmB;AAAA;;AACjB,SAAKhD,UAAL,CAAgBliB,GAAhB,CAAoB,UAACoV,SAAD;AAAA,aAAe,OAAK5M,EAAL,CAAQ6c,WAAR,CAAoBjQ,UAAUpG,MAAV,GAAmBxG,EAAvC,CAAf;AAAA,KAApB;AACD,G;;iBAED8c,e,4BAAgBte,M,EAAQwG,O,EAAS;AAC/B,QAAM4H,YAAY,KAAKuN,gBAAL,CAAsB2C,eAAtB,CAAsCte,MAAtC,EAA8CwG,OAA9C,CAAlB;AACA,SAAKyX,eAAL,CAAqB7P,SAArB;AACA,SAAK5M,EAAL,CAAQ6c,WAAR,CAAoBjQ,UAAUpG,MAAV,GAAmBxG,EAAvC;AACA,WAAO4M,SAAP;AACD,G;;iBAED+M,iB,8BAAkB/M,S,EAAW;AAC3B,QAAI,KAAKuC,YAAT,EAAuB;AAAE,WAAKA,YAAL,CAAkBiN,YAAlB,CAA+BxP,SAA/B;AAA2C,KAApE,MAA0E;AACxE,WAAKuC,YAAL,GAAoB,KAAK4N,kBAAL,CAAwB,sBAAEhf,MAAF,CAAS,EAAE6O,WAAWA,SAAb,EAAwBoQ,cAAc,KAAKhd,EAA3C,EAAT,EAA0D,KAAKgF,OAA/D,CAAxB,CAApB;AACA,WAAKjN,QAAL,CAAc,KAAKoX,YAAnB,EAAiC,iBAAO9R,uBAAxC,EAAiE,KAAK4f,gBAAtE;AACA,WAAKllB,QAAL,CAAc,KAAKoX,YAAnB,EAAiC,iBAAO7R,iBAAxC,EAA2D,KAAK4f,kBAAL,CAAwBlZ,IAAxB,CAA6B,IAA7B,EAAmC,IAAnC,CAA3D;AACA,WAAKjM,QAAL,CAAc,KAAKoX,YAAnB,EAAiC,iBAAO5R,iBAAxC,EAA2D,KAAK2f,kBAAL,CAAwBlZ,IAAxB,CAA6B,IAA7B,EAAmC,KAAnC,CAA3D;AACD;AACF,G;;iBAED+Y,kB,+BAAmB/X,O,EAAS;AAC1B,QAAGA,QAAQmY,YAAR,IAAwBnY,QAAQmY,YAAR,CAAqBC,QAAhD,EACE,OAAO,IAAIpY,QAAQmY,YAAR,CAAqBC,QAAzB,CAAkCpY,OAAlC,EAA2CwB,MAA3C,EAAP,CADF,KAGE,OAAO,4BAAiBxB,OAAjB,EAA0BwB,MAA1B,EAAP;AAEH,G;;iBAEDmW,mB,kCAAsB;AACpB,QAAI,CAAC,KAAKxN,YAAN,IAAsB,CAAC,KAAKA,YAAL,CAAkBvC,SAA7C,EACE,OAAO,KAAK8M,UAAL,CAAgB,CAAhB,CAAP;;AAEF,WAAO,KAAKvK,YAAL,CAAkBvC,SAAzB;AACD,G;;iBAED+F,kB,iCAAqB;AACnB,QAAM/F,YAAY,KAAK+P,mBAAL,EAAlB;AACA,WAAO/P,aAAaA,UAAUmN,QAA9B;AACD,G;;iBAEDpS,e,8BAAkB;AAChB,QAAMiF,YAAY,KAAK+P,mBAAL,EAAlB;AACA,WAAO/P,aAAaA,UAAUjF,eAAV,EAApB;AACD,G;;iBAEDsV,gB,+BAAmB;AACjB,QAAI,CAAC,kBAAWxd,YAAX,EAAL,EAAgC;AAC9B,wBAAWM,iBAAX,CAA6B,KAAKC,EAAlC;AACA,UAAG,CAAC,kBAAQsL,KAAZ,EACE,KAAKjG,GAAL,CAASqV,QAAT,CAAkB,YAAlB;AAEH,KALD,MAKO;AACL,wBAAWpa,gBAAX;AACA,UAAG,CAAC,kBAAQgL,KAAZ,EACE,KAAKjG,GAAL,CAASwV,WAAT,CAAqB,qBAArB;AAEH;AACD,SAAK1L,YAAL,CAAkBtC,IAAlB;AACD,G;;iBAEDwQ,gB,6BAAiBlF,K,EAAO;AACtB,SAAKhJ,YAAL,CAAkBtC,IAAlB,CAAuBsL,KAAvB;AACD,G;;iBAEDmF,gB,+BAAmB;AACjB,SAAKnO,YAAL,CAAkBrC,IAAlB,CAAuB,KAAK9H,OAAL,CAAauY,qBAApC;AACD,G;;iBAEDL,kB,+BAAmBM,O,EAAS;AAC1B,SAAKb,mBAAL,GAA2BrmB,OAA3B,CAAmCknB,UAAQ,iBAAO1gB,2BAAf,GAA2C,iBAAOC,2BAArF;;AAEA,QAAIygB,OAAJ,EACE,KAAKnY,GAAL,CAASwV,WAAT,CAAqB,UAArB,EADF,KAEK,IAAI,kBAAWpb,YAAX,EAAJ,EACH,KAAK4F,GAAL,CAASqV,QAAT,CAAkB,UAAlB;AACH,G;;AAED;;;;;;;iBAKA3V,S,sBAAUC,O,EAAS;AAAA;;AACjB,SAAKwD,QAAL,GAAgB,sBAAEzK,MAAF,CAAS,KAAKyK,QAAd,EAAwBxD,OAAxB,CAAhB;AACA,SAAKwU,oBAAL;AACA,QAAMnJ,UAAUrL,QAAQxG,MAAR,IAAkBwG,QAAQqL,OAA1C;;AAEA,QAAIA,OAAJ,EAAa,KAAKoC,IAAL,CAAUpC,OAAV,EAAmBrL,QAAQkD,QAAR,IAAoB,KAAKlD,OAAL,CAAakD,QAApD;;AAEb,SAAK5R,OAAL,CAAa,iBAAOuE,mBAApB;AACA,SAAK6e,UAAL,CAAgBzhB,OAAhB,CAAwB,UAAC2U,SAAD,EAAe;AACrCA,gBAAU7H,SAAV,CAAoB,OAAKC,OAAzB;AACD,KAFD;AAGA,SAAKmK,YAAL,CAAkBpK,SAAlB,CAA4B,KAAKC,OAAjC;AACD,G;;iBAED4X,c,6BAAiB;AACf,QAAIa,gBAAgB,KAAKpY,GAAL,CAAS1G,MAAT,MAAqB,KAAK0G,GAAL,CAAS1G,MAAT,GAAkBhK,MAA3D;AACA,KAAC8oB,aAAD,IAAkB,KAAKpY,GAAL,CAASqY,QAAT,CAAkB,KAAK1Y,OAAL,CAAa+L,aAA/B,CAAlB;AACD,G;;iBAEDvK,M,qBAAS;AACP,SAAKnB,GAAL,CAASsY,MAAT,CAAgB,KAAKxO,YAAL,CAAkB3I,MAAlB,GAA2BxG,EAA3C;;AAEA,QAAI,CAACsN,KAAL,EACEA,QAAQ,iBAAOD,WAAP,kBAA8B,EAAEE,SAAS,KAAKvI,OAAL,CAAauI,OAAxB,EAA9B,CAAR;;AAEF,+BAAE,MAAF,EAAUoQ,MAAV,CAAiBrQ,KAAjB;;AAEA,SAAKtI,OAAL,CAAasH,KAAb,GAAqB,KAAKtH,OAAL,CAAasH,KAAb,IAAsB,KAAKjH,GAAL,CAASiH,KAAT,EAA3C;AACA,SAAKtH,OAAL,CAAauH,MAAb,GAAsB,KAAKvH,OAAL,CAAauH,MAAb,IAAuB,KAAKlH,GAAL,CAASkH,MAAT,EAA7C;AACA,QAAMiG,OAAO,EAAElG,OAAO,KAAKtH,OAAL,CAAasH,KAAtB,EAA6BC,QAAQ,KAAKvH,OAAL,CAAauH,MAAlD,EAAb;AACA,SAAKoE,UAAL,CAAgBiK,YAAhB,GAA+B,KAAKjK,UAAL,CAAgBtE,WAAhB,GAA8B,KAAKsE,UAAL,CAAgBsK,YAAhB,GAA+BzI,IAA5F;AACA,SAAK+H,UAAL;;AAEA,SAAKK,YAAL,GAAoB,EAAEtO,OAAO,KAAKjH,GAAL,CAASiH,KAAT,EAAT,EAA2BC,QAAQ,KAAKlH,GAAL,CAASkH,MAAT,EAAnC,EAApB;;AAEA,SAAKwO,oBAAL;;AAEA,WAAO,IAAP;AACD,G;;;;;kBAxVkBlN,I;;;;;;;;;;;;;;AC/BrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACQA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAXA;AACA;AACA;;AAEA;;;;IASqB+P,gB;;;;wBACL;AAAE,aAAO,KAAKpV,QAAZ;AAAsB,K;sBAC1BxD,O,EAAS;AAAE,WAAKwD,QAAL,GAAgBxD,OAAhB;AAAyB;;;AAEhD,4BAAYA,OAAZ,EAAqBgK,MAArB,EAA6BhI,IAA7B,EAAmC;AAAA;;AAAA,+DACjC,uBAAMhC,OAAN,CADiC;;AAEjC,UAAK+B,KAAL,GAAaC,IAAb;AACA,UAAKgI,MAAL,GAAcA,MAAd;AAHiC;AAIlC;;6BAED+J,gB,+BAAmB;AAAA;;AACjB,WAAO,sBAAEkB,QAAF,CAAW,UAACC,OAAD,EAAa;AAC7BA,cAAQ4B,OAAR,CAAgB,OAAK9W,OAAL,CAAaqL,OAAb,CAAqB7Y,GAArB,CAAyB,UAACgH,MAAD,EAAY;AACnD,eAAO,OAAKse,eAAL,CAAqBte,MAArB,CAAP;AACD,OAFe,CAAhB;AAGD,KAJM,CAAP;AAKD,G;;6BAEDqf,kB,+BAAmBrf,M,EAAQ0J,Q,EAAU;AACnC,WAAO,KAAK8G,MAAL,CAAY5C,eAAZ,CAA4BvU,MAA5B,CAAmC;AAAA,aAAKimB,EAAE7V,OAAF,CAAUzJ,MAAV,EAAkB0J,QAAlB,CAAL;AAAA,KAAnC,EAAqE,CAArE,CAAP;AACD,G;;6BAED4U,e,4BAAgBte,M,EAAQ;AACtB,QAAIuf,iBAAiB,IAArB;AAAA,QACE7V,WAAW,KAAKlD,OAAL,CAAakD,QAD1B;AAEA,QAAI,QAAO1J,MAAP,uDAAOA,MAAP,OAAkB,QAAtB,EAAgC;AAC9Buf,uBAAiBvf,OAAOA,MAAP,CAAciP,QAAd,EAAjB;AACA,UAAIjP,OAAO0J,QAAX,EACEA,WAAW1J,OAAO0J,QAAlB;AAEH,KALD,MAKO;AAAE6V,uBAAiBvf,OAAOiP,QAAP,EAAjB;AAAoC;;AAG7C,QAAIsQ,eAAehc,KAAf,CAAqB,OAArB,CAAJ,EAAmCgc,iBAAiBtb,OAAOC,QAAP,CAAgBsb,QAAhB,GAA2BD,cAA5C;;AAEnC,QAAI/Y,UAAU,sBAAEjH,MAAF,CAAS,EAAT,EAAa,KAAKiH,OAAlB,EAA2B;AACvCtB,WAAKqa,cADkC;AAEvC7V,gBAAUA;AAF6B,KAA3B,CAAd;AAIA,QAAM+V,iBAAiB,KAAKJ,kBAAL,CAAwBE,cAAxB,EAAwC7V,QAAxC,CAAvB;AACA,QAAM6R,WAAW,IAAIkE,cAAJ,CAAmBjZ,OAAnB,EAA4B,KAAK+B,KAAjC,CAAjB;;AAEA/B,cAAU,sBAAEjH,MAAF,CAAS,EAAT,EAAaiH,OAAb,EAAsB,EAAE+U,UAAUA,QAAZ,EAAtB,CAAV;;AAEA,QAAMnN,YAAY,wBAAc5H,OAAd,EAAuB,KAAK+B,KAA5B,CAAlB;AACA,QAAMiT,QAAQ,sBAAEC,QAAF,EAAd;AACAD,UAAME,OAAN,CAActN,SAAd;AACA,SAAKsR,mBAAL,CAAyBtR,SAAzB;AACA,SAAK5U,YAAL,CAAkB4U,SAAlB,EAA6B,iBAAOtR,eAApC,EAAqD;AAAA,aAAM0e,MAAM8B,OAAN,CAAclP,SAAd,CAAN;AAAA,KAArD;AACA,WAAOA,SAAP;AACD,G;;6BAEDsR,mB,gCAAoBtR,S,EAAW;AAC7B,SAAKoC,MAAL,CAAYmP,gBAAZ,CAA6BlmB,OAA7B,CAAqC,UAACghB,MAAD,EAAY;AAC/CrM,gBAAUsM,SAAV,CAAoB,IAAID,MAAJ,CAAWrM,SAAX,CAApB;AACD,KAFD;AAGD,G;;;;;kBAxDkBgR,gB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLrB;;;;AACA;;;;AAEA;;AAEA;;;;;;AAEA;;;;;;;;AAfA;AACA;AACA;;AAEA;;;;IAmBqBhQ,S;;;;;AACnB;;;;;;wBAMW;AAAE,aAAO,WAAP;AAAoB;;;wBAChB;AAAE,aAAO,EAAEwQ,OAAO,WAAT,EAAsB,kBAAkB,EAAxC,EAAP;AAAqD;;;wBAC3D;AACX,aAAO;AACL,iBAAS,SADJ;AAEL,oBAAY,YAFP;AAGL,qBAAa,YAHR;AAIL,uBAAe,eAJV;AAKL,sBAAc,YALT;AAML,sBAAc;AANT,OAAP;AAQD;;AAED;;;;;;;;wBAKY;AACV,aAAO,KAAKrE,QAAL,CAAc3K,KAArB;AACD;;AAED;;;;;;;;;;wBAOgB;AACd,aAAO,KAAK2K,QAAL,CAAc1K,SAArB;AACD;;AAED;;;;;;;;wBAKW;AACT,aAAO,KAAKtI,KAAZ;AACD;;AAED;;;;;;;;wBAK8B;AAC5B,aAAO,KAAKgT,QAAL,CAAcsE,uBAArB;AACD;;AAED;;;;;;;;wBAK2B;AACzB,aAAO,KAAKtE,QAAL,CAAchS,oBAArB;AACD;;AAED;;;;;;;;wBAK4B;AAC1B,aAAO,KAAKgS,QAAL,CAAcuE,qBAArB;AACD;;AAED;;;;;;sBAK0BtW,O,EAAS;AACjC,WAAK+R,QAAL,CAAcuE,qBAAd,GAAsCtW,OAAtC;AACD;;AAED;;;;;;;;;AAMA,qBAAYhD,OAAZ,EAAqBgC,IAArB,EAA2B;AAAA;;AAAA,+DACzB,qBAAMhC,OAAN,CADyB;;AAEzB,UAAK+B,KAAL,GAAaC,IAAb;AACA,UAAKuX,WAAL,GAAmB,CAAnB;AACA,UAAKrd,MAAL,GAAc,GAAd;AACA,UAAK6Y,QAAL,GAAgB/U,QAAQ+U,QAAxB;AACA,UAAKvU,QAAL,GAAgB,sBAAEzH,MAAF,CAAS,EAAT,EAAa,MAAKgc,QAAL,CAAcvU,QAA3B,CAAhB;AACA,UAAKyL,OAAL,GAAe,KAAf;AACA,UAAKuN,oBAAL,GAA4B,KAA5B;AACA,UAAKtP,OAAL,GAAe,CAAC,MAAK6K,QAAN,CAAf;AACA,UAAKhO,UAAL;AAVyB;AAW1B;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA4BAA,U,yBAAa;AACX,SAAKhU,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAOhhB,iBAApC,EAAuD,KAAK0lB,QAA5D;AACA,SAAK1mB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAO/gB,mBAApC,EAAyD,KAAK0lB,WAA9D;AACA,SAAK3mB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAO9gB,cAApC,EAAoD,KAAKqgB,KAAzD;AACA,SAAKvhB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAO7gB,kBAApC,EAAwD,KAAKylB,WAA7D;AACA,SAAK5mB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAO5gB,mBAApC,EAAyD,KAAKylB,UAA9D;AACA,SAAK7mB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAO3gB,uBAApC,EAA6D,KAAKylB,cAAlE;AACA,SAAK9mB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAO1gB,uBAApC,EAA6D,KAAKylB,cAAlE;AACA,SAAK/mB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAOzgB,6BAApC,EAAmE,KAAKylB,oBAAxE;AACA,SAAKhnB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAOxgB,gBAApC,EAAsD,KAAKylB,aAA3D;AACA,SAAKjnB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAOpgB,sBAApC,EAA4D,KAAKslB,oBAAjE;AACA,SAAKlnB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAOngB,YAApC,EAAkD,KAAKslB,uBAAvD;AACA,SAAKnnB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAOlgB,6BAApC,EAAmE,KAAKwiB,mBAAxE;AACA,SAAKtkB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAOjgB,4BAApC,EAAkE,KAAKwiB,kBAAvE;AACA,SAAKvkB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAO3f,eAApC,EAAqD,KAAK+kB,QAA1D;AACA,SAAKpnB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAOhgB,cAApC,EAAoD,KAAK6V,OAAzD;AACA,SAAK7X,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAO9f,aAApC,EAAmD,KAAKmlB,OAAxD;AACA,SAAKrnB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAO7f,cAApC,EAAoD,KAAKmlB,MAAzD;AACA,SAAKtnB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAO1f,aAApC,EAAmD,KAAKilB,OAAxD;AACA,SAAKvnB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAOzf,cAApC,EAAoD,KAAK7E,KAAzD;AACA,SAAKsC,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAOrf,2BAApC,EAAiE,KAAK6kB,iBAAtE;AACA,SAAKxnB,QAAL,CAAc,KAAKgiB,QAAnB,EAA6B,iBAAOpf,yBAApC,EAA+D,KAAK6kB,eAApE;AACD,G;;sBAEDD,iB,gCAAoB;AAClB,SAAKjpB,OAAL,CAAa,iBAAOmF,4BAApB;AACD,G;;sBAED+jB,e,4BAAgBC,K,EAAO;AACrB,SAAKnpB,OAAL,CAAa,iBAAOoF,0BAApB,EAAgD+jB,KAAhD;AACD,G;;sBAEDR,oB,iCAAqBS,K,EAAO;AAC1B,SAAKppB,OAAL,CAAa,iBAAO2E,uBAApB,EAA6CykB,KAA7C;AACD,G;;sBAEDR,uB,oCAAwBS,Q,EAAU;AAChC,SAAKna,QAAL,GAAgB,KAAKuU,QAAL,CAAcvU,QAA9B;AACA,SAAKma,QAAL,GAAgBA,QAAhB;AACA,SAAKrpB,OAAL,CAAa,iBAAO4E,iCAApB,EAAuDykB,QAAvD;AACD,G;;sBAEDX,a,0BAAcY,U,EAAY;AACxB,SAAKtpB,OAAL,CAAa,iBAAO6E,iBAApB,EAAuCykB,UAAvC;AACD,G;;sBAEDC,W,wBAAYC,O,EAAS;AACnB,SAAKxpB,OAAL,CAAa,iBAAO8E,sBAApB,EAA4C0kB,OAA5C;AACD,G;;sBAEDnY,e,8BAAkB;AAChB,WAAO,KAAKoS,QAAL,CAAcpS,eAAd,EAAP;AACD,G;;AAED;;;;;;;sBAKAsL,Y,2BAAe;AACb,WAAO,CAAC,CAAC,KAAK8G,QAAL,CAAcgG,UAAvB;AACD,G;;AAED;;;;;;;sBAKA7M,U,yBAAa;AACX,WAAO,CAAC,CAAC,KAAKyM,QAAd;AACD,G;;AAED;;;;;;sBAIA7X,O,sBAAU;AACR,SAAKxR,OAAL,CAAa,iBAAO+E,mBAApB,EAAyC,IAAzC,EAA+C,KAAKpH,IAApD;AACA,SAAK0C,aAAL;AACA,SAAKuY,OAAL,CAAajX,OAAb,CAAqB,UAACmb,MAAD;AAAA,aAAYA,OAAOtL,OAAP,EAAZ;AAAA,KAArB;AACA,SAAKzC,GAAL,CAASvO,MAAT;AACD,G;;sBAEDkpB,Q,qBAAS1S,K,EAAO;AACd,SAAKjI,GAAL,CAAS4a,GAAT,CAAa3S,KAAb;AACD,G;;sBAED4S,O,oBAAQ5S,K,EAAO6S,Q,EAAU;AACvB,WAAO,KAAK9a,GAAL,CAAS6a,OAAT,CAAiB5S,KAAjB,EAAwB6S,QAAxB,EAAkCjG,OAAlC,EAAP;AACD,G;;sBAEDZ,K,oBAAQ;AACN,SAAKrI,OAAL,GAAe,IAAf;AACA,SAAK3a,OAAL,CAAa,iBAAOgF,eAApB,EAAqC,KAAKrH,IAA1C;AACD,G;;sBAEDyT,S,wBAAY;AACV,WAAO,KAAKqS,QAAL,CAAcrS,SAAd,EAAP;AACD,G;;sBAEDF,kB,iCAAqB;AACnB,WAAO,KAAKuS,QAAL,CAAcvS,kBAAd,EAAP;AACD,G;;sBAED6K,c,6BAAiB;AACf,WAAO,KAAKkM,WAAZ;AACD,G;;sBAED9W,W,0BAAc;AACZ,WAAO,KAAKsS,QAAL,CAActS,WAAd,EAAP;AACD,G;;sBAEDhS,K,kBAAM2qB,Q,EAAU;AACd,QAAI,CAAC,KAAKnP,OAAV,EACE,KAAKqI,KAAL;;AAEF,SAAKhjB,OAAL,CAAa,iBAAOiF,eAApB,EAAqC,EAAE9F,OAAO2qB,QAAT,EAAmBxT,WAAW,IAA9B,EAArC,EAA2E,KAAK3Y,IAAhF;AACD,G;;sBAED6qB,c,2BAAeuB,Q,EAAU;AACvB,SAAK/pB,OAAL,CAAa,iBAAOkF,wBAApB,EAA8C6kB,QAA9C;AACD,G;;sBAED3B,W,wBAAYpM,Y,EAAc;AACxB,SAAKiM,WAAL,GAAmBjM,aAAagO,OAAhC;AACA,SAAKhqB,OAAL,CAAa,iBAAOqF,oBAApB,EAA0C2W,YAA1C,EAAwD,KAAKre,IAA7D;AACD,G;;sBAEDwqB,Q,uBAAkB;AAAA,sCAAN3pB,IAAM;AAANA,UAAM;AAAA;;AAChB,SAAKwB,OAAL,cAAa,iBAAOsF,kBAApB,SAA2C9G,IAA3C,GAAiD,KAAKb,IAAtD;AACD,G;;sBAEDmrB,O,sBAAU;AACR,SAAK9oB,OAAL,CAAa,iBAAOuF,cAApB,EAAoC,KAAK5H,IAAzC;AACD,G;;sBAEDorB,M,qBAAS;AACP,SAAK/oB,OAAL,CAAa,iBAAOyF,eAApB,EAAqC,KAAK9H,IAA1C;AACD,G;;AAED;;;;;;sBAIAiT,I,mBAAO;AACL,SAAK6S,QAAL,CAAc7S,IAAd;AACD,G;;AAED;;;;;;sBAIAE,I,mBAAO;AACL,SAAK2S,QAAL,CAAc3S,IAAd;AACA,SAAKmX,WAAL,GAAmB,CAAnB;AACD,G;;AAED;;;;;;sBAIApX,K,oBAAQ;AACN,SAAK4S,QAAL,CAAc5S,KAAd;AACD,G;;sBAEDyI,O,sBAAU;AACR,SAAKtZ,OAAL,CAAa,iBAAO0F,eAApB,EAAqC,IAArC,EAA2C,KAAK/H,IAAhD;AACA,SAAKsqB,WAAL,GAAmB,CAAnB;AACD,G;;sBAEDe,O,sBAAU;AACR,SAAKhpB,OAAL,CAAa,iBAAOwF,cAApB;AACD,G;;sBAEDykB,O,sBAAU;AACR,QAAI,CAAC,KAAKvb,OAAL,CAAauL,UAAd,IAA4B,KAAKvL,OAAL,CAAaoL,oBAA7C,EACE,KAAK9Z,OAAL,CAAa,iBAAO2F,eAApB,EAAqC,IAArC,EAA2C,KAAKhI,IAAhD;AAEH,G;;sBAEDusB,U,yBAAa;AACX,QAAI,CAAC,KAAKxb,OAAL,CAAauL,UAAd,IAA4B,KAAKvL,OAAL,CAAaoL,oBAA7C,EACE,KAAK9Z,OAAL,CAAa,iBAAO4F,kBAApB,EAAwC,IAAxC,EAA8C,KAAKjI,IAAnD;AAEH,G;;sBAEDwsB,a,0BAActI,K,EAAO;AACnB,QAAI,CAAC,KAAKnT,OAAL,CAAauL,UAAd,IAA4B,KAAKvL,OAAL,CAAaoL,oBAA7C,EACE,KAAK9Z,OAAL,CAAa,iBAAO6F,qBAApB,EAA2Cgc,KAA3C,EAAkD,KAAKlkB,IAAvD;AAEH,G;;sBAEDoT,I,iBAAKtI,I,EAAM;AACT,SAAKzI,OAAL,CAAa,iBAAOgG,cAApB,EAAoCyC,IAApC,EAA0C,KAAK9K,IAA/C;AACA,SAAK8lB,QAAL,CAAc1S,IAAd,CAAmBtI,IAAnB;AACD,G;;sBAEDogB,Q,uBAAW;AACT,SAAK7oB,OAAL,CAAa,iBAAOiG,gBAApB,EAAsC,KAAKtI,IAA3C;AACD,G;;sBAEDqT,c,2BAAeC,U,EAAY;AACzB,QAAM4Y,WAAW,KAAK1Y,WAAL,EAAjB;AACA,QAAIF,cAAc,CAAd,IAAmBA,cAAc,GAArC,EAA0C;AACxC,UAAMxI,OAAOohB,YAAY5Y,aAAa,GAAzB,CAAb;AACA,WAAKF,IAAL,CAAUtI,IAAV;AACD;AACF,G;;sBAED6T,S,sBAAUnb,K,EAAO;AACf,SAAKyJ,MAAL,GAAchC,SAASzH,KAAT,EAAgB,EAAhB,CAAd;AACA,SAAKnB,OAAL,CAAa,iBAAOkG,gBAApB,EAAsC/E,KAAtC,EAA6C,KAAKxD,IAAlD;AACA,SAAK8lB,QAAL,CAAc7Y,MAAd,CAAqBzJ,KAArB;AACD,G;;sBAED2a,U,yBAAa;AACX,SAAK9b,OAAL,CAAa,iBAAOmG,oBAApB,EAA0C,KAAKxI,IAA/C;AACD,G;;sBAED0qB,W,0BAAc;AACZ,SAAKroB,OAAL,CAAa,iBAAOoG,yBAApB,EAA+C,KAAKzI,IAApD;AACD,G;;sBAED2qB,U,yBAAa;AACX,SAAKtoB,OAAL,CAAa,iBAAOqG,0BAApB,EAAgD,KAAK1I,IAArD;AACD,G;;AAED;;;;;;;sBAKAilB,S,sBAAU9F,M,EAAQ;AAChB,SAAKlE,OAAL,CAAapZ,IAAb,CAAkBsd,MAAlB;AACD,G;;AAED;;;;;;;;sBAMA2I,S,sBAAU9nB,I,EAAM;AACd,WAAO,CAAC,CAAC,KAAKkf,SAAL,CAAelf,IAAf,CAAT;AACD,G;;AAED;;;;;;;sBAKAkf,S,sBAAUlf,I,EAAM;AACd,WAAO,KAAKib,OAAL,CAAarX,MAAb,CAAoB;AAAA,aAAUub,OAAOnf,IAAP,KAAgBA,IAA1B;AAAA,KAApB,EAAoD,CAApD,CAAP;AACD,G;;sBAEDysB,U,yBAAa;AACX,QAAI,CAAC,KAAK1b,OAAL,CAAauL,UAAd,IAA4B,KAAKvL,OAAL,CAAaoL,oBAA7C,EACE,KAAK9Z,OAAL,CAAa,iBAAO8F,qBAApB;AAEH,G;;sBAEDukB,U,yBAAa;AACX,QAAI,CAAC,KAAK3b,OAAL,CAAauL,UAAd,IAA4B,KAAKvL,OAAL,CAAaoL,oBAA7C,EACE,KAAK9Z,OAAL,CAAa,iBAAO+F,qBAApB;AAEH,G;;sBAEDwiB,c,6BAAiB;AACf,SAAKrZ,QAAL,GAAgB,KAAKuU,QAAL,CAAcvU,QAA9B;AACA,SAAKlP,OAAL,CAAa,iBAAOsG,wBAApB;AACD,G;;sBAEDmiB,oB,iCAAqB6B,I,EAAM;AACzB,SAAKtqB,OAAL,CAAa,iBAAOuG,8BAApB,EAAoD+jB,IAApD;AACD,G;;sBAED/Y,qB,oCAAwB;AACtB,WAAO,KAAKkS,QAAL,CAAclS,qBAAd,EAAP;AACD,G;;sBAEDwU,mB,kCAAsB;AACpB,QAAI,CAAC,KAAKmC,oBAAV,EAAgC;AAC9B,WAAKA,oBAAL,GAA4B,IAA5B;AACA,WAAKloB,OAAL,CAAa,iBAAO0G,8BAApB;AACD;AACF,G;;sBAEDsf,kB,iCAAqB;AACnB,QAAI,KAAKkC,oBAAT,EAA+B;AAC7B,WAAKA,oBAAL,GAA4B,KAA5B;AACA,WAAKloB,OAAL,CAAa,iBAAO2G,6BAApB;AACD;AACF,G;;sBAED4jB,W,0BAAc;AACZ,QAAI,CAAC,KAAK7b,OAAL,CAAauL,UAAd,IAA4B,KAAKvL,OAAL,CAAaoL,oBAA7C,EACE,KAAK/K,GAAL,CAASwV,WAAT,CAAqB,YAArB,EADF,KAGE,KAAKxV,GAAL,CAASqV,QAAT,CAAkB,YAAlB;AAEH,G;;AAED;;;;;;;sBAKA3V,S,sBAAUC,O,EAAS;AACjB,SAAKwD,QAAL,GAAgB,sBAAEzK,MAAF,CAAS,KAAKyK,QAAd,EAAwBxD,OAAxB,CAAhB;AACA,SAAK6b,WAAL;AACA,SAAKvqB,OAAL,CAAa,iBAAO6G,wBAApB;AACD,G;;sBAEDqJ,M,qBAAS;AACP,SAAKnB,GAAL,CAASsY,MAAT,CAAgB,KAAK5D,QAAL,CAAcvT,MAAd,GAAuBxG,EAAvC;AACA,SAAK6gB,WAAL;AACA,WAAO,IAAP;AACD,G;;;;;kBAjckBjT,S;;;;;;;;ACtBrB;;AAEA;;AAEA;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA,EAAE;;AAEF,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;AC5CA;AACA;;;AAGA;AACA,qDAAsD,uBAAuB,4BAA4B,iBAAiB,gBAAgB,EAAE,4CAA4C,sBAAsB,EAAE,8FAA8F,oBAAoB,EAAE;;AAEpU;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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,wCAAwC,WAAW,EAAE;AACrD,wCAAwC,WAAW,EAAE;;AAErD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,sCAAsC;AACtC,GAAG;AACH;AACA,8DAA8D;AAC9D;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChFA;;AACA;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AAEA;;;;AAEA;;AACA;;;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;IAEqBD,Y;;;;wBACR;AAAE,aAAO,cAAP;AAAuB;;;wBACrB;AAAE,aAAO,KAAKmT,YAAL,IAAsB,KAAKlU,SAAL,IAAkB,KAAKA,SAAL,CAAejF,eAAf,OAAqC,mBAASC,KAA7F;AAAqG;;;wBAErG;AACf,aAAO;AACL,iBAAS,eADJ;AAEL,8BAAsB;AAFjB,OAAP;AAID;;;wBAEY;AACX,aAAO;AACL,6BAAqB,MADhB;AAEL,8BAAsB,OAFjB;AAGL,kCAA0B,iBAHrB;AAIL,6BAAqB,MAJhB;AAKL,iCAAyB,gBALpB;AAML,mCAA2B,kBANtB;AAOL,8CAAsC,MAPjC;AAQL,6CAAqC,eARhC;AASL,2CAAmC,YAT9B;AAUL,qDAA6C,eAVxC;AAWL,qDAA6C,eAXxC;AAYL,iDAAyC,iBAZpC;AAaL,iDAAyC,sBAbpC;AAcL,iDAAyC,eAdpC;AAeL,kDAA0C,oBAfrC;AAgBL,mDAA2C,qBAhBtC;AAiBL,0DAAkD,oBAjB7C;AAkBL,0DAAkD;AAlB7C,OAAP;AAoBD;;;wBAEc;AAAE,aAAO,+CAAP;AAAmC;;;wBAEvC;AAAE,aAAQ,KAAKgF,SAAL,IAAkB,KAAKA,SAAL,CAAeqE,OAAlC,GAA6C,KAAKrE,SAAL,CAAe1L,MAA5D,GAAqE,KAAK6f,cAAjF;AAAiG;;;wBACpG;AAAE,aAAO,KAAK7f,MAAL,KAAgB,CAAvB;AAA0B;;;AAExC,wBAAY8D,OAAZ,EAAqB;AAAA;;AAAA,+DACnB,qBAAMA,OAAN,CADmB;;AAEnB,UAAKmL,aAAL,GAAqB,MAAKnL,OAAL,CAAamL,aAAlC;AACA,UAAKvD,SAAL,GAAiB5H,QAAQ4H,SAAzB;AACA,UAAKoU,oBAAL,GAA4B,IAA5B;AACA,UAAKC,oBAAL,GAA4B,IAA5B;AACA,UAAKC,WAAL,GAAmB,KAAnB;AACA,UAAKC,6BAAL,GAAqC,IAArC,CAPmB,CAOuB;AAC1C,UAAKC,gBAAL;AACA,UAAKC,iBAAL;AACA,UAAK7b,QAAL,GAAgB;AACd8b,YAAM,CAAC,MAAD,EAAS,MAAT,EAAiB,OAAjB,CADQ;AAEdC,aAAO,CAAC,QAAD,CAFO;AAGdC,eAAS,CAAC,UAAD,EAAa,SAAb,EAAwB,UAAxB;AAHK,KAAhB;;AAMA,QAAI,MAAK5U,SAAT,EAAoB;AAClB,UAAI,CAAC,sBAAE6U,aAAF,CAAgB,MAAK7U,SAAL,CAAepH,QAA/B,CAAL,EACE,MAAKA,QAAL,GAAgB,sBAAEzH,MAAF,CAAS,EAAT,EAAa,MAAK6O,SAAL,CAAepH,QAA5B,CAAhB;AAEH,KAJD,MAIO;AAAE,YAAKA,QAAL,GAAgB,EAAhB;AAAoB;;AAG7B,UAAKsb,YAAL,GAAoB,KAApB;AACA,QAAK,MAAKlU,SAAL,IAAkB,MAAKA,SAAL,CAAe4R,oBAAlC,IAA2D,MAAKxZ,OAAL,CAAauL,UAA5E,EACE,MAAKtE,OAAL;;AAEF,UAAKyV,eAAL,GAAuB,UAACvJ,KAAD;AAAA,aAAW,MAAKwJ,QAAL,CAAcxJ,KAAd,CAAX;AAAA,KAAvB;AACA,UAAKyJ,iBAAL,GAAyB,UAACzJ,KAAD;AAAA,aAAW,MAAK0J,UAAL,CAAgB1J,KAAhB,CAAX;AAAA,KAAzB;AACA,+BAAEzY,QAAF,EAAYsE,IAAZ,CAAiB,SAAjB,EAA4B,MAAK0d,eAAjC;AACA,+BAAEhiB,QAAF,EAAYsE,IAAZ,CAAiB,WAAjB,EAA8B,MAAK4d,iBAAnC;AA9BmB;AA+BpB;;yBAEDP,iB,gCAAoB;AAClB,QAAI,KAAKzU,SAAT,EAAoB;AAClB,yBAASjX,EAAT,CAAe,KAAKqP,OAAL,CAAa0H,QAA5B,SAAwC,iBAAOtU,aAA/C,EAAgE,KAAK0pB,YAArE,EAAmF,IAAnF;AACA,WAAK/pB,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO/Q,cAArC,EAAqD,KAAKkmB,gBAA1D;AACA,WAAKhqB,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO7Q,eAArC,EAAsD,KAAKgmB,gBAA3D;AACA,WAAKhqB,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO9Q,cAArC,EAAqD,KAAKimB,gBAA1D;AACA,WAAKhqB,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO1Q,kBAArC,EAAyD,KAAK+gB,gBAA9D;AACA,WAAKllB,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOjR,oBAArC,EAA2D,KAAKoU,YAAhE;AACA,WAAKhY,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOhR,kBAArC,EAAyD,KAAKomB,iBAA9D;AACA,WAAKjqB,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOhQ,wBAArC,EAA+D,KAAKiiB,cAApE;AACA,WAAK9mB,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO1R,iCAArC,EAAwE,KAAK2jB,cAA7E;AACA,WAAK9mB,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO/P,8BAArC,EAAqE,KAAKkiB,oBAA1E;AACA,WAAKhnB,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO5P,8BAArC,EAAqE,KAAKiP,OAA1E;AACA,WAAKlU,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO3P,6BAArC,EAAoE,KAAK+O,MAAzE;AACA,WAAKjU,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO5Q,eAArC,EAAsD,KAAKoT,KAA3D;AACA,WAAKrX,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOpQ,gBAArC,EAAuD,KAAKylB,eAA5D;AACA,WAAKlqB,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOzP,wBAArC,EAA+D,KAAKikB,gBAApE;AACA,UAAI,KAAKxU,SAAL,CAAemN,QAAf,CAAwB/Z,EAAxB,CAA2BkiB,QAA3B,CAAoC3qB,WAApC,OAAsD,OAA1D,EAAmE;AACjE;AACA,aAAKS,YAAL,CAAkB,KAAK4U,SAAvB,EAAkC,iBAAOpR,wBAAzC,EAAmE,KAAK2mB,0BAAxE;AACD;AACF;AACF,G;;yBAEDlW,O,sBAAU;AACR,SAAK6U,YAAL,GAAoB,IAApB;AACA,SAAKhU,IAAL;AACA,SAAKzH,GAAL,CAASyH,IAAT;AACD,G;;yBAEDd,M,qBAAS;AACP,QAAI,KAAKhH,OAAL,CAAauL,UAAjB,EAA6B;AAC7B,SAAKuQ,YAAL,GAAoB,KAApB;AACA,SAAKjU,IAAL;AACD,G;;yBAED3F,I,mBAAO;AACL,SAAK0F,SAAL,CAAe1F,IAAf;AACD,G;;yBAEDC,K,oBAAQ;AACN,SAAKyF,SAAL,CAAezF,KAAf;AACD,G;;yBAEDC,I,mBAAO;AACL,SAAKwF,SAAL,CAAexF,IAAf;AACD,G;;yBAEDga,gB,+BAAmB;AACjB,QAAMgB,gBAAiB,KAAKjS,aAAN,GAAuB,cAAO1O,OAAP,CAAe,QAAf,CAAvB,GAAkD,GAAxE;AACA,QAAMuD,UAAU,KAAK4H,SAAL,IAAkB,KAAKA,SAAL,CAAe5H,OAAjC,IAA4C,KAAKA,OAAjE;AACA,SAAK4N,SAAL,CAAe5N,QAAQ8N,IAAR,GAAe,CAAf,GAAmBsP,aAAlC,EAAiD,IAAjD;AACD,G;;yBAEDH,e,8BAAkB;AAChB,SAAKI,cAAL;AACD,G;;yBAEDF,0B,yCAA6B;AAC3B,QAAIG,QAAQ,KAAK1V,SAAL,CAAemN,QAAf,CAAwB/Z,EAApC;AACA;AACA;AACA,QAAI,CAAC,kBAAWY,iBAAX,EAAD,IAAmC0hB,MAAMC,wBAA7C,EAAuE;AACrE,WAAKpB,6BAAL,GAAqC,IAArC;AACA,WAAKtC,cAAL;AACD;AACF,G;;yBAEDwD,c,6BAAiB;AACf,QAAI,CAAC,KAAKG,QAAV,EAAoB;AAClB;AACA;AACD;AACD;AACA,SAAKC,mBAAL,CAAyBzZ,IAAzB,CAA8B,aAA9B,EAA6CiX,GAA7C,CAAiD,EAAjD;AACA,QAAMyC,iBAAiB,KAAKD,mBAAL,CAAyBnW,KAAzB,EAAvB;AACA,QAAMqW,WAAW,KAAKC,oBAAL,CAA0BtW,KAA1B,EAAjB;AACA,QAAM5F,SAAS,CAACgc,iBAAiBC,QAAlB,IAA8B,GAA7C;AACA,QAAME,MAAMF,WAAW,KAAKzhB,MAAhB,GAAyB,KAAzB,GAAiCwF,MAA7C;AACA,SAAKoc,cAAL,CAAoB7C,GAApB,CAAwB,EAAE3T,OAAU,KAAKpL,MAAf,MAAF,EAAxB;AACA,SAAK6hB,kBAAL,CAAwB9C,GAAxB,CAA4B,EAAEqB,MAAMuB,GAAR,EAA5B;;AAEA;AACA,SAAKJ,mBAAL,CAAyBzZ,IAAzB,CAA8B,wBAA9B,EAAwD6R,WAAxD,CAAoE,MAApE;AACA,QAAMnW,OAAOse,KAAKC,IAAL,CAAU,KAAK/hB,MAAL,GAAc,IAAxB,CAAb;AACA,SAAKuhB,mBAAL,CAAyBzZ,IAAzB,CAA8B,wBAA9B,EAAwDtV,KAAxD,CAA8D,CAA9D,EAAiEgR,IAAjE,EAAuEgW,QAAvE,CAAgF,MAAhF;AACA,SAAKwI,WAAL,CAAiB1V,IAAjB,CAAsB,EAAtB;AACA,SAAK0V,WAAL,CAAiBrI,WAAjB,CAA6B,OAA7B;AACA,QAAI,CAAC,KAAKsI,KAAV,EAAiB;AAAE,WAAKD,WAAL,CAAiBvF,MAAjB;AAAqC,KAAxD,MAA8D;AAC5D,WAAKuF,WAAL,CAAiBvF,MAAjB;AACA,WAAKuF,WAAL,CAAiBxI,QAAjB,CAA0B,OAA1B;AACD;AACD,SAAK0I,gBAAL,CAAsB,KAAKF,WAA3B;AACD,G;;yBAEDnB,gB,+BAAmB;AACjB,SAAKsB,gBAAL,CAAsB7V,IAAtB,CAA2B,EAA3B;AACA,SAAK8V,eAAL,CAAqB9V,IAArB,CAA0B,EAA1B;AACA,QAAI,KAAKZ,SAAL,IAAkB,KAAKA,SAAL,CAAelF,SAAf,EAAtB,EAAkD;AAChD,WAAK2b,gBAAL,CAAsB1F,MAAtB;AACA,WAAK2F,eAAL,CAAqB3F,MAArB;AACA,WAAKrnB,OAAL,CAAa,iBAAOoH,oBAApB;AACD,KAJD,MAIO;AACL,WAAK2lB,gBAAL,CAAsB1F,MAAtB;AACA,WAAK2F,eAAL,CAAqB3F,MAArB;AACA,WAAKrnB,OAAL,CAAa,iBAAOqH,uBAApB;AACA,UAAI,kBAAQ0N,QAAZ,EACE,KAAKwB,IAAL;AAEH;AACD,SAAKuW,gBAAL,CAAsB,KAAKC,gBAA3B;AACA,SAAKD,gBAAL,CAAsB,KAAKE,eAA3B;AACD,G;;yBAEDC,kB,+BAAmBpL,K,EAAO;AACxB,QAAI,KAAK3S,QAAL,CAAcge,WAAlB,EAA+B;AAC7B,UAAMC,UAAUtL,MAAMuL,KAAN,GAAc,KAAKC,iBAAL,CAAuBjd,MAAvB,GAAgC4a,IAA9C,GAAsD,KAAKsC,aAAL,CAAmBtX,KAAnB,KAA6B,CAAnG;AACA,WAAKsX,aAAL,CAAmB3D,GAAnB,CAAuB,EAAEqB,MAAMmC,OAAR,EAAvB;AACD;AACD,SAAKntB,OAAL,CAAa,iBAAOkH,8BAApB,EAAoD2a,KAApD;AACD,G;;yBAED0L,mB,gCAAoB1L,K,EAAO;AACzB,SAAK7hB,OAAL,CAAa,iBAAOmH,+BAApB,EAAqD0a,KAArD;AACD,G;;yBAED2L,a,0BAAc3L,K,EAAO;AACnB,SAAKvF,SAAL,CAAe,KAAKmR,oBAAL,CAA0B5L,KAA1B,CAAf;AACD,G;;yBAED6L,oB,iCAAqB7L,K,EAAO;AAC1B,QAAG,KAAK8L,iBAAR,EACE,KAAKrR,SAAL,CAAe,KAAKmR,oBAAL,CAA0B5L,KAA1B,CAAf;AAEH,G;;yBAED2J,Y,yBAAatP,I,EAAM;AACjB,SAAK0R,iBAAL,CAAuB1W,IAAvB,CAA4B,EAA5B;AACA,QAAI,kBAAW/N,YAAX,EAAJ,EACE,KAAKykB,iBAAL,CAAuBvG,MAAvB,mBADF,KAGE,KAAKuG,iBAAL,CAAuBvG,MAAvB;;AAEF,SAAKyF,gBAAL,CAAsB,KAAKc,iBAA3B;AACA,SAAK7e,GAAL,CAASwV,WAAT,CAAqB,MAArB;AACA,QAAIrI,KAAKlG,KAAL,IAAc,GAAd,IAAqB,KAAKtH,OAAL,CAAamf,aAAtC,EACE,KAAK9e,GAAL,CAASqV,QAAT,CAAkB,MAAlB;AAEH,G;;yBAED0J,e,8BAAkB;AAChB,QAAI,KAAKxX,SAAL,CAAelF,SAAf,EAAJ,EACE,KAAKkF,SAAL,CAAezF,KAAf,GADF,KAGE,KAAKyF,SAAL,CAAe1F,IAAf;;AAEF,WAAO,KAAP;AACD,G;;yBAEDmd,c,6BAAiB;AACf,QAAI,KAAKzX,SAAL,CAAelF,SAAf,EAAJ,EACE,KAAKkF,SAAL,CAAexF,IAAf,GADF,KAGE,KAAKwF,SAAL,CAAe1F,IAAf;AAEH,G;;yBAEDod,a,0BAAcnM,K,EAAO;AACnB,QAAI,CAAC,KAAK3S,QAAL,CAAcge,WAAnB,EAAgC;AAChC,SAAKe,eAAL,GAAuB,IAAvB;AACA,SAAKlf,GAAL,CAASqV,QAAT,CAAkB,UAAlB;AACA,SAAK8J,cAAL,CAAoB9J,QAApB,CAA6B,4BAA7B;AACA,SAAK+J,gBAAL,CAAsB/J,QAAtB,CAA+B,4BAA/B;AACA,SAAKgK,gBAAL,CAAsBhK,QAAtB,CAA+B,4BAA/B;AACA,QAAIvC,KAAJ,EACEA,MAAMC,cAAN;AAEH,G;;yBAEDuM,e,4BAAgBxM,K,EAAO;AACrB,SAAK8L,iBAAL,GAAyB,IAAzB;AACA,SAAK5e,GAAL,CAASqV,QAAT,CAAkB,UAAlB;AACA,QAAIvC,KAAJ,EACEA,MAAMC,cAAN;AAEH,G;;yBAEDuJ,Q,qBAASxJ,K,EAAO;AACd,QAAI,KAAKoM,eAAT,EACE,KAAKld,IAAL,CAAU8Q,KAAV;;AAEF,SAAK9S,GAAL,CAASwV,WAAT,CAAqB,UAArB;AACA,SAAK2J,cAAL,CAAoB3J,WAApB,CAAgC,4BAAhC;AACA,SAAK4J,gBAAL,CAAsB5J,WAAtB,CAAkC,4BAAlC;AACA,SAAK6J,gBAAL,CAAsB7J,WAAtB,CAAkC,qCAAlC;AACA,SAAK0J,eAAL,GAAuB,KAAvB;AACA,SAAKN,iBAAL,GAAyB,KAAzB;AACD,G;;yBAEDpC,U,uBAAW1J,K,EAAO;AAChB,QAAI,KAAKoM,eAAT,EAA0B;AACxBpM,YAAMC,cAAN;AACA,UAAMqL,UAAUtL,MAAMuL,KAAN,GAAc,KAAKC,iBAAL,CAAuBjd,MAAvB,GAAgC4a,IAA9D;AACA,UAAIuB,MAAMY,UAAU,KAAKE,iBAAL,CAAuBrX,KAAvB,EAAV,GAA2C,GAArD;AACAuW,YAAMG,KAAK4B,GAAL,CAAS,GAAT,EAAc5B,KAAK6B,GAAL,CAAShC,GAAT,EAAc,CAAd,CAAd,CAAN;AACA,WAAKiC,iBAAL,CAAuBjC,GAAvB;AACD,KAND,MAMO,IAAI,KAAKoB,iBAAT,EAA4B;AACjC9L,YAAMC,cAAN;AACA,WAAKxF,SAAL,CAAe,KAAKmR,oBAAL,CAA0B5L,KAA1B,CAAf;AACD;AACF,G;;yBAED4L,oB,iCAAqB5L,K,EAAO;AAC1B,QAAM4M,UAAU5M,MAAMuL,KAAN,GAAc,KAAKjB,mBAAL,CAAyB/b,MAAzB,GAAkC4a,IAAhE;AACA,QAAM0D,eAAgBD,UAAU,KAAKtC,mBAAL,CAAyBnW,KAAzB,EAAX,GAA+C,GAApE;AACA,WAAO0Y,YAAP;AACD,G;;yBAEDC,U,yBAAa;AACX,SAAKrS,SAAL,CAAe,KAAKuQ,KAAL,GAAa,GAAb,GAAmB,CAAlC;AACD,G;;yBAEDvQ,S,sBAAUnb,K,EAAgC;AAAA;;AAAA,QAAzBytB,eAAyB,uEAAP,KAAO;;AACxCztB,YAAQurB,KAAK4B,GAAL,CAAS,GAAT,EAAc5B,KAAK6B,GAAL,CAASptB,KAAT,EAAgB,CAAhB,CAAd,CAAR;AACA;AACA;AACA;AACA,SAAKspB,cAAL,GAAsBtpB,KAAtB;AACA,SAAK0Y,aAAL,IAAsB,CAAC+U,eAAvB,IAA0C,cAAOtjB,OAAP,CAAe,QAAf,EAAyBnK,KAAzB,CAA1C;AACA,QAAM0tB,wBAAwB,SAAxBA,qBAAwB,GAAM;AAClC,UAAI,OAAKvY,SAAL,CAAeqE,OAAnB,EAA4B;AAAE,eAAKrE,SAAL,CAAegG,SAAf,CAAyBnb,KAAzB;AAAiC,OAA/D,MAAqE;AACnE,eAAKO,YAAL,CAAkB,OAAK4U,SAAvB,EAAkC,iBAAOtR,eAAzC,EAA0D,YAAM;AAC9D,iBAAKsR,SAAL,CAAegG,SAAf,CAAyBnb,KAAzB;AACD,SAFD;AAGD;AACF,KAND;;AAQA,QAAI,CAAC,KAAKmV,SAAV,EAAqB;AACnB,WAAK5U,YAAL,CAAkB,IAAlB,EAAwB,iBAAO4F,6BAA/B,EAA8D,YAAM;AAClEunB;AACD,OAFD;AAGD,KAJD,MAIO;AAAEA;AAAyB;AAEnC,G;;yBAEDlI,gB,+BAAmB;AACjB,SAAK3mB,OAAL,CAAa,iBAAO+G,uBAApB,EAA6C,KAAKpJ,IAAlD;AACA,SAAK2Y,SAAL,CAAewF,UAAf;AACA,SAAKgT,oBAAL;AACD,G;;yBAEDhJ,Y,yBAAaxP,S,EAAW;AACtB,QAAI,KAAKA,SAAT,EAAoB;AAClB,WAAKjW,aAAL,CAAmB,KAAKiW,SAAxB;AACA,WAAKuU,6BAAL,GAAqC,IAArC;AACD;AACD,uBAASnrB,GAAT,CAAgB,KAAKgP,OAAL,CAAa0H,QAA7B,SAAyC,iBAAOtU,aAAhD,EAAiE,KAAK0pB,YAAtE,EAAoF,IAApF;AACA,SAAKlV,SAAL,GAAiBA,SAAjB;AACA;AACA,SAAKgG,SAAL,CAAe,KAAKmO,cAApB,EAAoC,IAApC;AACA,SAAKgB,gBAAL;AACA,SAAKV,iBAAL;AACA,SAAKxC,cAAL;AACA,SAAKjS,SAAL,CAAetW,OAAf,CAAuB,iBAAO4E,iCAA9B,EAAiE,KAAK0R,SAAL,CAAesG,UAAf,EAAjE;AACA,QAAI,KAAKtG,SAAL,CAAe4R,oBAAnB,EACE,KAAKvS,OAAL;;AAEF,SAAK3V,OAAL,CAAa,iBAAOsH,6BAApB;AACD,G;;yBAEDynB,a,4BAAgB;AACd,QAAI,KAAKC,YAAT,EACElhB,aAAa,KAAKkhB,YAAlB;;AAEF,SAAK7C,mBAAL,CAAyB5H,WAAzB,CAAqC,iBAArC;AACD,G;;yBAEDsJ,a,4BAA6B;AAAA;;AAAA,QAAfoB,OAAe,uEAAL,GAAK;;AAC3B,QAAI,CAAC,KAAK9C,mBAAV,EAA+B;AAC/B,QAAI,KAAKwB,iBAAT,EAA4B;AAAE,WAAKqB,YAAL,GAAoBvhB,WAAW;AAAA,eAAM,OAAKogB,aAAL,EAAN;AAAA,OAAX,EAAuCoB,OAAvC,CAApB;AAAqE,KAAnG,MAAyG;AACvG,UAAI,KAAKD,YAAT,EACElhB,aAAa,KAAKkhB,YAAlB;;AAEF,WAAKA,YAAL,GAAoBvhB,WAAW;AAAA,eAAM,OAAK0e,mBAAL,CAAyB/H,QAAzB,CAAkC,iBAAlC,CAAN;AAAA,OAAX,EAAuE6K,OAAvE,CAApB;AACD;AACF,G;;yBAEDnW,K,oBAAQ;AACN,SAAK2S,gBAAL;AACD,G;;yBAEDC,iB,8BAAkBvD,Q,EAAU;AAC1B,QAAM+G,cAAc/G,SAASgH,KAAT,GAAiBhH,SAASiH,KAA1B,GAAkC,GAAtD;AACA,QAAMC,YAAYlH,SAAS6B,OAAT,GAAmB7B,SAASiH,KAA5B,GAAoC,GAAtD;AACA,SAAKlB,cAAL,CAAoBvE,GAApB,CAAwB,EAAEqB,MAASkE,WAAT,MAAF,EAA2BlZ,OAAUqZ,YAAYH,WAAtB,MAA3B,EAAxB;AACD,G;;yBAEDzV,Y,yBAAauC,Y,EAAc;AACzB,QAAI,KAAKiS,eAAT,EAA0B;AAC1B;AACA,QAAMqB,WAAYtT,aAAagO,OAAb,GAAuB,CAAxB,GAA6BhO,aAAaoT,KAA1C,GAAkDpT,aAAagO,OAAhF;;AAEA,SAAKU,oBAAL,GAA4B4E,QAA5B;AACA,SAAK3E,oBAAL,GAA4B3O,aAAaoT,KAAzC;AACA,SAAKG,aAAL;AACD,G;;yBAEDA,a,4BAAgB;AACd,QAAI,KAAK7E,oBAAL,KAA8B,IAA9B,IAAsC,KAAKC,oBAAL,KAA8B,IAAxE,EAA8E;AAC5E;AACA;AACD;;AAED;AACA,SAAK6E,wBAAL,GAAgC,GAAhC;AACA,QAAI,KAAKlZ,SAAL,CAAejF,eAAf,OAAqC,mBAASU,IAA9C,IAAsD,KAAKuE,SAAL,CAAesG,UAAf,EAA1D,EACE,KAAK4S,wBAAL,GAAiC,KAAK9E,oBAAL,GAA4B,KAAKC,oBAAlC,GAA0D,GAA1F;;AAEF,SAAK6D,iBAAL,CAAuB,KAAKgB,wBAA5B;;AAEA,QAAMC,cAAc,uBAAW,KAAK/E,oBAAhB,CAApB;AACA,QAAMgF,cAAc,uBAAW,KAAK/E,oBAAhB,CAApB;AACA,QAAI8E,gBAAgB,KAAKE,iBAAzB,EAA4C;AAC1C,WAAKC,SAAL,CAAe5f,IAAf,CAAoByf,WAApB;AACA,WAAKE,iBAAL,GAAyBF,WAAzB;AACD;AACD,QAAIC,gBAAgB,KAAKG,iBAAzB,EAA4C;AAC1C,WAAKC,SAAL,CAAe9f,IAAf,CAAoB0f,WAApB;AACA,WAAKG,iBAAL,GAAyBH,WAAzB;AACD;AACF,G;;yBAED3e,I,iBAAK8Q,K,EAAO;AACV,QAAI,CAAC,KAAK3S,QAAL,CAAcge,WAAnB,EAAgC;AAChC,QAAMC,UAAUtL,MAAMuL,KAAN,GAAc,KAAKC,iBAAL,CAAuBjd,MAAvB,GAAgC4a,IAA9D;AACA,QAAIuB,MAAMY,UAAU,KAAKE,iBAAL,CAAuBrX,KAAvB,EAAV,GAA2C,GAArD;AACAuW,UAAMG,KAAK4B,GAAL,CAAS,GAAT,EAAc5B,KAAK6B,GAAL,CAAShC,GAAT,EAAc,CAAd,CAAd,CAAN;AACA,SAAKjW,SAAL,CAAetF,cAAf,CAA8Bub,GAA9B;AACA,SAAKiC,iBAAL,CAAuBjC,GAAvB;AACA,WAAO,KAAP;AACD,G;;yBAEDwD,c,6BAAiB;AACf,SAAKnF,WAAL,GAAmB,IAAnB;AACD,G;;yBAEDoF,gB,+BAAmB;AACjB,SAAKpF,WAAL,GAAmB,KAAnB;AACD,G;;yBAEDqF,kB,iCAAqB;AACnB,SAAKC,eAAL,GAAuB,IAAvB;AACD,G;;yBAEDpB,oB,mCAAuB;AACrB,SAAKoB,eAAL,GAAuB,KAAvB;AACD,G;;yBAEDC,S,wBAAY;AACV,WAAO,CAAC,KAAKphB,GAAL,CAASqhB,QAAT,CAAkB,oBAAlB,CAAR;AACD,G;;yBAED7Z,I,iBAAKsL,K,EAAO;AAAA;;AACV,QAAI,KAAKwO,QAAT,EACE;;AAEF,QAAMpB,UAAU,IAAhB;AACA,QAAI,CAACpN,KAAD,IAAWA,MAAMyO,OAAN,KAAkB,KAAKC,UAAvB,IAAqC1O,MAAM2O,OAAN,KAAkB,KAAKC,UAAvE,IAAsF1iB,UAAUuG,SAAV,CAAoB7I,KAApB,CAA0B,UAA1B,CAA1F,EAAiI;AAC/HqC,mBAAa,KAAK4iB,MAAlB;AACA,WAAK3hB,GAAL,CAASwH,IAAT;AACA,WAAKvW,OAAL,CAAa,iBAAOgH,iBAApB,EAAuC,KAAKrJ,IAA5C;AACA,WAAKoR,GAAL,CAASwV,WAAT,CAAqB,oBAArB;AACA,WAAKmM,MAAL,GAAcjjB,WAAW;AAAA,eAAM,OAAK+I,IAAL,EAAN;AAAA,OAAX,EAA8ByY,OAA9B,CAAd;AACA,UAAIpN,KAAJ,EAAW;AACT,aAAK0O,UAAL,GAAkB1O,MAAMyO,OAAxB;AACA,aAAKG,UAAL,GAAkB5O,MAAM2O,OAAxB;AACD;AACF;AACF,G;;yBAEDha,I,mBAAgB;AAAA;;AAAA,QAAXma,KAAW,uEAAH,CAAG;;AACd,QAAI,CAAC,KAAKR,SAAL,EAAL,EAAuB;;AAEvB,QAAMlB,UAAU0B,SAAS,IAAzB;AACA7iB,iBAAa,KAAK4iB,MAAlB;AACA,QAAI,CAAC,KAAKL,QAAN,IAAkB,KAAK3hB,OAAL,CAAasY,gBAAb,KAAkC,KAAxD,EACE;;AAEF,QAAI,CAAC,KAAKqJ,QAAN,KAAmBM,SAAS,KAAKT,eAAd,IAAiC,KAAKtF,WAAtC,IAAqD,KAAKqD,eAA1D,IAA6E,KAAKN,iBAArG,CAAJ,EAA6H;AAAE,WAAK+C,MAAL,GAAcjjB,WAAW;AAAA,eAAM,OAAK+I,IAAL,EAAN;AAAA,OAAX,EAA8ByY,OAA9B,CAAd;AAAsD,KAArL,MAA2L;AACzL,WAAKjvB,OAAL,CAAa,iBAAOiH,iBAApB,EAAuC,KAAKtJ,IAA5C;AACA,WAAKoR,GAAL,CAASqV,QAAT,CAAkB,oBAAlB;AACA,WAAKyJ,aAAL,CAAmB,CAAnB;AACD;AACF,G;;yBAEDtF,c,6BAAiB;AACf,QAAMqI,cAAc,KAAKC,WAAL,EAApB;AACA,QAAID,eAAe,CAAC,KAAK/F,6BAArB,IAAsD,CAAC,kBAAWvgB,iBAAX,EAA3D,EAA2F;AACzF;AACAsmB,kBAAY1F,OAAZ,IAAuB,4BAAgB0F,YAAY1F,OAA5B,EAAqC,YAArC,CAAvB;AACA0F,kBAAY5F,IAAZ,IAAoB,4BAAgB4F,YAAY5F,IAA5B,EAAkC,YAAlC,CAApB;AACA4F,kBAAY3F,KAAZ,IAAqB,4BAAgB2F,YAAY3F,KAA5B,EAAmC,YAAnC,CAArB;AACD;AACD,QAAM6F,kBAAkB,yBAAe,KAAK5hB,QAApB,MAAkC,yBAAe0hB,WAAf,CAA1D;AACA,QAAIE,eAAJ,EAAqB;AACnB,WAAK5hB,QAAL,GAAgB0hB,WAAhB;AACA,WAAK1gB,MAAL;AACD;AACF,G;;yBAED2gB,W,0BAAc;AACZ,WAAO,sBAAEppB,MAAF,CAAS,IAAT,EAAe,EAAf,EAAmB,KAAK6O,SAAL,CAAepH,QAAlC,CAAP;AACD,G;;yBAEDuZ,oB,iCAAqB6B,I,EAAM;AACzB,SAAKA,IAAL,GAAYA,IAAZ;AACA,QAAM1oB,SAAS0oB,OAAO,UAAP,GAAoB,aAAnC;AACA,SAAKyG,YAAL,CAAkBnvB,MAAlB,EAA0B,SAA1B;AACD,G;;yBAEDovB,oB,mCAAuB;AACrB,QAAMC,SAAS,KAAKliB,GAAL,CAAS2D,IAAT,CAAc,sBAAd,CAAf;AACA,SAAKod,SAAL,GAAiBmB,OAAOve,IAAP,CAAY,yCAAZ,CAAjB;AACA,SAAKkb,iBAAL,GAAyBqD,OAAOve,IAAP,CAAY,8CAAZ,CAAzB;AACA,SAAKqa,gBAAL,GAAwBkE,OAAOve,IAAP,CAAY,6CAAZ,CAAxB;AACA,SAAKsa,eAAL,GAAuBiE,OAAOve,IAAP,CAAY,4CAAZ,CAAvB;AACA,SAAKkd,SAAL,GAAiBqB,OAAOve,IAAP,CAAY,yCAAZ,CAAjB;AACA,SAAK2a,iBAAL,GAAyB4D,OAAOve,IAAP,CAAY,8BAAZ,CAAzB;AACA,SAAK4a,aAAL,GAAqB2D,OAAOve,IAAP,CAAY,0BAAZ,CAArB;AACA,SAAKwb,cAAL,GAAsB+C,OAAOve,IAAP,CAAY,2BAAZ,CAAtB;AACA,SAAKyb,gBAAL,GAAwB8C,OAAOve,IAAP,CAAY,2BAAZ,CAAxB;AACA,SAAK0b,gBAAL,GAAwB6C,OAAOve,IAAP,CAAY,6BAAZ,CAAxB;AACA,SAAKyZ,mBAAL,GAA2B8E,OAAOve,IAAP,CAAY,6BAAZ,CAA3B;AACA,SAAKwe,gBAAL,GAAwBD,OAAOve,IAAP,CAAY,gCAAZ,CAAxB;AACA,SAAKka,WAAL,GAAmBqE,OAAOve,IAAP,CAAY,2BAAZ,CAAnB;AACA,SAAK4Z,oBAAL,GAA4B,KAAKvd,GAAL,CAAS2D,IAAT,CAAc,8BAAd,CAA5B;AACA,SAAK8Z,cAAL,GAAsB,KAAKzd,GAAL,CAAS2D,IAAT,CAAc,0BAAd,CAAtB;AACA,SAAK+Z,kBAAL,GAA0B,KAAK1d,GAAL,CAAS2D,IAAT,CAAc,4BAAd,CAA1B;AACA,SAAKqe,YAAL,GAAoB,KAAKhiB,GAAL,CAAS2D,IAAT,CAAc,gDAAd,CAApB;AACA,SAAKye,eAAL;AACA,SAAKC,eAAL;AACD,G;;yBAEDD,e,8BAAkB;AAChB,SAAKxB,iBAAL,GAAyB,KAAKC,SAAL,CAAe5f,IAAf,EAAzB;AACA,SAAK6f,iBAAL,GAAyB,KAAKC,SAAL,CAAe9f,IAAf,EAAzB;AACD,G;;yBAEDohB,e,8BAAkB;AAChB,QAAMH,SAAS,KAAKliB,GAAL,CAAS2D,IAAT,CAAc,sBAAd,CAAf;AACAue,WAAOve,IAAP,CAAY,wCAAZ,EAAsD2U,MAAtD;AACA4J,WAAOve,IAAP,CAAY,yCAAZ,EAAuD2U,MAAvD;AACA4J,WAAOve,IAAP,CAAY,wCAAZ,EAAsD2U,MAAtD;AACA,SAAK0F,gBAAL,CAAsB1F,MAAtB;AACA,SAAK2F,eAAL,CAAqB3F,MAArB;AACA,SAAKuF,WAAL,CAAiBvF,MAAjB;AACA,SAAKuG,iBAAL,CAAuBvG,MAAvB;AACA,SAAK0J,YAAL,CAAkB1J,MAAlB;AACD,G;;yBAEDmH,iB,8BAAkBrtB,K,EAAO;AACvBA,YAAQurB,KAAK6B,GAAL,CAAS7B,KAAK4B,GAAL,CAASntB,KAAT,EAAgB,KAAhB,CAAT,EAAiC,CAAjC,CAAR;AACA,QAAI,KAAKkwB,0BAAL,KAAoClwB,KAAxC,EAA+C;AAC7C;AACA;AACD;AACD,SAAKkwB,0BAAL,GAAkClwB,KAAlC;;AAEA,SAAKgtB,gBAAL,CAAsB5J,WAAtB,CAAkC,4BAAlC;AACA,SAAK6J,gBAAL,CAAsB7J,WAAtB,CAAkC,4BAAlC;AACA,SAAK4J,gBAAL,CAAsBxE,GAAtB,CAA0B,EAAE3T,OAAU7U,KAAV,MAAF,EAA1B;AACA,SAAKitB,gBAAL,CAAsBzE,GAAtB,CAA0B,EAAEqB,MAAS7pB,KAAT,MAAF,EAA1B;AACD,G;;yBAEDmwB,Y,yBAAaC,K,EAAO;AAClB,QAAI,CAAC,KAAKriB,QAAL,CAAcge,WAAnB,EAAgC;AAChC,QAAMjF,cAAc,KAAK3R,SAAL,CAAeyF,cAAf,EAApB;AACA,QAAM8N,WAAW,KAAKvT,SAAL,CAAenF,WAAf,EAAjB;AACA,QAAIme,WAAW5C,KAAK4B,GAAL,CAAS5B,KAAK6B,GAAL,CAAStG,cAAcsJ,KAAvB,EAA8B,CAA9B,CAAT,EAA2C1H,QAA3C,CAAf;AACAyF,eAAW5C,KAAK4B,GAAL,CAASgB,WAAW,GAAX,GAAiBzF,QAA1B,EAAoC,GAApC,CAAX;AACA,SAAKvT,SAAL,CAAetF,cAAf,CAA8Bse,QAA9B;AACD,G;;yBAEDkC,c,2BAAe3zB,G,EAAK4zB,E,EAAI;AAAA;;AACtB,SAAKpT,IAAL,CAAUC,IAAV,CAAezgB,GAAf,EAAoB,YAAM;AACxB,aAAK0Y,IAAL;AACA,aAAOkb,IAAP;AACD,KAHD;AAID,G;;yBAEDC,a,4BAAgB;AAAA;;AACd,SAAKC,eAAL;AACA,SAAKtT,IAAL,GAAY,iBAAS,KAAK3P,OAAL,CAAagY,YAAtB,CAAZ;;AAEA,SAAK8K,cAAL,CAAoB,OAApB,EAA6B;AAAA,aAAM,OAAK1D,eAAL,EAAN;AAAA,KAA7B;AACA,SAAK0D,cAAL,CAAoB,MAApB,EAA4B;AAAA,aAAM,OAAKF,YAAL,CAAkB,CAAC,CAAnB,CAAN;AAAA,KAA5B;AACA,SAAKE,cAAL,CAAoB,OAApB,EAA6B;AAAA,aAAM,OAAKF,YAAL,CAAkB,CAAlB,CAAN;AAAA,KAA7B;AACA,SAAKE,cAAL,CAAoB,YAApB,EAAkC;AAAA,aAAM,OAAKF,YAAL,CAAkB,CAAC,EAAnB,CAAN;AAAA,KAAlC;AACA,SAAKE,cAAL,CAAoB,aAApB,EAAmC;AAAA,aAAM,OAAKF,YAAL,CAAkB,EAAlB,CAAN;AAAA,KAAnC;AACA,SAAKE,cAAL,CAAoB,iBAApB,EAAuC;AAAA,aAAM,OAAKF,YAAL,CAAkB,CAAC,EAAnB,CAAN;AAAA,KAAvC;AACA,SAAKE,cAAL,CAAoB,kBAApB,EAAwC;AAAA,aAAM,OAAKF,YAAL,CAAkB,EAAlB,CAAN;AAAA,KAAxC;AACA;AACA,QAAM3Q,OAAO,CAAC,GAAD,EAAK,GAAL,EAAS,GAAT,EAAa,GAAb,EAAiB,GAAjB,EAAqB,GAArB,EAAyB,GAAzB,EAA6B,GAA7B,EAAiC,GAAjC,EAAqC,GAArC,CAAb;AACAA,SAAKhf,OAAL,CAAa,UAACxD,CAAD,EAAO;AAAE,aAAKqzB,cAAL,CAAoBrzB,CAApB,EAAuB;AAAA,eAAM,OAAK+Q,QAAL,CAAcge,WAAd,IAA6B,OAAK5W,SAAL,CAAetF,cAAf,CAA8B7S,IAAI,EAAlC,CAAnC;AAAA,OAAvB;AAAkG,KAAxH;AACD,G;;yBAEDwzB,e,8BAAkB;AAChB,QAAI,KAAKtT,IAAT,EAAe;AACb,WAAKA,IAAL,CAAU3e,GAAV,CAAc,OAAd;AACA,WAAK2e,IAAL,CAAU3e,GAAV,CAAc,MAAd;AACA,WAAK2e,IAAL,CAAU3e,GAAV,CAAc,OAAd;AACA,WAAK2e,IAAL,CAAU3e,GAAV,CAAc,YAAd;AACA,WAAK2e,IAAL,CAAU3e,GAAV,CAAc,aAAd;AACA,WAAK2e,IAAL,CAAU3e,GAAV,CAAc,iBAAd;AACA,WAAK2e,IAAL,CAAU3e,GAAV,CAAc,kBAAd;AACA,WAAK2e,IAAL,CAAU3e,GAAV,CAAc,CAAC,GAAD,EAAK,GAAL,EAAS,GAAT,EAAa,GAAb,EAAiB,GAAjB,EAAqB,GAArB,EAAyB,GAAzB,EAA6B,GAA7B,EAAiC,GAAjC,EAAqC,GAArC,CAAd;AACD;AACF,G;;yBAEDkyB,W,0BAAc;AACZ,QAAI,KAAKljB,OAAL,CAAamY,YAAjB,EAA+B;AAC7B,WAAKgL,YAAL,GAAoB,KAAKnjB,OAAL,CAAamY,YAAb,CAA0BiL,OAA9C;AACA,UAAMC,eAAe,KAAKrjB,OAAL,CAAamY,YAAb,CAA0BmL,OAA/C;AACA,WAAKjjB,GAAL,CAAS2D,IAAT,CAAc,2BAAd,EAA2CiX,GAA3C,CAA+C,kBAA/C,EAAmEoI,YAAnE;AACA,WAAKhjB,GAAL,CAAS2D,IAAT,CAAc,8BAAd,EAA8CiX,GAA9C,CAAkD,MAAlD,EAA0D,KAAKkI,YAA/D;AACA,WAAK9iB,GAAL,CAAS2D,IAAT,CAAc,qCAAd,EAAqDiX,GAArD,CAAyD,WAAzD,EAAsE,mBAAmB,KAAKkI,YAA9F;AACD;AACF,G;;yBAED/E,gB,6BAAiBja,O,EAAS;AACxB,QAAI,KAAKgf,YAAL,IAAqBhf,OAAzB,EACE,2BAAEA,OAAF,EAAWH,IAAX,CAAgB,UAAhB,EAA4BiX,GAA5B,CAAgC,MAAhC,EAAwC,KAAKkI,YAA7C;AAEH,G;;yBAEDrgB,O,sBAAU;AACR,SAAKhR,MAAL;AACA,+BAAE4I,QAAF,EAAYsc,MAAZ,CAAmB,SAAnB,EAA8B,KAAK0F,eAAnC;AACA,+BAAEhiB,QAAF,EAAYsc,MAAZ,CAAmB,WAAnB,EAAgC,KAAK4F,iBAArC;AACA,SAAKqG,eAAL;AACD,G;;AAED;;;;;;;yBAKAljB,S,sBAAUC,O,EAAS;AACjB,SAAKwD,QAAL,GAAgB,sBAAEzK,MAAF,CAAS,KAAKyK,QAAd,EAAwBxD,OAAxB,CAAhB;AACA,SAAK1O,OAAL,CAAa,iBAAOuH,2BAApB;AACD,G;;yBAED2I,M,qBAAS;AAAA;;AACP,QAAM+e,UAAU,IAAhB;AACA,SAAKlgB,GAAL,CAASmI,IAAT,CAAc,KAAK3G,QAAL,CAAc,EAAErB,UAAU,KAAKA,QAAjB,EAAd,CAAd;AACA,SAAK8hB,oBAAL;AACA,SAAKjE,gBAAL,CAAsB3I,QAAtB,CAA+B,QAA/B;AACA,SAAK4I,eAAL,CAAqB5I,QAArB,CAA8B,SAA9B;;AAEA,SAAKqH,gBAAL;AACA,SAAKiF,MAAL,GAAcjjB,WAAW;AAAA,aAAM,OAAK+I,IAAL,EAAN;AAAA,KAAX,EAA8ByY,OAA9B,CAAd;AACA,QAAI,KAAKoB,QAAT,EACE,KAAK7Z,IAAL;;AAGF;AACA;AACA,QAAG,kBAAQ/B,QAAR,IAAoB,kBAAQM,QAA/B,EAAyC;AACvC,UAAI,kBAAQb,OAAR,GAAkB,EAAtB,EACE,KAAKgd,gBAAL,CAAsBvH,GAAtB,CAA0B,SAA1B,EAAoC,MAApC,EADF,KAGE,KAAKwC,mBAAL,CAAyBxC,GAAzB,CAA6B,SAA7B,EAAuC,MAAvC;AAEH;;AAED,SAAKwE,gBAAL,CAAsB/J,QAAtB,CAA+B,4BAA/B;AACA,SAAKgK,gBAAL,CAAsBhK,QAAtB,CAA+B,4BAA/B;;AAEA,QAAI6N,yBAAyB,CAA7B;AACA,QAAI,KAAKZ,0BAAT,EACEY,yBAAyB,KAAKZ,0BAA9B;;AAEF,SAAKA,0BAAL,GAAkC,IAAlC;AACA,SAAK7C,iBAAL,CAAuByD,sBAAvB;;AAEAC,YAAQC,QAAR,CAAiB,YAAM;AACrB,UAAI,CAAC,OAAKjjB,QAAL,CAAcge,WAAnB,EACE,OAAKG,iBAAL,CAAuBjJ,QAAvB,CAAgC,eAAhC;;AAEF,UAAI,CAAC,kBAAQrP,QAAT,IAAqB,CAAC,OAAKrG,OAAL,CAAawL,wBAAvC,EACE,OAAKwX,aAAL;;AAEF,aAAKlG,YAAL,CAAkB,EAAExV,OAAO,OAAKtH,OAAL,CAAasH,KAAtB,EAA6BC,QAAQ,OAAKvH,OAAL,CAAauH,MAAlD,EAAlB;AACA,aAAK4X,aAAL,CAAmB,CAAnB;AACD,KATD;;AAWA,SAAK+D,WAAL;AACA,SAAKnJ,oBAAL,CAA0B,KAAK6B,IAA/B;;AAEA,SAAK4B,QAAL,GAAgB,IAAhB;AACA,SAAKH,cAAL;AACA,SAAK/rB,OAAL,CAAa,iBAAO8G,qBAApB;AACA,WAAO,IAAP;AACD,G;;;wBAnsBH;AACA;AACA;;AAEA;;;;kBA4BqBuQ,Y;;;AAsqBrBA,aAAa5P,MAAb,GAAsB,UAASa,UAAT,EAAqB;AACzC,SAAO,mBAAO+O,YAAP,EAAqB/O,UAArB,CAAP;AACD,CAFD;;;;;;;;ACtsBA,kBAAkB,yD;;;;;;ACAlB;AACA,uCAAuC,0BAA0B;AACjE,wCAAwC;AACxC;AACA,E;;;;;;;ACHA;;AAEA;;AAEA;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA,EAAE;;AAEF,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;AC5CA;AACA;AACA;;;AAGA;AACA,sDAAuD,gCAAgC,EAAE,wCAAwC,uBAAuB,gBAAgB,iBAAiB,kBAAkB,yBAAyB,EAAE,iDAAiD,2BAA2B,0CAA0C,kCAAkC,iEAAsE,EAAE,qDAAqD,4CAA4C,oCAAoC,mEAAwE,EAAE,mFAAmF,yBAAyB,kBAAkB,kBAAkB,gBAAgB,mEAAmE,wCAAwC,EAAE,4DAA4D,qBAAqB,wBAAwB,kBAAkB,kBAAkB,mBAAmB,6BAA6B,uBAAuB,gCAAgC,EAAE,kEAAkE,mBAAmB,oBAAoB,oDAAoD,EAAE,sGAAsG,iBAAiB,EAAE,+FAA+F,oBAAoB,EAAE,0JAA0J,mBAAmB,EAAE,4EAA4E,yBAAyB,kBAAkB,kBAAkB,mBAAmB,mBAAmB,6BAA6B,2BAA2B,uCAAuC,EAAE,4HAA4H,2BAA2B,eAAe,kBAAkB,qBAAqB,EAAE,8HAA8H,qBAAqB,2BAA2B,0BAA0B,EAAE,6HAA6H,2BAA2B,eAAe,mBAAmB,qBAAqB,EAAE,0GAA0G,sCAAsC,kBAAkB,sBAAsB,mBAAmB,wBAAwB,8BAA8B,oBAAoB,qBAAqB,EAAE,gHAAgH,sBAAsB,uBAAuB,EAAE,uHAAuH,wBAAwB,EAAE,kHAAkH,wBAAwB,EAAE,uHAAuH,sBAAsB,uBAAuB,EAAE,wHAAwH,sBAAsB,uBAAuB,EAAE,uHAAuH,sBAAsB,uBAAuB,EAAE,6HAA6H,uBAAuB,wCAAwC,oBAAoB,uBAAuB,EAAE,+HAA+H,wCAAwC,oBAAoB,0BAA0B,wBAAwB,uBAAuB,uBAAuB,EAAE,yIAAyI,2BAA2B,yBAAyB,EAAE,iJAAiJ,2BAA2B,gCAAgC,EAAE,4HAA4H,sBAAsB,EAAE,2HAA2H,sBAAsB,EAAE,sOAAsO,8BAA8B,wBAAwB,qBAAqB,wBAAwB,0BAA0B,2BAA2B,EAAE,sHAAsH,4BAA4B,EAAE,sHAAsH,wCAAwC,0BAA0B,EAAE,+HAA+H,yBAAyB,4BAA4B,EAAE,2GAA2G,2BAA2B,mBAAmB,gBAAgB,8BAA8B,+BAA+B,oBAAoB,qBAAqB,wBAAwB,EAAE,2IAA2I,sBAAsB,sBAAsB,6BAA6B,oBAAoB,oCAAoC,EAAE,uKAAuK,+BAA+B,mBAAmB,oBAAoB,qBAAqB,yBAAyB,sCAAsC,0CAA0C,EAAE,uKAAuK,+BAA+B,mBAAmB,oBAAoB,qBAAqB,yBAAyB,sCAAsC,0CAA0C,EAAE,sKAAsK,uBAAuB,+BAA+B,sBAAsB,uBAAuB,wBAAwB,uDAAuD,0CAA0C,EAAE,0KAA0K,qBAAqB,EAAE,2HAA2H,0BAA0B,EAAE,0LAA0L,uBAAuB,EAAE,yIAAyI,6BAA6B,8CAA8C,8CAA8C,mBAAmB,kBAAkB,sBAAsB,uBAAuB,qBAAqB,wCAAwC,EAAE,4KAA4K,+BAA+B,sBAAsB,qBAAqB,uBAAuB,wBAAwB,gCAAgC,2DAA2D,oCAAoC,EAAE,6GAA6G,qBAAqB,8BAA8B,qBAAqB,wBAAwB,sBAAsB,+BAA+B,EAAE,mJAAmJ,sBAAsB,oBAAoB,EAAE,+KAA+K,0CAA0C,sBAAsB,oCAAoC,wBAAwB,yBAAyB,yBAAyB,EAAE,uLAAuL,4BAA4B,EAAE,qLAAqL,2BAA2B,iCAAiC,uBAAuB,EAAE,4LAA4L,4BAA4B,EAAE,2LAA2L,+BAA+B,EAAE,2IAA2I,sBAAsB,6BAA6B,2BAA2B,mBAAmB,sBAAsB,uBAAuB,yBAAyB,yCAAyC,EAAE,0KAA0K,wBAAwB,+BAA+B,qBAAqB,0BAA0B,sCAAsC,EAAE,qMAAqM,iCAAiC,qBAAqB,sBAAsB,uBAAuB,2BAA2B,wCAAwC,4CAA4C,EAAE,qMAAqM,iCAAiC,qBAAqB,sBAAsB,uBAAuB,2BAA2B,wCAAwC,4CAA4C,EAAE,oMAAoM,yBAAyB,iCAAiC,wBAAwB,yBAAyB,0BAA0B,yDAAyD,4CAA4C,EAAE,wKAAwK,+BAA+B,gDAAgD,gDAAgD,qBAAqB,oBAAoB,wBAAwB,yBAAyB,uBAAuB,0CAA0C,EAAE,0MAA0M,iCAAiC,wBAAwB,uBAAuB,yBAAyB,0BAA0B,kCAAkC,6DAA6D,sCAAsC,EAAE,iLAAiL,wBAAwB,uBAAuB,8BAA8B,yBAAyB,yBAAyB,4CAA4C,uDAAuD,+CAA+C,+EAA+E,EAAE,wLAAwL,6CAA6C,yBAAyB,EAAE,kMAAkM,8BAA8B,EAAE,yLAAyL,6CAA6C,6CAA6C,EAAE,4JAA4J,eAAe,mBAAmB,eAAe,iBAAiB,EAAE;;AAEhxd;;;;;;;ACRA,2KAA2K,2dAA2d,8DAA8D,kCAAkC,+EAA+E,cAAc,OAAO,iFAAiF,wBAAwB,4DAA4D,8TAA8T,0BAA0B,gDAAgD,kFAAkF,6CAA6C,iJAAiJ,4BAA4B,8EAA8E,6CAA6C,kDAAkD,yCAAyC,iCAAiC,aAAa,mCAAmC,yHAAyH,iCAAiC,EAAE,EAAE,aAAa,iEAAiE,uCAAuC,aAAa,OAAO,oCAAoC,aAAa,WAAW,EAAE,UAAU,4DAA4D,sGAAsG,qBAAqB,sDAAsD,iGAAiG,qBAAqB,wDAAwD,mGAAmG,qBAAqB,e;;;;;;ACA50F,uM;;;;;;ACAA,qR;;;;;;ACAA,ga;;;;;;ACAA,0O;;;;;;ACAA,yP;;;;;;ACAA,qY;;;;;;;ACCA;;AAEA;;AAEA;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA,EAAE;;AAEF,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;AC5CA;AACA;;;AAGA;AACA,wCAAyC,gCAAgC,8BAA8B,2BAA2B,0BAA0B,yBAAyB,sBAAsB,wCAAwC,uCAAuC,4CAA4C,4CAA4C,uBAAuB,cAAc,eAAe,cAAc,uBAAuB,wBAAwB,uBAAuB,qBAAqB,oBAAoB,8DAA8D,uBAAuB,2BAA2B,EAAE,0lDAA0lD,gBAAgB,iBAAiB,gBAAgB,oBAAoB,sBAAsB,+BAA+B,EAAE,yBAAyB,gCAAgC,wBAAwB,EAAE,+DAA+D,uBAAuB,0BAA0B,6BAA6B,EAAE,+CAA+C,mBAAmB,EAAE,sHAAsH,sBAAsB,sBAAsB,EAAE,yBAAyB,mBAAmB,EAAE,yBAAyB,iBAAiB,EAAE,qBAAqB,sBAAsB,0BAA0B,kBAAkB,EAAE,uBAAuB,qBAAqB,EAAE,8BAA8B,6BAA6B,8BAA8B,aAAa,cAAc,EAAE,4BAA4B,mBAAmB,EAAE,mBAAmB,6BAA6B,EAAE;;AAE/uG;;;;;;;ACPA;AACA;AACA;;;AAGA;AACA,qCAAsC,4BAA4B,uBAAuB,qBAAqB,0HAAyH,GAAG;;AAE1O;;;;;;;ACRA,qE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIA;;;;AACA;;;;AAGA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AAGA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AAGA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA;;;;;;;;;AA1BA;AAPA;AACA;AACA;;IAsCqBkP,M;;;AACnB;;;;;;AAMA,oBAA6F;AAAA,QAAjF4a,eAAiF,uEAA/D,EAA+D;AAAA,QAA3Dhc,QAA2D,uEAAhD,CAAgD;AAAA,QAA7Cic,wBAA6C,uEAAlB,IAAkB;AAAA;;AAAA,+DAC3F,sBAD2F;;AAE3F,UAAKjc,QAAL,GAAgBA,QAAhB;AACA,UAAKN,eAAL,GAAuB,EAAvB;;AAEA,QAAI,CAACuc,wBAAL,EAA+B;AAC7B,YAAKvc,eAAL,8CACK,MAAKA,eADV;AAID;;AAED,UAAKA,eAAL,8CACK,MAAKA,eADV;;AAMA,QAAI,CAACuc,wBAAL,EAA+B;AAC7B,YAAKvc,eAAL,8CACK,MAAKA,eADV;AAKD;;AAED,UAAKA,eAAL,8CACK,MAAKA,eADV;;AAMA,UAAK+R,gBAAL,GAAwB,8IAAxB;AACA,UAAKnF,WAAL,GAAmB,sJAAnB;;AAEA,QAAI,CAACrlB,MAAMi1B,OAAN,CAAcF,eAAd,CAAL,EACE,MAAKG,2BAAL,CAAiCH,eAAjC;;AAEF,UAAKI,kBAAL,CAAwBJ,eAAxB;AAtC2F;AAuC5F;;AAED;;;;;;;;;mBAOAK,kB,+BAAmB7Z,O,EAAS;AAC1B,QAAIvb,MAAMi1B,OAAN,CAAc1Z,OAAd,CAAJ,EAA4B;AAC1BA,gBAAUA,QAAQ8Z,MAAR,CAAe,UAASC,IAAT,EAAe7V,MAAf,EAAuB;AAC9C6V,aAAK7V,OAAO9K,IAAZ,MAAsB2gB,KAAK7V,OAAO9K,IAAZ,IAAoB,EAA1C;AACA2gB,aAAK7V,OAAO9K,IAAZ,EAAkBxS,IAAlB,CAAuBsd,MAAvB;AACA,eAAO6V,IAAP;AACD,OAJS,EAIP,EAJO,CAAV;AAKD;AACD,WAAO/Z,OAAP;AACD,G;;mBAEDga,U,uBAAWC,I,EAAM;AACf,QAAMC,UAAU,SAAVA,OAAU,CAACla,OAAD,EAAUkE,MAAV,EAAqB;AACnClE,cAAQkE,OAAOxf,SAAP,CAAiBK,IAAzB,KAAkC,OAAOib,QAAQkE,OAAOxf,SAAP,CAAiBK,IAAzB,CAAzC;AACAib,cAAQkE,OAAOxf,SAAP,CAAiBK,IAAzB,IAAiCmf,MAAjC;AACA,aAAOlE,OAAP;AACD,KAJD;AAKA,QAAMma,aAAaF,KAAKG,WAAL,CAAiBF,OAAjB,EAA0B,sBAAc,IAAd,CAA1B,CAAnB;;AAEA,QAAMla,UAAU,EAAhB;AACA,SAAK,IAAI/a,GAAT,IAAgBk1B,UAAhB;AACEna,cAAQqa,OAAR,CAAgBF,WAAWl1B,GAAX,CAAhB;AADF,KAGA,OAAO+a,OAAP;AACD,G;;AAED;;;;;;;;mBAMA4Z,kB,+BAAmB5Z,O,EAAS;AAC1BA,cAAU,KAAK6Z,kBAAL,CAAwB7Z,OAAxB,CAAV;AACA,QAAIA,QAAQ6K,QAAZ,EACE,KAAK3N,eAAL,GAAuB,KAAK8c,UAAL,CAAgBha,QAAQ6K,QAAR,CAAiB1lB,MAAjB,CAAwB,KAAK+X,eAA7B,CAAhB,CAAvB;;AAEF,QAAI8C,QAAQtC,SAAZ,EACE,KAAKuR,gBAAL,GAAwB,KAAK+K,UAAL,CAAgBha,QAAQtC,SAAR,CAAkBvY,MAAlB,CAAyB,KAAK8pB,gBAA9B,CAAhB,CAAxB;;AAEF,QAAIjP,QAAQrD,IAAZ,EACE,KAAKmN,WAAL,GAAmB,KAAKkQ,UAAL,CAAgBha,QAAQrD,IAAR,CAAaxX,MAAb,CAAoB,KAAK2kB,WAAzB,CAAhB,CAAnB;;AAGF,0BAAWvM,WAAX,CAAuB,KAAKC,QAA5B,EAAsCN,eAAtC,GAAwD,KAAKA,eAA7D;AACD,G;;AAED;;;;;;;;mBAMAyc,2B,wCAA4B3Z,O,EAAS;AACnC,QAAMsa,cAAc,CAAC,UAAD,EAAa,WAAb,EAA0B,MAA1B,CAApB;AACAA,gBAAYvxB,OAAZ,CAAoB,UAACqQ,IAAD,EAAU;AAC5B,OAAC4G,QAAQ5G,IAAR,KAAiB,EAAlB,EAAsBrQ,OAAtB,CAA8B,UAAC+H,EAAD,EAAQ;AACpC,YAAMypB,eAAe,cAAczpB,GAAGsI,IAAjB,GAAwB,aAAxB,GAAwCA,IAAxC,GAA+C,QAApE;AACA,YAAItI,GAAGsI,IAAH,KAAYA,IAAhB,EAAuB,MAAM,IAAIohB,cAAJ,CAAmBD,YAAnB,CAAN;AACxB,OAHD;AAID,KALD;AAMD,G;;;;;AApIH;;;AARA;;;kBAwBqB3b,M;;;;;;;ACxCrB;AACA;AACA,mD;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBA;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AAZA;AACA;AACA;;AAYA,IAAM6b,YAAY;AAChB,SAAO,CAAC,aAAD,EAAgB,aAAhB,EAA+B,aAA/B,EAA8C,aAA9C,EAA6D,WAA7D,EAA0E,aAA1E,EAAyF,WAAzF,EAAsGnyB,GAAtG,CACL,UAACoyB,KAAD,EAAW;AAAE,WAAO,wBAAwBA,KAAxB,GAAgC,cAAvC;AAAuD,GAD/D,CADS;AAGhB,SAAO,CAAC,oCAAD,EAAuC,2BAAvC,EAAoE,mCAApE,CAHS;AAIhB,UAAQ,CAAC,sCAAD,CAJQ;AAKhB,UAAQ,CAAC,kCAAD,CALQ;AAMhB,SAAO,CAAC,2CAAD,CANS;AAOhB,UAAQ,CAAC,uBAAD;AAPQ,CAAlB;AASAD,UAAU,KAAV,IAAmBA,UAAU,KAAV,CAAnB;AACAA,UAAU,KAAV,IAAmBA,UAAU,MAAV,CAAnB;;AAEA,IAAME,kBAAkB;AACtB,SAAO,CAAC,WAAD,CADe;AAEtB,SAAO,CAAC,WAAD,EAAc,yBAAd,CAFe;AAGtB,SAAO,CAAC,8BAAD,CAHe;AAItB,SAAO,CAAC,WAAD;AAJe,CAAxB;;AAOA,IAAMC,wBAAwB,oBAAYD,eAAZ,EAA6Bb,MAA7B,CAAoC,UAACe,GAAD,EAAM3zB,CAAN;AAAA,oDAAgB2zB,GAAhB,oCAAwBF,gBAAgBzzB,CAAhB,CAAxB;AAAA,CAApC,EAAiF,EAAjF,CAA9B;;AAEA;;IACqBiY,U;;;;wBACR;AAAE,aAAO,aAAP;AAAsB;;;wBACrB;AAAE,aAAO,KAAK2b,WAAL,GAAmB,OAAnB,GAA6B,OAApC;AAA6C;;;wBAE3C;AAChB,UAAMC,cAAc,KAAKjlB,OAAL,CAAatB,GAAjC;AACA,UAAIyG,YAAYkE,WAAW6b,gBAAX,CAA4BD,WAA5B,EAAyCJ,eAAzC,EAA0D,KAAK7kB,OAAL,CAAakD,QAAvE,CAAhB;AACA,aAAO,KAAKlD,OAAL,CAAa+U,QAAb,IAAyB,KAAK/U,OAAL,CAAa+U,QAAb,CAAsBoQ,SAA/C,IAA4D,KAAKnlB,OAAL,CAAamlB,SAAzE,IAAsFL,sBAAsBnlB,OAAtB,CAA8BwF,UAAU,CAAV,CAA9B,KAA+C,CAA5I;AACD;;;wBAEgB;AACf,aAAO;AACL,4BAAoB;AADf,OAAP;AAGD;;;wBAEY;AACX,aAAO;AACL,mBAAW,YADN;AAEL,0BAAkB,wBAFb;AAGL,0BAAkB,mBAHb;AAIL,iBAAS,UAJJ;AAKL,iBAAS,UALJ;AAML,sBAAc,eANT;AAOL,0BAAkB,mBAPb;AAQL,iBAAS,UARJ;AASL,mBAAW,YATN;AAUL,oBAAY,aAVP;AAWL,mBAAW,YAXN;AAYL,kBAAU,WAZL;AAaL,mBAAW,wBAbN;AAcL,sBAAc,eAdT;AAeL,mBAAW;AAfN,OAAP;AAiBD;;AAED;;;;;;;;wBAKY;AACV,aAAO,KAAKnK,EAAL,CAAQoP,KAAf;AACD;;AAED;;;;;;;;;;wBAOgB;AACd,aAAO,KAAKgb,YAAZ;AACD;;;AAED,wBAAqB;AAAA;;AAAA,sCAANt1B,IAAM;AAANA,UAAM;AAAA;;AAAA,+DACnB,8CAASA,IAAT,EADmB;;AAEnB,UAAKu1B,UAAL,GAAkB,KAAlB;AACA,UAAKC,YAAL,GAAoB,KAApB;AACA,UAAKF,YAAL,GAAoB,KAApB;AACA,UAAKG,eAAL,GAAuB,KAAvB;AACA,UAAKC,oBAAL,GAA4B,IAA5B;AACA,UAAKC,QAAL,GAAgB,KAAhB;AACA,UAAKC,UAAL,GAAkB,CAAC,CAAnB;AACA,UAAKC,SAAL,CAAe,MAAK3lB,OAAL,CAAatB,GAA5B;AACA;AACA,UAAKsB,OAAL,CAAa+U,QAAb,KAA0B,MAAK/U,OAAL,CAAa+U,QAAb,GAAwB,MAAK/U,OAAL,IAAgB,EAAlE;AACA,UAAKA,OAAL,CAAa+U,QAAb,CAAsB6Q,kBAAtB,GAA2C,MAAK5lB,OAAL,CAAa+U,QAAb,CAAsB6Q,kBAAtB,IAA4C,MAAK5lB,OAAL,CAAa6lB,0BAApG;;AAEA,QAAMC,iBAAiB,MAAK9lB,OAAL,CAAa+U,QAApC;AACA,QAAMgR,UAAUD,eAAeC,OAAf,KAA2B,kBAAQhgB,QAAR,GAAmB,MAAnB,GAA4B,MAAK/F,OAAL,CAAa+lB,OAApE,CAAhB;;AAEA,QAAIC,kBAAJ,CAjBmB,CAiBL;AACd,QAAI,MAAKhmB,OAAL,CAAaimB,MAAjB,EAAyB;AACvB,UAAI,OAAO,MAAKjmB,OAAL,CAAaimB,MAApB,KAA+B,QAAnC,EACED,YAAY,MAAKhmB,OAAL,CAAaimB,MAAzB,CADF,KAEK,IAAI,OAAO,MAAKjmB,OAAL,CAAaimB,MAAb,CAAoBC,GAA3B,KAAmC,QAAvC,EACHF,YAAY,MAAKhmB,OAAL,CAAaimB,MAAb,CAAoBC,GAAhC;AAEH;;AAED,0BAAEntB,MAAF,CAAS,MAAKiC,EAAd,EAAkB;AAChBmjB,aAAO,MAAKne,OAAL,CAAa8N,IADJ;AAEhBqY,oBAAc,MAAKnmB,OAAL,CAAa8N,IAFX;AAGhBsY,YAAM,MAAKpmB,OAAL,CAAaomB,IAHH;AAIhBH,cAAQD,SAJQ;AAKhBD,eAASA,WAAW,UALJ;AAMhBM,gBAAU,CAACP,eAAeO,QAAf,IAA2B,MAAKrmB,OAAL,CAAasmB,0BAAzC,KAAwE,UANlE;AAOhBC,mBAAaT,eAAeS,WAPZ;AAQhB,8BAAwBT,eAAeU;AARvB,KAAlB;;AAWAV,mBAAeU,UAAf,IAA8B,MAAKnmB,GAAL,CAASqE,IAAT,CAAc,EAAE+hB,aAAa,aAAf,EAAd,CAA9B;AACAX,mBAAeS,WAAf,IAA+B,MAAKlmB,GAAL,CAASqE,IAAT,CAAc,EAAEgiB,aAAaZ,eAAeS,WAA9B,EAAd,CAA/B;;AAEA;AACA,UAAK/lB,QAAL,GAAgB,EAAEgc,SAAS,CAAC,SAAD,CAAX,EAAhB;AACA,UAAKhc,QAAL,CAAc8b,IAAd,GAAqB,CAAC,WAAD,EAAc,UAAd,EAA0B,UAA1B,CAArB;AACA,UAAK9b,QAAL,CAAc+b,KAAd,GAAsB,CAAC,YAAD,EAAe,QAAf,EAAyB,cAAzB,CAAtB;;AAEAuJ,mBAAea,cAAf,IAAkC,MAAKC,oBAAL,CAA0Bd,eAAea,cAAzC,CAAlC;;AAEA;AACA,UAAK3mB,OAAL,CAAa0N,QAAb,IAAyB8V,QAAQC,QAAR,CAAiB;AAAA,aAAM,CAAC,MAAK4B,UAAN,IAAoB,MAAKnjB,IAAL,EAA1B;AAAA,KAAjB,CAAzB;AAhDmB;AAiDpB;;uBAED0kB,oB,iCAAqBC,M,EAAQ;AAC3B,SAAKC,eAAL,GAAuBD,OAAOr0B,GAAP,CAAW,iBAAS;AACzC,aAAO;AACLu0B,cAAMtM,MAAMsM,IAAN,IAAc,WADf,EAC4B;AACjCC,eAAOvM,MAAMuM,KAFR;AAGLC,cAAMxM,MAAMwM,IAHP;AAILvoB,aAAK+b,MAAM/b;AAJN,OAAP;AAMD,KAPsB,CAAvB;AAQD,G;;AAED;;;;;;;;uBAMAinB,S,sBAAUuB,M,EAAQ;AAChB,QAAI,KAAKlsB,EAAL,CAAQ0D,GAAR,KAAgBwoB,MAApB,EACE;;AAEF,SAAKC,UAAL,GAAkB,KAAlB;AACA,SAAKnsB,EAAL,CAAQ0D,GAAR,GAAcwoB,MAAd;AACA,SAAKE,IAAL,GAAY,KAAKpsB,EAAL,CAAQ0D,GAApB;AACD,G;;uBAED2oB,iB,8BAAkBhrB,C,EAAG;AACnB,SAAKirB,sBAAL;AACA,SAAKh2B,OAAL,CAAa,iBAAO+C,uBAApB,EAA6C,EAAE8mB,UAAU9e,EAAEkrB,MAAF,CAASpM,QAArB,EAA+B5Z,MAAMlF,CAArC,EAA7C;AACA,SAAKmrB,eAAL;AACA,QAAMC,kBAAkB,OAAQ,KAAKjkB,QAAL,CAAcikB,eAAtB,KAA2C,WAA3C,IAA0D,KAAKjkB,QAAL,CAAcikB,eAAhG;AACA,QAAI,KAAK9kB,eAAL,OAA2B,mBAASU,IAApC,IAA4CokB,eAAhD,EACE,KAAKC,iBAAL;AAEH,G;;uBAEDC,iB,gCAAoB;AAClB,SAAKH,eAAL;AACA,SAAK5a,aAAL;AACA;AACA,SAAKgb,WAAL;AACD,G;;uBAEDJ,e,8BAAkB;AAChB;AACA;AACA,QAAI,KAAK7kB,eAAL,OAA2B,mBAASQ,GAApC,IAA2C,KAAKR,eAAL,OAA2B,mBAASS,GAAnF,EACE,KAAK5C,QAAL,CAAc8b,IAAd,GAAqB,CAAC,WAAD,EAAc,UAAd,EAA0B,UAA1B,CAArB,CADF,KAGE,KAAK9b,QAAL,CAAc8b,IAAd,GAAqB,CAAC,UAAD,CAArB;;AAEF,SAAK9b,QAAL,CAAcge,WAAd,GAA4B,KAAKqJ,aAAL,EAA5B;AACA,SAAKv2B,OAAL,CAAa,iBAAO8C,uBAApB;AACD,G;;uBAEDyzB,a,4BAAgB;AACd,WAAO5tB,SAAS,KAAKwI,WAAL,EAAT,CAAP;AACD,G;;uBAEDE,e,8BAAkB;AAChB,QAAMmlB,eAAe,KAAKxnB,OAAL,KAAiB,OAAjB,GAA2B,mBAAS8C,GAApC,GAA0C,mBAASD,GAAxE;AACA,WAAO,CAAC,CAAD,EAAI7G,SAAJ,EAAeyrB,QAAf,EAAyBpoB,OAAzB,CAAiC,KAAK3E,EAAL,CAAQmgB,QAAzC,KAAsD,CAAtD,GAA0D,mBAAS9X,IAAnE,GAA0EykB,YAAjF;AACD,G;;uBAEDjlB,qB,oCAAwB;AACtB,WAAO,KAAP;AACD,G;;AAED;AACA;;;uBACAZ,O,sBAAU;AACR,KAAC,KAAKS,SAAL,EAAD,IAAqB,KAAK1H,EAAL,CAAQyS,IAAR,EAArB;AACD,G;;uBAEDvL,I,mBAAO;AACL,SAAK5Q,OAAL,CAAa,iBAAO0D,oBAApB;AACA,SAAKywB,QAAL,GAAgB,KAAhB;AACA,SAAKE,SAAL,CAAe,KAAKyB,IAApB;AACA,SAAKE,sBAAL;AACA,QAAIpS,UAAU,KAAKla,EAAL,CAAQkH,IAAR,EAAd;AACA;AACA,QAAIgT,WAAWA,QAAQ8S,KAAvB,EACE9S,QAAQ8S,KAAR,CAAc,YAAM,CAAE,CAAtB;AAEH,G;;uBAED7lB,K,oBAAQ;AACN,SAAKnH,EAAL,CAAQmH,KAAR;AACD,G;;uBAEDC,I,mBAAO;AACL,SAAKD,KAAL;AACA,SAAKsjB,QAAL,GAAgB,IAAhB;AACA;AACA,SAAKzqB,EAAL,CAAQitB,eAAR,CAAwB,KAAxB;AACA,SAAKC,yBAAL;AACA,SAAKZ,sBAAL;AACA,SAAKh2B,OAAL,CAAa,iBAAO+D,aAApB;AACD,G;;uBAED6G,M,mBAAOzJ,K,EAAO;AACZ,QAAIA,UAAU,CAAd,EAAiB;AACf,WAAK4N,GAAL,CAASqE,IAAT,CAAc,EAAEyZ,OAAO,MAAT,EAAd;AACA,WAAKnjB,EAAL,CAAQmjB,KAAR,GAAgB,IAAhB;AACD,KAHD,MAGO;AACL,WAAK9d,GAAL,CAASqE,IAAT,CAAc,EAAEyZ,OAAO,IAAT,EAAd;AACA,WAAKnjB,EAAL,CAAQmjB,KAAR,GAAgB,KAAhB;AACD;AACD,SAAKnjB,EAAL,CAAQkB,MAAR,GAAiBzJ,QAAQ,GAAzB;AACD,G;;AAED;;;;;;uBAIAqb,I,mBAAO;AACL,SAAK9S,EAAL,CAAQmjB,KAAR,GAAgB,IAAhB;AACD,G;;AAED;;;;;;uBAIAnQ,M,qBAAS;AACP,SAAKhT,EAAL,CAAQmjB,KAAR,GAAgB,KAAhB;AACD,G;;uBAEDgK,O,sBAAU;AACR,WAAO,CAAC,CAAC,KAAKntB,EAAL,CAAQkB,MAAjB;AACD,G;;uBAEDwG,S,wBAAY;AACV,WAAO,CAAC,KAAK1H,EAAL,CAAQqf,MAAT,IAAmB,CAAC,KAAKrf,EAAL,CAAQoP,KAAnC;AACD,G;;uBAMDge,0B,yCAA6B;AAC3B,QAAI,KAAK5C,oBAAL,KAA8B,IAAlC,EACE;;AAEF,SAAK6C,0BAAL,GAAkC,IAAlC;AACA,SAAKC,0BAAL;AACA,SAAK9C,oBAAL,GAA4BnP,YAAY,KAAKiS,0BAAL,CAAgCtpB,IAAhC,CAAqC,IAArC,CAAZ,EAAwD,GAAxD,CAA5B;AACD,G;;uBAEDkpB,yB,wCAA4B;AAC1B,QAAI,KAAK1C,oBAAL,KAA8B,IAAlC,EACE;;AAEF7O,kBAAc,KAAK6O,oBAAnB;AACA,SAAKA,oBAAL,GAA4B,IAA5B;AACA,SAAKD,eAAL,GAAuB,KAAvB;AACD,G;;uBAED+C,0B,yCAA6B;AAC3B,QAAMC,SAAS,KAAKF,0BAApB;AACA,QAAM/uB,MAAM,KAAK0B,EAAL,CAAQue,WAApB;AACA,SAAKgM,eAAL,GAAuBgD,WAAWjvB,GAAlC;AACA,SAAK+uB,0BAAL,GAAkC/uB,GAAlC;AACA,SAAKguB,sBAAL;AACD,G;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;uBACAkB,U,yBAAa;AACX,SAAKlD,YAAL,GAAoB,IAApB;AACA,SAAKgC,sBAAL;AACD,G;;AAED;AACA;AACA;AACA;AACA;AACA;;;uBACAmB,a,4BAAgB;AACd,SAAKnD,YAAL,GAAoB,IAApB;AACA,SAAKgC,sBAAL;AACD,G;;AAED;;;uBACAoB,U,yBAAa;AACX,SAAKpB,sBAAL;AACD,G;;uBAEDqB,U,yBAAa;AACX,SAAKC,uBAAL;AACA,SAAKR,0BAAL;AACA,SAAKd,sBAAL;AACA,SAAKh2B,OAAL,CAAa,iBAAO2D,aAApB;AACD,G;;uBAEDsX,Q,uBAAW;AACT,SAAK2b,yBAAL;AACA,SAAKZ,sBAAL;AACA,SAAKh2B,OAAL,CAAa,iBAAO4D,cAApB;AACD,G;;uBAED2zB,U,yBAAa;AACX,SAAKvB,sBAAL;AACA,SAAKh2B,OAAL,CAAa,iBAAO6D,aAApB;AACD,G;;uBAED2zB,S,wBAAY;AACV,SAAKxB,sBAAL;AACA,SAAKh2B,OAAL,CAAa,iBAAO8D,eAApB;AACD,G;;uBAEDqX,Q,uBAAW;AACT,SAAK6a,sBAAL;AACA,SAAKh2B,OAAL,CAAa,iBAAOyD,cAApB,EAAoC,KAAK9F,IAAzC;AACD,G;;AAED;AACA;AACA;AACA;AACA;;;uBACAq4B,sB,qCAAyB;AACvB,QAAMyB,yBAAyB,CAAC,KAAK/tB,EAAL,CAAQoP,KAAT,IAAkB,CAAC,KAAKpP,EAAL,CAAQqf,MAA1D;AACA,QAAMhQ,YAAY,KAAKib,YAAL,IAAqB,CAAC,KAAKtqB,EAAL,CAAQoP,KAA9B,IAAuC,CAAC,KAAKqb,QAA7C,KAA2DsD,0BAA0B,CAAC,KAAKxD,eAAjC,IAAqD,KAAKvqB,EAAL,CAAQguB,UAAR,GAAqB,KAAKhuB,EAAL,CAAQiuB,gBAA5I,CAAlB;AACA,QAAI,KAAK7D,YAAL,KAAsB/a,SAA1B,EAAqC;AACnC,WAAK+a,YAAL,GAAoB/a,SAApB;AACA,UAAIA,SAAJ,EACE,KAAK/Y,OAAL,CAAa,iBAAO4C,kBAApB,EAAwC,KAAKjF,IAA7C,EADF,KAGE,KAAKqC,OAAL,CAAa,iBAAO6C,mBAApB,EAAyC,KAAKlF,IAA9C;AAEH;AACF,G;;uBAED0d,Q,uBAAW;AACT,SAAKrb,OAAL,CAAa,iBAAOgE,cAApB,EAAoC,KAAK0F,EAAL,CAAQvK,KAA5C,EAAmD,KAAKxB,IAAxD;AACD,G;;uBAED6T,O,sBAAU;AACR,SAAKuiB,UAAL,GAAkB,IAAlB;AACA,SAAK6D,qBAAL,IAA8B,KAAKluB,EAAL,CAAQmuB,UAAR,CAAmBhY,mBAAnB,CAAuC,QAAvC,EAAiD,KAAK+X,qBAAtD,CAA9B;AACA,SAAK7oB,GAAL,CAASvO,MAAT;AACA,WAAO,KAAKkJ,EAAL,CAAQ0D,GAAf;AACA,SAAK0oB,IAAL,GAAY,IAAZ;AACA,uBAAYhnB,OAAZ,CAAoB,KAAKC,GAAzB;AACD,G;;uBAEDgC,I,iBAAKtI,I,EAAM;AACT,SAAKiB,EAAL,CAAQue,WAAR,GAAsBxf,IAAtB;AACD,G;;uBAEDuI,c,2BAAeC,U,EAAY;AACzB,QAAMxI,OAAO,KAAKiB,EAAL,CAAQmgB,QAAR,IAAoB5Y,aAAa,GAAjC,CAAb;AACA,SAAKF,IAAL,CAAUtI,IAAV;AACD,G;;uBAED2tB,iB,gCAAoB;AAClB,QAAM0B,WAAW,iCAAjB;AACA,QAAIA,aAAa,CAAjB,EACE,KAAK/mB,IAAL,CAAU+mB,QAAV;AAEH,G;;uBAED/b,c,6BAAiB;AACf,WAAO,KAAKrS,EAAL,CAAQue,WAAf;AACD,G;;uBAED9W,W,0BAAc;AACZ,WAAO,KAAKzH,EAAL,CAAQmgB,QAAf;AACD,G;;uBAEDvO,a,4BAAgB;AACd,QAAI,KAAKjK,eAAL,OAA2B,mBAASU,IAAxC,EACE,KAAK/R,OAAL,CAAa,iBAAO0C,mBAApB,EAAyC,EAAEsnB,SAAS,CAAX,EAAcoF,OAAO,CAArB,EAAzC,EAAmE,KAAKzxB,IAAxE,EADF,KAGE,KAAKqC,OAAL,CAAa,iBAAO0C,mBAApB,EAAyC,EAAEsnB,SAAS,KAAKtgB,EAAL,CAAQue,WAAnB,EAAgCmH,OAAO,KAAK1lB,EAAL,CAAQmgB,QAA/C,EAAzC,EAAoG,KAAKlsB,IAAzG;AAEH,G;;uBAED24B,W,0BAAc;AACZ,QAAI,CAAC,KAAK5sB,EAAL,CAAQquB,QAAR,CAAiB15B,MAAtB,EACE;;AAEF,QAAI05B,WAAW,EAAf;AACA,QAAIC,cAAc,CAAlB;AACA,SAAK,IAAI75B,IAAI,CAAb,EAAiBA,IAAI,KAAKuL,EAAL,CAAQquB,QAAR,CAAiB15B,MAAtC,EAA8CF,GAA9C,EAAmD;AACjD45B,4DAAeA,QAAf,IAAyB,EAAE5I,OAAO,KAAKzlB,EAAL,CAAQquB,QAAR,CAAiB5I,KAAjB,CAAuBhxB,CAAvB,CAAT,EAAoC85B,KAAK,KAAKvuB,EAAL,CAAQquB,QAAR,CAAiBE,GAAjB,CAAqB95B,CAArB,CAAzC,EAAzB;AACA,UAAI,KAAKuL,EAAL,CAAQue,WAAR,IAAuB8P,SAAS55B,CAAT,EAAYgxB,KAAnC,IAA4C,KAAKzlB,EAAL,CAAQue,WAAR,IAAuB8P,SAAS55B,CAAT,EAAY85B,GAAnF,EACED,cAAc75B,CAAd;AAEH;AACD,QAAMgqB,WAAW;AACfgH,aAAO4I,SAASC,WAAT,EAAsB7I,KADd;AAEfnF,eAAS+N,SAASC,WAAT,EAAsBC,GAFhB;AAGf7I,aAAO,KAAK1lB,EAAL,CAAQmgB;AAHA,KAAjB;AAKA,SAAK7pB,OAAL,CAAa,iBAAOyC,iBAApB,EAAuC0lB,QAAvC,EAAiD4P,QAAjD;AACD,G;;uBAEDG,Q,qBAAS9qB,G,EAAK;AACZ,QAAIyG,YAAYkE,WAAW6b,gBAAX,CAA4BxmB,GAA5B,EAAiCimB,SAAjC,EAA4C,KAAK3kB,OAAL,CAAakD,QAAzD,CAAhB;AACA,QAAIiC,UAAUxV,MAAV,KAAqB,CAAzB,EACEwV,YAAYkE,WAAW6b,gBAAX,CAA4BxmB,GAA5B,EAAiCmmB,eAAjC,EAAkD,KAAK7kB,OAAL,CAAakD,QAA/D,CAAZ;;AAEF,QAAMA,WAAWiC,UAAU,CAAV,KAAgB,EAAjC;AACA,WAAOjC,SAAS1T,KAAT,CAAe,GAAf,EAAoB,CAApB,CAAP;AACD,G;;uBAED8a,M,qBAAS;AACP,QAAI,KAAKmf,aAAT,EACE;;AAEF,SAAKA,aAAL,GAAqB,IAArB;AACA,SAAKn4B,OAAL,CAAa,iBAAO2C,cAApB,EAAoC,KAAKhF,IAAzC;AACD,G;;uBAED25B,uB,sCAA0B;AACxB;AACA,QAAI,KAAKc,YAAL,IAAqB,CAAC,KAAKvC,UAA/B,EAA2C;AACzC,UAAI,KAAK9N,uBAAT,EAAkC;AAChC,aAAK/nB,OAAL,CAAa,iBAAOoE,2BAApB;AACA,YAAMsN,UAAU,KAAKsW,qBAArB;AACA,aAAKA,qBAAL,GAA6BtW,OAA7B;AACA,aAAKkmB,qBAAL,GAA6B,KAAKS,sBAAL,CAA4B3qB,IAA5B,CAAiC,IAAjC,CAA7B;AACA,aAAKhE,EAAL,CAAQmuB,UAAR,CAAmBpY,gBAAnB,CAAoC,QAApC,EAA8C,KAAKmY,qBAAnD;AACD;AACD,WAAK/B,UAAL,GAAkB,IAAlB;AACD;AACF,G;;uBAEDwC,sB,qCAAyB;AACvB,QAAI9C,SAAS,KAAK9jB,oBAAlB;AACA,QAAI0X,QAAQoM,OAAO7iB,IAAP,CAAY;AAAA,aAASyW,MAAMA,KAAN,CAAYmP,IAAZ,KAAqB,SAA9B;AAAA,KAAZ,KAAwD,EAAE53B,IAAI,CAAC,CAAP,EAApE;;AAEA,QAAI,KAAK0zB,UAAL,KAAoBjL,MAAMzoB,EAA9B,EAAkC;AAChC,WAAK0zB,UAAL,GAAkBjL,MAAMzoB,EAAxB;AACA,WAAKV,OAAL,CAAa,iBAAOqE,yBAApB,EAA+C;AAC7C3D,YAAIyoB,MAAMzoB;AADmC,OAA/C;AAGD;AACF,G;;uBAuDDwP,M,qBAAS;AACP,QAAI,KAAKxB,OAAL,CAAa+U,QAAb,CAAsB6Q,kBAA1B,EAA8C;AAC5C,WAAKvlB,GAAL,CAAS1P,EAAT,CAAY,aAAZ,EAA2B,YAAM;AAC/B,eAAO,KAAP;AACD,OAFD;AAGD;;AAED,QAAI,KAAKm2B,eAAL,IAAwB,KAAKA,eAAL,CAAqBn3B,MAArB,GAA8B,CAA1D,EAA6D;AAC3D,WAAK0Q,GAAL,CAASmI,IAAT,CAAc,KAAK3G,QAAL,CAAc;AAC1BglB,gBAAQ,KAAKC;AADa,OAAd,CAAd;AAGD;;AAED,SAAKxc,MAAL;AACA,WAAO,IAAP;AACD,G;;;;wBA1Ra;AACZ,aAAO,KAAKmf,aAAZ;AACD;;;wBAoNkB;AACjB,aAAO,KAAKx6B,IAAL,KAAcoa,WAAWza,SAAX,CAAqBK,IAA1C;AACD;;;wBAE0B;AACzB,UAAI+C,KAAK,CAAT;AACA,UAAIgR,UAAU,SAAVA,OAAU,GAAM;AAAE,eAAOhR,IAAP;AAAa,OAAnC;AACA,UAAIm3B,aAAa,KAAKnuB,EAAL,CAAQmuB,UAAR,GAAqB,oBAAW,KAAKnuB,EAAL,CAAQmuB,UAAnB,CAArB,GAAsD,EAAvE;;AAEA,aAAOA,WACJt2B,MADI,CACG;AAAA,eAAS4nB,MAAMsM,IAAN,KAAe,WAAf,IAA8BtM,MAAMsM,IAAN,KAAe,UAAtD;AAAA,OADH,EAEJv0B,GAFI,CAEA,iBAAS;AAAE,eAAO,EAAER,IAAIgR,SAAN,EAAiB/T,MAAMwrB,MAAMuM,KAA7B,EAAoCvM,OAAOA,KAA3C,EAAP;AAA2D,OAFtE,CAAP;AAGD;;;wBAE2B;AAC1B,aAAO,KAAKiL,UAAZ;AACD,K;sBAEyB1iB,O,EAAS;AACjC,UAAI,CAAC,qBAASA,OAAT,CAAL,EACE;;AAGF,UAAI6jB,SAAS,KAAK9jB,oBAAlB;AACA,UAAI8mB,qBAAJ;;AAEA;AACA,UAAI7mB,YAAY,CAAC,CAAjB,EAAoB;AAClB6mB,uBAAehD,OAAO7iB,IAAP,CAAY;AAAA,iBAASyW,MAAMzoB,EAAN,KAAagR,OAAtB;AAAA,SAAZ,CAAf;AACA,YAAI,CAAC6mB,YAAL,EACE,OAHgB,CAGT;;AAET,YAAIA,aAAapP,KAAb,CAAmBmP,IAAnB,KAA4B,SAAhC,EACE,OANgB,CAMT;AAEV;;AAED;AACA;AACA/C,aACGh0B,MADH,CACU;AAAA,eAAS4nB,MAAMA,KAAN,CAAYmP,IAAZ,KAAqB,QAA9B;AAAA,OADV,EAEG32B,OAFH,CAEW;AAAA,eAASwnB,MAAMA,KAAN,CAAYmP,IAAZ,GAAmB,QAA5B;AAAA,OAFX;;AAIAC,uBAAiBA,aAAapP,KAAb,CAAmBmP,IAAnB,GAA0B,SAA3C;;AAEA,WAAKlE,UAAL,GAAkB1iB,OAAlB;AACA,WAAK1R,OAAL,CAAa,iBAAOqE,yBAApB,EAA+C;AAC7C3D,YAAIgR;AADyC,OAA/C;AAGD;;;wBAEc;AAAE,aAAO,yCAAP;AAA6B;;;;;kBA3f3BqG,U;;;AA+gBrBA,WAAW6b,gBAAX,GAA8B,UAASD,WAAT,EAAsB6E,oBAAtB,EAA4C5mB,QAA5C,EAAsD;AAClF,MAAM6mB,YAAY,CAAC9E,YAAYz1B,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BuN,KAA1B,CAAgC,WAAhC,KAAgD,EAAjD,EAAqD,CAArD,CAAlB;AACA,MAAIoI,YAAYjC,YAAa6mB,aAAaD,qBAAqBC,UAAUx3B,WAAV,EAArB,CAA1B,IAA4E,EAA5F;AACA,SAAQ4S,UAAU5T,WAAV,KAA0B5C,KAA3B,GAAoCwW,SAApC,GAAgD,CAACA,SAAD,CAAvD;AACD,CAJD;;AAMAkE,WAAW2gB,QAAX,GAAsB,UAAS1mB,IAAT,EAAewmB,oBAAf,EAAqC7E,WAArC,EAAkD/hB,QAAlD,EAA4D;AAChF,MAAIiC,YAAYkE,WAAW6b,gBAAX,CAA4BD,WAA5B,EAAyC6E,oBAAzC,EAA+D5mB,QAA/D,CAAhB;AACA,MAAM+mB,QAAQvvB,SAASwvB,aAAT,CAAuB5mB,IAAvB,CAAd;AACA,SAAO,CAAC,CAAE6B,UAAUtS,MAAV,CAAiB;AAAA,WAAa,CAAC,CAACo3B,MAAME,WAAN,CAAkBC,SAAlB,EAA6B/sB,OAA7B,CAAqC,IAArC,EAA2C,EAA3C,CAAf;AAAA,GAAjB,EAAgF,CAAhF,CAAV;AACD,CAJD;;AAMAgM,WAAWpG,OAAX,GAAqB,UAASgiB,WAAT,EAAsB/hB,QAAtB,EAAgC;AACnD,SAAOmG,WAAW2gB,QAAX,CAAoB,OAApB,EAA6BnF,eAA7B,EAA8CI,WAA9C,EAA2D/hB,QAA3D,KACAmG,WAAW2gB,QAAX,CAAoB,OAApB,EAA6BrF,SAA7B,EAAwCM,WAAxC,EAAqD/hB,QAArD,CADP;AAED,CAHD;;;;;;;;AC/jBA,oCAAoC,mBAAmB,OAAO,0LAA0L,O;;;;;;;ACCxP;;AAEA;;AAEA;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA,EAAE;;AAEF,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;AC5CA;AACA;;;AAGA;AACA,6CAA8C,uBAAuB,iBAAiB,gBAAgB,mBAAmB,EAAE;;AAE3H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA;;;;AACA;;;;AACA;;;;;;AAEA;IACqBkG,U;;;;;;;;uBAQnBihB,c,6BAAiB;AACf,SAAK7pB,QAAL,CAAc8b,IAAd,GAAqB,CAAC,WAAD,EAAc,UAAd,EAA0B,UAA1B,CAArB;AACA,SAAK9b,QAAL,CAAcge,WAAd,GAA4B,KAAKqJ,aAAL,EAA5B;AACA,SAAKv2B,OAAL,CAAa,iBAAO8C,uBAApB;AACD,G;;uBAEDuO,e,8BAAkB;AAChB,WAAO,mBAASS,GAAhB;AACD,G;;;;wBAfU;AAAE,aAAO,aAAP;AAAsB;;;wBACrB;AAAE,aAAO,OAAP;AAAgB;;;wBAEd;AAChB,aAAO,IAAP;AACD;;;0BAfH;AACA;AACA;;kBAOqBgG,U;;;AAmBrBA,WAAWnG,OAAX,GAAqB,UAASgiB,WAAT,EAAsB/hB,QAAtB,EAAgC;AACnD,MAAMonB,YAAY;AAChB,WAAO,CAAC,WAAD,CADS;AAEhB,WAAO,CAAC,WAAD,EAAc,yBAAd,CAFS;AAGhB,WAAO,CAAC,8BAAD,CAHS;AAIhB,WAAO,CAAC,WAAD;AAJS,GAAlB;AAMA,SAAO,sBAAWN,QAAX,CAAoB,OAApB,EAA6BM,SAA7B,EAAwCrF,WAAxC,EAAqD/hB,QAArD,CAAP;AACD,CARD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBA;;;;AACA;;;;AACA;;;;IAEqBoG,O;;;oBAiBnB3G,e,8BAAkB;AAChB,WAAO,mBAASC,KAAhB;AACD,G;;;;wBAlBU;AAAE,aAAO,UAAP;AAAmB;;;wBAClB;AAAE,aAAO,KAAP;AAAc;;;wBACb;AACf,aAAO;AACL,yBAAiB;AADZ,OAAP;AAGD;;;wBAEY;AACX,aAAO;AACL,gBAAQ,SADH;AAEL,iBAAS,UAFJ;AAGL,iBAAS;AAHJ,OAAP;AAKD;;;AAMD,mBAAYtF,MAAZ,EAAoB;AAAA;;AAAA,+DAClB,qBAAMA,MAAN,CADkB;;AAElB,UAAKtC,EAAL,CAAQ0D,GAAR,GAAcpB,OAAOoB,GAArB;AAFkB;AAGnB;;oBAED8C,M,qBAAS;AACP,SAAKlQ,OAAL,CAAa,iBAAO2C,cAApB,EAAoC,KAAKhF,IAAzC;AACA,WAAO,IAAP;AACD,G;;oBAEDs7B,O,sBAAU;AACR,SAAKj5B,OAAL,CAAa,iBAAOyD,cAApB,EAAoC,KAAK9F,IAAzC;AACD,G;;oBAED0d,Q,qBAAS6d,G,EAAK;AACZ,QAAMC,IAAKD,IAAIlnB,IAAJ,KAAa,OAAd,GAAyB,YAAzB,GAAwC,iBAAlD;AACA,SAAKhS,OAAL,CAAa,iBAAOgE,cAApB,EAAoC,EAAE+a,SAASoa,CAAX,EAApC,EAAoD,KAAKx7B,IAAzD;AACD,G;;;uBA9CH;AACA;AACA;;kBAMqBqa,O;;;AAyCrBA,QAAQrG,OAAR,GAAkB,UAASynB,QAAT,EAAmB;AACnC,SAAO,uDAAsDp7B,IAAtD,CAA2Do7B,QAA3D;AAAP;AACD,CAFD;;;;;;;;AChDA;;AAEA;;AAEA;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA,EAAE;;AAEF,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;AC5CA;AACA;;;AAGA;AACA,0CAA2C,oBAAoB,qBAAqB,EAAE;;AAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPA;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;IAEqBnhB,I;;;;wBACR;AAAE,aAAO,OAAP;AAAgB;;;wBACd;AAAE,aAAO,wCAAP;AAA2B;;;wBAC3B;AACf,aAAO,EAAE,cAAc,EAAhB,EAAP;AACD;;;AAED,kBAAqB;AAAA;;AAAA,sCAANzZ,IAAM;AAANA,UAAM;AAAA;;AAAA,+DACnB,8CAASA,IAAT,EADmB;;AAEnB,UAAK66B,cAAL,GAAsB,CAAC,CAAvB;AAFmB;AAGpB;;iBAEDnpB,M,qBAAS;AACP,QAAMopB,uBAAuB,KAAK5qB,OAAL,CAAa6qB,2BAAb,IAA4C,KAAK7oB,IAAL,CAAUuS,CAAV,CAAY,wBAAZ,CAAzE;AACA,SAAKlU,GAAL,CAASmI,IAAT,CAAc,KAAK3G,QAAL,CAAc,EAAEwO,SAASua,oBAAX,EAAd,CAAd;AACA,SAAKt5B,OAAL,CAAa,iBAAO2C,cAApB,EAAoC,KAAKhF,IAAzC;AACA,QAAM67B,cAAc,CAAC,EAAE,KAAK9qB,OAAL,CAAaimB,MAAb,IAAuB,KAAKjmB,OAAL,CAAaimB,MAAb,CAAoB6E,WAA7C,CAArB;AACA,QAAI,KAAK9qB,OAAL,CAAa0N,QAAb,IAAyB,CAACod,WAA9B,EACE,KAAKC,QAAL;;AAEF,WAAO,IAAP;AACD,G;;iBAEDC,M,qBAAS;AACP,SAAKL,cAAL,GAAsB,CAAC,KAAKA,cAAL,GAAoB,CAArB,IAAwB,CAA9C;AACA,QAAI,KAAKA,cAAT,EAAyB;AACvB;AACA;AACD;;AAED,QAAMM,QAAQ,KAAKr6B,OAAL,CAAas6B,eAAb,CAA6B,KAAKt6B,OAAL,CAAau6B,MAAb,CAAoB7jB,KAAjD,EAAwD,KAAK1W,OAAL,CAAau6B,MAAb,CAAoB5jB,MAA5E,CAAd;AACA,QAAI6jB,iBAAJ;AACA,QAAI;AACFA,iBAAW,IAAIC,WAAJ,CAAgBJ,MAAM1pB,IAAN,CAAW+pB,MAA3B,CAAX;AACD,KAFD,CAEE,OAAOC,GAAP,EAAY;AACZH,iBAAW,IAAIC,WAAJ,CAAgB,KAAKz6B,OAAL,CAAau6B,MAAb,CAAoB7jB,KAApB,GAA4B,KAAK1W,OAAL,CAAau6B,MAAb,CAAoB5jB,MAAhD,GAAyD,CAAzE,CAAX;AACA,UAAMhG,OAAK0pB,MAAM1pB,IAAjB;AACA,WAAI,IAAI9R,IAAI,CAAZ,EAAeA,IAAI8R,KAAK5R,MAAxB,EAAgCF,GAAhC;AACE27B,iBAAS37B,CAAT,IAAY8R,KAAK9R,CAAL,CAAZ;AADF;AAGD;;AAED,QAAMif,MAAM0c,SAASz7B,MAArB;AAAA,QACE86B,IAAIzM,KAAKwN,MAAL,KAAgB,CAAhB,GAAoB,CAD1B;AAEA,QAAIp7B,MAAM,CAAV;AAAA,QACEkgB,QAAQ,CADV;AAEA,SAAK,IAAI7gB,KAAI,CAAb,EAAgBA,KAAIif,GAApB,GAA0B;AACxB,UAAIte,MAAM,CAAV,EAAa;AACXA,cAAMq6B,IAAIzM,KAAKwN,MAAL,EAAV;AACA,YAAM1S,IAAIkF,KAAKyN,GAAL,CAASzN,KAAKwN,MAAL,EAAT,EAAwB,GAAxB,CAAV;AACAlb,gBAAS,MAAMwI,CAAP,IAAa,EAArB;AACD;AACD1oB,aAAO,CAAP;AACAg7B,eAAS37B,IAAT,IAAgB6gB,KAAhB;AACD;AACD,SAAK1f,OAAL,CAAa86B,YAAb,CAA0BT,KAA1B,EAAiC,CAAjC,EAAoC,CAApC;AACD,G;;iBAEDU,K,oBAAQ;AAAA;;AACN,QAAI,KAAKC,KAAT,EACE;;AAEF,SAAKZ,MAAL;AACA,SAAKa,gBAAL,GAAwB,kCAAsB;AAAA,aAAM,OAAKF,KAAL,EAAN;AAAA,KAAtB,CAAxB;AACD,G;;iBAED7oB,O,sBAAU;AACR,QAAI,KAAK+oB,gBAAT,EAA2B;AACzB,uCAAqB,KAAKA,gBAA1B;AACA,WAAKD,KAAL,GAAa,IAAb;AACD;AACF,G;;iBAEDb,Q,uBAAW;AACT,SAAKI,MAAL,GAAc,KAAK9qB,GAAL,CAAS2D,IAAT,CAAc,2BAAd,EAA2C,CAA3C,CAAd;AACA,SAAKpT,OAAL,GAAe,KAAKu6B,MAAL,CAAYW,UAAZ,CAAuB,IAAvB,CAAf;AACA,SAAKH,KAAL;AACD,G;;;;;kBA7EkBpiB,I;;;AAgFrBA,KAAKtG,OAAL,GAAe,UAACzJ,MAAD,EAAY;AAAE;AAC3B,SAAO,IAAP;AACD,CAFD;;;;;;;ACvFA,4F;;;;;;;ACCA;;AAEA;;AAEA;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA,EAAE;;AAEF,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;AC5CA;AACA;;;AAGA;AACA,uCAAwC,uBAAuB,iBAAiB,gBAAgB,uBAAuB,EAAE,oCAAoC,uBAAuB,uBAAuB,oBAAoB,YAAY,aAAa,iBAAiB,kBAAkB,wCAAwC,wCAAwC,wCAAwC,qBAAqB,mBAAmB,EAAE,4CAA4C,2BAA2B,iBAAiB,gBAAgB,EAAE;;AAEviB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;IAEqBqQ,wB;;;;wBACR;AAAE,aAAO,SAAP;AAAkB;;;wBACd;AACf,aAAO;AACL,wBAAe,EADV;AAEL,iBAAS;AAFJ,OAAP;AAID;;;AAED,oCAAYjC,SAAZ,EAAuB;AAAA;;AAAA,+DACrB,8BAAMA,SAAN,CADqB;;AAErB,UAAK/F,QAAL,GAAgB,0CAAhB;AACA,UAAKkqB,WAAL,GAAmB,IAAnB;AACA,UAAKh5B,QAAL,CAAc,MAAK6U,SAAnB,EAA8B,iBAAOlQ,yBAArC,EAAgE,MAAKiiB,WAArE;AACA,UAAK5mB,QAAL,CAAc,MAAK6U,SAAnB,EAA8B,iBAAOjQ,0BAArC,EAAiE,MAAKq0B,YAAtE;AACA,UAAKj5B,QAAL,CAAc,MAAK6U,SAAnB,EAA8B,iBAAO9Q,cAArC,EAAqD,MAAK6T,MAA1D;AACA,UAAK5X,QAAL,CAAc,MAAK6U,SAAnB,EAA8B,iBAAO5Q,eAArC,EAAsD,MAAK2T,MAA3D;AACA,UAAK5X,QAAL,CAAc,MAAK6U,SAAnB,EAA8B,iBAAOrR,eAArC,EAAsD,MAAKoU,MAA3D;AACA,UAAKnJ,MAAL;AATqB;AAUtB;;qCAEDmY,W,0BAAc;AACZ,SAAK9R,IAAL;AACD,G;;qCAEDmkB,Y,2BAAe;AACb,SAAKlkB,IAAL;AACD,G;;qCAED6C,M,qBAAS;AACP,SAAK7C,IAAL;AACD,G;;qCAEDD,I,mBAAO;AAAA;;AACL,QAAI,KAAKkkB,WAAL,KAAqB,IAAzB,EACE,KAAKA,WAAL,GAAmBhtB,WAAW;AAAA,aAAM,OAAKsB,GAAL,CAASwH,IAAT,EAAN;AAAA,KAAX,EAAkC,GAAlC,CAAnB;AAEH,G;;qCAEDC,I,mBAAO;AACL,QAAI,KAAKikB,WAAL,KAAqB,IAAzB,EAA+B;AAC7B3sB,mBAAa,KAAK2sB,WAAlB;AACA,WAAKA,WAAL,GAAmB,IAAnB;AACD;AACD,SAAK1rB,GAAL,CAASyH,IAAT;AACD,G;;qCAEDtG,M,qBAAS;AACP,SAAKnB,GAAL,CAASmI,IAAT,CAAc,KAAK3G,QAAL,EAAd;AACA,SAAK+F,SAAL,CAAevH,GAAf,CAAmBsY,MAAnB,CAA0B,KAAKtY,GAA/B;AACA,SAAKA,GAAL,CAASyH,IAAT;AACA,QAAI,KAAKF,SAAL,CAAeyC,SAAnB,EACE,KAAKsP,WAAL;;AAEF,WAAO,IAAP;AACD,G;;;kCAjEH;AACA;AACA;;kBAQqB9P,wB;;;;;;;ACVrB,8F;;;;;;;ACCA;;AAEA;;AAEA;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA,EAAE;;AAEF,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;AC5CA;AACA;;;AAGA;AACA,8DAA+D,uBAAuB,mBAAmB,gBAAgB,uBAAuB,iBAAiB,YAAY,aAAa,sBAAsB,uBAAuB,wCAAwC,wCAAwC,wCAAwC,EAAE,+CAA+C,kBAAkB,mBAAmB,gCAAgC,0BAA0B,4BAA4B,+DAA+D,+DAA+D,6GAA6G,wCAAwC,EAAE,wDAAwD,sCAAsC,sCAAsC,EAAE,wDAAwD,sCAAsC,sCAAsC,EAAE,oCAAoC,mBAAmB,kCAAkC,kCAAkC,EAAE,SAAS,kCAAkC,kCAAkC,EAAE,EAAE,4BAA4B,mBAAmB,kCAAkC,kCAAkC,EAAE,SAAS,kCAAkC,kCAAkC,EAAE,EAAE;;AAEh8C;;;;;;;;;;;;;;ACPA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIA;;;;AACA;;;;AACA;;;;;;IAEqBoiB,W;;;;wBACR;AAAE,aAAO,OAAP;AAAgB;;;AAE7B,uBAAYrkB,SAAZ,EAAuB;AAAA;;AAAA,+DACrB,4BAAMA,SAAN,CADqB;;AAErB,UAAKskB,eAAL;AACA,UAAKC,cAAL,GAAsB,MAAKnsB,OAAL,CAAamsB,cAAb,IAA+B,IAArD;AACA,UAAKzR,KAAL,GAAa,MAAb;AAJqB;AAKtB;;wBAED3T,U,yBAAa;AACX,SAAKhU,QAAL,CAAc,KAAK6U,SAAL,CAAemN,QAA7B,EAAuC,iBAAO9f,aAA9C,EAA6D,KAAKwV,MAAlE;AACA,SAAK1X,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO9Q,cAArC,EAAqD,KAAK6T,MAA1D;AACA,SAAK5X,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO5Q,eAArC,EAAsD,KAAK2T,MAA3D;AACA,SAAK5X,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOvR,mBAArC,EAA0D,KAAKsU,MAA/D;AACA,SAAK5X,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOlQ,yBAArC,EAAgE,KAAKiiB,WAArE;AACA,SAAK5mB,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOjQ,0BAArC,EAAiE,KAAKq0B,YAAtE;AACA,SAAKj5B,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO1P,mBAArC,EAA0D,KAAKk0B,UAA/D;AACA,SAAKr5B,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOzR,iBAArC,EAAwD,KAAKi2B,UAA7D;AACA,SAAKr5B,QAAL,CAAc,KAAK6U,SAAL,CAAemN,QAA7B,EAAuC,iBAAOxf,kBAA9C,EAAkE,KAAK62B,UAAvE;AACD,G;;wBAEDF,e,8BAAkB;AAChB,SAAKG,SAAL,GAAiB,IAAjB;AACA,SAAKC,WAAL,GAAmB,CAAnB;AACA,SAAKC,eAAL,GAAuB,CAAvB;AACA,SAAKC,YAAL,GAAoB,CAApB;AACA,SAAKC,SAAL,GAAiB,CAAjB;AACA,SAAKC,eAAL,GAAuB,EAAvB;AACD,G;;wBAEDjiB,M,qBAAS;AACP,SAAKiQ,KAAL,GAAa,SAAb;AACA,SAAKiS,gBAAL,GAAwBntB,KAAKlG,GAAL,EAAxB;AACA,QAAI,CAAC,KAAKszB,UAAV,EACE,KAAKA,UAAL,GAAkBvW,YAAY,KAAKwW,MAAL,CAAY7tB,IAAZ,CAAiB,IAAjB,CAAZ,EAAoC,KAAKmtB,cAAzC,CAAlB;AAEH,G;;wBAEDxhB,M,qBAAS;AACPgM,kBAAc,KAAKiW,UAAnB;AACA,SAAKC,MAAL;AACA,SAAKD,UAAL,GAAkBtwB,SAAlB;AACA,SAAKoe,KAAL,GAAa,SAAb;AACD,G;;wBAEDf,W,0BAAc;AACZ,QAAI,KAAK0S,SAAT,EACE,KAAKS,eAAL,GAAuBttB,KAAKlG,GAAL,EAAvB,CADF,KAGE,KAAKyzB,mBAAL,GAA2BvtB,KAAKlG,GAAL,EAA3B;;AAEF,SAAKohB,KAAL,GAAa,WAAb;AACA,SAAK+R,SAAL;AACD,G;;wBAEDT,Y,2BAAe;AACb,QAAI,KAAKK,SAAL,IAAkB,KAAKS,eAA3B,EAA4C;AAC1C,WAAKT,SAAL,GAAiB,KAAjB;AACA,WAAKC,WAAL,GAAmB9sB,KAAKlG,GAAL,KAAa,KAAKwzB,eAArC;AACA,WAAKH,gBAAL,GAAwBntB,KAAKlG,GAAL,EAAxB;AACD,KAJD,MAIO,IAAI,KAAKyzB,mBAAT,EAA8B;AAAE,WAAKR,eAAL,IAAwB,KAAKS,kBAAL,EAAxB;AAAmD;;AAE1F,SAAKD,mBAAL,GAA2BzwB,SAA3B;AACA,SAAKoe,KAAL,GAAa,SAAb;AACD,G;;wBAEDsS,kB,iCAAqB;AACnB,WAAOxtB,KAAKlG,GAAL,KAAa,KAAKyzB,mBAAzB;AACD,G;;wBAEDE,e,8BAAkB;AAChB,QAAMC,YAAa1tB,KAAKlG,GAAL,KAAa,KAAKqzB,gBAArC;AACA,WAAOO,YAAY,KAAKX,eAAxB;AACD,G;;wBAEDY,a,4BAAgB;AACd,WAAO,CAAC,CAAC,KAAKJ,mBAAd;AACD,G;;wBAEDX,U,uBAAWgB,M,EAAQ;AACjB,0BAAEr0B,MAAF,CAAS,KAAK2zB,eAAd,EAA+BU,MAA/B;AACD,G;;wBAEDC,Q,uBAAW;AACT,QAAMvS,UAAU;AACdwR,mBAAiB,KAAKA,WADR;AAEdG,iBAAiB,KAAKA,SAFR;AAGdF,uBAAiB,KAAKY,aAAL,KAAsB,KAAKZ,eAAL,GAAuB,KAAKS,kBAAL,EAA7C,GAAwE,KAAKT,eAHhF;AAIdC,oBAAiB,KAAKW,aAAL,KAAsB,KAAKF,eAAL,KAAyB,KAAKD,kBAAL,EAA/C,GAA0E,KAAKC,eAAL;AAJ7E,KAAhB;AAMA,0BAAEl0B,MAAF,CAAS+hB,OAAT,EAAkB,KAAK4R,eAAvB;AACA,WAAO5R,OAAP;AACD,G;;wBAED+R,M,qBAAS;AACP,SAAKjlB,SAAL,CAAeiT,WAAf,CAA2B,KAAKwS,QAAL,EAA3B;AACD,G;;;+BAzGH;AACA;AACA;;kBAMqBpB,W;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJrB;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;IAEqBniB,e;;;;wBACR;AAAE,aAAO,WAAP;AAAoB;;;wBAElB;AAAE,aAAO,4CAAP;AAAgC;;;AAEjD,2BAAYlC,SAAZ,EAAuB;AAAA;;AAAA,+DACrB,8BAAMA,SAAN,CADqB;;AAErB,UAAK7H,SAAL;AAFqB;AAGtB;;4BAEDgH,U,yBAAa;AACX,SAAKhU,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO/Q,cAArC,EAAqD,KAAK4T,MAA1D;AACA,SAAK1X,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO9Q,cAArC,EAAqD,KAAK6T,MAA1D;AACA,SAAK5X,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOzP,wBAArC,EAA+D,KAAK4H,SAApE;AACD,G;;4BAEDA,S,wBAAY;AACV,SAAK6gB,QAAL,GAAgB,KAAK5gB,OAAL,CAAa4gB,QAAb,IAAyB,cAAzC;AACA,QAAI,KAAK5gB,OAAL,CAAastB,SAAjB,EAA4B;AAC1B,WAAKC,QAAL,GAAgB,KAAKvtB,OAAL,CAAastB,SAA7B;AACA,WAAKE,SAAL,GAAiB,KAAKxtB,OAAL,CAAaytB,aAA9B;AACA,WAAKjsB,MAAL;AACD,KAJD,MAIO;AAAE,WAAKnB,GAAL,CAASvO,MAAT;AAAmB;AAE7B,G;;4BAED2Y,M,qBAAS;AACP,QAAI,CAAC,KAAKijB,MAAV,EACE,KAAKrtB,GAAL,CAASwH,IAAT;AACH,G;;4BAED8C,M,qBAAS;AACP,SAAKtK,GAAL,CAASyH,IAAT;AACD,G;;4BAEDtG,M,qBAAS;AACP,SAAKnB,GAAL,CAASyH,IAAT;AACA,QAAM6lB,kBAAkB,EAAE/M,UAAU,KAAKA,QAAjB,EAA2B2M,UAAU,KAAKA,QAA1C,EAAoDC,WAAW,KAAKA,SAApE,EAAxB;AACA,SAAKntB,GAAL,CAASmI,IAAT,CAAc,KAAK3G,QAAL,CAAc8rB,eAAd,CAAd;AACA,SAAK/lB,SAAL,CAAevH,GAAf,CAAmBsY,MAAnB,CAA0B,KAAKtY,GAA/B;AACA,WAAO,IAAP;AACD,G;;;kCAnDH;AACA;AACA;;kBAQqByJ,e;;;;;;;ACVrB,+GAA+G,sDAAsD,6EAA6E,eAAe,e;;;;;;;ACCjQ;;AAEA;;AAEA;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA,EAAE;;AAEF,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;AC5CA;AACA;;;AAGA;AACA,2CAA4C,uBAAuB,oBAAoB,qBAAqB,eAAe,uBAAuB,gBAAgB,EAAE,wBAAwB,kBAAkB,oBAAoB,EAAE,0BAA0B,oBAAoB,EAAE,kCAAkC,iBAAiB,eAAe,EAAE,mCAAmC,iBAAiB,gBAAgB,EAAE,+BAA+B,cAAc,eAAe,EAAE,gCAAgC,cAAc,gBAAgB,EAAE;;AAE5hB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;IAEqB8jB,Y;;;;wBACR;AAAE,aAAO,QAAP;AAAiB;;;wBACf;AAAE,aAAO,yCAAP;AAA6B;;;wBAC3B;AACjB,UAAM9C,cAAc,CAAC,EAAE,KAAK9qB,OAAL,CAAaimB,MAAb,IAAuB,KAAKjmB,OAAL,CAAaimB,MAAb,CAAoB6E,WAA7C,CAArB;AACA,aAAO,KAAKljB,SAAL,CAAemN,QAAf,CAAwB9lB,IAAxB,KAAiC,UAAjC,KAAgD,KAAK2Y,SAAL,CAAemN,QAAf,CAAwBpS,eAAxB,OAA8C,mBAASC,KAAvD,IAAgEkoB,WAAhH,CAAP;AACD;;;wBAEgB;AACf,aAAO;AACL,iBAAS,eADJ;AAEL,uBAAe;AAFV,OAAP;AAID;;;wBAEY;AACX,aAAO;AACL,iBAAS;AADJ,OAAP;AAGD;;;wBAEoB;AACnB,aAAO,CAAC,KAAK9qB,OAAL,CAAaimB,MAAd,IAAwB,KAAKjmB,OAAL,CAAaimB,MAAb,CAAoB4H,cAA5C,IAA8D,KAAK7tB,OAAL,CAAaimB,MAAb,CAAoB4H,cAApB,KAAuCvxB,SAA5G;AACD;;;AAED,wBAAYsL,SAAZ,EAAuB;AAAA;;AAAA,+DACrB,8BAAMA,SAAN,CADqB;;AAErB,UAAKkmB,iBAAL,GAAyB,KAAzB;AACA,UAAKC,aAAL,GAAqB,KAArB;AACA,UAAKvsB,MAAL;AACAgiB,YAAQC,QAAR,CAAiB;AAAA,aAAM,MAAKuK,MAAL,EAAN;AAAA,KAAjB;AALqB;AAMtB;;yBAEDjnB,U,yBAAa;AACX,SAAKhU,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO9Q,cAArC,EAAqD,KAAK6T,MAA1D;AACA,SAAK5X,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO/Q,cAArC,EAAqD,KAAK4T,MAA1D;AACA,SAAK1X,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOlQ,yBAArC,EAAgE,KAAKs2B,MAArE;AACA,SAAKj7B,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOjQ,0BAArC,EAAiE,KAAKq2B,MAAtE;AACA,SAAKj7B,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOzP,wBAArC,EAA+D,KAAKqJ,MAApE;AACA,SAAKqsB,cAAL,IAAuB,KAAK96B,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO5Q,eAArC,EAAsD,KAAK2T,MAA3D,CAAvB;AACD,G;;yBAEDhZ,a,4BAAgB;AACd,iCAAMA,aAAN;AACD,G;;yBAED8Y,M,qBAAS;AACP,SAAKqjB,iBAAL,GAAyB,IAAzB;AACA,SAAKE,MAAL;AACD,G;;yBAEDrjB,M,qBAAS;AACP,SAAKmjB,iBAAL,GAAyB,KAAzB;AACA,SAAKC,aAAL,GAAqB,KAArB;AACA,SAAKC,MAAL;AACD,G;;yBAEDC,c,2BAAepmB,I,EAAM;AACnB,QAAIA,SAAS,CAAC,KAAK7H,OAAL,CAAauL,UAAd,IAA4B,KAAKvL,OAAL,CAAaoL,oBAAlD,CAAJ,EAA6E;AAC3E,WAAK8iB,WAAL,CAAiBrmB,IAAjB;AACA,WAAKxH,GAAL,CAASqV,QAAT,CAAkB,WAAlB;AACD,KAHD,MAGO;AACL,WAAKwY,WAAL,CAAiBpmB,IAAjB;AACA,WAAKzH,GAAL,CAASwV,WAAT,CAAqB,WAArB;AACD;AACF,G;;yBAED0F,O,sBAAU;AACR,QAAI,CAAC,KAAKvb,OAAL,CAAauL,UAAd,IAA4B,KAAKvL,OAAL,CAAaoL,oBAA7C,EAAmE;AACjE,WAAK2iB,aAAL,GAAqB,IAArB;AACA,WAAKC,MAAL;AACA,WAAKpmB,SAAL,CAAe1F,IAAf;AACD;AACD,WAAO,KAAP;AACD,G;;yBAEDisB,gB,+BAAmB;AACjB;AACA,WAAO,CAAC,KAAKvmB,SAAL,CAAemN,QAAf,CAAwBiQ,WAAhC;AACD,G;;yBAEDgJ,M,qBAAS;AACP,QAAI,CAAC,KAAKI,YAAV,EACE;;AAEF,QAAIH,iBAAiB,CAAC,KAAKF,aAAN,IAAwB,CAAC,KAAKD,iBAA9B,IAAmD,CAAC,KAAKlmB,SAAL,CAAeyC,SAAxF;AACA,SAAK4jB,cAAL,CAAoBA,cAApB;AACA,QAAI,CAAC,KAAKH,iBAAV,EAA6B;AAC3B,WAAKlmB,SAAL,CAAeyP,mBAAf;AACA,WAAKhX,GAAL,CAASwH,IAAT;AACD,KAHD,MAGO;AACL,WAAKD,SAAL,CAAe0P,kBAAf;AACA,UAAI,KAAK6W,gBAAL,EAAJ,EACE,KAAK9tB,GAAL,CAASyH,IAAT;AAEH;AACF,G;;yBAEDtG,M,qBAAS;AACP,QAAI,CAAC,KAAK4sB,YAAV,EACE;;AAEF,SAAK/tB,GAAL,CAASmI,IAAT,CAAc,KAAK3G,QAAL,EAAd;;AAEA,QAAMwsB,kBAAkB,KAAKruB,OAAL,CAAaimB,MAAb,IAAuB,KAAKjmB,OAAL,CAAaimB,MAAb,CAAoBqI,MAApB,KAA+BhyB,SAA9E;;AAEA,QAAI+xB,eAAJ,EAAqB;AACnB,UAAMrI,YAAY,KAAKhmB,OAAL,CAAaimB,MAAb,CAAoBC,GAApB,IAA2B,KAAKlmB,OAAL,CAAaimB,MAA1D;AACA,WAAK5lB,GAAL,CAAS4a,GAAT,CAAa,EAAE,oBAAoB,SAAS+K,SAAT,GAAqB,GAA3C,EAAb;AACD,KAHD,MAGO,IAAI,KAAKhmB,OAAL,CAAaimB,MAAjB,EAAyB;AAAE,WAAK5lB,GAAL,CAAS4a,GAAT,CAAa,EAAE,cAAc,KAAKjb,OAAL,CAAaimB,MAAb,CAAoBqI,MAApC,EAAb;AAA4D;;AAE9F,SAAK1mB,SAAL,CAAevH,GAAf,CAAmBsY,MAAnB,CAA0B,KAAK3d,EAA/B;AACA,SAAKuzB,YAAL,GAAoB,KAAKluB,GAAL,CAAS2D,IAAT,CAAc,eAAd,CAApB;AACA,SAAKuqB,YAAL,CAAkB5V,MAAlB;AACA,SAAKuV,WAAL,GAAmB,KAAKK,YAAL,CAAkBvqB,IAAlB,CAAuB,KAAvB,CAAnB;AACA,SAAKkqB,WAAL,CAAiBxY,QAAjB,CAA0B,aAA1B;AACA,SAAKwY,WAAL,CAAiBxpB,IAAjB,CAAsB,aAAtB,EAAqC,EAArC;;AAEA,QAAIye,eAAe,KAAKnjB,OAAL,CAAamY,YAAb,IAA6B,KAAKnY,OAAL,CAAamY,YAAb,CAA0BiL,OAA1E;AACA,QAAID,YAAJ,EACE,KAAK9iB,GAAL,CAAS2D,IAAT,CAAc,UAAd,EAA0BiX,GAA1B,CAA8B,MAA9B,EAAsCkI,YAAtC;;AAGF,QAAI,KAAKnjB,OAAL,CAAamY,YAAb,IAA6B,KAAKnY,OAAL,CAAamY,YAAb,CAA0BiL,OAA3D,EAAoE;AAClED,qBAAe,KAAKnjB,OAAL,CAAamY,YAAb,CAA0BiL,OAAzC;AACA,WAAK8K,WAAL,CAAiBjT,GAAjB,CAAqB,OAArB,EAA8BkI,YAA9B;AACD;AACD,SAAK6K,MAAL;AACA,WAAO,IAAP;AACD,G;;;kCA7IH;AACA;AACA;;kBAUqBJ,Y;;;;;;;;ACZrB,oE;;;;;;;ACCA;;AAEA;;AAEA;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA,EAAE;;AAEF,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;AC5CA;AACA;;;AAGA;AACA,sDAAuD,yBAAyB,yBAAyB,kBAAkB,6BAA6B,8BAA8B,oCAAoC,8BAA8B,+BAA+B,gCAAgC,uBAAuB,iBAAiB,gBAAgB,iBAAiB,WAAW,YAAY,2BAA2B,2BAA2B,iCAAiC,iCAAiC,EAAE,2CAA2C,sBAAsB,EAAE,kEAAkE,iBAAiB,EAAE,4DAA4D,kBAAkB,kBAAkB,qBAAqB,oBAAoB,oCAAoC,EAAE,kEAAkE,qBAAqB,EAAE,yEAAyE,qBAAqB,EAAE;;AAEjhC;;;;;;;;;;;;;;ACPA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIA;;;;AACA;;;;;;AALA;AACA;AACA;;IAKqBY,e;;;;wBACR;AAAE,aAAO,kBAAP;AAA2B;;;AACxC,2BAAY5mB,SAAZ,EAAuB;AAAA;;AAAA,+DACrB,4BAAMA,SAAN,CADqB;;AAErB,QAAI,MAAKA,SAAL,CAAe5H,OAAf,CAAuByuB,SAA3B,EAAsC;AACpC,YAAKC,OAAL,GAAe,MAAK9mB,SAAL,CAAe5H,OAAf,CAAuByuB,SAAtC;AACA,YAAKE,WAAL,GAAoB,MAAK/mB,SAAL,CAAe5H,OAAf,CAAuB4uB,aAAxB,GAAyC,MAAKhnB,SAAL,CAAe5H,OAAf,CAAuB4uB,aAAvB,GAAuC,GAAhF,GAAsF,SAAzG;AACA,YAAKC,UAAL,GAAkB,MAAKjnB,SAAL,CAAe5H,OAAf,CAAuB8uB,YAAzC;AACA,YAAKC,cAAL,GAAsBzyB,SAAtB;AACA,YAAK0yB,WAAL;AACD;AARoB;AAStB;;4BAEDA,W,0BAAc;AAAA;;AACZ,QAAI,CAACvxB,OAAOwxB,IAAZ,EAAkB;AAChB,UAAMC,SAASx0B,SAASwvB,aAAT,CAAuB,QAAvB,CAAf;AACAgF,aAAOC,YAAP,CAAoB,MAApB,EAA4B,iBAA5B;AACAD,aAAOC,YAAP,CAAoB,OAApB,EAA6B,OAA7B;AACAD,aAAOC,YAAP,CAAoB,KAApB,EAA2B,kCAA3B;AACAD,aAAOE,MAAP,GAAgB;AAAA,eAAM,OAAK/S,iBAAL,EAAN;AAAA,OAAhB;AACA3hB,eAAS20B,IAAT,CAAcxX,WAAd,CAA0BqX,MAA1B;AACD,KAPD,MAOO;AAAE,WAAK7S,iBAAL;AAA0B;AAEpC,G;;4BAEDA,iB,gCAAoB;AAAA;;AAClB,QAAI,KAAKzU,SAAT,EAAoB;AAClB,WAAK7U,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOtR,eAArC,EAAsD,KAAKiU,OAA3D;AACA,WAAKxX,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO/Q,cAArC,EAAqD,KAAK4T,MAA1D;AACA,WAAK1X,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO9Q,cAArC,EAAqD,KAAK6T,MAA1D;AACA,WAAK5X,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO7Q,eAArC,EAAsD,KAAK2T,OAA3D;AACA,WAAK3X,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO5Q,eAArC,EAAsD,KAAK4T,OAA3D;AACA,WAAK7X,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOlQ,yBAArC,EAAgE,KAAKiiB,WAArE;AACA,WAAK5mB,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOjQ,0BAArC,EAAiE,KAAKq0B,YAAtE;AACA,WAAKj5B,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOrR,eAArC,EAAsD,KAAKuU,OAA3D;AACA,WAAK/X,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO3R,uBAArC,EAA8D,KAAKq5B,iBAAnE;AACA,WAAKv8B,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOpQ,gBAArC,EAAuD,UAAC2b,KAAD;AAAA,eAAW,OAAK8J,eAAL,CAAqB9J,KAArB,CAAX;AAAA,OAAvD;AACA,WAAKpgB,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOtQ,cAArC,EAAqD,UAAC6b,KAAD;AAAA,eAAW,OAAKtI,MAAL,CAAYsI,KAAZ,CAAX;AAAA,OAArD;AACA,WAAKpgB,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO2nB,qBAArC,EAA4D,KAAKC,YAAjE;AACA,WAAKz8B,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO/P,8BAArC,EAAqE,KAAK43B,IAA1E;AACA,WAAK18B,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO1R,iCAArC,EAAwE,KAAKw5B,KAA7E;AACD;AACDC,SAAK7+B,IAAL,CAAU,CAAC,KAAK69B,WAAL,GAAmB,aAApB,EAAmC,KAAKD,OAAxC,CAAV;AACA,QAAI,KAAKG,UAAT,EACEc,KAAK7+B,IAAL,CAAU,CAAC,KAAK69B,WAAL,GAAmB,gBAApB,EAAsC,KAAKE,UAA3C,CAAV;AACH,G;;4BAEDtkB,O,sBAAS;AACP,SAAKzZ,IAAL,CAAU,CAAC,OAAD,EAAU,UAAV,EAAsB,KAAK8W,SAAL,CAAemN,QAAf,CAAwB9lB,IAA9C,CAAV;AACD,G;;4BAEDwb,M,qBAAS;AACP,SAAK3Z,IAAL,CAAU,CAAC,OAAD,EAAU,MAAV,EAAkB,KAAK8W,SAAL,CAAemN,QAAf,CAAwBrW,GAA1C,CAAV;AACD,G;;4BAEDiM,M,qBAAS;AACP,SAAK7Z,IAAL,CAAU,CAAC,OAAD,EAAU,MAAV,EAAkB,KAAK8W,SAAL,CAAemN,QAAf,CAAwBrW,GAA1C,CAAV;AACD,G;;4BAEDkM,O,sBAAU;AACR,SAAK9Z,IAAL,CAAU,CAAC,OAAD,EAAU,OAAV,EAAmB,KAAK8W,SAAL,CAAemN,QAAf,CAAwBrW,GAA3C,CAAV;AACD,G;;4BAEDib,W,0BAAc;AACZ,SAAK7oB,IAAL,CAAU,CAAC,OAAD,EAAU,WAAV,EAAuB,KAAK8W,SAAL,CAAemN,QAAf,CAAwBrW,GAA/C,CAAV;AACD,G;;4BAEDstB,Y,2BAAe;AACb,SAAKl7B,IAAL,CAAU,CAAC,OAAD,EAAU,YAAV,EAAwB,KAAK8W,SAAL,CAAemN,QAAf,CAAwBrW,GAAhD,CAAV;AACD,G;;4BAEDoM,O,sBAAU;AACR,SAAKha,IAAL,CAAU,CAAC,OAAD,EAAU,OAAV,EAAmB,KAAK8W,SAAL,CAAemN,QAAf,CAAwBrW,GAA3C,CAAV;AACD,G;;4BAED+wB,I,iBAAK7T,I,EAAM;AACT,QAAMgU,SAAShU,OAAO,IAAP,GAAa,KAA5B;AACA,QAAIgU,WAAW,KAAKb,cAApB,EAAoC;AAClC,WAAKA,cAAL,GAAsBa,MAAtB;AACA,WAAK9+B,IAAL,CAAU,CAAC,OAAD,EAAU,UAAU8+B,MAApB,EAA4B,KAAKhoB,SAAL,CAAemN,QAAf,CAAwBrW,GAApD,CAAV;AACD;AACF,G;;4BAED4wB,iB,8BAAkBO,a,EAAe;AAC/B,QAAIA,cAAcvsB,IAAd,KAAuB,IAA3B,EACE,KAAKxS,IAAL,CAAU,CAAC,OAAD,EAAU,qBAAqB++B,cAAcvsB,IAA7C,EAAmD,KAAKsE,SAAL,CAAemN,QAAf,CAAwBrW,GAA3E,CAAV;AAEH,G;;4BAEDgxB,K,kBAAM/U,Q,EAAU;AACd,QAAMiV,SAASjV,WAAU,IAAV,GAAgB,KAA/B;AACA,SAAK7pB,IAAL,CAAU,CAAC,aAAD,EAAgB,WAAW8+B,MAA3B,EAAmC,KAAKhoB,SAAL,CAAemN,QAAf,CAAwBrW,GAA3D,CAAV;AACD,G;;4BAEDgM,O,sBAAU;AACR,SAAK5Z,IAAL,CAAU,CAAC,OAAD,EAAU,OAAV,EAAmB,KAAK8W,SAAL,CAAemN,QAAf,CAAwBrW,GAA3C,CAAV;AACD,G;;4BAEDmM,M,qBAAS;AACP,SAAK/Z,IAAL,CAAU,CAAC,OAAD,EAAU,MAAV,EAAkB,KAAK8W,SAAL,CAAemN,QAAf,CAAwBrW,GAA1C,CAAV;AACD,G;;4BAEDue,e,8BAAkB;AAChB,SAAKnsB,IAAL,CAAU,CAAC,aAAD,EAAgB,QAAhB,EAA0B,KAAK8W,SAAL,CAAemN,QAAf,CAAwBrW,GAAlD,CAAV;AACD,G;;4BAED8wB,Y,2BAAe;AACb,SAAK1+B,IAAL,CAAU,CAAC,aAAD,EAAgB,YAAhB,EAA8B,KAAK8W,SAAL,CAAemN,QAAf,CAAwBrW,GAAtD,CAAV;AACD,G;;4BAGD5N,I,iBAAKg/B,K,EAAO;AACV,QAAMC,MAAM,CAAC,KAAKpB,WAAL,GAAmB,aAApB,EAAmCt/B,MAAnC,CAA0CygC,KAA1C,CAAZ;AACAH,SAAK7+B,IAAL,CAAUi/B,GAAV;AACD,G;;;;;kBAlHkBvB,e;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHrB;;;;AACA;;;;AACA;;;;;;IAEqBhlB,kB;;;;wBACR;AAAE,aAAO,gBAAP;AAAyB;;;AAEtC,8BAAY5B,SAAZ,EAAuB;AAAA;AAAA,0DACrB,4BAAMA,SAAN,CADqB;AAEtB;;+BAEDb,U,yBAAa;AACX,SAAKhU,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO3Q,eAArC,EAAsD,KAAK+4B,KAA3D;AACA,SAAKj9B,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOhQ,wBAArC,EAA+D,KAAKiiB,cAApE;AACD,G;;+BAEDmW,K,oBAAQ;AACN,QAAI,KAAKpoB,SAAL,CAAejF,eAAf,OAAqC,mBAASU,IAA9C,IAAsD,KAAKuE,SAAL,CAAeqG,YAAf,EAA1D,EAAyF;AACvF,UAAI,KAAKrG,SAAL,CAAelF,SAAf,EAAJ,EACE,KAAKkF,SAAL,CAAezF,KAAf,GADF,KAGE,KAAKyF,SAAL,CAAe1F,IAAf;AAEH;AACF,G;;+BAED2X,c,6BAAiB;AACf,QAAMoW,iBAAiB,KAAKroB,SAAL,CAAejF,eAAf,OAAqC,mBAASU,IAA9C,IAAsD,KAAKuE,SAAL,CAAeqG,YAAf,EAA7E;AACA,QAAIgiB,mBAAmB,KAAKA,cAA5B,EAA4C;;AAE5C,QAAM/8B,SAAS+8B,iBAAiB,UAAjB,GAA8B,aAA7C;AACA,SAAKroB,SAAL,CAAevH,GAAf,CAAmBnN,MAAnB,EAA2B,iBAA3B;AACA,SAAK+8B,cAAL,GAAsBA,cAAtB;AACD,G;;;+BArCH;AACA;AACA;;kBAMqBzmB,kB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRrB;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;IAEqBC,W;;;;wBACJ;AAAE,aAAO,wCAAP;AAA0B;;;wBAChC;AAAE,aAAO,cAAP;AAAuB;;;wBACvB;AACX,aAAO;AACL,8BAAsB;AADjB,OAAP;AAGD;;;wBACgB;AACf,aAAO;AACL,iBAAS,cADJ;AAEL,6BAAqB;AAFhB,OAAP;AAID;;;AAED,uBAAY5C,IAAZ,EAAkB;AAAA;;AAAA,+DAChB,yBAAMA,IAAN,CADgB;;AAEhB,UAAKgT,cAAL;AAFgB;AAGjB;;wBAED9S,U,yBAAa;AACX,SAAKhU,QAAL,CAAc,KAAK8T,IAAL,CAAUsD,YAAxB,EAAsC,iBAAOvR,6BAA7C,EAA4E,KAAKs3B,gBAAjF;AACA,SAAKn9B,QAAL,CAAc,KAAK8T,IAAL,CAAUsD,YAAxB,EAAsC,iBAAO/R,qBAA7C,EAAoE,KAAKyhB,cAAzE;AACA,SAAK9mB,QAAL,CAAc,KAAK8T,IAAnB,EAAyB,iBAAOhR,mBAAhC,EAAqD,KAAK2L,MAA1D;AACA,QAAI,KAAKqF,IAAL,CAAU8Q,mBAAV,EAAJ,EAAqC;AACnC,WAAK3kB,YAAL,CAAkB,KAAK6T,IAAL,CAAU8Q,mBAAV,EAAlB,EAAmD,iBAAOhhB,oBAA1D,EAAgF,KAAK6K,MAArF;AACA,WAAKzO,QAAL,CAAc,KAAK8T,IAAL,CAAU8Q,mBAAV,EAAd,EAA+C,iBAAOzhB,iCAAtD,EAAyF,KAAKi6B,UAA9F;AACD;AACF,G;;wBAEDD,gB,+BAAmB;AACjB,SAAKv+B,aAAL;AACA,SAAKoV,UAAL;AACD,G;;wBAEDopB,U,uBAAWpV,U,EAAY;AACrB,QAAI,KAAKlU,IAAL,CAAUlE,eAAV,OAAgC,mBAASU,IAA7C,EAAmD;AACnD,SAAKwW,cAAL;AACA,SAAKhT,IAAL,CAAUsD,YAAV,CAAuB9J,GAAvB,CAA2BqV,QAA3B,CAAoC,MAApC;AACA,QAAIqF,UAAJ,EAAgB;AACd,WAAKlU,IAAL,CAAUsD,YAAV,CAAuB9J,GAAvB,CAA2BqV,QAA3B,CAAoC,KAApC;AACA,WAAK7O,IAAL,CAAUsD,YAAV,CAAuB9J,GAAvB,CAA2B2D,IAA3B,CAAgC,kFAAhC,EAAoH8D,IAApH;AACD,KAHD,MAGO;AAAE,WAAKjB,IAAL,CAAUsD,YAAV,CAAuB9J,GAAvB,CAA2BwV,WAA3B,CAAuC,KAAvC;AAA+C;AAEzD,G;;wBAEDma,K,oBAAQ;AACN,QAAM7lB,eAAe,KAAKtD,IAAL,CAAUsD,YAA/B;AACA,QAAMvC,YAAYuC,aAAavC,SAA/B;AACA,QAAI,CAACA,UAAUlF,SAAV,EAAL,EACEkF,UAAU1F,IAAV;;AAEF,QAAIiI,aAAa9J,GAAb,CAAiBqhB,QAAjB,CAA0B,KAA1B,CAAJ,EACE9Z,UAAUvF,IAAV,CAAeuF,UAAUnF,WAAV,EAAf;AAEH,G;;wBAEDoX,c,6BAAiB;AAAA;;AACf,SAAKloB,aAAL;AACA,SAAKkV,IAAL,CAAUsD,YAAV,CAAuB9J,GAAvB,CAA2BwV,WAA3B,CAAuC,MAAvC;AACA,QAAI,KAAKuY,YAAL,EAAJ,EAAyB;AACvB,WAAK5sB,MAAL;AACA,WAAKnB,GAAL,CAAS2vB,KAAT,CAAe;AAAA,eAAM,OAAKA,KAAL,EAAN;AAAA,OAAf;AACD;AACD,SAAKjpB,UAAL;AACD,G;;wBAEDqnB,Y,2BAAe;AACb,QAAMgC,iBAAiB,KAAKvpB,IAAL,CAAU7G,OAAV,CAAkBowB,cAAlB,KAAqC9zB,SAArC,IAAkD,CAAC,CAAC,KAAKuK,IAAL,CAAU7G,OAAV,CAAkBowB,cAA7F;AACA,WAAOA,kBAAkB,KAAKvpB,IAAL,CAAUlE,eAAV,OAAgC,mBAASU,IAAlE;AACD,G;;wBAED7B,M,qBAAS;AACP,SAAKnB,GAAL,CAASmI,IAAT,CAAc,KAAK3G,QAAL,CAAc;AAC1BwuB,YAAM,KAAKxpB,IAAL,CAAU7E,IAAV,CAAeuS,CAAf,CAAiB,MAAjB,CADoB;AAE1B+b,kBAAY,KAAKzpB,IAAL,CAAU7E,IAAV,CAAeuS,CAAf,CAAiB,cAAjB;AAFc,KAAd,CAAd;AAIA,QAAI,KAAK6Z,YAAL,EAAJ,EAAyB;AACvB,WAAKvnB,IAAL,CAAUsD,YAAV,CAAuB9J,GAAvB,CAA2BqV,QAA3B,CAAoC,MAApC;AACA,WAAK7O,IAAL,CAAUsD,YAAV,CAAuBrG,CAAvB,CAAyB,+CAAzB,EAA0E6U,MAA1E,CAAiF,KAAKtY,GAAtF;AACD;AACD,WAAO,IAAP;AACD,G;;;;;kBAlFkBoJ,W;;;;;;;ACPrB,2K;;;;;;;ACCA;;AAEA;;AAEA;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA,EAAE;;AAEF,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;AC5CA;AACA;;;AAGA;AACA,2DAA4D,0BAA0B,gBAAgB,gBAAgB,sBAAsB,oBAAoB,sBAAsB,qBAAqB,EAAE,iDAAiD,sBAAsB,gEAAgE,gCAAgC,EAAE,0DAA0D,sBAAsB,8BAA8B,2BAA2B,mBAAmB,oBAAoB,6BAA6B,4BAA4B,kCAAkC,EAAE,4DAA4D,qBAAqB,EAAE,qEAAqE,iCAAiC,EAAE,mDAAmD,sBAAsB,oBAAoB,oBAAoB,gBAAgB,kBAAkB,oCAAoC,mBAAmB,iBAAiB,mBAAmB,gEAAgE,gCAAgC,gCAAgC,EAAE,4DAA4D,sBAAsB,8BAA8B,2BAA2B,mBAAmB,oBAAoB,6BAA6B,4BAA4B,+BAA+B,EAAE,2DAA2D,mBAAmB,uDAAuD,EAAE,sDAAsD,kBAAkB,EAAE,wDAAwD,mBAAmB,EAAE,0KAA0K,8BAA8B,EAAE,sKAAsK,8BAA8B,EAAE;;AAExmE;;;;;;;;;;;;;;ACPA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;IAEqB8mB,c;;;;wBACR;AAAE,aAAO,iBAAP;AAA0B;;;wBAExB;AAAE,aAAO,kDAAP;AAAyB;;;wBAE7B;AACX,aAAO;AACL,kCAA0B,mBADrB;AAEL,kCAA0B;AAFrB,OAAP;AAID;;;wBAEgB;AACf,aAAO;AACL,iBAAS,aADJ;AAEL,4BAAoB;AAFf,OAAP;AAID;;;AAED,0BAAY1pB,IAAZ,EAAkB;AAAA;;AAAA,+DAChB,yBAAMA,IAAN,CADgB;;AAEhB,QAAM2pB,SAAS3pB,KAAK7G,OAAL,CAAaywB,oBAA5B;AACA,UAAKC,MAAL,GAAcF,UAAUA,OAAOG,KAAjB,GAAyBH,OAAOG,KAAhC,GAAwC,IAAtD;AACA,UAAKC,UAAL,GAAkBJ,UAAUA,OAAOK,SAAjB,GAA6BL,OAAOK,SAApC,GAAgD,WAAlE;AACA,UAAKC,QAAL,GAAgBN,UAAUA,OAAOO,aAAjB,IAAkC,OAAOP,OAAOO,aAAd,KAAgC,UAAlE,GACZP,OAAOO,aADK,GAEZ,iBAAS;AAAE,aAAOtW,MAAMxrB,IAAb;AAAmB,KAFlC;AALgB;AAQjB;;2BAED8X,U,yBAAa;AACX,SAAKhU,QAAL,CAAc,KAAK8T,IAAL,CAAUsD,YAAxB,EAAsC,iBAAOvR,6BAA7C,EAA4E,KAAKs3B,gBAAjF;AACA,SAAKn9B,QAAL,CAAc,KAAK8T,IAAL,CAAUsD,YAAxB,EAAsC,iBAAO/R,qBAA7C,EAAoE,KAAKoJ,MAAzE;AACA,SAAKzO,QAAL,CAAc,KAAK8T,IAAL,CAAUsD,YAAxB,EAAsC,iBAAO5R,iBAA7C,EAAgE,KAAKy4B,eAArE;AACA,SAAKppB,SAAL,GAAiB,KAAKf,IAAL,CAAU8Q,mBAAV,EAAjB;AACA,QAAI,KAAK/P,SAAT,EAAoB;AAClB,WAAK7U,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOnR,4BAArC,EAAmE,KAAKwU,mBAAxE;AACA,WAAKlY,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAOlR,0BAArC,EAAiE,KAAKu6B,iBAAtE;AACA,WAAKl+B,QAAL,CAAc,KAAK6U,SAAnB,EAA8B,iBAAO9Q,cAArC,EAAqD,KAAKo6B,eAA1D;AACD;AACF,G;;2BAEDA,e,8BAAkB;AAChB,SAAKC,WAAL,CAAiB,KAAjB;AACD,G;;2BAEDjB,gB,+BAAmB;AACjB,SAAKiB,WAAL,CAAiB,KAAjB;AACA,SAAKx/B,aAAL;AACA,SAAKoV,UAAL;AACD,G;;2BAEDkE,mB,kCAAsB;AACpB,SAAKmmB,cAAL;AACA,SAAKD,WAAL,CAAiB,IAAjB;AACD,G;;2BAEDF,iB,8BAAkBxW,K,EAAO;AACvB,SAAK4W,4BAAL,CAAkC5W,MAAMzoB,EAAxC;AACD,G;;2BAEDs/B,a,0BAAcne,K,EAAO;AACnB,QAAMnQ,UAAU9I,SAASiZ,MAAMoU,MAAN,CAAagK,OAAb,CAAqBC,QAA9B,EAAwC,EAAxC,CAAhB;AACA,SAAK5pB,SAAL,CAAe0R,qBAAf,GAAuCtW,OAAvC;AACA,SAAKguB,eAAL;AACA7d,UAAMse,eAAN;AACA,WAAO,KAAP;AACD,G;;2BAEDN,W,wBAAYO,K,EAAO;AACjB,QAAMx+B,SAASw+B,QAAQ,UAAR,GAAqB,aAApC;AACA,SAAKrxB,GAAL,CAASnN,MAAT,EAAiB,WAAjB;AACD,G;;2BAEDy+B,iB,gCAAoB;AAClB,SAAKtxB,GAAL,CAAS2D,IAAT,CAAc,IAAd,EAAoB4tB,MAApB;AACD,G;;2BAEDZ,e,8BAAkB;AAChB,SAAK3wB,GAAL,CAAS2D,IAAT,CAAc,IAAd,EAAoB8D,IAApB;AACD,G;;2BAED+pB,kB,+BAAmB7/B,E,EAAI;AACrB,WAAO,KAAKqO,GAAL,CAAS2D,IAAT,CAAc,UAAQ,CAAC8tB,MAAM9/B,EAAN,CAAD,GAAa,sBAAoBA,EAApB,GAAuB,IAApC,GAA2C,EAAnD,CAAd,EAAsE2H,MAAtE,EAAP;AACD,G;;2BAED03B,4B,yCAA6BruB,O,EAAS;AACpC,QAAI,KAAK+uB,QAAL,KAAkB/uB,OAAtB,EAA+B;AAC7B,WAAK6uB,kBAAL,GAA0Bhc,WAA1B,CAAsC,SAAtC;AACA,WAAKgc,kBAAL,CAAwB7uB,OAAxB,EAAiC0S,QAAjC,CAA0C,SAA1C;AACA,UAAMxiB,SAAS8P,UAAU,CAAC,CAAX,GAAe,UAAf,GAA4B,aAA3C;AACA,WAAKgvB,SAAL,CAAe9+B,MAAf,EAAuB,SAAvB;AACA,WAAK6+B,QAAL,GAAgB/uB,OAAhB;AACD;AACF,G;;2BAEDouB,c,6BAAiB;AACf,QAAIvK,SAAS,KAAKjf,SAAL,GAAiB,KAAKA,SAAL,CAAe7E,oBAAhC,GAAuD,EAApE;AACA,SAAK,IAAItT,IAAI,CAAb,EAAgBA,IAAIo3B,OAAOl3B,MAA3B,EAAmCF,GAAnC;AACEo3B,aAAOp3B,CAAP,EAAUu3B,KAAV,GAAkB,KAAK8J,QAAL,CAAcjK,OAAOp3B,CAAP,CAAd,CAAlB;AADF,KAIA,KAAK4Q,GAAL,CAASmI,IAAT,CAAc,KAAK3G,QAAL,CAAc;AAC1BgvB,iBAAW,KAAKD,UADU;AAE1BqB,qBAAe,KAAKprB,IAAL,CAAU7E,IAAV,CAAeuS,CAAf,CAAiB,UAAjB,CAFW;AAG1Boc,aAAO,KAAKD,MAHc;AAI1B7J,cAAQA;AAJkB,KAAd,CAAd;;AAOA,SAAKmL,SAAL,GAAiB,KAAK3xB,GAAL,CAAS2D,IAAT,CAAc,kCAAd,CAAjB;AACA,SAAKguB,SAAL,CAAerZ,MAAf;AACA,SAAKtY,GAAL,CAASsY,MAAT,CAAgB,KAAKrQ,KAArB;AACD,G;;2BAED9G,M,qBAAS;AACP,SAAK4vB,cAAL;;AAEA,QAAMc,cAAc,KAAKrrB,IAAL,CAAUsD,YAAV,CAAuB9J,GAAvB,CAA2B2D,IAA3B,CAAgC,yBAAhC,CAApB;AACA,QAAIkuB,YAAY,CAAZ,CAAJ,EACE,KAAK7xB,GAAL,CAAS8xB,WAAT,CAAqBD,WAArB,EADF,KAGE,KAAKrrB,IAAL,CAAUsD,YAAV,CAAuB9J,GAAvB,CAA2B2D,IAA3B,CAAgC,gDAAhC,EAAkFouB,OAAlF,CAA0F,KAAK/xB,GAA/F;;AAGF,WAAO,IAAP;AACD,G;;;;;kBA5HkBkwB,c;;;;;;;ACPrB,8NAA8N,8mB;;;;;;ACA9N,uLAAuL,gDAAgD,kGAAkG,mBAAmB,OAAO,0GAA0G,c;;;;;;;ACC7c;;AAEA;;AAEA;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA,EAAE;;AAEF,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;AC5CA;AACA;;;AAGA;AACA,yDAA0D,iBAAiB,uBAAuB,kBAAkB,EAAE,8CAA8C,qBAAqB,EAAE,+CAA+C,8BAA8B,EAAE,yDAAyD,uBAAuB,qBAAqB,EAAE,iEAAiE,uBAAuB,4BAA4B,EAAE,yCAAyC,4BAA4B,yBAAyB,mBAAmB,8BAA8B,oBAAoB,gCAAgC,EAAE,uCAAuC,sBAAsB,EAAE,qDAAqD,kCAAkC,qBAAqB,EAAE,2CAA2C,oBAAoB,0BAA0B,uBAAuB,8BAA8B,EAAE,mDAAmD,iCAAiC,uBAAuB,EAAE,uDAAuD,yBAAyB,kCAAkC,EAAE,mDAAmD,oBAAoB,EAAE;;AAEnxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPA;;;;AACA;;;;AACA;;;;AAEA;;;;AACA;;;;;;AAEA,IAAM8B,UAAU,2BAAE,2BAAF,CAAhB;;IAEqB3oB,O;;;;wBACR;AAAE,aAAO,SAAP;AAAkB;;;wBACjB;AAAE,aAAO2oB,OAAP;AAAgB;;;AAEhC,mBAAYxrB,IAAZ,EAAkB;AAAA;;AAAA,+DAChB,uBAAMA,IAAN,CADgB;;AAEhB,UAAKyrB,UAAL,GAAkB,IAAlB;AACA,UAAKvyB,SAAL;AAHgB;AAIjB;;oBAEDA,S,wBAAY;AACV,QAAI,KAAK8G,IAAL,CAAU7G,OAAV,CAAkBuyB,aAAtB,EAAqC;AACnC,UAAI,CAAC,KAAKzrB,OAAV,EAAmB;AACjB,aAAKnV,aAAL,CAAmB,KAAKkV,IAAxB,EAA8B,iBAAOhR,mBAArC;AACA,aAAKmR,MAAL;AACD;AACF,KALD,MAKO,IAAI,KAAKF,OAAT,EAAkB;AACvB,WAAKG,OAAL;AACA,WAAKlU,QAAL,CAAc,KAAK8T,IAAnB,EAAyB,iBAAOhR,mBAAhC,EAAqD,KAAKkK,SAA1D;AACD;AACF,G;;oBAEDgH,U,yBAAa;AACX,SAAKhU,QAAL,CAAc,KAAK8T,IAAnB,EAAyB,iBAAOhR,mBAAhC,EAAqD,KAAKkK,SAA1D;AACA,SAAKhN,QAAL,CAAc,KAAK8T,IAAL,CAAUsD,YAAxB,EAAsC,iBAAOvR,6BAA7C,EAA4E,KAAKs3B,gBAAjF;AACA,QAAI,KAAKrpB,IAAL,CAAUsD,YAAV,CAAuBvC,SAA3B,EACE,KAAKsoB,gBAAL;AAEH,G;;oBAEDA,gB,+BAAmB;AACjB,SAAKoC,UAAL,IAAmB,KAAK3gC,aAAL,CAAmB,KAAK2gC,UAAxB,CAAnB;AACA,SAAKA,UAAL,GAAkB,KAAKzrB,IAAL,CAAUsD,YAAV,CAAuBvC,SAAzC;AACA,SAAK7U,QAAL,CAAc,KAAKu/B,UAAnB,EAA+B,iBAAOz7B,cAAtC,EAAsD,KAAK27B,WAA3D;AACA,SAAKz/B,QAAL,CAAc,KAAKu/B,UAAnB,EAA+B,iBAAOv7B,eAAtC,EAAuD,KAAK07B,YAA5D;AACA,SAAK1/B,QAAL,CAAc,KAAKu/B,UAAnB,EAA+B,iBAAOx7B,cAAtC,EAAsD,KAAK47B,SAA3D;AACA,SAAK3/B,QAAL,CAAc,KAAKu/B,UAAnB,EAA+B,iBAAOt7B,eAAtC,EAAuD,KAAK07B,SAA5D;AACA,SAAK3/B,QAAL,CAAc,KAAKu/B,UAAnB,EAA+B,iBAAO/7B,eAAtC,EAAuD,KAAKm8B,SAA5D;AACA,SAAKA,SAAL;AACD,G;;oBAEDzrB,O,sBAAU;AACR,0BAAMA,OAAN;AACA,SAAKyrB,SAAL;AACD,G;;oBAED5vB,O,sBAAU;AACR,0BAAMA,OAAN;AACA,SAAK4vB,SAAL;AACD,G;;oBAEDC,U,uBAAWC,G,EAAK;AACd,QAAMzH,SAAS,2BAAE,WAAF,CAAf;AACAA,WAAO,CAAP,EAAU7jB,KAAV,GAAkB,EAAlB;AACA6jB,WAAO,CAAP,EAAU5jB,MAAV,GAAmB,EAAnB;AACA,QAAMhX,MAAM46B,OAAO,CAAP,EAAUW,UAAV,CAAqB,IAArB,CAAZ;AACAv7B,QAAIsiC,SAAJ,GAAgB,MAAhB;AACA,QAAMC,IAAI,2BAAEF,GAAF,EAAO5uB,IAAP,CAAY,MAAZ,EAAoBU,IAApB,CAAyB,GAAzB,CAAV;AACA,QAAMquB,OAAO,IAAIC,MAAJ,CAAWF,CAAX,CAAb;AACAviC,QAAI0iC,IAAJ,CAASF,IAAT;AACA,QAAMG,OAAO,2BAAE,8CAAF,CAAb;AACAA,SAAKxuB,IAAL,CAAU,MAAV,EAAkBymB,OAAO,CAAP,EAAUgI,SAAV,CAAoB,WAApB,CAAlB;AACA,WAAOD,IAAP;AACD,G;;oBAEDV,W,0BAAc;AACZ,QAAI,CAAC,KAAKY,QAAV,EACE,KAAKA,QAAL,GAAgB,KAAKT,UAAL,gBAAhB;;AAEF,SAAKU,UAAL,CAAgB,KAAKD,QAArB;AACD,G;;oBAEDX,Y,2BAAe;AACb,QAAI,CAAC,KAAKa,SAAV,EACE,KAAKA,SAAL,GAAiB,KAAKX,UAAL,iBAAjB;;AAEF,SAAKU,UAAL,CAAgB,KAAKC,SAArB;AACD,G;;oBAEDZ,S,wBAAY;AACV,+BAAE,2BAAF,EAA+B5gC,MAA/B;AACA,+BAAE,MAAF,EAAU6mB,MAAV,CAAiB,KAAK0Z,OAAtB;AACD,G;;oBAEDgB,U,uBAAWH,I,EAAM;AACf,QAAIA,IAAJ,EAAU;AACR,iCAAE,2BAAF,EAA+BphC,MAA/B;AACA,iCAAE,MAAF,EAAU6mB,MAAV,CAAiBua,IAAjB;AACD;AACF,G;;;;;kBAzFkBxpB,O;;;;;;;;;;;;;;ACTrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIA;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;IAEqB6pB,Q;;;;wBACR;AAAE,aAAO,WAAP;AAAoB;;;wBAClB;AACb,aAAO,4CAAP;AACD;;;wBACgB;AACf,aAAO;AACL,iBAAS,WADJ;AAEL,0BAAkB;AAFb,OAAP;AAID;;;wBACkB;AAAE,aAAO,KAAK1sB,IAAL,CAAUsD,YAAjB;AAA+B;;;wBACxB;AAAE,aAAO,KAAKA,YAAL,CAAkBvC,SAAzB;AAAoC;;;wBACxC;AAAE,aAAO,KAAK4rB,qBAAL,IAA8B,KAAKA,qBAAL,CAA2B7wB,eAA3B,OAAiD,mBAASU,IAAxF,IAAgG,KAAKmwB,qBAAL,CAA2BvlB,YAA3B,EAAvG;AAAkJ;;;wBAC1J;AAAE,aAAO,KAAKwlB,mBAAL,IAA4B,CAAC,KAAKC,cAAzC;AAAyD;;;wBACvD;AAAE,aAAO,KAAKA,cAAL,IAAuB,KAAKD,mBAAnC;AAAwD;;;AAClF,oBAAY5sB,IAAZ,EAAkB;AAAA;;AAAA,+DAChB,yBAAMA,IAAN,CADgB;;AAEhB,UAAK8sB,mBAAL,GAA2B,KAA3B;AACA,UAAKC,aAAL,GAAqB,IAArB;AACA,UAAKzY,QAAL,GAAgB,IAAhB;AACA,UAAK0Y,iBAAL,GAAyB,IAAzB;AACA,UAAKH,cAAL,GAAsB,CAAC,CAAC,MAAKvpB,YAAL,CAAkBnK,OAAlB,CAA0B0zB,cAAlD;AACA,QAAI,MAAKA,cAAT,EAAyB;AACvB,UAAI,MAAKvpB,YAAL,CAAkBnK,OAAlB,CAA0B8zB,oBAA9B,EACE,MAAKC,wBAAL,GAAgC,IAAIv0B,IAAJ,GAAWw0B,OAAX,KAAuB,IAAIx0B,IAAJ,CAAS,MAAK2K,YAAL,CAAkBnK,OAAlB,CAA0B8zB,oBAAnC,EAAyDE,OAAzD,EAAvD,CADF,KAGE,MAAKD,wBAAL,GAAgC,CAAhC;AACH;AAZe;AAajB;;qBAEDhtB,U,yBAAa;AACX,SAAKhU,QAAL,CAAc,KAAKoX,YAAnB,EAAiC,iBAAO/R,qBAAxC,EAA+D,KAAKoJ,MAApE;AACA,SAAKzO,QAAL,CAAc,KAAKoX,YAAnB,EAAiC,iBAAO3R,8BAAxC,EAAwE,KAAKy7B,QAA7E;AACA,SAAKlhC,QAAL,CAAc,KAAKoX,YAAnB,EAAiC,iBAAO1R,+BAAxC,EAAyE,KAAKy7B,QAA9E;AACA,SAAKnhC,QAAL,CAAc,KAAKoX,YAAnB,EAAiC,iBAAOvR,6BAAxC,EAAuE,KAAKu7B,kBAA5E;AACA,QAAI,KAAKX,qBAAT,EAAgC;AAC9B,WAAKzgC,QAAL,CAAc,KAAKygC,qBAAnB,EAA0C,iBAAOt9B,iCAAjD,EAAoF,KAAK83B,MAAzF;AACA,WAAKj7B,QAAL,CAAc,KAAKygC,qBAAnB,EAA0C,iBAAO78B,oBAAjD,EAAuE,KAAKy9B,cAA5E;AACD;AACF,G;;qBAEDD,kB,iCAAqB;AACnB,SAAKxiC,aAAL;AACA,SAAKoV,UAAL;AACD,G;;qBAEDqtB,c,2BAAe9mB,Y,EAAc;AAC3B,SAAK6N,QAAL,GAAgB7N,aAAaoT,KAA7B;AACA,SAAKmT,iBAAL,GAAyBvmB,aAAaumB,iBAAtC;AACA,SAAK7F,MAAL;AACD,G;;qBAEDiG,Q,qBAAS9gB,K,EAAO;AACd,SAAKwgB,mBAAL,GAA2B,IAA3B;AACA,SAAKU,sBAAL,CAA4BlhB,KAA5B;AACA,SAAK6a,MAAL;AACD,G;;qBAEDkG,Q,uBAAW;AACT,SAAKP,mBAAL,GAA2B,KAA3B;AACA,SAAK3F,MAAL;AACD,G;;qBAEDqG,sB,mCAAuBlhB,K,EAAO;AAC5B,QAAMzR,SAASyR,MAAMuL,KAAN,GAAc,KAAKvU,YAAL,CAAkBwU,iBAAlB,CAAoCjd,MAApC,GAA6C4a,IAA1E;AACA;AACA,SAAKsX,aAAL,GAAqB5V,KAAK4B,GAAL,CAAS,CAAT,EAAY5B,KAAK6B,GAAL,CAASne,SAAO,KAAKyI,YAAL,CAAkBwU,iBAAlB,CAAoCrX,KAApC,EAAhB,EAA6D,CAA7D,CAAZ,CAArB;AACD,G;;qBAEDgtB,W,0BAAc;AACZ,QAAIlL,iBAAJ;AAAA,QAAcmL,6BAAd;AAAA,QAAoCzB,UAApC;AAAA,QAAuCz2B,UAAvC;AACA,QAAI,KAAKm4B,iBAAT,EAA4B;AAC1B,UAAI,KAAKT,wBAAT,EAAmC;AACjCjB,YAAI,IAAItzB,IAAJ,CAAS,IAAIA,IAAJ,GAAWw0B,OAAX,KAAuB,KAAKD,wBAArC,CAAJ;AACA13B,YAAI,IAAImD,IAAJ,CAASszB,CAAT,CAAJ;AACAyB,+BAAuB,CAACl4B,IAAIy2B,EAAE2B,QAAF,CAAW,CAAX,EAAa,CAAb,EAAe,CAAf,EAAiB,CAAjB,CAAL,IAA4B,IAAnD;AACD,OAJD,MAIO,IAAI,KAAKZ,iBAAT,EAA4B;AACjCx3B,YAAI,IAAImD,IAAJ,CAAS,KAAKq0B,iBAAd,CAAJ;AACAf,YAAI,IAAItzB,IAAJ,CAAS,KAAKq0B,iBAAd,CAAJ;AACAf,UAAE2B,QAAF,CAAW,CAAX,EAAa,CAAb,EAAe,CAAf,EAAiB,CAAjB;AACAF,+BAAwB,CAACl4B,EAAE23B,OAAF,KAAclB,EAAEkB,OAAF,EAAf,IAA8B,IAA/B,GAAuC,KAAK7Y,QAAnE;AACD;AACDiO,iBAAYmL,uBAAuB,KAAKpZ,QAA7B,GAA0C,KAAKyY,aAAL,GAAqB,KAAKzY,QAA/E;AACA,UAAIiO,WAAW,CAAf,EACEA,YAAY,KAAZ;AAEH,KAfD,MAeO;AAAEA,iBAAW,KAAKwK,aAAL,GAAqB,KAAKzY,QAArC;AAA+C;;AAExD,WAAO,EAAEiO,kBAAF,EAAYmL,0CAAZ,EAAP;AACD,G;;qBAEDvG,M,qBAAS;AACP,QAAI,CAAC,KAAKxQ,QAAV,EAAoB;AAClB;AACA;AACD;AACD,QAAI,CAAC,KAAKkX,eAAL,EAAL,EAA6B;AAC3B,WAAKr0B,GAAL,CAASyH,IAAT;AACA,WAAKzH,GAAL,CAAS4a,GAAT,CAAa,MAAb,EAAqB,OAArB;AACD,KAHD,MAGO;AACL,UAAMmO,WAAW,KAAKkL,WAAL,EAAjB;AACA,UAAMK,kBAAkB,uBAAWvL,SAASA,QAApB,EAA8B,KAAKoL,iBAAnC,CAAxB;AACA;AACA,UAAIG,oBAAoB,KAAKC,iBAA7B,EAAgD;AAC9C,aAAKC,WAAL,CAAiBvzB,IAAjB,CAAsBqzB,eAAtB;AACA,aAAKC,iBAAL,GAAyBD,eAAzB;AACD;;AAED,UAAI,KAAKG,aAAT,EAAwB;AACtB,aAAKC,WAAL,CAAiBltB,IAAjB;AACA,YAAMmtB,kBAAkB,uBAAW,KAAKtB,cAAL,GAAsBtK,SAASmL,oBAA/B,GAAsD,KAAKpZ,QAAtE,EAAgF,KAAKuY,cAArF,CAAxB;AACA,YAAIsB,oBAAoB,KAAK7T,iBAA7B,EAAgD;AAC9C,eAAK4T,WAAL,CAAiBzzB,IAAjB,CAAsB0zB,eAAtB;AACA,eAAK7T,iBAAL,GAAyB6T,eAAzB;AACD;AACF,OAPD,MAOO;AAAE,aAAKD,WAAL,CAAiBjtB,IAAjB;AAAyB;;AAGlC;AACA,WAAKzH,GAAL,CAASwH,IAAT;AACA,UAAM6V,iBAAiB,KAAKvT,YAAL,CAAkBwU,iBAAlB,CAAoCrX,KAApC,EAAvB;AACA,UAAM2tB,UAAU,KAAK50B,GAAL,CAASiH,KAAT,EAAhB;AACA,UAAI4tB,YAAY,KAAKtB,aAAL,GAAqBlW,cAArC;AACAwX,mBAAaD,UAAU,CAAvB;AACAC,kBAAYlX,KAAK6B,GAAL,CAAS,CAAT,EAAY7B,KAAK4B,GAAL,CAASsV,SAAT,EAAoBxX,iBAAiBuX,OAArC,CAAZ,CAAZ;AACA,WAAK50B,GAAL,CAAS4a,GAAT,CAAa,MAAb,EAAqBia,SAArB;AACD;AACF,G;;qBAEDR,e,8BAAkB;AAChB,WAAO,KAAKlB,qBAAL,IAA8B,KAAKA,qBAAL,CAA2BhzB,QAA3B,CAAoCge,WAAlE,IAAiF,KAAKmV,mBAAtF,IAA6G,KAAKC,aAAL,KAAuB,IAApI,IAA4I,KAAKzY,QAAL,KAAkB,IAArK;AACD,G;;qBAED3Z,M,qBAAS;AACP,SAAKgc,QAAL,GAAgB,IAAhB;AACA,SAAK2D,iBAAL,GAAyB,IAAzB;AACA,SAAKyT,iBAAL,GAAyB,IAAzB;AACA,SAAKv0B,GAAL,CAASmI,IAAT,CAAc,KAAK3G,QAAL,EAAd;AACA,SAAKxB,GAAL,CAASyH,IAAT;AACA,SAAKqC,YAAL,CAAkB9J,GAAlB,CAAsBsY,MAAtB,CAA6B,KAAK3d,EAAlC;AACA,SAAK65B,WAAL,GAAmB,KAAKx0B,GAAL,CAAS2D,IAAT,CAAc,kBAAd,CAAnB;AACA,SAAK+wB,WAAL,GAAmB,KAAK10B,GAAL,CAAS2D,IAAT,CAAc,iBAAd,CAAnB;AACA,SAAK+wB,WAAL,CAAiBjtB,IAAjB;AACA,SAAKkmB,MAAL;AACD,G;;;6BA9JH;AACA;AACA;;kBAWqBuF,Q;;;;;;;ACbrB,+E;;;;;;;ACCA;;AAEA;;AAEA;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA,EAAE;;AAEF,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;AC5CA;AACA;;;AAGA;AACA,qDAAsD,uBAAuB,wBAAwB,iBAAiB,sBAAsB,iBAAiB,gBAAgB,iBAAiB,yCAAyC,kBAAkB,kCAAkC,EAAE,uDAAuD,iBAAiB,EAAE,iDAAiD,4BAA4B,mBAAmB,sBAAsB,wBAAwB,yBAAyB,0BAA0B,EAAE,gDAAgD,4BAA4B,sCAAsC,sBAAsB,yBAAyB,0BAA0B,EAAE,yDAAyD,uBAAuB,0BAA0B,EAAE;;AAEn1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPA;;;;AAEA;;;;;;IAEqB4B,a;;;;;;;;0BAGnBpuB,U,yBAAa;AACX,SAAKhU,QAAL,CAAc,KAAK8T,IAAnB,EAAyB,iBAAOjR,uBAAhC,EAAyD,KAAKw/B,mBAA9D;AACD,G;;0BAEDA,mB,kCAAsB;AACpB,QAAMC,mBAAmB,KAAKxuB,IAAL,CAAU6N,UAAV,CAAqB7hB,MAArB,CAA4B;AAAA,aAAa+U,UAAUmN,QAAV,CAAmB9lB,IAAnB,KAA4B,OAAzC;AAAA,KAA5B,EAA8E,CAA9E,KAAoF,KAAK4X,IAAL,CAAU6N,UAAV,CAAqB,CAArB,CAA7G;AACA,QAAI2gB,gBAAJ,EAAsB;AACpB,WAAKxuB,IAAL,CAAU6N,UAAV,CAAqBzhB,OAArB,CAA6B,UAAC2U,SAAD,EAAe;AAC1C,YAAIA,cAAcytB,gBAAlB,EACEztB,UAAU9E,OAAV;AAEH,OAJD;AAKD;AACF,G;;;;wBAfU;AAAE,aAAO,SAAP;AAAkB;;;;;kBADZqyB,a;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJrB;;;;AACA;;;;AACA;;;;IAEqBG,Q;;;;;;;;qBAEnBvuB,U,yBAAa;AACX,SAAKhU,QAAL,CAAc,KAAK8T,IAAL,CAAUsD,YAAxB,EAAsC,iBAAOvR,6BAA7C,EAA4E,KAAKs3B,gBAAjF;AACA,QAAMtoB,YAAY,KAAKf,IAAL,CAAU8Q,mBAAV,EAAlB;AACA,QAAI/P,SAAJ,EAAe;AACb,WAAK7U,QAAL,CAAc6U,SAAd,EAAyB,iBAAO5Q,eAAhC,EAAiD,KAAKoT,KAAtD;AACA,WAAKrX,QAAL,CAAc6U,SAAd,EAAyB,iBAAO9Q,cAAhC,EAAgD,KAAKsT,KAArD;AACD;AACF,G;;qBAED8lB,gB,+BAAmB;AACjB,SAAKv+B,aAAL;AACA,SAAKoV,UAAL;AACD,G;;qBAEDqD,K,oBAAQ;AACN,QAAMmrB,YAAY,OAAQ,KAAK1uB,IAAL,CAAU7G,OAAV,CAAkBw1B,mBAA1B,KAAmD,WAAnD,IAAkE,KAAK3uB,IAAL,CAAU7G,OAAV,CAAkBw1B,mBAAtG;AACA,QAAID,aAAa,kBAAW96B,YAAX,EAAjB,EACE,KAAKoM,IAAL,CAAUoR,gBAAV;AAEH,G;;;;wBApBU;AAAE,aAAO,WAAP;AAAoB;;;;;kBADdqd,Q;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJrB;;AACA;;;;AACA;;;;;;AAEA;;;;;;;IAOqBG,O;;;;wBACR;AAAE,aAAO,SAAP;AAAkB;;;AAE/B,mBAAY5uB,IAAZ,EAAkB;AAAA;;AAAA,+DAChB,uBAAMA,IAAN,CADgB;;AAEhB,UAAK6uB,mBAAL;AAFgB;AAGjB;AACD;;;;;;;;oBAMAnhB,C,cAAEplB,G,EAAK;AACL,QAAM83B,OAAO,KAAK0O,SAAL,EAAb;AACA,QAAM3zB,OAAOilB,QAAQ,KAAK2O,SAAL,CAAe3O,IAAf,CAAR,IAAgC,KAAK2O,SAAL,CAAe,IAAf,CAA7C;AACA,WAAO5zB,KAAK7S,GAAL,KAAaA,GAApB;AACD,G;;oBAEDwmC,S,wBAAY;AAAE,WAAO,KAAK9uB,IAAL,CAAU7G,OAAV,CAAkBV,QAAlB,IAA8B,gCAArC;AAA2D,G;;oBAEzEo2B,mB,kCAAsB;AACpB,QAAMG,kBAAkB;AACtB,YAAM;AACJ,gBAAQ,MADJ;AAEJ,wBAAgB,cAFZ;AAGJ,oBAAY,UAHR;AAIJ,kCAA0B;AAJtB,OADgB;AAOtB,YAAM;AACJ,gBAAQ,SADJ;AAEJ,wBAAgB,uBAFZ;AAGJ,oBAAY,YAHR;AAIJ,kCAA0B;AAJtB,OAPgB;AAatB,YAAM;AACJ,gBAAQ,MADJ;AAEJ,wBAAgB,gBAFZ;AAGJ,oBAAY,eAHR;AAIJ,kCAA0B;AAJtB,OAbgB;AAmBtB,YAAM;AACJ,gBAAQ,aADJ;AAEJ,wBAAgB,iBAFZ;AAGJ,oBAAY,WAHR;AAIJ,kCAA0B;AAJtB,OAnBgB;AAyBtB,YAAM;AACJ,gBAAQ,WADJ;AAEJ,oBAAY,WAFR;AAGJ,wBAAgB,kBAHZ;AAIJ,kCAA0B;AAJtB,OAzBgB;AA+BtB,YAAM;AACJ,gBAAQ,OADJ;AAEJ,wBAAgB,kBAFZ;AAGJ,oBAAY,SAHR;AAIJ,kCAA0B;AAJtB,OA/BgB;AAqCtB,YAAM;AACJ,gBAAQ,cADJ;AAEJ,wBAAgB,4BAFZ;AAGJ,oBAAY,UAHR;AAIJ,kCAA0B;AAJtB;AArCgB,KAAxB;;AA6CA,SAAKD,SAAL,GAAiB,sBAAE78B,MAAF,CAAS,IAAT,EAAe88B,eAAf,EAAgC,KAAKhvB,IAAL,CAAU7G,OAAV,CAAkB81B,OAAlB,IAA6B,EAA7D,CAAjB;AACA,SAAKF,SAAL,CAAe,OAAf,IAA0B,KAAKA,SAAL,CAAe,IAAf,CAA1B;AACA,SAAKA,SAAL,CAAe,OAAf,IAA0B,KAAKA,SAAL,CAAe,IAAf,CAA1B;AACA,SAAKA,SAAL,CAAe,QAAf,IAA2B,KAAKA,SAAL,CAAe,IAAf,CAA3B;AACA,SAAKA,SAAL,CAAe,OAAf,IAA0B,KAAKA,SAAL,CAAe,IAAf,CAA1B;AACA,SAAKA,SAAL,CAAe,OAAf,IAA0B,KAAKA,SAAL,CAAe,IAAf,CAA1B;AACA,SAAKA,SAAL,CAAe,OAAf,IAA0B,KAAKA,SAAL,CAAe,IAAf,CAA1B;AACD,G;;;;;kBA1EkBH,O","file":"clappr.plainhtml5.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})(typeof self !== 'undefined' ? self : 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 = 91);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap fe0093aec46dab8ad504","\"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 (in seconds)\n * @param {Number} [progress.total]\n * total time (in seconds)\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 (in seconds)\n * @param {Number} [progress.total]\n * total time (in seconds)\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 seeking.\n *\n * @event PLAYBACK_SEEK\n */\nEvents.PLAYBACK_SEEK = 'playback:seek'\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 (in seconds)\n * @param {Number} [progress.total]\n * total time (in seconds)\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 * Fired when the options were changed for the mediacontrol\n *\n * @event MEDIACONTROL_OPTIONS_CHANGE\n */\nEvents.MEDIACONTROL_OPTIONS_CHANGE = 'mediacontrol:options:change'\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\nexport function 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></$2>\")\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\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/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 $('<div>').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","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_core.js\n// module id = 8\n// module chunks = 0","/*\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 getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && 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[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\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 <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertInto + \" \" + options.insertAt.before);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\toptions.attrs.type = \"text/css\";\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\toptions.attrs.type = \"text/css\";\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = options.transform(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/style-loader/lib/addStyles.js\n// module id = 9\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","var store = require('./_shared')('wks')\n , uid = require('./_uid')\n , Symbol = require('./_global').Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_wks.js\n// module id = 11\n// module chunks = 0","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 get isAdaptive() {\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","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-iobject.js\n// module id = 13\n// module chunks = 0","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_global.js\n// module id = 14\n// module chunks = 0","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dp.js\n// module id = 15\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 { uniqueId } from './utils'\nimport Events from './events'\n\n/**\n * @class BaseObject\n * @constructor\n * @extends Events\n * @module base\n */\nexport default class BaseObject extends Events {\n /**\n * returns the object options\n * @property options\n * @type Object\n */\n get options() { return this._options }\n\n /**\n * @method constructor\n * @param {Object} options\n */\n constructor(options={}) {\n super(options)\n this._options = options\n this.uniqueId = uniqueId('o')\n }\n /**\n * a unique id prefixed with `'o'`, `o1, o232`\n *\n * @property uniqueId\n * @type String\n */\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/base_object.js","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_has.js\n// module id = 17\n// module chunks = 0","var global = require('./_global')\n , core = require('./_core')\n , ctx = require('./_ctx')\n , hide = require('./_hide')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE]\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(a, b, c){\n if(this instanceof C){\n switch(arguments.length){\n case 0: return new C;\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if(IS_PROTO){\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_export.js\n// module id = 18\n// module chunks = 0","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_descriptors.js\n// module id = 19\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 $ from 'clappr-zepto'\nimport { uniqueId, DomRecycler } from './utils'\nimport BaseObject from './base_object'\n\nconst delegateEventSplitter = /^(\\S+)\\s*(.*)$/\n\n/**\n * A base class to create ui object.\n * @class UIObject\n * @constructor\n * @extends BaseObject\n * @module base\n */\nexport default class UIObject extends BaseObject {\n /**\n * a unique id prefixed with `'c'`, `c1, c232`\n *\n * @property cid\n * @type String\n */\n /**\n * the dom element itself\n *\n * @property el\n * @type HTMLElement\n */\n /**\n * the dom element wrapped by `$`\n *\n * @property $el\n * @type HTMLElement\n */\n\n /**\n * gets the tag name for the ui component\n * @method tagName\n * @default div\n * @return {String} tag's name\n */\n get tagName() { return 'div' }\n /**\n * a literal object mapping element's events to methods\n * @property events\n * @type Object\n * @example\n *\n *```javascript\n *\n * class MyButton extends UIObject {\n * constructor(options) {\n * super(options)\n * this.myId = 0\n * }\n * get events() { return { 'click': 'myClick' } }\n * myClick(){ this.myId = 42 }\n * }\n *\n * // when you click on MyButton the method `myClick` will be called\n *```\n */\n get events() { return {} }\n /**\n * a literal object mapping attributes and values to the element\n * element's attribute name and the value the attribute value\n * @property attributes\n * @type Object\n * @example\n *\n *```javascript\n *\n * class MyButton extends UIObject {\n * constructor(options) { super(options) }\n * get attributes() { return { class: 'my-button'} }\n * }\n *\n * // MyButton.el.className will be 'my-button'\n * ```\n */\n get attributes() { return {} }\n\n /**\n * it builds an ui component by:\n * * creating an id for the component `cid`\n * * making sure the element is created `$el`\n * * delegating all `events` to the element\n * @method constructor\n * @param {Object} options the options object\n */\n constructor(options) {\n super(options)\n this.cid = uniqueId('c')\n this._ensureElement()\n this.delegateEvents()\n }\n\n /**\n * selects within the component.\n * @method $\n * @param {String} selector a selector to find within the component.\n * @return {HTMLElement} an element, if it exists.\n * @example\n * ```javascript\n * fullScreenBarUIComponent.$('.button-full') //will return only `.button-full` within the component\n * ```\n */\n $(selector) {\n return this.$el.find(selector)\n }\n\n /**\n * render the component, usually attach it to a real existent `element`\n * @method render\n * @return {UIObject} itself\n */\n render() {\n return this\n }\n\n /**\n * removes the ui component from DOM\n * @method remove\n * @return {UIObject} itself\n */\n remove() {\n this.$el.remove()\n this.stopListening()\n this.undelegateEvents()\n return this\n }\n\n /**\n * set element to `el` and `$el`\n * @method setElement\n * @param {HTMLElement} element\n * @param {Boolean} delegate whether is delegate or not\n * @return {UIObject} itself\n */\n setElement(element, delegate) {\n if (this.$el) this.undelegateEvents()\n this.$el = $.zepto.isZ(element) ? element : $(element)\n this.el = this.$el[0]\n if (delegate !== false) this.delegateEvents()\n return this\n }\n\n /**\n * delegates all the original `events` on `element` to its callbacks\n * @method delegateEvents\n * @param {Object} events\n * @return {UIObject} itself\n */\n delegateEvents(events) {\n if (!(events || (events = this.events))) return this\n this.undelegateEvents()\n for (const key in events) {\n let method = events[key]\n if ((method && method.constructor !== Function)) method = this[events[key]]\n if (!method) continue\n\n const match = key.match(delegateEventSplitter)\n let eventName = match[1], selector = match[2]\n eventName += '.delegateEvents' + this.cid\n if (selector === '')\n this.$el.on(eventName, method.bind(this))\n else\n this.$el.on(eventName, selector, method.bind(this))\n\n }\n return this\n }\n\n /**\n * undelegats all the `events`\n * @method undelegateEvents\n * @return {UIObject} itself\n */\n undelegateEvents() {\n this.$el.off('.delegateEvents' + this.cid)\n return this\n }\n\n /**\n * ensures the creation of this ui component\n * @method _ensureElement\n * @private\n */\n _ensureElement() {\n if (!this.el) {\n const attrs = $.extend({}, this.attributes)\n if (this.id) attrs.id = this.id\n if (this.className) attrs['class'] = this.className\n const $el = DomRecycler.create(this.tagName).attr(attrs)\n this.setElement($el, false)\n } else { this.setElement(this.el, false) }\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/ui_object.js","module.exports = void 0\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/void.js","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_hide.js\n// module id = 22\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_an-object.js\n// module id = 23\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\nconst Browser = {}\n\nconst hasLocalstorage = function(){\n try {\n localStorage.setItem('clappr', 'clappr')\n localStorage.removeItem('clappr')\n return true\n } catch(e) {\n return false\n }\n}\n\nconst hasFlash = function() {\n try {\n const fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash')\n return !!fo\n } catch (e) {\n return !!(navigator.mimeTypes && navigator.mimeTypes['application/x-shockwave-flash'] !== undefined &&\n navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin)\n }\n}\n\nexport const getBrowserInfo = function(ua) {\n let parts = ua.match(/\\b(playstation 4|nx|opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [],\n extra\n if (/trident/i.test(parts[1])) {\n extra = /\\brv[ :]+(\\d+)/g.exec(ua) || []\n return { name: 'IE', version: parseInt(extra[1] || '') }\n } else if (parts[1] === 'Chrome') {\n extra = ua.match(/\\bOPR\\/(\\d+)/)\n if (extra != null)\n return { name: 'Opera', version: parseInt(extra[1]) }\n\n extra = ua.match(/\\bEdge\\/(\\d+)/)\n if (extra != null)\n return { name: 'Edge', version: parseInt(extra[1]) }\n\n } else if (/android/i.test(ua) && (extra = ua.match(/version\\/(\\d+)/i))) {\n parts.splice(1, 1, 'Android WebView')\n parts.splice(2, 1, extra[1])\n }\n parts = parts[2] ? [parts[1], parts[2]] : [navigator.appName, navigator.appVersion, '-?']\n\n return { name: parts[0], version: parseInt(parts[1]) }\n}\n\nconst browserInfo = getBrowserInfo(navigator.userAgent)\n\nBrowser.isEdge = /edge/i.test(navigator.userAgent)\nBrowser.isChrome = /chrome|CriOS/i.test(navigator.userAgent) && !Browser.isEdge\nBrowser.isSafari = /safari/i.test(navigator.userAgent) && !Browser.isChrome && !Browser.isEdge\nBrowser.isFirefox = /firefox/i.test(navigator.userAgent)\nBrowser.isLegacyIE = !!(window.ActiveXObject)\nBrowser.isIE = Browser.isLegacyIE || /trident.*rv:1\\d/i.test(navigator.userAgent)\nBrowser.isIE11 = /trident.*rv:11/i.test(navigator.userAgent)\nBrowser.isChromecast = Browser.isChrome && /CrKey/i.test(navigator.userAgent)\nBrowser.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone|IEMobile|Mobile Safari|Opera Mini/i.test(navigator.userAgent)\nBrowser.isiOS = /iPad|iPhone|iPod/i.test(navigator.userAgent)\nBrowser.isAndroid = /Android/i.test(navigator.userAgent)\nBrowser.isWindowsPhone = /Windows Phone/i.test(navigator.userAgent)\nBrowser.isWin8App = /MSAppHost/i.test(navigator.userAgent)\nBrowser.isWiiU = /WiiU/i.test(navigator.userAgent)\nBrowser.isPS4 = /PlayStation 4/i.test(navigator.userAgent)\nBrowser.hasLocalstorage = hasLocalstorage()\nBrowser.hasFlash = hasFlash()\n\nBrowser.name = browserInfo.name\nBrowser.version = browserInfo.version\n\nexport default Browser\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/browser.js","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-keys.js\n// module id = 25\n// module chunks = 0","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-object.js\n// module id = 26\n// module chunks = 0","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_fails.js\n// module id = 27\n// module chunks = 0","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_property-desc.js\n// module id = 28\n// module chunks = 0","module.exports = {};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iterators.js\n// module id = 29\n// module chunks = 0","import { extend } from './utils'\nimport BaseObject from './base_object'\n\nexport default class CorePlugin extends BaseObject {\n constructor(core) {\n super(core.options)\n this.core = core\n this.enabled = true\n this.bindEvents()\n }\n\n bindEvents() {}\n\n enable() {\n if (!this.enabled) {\n this.bindEvents()\n this.enabled = true\n }\n }\n\n disable() {\n if (this.enabled) {\n this.stopListening()\n this.enabled = false\n }\n }\n\n getExternalInterface() { return {} }\n\n destroy() {\n this.stopListening()\n }\n}\n\nCorePlugin.extend = function(properties) {\n return extend(CorePlugin, properties)\n}\n\nCorePlugin.type = 'core'\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/core_plugin.js","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_uid.js\n// module id = 31\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/typeof.js\n// module id = 32\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\nclass PlayerInfo {\n constructor() {\n this.options = {}\n this.playbackPlugins = []\n this.currentSize = { width: 0, height: 0 }\n }\n}\n\nPlayerInfo._players = {}\n\nPlayerInfo.getInstance = (playerId) => {\n return PlayerInfo._players[playerId] || (PlayerInfo._players[playerId] = new PlayerInfo())\n}\n\nexport default PlayerInfo\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/player_info.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 { extend } from './utils'\n\nimport UIObject from './ui_object'\n\n/**\n * The base class for an ui container plugin\n * @class UIContainerPlugin\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class UIContainerPlugin extends UIObject {\n constructor(container) {\n super(container.options)\n this.container = container\n this.enabled = true\n this.bindEvents()\n }\n\n enable() {\n if (!this.enabled) {\n this.bindEvents()\n this.$el.show()\n this.enabled = true\n }\n }\n\n disable() {\n this.stopListening()\n this.$el.hide()\n this.enabled = false\n }\n\n bindEvents() {}\n\n destroy() {\n this.remove()\n }\n}\n\nUIContainerPlugin.extend = function(properties) {\n return extend(UIContainerPlugin, properties)\n}\n\nUIContainerPlugin.type = 'container'\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/ui_container_plugin.js","import BaseObject from './base_object'\nimport { extend } from './utils'\n\n/**\n * The base class for a container plugin\n * @class ContainerPlugin\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class ContainerPlugin extends BaseObject {\n constructor(container) {\n super(container.options)\n this.container = container\n this.enabled = true\n this.bindEvents()\n }\n\n enable() {\n if (!this.enabled) {\n this.bindEvents()\n this.enabled = true\n }\n }\n\n disable() {\n if (this.enabled) {\n this.stopListening()\n this.enabled = false\n }\n }\n\n bindEvents() {}\n\n destroy() {\n this.stopListening()\n }\n}\n\nContainerPlugin.extend = function(properties) {\n return extend(ContainerPlugin, properties)\n}\n\nContainerPlugin.type = 'container'\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/container_plugin.js","import { extend } from './utils'\nimport UIObject from './ui_object'\n\nexport default class UICorePlugin extends UIObject {\n constructor(core) {\n super(core.options)\n this.core = core\n this.enabled = true\n this.bindEvents()\n this.render()\n }\n\n bindEvents() {}\n\n getExternalInterface() { return {} }\n\n enable() {\n if (!this.enabled) {\n this.bindEvents()\n this.$el.show()\n this.enabled = true\n }\n }\n\n disable() {\n this.stopListening()\n this.$el.hide()\n this.enabled = false\n }\n\n destroy() {\n this.remove()\n }\n\n render() {\n return this\n }\n}\n\nUICorePlugin.extend = function(properties) {\n return extend(UICorePlugin, properties)\n}\n\nUICorePlugin.type = 'core'\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/ui_core_plugin.js","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/keys.js\n// module id = 37\n// module chunks = 0","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-object.js\n// module id = 38\n// module chunks = 0","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_defined.js\n// module id = 39\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_cof.js\n// module id = 40\n// module chunks = 0","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-integer.js\n// module id = 41\n// module chunks = 0","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_shared-key.js\n// module id = 42\n// module chunks = 0","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_shared.js\n// module id = 43\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_enum-bug-keys.js\n// module id = 44\n// module chunks = 0","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_ctx.js\n// module id = 45\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-primitive.js\n// module id = 46\n// module chunks = 0","module.exports = true;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_library.js\n// module id = 47\n// module chunks = 0","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object')\n , dPs = require('./_object-dps')\n , enumBugKeys = require('./_enum-bug-keys')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , Empty = function(){ /* empty */ }\n , PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function(){\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe')\n , i = enumBugKeys.length\n , lt = '<'\n , gt = '>'\n , iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties){\n var result;\n if(O !== null){\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty;\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-create.js\n// module id = 48\n// module chunks = 0","var def = require('./_object-dp').f\n , has = require('./_has')\n , TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-to-string-tag.js\n// module id = 49\n// module chunks = 0","exports.f = require('./_wks');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_wks-ext.js\n// module id = 50\n// module chunks = 0","var global = require('./_global')\n , core = require('./_core')\n , LIBRARY = require('./_library')\n , wksExt = require('./_wks-ext')\n , defineProperty = require('./_object-dp').f;\nmodule.exports = function(name){\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_wks-define.js\n// module id = 51\n// module chunks = 0","exports.f = {}.propertyIsEnumerable;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-pie.js\n// module id = 52\n// module chunks = 0","var pIE = require('./_object-pie')\n , createDesc = require('./_property-desc')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , has = require('./_has')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P){\n O = toIObject(O);\n P = toPrimitive(P, true);\n if(IE8_DOM_DEFINE)try {\n return gOPD(O, P);\n } catch(e){ /* empty */ }\n if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopd.js\n// module id = 53\n// module chunks = 0","import Kibo from './kibo'\n\nexport default { Kibo }\n\n\n\n// WEBPACK FOOTER //\n// ./src/vendor/index.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/node-libs-browser/node_modules/process/browser.js\n// module id = 55\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 * The mediator is a singleton for handling global events.\n */\n\nimport Events from '../base/events'\n\nconst events = new Events()\n\nexport default class Mediator {\n}\n\nMediator.on = function(name, callback, context) {\n events.on(name, callback, context)\n return\n}\n\nMediator.once = function(name, callback, context) {\n events.once(name, callback, context)\n return\n}\n\nMediator.off = function(name, callback, context) {\n events.off(name, callback, context)\n return\n}\n\nMediator.trigger = function(name, ...opts) {\n events.trigger.apply(events, [name, ...opts])\n return\n}\n\nMediator.stopListening = function(obj, name, callback) {\n events.stopListening(obj, name, callback)\n return\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/mediator.js","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill=\\\"#010101\\\" d=\\\"M1.425.35L14.575 8l-13.15 7.65V.35z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/01-play.svg\n// module id = 57\n// module chunks = 0","import HTML5Video from './html5_video'\nexport default HTML5Video\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html5_video/index.js","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-keys-internal.js\n// module id = 59\n// module chunks = 0","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-length.js\n// module id = 60\n// module chunks = 0","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n , core = require('./_core')\n , fails = require('./_fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-sap.js\n// module id = 61\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_ie8-dom-define.js\n// module id = 62\n// module chunks = 0","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_dom-create.js\n// module id = 63\n// module chunks = 0","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function(iterated){\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , index = this._i\n , point;\n if(index >= O.length)return {value: undefined, done: true};\n point = $at(O, index);\n this._i += point.length;\n return {value: point, done: false};\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.string.iterator.js\n// module id = 64\n// module chunks = 0","'use strict';\nvar LIBRARY = require('./_library')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , hide = require('./_hide')\n , has = require('./_has')\n , Iterators = require('./_iterators')\n , $iterCreate = require('./_iter-create')\n , setToStringTag = require('./_set-to-string-tag')\n , getPrototypeOf = require('./_object-gpo')\n , ITERATOR = require('./_wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined\n , $anyNative = NAME == 'Array' ? proto.entries || $native : $native\n , methods, key, IteratorPrototype;\n // Fix native\n if($anyNative){\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base));\n if(IteratorPrototype !== Object.prototype){\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-define.js\n// module id = 65\n// module chunks = 0","module.exports = require('./_hide');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_redefine.js\n// module id = 66\n// module chunks = 0","exports.f = Object.getOwnPropertySymbols;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gops.js\n// module id = 67\n// module chunks = 0","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal')\n , hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){\n return $keys(O, hiddenKeys);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn.js\n// module id = 68\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/define-property.js\n// module id = 69\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/create.js\n// module id = 70\n// module chunks = 0","import Log from './log'\nexport default Log\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/log/index.js","import Core from './core'\nexport default Core\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core/index.js","import Container from './container'\nexport default Container\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container/index.js","import MediaControl from './media_control'\nexport default MediaControl\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/media_control/index.js","module.exports = function escape(url) {\n if (typeof url !== 'string') {\n return url\n }\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]/.test(url)) {\n return '\"' + url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n') + '\"'\n }\n\n return url\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader/lib/url/escape.js\n// module id = 75\n// module chunks = 0","module.exports = \"<%=baseUrl%>/a8c874b93b3d848f39a71260c57e3863.cur\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/media_control/public/closed-hand.cur\n// module id = 76\n// module chunks = 0","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#010101\\\" d=\\\"M1.712 14.76H6.43V1.24H1.71v13.52zm7.86-13.52v13.52h4.716V1.24H9.573z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/02-pause.svg\n// module id = 77\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 $ from 'clappr-zepto'\nimport template from './template'\n\nconst Styler = {\n getStyleFor: function(style, options={ baseUrl: '' }) {\n return $('<style class=\"clappr-style\"></style>').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","\"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","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 = 81\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 SpinnerThreeBouncePlugin from './spinner_three_bounce'\nexport default SpinnerThreeBouncePlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/spinner_three_bounce/index.js","import WaterMarkPlugin from './watermark'\nexport default WaterMarkPlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/watermark/index.js","import PosterPlugin from './poster'\nexport default PosterPlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/poster/index.js","import ClickToPausePlugin from './click_to_pause'\nexport default ClickToPausePlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/click_to_pause/index.js","import DVRControls from './dvr_controls'\nexport default DVRControls\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/dvr_controls/index.js","import Favicon from './favicon.js'\nexport default Favicon\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/favicon/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 ClickToPausePlugin from './plugins/click_to_pause'\nimport DVRControls from './plugins/dvr_controls'\nimport Favicon from './plugins/favicon'\nimport Log from './plugins/log'\nimport Poster from './plugins/poster'\nimport SpinnerThreeBouncePlugin from './plugins/spinner_three_bounce'\nimport WaterMarkPlugin from './plugins/watermark'\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 ClickToPausePlugin,\n DVRControls,\n Favicon,\n Log,\n Poster,\n SpinnerThreeBouncePlugin,\n WaterMarkPlugin,\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 * <head>\n * <script type=\"text/javascript\" src=\"http://cdn.clappr.io/latest/clappr.min.js\"></script>\n * </head>\n * ```\n * Now, create the player:\n * ```html\n * <body>\n * <div id=\"player\"></div>\n * <script>\n * var player = new Clappr.Player({source: \"http://your.video/here.mp4\", parentId: \"#player\"});\n * </script>\n * </body>\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 * @typedef {Object} PlaybackConfig\n * @prop {boolean} disableContextMenu\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @prop {boolean} preload\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @prop {boolean} controls\n * enabled/disables displaying controls\n * @prop {boolean} crossOrigin\n * enables cross-origin capability for media-resources\n * @prop {boolean} playInline\n * enables in-line video elements\n * @prop {boolean} audioOnly\n * enforce audio-only playback (when possible)\n * @prop {Object} externalTracks\n * pass externaly loaded track to playback\n * @prop {Number} [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 * @prop {Number} [maxBackBufferLength]\n * After how much distance of the playhead data should be pruned from the buffer (influences memory consumption\n * of adaptive media-engines like Hls.js or Shaka)\n * @prop {Number} [minBufferLength]\n * After how much data in the buffer at least we attempt to consume it (influences QoS-related behavior\n * of adaptive media-engines like Hls.js or Shaka). If this is too low, and the available bandwidth is varying a lot\n * and too close to the streamed bitrate, we may continuously hit under-runs.\n * @prop {Number} [initialBandwidthEstimate]\n * define an initial bandwidth \"guess\" (or previously stored/established value) for underlying adaptive-bitreate engines\n * of adaptive playback implementations, like Hls.js or Shaka\n * @prop {Number} [maxAdaptiveBitrate]\n * Limits the streamed bitrate (for adaptive media-engines in underlying playback implementations)\n * @prop {Object} [maxAdaptiveVideoDimensions]\n * Limits the video dimensions in adaptive media-engines. Should be a literal object with `height` and `width`.\n * @prop {Boolean}[enableAutomaticABR] **default**: `true`\n * Allows to enable/disable automatic bitrate switching in adaptive media-engines\n * @prop {String} [preferredTextLanguage] **default**: `'pt-BR'`\n * Allows to set a preferred text language, that may be enabled by the media-engine if available.\n * @prop {String} [preferredAudioLanguage] **default**: `'pt-BR'`\n * Allows to set a preferred audio language, that may be enabled by the media-engine if available.\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: <<source URL>>, mimeType: <<source mime type>>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <<source URL>>, mimeType: <<source mime type>>}\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 {Boolean} [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] @deprecated\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength] @deprecated\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] @deprecated\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 * @param {PlaybackConfig} [options.playback]\n * Generic `Playback` component related configuration\n */\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(this.options.events)\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(newEvents = {}, events = {}) {\n Object.keys(events).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n eventType && this.off(eventType)\n })\n\n Object.keys(newEvents).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n if (eventType) {\n let eventFunction = newEvents[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: <<source URL>>, mimeType: <<source mime type>>}\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._registerOptionEventListeners(options.events, this.options.events)\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 = 93\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 = 94\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 = 95\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 = 96\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 = 97\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 = 98\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 = 99\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 = 100\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 = 101\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 = 102\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 = 103\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 = 104\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 = 105\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 = 106\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 = 107\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 = 108\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 = 109\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 = 110\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 = 111\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 = 112\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 = 113\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 = 114\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 = 115\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 = 116\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 = 117\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 = 119\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 = 120\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 = 121\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 = 122\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 = 123\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 = 124\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 = 125\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 = 126\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 = 127\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 = 128\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 = 129\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 = 130\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 = 131\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()\n .then((containers) => this.setupContainers(containers))\n .then((containers) => this.resolveOnContainersReady(containers))\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)\n\n this.trigger(Events.CORE_OPTIONS_CHANGE)\n this.containers.forEach((container) => {\n container.configure(this.options)\n })\n this.mediaControl.configure(this.options)\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","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/container/public/style.scss\n// module id = 141\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".container[data-container] {\\n position: absolute;\\n background-color: black;\\n height: 100%;\\n width: 100%; }\\n .container[data-container] .chromeless {\\n cursor: default; }\\n\\n[data-player]:not(.nocursor) .container[data-container]:not(.chromeless).pointer-enabled {\\n cursor: pointer; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./src/components/container/public/style.scss\n// module id = 142\n// module chunks = 0","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/style-loader/lib/urls.js\n// module id = 143\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 * The MediaControl is responsible for displaying the Player controls.\n */\n\nimport { Config, Fullscreen, formatTime, extend, removeArrayItem } from '../../base/utils'\nimport { Kibo } from '../../vendor'\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport Browser from '../../components/browser'\nimport Mediator from '../../components/mediator'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\n\nimport $ from 'clappr-zepto'\n\nimport './public/media-control.scss'\nimport mediaControlHTML from './public/media-control.html'\n\nimport playIcon from '../../icons/01-play.svg'\nimport pauseIcon from '../../icons/02-pause.svg'\nimport stopIcon from '../../icons/03-stop.svg'\nimport volumeIcon from '../../icons/04-volume.svg'\nimport volumeMuteIcon from '../../icons/05-mute.svg'\nimport fullscreenIcon from '../../icons/06-expand.svg'\nimport exitFullscreenIcon from '../../icons/07-shrink.svg'\nimport hdIcon from '../../icons/08-hd.svg'\n\nexport default class MediaControl extends UIObject {\n get name() { return 'MediaControl' }\n get disabled() { return this.userDisabled || (this.container && this.container.getPlaybackType() === Playback.NO_OP) }\n\n get attributes() {\n return {\n 'class': 'media-control',\n 'data-media-control': ''\n }\n }\n\n get events() {\n return {\n 'click [data-play]': 'play',\n 'click [data-pause]': 'pause',\n 'click [data-playpause]': 'togglePlayPause',\n 'click [data-stop]': 'stop',\n 'click [data-playstop]': 'togglePlayStop',\n 'click [data-fullscreen]': 'toggleFullscreen',\n 'click .bar-container[data-seekbar]': 'seek',\n 'click .bar-container[data-volume]': 'onVolumeClick',\n 'click .drawer-icon[data-volume]': 'toggleMute',\n 'mouseenter .drawer-container[data-volume]': 'showVolumeBar',\n 'mouseleave .drawer-container[data-volume]': 'hideVolumeBar',\n 'mousedown .bar-container[data-volume]': 'startVolumeDrag',\n 'mousemove .bar-container[data-volume]': 'mousemoveOnVolumeBar',\n 'mousedown .bar-scrubber[data-seekbar]': 'startSeekDrag',\n 'mousemove .bar-container[data-seekbar]': 'mousemoveOnSeekBar',\n 'mouseleave .bar-container[data-seekbar]': 'mouseleaveOnSeekBar',\n 'mouseenter .media-control-layer[data-controls]': 'setUserKeepVisible',\n 'mouseleave .media-control-layer[data-controls]': 'resetUserKeepVisible'\n }\n }\n\n get template() { return template(mediaControlHTML) }\n\n get volume() { return (this.container && this.container.isReady) ? this.container.volume : this.intendedVolume }\n get muted() { return this.volume === 0 }\n\n constructor(options) {\n super(options)\n this.persistConfig = this.options.persistConfig\n this.container = options.container\n this.currentPositionValue = null\n this.currentDurationValue = null\n this.keepVisible = false\n this.fullScreenOnVideoTagSupported = null // unknown\n this.setInitialVolume()\n this.addEventListeners()\n this.settings = {\n left: ['play', 'stop', 'pause'],\n right: ['volume'],\n default: ['position', 'seekbar', 'duration']\n }\n\n if (this.container) {\n if (!$.isEmptyObject(this.container.settings))\n this.settings = $.extend({}, this.container.settings)\n\n } else { this.settings = {} }\n\n\n this.userDisabled = false\n if ((this.container && this.container.mediaControlDisabled) || this.options.chromeless)\n this.disable()\n\n this.stopDragHandler = (event) => this.stopDrag(event)\n this.updateDragHandler = (event) => this.updateDrag(event)\n $(document).bind('mouseup', this.stopDragHandler)\n $(document).bind('mousemove', this.updateDragHandler)\n }\n\n addEventListeners() {\n if (this.container) {\n Mediator.on(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, this.playerResize, this)\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_PAUSE, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_DBLCLICK, this.toggleFullscreen)\n this.listenTo(this.container, Events.CONTAINER_TIMEUPDATE, this.onTimeUpdate)\n this.listenTo(this.container, Events.CONTAINER_PROGRESS, this.updateProgressBar)\n this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.settingsUpdate)\n this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.container, Events.CONTAINER_MEDIACONTROL_DISABLE, this.disable)\n this.listenTo(this.container, Events.CONTAINER_MEDIACONTROL_ENABLE, this.enable)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.ended)\n this.listenTo(this.container, Events.CONTAINER_VOLUME, this.onVolumeChanged)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.setInitialVolume)\n if (this.container.playback.el.nodeName.toLowerCase() === 'video') {\n // wait until the metadata has loaded and then check if fullscreen on video tag is supported\n this.listenToOnce(this.container, Events.CONTAINER_LOADEDMETADATA, this.onLoadedMetadataOnVideoTag)\n }\n }\n }\n\n disable() {\n this.userDisabled = true\n this.hide()\n this.$el.hide()\n }\n\n enable() {\n if (this.options.chromeless) return\n this.userDisabled = false\n this.show()\n }\n\n play() {\n this.container.play()\n }\n\n pause() {\n this.container.pause()\n }\n\n stop() {\n this.container.stop()\n }\n\n setInitialVolume() {\n const initialVolume = (this.persistConfig) ? Config.restore('volume') : 100\n const options = this.container && this.container.options || this.options\n this.setVolume(options.mute ? 0 : initialVolume, true)\n }\n\n onVolumeChanged() {\n this.updateVolumeUI()\n }\n\n onLoadedMetadataOnVideoTag() {\n let video = this.container.playback.el\n // video.webkitSupportsFullscreen is deprecated but iOS appears to only use this\n // see https://github.com/clappr/clappr/issues/1127\n if (!Fullscreen.fullscreenEnabled() && video.webkitSupportsFullscreen) {\n this.fullScreenOnVideoTagSupported = true\n this.settingsUpdate()\n }\n }\n\n updateVolumeUI() {\n if (!this.rendered) {\n // this will be called after a render\n return\n }\n // update volume bar scrubber/fill on bar mode\n this.$volumeBarContainer.find('.bar-fill-2').css({})\n const containerWidth = this.$volumeBarContainer.width()\n const barWidth = this.$volumeBarBackground.width()\n const offset = (containerWidth - barWidth) / 2.0\n const pos = barWidth * this.volume / 100.0 + offset\n this.$volumeBarFill.css({ width: `${this.volume}%` })\n this.$volumeBarScrubber.css({ left: pos })\n\n // update volume bar segments on segmented bar mode\n this.$volumeBarContainer.find('.segmented-bar-element').removeClass('fill')\n const item = Math.ceil(this.volume / 10.0)\n this.$volumeBarContainer.find('.segmented-bar-element').slice(0, item).addClass('fill')\n this.$volumeIcon.html('')\n this.$volumeIcon.removeClass('muted')\n if (!this.muted) { this.$volumeIcon.append(volumeIcon) } else {\n this.$volumeIcon.append(volumeMuteIcon)\n this.$volumeIcon.addClass('muted')\n }\n this.applyButtonStyle(this.$volumeIcon)\n }\n\n changeTogglePlay() {\n this.$playPauseToggle.html('')\n this.$playStopToggle.html('')\n if (this.container && this.container.isPlaying()) {\n this.$playPauseToggle.append(pauseIcon)\n this.$playStopToggle.append(stopIcon)\n this.trigger(Events.MEDIACONTROL_PLAYING)\n } else {\n this.$playPauseToggle.append(playIcon)\n this.$playStopToggle.append(playIcon)\n this.trigger(Events.MEDIACONTROL_NOTPLAYING)\n if (Browser.isMobile)\n this.show()\n\n }\n this.applyButtonStyle(this.$playPauseToggle)\n this.applyButtonStyle(this.$playStopToggle)\n }\n\n mousemoveOnSeekBar(event) {\n if (this.settings.seekEnabled) {\n const offsetX = event.pageX - this.$seekBarContainer.offset().left - (this.$seekBarHover.width() / 2)\n this.$seekBarHover.css({ left: offsetX })\n }\n this.trigger(Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, event)\n }\n\n mouseleaveOnSeekBar(event) {\n this.trigger(Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, event)\n }\n\n onVolumeClick(event) {\n this.setVolume(this.getVolumeFromUIEvent(event))\n }\n\n mousemoveOnVolumeBar(event) {\n if(this.draggingVolumeBar)\n this.setVolume(this.getVolumeFromUIEvent(event))\n\n }\n\n playerResize(size) {\n this.$fullscreenToggle.html('')\n if (Fullscreen.isFullscreen())\n this.$fullscreenToggle.append(exitFullscreenIcon)\n else\n this.$fullscreenToggle.append(fullscreenIcon)\n\n this.applyButtonStyle(this.$fullscreenToggle)\n this.$el.removeClass('w320')\n if (size.width <= 320 || this.options.hideVolumeBar)\n this.$el.addClass('w320')\n\n }\n\n togglePlayPause() {\n if (this.container.isPlaying())\n this.container.pause()\n else\n this.container.play()\n\n return false\n }\n\n togglePlayStop() {\n if (this.container.isPlaying())\n this.container.stop()\n else\n this.container.play()\n\n }\n\n startSeekDrag(event) {\n if (!this.settings.seekEnabled) return\n this.draggingSeekBar = true\n this.$el.addClass('dragging')\n this.$seekBarLoaded.addClass('media-control-notransition')\n this.$seekBarPosition.addClass('media-control-notransition')\n this.$seekBarScrubber.addClass('media-control-notransition')\n if (event)\n event.preventDefault()\n\n }\n\n startVolumeDrag(event) {\n this.draggingVolumeBar = true\n this.$el.addClass('dragging')\n if (event)\n event.preventDefault()\n\n }\n\n stopDrag(event) {\n if (this.draggingSeekBar)\n this.seek(event)\n\n this.$el.removeClass('dragging')\n this.$seekBarLoaded.removeClass('media-control-notransition')\n this.$seekBarPosition.removeClass('media-control-notransition')\n this.$seekBarScrubber.removeClass('media-control-notransition dragging')\n this.draggingSeekBar = false\n this.draggingVolumeBar = false\n }\n\n updateDrag(event) {\n if (this.draggingSeekBar) {\n event.preventDefault()\n const offsetX = event.pageX - this.$seekBarContainer.offset().left\n let pos = offsetX / this.$seekBarContainer.width() * 100\n pos = Math.min(100, Math.max(pos, 0))\n this.setSeekPercentage(pos)\n } else if (this.draggingVolumeBar) {\n event.preventDefault()\n this.setVolume(this.getVolumeFromUIEvent(event))\n }\n }\n\n getVolumeFromUIEvent(event) {\n const offsetY = event.pageX - this.$volumeBarContainer.offset().left\n const volumeFromUI = (offsetY / this.$volumeBarContainer.width()) * 100\n return volumeFromUI\n }\n\n toggleMute() {\n this.setVolume(this.muted ? 100 : 0)\n }\n\n setVolume(value, isInitialVolume = false) {\n value = Math.min(100, Math.max(value, 0))\n // this will hold the intended volume\n // it may not actually get set to this straight away\n // if the container is not ready etc\n this.intendedVolume = value\n this.persistConfig && !isInitialVolume && Config.persist('volume', value)\n const setWhenContainerReady = () => {\n if (this.container.isReady) { this.container.setVolume(value) } else {\n this.listenToOnce(this.container, Events.CONTAINER_READY, () => {\n this.container.setVolume(value)\n })\n }\n }\n\n if (!this.container) {\n this.listenToOnce(this, Events.MEDIACONTROL_CONTAINERCHANGED, () => {\n setWhenContainerReady()\n })\n } else { setWhenContainerReady() }\n\n }\n\n toggleFullscreen() {\n this.trigger(Events.MEDIACONTROL_FULLSCREEN, this.name)\n this.container.fullscreen()\n this.resetUserKeepVisible()\n }\n\n setContainer(container) {\n if (this.container) {\n this.stopListening(this.container)\n this.fullScreenOnVideoTagSupported = null\n }\n Mediator.off(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, this.playerResize, this)\n this.container = container\n // set the new container to match the volume of the last one\n this.setVolume(this.intendedVolume, true)\n this.changeTogglePlay()\n this.addEventListeners()\n this.settingsUpdate()\n this.container.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.container.isDvrInUse())\n if (this.container.mediaControlDisabled)\n this.disable()\n\n this.trigger(Events.MEDIACONTROL_CONTAINERCHANGED)\n }\n\n showVolumeBar() {\n if (this.hideVolumeId)\n clearTimeout(this.hideVolumeId)\n\n this.$volumeBarContainer.removeClass('volume-bar-hide')\n }\n\n hideVolumeBar(timeout = 400) {\n if (!this.$volumeBarContainer) return\n if (this.draggingVolumeBar) { this.hideVolumeId = setTimeout(() => this.hideVolumeBar(), timeout) } else {\n if (this.hideVolumeId)\n clearTimeout(this.hideVolumeId)\n\n this.hideVolumeId = setTimeout(() => this.$volumeBarContainer.addClass('volume-bar-hide'), timeout)\n }\n }\n\n ended() {\n this.changeTogglePlay()\n }\n\n updateProgressBar(progress) {\n const loadedStart = progress.start / progress.total * 100\n const loadedEnd = progress.current / progress.total * 100\n this.$seekBarLoaded.css({ left: `${loadedStart}%`, width: `${loadedEnd - loadedStart}%` })\n }\n\n onTimeUpdate(timeProgress) {\n if (this.draggingSeekBar) return\n // TODO why should current time ever be negative?\n const position = (timeProgress.current < 0) ? timeProgress.total : timeProgress.current\n\n this.currentPositionValue = position\n this.currentDurationValue = timeProgress.total\n this.renderSeekBar()\n }\n\n renderSeekBar() {\n if (this.currentPositionValue === null || this.currentDurationValue === null) {\n // this will be triggered as soon as these beocome available\n return\n }\n\n // default to 100%\n this.currentSeekBarPercentage = 100\n if (this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrInUse())\n this.currentSeekBarPercentage = (this.currentPositionValue / this.currentDurationValue) * 100\n\n this.setSeekPercentage(this.currentSeekBarPercentage)\n\n const newPosition = formatTime(this.currentPositionValue)\n const newDuration = formatTime(this.currentDurationValue)\n if (newPosition !== this.displayedPosition) {\n this.$position.text(newPosition)\n this.displayedPosition = newPosition\n }\n if (newDuration !== this.displayedDuration) {\n this.$duration.text(newDuration)\n this.displayedDuration = newDuration\n }\n }\n\n seek(event) {\n if (!this.settings.seekEnabled) return\n const offsetX = event.pageX - this.$seekBarContainer.offset().left\n let pos = offsetX / this.$seekBarContainer.width() * 100\n pos = Math.min(100, Math.max(pos, 0))\n this.container.seekPercentage(pos)\n this.setSeekPercentage(pos)\n return false\n }\n\n setKeepVisible() {\n this.keepVisible = true\n }\n\n resetKeepVisible() {\n this.keepVisible = false\n }\n\n setUserKeepVisible() {\n this.userKeepVisible = true\n }\n\n resetUserKeepVisible() {\n this.userKeepVisible = false\n }\n\n isVisible() {\n return !this.$el.hasClass('media-control-hide')\n }\n\n show(event) {\n if (this.disabled)\n return\n\n const timeout = 2000\n if (!event || (event.clientX !== this.lastMouseX && event.clientY !== this.lastMouseY) || navigator.userAgent.match(/firefox/i)) {\n clearTimeout(this.hideId)\n this.$el.show()\n this.trigger(Events.MEDIACONTROL_SHOW, this.name)\n this.$el.removeClass('media-control-hide')\n this.hideId = setTimeout(() => this.hide(), timeout)\n if (event) {\n this.lastMouseX = event.clientX\n this.lastMouseY = event.clientY\n }\n }\n }\n\n hide(delay = 0) {\n if (!this.isVisible()) return\n\n const timeout = delay || 2000\n clearTimeout(this.hideId)\n if (!this.disabled && this.options.hideMediaControl === false)\n return\n\n if (!this.disabled && (delay || this.userKeepVisible || this.keepVisible || this.draggingSeekBar || this.draggingVolumeBar)) { this.hideId = setTimeout(() => this.hide(), timeout) } else {\n this.trigger(Events.MEDIACONTROL_HIDE, this.name)\n this.$el.addClass('media-control-hide')\n this.hideVolumeBar(0)\n }\n }\n\n settingsUpdate() {\n const newSettings = this.getSettings()\n if (newSettings && !this.fullScreenOnVideoTagSupported && !Fullscreen.fullscreenEnabled()) {\n // remove fullscreen from settings if it is present\n newSettings.default && removeArrayItem(newSettings.default, 'fullscreen')\n newSettings.left && removeArrayItem(newSettings.left, 'fullscreen')\n newSettings.right && removeArrayItem(newSettings.right, 'fullscreen')\n }\n const settingsChanged = JSON.stringify(this.settings) !== JSON.stringify(newSettings)\n if (settingsChanged) {\n this.settings = newSettings\n this.render()\n }\n }\n\n getSettings() {\n return $.extend(true, {}, this.container.settings)\n }\n\n highDefinitionUpdate(isHD) {\n this.isHD = isHD\n const method = isHD ? 'addClass' : 'removeClass'\n this.$hdIndicator[method]('enabled')\n }\n\n createCachedElements() {\n const $layer = this.$el.find('.media-control-layer')\n this.$duration = $layer.find('.media-control-indicator[data-duration]')\n this.$fullscreenToggle = $layer.find('button.media-control-button[data-fullscreen]')\n this.$playPauseToggle = $layer.find('button.media-control-button[data-playpause]')\n this.$playStopToggle = $layer.find('button.media-control-button[data-playstop]')\n this.$position = $layer.find('.media-control-indicator[data-position]')\n this.$seekBarContainer = $layer.find('.bar-container[data-seekbar]')\n this.$seekBarHover = $layer.find('.bar-hover[data-seekbar]')\n this.$seekBarLoaded = $layer.find('.bar-fill-1[data-seekbar]')\n this.$seekBarPosition = $layer.find('.bar-fill-2[data-seekbar]')\n this.$seekBarScrubber = $layer.find('.bar-scrubber[data-seekbar]')\n this.$volumeBarContainer = $layer.find('.bar-container[data-volume]')\n this.$volumeContainer = $layer.find('.drawer-container[data-volume]')\n this.$volumeIcon = $layer.find('.drawer-icon[data-volume]')\n this.$volumeBarBackground = this.$el.find('.bar-background[data-volume]')\n this.$volumeBarFill = this.$el.find('.bar-fill-1[data-volume]')\n this.$volumeBarScrubber = this.$el.find('.bar-scrubber[data-volume]')\n this.$hdIndicator = this.$el.find('button.media-control-button[data-hd-indicator]')\n this.resetIndicators()\n this.initializeIcons()\n }\n\n resetIndicators() {\n this.displayedPosition = this.$position.text()\n this.displayedDuration = this.$duration.text()\n }\n\n initializeIcons() {\n const $layer = this.$el.find('.media-control-layer')\n $layer.find('button.media-control-button[data-play]').append(playIcon)\n $layer.find('button.media-control-button[data-pause]').append(pauseIcon)\n $layer.find('button.media-control-button[data-stop]').append(stopIcon)\n this.$playPauseToggle.append(playIcon)\n this.$playStopToggle.append(playIcon)\n this.$volumeIcon.append(volumeIcon)\n this.$fullscreenToggle.append(fullscreenIcon)\n this.$hdIndicator.append(hdIcon)\n }\n\n setSeekPercentage(value) {\n value = Math.max(Math.min(value, 100.0), 0)\n if (this.displayedSeekBarPercentage === value) {\n // not changed since last update\n return\n }\n this.displayedSeekBarPercentage = value\n\n this.$seekBarPosition.removeClass('media-control-notransition')\n this.$seekBarScrubber.removeClass('media-control-notransition')\n this.$seekBarPosition.css({ width: `${value}%` })\n this.$seekBarScrubber.css({ left: `${value}%` })\n }\n\n seekRelative(delta) {\n if (!this.settings.seekEnabled) return\n const currentTime = this.container.getCurrentTime()\n const duration = this.container.getDuration()\n let position = Math.min(Math.max(currentTime + delta, 0), duration)\n position = Math.min(position * 100 / duration, 100)\n this.container.seekPercentage(position)\n }\n\n bindKeyAndShow(key, cb) {\n this.kibo.down(key, () => {\n this.show()\n return cb()\n })\n }\n\n bindKeyEvents() {\n this.unbindKeyEvents()\n this.kibo = new Kibo(this.options.focusElement)\n\n this.bindKeyAndShow('space', () => this.togglePlayPause())\n this.bindKeyAndShow('left', () => this.seekRelative(-5))\n this.bindKeyAndShow('right', () => this.seekRelative(5))\n this.bindKeyAndShow('shift left', () => this.seekRelative(-10))\n this.bindKeyAndShow('shift right', () => this.seekRelative(10))\n this.bindKeyAndShow('shift ctrl left', () => this.seekRelative(-15))\n this.bindKeyAndShow('shift ctrl right', () => this.seekRelative(15))\n // this.kibo.down(['']) // should it be here?\n const keys = ['1','2','3','4','5','6','7','8','9','0']\n keys.forEach((i) => { this.bindKeyAndShow(i, () => this.settings.seekEnabled && this.container.seekPercentage(i * 10)) })\n }\n\n unbindKeyEvents() {\n if (this.kibo) {\n this.kibo.off('space')\n this.kibo.off('left')\n this.kibo.off('right')\n this.kibo.off('shift left')\n this.kibo.off('shift right')\n this.kibo.off('shift ctrl left')\n this.kibo.off('shift ctrl right')\n this.kibo.off(['1','2','3','4','5','6','7','8','9','0'])\n }\n }\n\n parseColors() {\n if (this.options.mediacontrol) {\n this.buttonsColor = this.options.mediacontrol.buttons\n const seekbarColor = this.options.mediacontrol.seekbar\n this.$el.find('.bar-fill-2[data-seekbar]').css('background-color', seekbarColor)\n this.$el.find('.media-control-icon svg path').css('fill', this.buttonsColor)\n this.$el.find('.segmented-bar-element[data-volume]').css('boxShadow', 'inset 2px 0 0 ' + this.buttonsColor)\n }\n }\n\n applyButtonStyle(element) {\n if (this.buttonsColor && element)\n $(element).find('svg path').css('fill', this.buttonsColor)\n\n }\n\n destroy() {\n this.remove()\n $(document).unbind('mouseup', this.stopDragHandler)\n $(document).unbind('mousemove', this.updateDragHandler)\n this.unbindKeyEvents()\n }\n\n /**\n * enables to configure the media control 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.trigger(Events.MEDIACONTROL_OPTIONS_CHANGE)\n }\n\n render() {\n const timeout = 1000\n this.$el.html(this.template({ settings: this.settings }))\n this.createCachedElements()\n this.$playPauseToggle.addClass('paused')\n this.$playStopToggle.addClass('stopped')\n\n this.changeTogglePlay()\n this.hideId = setTimeout(() => this.hide(), timeout)\n if (this.disabled)\n this.hide()\n\n\n // Video volume cannot be changed with Safari on mobile devices\n // Display mute/unmute icon only if Safari version >= 10\n if(Browser.isSafari && Browser.isMobile) {\n if (Browser.version < 10)\n this.$volumeContainer.css('display','none')\n else\n this.$volumeBarContainer.css('display','none')\n\n }\n\n this.$seekBarPosition.addClass('media-control-notransition')\n this.$seekBarScrubber.addClass('media-control-notransition')\n\n let previousSeekPercentage = 0\n if (this.displayedSeekBarPercentage)\n previousSeekPercentage = this.displayedSeekBarPercentage\n\n this.displayedSeekBarPercentage = null\n this.setSeekPercentage(previousSeekPercentage)\n\n process.nextTick(() => {\n if (!this.settings.seekEnabled)\n this.$seekBarContainer.addClass('seek-disabled')\n\n if (!Browser.isMobile && !this.options.disableKeyboardShortcuts)\n this.bindKeyEvents()\n\n this.playerResize({ width: this.options.width, height: this.options.height })\n this.hideVolumeBar(0)\n })\n\n this.parseColors()\n this.highDefinitionUpdate(this.isHD)\n\n this.rendered = true\n this.updateVolumeUI()\n this.trigger(Events.MEDIACONTROL_RENDERED)\n return this\n }\n}\n\nMediaControl.extend = function(properties) {\n return extend(MediaControl, properties)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/media_control/media_control.js","module.exports = { \"default\": require(\"core-js/library/fn/json/stringify\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/json/stringify.js\n// module id = 145\n// module chunks = 0","var core = require('../../modules/_core')\n , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});\nmodule.exports = function stringify(it){ // eslint-disable-line no-unused-vars\n return $JSON.stringify.apply($JSON, arguments);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/json/stringify.js\n// module id = 146\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./media-control.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./media-control.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./media-control.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/media_control/public/media-control.scss\n// module id = 147\n// module chunks = 0","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".media-control-notransition {\\n transition: none !important; }\\n\\n.media-control[data-media-control] {\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n z-index: 9999;\\n pointer-events: none; }\\n .media-control[data-media-control].dragging {\\n pointer-events: auto;\\n cursor: -webkit-grabbing !important;\\n cursor: grabbing !important;\\n cursor: url(\" + escape(require(\"./closed-hand.cur\")) + \"), move; }\\n .media-control[data-media-control].dragging * {\\n cursor: -webkit-grabbing !important;\\n cursor: grabbing !important;\\n cursor: url(\" + escape(require(\"./closed-hand.cur\")) + \"), move; }\\n .media-control[data-media-control] .media-control-background[data-background] {\\n position: absolute;\\n height: 40%;\\n width: 100%;\\n bottom: 0;\\n background: linear-gradient(transparent, rgba(0, 0, 0, 0.9));\\n transition: opacity 0.6s ease-out; }\\n .media-control[data-media-control] .media-control-icon {\\n line-height: 0;\\n letter-spacing: 0;\\n speak: none;\\n color: #fff;\\n opacity: 0.5;\\n vertical-align: middle;\\n text-align: left;\\n transition: all 0.1s ease; }\\n .media-control[data-media-control] .media-control-icon:hover {\\n color: white;\\n opacity: 0.75;\\n text-shadow: rgba(255, 255, 255, 0.8) 0 0 5px; }\\n .media-control[data-media-control].media-control-hide .media-control-background[data-background] {\\n opacity: 0; }\\n .media-control[data-media-control].media-control-hide .media-control-layer[data-controls] {\\n bottom: -50px; }\\n .media-control[data-media-control].media-control-hide .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] {\\n opacity: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] {\\n position: absolute;\\n bottom: 7px;\\n width: 100%;\\n height: 32px;\\n font-size: 0;\\n vertical-align: middle;\\n pointer-events: auto;\\n transition: bottom 0.4s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-left-panel[data-media-control] {\\n position: absolute;\\n top: 0;\\n left: 4px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-center-panel[data-media-control] {\\n height: 100%;\\n text-align: center;\\n line-height: 32px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-right-panel[data-media-control] {\\n position: absolute;\\n top: 0;\\n right: 4px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button {\\n background-color: transparent;\\n border: 0;\\n margin: 0 6px;\\n padding: 0;\\n cursor: pointer;\\n display: inline-block;\\n width: 32px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg {\\n width: 100%;\\n height: 22px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg path {\\n fill: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button:focus {\\n outline: none; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-play] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-pause] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-stop] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-fullscreen] {\\n float: right;\\n background-color: transparent;\\n border: 0;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator] {\\n background-color: transparent;\\n border: 0;\\n cursor: default;\\n display: none;\\n float: right;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled {\\n display: block;\\n opacity: 1.0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled:hover {\\n opacity: 1.0;\\n text-shadow: none; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playpause] {\\n float: left; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playstop] {\\n float: left; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position], .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration] {\\n display: inline-block;\\n font-size: 10px;\\n color: white;\\n cursor: default;\\n line-height: 32px;\\n position: relative; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position] {\\n margin: 0 6px 0 7px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration] {\\n color: rgba(255, 255, 255, 0.5);\\n margin-right: 6px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration]:before {\\n content: \\\"|\\\";\\n margin-right: 7px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] {\\n position: absolute;\\n top: -20px;\\n left: 0;\\n display: inline-block;\\n vertical-align: middle;\\n width: 100%;\\n height: 25px;\\n cursor: pointer; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] {\\n width: 100%;\\n height: 1px;\\n position: relative;\\n top: 12px;\\n background-color: #666666; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-1[data-seekbar] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #c2c2c2;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #005aff;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 0;\\n position: absolute;\\n top: -3px;\\n width: 5px;\\n height: 7px;\\n background-color: rgba(255, 255, 255, 0.5);\\n transition: opacity 0.1s ease; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar]:hover .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 1; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar].seek-disabled {\\n cursor: default; }\\n .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] {\\n opacity: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] {\\n position: absolute;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n top: 2px;\\n left: 0;\\n width: 20px;\\n height: 20px;\\n opacity: 1;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] .bar-scrubber-icon[data-seekbar] {\\n position: absolute;\\n left: 6px;\\n top: 6px;\\n width: 8px;\\n height: 8px;\\n border-radius: 10px;\\n box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.2);\\n background-color: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] {\\n float: right;\\n display: inline-block;\\n height: 32px;\\n cursor: pointer;\\n margin: 0 6px;\\n box-sizing: border-box; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] {\\n float: left;\\n bottom: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] {\\n background-color: transparent;\\n border: 0;\\n box-sizing: content-box;\\n width: 32px;\\n height: 32px;\\n opacity: 0.5; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume]:hover {\\n opacity: 0.75; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] svg {\\n height: 24px;\\n position: relative;\\n top: 3px; }\\n .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 {\\n fill: white; }\\n .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 {\\n margin-left: 2px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] {\\n float: left;\\n position: relative;\\n overflow: hidden;\\n top: 6px;\\n width: 42px;\\n height: 18px;\\n padding: 3px 0;\\n transition: width .2s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] {\\n height: 1px;\\n position: relative;\\n top: 7px;\\n margin: 0 3px;\\n background-color: #666666; }\\n .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] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #c2c2c2;\\n transition: all 0.1s ease-out; }\\n .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] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #005aff;\\n transition: all 0.1s ease-out; }\\n .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] {\\n opacity: 0;\\n position: absolute;\\n top: -3px;\\n width: 5px;\\n height: 7px;\\n background-color: rgba(255, 255, 255, 0.5);\\n transition: opacity 0.1s ease; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-scrubber[data-volume] {\\n position: absolute;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n top: 0px;\\n left: 0;\\n width: 20px;\\n height: 20px;\\n opacity: 1;\\n transition: all 0.1s ease-out; }\\n .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] {\\n position: absolute;\\n left: 6px;\\n top: 6px;\\n width: 8px;\\n height: 8px;\\n border-radius: 10px;\\n box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.2);\\n background-color: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume] {\\n float: left;\\n width: 4px;\\n padding-left: 2px;\\n height: 12px;\\n opacity: 0.5;\\n box-shadow: inset 2px 0 0 white;\\n transition: -webkit-transform .2s ease-out;\\n transition: transform .2s ease-out;\\n transition: transform .2s ease-out, -webkit-transform .2s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume].fill {\\n box-shadow: inset 2px 0 0 #fff;\\n opacity: 1; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:nth-of-type(1) {\\n padding-left: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:hover {\\n -webkit-transform: scaleY(1.5);\\n transform: scaleY(1.5); }\\n .media-control[data-media-control].w320 .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume].volume-bar-hide {\\n width: 0;\\n height: 12px;\\n top: 9px;\\n padding: 0; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./src/components/media_control/public/media-control.scss\n// module id = 148\n// module chunks = 0","module.exports = \"<div class=\\\"media-control-background\\\" data-background></div>\\n<div class=\\\"media-control-layer\\\" data-controls>\\n <% var renderBar = function(name) { %>\\n <div class=\\\"bar-container\\\" data-<%= name %>>\\n <div class=\\\"bar-background\\\" data-<%= name %>>\\n <div class=\\\"bar-fill-1\\\" data-<%= name %>></div>\\n <div class=\\\"bar-fill-2\\\" data-<%= name %>></div>\\n <div class=\\\"bar-hover\\\" data-<%= name %>></div>\\n </div>\\n <div class=\\\"bar-scrubber\\\" data-<%= name %>>\\n <div class=\\\"bar-scrubber-icon\\\" data-<%= name %>></div>\\n </div>\\n </div>\\n <% }; %>\\n <% var renderSegmentedBar = function(name, segments) {\\n segments = segments || 10; %>\\n <div class=\\\"bar-container\\\" data-<%= name %>>\\n <% for (var i = 0; i < segments; i++) { %>\\n <div class=\\\"segmented-bar-element\\\" data-<%= name %>></div>\\n <% } %>\\n </div>\\n <% }; %>\\n <% var renderDrawer = function(name, renderContent) { %>\\n <div class=\\\"drawer-container\\\" data-<%= name %>>\\n <div class=\\\"drawer-icon-container\\\" data-<%= name %>>\\n <div class=\\\"drawer-icon media-control-icon\\\" data-<%= name %>></div>\\n <span class=\\\"drawer-text\\\" data-<%= name %>></span>\\n </div>\\n <% renderContent(name); %>\\n </div>\\n <% }; %>\\n <% var renderIndicator = function(name) { %>\\n <div class=\\\"media-control-indicator\\\" data-<%= name %>></div>\\n <% }; %>\\n <% var renderButton = function(name) { %>\\n <button type=\\\"button\\\" class=\\\"media-control-button media-control-icon\\\" data-<%= name %> aria-label=\\\"<%= name %>\\\"></button>\\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 <div class=\\\"media-control-center-panel\\\" data-media-control>\\n <% render(settings.default); %>\\n </div>\\n <% } %>\\n <% if (settings.left && settings.left.length) { %>\\n <div class=\\\"media-control-left-panel\\\" data-media-control>\\n <% render(settings.left); %>\\n </div>\\n <% } %>\\n <% if (settings.right && settings.right.length) { %>\\n <div class=\\\"media-control-right-panel\\\" data-media-control>\\n <% render(settings.right); %>\\n </div>\\n <% } %>\\n</div>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/media_control/public/media-control.html\n// module id = 149\n// module chunks = 0","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#010101\\\" d=\\\"M1.712 1.24h12.6v13.52h-12.6z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/03-stop.svg\n// module id = 150\n// module chunks = 0","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#010101\\\" d=\\\"M11.5 11h-.002v1.502L7.798 10H4.5V6h3.297l3.7-2.502V4.5h.003V11zM11 4.49L7.953 6.5H5v3h2.953L11 11.51V4.49z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/04-volume.svg\n// module id = 151\n// module chunks = 0","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#010101\\\" d=\\\"M9.75 11.51L6.7 9.5H3.75v-3H6.7L9.75 4.49v.664l.497.498V3.498L6.547 6H3.248v4h3.296l3.7 2.502v-2.154l-.497.5v.662zm3-5.165L12.404 6l-1.655 1.653L9.093 6l-.346.345L10.402 8 8.747 9.654l.346.347 1.655-1.653L12.403 10l.348-.346L11.097 8l1.655-1.655z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/05-mute.svg\n// module id = 152\n// module chunks = 0","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill=\\\"#010101\\\" d=\\\"M7.156 8L4 11.156V8.5H3V13h4.5v-1H4.844L8 8.844 7.156 8zM8.5 3v1h2.657L8 7.157 8.846 8 12 4.844V7.5h1V3H8.5z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/06-expand.svg\n// module id = 153\n// module chunks = 0","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill=\\\"#010101\\\" d=\\\"M13.5 3.344l-.844-.844L9.5 5.656V3h-1v4.5H13v-1h-2.656L13.5 3.344zM3 9.5h2.656L2.5 12.656l.844.844L6.5 10.344V13h1V8.5H3v1z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/07-shrink.svg\n// module id = 154\n// module chunks = 0","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill=\\\"#010101\\\" d=\\\"M5.375 7.062H2.637V4.26H.502v7.488h2.135V8.9h2.738v2.848h2.133V4.26H5.375v2.802zm5.97-2.81h-2.84v7.496h2.798c2.65 0 4.195-1.607 4.195-3.77v-.022c0-2.162-1.523-3.704-4.154-3.704zm2.06 3.758c0 1.21-.81 1.896-2.03 1.896h-.83V6.093h.83c1.22 0 2.03.696 2.03 1.896v.02z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/08-hd.svg\n// module id = 155\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/core/public/style.scss\n// module id = 156\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-player] {\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n -o-user-select: none;\\n user-select: none;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n position: relative;\\n margin: 0;\\n padding: 0;\\n border: 0;\\n font-style: normal;\\n font-weight: normal;\\n text-align: center;\\n overflow: hidden;\\n font-size: 100%;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-shadow: 0 0 0;\\n box-sizing: border-box; }\\n [data-player] div, [data-player] span, [data-player] applet, [data-player] object, [data-player] iframe,\\n [data-player] h1, [data-player] h2, [data-player] h3, [data-player] h4, [data-player] h5, [data-player] h6, [data-player] p, [data-player] blockquote, [data-player] pre,\\n [data-player] a, [data-player] abbr, [data-player] acronym, [data-player] address, [data-player] big, [data-player] cite, [data-player] code,\\n [data-player] del, [data-player] dfn, [data-player] em, [data-player] img, [data-player] ins, [data-player] kbd, [data-player] q, [data-player] s, [data-player] samp,\\n [data-player] small, [data-player] strike, [data-player] strong, [data-player] sub, [data-player] sup, [data-player] tt, [data-player] var,\\n [data-player] b, [data-player] u, [data-player] i, [data-player] center,\\n [data-player] dl, [data-player] dt, [data-player] dd, [data-player] ol, [data-player] ul, [data-player] li,\\n [data-player] fieldset, [data-player] form, [data-player] label, [data-player] legend,\\n [data-player] table, [data-player] caption, [data-player] tbody, [data-player] tfoot, [data-player] thead, [data-player] tr, [data-player] th, [data-player] td,\\n [data-player] article, [data-player] aside, [data-player] canvas, [data-player] details, [data-player] embed,\\n [data-player] figure, [data-player] figcaption, [data-player] footer, [data-player] header, [data-player] hgroup,\\n [data-player] menu, [data-player] nav, [data-player] output, [data-player] ruby, [data-player] section, [data-player] summary,\\n [data-player] time, [data-player] mark, [data-player] audio, [data-player] video {\\n margin: 0;\\n padding: 0;\\n border: 0;\\n font: inherit;\\n font-size: 100%;\\n vertical-align: baseline; }\\n [data-player] table {\\n border-collapse: collapse;\\n border-spacing: 0; }\\n [data-player] caption, [data-player] th, [data-player] td {\\n text-align: left;\\n font-weight: normal;\\n vertical-align: middle; }\\n [data-player] q, [data-player] blockquote {\\n quotes: none; }\\n [data-player] q:before, [data-player] q:after, [data-player] blockquote:before, [data-player] blockquote:after {\\n content: \\\"\\\";\\n content: none; }\\n [data-player] a img {\\n border: none; }\\n [data-player]:focus {\\n outline: 0; }\\n [data-player] * {\\n max-width: none;\\n box-sizing: inherit;\\n float: none; }\\n [data-player] div {\\n display: block; }\\n [data-player].fullscreen {\\n width: 100% !important;\\n height: 100% !important;\\n top: 0;\\n left: 0; }\\n [data-player].nocursor {\\n cursor: none; }\\n\\n.clappr-style {\\n display: none !important; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./src/components/core/public/style.scss\n// module id = 157\n// module chunks = 0","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"@font-face {\\n font-family: \\\"Roboto\\\";\\n font-style: normal;\\n font-weight: 400;\\n src: local(\\\"Roboto\\\"), local(\\\"Roboto-Regular\\\"), url(\" + escape(require(\"./Roboto.ttf\")) + \") format(\\\"truetype\\\");\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/core/public/fonts.css\n// module id = 158\n// module chunks = 0","module.exports = \"<%=baseUrl%>/38861cba61c66739c1452c3a71e39852.ttf\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/core/public/Roboto.ttf\n// module id = 159\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 BaseObject from '../../base/base_object'\nimport PlayerInfo from '../player_info'\n\n/* Playback Plugins */\nimport HTML5VideoPlayback from '../../playbacks/html5_video'\nimport FlashVideoPlayback from '../../playbacks/flash'\nimport HTML5AudioPlayback from '../../playbacks/html5_audio'\nimport FlasHLSVideoPlayback from '../../playbacks/flashls'\nimport HLSVideoPlayback from '../../playbacks/hls'\nimport HTMLImgPlayback from '../../playbacks/html_img'\nimport NoOp from '../../playbacks/no_op'\n\n/* Container Plugins */\nimport SpinnerThreeBouncePlugin from '../../plugins/spinner_three_bounce'\nimport StatsPlugin from '../../plugins/stats'\nimport WaterMarkPlugin from '../../plugins/watermark'\nimport PosterPlugin from '../../plugins/poster'\nimport GoogleAnalyticsPlugin from '../../plugins/google_analytics'\nimport ClickToPausePlugin from '../../plugins/click_to_pause'\n\n/* Core Plugins */\nimport DVRControls from '../../plugins/dvr_controls'\nimport ClosedCaptions from '../../plugins/closed_captions'\nimport Favicon from '../../plugins/favicon'\nimport SeekTime from '../../plugins/seek_time'\nimport SourcesPlugin from '../../plugins/sources'\nimport EndVideo from '../../plugins/end_video'\nimport Strings from '../../plugins/strings'\n\n/**\n * It keeps a list of the default plugins (playback, container, core) and it merges external plugins with its internals.\n * @class Loader\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class Loader extends BaseObject {\n /**\n * builds the loader\n * @method constructor\n * @param {Object} externalPlugins the external plugins\n * @param {Number} playerId you can embed multiple instances of clappr, therefore this is the unique id of each one.\n */\n constructor(externalPlugins = [], playerId = 0, useOnlyPlainHtml5Plugins = PLAIN_HTML5_ONLY) {\n super()\n this.playerId = playerId\n this.playbackPlugins = []\n\n if (!useOnlyPlainHtml5Plugins) {\n this.playbackPlugins = [\n ...this.playbackPlugins,\n HLSVideoPlayback,\n ]\n }\n\n this.playbackPlugins = [\n ...this.playbackPlugins,\n HTML5VideoPlayback,\n HTML5AudioPlayback,\n ]\n\n if (!useOnlyPlainHtml5Plugins) {\n this.playbackPlugins = [\n ...this.playbackPlugins,\n FlashVideoPlayback,\n FlasHLSVideoPlayback\n ]\n }\n\n this.playbackPlugins = [\n ...this.playbackPlugins,\n HTMLImgPlayback,\n NoOp\n ]\n\n this.containerPlugins = [SpinnerThreeBouncePlugin, WaterMarkPlugin, PosterPlugin, StatsPlugin, GoogleAnalyticsPlugin, ClickToPausePlugin]\n this.corePlugins = [DVRControls, ClosedCaptions, Favicon, SeekTime, SourcesPlugin, EndVideo, Strings]\n\n if (!Array.isArray(externalPlugins))\n this.validateExternalPluginsType(externalPlugins)\n\n this.addExternalPlugins(externalPlugins)\n }\n\n /**\n * groups by type the external plugins that were passed through `options.plugins` it they're on a flat array\n * @method addExternalPlugins\n * @private\n * @param {Object} an config object or an array of plugins\n * @return {Object} plugins the config object with the plugins separated by type\n */\n groupPluginsByType(plugins) {\n if (Array.isArray(plugins)) {\n plugins = plugins.reduce(function(memo, plugin) {\n memo[plugin.type] || (memo[plugin.type] = [])\n memo[plugin.type].push(plugin)\n return memo\n }, {})\n }\n return plugins\n }\n\n removeDups(list) {\n const groupUp = (plugins, plugin) => {\n plugins[plugin.prototype.name] && delete plugins[plugin.prototype.name]\n plugins[plugin.prototype.name] = plugin\n return plugins\n }\n const pluginsMap = list.reduceRight(groupUp, Object.create(null))\n\n const plugins = []\n for (let key in pluginsMap)\n plugins.unshift(pluginsMap[key])\n\n return plugins\n }\n\n /**\n * adds all the external plugins that were passed through `options.plugins`\n * @method addExternalPlugins\n * @private\n * @param {Object} plugins the config object with all plugins\n */\n addExternalPlugins(plugins) {\n plugins = this.groupPluginsByType(plugins)\n if (plugins.playback)\n this.playbackPlugins = this.removeDups(plugins.playback.concat(this.playbackPlugins))\n\n if (plugins.container)\n this.containerPlugins = this.removeDups(plugins.container.concat(this.containerPlugins))\n\n if (plugins.core)\n this.corePlugins = this.removeDups(plugins.core.concat(this.corePlugins))\n\n\n PlayerInfo.getInstance(this.playerId).playbackPlugins = this.playbackPlugins\n }\n\n /**\n * validate if the external plugins that were passed through `options.plugins` are associated to the correct type\n * @method validateExternalPluginsType\n * @private\n * @param {Object} plugins the config object with all plugins\n */\n validateExternalPluginsType(plugins) {\n const plugintypes = ['playback', 'container', 'core']\n plugintypes.forEach((type) => {\n (plugins[type] || []).forEach((el) => {\n const errorMessage = 'external ' + el.type + ' plugin on ' + type + ' array'\n if (el.type !== type) throw new ReferenceError(errorMessage)\n })\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loader/loader.js","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/array/from.js\n// module id = 161\n// module chunks = 0","'use strict';\nvar ctx = require('./_ctx')\n , $export = require('./_export')\n , toObject = require('./_to-object')\n , call = require('./_iter-call')\n , isArrayIter = require('./_is-array-iter')\n , toLength = require('./_to-length')\n , createProperty = require('./_create-property')\n , getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){\n var O = toObject(arrayLike)\n , C = typeof this == 'function' ? this : Array\n , aLen = arguments.length\n , mapfn = aLen > 1 ? arguments[1] : undefined\n , mapping = mapfn !== undefined\n , index = 0\n , iterFn = getIterFn(O)\n , length, result, step, iterator;\n if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){\n for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for(result = new C(length); length > index; index++){\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.array.from.js\n// module id = 162\n// module chunks = 0","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function(iterator, fn, value, entries){\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch(e){\n var ret = iterator['return'];\n if(ret !== undefined)anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-call.js\n// module id = 163\n// module chunks = 0","// check on default Array iterator\nvar Iterators = require('./_iterators')\n , ITERATOR = require('./_wks')('iterator')\n , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-array-iter.js\n// module id = 164\n// module chunks = 0","'use strict';\nvar $defineProperty = require('./_object-dp')\n , createDesc = require('./_property-desc');\n\nmodule.exports = function(object, index, value){\n if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_create-property.js\n// module id = 165\n// module chunks = 0","var classof = require('./_classof')\n , ITERATOR = require('./_wks')('iterator')\n , Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function(it){\n if(it != undefined)return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/core.get-iterator-method.js\n// module id = 166\n// module chunks = 0","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof')\n , TAG = require('./_wks')('toStringTag')\n // ES3 wrong here\n , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function(it, key){\n try {\n return it[key];\n } catch(e){ /* empty */ }\n};\n\nmodule.exports = function(it){\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_classof.js\n// module id = 167\n// module chunks = 0","var ITERATOR = require('./_wks')('iterator')\n , SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function(){ SAFE_CLOSING = true; };\n Array.from(riter, function(){ throw 2; });\n} catch(e){ /* empty */ }\n\nmodule.exports = function(exec, skipClosing){\n if(!skipClosing && !SAFE_CLOSING)return false;\n var safe = false;\n try {\n var arr = [7]\n , iter = arr[ITERATOR]();\n iter.next = function(){ return {done: safe = true}; };\n arr[ITERATOR] = function(){ return iter; };\n exec(arr);\n } catch(e){ /* empty */ }\n return safe;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-detect.js\n// module id = 168\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 { isNumber, seekStringToSeconds, DomRecycler } from '../../base/utils'\n\nimport Playback from '../../base/playback'\nimport Browser from '../../components/browser'\nimport Events from '../../base/events'\nimport $ from 'clappr-zepto'\nimport template from '../../base/template'\nimport tracksHTML from './public/tracks.html'\nimport './public/style.scss'\n\nconst MIMETYPES = {\n 'mp4': ['avc1.42E01E', 'avc1.58A01E', 'avc1.4D401E', 'avc1.64001E', 'mp4v.20.8', 'mp4v.20.240', 'mp4a.40.2'].map(\n (codec) => { return 'video/mp4; codecs=\"' + codec + ', mp4a.40.2\"' }),\n 'ogg': ['video/ogg; codecs=\"theora, vorbis\"', 'video/ogg; codecs=\"dirac\"', 'video/ogg; codecs=\"theora, speex\"'],\n '3gpp': ['video/3gpp; codecs=\"mp4v.20.8, samr\"'],\n 'webm': ['video/webm; codecs=\"vp8, vorbis\"'],\n 'mkv': ['video/x-matroska; codecs=\"theora, vorbis\"'],\n 'm3u8': ['application/x-mpegurl']\n}\nMIMETYPES['ogv'] = MIMETYPES['ogg']\nMIMETYPES['3gp'] = MIMETYPES['3gpp']\n\nconst AUDIO_MIMETYPES = {\n 'wav': ['audio/wav'],\n 'mp3': ['audio/mp3', 'audio/mpeg;codecs=\"mp3\"'],\n 'aac': ['audio/mp4;codecs=\"mp4a.40.5\"'],\n 'oga': ['audio/ogg']\n}\n\nconst KNOWN_AUDIO_MIMETYPES = Object.keys(AUDIO_MIMETYPES).reduce((acc, k) => [...acc, ...AUDIO_MIMETYPES[k]], [])\n\n// TODO: rename this Playback to HTML5Playback (breaking change, only after 0.3.0)\nexport default class HTML5Video extends Playback {\n get name() { return 'html5_video' }\n get tagName() { return this.isAudioOnly ? 'audio' : 'video' }\n\n get isAudioOnly() {\n const resourceUrl = this.options.src\n let mimeTypes = HTML5Video._mimeTypesForUrl(resourceUrl, AUDIO_MIMETYPES, this.options.mimeType)\n return this.options.playback && this.options.playback.audioOnly || this.options.audioOnly || KNOWN_AUDIO_MIMETYPES.indexOf(mimeTypes[0]) >= 0\n }\n\n get attributes() {\n return {\n 'data-html5-video': ''\n }\n }\n\n get events() {\n return {\n 'canplay': '_onCanPlay',\n 'canplaythrough': '_handleBufferingEvents',\n 'durationchange': '_onDurationChange',\n 'ended': '_onEnded',\n 'error': '_onError',\n 'loadeddata': '_onLoadedData',\n 'loadedmetadata': '_onLoadedMetadata',\n 'pause': '_onPause',\n 'playing': '_onPlaying',\n 'progress': '_onProgress',\n 'seeking': '_onSeeking',\n 'seeked': '_onSeeked',\n 'stalled': '_handleBufferingEvents',\n 'timeupdate': '_onTimeUpdate',\n 'waiting': '_onWaiting'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.el.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * This is related to the PLAYBACK_BUFFERING and PLAYBACK_BUFFERFULL events\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this._isBuffering\n }\n\n constructor(...args) {\n super(...args)\n this._destroyed = false\n this._loadStarted = false\n this._isBuffering = false\n this._playheadMoving = false\n this._playheadMovingTimer = null\n this._stopped = false\n this._ccTrackId = -1\n this._setupSrc(this.options.src)\n // backwards compatibility (TODO: remove on 0.3.0)\n this.options.playback || (this.options.playback = this.options || {})\n this.options.playback.disableContextMenu = this.options.playback.disableContextMenu || this.options.disableVideoTagContextMenu\n\n const playbackConfig = this.options.playback\n const preload = playbackConfig.preload || (Browser.isSafari ? 'auto' : this.options.preload)\n\n let posterUrl // FIXME: poster plugin should always convert poster to object with expected properties ?\n if (this.options.poster) {\n if (typeof this.options.poster === 'string')\n posterUrl = this.options.poster\n else if (typeof this.options.poster.url === 'string')\n posterUrl = this.options.poster.url\n\n }\n\n $.extend(this.el, {\n muted: this.options.mute,\n defaultMuted: this.options.mute,\n loop: this.options.loop,\n poster: posterUrl,\n preload: preload || 'metadata',\n controls: (playbackConfig.controls || this.options.useVideoTagDefaultControls) && 'controls',\n crossOrigin: playbackConfig.crossOrigin,\n 'x-webkit-playsinline': playbackConfig.playInline\n })\n\n playbackConfig.playInline && (this.$el.attr({ playsinline: 'playsinline' }))\n playbackConfig.crossOrigin && (this.$el.attr({ crossorigin: playbackConfig.crossOrigin }))\n\n // TODO should settings be private?\n this.settings = { default: ['seekbar'] }\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.right = ['fullscreen', 'volume', 'hd-indicator']\n\n playbackConfig.externalTracks && (this._setupExternalTracks(playbackConfig.externalTracks))\n\n // https://github.com/clappr/clappr/issues/1076\n this.options.autoPlay && process.nextTick(() => !this._destroyed && this.play())\n }\n\n _setupExternalTracks(tracks) {\n this._externalTracks = tracks.map(track => {\n return {\n kind: track.kind || 'subtitles', // Default is 'subtitles'\n label: track.label,\n lang: track.lang,\n src: track.src,\n }\n })\n }\n\n /**\n * Sets the source url on the <video> element, and also the 'src' property.\n * @method setupSrc\n * @private\n * @param {String} srcUrl The source URL.\n */\n _setupSrc(srcUrl) {\n if (this.el.src === srcUrl)\n return\n\n this._ccIsSetup = false\n this.el.src = srcUrl\n this._src = this.el.src\n }\n\n _onLoadedMetadata(e) {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_LOADEDMETADATA, { duration: e.target.duration, data: e })\n this._updateSettings()\n const autoSeekFromUrl = typeof (this._options.autoSeekFromUrl) === 'undefined' || this._options.autoSeekFromUrl\n if (this.getPlaybackType() !== Playback.LIVE && autoSeekFromUrl)\n this._checkInitialSeek()\n\n }\n\n _onDurationChange() {\n this._updateSettings()\n this._onTimeUpdate()\n // onProgress uses the duration\n this._onProgress()\n }\n\n _updateSettings() {\n // we can't figure out if hls resource is VoD or not until it is being loaded or duration has changed.\n // that's why we check it again and update media control accordingly.\n if (this.getPlaybackType() === Playback.VOD || this.getPlaybackType() === Playback.AOD)\n this.settings.left = ['playpause', 'position', 'duration']\n else\n this.settings.left = ['playstop']\n\n this.settings.seekEnabled = this.isSeekEnabled()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE)\n }\n\n isSeekEnabled() {\n return isFinite(this.getDuration())\n }\n\n getPlaybackType() {\n const onDemandType = this.tagName === 'audio' ? Playback.AOD : Playback.VOD\n return [0, undefined, Infinity].indexOf(this.el.duration) >= 0 ? Playback.LIVE : onDemandType\n }\n\n isHighDefinitionInUse() {\n return false\n }\n\n // On mobile device, HTML5 video element \"retains\" user action consent if\n // load() method is called. See Player.consent().\n consent() {\n !this.isPlaying() && this.el.load()\n }\n\n play() {\n this.trigger(Events.PLAYBACK_PLAY_INTENT)\n this._stopped = false\n this._setupSrc(this._src)\n this._handleBufferingEvents()\n let promise = this.el.play()\n // For more details, see https://developers.google.com/web/updates/2016/03/play-returns-promise\n if (promise && promise.catch)\n promise.catch(() => {})\n\n }\n\n pause() {\n this.el.pause()\n }\n\n stop() {\n this.pause()\n this._stopped = true\n // src will be added again in play()\n this.el.removeAttribute('src')\n this._stopPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_STOP)\n }\n\n volume(value) {\n if (value === 0) {\n this.$el.attr({ muted: 'true' })\n this.el.muted = true\n } else {\n this.$el.attr({ muted: null })\n this.el.muted = false\n }\n this.el.volume = value / 100\n }\n\n /**\n * @deprecated\n * @private\n */\n mute() {\n this.el.muted = true\n }\n\n /**\n * @deprecated\n * @private\n */\n unmute() {\n this.el.muted = false\n }\n\n isMuted() {\n return !!this.el.volume\n }\n\n isPlaying() {\n return !this.el.paused && !this.el.ended\n }\n\n get isReady() {\n return this._isReadyState\n }\n\n _startPlayheadMovingChecks() {\n if (this._playheadMovingTimer !== null)\n return\n\n this._playheadMovingTimeOnCheck = null\n this._determineIfPlayheadMoving()\n this._playheadMovingTimer = setInterval(this._determineIfPlayheadMoving.bind(this), 500)\n }\n\n _stopPlayheadMovingChecks() {\n if (this._playheadMovingTimer === null)\n return\n\n clearInterval(this._playheadMovingTimer)\n this._playheadMovingTimer = null\n this._playheadMoving = false\n }\n\n _determineIfPlayheadMoving() {\n const before = this._playheadMovingTimeOnCheck\n const now = this.el.currentTime\n this._playheadMoving = before !== now\n this._playheadMovingTimeOnCheck = now\n this._handleBufferingEvents()\n }\n\n // this seems to happen when the user is having to wait\n // for something to happen AFTER A USER INTERACTION\n // e.g the player might be buffering, but when `play()` is called\n // only at this point will this be called.\n // Or the user may seek somewhere but the new area requires buffering,\n // so it will fire then as well.\n // On devices where playing is blocked until requested with a user action,\n // buffering may start, but never finish until the user initiates a play,\n // but this only happens when play is actually requested\n _onWaiting() {\n this._loadStarted = true\n this._handleBufferingEvents()\n }\n\n // called after the first frame has loaded\n // note this doesn't fire on ios before the user has requested play\n // ideally the \"loadstart\" event would be used instead, but this fires\n // before a user has requested play on iOS, and also this is always fired\n // even if the preload setting is \"none\". In both these cases this causes\n // infinite buffering until the user does something which isn't great.\n _onLoadedData() {\n this._loadStarted = true\n this._handleBufferingEvents()\n }\n\n // note this doesn't fire on ios before user has requested play\n _onCanPlay() {\n this._handleBufferingEvents()\n }\n\n _onPlaying() {\n this._checkForClosedCaptions()\n this._startPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_PLAY)\n }\n\n _onPause() {\n this._stopPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_PAUSE)\n }\n\n _onSeeking() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_SEEK)\n }\n\n _onSeeked() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_SEEKED)\n }\n\n _onEnded() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n }\n\n // The playback should be classed as buffering if the following are true:\n // - the ready state is less then HAVE_FUTURE_DATA or the playhead isn't moving and it should be\n // - the media hasn't \"ended\",\n // - the media hasn't been stopped\n // - loading has started\n _handleBufferingEvents() {\n const playheadShouldBeMoving = !this.el.ended && !this.el.paused\n const buffering = this._loadStarted && !this.el.ended && !this._stopped && ((playheadShouldBeMoving && !this._playheadMoving) || this.el.readyState < this.el.HAVE_FUTURE_DATA)\n if (this._isBuffering !== buffering) {\n this._isBuffering = buffering\n if (buffering)\n this.trigger(Events.PLAYBACK_BUFFERING, this.name)\n else\n this.trigger(Events.PLAYBACK_BUFFERFULL, this.name)\n\n }\n }\n\n _onError() {\n this.trigger(Events.PLAYBACK_ERROR, this.el.error, this.name)\n }\n\n destroy() {\n this._destroyed = true\n this.handleTextTrackChange && this.el.textTracks.removeEventListener('change', this.handleTextTrackChange)\n this.$el.remove()\n delete this.el.src\n this._src = null\n DomRecycler.garbage(this.$el)\n }\n\n seek(time) {\n this.el.currentTime = time\n }\n\n seekPercentage(percentage) {\n const time = this.el.duration * (percentage / 100)\n this.seek(time)\n }\n\n _checkInitialSeek() {\n const seekTime = seekStringToSeconds()\n if (seekTime !== 0)\n this.seek(seekTime)\n\n }\n\n getCurrentTime() {\n return this.el.currentTime\n }\n\n getDuration() {\n return this.el.duration\n }\n\n _onTimeUpdate() {\n if (this.getPlaybackType() === Playback.LIVE)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: 1, total: 1 }, this.name)\n else\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: this.el.currentTime, total: this.el.duration }, this.name)\n\n }\n\n _onProgress() {\n if (!this.el.buffered.length)\n return\n\n let buffered = []\n let bufferedPos = 0\n for (let i = 0; i < this.el.buffered.length; i++) {\n buffered = [...buffered, { start: this.el.buffered.start(i), end: this.el.buffered.end(i) }]\n if (this.el.currentTime >= buffered[i].start && this.el.currentTime <= buffered[i].end)\n bufferedPos = i\n\n }\n const progress = {\n start: buffered[bufferedPos].start,\n current: buffered[bufferedPos].end,\n total: this.el.duration\n }\n this.trigger(Events.PLAYBACK_PROGRESS, progress, buffered)\n }\n\n _typeFor(src) {\n let mimeTypes = HTML5Video._mimeTypesForUrl(src, MIMETYPES, this.options.mimeType)\n if (mimeTypes.length === 0)\n mimeTypes = HTML5Video._mimeTypesForUrl(src, AUDIO_MIMETYPES, this.options.mimeType)\n\n const mimeType = mimeTypes[0] || ''\n return mimeType.split(';')[0]\n }\n\n _ready() {\n if (this._isReadyState)\n return\n\n this._isReadyState = true\n this.trigger(Events.PLAYBACK_READY, this.name)\n }\n\n _checkForClosedCaptions() {\n // Check if CC available only if current playback is HTML5Video\n if (this.isHTML5Video && !this._ccIsSetup) {\n if (this.hasClosedCaptionsTracks) {\n this.trigger(Events.PLAYBACK_SUBTITLE_AVAILABLE)\n const trackId = this.closedCaptionsTrackId\n this.closedCaptionsTrackId = trackId\n this.handleTextTrackChange = this._handleTextTrackChange.bind(this)\n this.el.textTracks.addEventListener('change', this.handleTextTrackChange)\n }\n this._ccIsSetup = true\n }\n }\n\n _handleTextTrackChange() {\n let tracks = this.closedCaptionsTracks\n let track = tracks.find(track => track.track.mode === 'showing') || { id: -1 }\n\n if (this._ccTrackId !== track.id) {\n this._ccTrackId = track.id\n this.trigger(Events.PLAYBACK_SUBTITLE_CHANGED, {\n id: track.id\n })\n }\n }\n\n get isHTML5Video() {\n return this.name === HTML5Video.prototype.name\n }\n\n get closedCaptionsTracks() {\n let id = 0\n let trackId = () => { return id++ }\n let textTracks = this.el.textTracks ? Array.from(this.el.textTracks) : []\n\n return textTracks\n .filter(track => track.kind === 'subtitles' || track.kind === 'captions')\n .map(track => { return { id: trackId(), name: track.label, track: track } })\n }\n\n get closedCaptionsTrackId() {\n return this._ccTrackId\n }\n\n set closedCaptionsTrackId(trackId) {\n if (!isNumber(trackId))\n return\n\n\n let tracks = this.closedCaptionsTracks\n let showingTrack\n\n // Note: -1 is for hide all tracks\n if (trackId !== -1) {\n showingTrack = tracks.find(track => track.id === trackId)\n if (!showingTrack)\n return // Track id not found\n\n if (showingTrack.track.mode === 'showing')\n return // Track already showing\n\n }\n\n // Since it is possible to display multiple tracks,\n // ensure that all tracks are hidden.\n tracks\n .filter(track => track.track.mode !== 'hidden')\n .forEach(track => track.track.mode = 'hidden')\n\n showingTrack && (showingTrack.track.mode = 'showing')\n\n this._ccTrackId = trackId\n this.trigger(Events.PLAYBACK_SUBTITLE_CHANGED, {\n id: trackId\n })\n }\n\n get template() { return template(tracksHTML) }\n\n render() {\n if (this.options.playback.disableContextMenu) {\n this.$el.on('contextmenu', () => {\n return false\n })\n }\n\n if (this._externalTracks && this._externalTracks.length > 0) {\n this.$el.html(this.template({\n tracks: this._externalTracks,\n }))\n }\n\n this._ready()\n return this\n }\n}\n\nHTML5Video._mimeTypesForUrl = function(resourceUrl, mimeTypesByExtension, mimeType) {\n const extension = (resourceUrl.split('?')[0].match(/.*\\.(.*)$/) || [])[1]\n let mimeTypes = mimeType || (extension && mimeTypesByExtension[extension.toLowerCase()]) || []\n return (mimeTypes.constructor === Array) ? mimeTypes : [mimeTypes]\n}\n\nHTML5Video._canPlay = function(type, mimeTypesByExtension, resourceUrl, mimeType) {\n let mimeTypes = HTML5Video._mimeTypesForUrl(resourceUrl, mimeTypesByExtension, mimeType)\n const media = document.createElement(type)\n return !!(mimeTypes.filter(mediaType => !!media.canPlayType(mediaType).replace(/no/, ''))[0])\n}\n\nHTML5Video.canPlay = function(resourceUrl, mimeType) {\n return HTML5Video._canPlay('audio', AUDIO_MIMETYPES, resourceUrl, mimeType) ||\n HTML5Video._canPlay('video', MIMETYPES, resourceUrl, mimeType)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html5_video/html5_video.js","module.exports = \"<% for (var i = 0; i < tracks.length; i++) { %>\\n <track data-html5-video-track=\\\"<%= i %>\\\" kind=\\\"<%= tracks[i].kind %>\\\" label=\\\"<%= tracks[i].label %>\\\" srclang=\\\"<%= tracks[i].lang %>\\\" src=\\\"<%= tracks[i].src %>\\\" />\\n<% }; %>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/playbacks/html5_video/public/tracks.html\n// module id = 170\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/playbacks/html5_video/public/style.scss\n// module id = 171\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-html5-video] {\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n display: block; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./src/playbacks/html5_video/public/style.scss\n// module id = 172\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 Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport HTML5Video from '../../playbacks/html5_video'\n\n// TODO: remove this playback and change HTML5Video to HTML5Playback (breaking change, only after 0.3.0)\nexport default class HTML5Audio extends HTML5Video {\n get name() { return 'html5_audio' }\n get tagName() { return 'audio' }\n\n get isAudioOnly() {\n return true\n }\n\n updateSettings() {\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.seekEnabled = this.isSeekEnabled()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE)\n }\n\n getPlaybackType() {\n return Playback.AOD\n }\n}\n\nHTML5Audio.canPlay = function(resourceUrl, mimeType) {\n const mimetypes = {\n 'wav': ['audio/wav'],\n 'mp3': ['audio/mp3', 'audio/mpeg;codecs=\"mp3\"'],\n 'aac': ['audio/mp4;codecs=\"mp4a.40.5\"'],\n 'oga': ['audio/ogg']\n }\n return HTML5Video._canPlay('audio', mimetypes, resourceUrl, mimeType)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html5_audio/html5_audio.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 Playback from '../../base/playback'\nimport Events from '../../base/events'\nimport './public/style.scss'\n\nexport default class HTMLImg extends Playback {\n get name() { return 'html_img' }\n get tagName() { return 'img' }\n get attributes() {\n return {\n 'data-html-img': ''\n }\n }\n\n get events() {\n return {\n 'load': '_onLoad',\n 'abort': '_onError',\n 'error': '_onError'\n }\n }\n\n getPlaybackType() {\n return Playback.NO_OP\n }\n\n constructor(params) {\n super(params)\n this.el.src = params.src\n }\n\n render() {\n this.trigger(Events.PLAYBACK_READY, this.name)\n return this\n }\n\n _onLoad() {\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n }\n\n _onError(evt) {\n const m = (evt.type === 'error') ? 'load error' : 'loading aborted'\n this.trigger(Events.PLAYBACK_ERROR, { message: m }, this.name)\n }\n}\n\nHTMLImg.canPlay = function(resource) {\n return /\\.(png|jpg|jpeg|gif|bmp|tiff|pgm|pnm|webp)(|\\?.*)$/i.test(resource)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html_img/html_img.js","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/playbacks/html_img/public/style.scss\n// module id = 175\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-html-img] {\\n max-width: 100%;\\n max-height: 100%; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./src/playbacks/html_img/public/style.scss\n// module id = 176\n// module chunks = 0","import { requestAnimationFrame, cancelAnimationFrame } from '../../base/utils'\nimport Playback from '../../base/playback'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport noOpHTML from './public/error.html'\nimport './public/style.scss'\n\nexport default class NoOp extends Playback {\n get name() { return 'no_op' }\n get template() { return template(noOpHTML) }\n get attributes() {\n return { 'data-no-op': '' }\n }\n\n constructor(...args) {\n super(...args)\n this._noiseFrameNum = -1\n }\n\n render() {\n const playbackNotSupported = this.options.playbackNotSupportedMessage || this.i18n.t('playback_not_supported')\n this.$el.html(this.template({ message: playbackNotSupported }))\n this.trigger(Events.PLAYBACK_READY, this.name)\n const showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp)\n if (this.options.autoPlay || !showForNoOp)\n this._animate()\n\n return this\n }\n\n _noise() {\n this._noiseFrameNum = (this._noiseFrameNum+1)%5\n if (this._noiseFrameNum) {\n // only update noise every 5 frames to save cpu\n return\n }\n\n const idata = this.context.createImageData(this.context.canvas.width, this.context.canvas.height)\n let buffer32\n try {\n buffer32 = new Uint32Array(idata.data.buffer)\n } catch (err) {\n buffer32 = new Uint32Array(this.context.canvas.width * this.context.canvas.height * 4)\n const data=idata.data\n for(let i = 0; i < data.length; i++)\n buffer32[i]=data[i]\n\n }\n\n const len = buffer32.length,\n m = Math.random() * 6 + 4\n let run = 0,\n color = 0\n for (let i = 0; i < len;) {\n if (run < 0) {\n run = m * Math.random()\n const p = Math.pow(Math.random(), 0.4)\n color = (255 * p) << 24\n }\n run -= 1\n buffer32[i++] = color\n }\n this.context.putImageData(idata, 0, 0)\n }\n\n _loop() {\n if (this._stop)\n return\n\n this._noise()\n this._animationHandle = requestAnimationFrame(() => this._loop())\n }\n\n destroy() {\n if (this._animationHandle) {\n cancelAnimationFrame(this._animationHandle)\n this._stop = true\n }\n }\n\n _animate() {\n this.canvas = this.$el.find('canvas[data-no-op-canvas]')[0]\n this.context = this.canvas.getContext('2d')\n this._loop()\n }\n}\n\nNoOp.canPlay = (source) => { // eslint-disable-line no-unused-vars\n return true\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/no_op/no_op.js","module.exports = \"<canvas data-no-op-canvas></canvas>\\n<p data-no-op-msg><%=message%><p>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/playbacks/no_op/public/error.html\n// module id = 178\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/playbacks/no_op/public/style.scss\n// module id = 179\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-no-op] {\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n text-align: center; }\\n\\n[data-no-op] p[data-no-op-msg] {\\n position: absolute;\\n text-align: center;\\n font-size: 25px;\\n left: 0;\\n right: 0;\\n color: white;\\n padding: 10px;\\n /* center vertically */\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n transform: translateY(-50%);\\n max-height: 100%;\\n overflow: auto; }\\n\\n[data-no-op] canvas[data-no-op-canvas] {\\n background-color: #777;\\n height: 100%;\\n width: 100%; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./src/playbacks/no_op/public/style.scss\n// module id = 180\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 UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport spinnerHTML from './public/spinner.html'\nimport './public/spinner.scss'\n\nexport default class SpinnerThreeBouncePlugin extends UIContainerPlugin {\n get name() { return 'spinner' }\n get attributes() {\n return {\n 'data-spinner':'',\n 'class': 'spinner-three-bounce'\n }\n }\n\n constructor(container) {\n super(container)\n this.template = template(spinnerHTML)\n this.showTimeout = null\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onStop)\n this.render()\n }\n\n onBuffering() {\n this.show()\n }\n\n onBufferFull() {\n this.hide()\n }\n\n onStop() {\n this.hide()\n }\n\n show() {\n if (this.showTimeout === null)\n this.showTimeout = setTimeout(() => this.$el.show(), 300)\n\n }\n\n hide() {\n if (this.showTimeout !== null) {\n clearTimeout(this.showTimeout)\n this.showTimeout = null\n }\n this.$el.hide()\n }\n\n render() {\n this.$el.html(this.template())\n this.container.$el.append(this.$el)\n this.$el.hide()\n if (this.container.buffering)\n this.onBuffering()\n\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/spinner_three_bounce/spinner_three_bounce.js","module.exports = \"<div data-bounce1></div><div data-bounce2></div><div data-bounce3></div>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/spinner_three_bounce/public/spinner.html\n// module id = 182\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./spinner.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./spinner.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./spinner.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/spinner_three_bounce/public/spinner.scss\n// module id = 183\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".spinner-three-bounce[data-spinner] {\\n position: absolute;\\n margin: 0 auto;\\n width: 70px;\\n text-align: center;\\n z-index: 999;\\n left: 0;\\n right: 0;\\n margin-left: auto;\\n margin-right: auto;\\n /* center vertically */\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n transform: translateY(-50%); }\\n .spinner-three-bounce[data-spinner] > div {\\n width: 18px;\\n height: 18px;\\n background-color: #FFFFFF;\\n border-radius: 100%;\\n display: inline-block;\\n -webkit-animation: bouncedelay 1.4s infinite ease-in-out;\\n animation: bouncedelay 1.4s infinite ease-in-out;\\n /* Prevent first frame from flickering when animation starts */\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both; }\\n .spinner-three-bounce[data-spinner] [data-bounce1] {\\n -webkit-animation-delay: -0.32s;\\n animation-delay: -0.32s; }\\n .spinner-three-bounce[data-spinner] [data-bounce2] {\\n -webkit-animation-delay: -0.16s;\\n animation-delay: -0.16s; }\\n\\n@-webkit-keyframes bouncedelay {\\n 0%, 80%, 100% {\\n -webkit-transform: scale(0);\\n transform: scale(0); }\\n 40% {\\n -webkit-transform: scale(1);\\n transform: scale(1); } }\\n\\n@keyframes bouncedelay {\\n 0%, 80%, 100% {\\n -webkit-transform: scale(0);\\n transform: scale(0); }\\n 40% {\\n -webkit-transform: scale(1);\\n transform: scale(1); } }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./src/plugins/spinner_three_bounce/public/spinner.scss\n// module id = 184\n// module chunks = 0","import StatsPlugin from './stats'\nexport default StatsPlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/stats/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 ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\nimport $ from 'clappr-zepto'\n\nexport default class StatsPlugin extends ContainerPlugin {\n get name() { return 'stats' }\n\n constructor(container) {\n super(container)\n this.setInitialAttrs()\n this.reportInterval = this.options.reportInterval || 5000\n this.state = 'IDLE'\n }\n\n bindEvents() {\n this.listenTo(this.container.playback, Events.PLAYBACK_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_DESTROYED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_STATS_ADD, this.onStatsAdd)\n this.listenTo(this.container, Events.CONTAINER_BITRATE, this.onStatsAdd)\n this.listenTo(this.container.playback, Events.PLAYBACK_STATS_ADD, this.onStatsAdd)\n }\n\n setInitialAttrs() {\n this.firstPlay = true\n this.startupTime = 0\n this.rebufferingTime = 0\n this.watchingTime = 0\n this.rebuffers = 0\n this.externalMetrics = {}\n }\n\n onPlay() {\n this.state = 'PLAYING'\n this.watchingTimeInit = Date.now()\n if (!this.intervalId)\n this.intervalId = setInterval(this.report.bind(this), this.reportInterval)\n\n }\n\n onStop() {\n clearInterval(this.intervalId)\n this.report()\n this.intervalId = undefined\n this.state = 'STOPPED'\n }\n\n onBuffering() {\n if (this.firstPlay)\n this.startupTimeInit = Date.now()\n else\n this.rebufferingTimeInit = Date.now()\n\n this.state = 'BUFFERING'\n this.rebuffers++\n }\n\n onBufferFull() {\n if (this.firstPlay && this.startupTimeInit) {\n this.firstPlay = false\n this.startupTime = Date.now() - this.startupTimeInit\n this.watchingTimeInit = Date.now()\n } else if (this.rebufferingTimeInit) { this.rebufferingTime += this.getRebufferingTime() }\n\n this.rebufferingTimeInit = undefined\n this.state = 'PLAYING'\n }\n\n getRebufferingTime() {\n return Date.now() - this.rebufferingTimeInit\n }\n\n getWatchingTime() {\n const totalTime = (Date.now() - this.watchingTimeInit)\n return totalTime - this.rebufferingTime\n }\n\n isRebuffering() {\n return !!this.rebufferingTimeInit\n }\n\n onStatsAdd(metric) {\n $.extend(this.externalMetrics, metric)\n }\n\n getStats() {\n const metrics = {\n startupTime: this.startupTime,\n rebuffers: this.rebuffers,\n rebufferingTime: this.isRebuffering()? this.rebufferingTime + this.getRebufferingTime(): this.rebufferingTime,\n watchingTime: this.isRebuffering()? this.getWatchingTime() - this.getRebufferingTime(): this.getWatchingTime()\n }\n $.extend(metrics, this.externalMetrics)\n return metrics\n }\n\n report() {\n this.container.statsReport(this.getStats())\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/stats/stats.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 UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport watermarkHTML from './public/watermark.html'\nimport './public/watermark.scss'\n\nexport default class WaterMarkPlugin extends UIContainerPlugin {\n get name() { return 'watermark' }\n\n get template() { return template(watermarkHTML) }\n\n constructor(container) {\n super(container)\n this.configure()\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.configure)\n }\n\n configure() {\n this.position = this.options.position || 'bottom-right'\n if (this.options.watermark) {\n this.imageUrl = this.options.watermark\n this.imageLink = this.options.watermarkLink\n this.render()\n } else { this.$el.remove() }\n\n }\n\n onPlay() {\n if (!this.hidden)\n this.$el.show()\n }\n\n onStop() {\n this.$el.hide()\n }\n\n render() {\n this.$el.hide()\n const templateOptions = { position: this.position, imageUrl: this.imageUrl, imageLink: this.imageLink }\n this.$el.html(this.template(templateOptions))\n this.container.$el.append(this.$el)\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/watermark/watermark.js","module.exports = \"<div data-watermark data-watermark-<%=position %>>\\n<% if(typeof imageLink !== 'undefined') { %>\\n<a target=_blank href=\\\"<%= imageLink %>\\\">\\n<% } %>\\n<img src=\\\"<%= imageUrl %>\\\">\\n<% if(typeof imageLink !== 'undefined') { %>\\n</a>\\n<% } %>\\n</div>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/watermark/public/watermark.html\n// module id = 188\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./watermark.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./watermark.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./watermark.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/watermark/public/watermark.scss\n// module id = 189\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-watermark] {\\n position: absolute;\\n min-width: 70px;\\n max-width: 200px;\\n width: 12%;\\n text-align: center;\\n z-index: 10; }\\n\\n[data-watermark] a {\\n outline: none;\\n cursor: pointer; }\\n\\n[data-watermark] img {\\n max-width: 100%; }\\n\\n[data-watermark-bottom-left] {\\n bottom: 10px;\\n left: 10px; }\\n\\n[data-watermark-bottom-right] {\\n bottom: 10px;\\n right: 42px; }\\n\\n[data-watermark-top-left] {\\n top: 10px;\\n left: 10px; }\\n\\n[data-watermark-top-right] {\\n top: 10px;\\n right: 37px; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./src/plugins/watermark/public/watermark.scss\n// module id = 190\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 UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport posterHTML from './public/poster.html'\nimport playIcon from '../../icons/01-play.svg'\nimport './public/poster.scss'\n\nexport default class PosterPlugin extends UIContainerPlugin {\n get name() { return 'poster' }\n get template() { return template(posterHTML) }\n get shouldRender() {\n const showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp)\n return this.container.playback.name !== 'html_img' && (this.container.playback.getPlaybackType() !== Playback.NO_OP || showForNoOp)\n }\n\n get attributes() {\n return {\n 'class': 'player-poster',\n 'data-poster': ''\n }\n }\n\n get events() {\n return {\n 'click': 'clicked'\n }\n }\n\n get showOnVideoEnd() {\n return !this.options.poster || this.options.poster.showOnVideoEnd || this.options.poster.showOnVideoEnd === undefined\n }\n\n constructor(container) {\n super(container)\n this.hasStartedPlaying = false\n this.playRequested = false\n this.render()\n process.nextTick(() => this.update())\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.update)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.update)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.render)\n this.showOnVideoEnd && this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n }\n\n stopListening() {\n super.stopListening()\n }\n\n onPlay() {\n this.hasStartedPlaying = true\n this.update()\n }\n\n onStop() {\n this.hasStartedPlaying = false\n this.playRequested = false\n this.update()\n }\n\n showPlayButton(show) {\n if (show && (!this.options.chromeless || this.options.allowUserInteraction)) {\n this.$playButton.show()\n this.$el.addClass('clickable')\n } else {\n this.$playButton.hide()\n this.$el.removeClass('clickable')\n }\n }\n\n clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n this.playRequested = true\n this.update()\n this.container.play()\n }\n return false\n }\n\n shouldHideOnPlay() {\n // Audio broadcasts should keep the poster up; video should hide poster while playing.\n return !this.container.playback.isAudioOnly\n }\n\n update() {\n if (!this.shouldRender)\n return\n\n let showPlayButton = !this.playRequested && !this.hasStartedPlaying && !this.container.buffering\n this.showPlayButton(showPlayButton)\n if (!this.hasStartedPlaying) {\n this.container.disableMediaControl()\n this.$el.show()\n } else {\n this.container.enableMediaControl()\n if (this.shouldHideOnPlay())\n this.$el.hide()\n\n }\n }\n\n render() {\n if (!this.shouldRender)\n return\n\n this.$el.html(this.template())\n\n const isRegularPoster = this.options.poster && this.options.poster.custom === undefined\n\n if (isRegularPoster) {\n const posterUrl = this.options.poster.url || this.options.poster\n this.$el.css({ 'background-image': 'url(' + posterUrl + ')' })\n } else if (this.options.poster) { this.$el.css({ 'background': this.options.poster.custom }) }\n\n this.container.$el.append(this.el)\n this.$playWrapper = this.$el.find('.play-wrapper')\n this.$playWrapper.append(playIcon)\n this.$playButton = this.$playWrapper.find('svg')\n this.$playButton.addClass('poster-icon')\n this.$playButton.attr('data-poster', '')\n\n let buttonsColor = this.options.mediacontrol && this.options.mediacontrol.buttons\n if (buttonsColor)\n this.$el.find('svg path').css('fill', buttonsColor)\n\n\n if (this.options.mediacontrol && this.options.mediacontrol.buttons) {\n buttonsColor = this.options.mediacontrol.buttons\n this.$playButton.css('color', buttonsColor)\n }\n this.update()\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/poster/poster.js","module.exports = \"<div class=\\\"play-wrapper\\\" data-poster></div>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/poster/public/poster.html\n// module id = 192\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./poster.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./poster.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./poster.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/poster/public/poster.scss\n// module id = 193\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".player-poster[data-poster] {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n z-index: 998;\\n top: 0;\\n left: 0;\\n background-color: #000;\\n background-size: cover;\\n background-repeat: no-repeat;\\n background-position: 50% 50%; }\\n .player-poster[data-poster].clickable {\\n cursor: pointer; }\\n .player-poster[data-poster]:hover .play-wrapper[data-poster] {\\n opacity: 1; }\\n .player-poster[data-poster] .play-wrapper[data-poster] {\\n width: 100%;\\n height: 25%;\\n margin: 0 auto;\\n opacity: 0.75;\\n transition: opacity 0.1s ease; }\\n .player-poster[data-poster] .play-wrapper[data-poster] svg {\\n height: 100%; }\\n .player-poster[data-poster] .play-wrapper[data-poster] svg path {\\n fill: #fff; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./src/plugins/poster/public/poster.scss\n// module id = 194\n// module chunks = 0","import GoogleAnalytics from './google_analytics'\nexport default GoogleAnalytics\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/google_analytics/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 ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\n\nexport default class GoogleAnalytics extends ContainerPlugin {\n get name() { return 'google_analytics' }\n constructor(container) {\n super(container)\n if (this.container.options.gaAccount) {\n this.account = this.container.options.gaAccount\n this.trackerName = (this.container.options.gaTrackerName) ? this.container.options.gaTrackerName + '.' : 'Clappr.'\n this.domainName = this.container.options.gaDomainName\n this.currentHDState = undefined\n this.embedScript()\n }\n }\n\n embedScript() {\n if (!window._gat) {\n const script = document.createElement('script')\n script.setAttribute('type', 'text/javascript')\n script.setAttribute('async', 'async')\n script.setAttribute('src', '//www.google-analytics.com/ga.js')\n script.onload = () => this.addEventListeners()\n document.body.appendChild(script)\n } else { this.addEventListeners() }\n\n }\n\n addEventListeners() {\n if (this.container) {\n this.listenTo(this.container, Events.CONTAINER_READY, this.onReady)\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_PAUSE, this.onPause)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onEnded)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onError)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKSTATE, this.onPlaybackChanged)\n this.listenTo(this.container, Events.CONTAINER_VOLUME, (event) => this.onVolumeChanged(event))\n this.listenTo(this.container, Events.CONTAINER_SEEK, (event) => this.onSeek(event))\n this.listenTo(this.container, Events.CONTAINER_FULL_SCREEN, this.onFullscreen)\n this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.onHD)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.onDVR)\n }\n _gaq.push([this.trackerName + '_setAccount', this.account])\n if (this.domainName)\n _gaq.push([this.trackerName + '_setDomainName', this.domainName])\n }\n\n onReady(){\n this.push(['Video', 'Playback', this.container.playback.name])\n }\n\n onPlay() {\n this.push(['Video', 'Play', this.container.playback.src])\n }\n\n onStop() {\n this.push(['Video', 'Stop', this.container.playback.src])\n }\n\n onEnded() {\n this.push(['Video', 'Ended', this.container.playback.src])\n }\n\n onBuffering() {\n this.push(['Video', 'Buffering', this.container.playback.src])\n }\n\n onBufferFull() {\n this.push(['Video', 'Bufferfull', this.container.playback.src])\n }\n\n onError() {\n this.push(['Video', 'Error', this.container.playback.src])\n }\n\n onHD(isHD) {\n const status = isHD ? 'ON': 'OFF'\n if (status !== this.currentHDState) {\n this.currentHDState = status\n this.push(['Video', 'HD - ' + status, this.container.playback.src])\n }\n }\n\n onPlaybackChanged(playbackState) {\n if (playbackState.type !== null)\n this.push(['Video', 'Playback Type - ' + playbackState.type, this.container.playback.src])\n\n }\n\n onDVR(dvrInUse) {\n const status = dvrInUse? 'ON': 'OFF'\n this.push(['Interaction', 'DVR - ' + status, this.container.playback.src])\n }\n\n onPause() {\n this.push(['Video', 'Pause', this.container.playback.src])\n }\n\n onSeek() {\n this.push(['Video', 'Seek', this.container.playback.src])\n }\n\n onVolumeChanged() {\n this.push(['Interaction', 'Volume', this.container.playback.src])\n }\n\n onFullscreen() {\n this.push(['Interaction', 'Fullscreen', this.container.playback.src])\n }\n\n\n push(array) {\n const res = [this.trackerName + '_trackEvent'].concat(array)\n _gaq.push(res)\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/google_analytics/google_analytics.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 ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\n\nexport default class ClickToPausePlugin extends ContainerPlugin {\n get name() { return 'click_to_pause' }\n\n constructor(container) {\n super(container)\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_CLICK, this.click)\n this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate)\n }\n\n click() {\n if (this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrEnabled()) {\n if (this.container.isPlaying())\n this.container.pause()\n else\n this.container.play()\n\n }\n }\n\n settingsUpdate() {\n const pointerEnabled = this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrEnabled()\n if (pointerEnabled === this.pointerEnabled) return\n\n const method = pointerEnabled ? 'addClass' : 'removeClass'\n this.container.$el[method]('pointer-enabled')\n this.pointerEnabled = pointerEnabled\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/click_to_pause/click_to_pause.js","import UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport Events from '../../base/events'\nimport dvrHTML from './public/index.html'\nimport './public/dvr_controls.scss'\n\nexport default class DVRControls extends UICorePlugin {\n get template() { return template(dvrHTML) }\n get name() { return 'dvr_controls' }\n get events() {\n return {\n 'click .live-button': 'click'\n }\n }\n get attributes() {\n return {\n 'class': 'dvr-controls',\n 'data-dvr-controls': ''\n }\n }\n\n constructor(core) {\n super(core)\n this.settingsUpdate()\n }\n\n bindEvents() {\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.containerChanged)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.settingsUpdate)\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.render)\n if (this.core.getCurrentContainer()) {\n this.listenToOnce(this.core.getCurrentContainer(), Events.CONTAINER_TIMEUPDATE, this.render)\n this.listenTo(this.core.getCurrentContainer(), Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.dvrChanged)\n }\n }\n\n containerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n dvrChanged(dvrEnabled) {\n if (this.core.getPlaybackType() !== Playback.LIVE) return\n this.settingsUpdate()\n this.core.mediaControl.$el.addClass('live')\n if (dvrEnabled) {\n this.core.mediaControl.$el.addClass('dvr')\n this.core.mediaControl.$el.find('.media-control-indicator[data-position], .media-control-indicator[data-duration]').hide()\n } else { this.core.mediaControl.$el.removeClass('dvr') }\n\n }\n\n click() {\n const mediaControl = this.core.mediaControl\n const container = mediaControl.container\n if (!container.isPlaying())\n container.play()\n\n if (mediaControl.$el.hasClass('dvr'))\n container.seek(container.getDuration())\n\n }\n\n settingsUpdate() {\n this.stopListening()\n this.core.mediaControl.$el.removeClass('live')\n if (this.shouldRender()) {\n this.render()\n this.$el.click(() => this.click())\n }\n this.bindEvents()\n }\n\n shouldRender() {\n const useDvrControls = this.core.options.useDvrControls === undefined || !!this.core.options.useDvrControls\n return useDvrControls && this.core.getPlaybackType() === Playback.LIVE\n }\n\n render() {\n this.$el.html(this.template({\n live: this.core.i18n.t('live'),\n backToLive: this.core.i18n.t('back_to_live')\n }))\n if (this.shouldRender()) {\n this.core.mediaControl.$el.addClass('live')\n this.core.mediaControl.$('.media-control-left-panel[data-media-control]').append(this.$el)\n }\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/dvr_controls/dvr_controls.js","module.exports = \"<div class=\\\"live-info\\\"><%= live %></div>\\n<button type=\\\"button\\\" class=\\\"live-button\\\" aria-label=\\\"<%= backToLive %>\\\"><%= backToLive %></button>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/dvr_controls/public/index.html\n// module id = 199\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./dvr_controls.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./dvr_controls.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./dvr_controls.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/dvr_controls/public/dvr_controls.scss\n// module id = 200\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".dvr-controls[data-dvr-controls] {\\n display: inline-block;\\n float: left;\\n color: #fff;\\n line-height: 32px;\\n font-size: 10px;\\n font-weight: bold;\\n margin-left: 6px; }\\n .dvr-controls[data-dvr-controls] .live-info {\\n cursor: default;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-transform: uppercase; }\\n .dvr-controls[data-dvr-controls] .live-info:before {\\n content: \\\"\\\";\\n display: inline-block;\\n position: relative;\\n width: 7px;\\n height: 7px;\\n border-radius: 3.5px;\\n margin-right: 3.5px;\\n background-color: #ff0101; }\\n .dvr-controls[data-dvr-controls] .live-info.disabled {\\n opacity: 0.3; }\\n .dvr-controls[data-dvr-controls] .live-info.disabled:before {\\n background-color: #fff; }\\n .dvr-controls[data-dvr-controls] .live-button {\\n cursor: pointer;\\n outline: none;\\n display: none;\\n border: 0;\\n color: #fff;\\n background-color: transparent;\\n height: 32px;\\n padding: 0;\\n opacity: 0.7;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-transform: uppercase;\\n transition: all 0.1s ease; }\\n .dvr-controls[data-dvr-controls] .live-button:before {\\n content: \\\"\\\";\\n display: inline-block;\\n position: relative;\\n width: 7px;\\n height: 7px;\\n border-radius: 3.5px;\\n margin-right: 3.5px;\\n background-color: #fff; }\\n .dvr-controls[data-dvr-controls] .live-button:hover {\\n opacity: 1;\\n text-shadow: rgba(255, 255, 255, 0.75) 0 0 5px; }\\n\\n.dvr .dvr-controls[data-dvr-controls] .live-info {\\n display: none; }\\n\\n.dvr .dvr-controls[data-dvr-controls] .live-button {\\n display: block; }\\n\\n.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] {\\n background-color: #005aff; }\\n\\n.media-control.live[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n background-color: #ff0101; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./src/plugins/dvr_controls/public/dvr_controls.scss\n// module id = 201\n// module chunks = 0","import ClosedCaptions from './closed_captions'\nexport default ClosedCaptions\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/closed_captions/index.js","import UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport ccIcon from '../../icons/09-cc.svg'\nimport ccHTML from './public/closed_captions.html'\nimport './public/closed_captions.scss'\n\nexport default class ClosedCaptions extends UICorePlugin {\n get name() { return 'closed_captions' }\n\n get template() { return template(ccHTML) }\n\n get events() {\n return {\n 'click [data-cc-button]': 'toggleContextMenu',\n 'click [data-cc-select]': 'onTrackSelect',\n }\n }\n\n get attributes() {\n return {\n 'class': 'cc-controls',\n 'data-cc-controls': ''\n }\n }\n\n constructor(core) {\n super(core)\n const config = core.options.closedCaptionsConfig\n this._title = config && config.title ? config.title : null\n this._ariaLabel = config && config.ariaLabel ? config.ariaLabel : 'cc-button'\n this._labelCb = config && config.labelCallback && typeof config.labelCallback === 'function'\n ? config.labelCallback\n : track => { return track.name }\n }\n\n bindEvents() {\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.containerChanged)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.render)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_HIDE, this.hideContextMenu)\n this.container = this.core.getCurrentContainer()\n if (this.container) {\n this.listenTo(this.container, Events.CONTAINER_SUBTITLE_AVAILABLE, this.onSubtitleAvailable)\n this.listenTo(this.container, Events.CONTAINER_SUBTITLE_CHANGED, this.onSubtitleChanged)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onContainerStop)\n }\n }\n\n onContainerStop() {\n this.ccAvailable(false)\n }\n\n containerChanged() {\n this.ccAvailable(false)\n this.stopListening()\n this.bindEvents()\n }\n\n onSubtitleAvailable() {\n this.renderCcButton()\n this.ccAvailable(true)\n }\n\n onSubtitleChanged(track) {\n this.setCurrentContextMenuElement(track.id)\n }\n\n onTrackSelect(event) {\n const trackId = parseInt(event.target.dataset.ccSelect, 10)\n this.container.closedCaptionsTrackId = trackId\n this.hideContextMenu()\n event.stopPropagation()\n return false\n }\n\n ccAvailable(hasCC) {\n const method = hasCC ? 'addClass' : 'removeClass'\n this.$el[method]('available')\n }\n\n toggleContextMenu() {\n this.$el.find('ul').toggle()\n }\n\n hideContextMenu() {\n this.$el.find('ul').hide()\n }\n\n contextMenuElement(id) {\n return this.$el.find('ul a'+(!isNaN(id) ? '[data-cc-select=\"'+id+'\"]' : '')).parent()\n }\n\n setCurrentContextMenuElement(trackId) {\n if (this._trackId !== trackId) {\n this.contextMenuElement().removeClass('current')\n this.contextMenuElement(trackId).addClass('current')\n const method = trackId > -1 ? 'addClass' : 'removeClass'\n this.$ccButton[method]('enabled')\n this._trackId = trackId\n }\n }\n\n renderCcButton() {\n let tracks = this.container ? this.container.closedCaptionsTracks : []\n for (let i = 0; i < tracks.length; i++)\n tracks[i].label = this._labelCb(tracks[i])\n\n\n this.$el.html(this.template({\n ariaLabel: this._ariaLabel,\n disabledLabel: this.core.i18n.t('disabled'),\n title: this._title,\n tracks: tracks\n }))\n\n this.$ccButton = this.$el.find('button.cc-button[data-cc-button]')\n this.$ccButton.append(ccIcon)\n this.$el.append(this.style)\n }\n\n render() {\n this.renderCcButton()\n\n const $fullscreen = this.core.mediaControl.$el.find('button[data-fullscreen]')\n if ($fullscreen[0])\n this.$el.insertAfter($fullscreen)\n else\n this.core.mediaControl.$el.find('.media-control-right-panel[data-media-control]').prepend(this.$el)\n\n\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/closed_captions/closed_captions.js","module.exports = \"<svg version=\\\"1.1\\\" id=\\\"Layer_1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 49 41.8\\\" style=\\\"enable-background:new 0 0 49 41.8;\\\" xml:space=\\\"preserve\\\"><path d=\\\"M47.1,0H3.2C1.6,0,0,1.2,0,2.8v31.5C0,35.9,1.6,37,3.2,37h11.9l3.2,1.9l4.7,2.7c0.9,0.5,2-0.1,2-1.1V37h22.1 c1.6,0,1.9-1.1,1.9-2.7V2.8C49,1.2,48.7,0,47.1,0z M7.2,18.6c0-4.8,3.5-9.3,9.9-9.3c4.8,0,7.1,2.7,7.1,2.7l-2.5,4 c0,0-1.7-1.7-4.2-1.7c-2.8,0-4.3,2.1-4.3,4.3c0,2.1,1.5,4.4,4.5,4.4c2.5,0,4.9-2.1,4.9-2.1l2.2,4.2c0,0-2.7,2.9-7.6,2.9 C10.8,27.9,7.2,23.5,7.2,18.6z M36.9,27.9c-6.4,0-9.9-4.4-9.9-9.3c0-4.8,3.5-9.3,9.9-9.3C41.7,9.3,44,12,44,12l-2.5,4 c0,0-1.7-1.7-4.2-1.7c-2.8,0-4.3,2.1-4.3,4.3c0,2.1,1.5,4.4,4.5,4.4c2.5,0,4.9-2.1,4.9-2.1l2.2,4.2C44.5,25,41.9,27.9,36.9,27.9z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/09-cc.svg\n// module id = 204\n// module chunks = 0","module.exports = \"<button type=\\\"button\\\" class=\\\"cc-button media-control-button media-control-icon\\\" data-cc-button aria-label=\\\"<%= ariaLabel %>\\\"></button>\\n<ul>\\n <% if (title) { %>\\n <li data-title><%= title %></li>\\n <% }; %>\\n <li><a href=\\\"#\\\" data-cc-select=\\\"-1\\\"><%= disabledLabel %></a></li>\\n <% for (var i = 0; i < tracks.length; i++) { %>\\n <li><a href=\\\"#\\\" data-cc-select=\\\"<%= tracks[i].id %>\\\"><%= tracks[i].label %></a></li>\\n <% }; %>\\n</ul>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/closed_captions/public/closed_captions.html\n// module id = 205\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./closed_captions.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./closed_captions.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./closed_captions.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/closed_captions/public/closed_captions.scss\n// module id = 206\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".cc-controls[data-cc-controls] {\\n float: right;\\n position: relative;\\n display: none; }\\n .cc-controls[data-cc-controls].available {\\n display: block; }\\n .cc-controls[data-cc-controls] .cc-button {\\n padding: 6px !important; }\\n .cc-controls[data-cc-controls] .cc-button.enabled {\\n display: block;\\n opacity: 1.0; }\\n .cc-controls[data-cc-controls] .cc-button.enabled:hover {\\n opacity: 1.0;\\n text-shadow: none; }\\n .cc-controls[data-cc-controls] > ul {\\n list-style-type: none;\\n position: absolute;\\n bottom: 25px;\\n border: 1px solid black;\\n display: none;\\n background-color: #e6e6e6; }\\n .cc-controls[data-cc-controls] li {\\n font-size: 10px; }\\n .cc-controls[data-cc-controls] li[data-title] {\\n background-color: #c3c2c2;\\n padding: 5px; }\\n .cc-controls[data-cc-controls] li a {\\n color: #444;\\n padding: 2px 10px;\\n display: block;\\n text-decoration: none; }\\n .cc-controls[data-cc-controls] li a:hover {\\n background-color: #555;\\n color: white; }\\n .cc-controls[data-cc-controls] li a:hover a {\\n color: white;\\n text-decoration: none; }\\n .cc-controls[data-cc-controls] li.current a {\\n color: #f00; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./src/plugins/closed_captions/public/closed_captions.scss\n// module id = 207\n// module chunks = 0","import CorePlugin from '../../base/core_plugin'\nimport Events from '../../base/events'\nimport $ from 'clappr-zepto'\n\nimport playIcon from '../../icons/01-play.svg'\nimport pauseIcon from '../../icons/02-pause.svg'\n\nconst oldIcon = $('link[rel=\"shortcut icon\"]')\n\nexport default class Favicon extends CorePlugin {\n get name() { return 'favicon' }\n get oldIcon() { return oldIcon }\n\n constructor(core) {\n super(core)\n this._container = null\n this.configure()\n }\n\n configure() {\n if (this.core.options.changeFavicon) {\n if (!this.enabled) {\n this.stopListening(this.core, Events.CORE_OPTIONS_CHANGE)\n this.enable()\n }\n } else if (this.enabled) {\n this.disable()\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n }\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.containerChanged)\n if (this.core.mediaControl.container)\n this.containerChanged()\n\n }\n\n containerChanged() {\n this._container && this.stopListening(this._container)\n this._container = this.core.mediaControl.container\n this.listenTo(this._container, Events.CONTAINER_PLAY, this.setPlayIcon)\n this.listenTo(this._container, Events.CONTAINER_PAUSE, this.setPauseIcon)\n this.listenTo(this._container, Events.CONTAINER_STOP, this.resetIcon)\n this.listenTo(this._container, Events.CONTAINER_ENDED, this.resetIcon)\n this.listenTo(this._container, Events.CONTAINER_ERROR, this.resetIcon)\n this.resetIcon()\n }\n\n disable() {\n super.disable()\n this.resetIcon()\n }\n\n destroy() {\n super.destroy()\n this.resetIcon()\n }\n\n createIcon(svg) {\n const canvas = $('<canvas/>')\n canvas[0].width = 16\n canvas[0].height = 16\n const ctx = canvas[0].getContext('2d')\n ctx.fillStyle = '#000'\n const d = $(svg).find('path').attr('d')\n const path = new Path2D(d)\n ctx.fill(path)\n const icon = $('<link rel=\"shortcut icon\" type=\"image/png\"/>')\n icon.attr('href', canvas[0].toDataURL('image/png'))\n return icon\n }\n\n setPlayIcon() {\n if (!this.playIcon)\n this.playIcon = this.createIcon(playIcon)\n\n this.changeIcon(this.playIcon)\n }\n\n setPauseIcon() {\n if (!this.pauseIcon)\n this.pauseIcon = this.createIcon(pauseIcon)\n\n this.changeIcon(this.pauseIcon)\n }\n\n resetIcon() {\n $('link[rel=\"shortcut icon\"]').remove()\n $('head').append(this.oldIcon)\n }\n\n changeIcon(icon) {\n if (icon) {\n $('link[rel=\"shortcut icon\"]').remove()\n $('head').append(icon)\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/favicon/favicon.js","import SeekTime from './seek_time'\nexport default SeekTime\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/seek_time/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 { formatTime } from '../../base/utils'\n\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport seekTimeHTML from './public/seek_time.html'\nimport './public/seek_time.scss'\n\nexport default class SeekTime extends UICorePlugin {\n get name() { return 'seek_time' }\n get template() {\n return template(seekTimeHTML)\n }\n get attributes() {\n return {\n 'class': 'seek-time',\n 'data-seek-time': ''\n }\n }\n get mediaControl() { return this.core.mediaControl }\n get mediaControlContainer() { return this.mediaControl.container }\n get isLiveStreamWithDvr() { return this.mediaControlContainer && this.mediaControlContainer.getPlaybackType() === Playback.LIVE && this.mediaControlContainer.isDvrEnabled() }\n get durationShown() { return this.isLiveStreamWithDvr && !this.actualLiveTime }\n get useActualLiveTime() { return this.actualLiveTime && this.isLiveStreamWithDvr }\n constructor(core) {\n super(core)\n this.hoveringOverSeekBar = false\n this.hoverPosition = null\n this.duration = null\n this.firstFragDateTime = null\n this.actualLiveTime = !!this.mediaControl.options.actualLiveTime\n if (this.actualLiveTime) {\n if (this.mediaControl.options.actualLiveServerTime)\n this.actualLiveServerTimeDiff = new Date().getTime() - new Date(this.mediaControl.options.actualLiveServerTime).getTime()\n else\n this.actualLiveServerTimeDiff = 0\n }\n }\n\n bindEvents() {\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_RENDERED, this.render)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, this.showTime)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, this.hideTime)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.onContainerChanged)\n if (this.mediaControlContainer) {\n this.listenTo(this.mediaControlContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.update)\n this.listenTo(this.mediaControlContainer, Events.CONTAINER_TIMEUPDATE, this.updateDuration)\n }\n }\n\n onContainerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n updateDuration(timeProgress) {\n this.duration = timeProgress.total\n this.firstFragDateTime = timeProgress.firstFragDateTime\n this.update()\n }\n\n showTime(event) {\n this.hoveringOverSeekBar = true\n this.calculateHoverPosition(event)\n this.update()\n }\n\n hideTime() {\n this.hoveringOverSeekBar = false\n this.update()\n }\n\n calculateHoverPosition(event) {\n const offset = event.pageX - this.mediaControl.$seekBarContainer.offset().left\n // proportion into the seek bar that the mouse is hovered over 0-1\n this.hoverPosition = Math.min(1, Math.max(offset/this.mediaControl.$seekBarContainer.width(), 0))\n }\n\n getSeekTime() {\n let seekTime, secondsSinceMidnight, d, e\n if (this.useActualLiveTime) {\n if (this.actualLiveServerTimeDiff) {\n d = new Date(new Date().getTime() - this.actualLiveServerTimeDiff)\n e = new Date(d)\n secondsSinceMidnight = (e - d.setHours(0,0,0,0)) / 1000\n } else if (this.firstFragDateTime) {\n e = new Date(this.firstFragDateTime)\n d = new Date(this.firstFragDateTime)\n d.setHours(0,0,0,0)\n secondsSinceMidnight = ((e.getTime() - d.getTime()) / 1000) + this.duration\n }\n seekTime = (secondsSinceMidnight - this.duration) + (this.hoverPosition * this.duration)\n if (seekTime < 0)\n seekTime += 86400\n\n } else { seekTime = this.hoverPosition * this.duration }\n\n return { seekTime, secondsSinceMidnight }\n }\n\n update() {\n if (!this.rendered) {\n // update() is always called after a render\n return\n }\n if (!this.shouldBeVisible()) {\n this.$el.hide()\n this.$el.css('left', '-100%')\n } else {\n const seekTime = this.getSeekTime()\n const currentSeekTime = formatTime(seekTime.seekTime, this.useActualLiveTime)\n // only update dom if necessary, ie time actually changed\n if (currentSeekTime !== this.displayedSeekTime) {\n this.$seekTimeEl.text(currentSeekTime)\n this.displayedSeekTime = currentSeekTime\n }\n\n if (this.durationShown) {\n this.$durationEl.show()\n const currentDuration = formatTime(this.actualLiveTime ? seekTime.secondsSinceMidnight : this.duration, this.actualLiveTime)\n if (currentDuration !== this.displayedDuration) {\n this.$durationEl.text(currentDuration)\n this.displayedDuration = currentDuration\n }\n } else { this.$durationEl.hide() }\n\n\n // the element must be unhidden before its width is requested, otherwise it's width will be reported as 0\n this.$el.show()\n const containerWidth = this.mediaControl.$seekBarContainer.width()\n const elWidth = this.$el.width()\n let elLeftPos = this.hoverPosition * containerWidth\n elLeftPos -= elWidth / 2\n elLeftPos = Math.max(0, Math.min(elLeftPos, containerWidth - elWidth))\n this.$el.css('left', elLeftPos)\n }\n }\n\n shouldBeVisible() {\n return this.mediaControlContainer && this.mediaControlContainer.settings.seekEnabled && this.hoveringOverSeekBar && this.hoverPosition !== null && this.duration !== null\n }\n\n render() {\n this.rendered = true\n this.displayedDuration = null\n this.displayedSeekTime = null\n this.$el.html(this.template())\n this.$el.hide()\n this.mediaControl.$el.append(this.el)\n this.$seekTimeEl = this.$el.find('[data-seek-time]')\n this.$durationEl = this.$el.find('[data-duration]')\n this.$durationEl.hide()\n this.update()\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/seek_time/seek_time.js","module.exports = \"<span data-seek-time></span>\\n<span data-duration></span>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/seek_time/public/seek_time.html\n// module id = 211\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./seek_time.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./seek_time.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./seek_time.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/seek_time/public/seek_time.scss\n// module id = 212\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".seek-time[data-seek-time] {\\n position: absolute;\\n white-space: nowrap;\\n height: 20px;\\n line-height: 20px;\\n font-size: 0;\\n left: -100%;\\n bottom: 55px;\\n background-color: rgba(2, 2, 2, 0.5);\\n z-index: 9999;\\n transition: opacity 0.1s ease; }\\n .seek-time[data-seek-time].hidden[data-seek-time] {\\n opacity: 0; }\\n .seek-time[data-seek-time] [data-seek-time] {\\n display: inline-block;\\n color: white;\\n font-size: 10px;\\n padding-left: 7px;\\n padding-right: 7px;\\n vertical-align: top; }\\n .seek-time[data-seek-time] [data-duration] {\\n display: inline-block;\\n color: rgba(255, 255, 255, 0.5);\\n font-size: 10px;\\n padding-right: 7px;\\n vertical-align: top; }\\n .seek-time[data-seek-time] [data-duration]:before {\\n content: \\\"|\\\";\\n margin-right: 7px; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/player/clappr/clappr/src/base/scss!./src/plugins/seek_time/public/seek_time.scss\n// module id = 213\n// module chunks = 0","import CorePlugin from '../base/core_plugin'\n\nimport Events from '../base/events'\n\nexport default class SourcesPlugin extends CorePlugin {\n get name() { return 'sources' }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_CONTAINERS_CREATED, this.onContainersCreated)\n }\n\n onContainersCreated() {\n const firstValidSource = this.core.containers.filter(container => container.playback.name !== 'no_op')[0] || this.core.containers[0]\n if (firstValidSource) {\n this.core.containers.forEach((container) => {\n if (container !== firstValidSource)\n container.destroy()\n\n })\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/sources.js","import Events from '../base/events'\nimport CorePlugin from '../base/core_plugin'\nimport { Fullscreen } from '../base/utils'\n\nexport default class EndVideo extends CorePlugin {\n get name() { return 'end_video' }\n bindEvents() {\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.containerChanged)\n const container = this.core.getCurrentContainer()\n if (container) {\n this.listenTo(container, Events.CONTAINER_ENDED, this.ended)\n this.listenTo(container, Events.CONTAINER_STOP, this.ended)\n }\n }\n\n containerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n ended() {\n const exitOnEnd = typeof (this.core.options.exitFullscreenOnEnd) === 'undefined' || this.core.options.exitFullscreenOnEnd\n if (exitOnEnd && Fullscreen.isFullscreen())\n this.core.toggleFullscreen()\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/end_video.js","import { getBrowserLanguage } from '../base/utils'\nimport $ from 'clappr-zepto'\nimport CorePlugin from '../base/core_plugin'\n\n/**\n * The internationalization (i18n) plugin\n * @class Strings\n * @constructor\n * @extends CorePlugin\n * @module plugins\n */\nexport default class Strings extends CorePlugin {\n get name() { return 'strings' }\n\n constructor(core) {\n super(core)\n this._initializeMessages()\n }\n /**\n * Gets a translated string for the given key.\n * @method t\n * @param {String} key the key to all messages\n * @return {String} translated label\n */\n t(key) {\n const lang = this._language()\n const i18n = lang && this._messages[lang] || this._messages['en']\n return i18n[key] || key\n }\n\n _language() { return this.core.options.language || getBrowserLanguage() }\n\n _initializeMessages() {\n const defaultMessages = {\n 'en': {\n 'live': 'live',\n 'back_to_live': 'back to live',\n 'disabled': 'Disabled',\n 'playback_not_supported': 'Your browser does not support the playback of this video. Please try using a different browser.'\n },\n 'pt': {\n 'live': 'ao vivo',\n 'back_to_live': 'voltar para o ao vivo',\n 'disabled': 'Desativado',\n 'playback_not_supported': 'Seu navegador não supporta a reprodução deste video. Por favor, tente usar um navegador diferente.'\n },\n 'es': {\n 'live': 'vivo',\n 'back_to_live': 'volver en vivo',\n 'disabled': 'Discapacitado',\n 'playback_not_supported': 'Su navegador no soporta la reproducción de un video. Por favor, trate de usar un navegador diferente.'\n },\n 'ru': {\n 'live': 'прямой эфир',\n 'back_to_live': 'к прямому эфиру',\n 'disabled': 'Отключено',\n 'playback_not_supported': 'Ваш браузер не поддерживает воспроизведение этого видео. Пожалуйста, попробуйте другой браузер.'\n },\n 'fr': {\n 'live': 'en direct',\n 'disabled': 'Désactivé',\n 'back_to_live': 'retour au direct',\n 'playback_not_supported': 'Votre navigateur ne supporte pas la lecture de cette vidéo. Merci de tenter sur un autre navigateur.'\n },\n 'tr': {\n 'live': 'canlı',\n 'back_to_live': 'canlı yayına dön',\n 'disabled': 'Engelli',\n 'playback_not_supported': 'Tarayıcınız bu videoyu oynatma desteğine sahip değil. Lütfen farklı bir tarayıcı ile deneyin.',\n },\n 'et': {\n 'live': 'Otseülekanne',\n 'back_to_live': 'Tagasi otseülekande juurde',\n 'disabled': 'Keelatud',\n 'playback_not_supported': 'Teie brauser ei toeta selle video taasesitust. Proovige kasutada muud brauserit.'\n }\n }\n\n this._messages = $.extend(true, defaultMessages, this.core.options.strings || {})\n this._messages['pt-BR'] = this._messages['pt']\n this._messages['en-US'] = this._messages['en']\n this._messages['es-419'] = this._messages['es']\n this._messages['fr-FR'] = this._messages['fr']\n this._messages['tr-TR'] = this._messages['tr']\n this._messages['et-EE'] = this._messages['et']\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/strings.js"],"sourceRoot":""}