{"version":3,"file":"js/application-aebb12cd3ad629d5aa3a.js","mappings":"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","sources":["webpack://glass/./app/javascript/channels/ sync _channel\\.js$","webpack://glass/./app/javascript/components/ sync ^\\.\\/.*$","webpack://glass/./node_modules/@daily-co/daily-js/dist/daily-iframe-esm.js","webpack://glass/./node_modules/@rails/actioncable/app/assets/javascripts/action_cable.js","webpack://glass/./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack://glass/./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack://glass/./node_modules/ably/build/ably-commonjs.js","webpack://glass/./node_modules/ably/promises.js","webpack://glass/./node_modules/classnames/index.js","webpack://glass/./node_modules/events/events.js","webpack://glass/./node_modules/fix-webm-duration/fix-webm-duration.js","webpack://glass/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://glass/./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","webpack://glass/./node_modules/hoist-non-react-statics/node_modules/react-is/index.js","webpack://glass/./node_modules/lodash.merge/index.js","webpack://glass/./node_modules/moment-timezone/index.js","webpack://glass/./node_modules/moment-timezone/moment-timezone.js","webpack://glass/./node_modules/moment/locale/af.js","webpack://glass/./node_modules/moment/locale/ar-dz.js","webpack://glass/./node_modules/moment/locale/ar-kw.js","webpack://glass/./node_modules/moment/locale/ar-ly.js","webpack://glass/./node_modules/moment/locale/ar-ma.js","webpack://glass/./node_modules/moment/locale/ar-sa.js","webpack://glass/./node_modules/moment/locale/ar-tn.js","webpack://glass/./node_modules/moment/locale/ar.js","webpack://glass/./node_modules/moment/locale/az.js","webpack://glass/./node_modules/moment/locale/be.js","webpack://glass/./node_modules/moment/locale/bg.js","webpack://glass/./node_modules/moment/locale/bm.js","webpack://glass/./node_modules/moment/locale/bn-bd.js","webpack://glass/./node_modules/moment/locale/bn.js","webpack://glass/./node_modules/moment/locale/bo.js","webpack://glass/./node_modules/moment/locale/br.js","webpack://glass/./node_modules/moment/locale/bs.js","webpack://glass/./node_modules/moment/locale/ca.js","webpack://glass/./node_modules/moment/locale/cs.js","webpack://glass/./node_modules/moment/locale/cv.js","webpack://glass/./node_modules/moment/locale/cy.js","webpack://glass/./node_modules/moment/locale/da.js","webpack://glass/./node_modules/moment/locale/de-at.js","webpack://glass/./node_modules/moment/locale/de-ch.js","webpack://glass/./node_modules/moment/locale/de.js","webpack://glass/./node_modules/moment/locale/dv.js","webpack://glass/./node_modules/moment/locale/el.js","webpack://glass/./node_modules/moment/locale/en-au.js","webpack://glass/./node_modules/moment/locale/en-ca.js","webpack://glass/./node_modules/moment/locale/en-gb.js","webpack://glass/./node_modules/moment/locale/en-ie.js","webpack://glass/./node_modules/moment/locale/en-il.js","webpack://glass/./node_modules/moment/locale/en-in.js","webpack://glass/./node_modules/moment/locale/en-nz.js","webpack://glass/./node_modules/moment/locale/en-sg.js","webpack://glass/./node_modules/moment/locale/eo.js","webpack://glass/./node_modules/moment/locale/es-do.js","webpack://glass/./node_modules/moment/locale/es-mx.js","webpack://glass/./node_modules/moment/locale/es-us.js","webpack://glass/./node_modules/moment/locale/es.js","webpack://glass/./node_modules/moment/locale/et.js","webpack://glass/./node_modules/moment/locale/eu.js","webpack://glass/./node_modules/moment/locale/fa.js","webpack://glass/./node_modules/moment/locale/fi.js","webpack://glass/./node_modules/moment/locale/fil.js","webpack://glass/./node_modules/moment/locale/fo.js","webpack://glass/./node_modules/moment/locale/fr-ca.js","webpack://glass/./node_modules/moment/locale/fr-ch.js","webpack://glass/./node_modules/moment/locale/fr.js","webpack://glass/./node_modules/moment/locale/fy.js","webpack://glass/./node_modules/moment/locale/ga.js","webpack://glass/./node_modules/moment/locale/gd.js","webpack://glass/./node_modules/moment/locale/gl.js","webpack://glass/./node_modules/moment/locale/gom-deva.js","webpack://glass/./node_modules/moment/locale/gom-latn.js","webpack://glass/./node_modules/moment/locale/gu.js","webpack://glass/./node_modules/moment/locale/he.js","webpack://glass/./node_modules/moment/locale/hi.js","webpack://glass/./node_modules/moment/locale/hr.js","webpack://glass/./node_modules/moment/locale/hu.js","webpack://glass/./node_modules/moment/locale/hy-am.js","webpack://glass/./node_modules/moment/locale/id.js","webpack://glass/./node_modules/moment/locale/is.js","webpack://glass/./node_modules/moment/locale/it-ch.js","webpack://glass/./node_modules/moment/locale/it.js","webpack://glass/./node_modules/moment/locale/ja.js","webpack://glass/./node_modules/moment/locale/jv.js","webpack://glass/./node_modules/moment/locale/ka.js","webpack://glass/./node_modules/moment/locale/kk.js","webpack://glass/./node_modules/moment/locale/km.js","webpack://glass/./node_modules/moment/locale/kn.js","webpack://glass/./node_modules/moment/locale/ko.js","webpack://glass/./node_modules/moment/locale/ku.js","webpack://glass/./node_modules/moment/locale/ky.js","webpack://glass/./node_modules/moment/locale/lb.js","webpack://glass/./node_modules/moment/locale/lo.js","webpack://glass/./node_modules/moment/locale/lt.js","webpack://glass/./node_modules/moment/locale/lv.js","webpack://glass/./node_modules/moment/locale/me.js","webpack://glass/./node_modules/moment/locale/mi.js","webpack://glass/./node_modules/moment/locale/mk.js","webpack://glass/./node_modules/moment/locale/ml.js","webpack://glass/./node_modules/moment/locale/mn.js","webpack://glass/./node_modules/moment/locale/mr.js","webpack://glass/./node_modules/moment/locale/ms-my.js","webpack://glass/./node_modules/moment/locale/ms.js","webpack://glass/./node_modules/moment/locale/mt.js","webpack://glass/./node_modules/moment/locale/my.js","webpack://glass/./node_modules/moment/locale/nb.js","webpack://glass/./node_modules/moment/locale/ne.js","webpack://glass/./node_modules/moment/locale/nl-be.js","webpack://glass/./node_modules/moment/locale/nl.js","webpack://glass/./node_modules/moment/locale/nn.js","webpack://glass/./node_modules/moment/locale/oc-lnc.js","webpack://glass/./node_modules/moment/locale/pa-in.js","webpack://glass/./node_modules/moment/locale/pl.js","webpack://glass/./node_modules/moment/locale/pt-br.js","webpack://glass/./node_modules/moment/locale/pt.js","webpack://glass/./node_modules/moment/locale/ro.js","webpack://glass/./node_modules/moment/locale/ru.js","webpack://glass/./node_modules/moment/locale/sd.js","webpack://glass/./node_modules/moment/locale/se.js","webpack://glass/./node_modules/moment/locale/si.js","webpack://glass/./node_modules/moment/locale/sk.js","webpack://glass/./node_modules/moment/locale/sl.js","webpack://glass/./node_modules/moment/locale/sq.js","webpack://glass/./node_modules/moment/locale/sr-cyrl.js","webpack://glass/./node_modules/moment/locale/sr.js","webpack://glass/./node_modules/moment/locale/ss.js","webpack://glass/./node_modules/moment/locale/sv.js","webpack://glass/./node_modules/moment/locale/sw.js","webpack://glass/./node_modules/moment/locale/ta.js","webpack://glass/./node_modules/moment/locale/te.js","webpack://glass/./node_modules/moment/locale/tet.js","webpack://glass/./node_modules/moment/locale/tg.js","webpack://glass/./node_modules/moment/locale/th.js","webpack://glass/./node_modules/moment/locale/tk.js","webpack://glass/./node_modules/moment/locale/tl-ph.js","webpack://glass/./node_modules/moment/locale/tlh.js","webpack://glass/./node_modules/moment/locale/tr.js","webpack://glass/./node_modules/moment/locale/tzl.js","webpack://glass/./node_modules/moment/locale/tzm-latn.js","webpack://glass/./node_modules/moment/locale/tzm.js","webpack://glass/./node_modules/moment/locale/ug-cn.js","webpack://glass/./node_modules/moment/locale/uk.js","webpack://glass/./node_modules/moment/locale/ur.js","webpack://glass/./node_modules/moment/locale/uz-latn.js","webpack://glass/./node_modules/moment/locale/uz.js","webpack://glass/./node_modules/moment/locale/vi.js","webpack://glass/./node_modules/moment/locale/x-pseudo.js","webpack://glass/./node_modules/moment/locale/yo.js","webpack://glass/./node_modules/moment/locale/zh-cn.js","webpack://glass/./node_modules/moment/locale/zh-hk.js","webpack://glass/./node_modules/moment/locale/zh-mo.js","webpack://glass/./node_modules/moment/locale/zh-tw.js","webpack://glass/./node_modules/moment/moment.js","webpack://glass/./node_modules/preact/compat/dist/compat.module.js","webpack://glass/./node_modules/preact-render-to-string/dist/index.module.js","webpack://glass/./node_modules/preact/dist/preact.module.js","webpack://glass/./node_modules/preact/hooks/dist/hooks.module.js","webpack://glass/./node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","webpack://glass/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://glass/./node_modules/prop-types/index.js","webpack://glass/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://glass/./node_modules/react-is/cjs/react-is.production.min.js","webpack://glass/./node_modules/react-is/index.js","webpack://glass/./node_modules/react-pluralize/dist/index.js","webpack://glass/./node_modules/react-svg-inline/lib/index.js","webpack://glass/./node_modules/react-timeago/es6/dateParser.js","webpack://glass/./node_modules/react-timeago/es6/defaultFormatter.js","webpack://glass/./node_modules/react-timeago/es6/index.js","webpack://glass/./node_modules/react-timeago/lib/formatters/buildFormatter.js","webpack://glass/./node_modules/uuid/dist/esm-browser/rng.js","webpack://glass/./node_modules/uuid/dist/esm-browser/bytesToUuid.js","webpack://glass/./node_modules/uuid/dist/esm-browser/v4.js","webpack://glass/./node_modules/react-tooltip/dist/index.es.js","webpack://glass/./node_modules/react-video-recorder/lib/custom-errors.js","webpack://glass/./node_modules/react-video-recorder/lib/defaults/button.js","webpack://glass/./node_modules/react-video-recorder/lib/defaults/countdown.js","webpack://glass/./node_modules/react-video-recorder/lib/defaults/disconnected-view.js","webpack://glass/./node_modules/react-video-recorder/lib/defaults/error-view.js","webpack://glass/./node_modules/react-video-recorder/lib/defaults/loading-view.js","webpack://glass/./node_modules/react-video-recorder/lib/defaults/record-button.js","webpack://glass/./node_modules/react-video-recorder/lib/defaults/render-actions.js","webpack://glass/./node_modules/react-video-recorder/lib/defaults/stop-button.js","webpack://glass/./node_modules/react-video-recorder/lib/defaults/switch-camera-view.js","webpack://glass/./node_modules/react-video-recorder/lib/defaults/timer.js","webpack://glass/./node_modules/react-video-recorder/lib/defaults/unsupported-view.js","webpack://glass/./node_modules/react-video-recorder/lib/get-video-info.js","webpack://glass/./node_modules/react-video-recorder/lib/index.js","webpack://glass/./node_modules/react-video-recorder/lib/video-recorder.js","webpack://glass/./node_modules/react_ujs/react_ujs/index.js","webpack://glass/./node_modules/react_ujs/react_ujs/src/events/detect.js","webpack://glass/./node_modules/react_ujs/react_ujs/src/events/native.js","webpack://glass/./node_modules/react_ujs/react_ujs/src/events/pjax.js","webpack://glass/./node_modules/react_ujs/react_ujs/src/events/turbolinks.js","webpack://glass/./node_modules/react_ujs/react_ujs/src/events/turbolinksClassic.js","webpack://glass/./node_modules/react_ujs/react_ujs/src/events/turbolinksClassicDeprecated.js","webpack://glass/./node_modules/react_ujs/react_ujs/src/getConstructor/fromGlobal.js","webpack://glass/./node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContext.js","webpack://glass/./node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContextWithGlobalFallback.js","webpack://glass/./node_modules/react_ujs/react_ujs/src/renderHelpers.js","webpack://glass/./node_modules/rrweb/es/rrweb/packages/rrweb/ext/tslib/tslib.es6.js","webpack://glass/./node_modules/rrweb/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js","webpack://glass/./node_modules/rrweb/es/rrweb/ext/mitt/dist/mitt.es.js","webpack://glass/./node_modules/rrweb/es/rrweb/packages/rrweb/src/types.js","webpack://glass/./node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/smoothscroll.js","webpack://glass/./node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/timer.js","webpack://glass/./node_modules/rrweb/es/rrweb/ext/@xstate/fsm/es/index.js","webpack://glass/./node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/machine.js","webpack://glass/./node_modules/rrweb/es/rrweb/packages/rrweb/src/utils.js","webpack://glass/./node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/styles/inject-style.js","webpack://glass/./node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/virtual-styles.js","webpack://glass/./node_modules/rrweb/es/rrweb/ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js","webpack://glass/./node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/canvas/webgl.js","webpack://glass/./node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/canvas/2d.js","webpack://glass/./node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/canvas/index.js","webpack://glass/./node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/index.js","webpack://glass/./node_modules/shallowequal/index.js","webpack://glass/./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack://glass/./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://glass/./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://glass/./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://glass/./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://glass/./node_modules/urs/dist/useRefState.js","webpack://glass/./node_modules/use-http/dist/esm/types.js","webpack://glass/./node_modules/use-http/dist/esm/utils.js","webpack://glass/./node_modules/use-http/dist/esm/FetchContext.js","webpack://glass/./node_modules/use-http/dist/esm/defaults.js","webpack://glass/./node_modules/use-http/dist/esm/useFetchArgs.js","webpack://glass/./node_modules/use-http/dist/esm/doFetchArgs.js","webpack://glass/./node_modules/use-http/dist/esm/storage/localStorage.js","webpack://glass/./node_modules/use-http/dist/esm/storage/memoryStorage.js","webpack://glass/./node_modules/use-http/dist/esm/useCache.js","webpack://glass/./node_modules/use-http/dist/esm/useFetch.js","webpack://glass/./node_modules/use-ssr/dist/useSSR.js","webpack://glass/./app/javascript/components/ActivePeople.js","webpack://glass/./app/javascript/components/BrowserIcon.js","webpack://glass/./app/javascript/components/Call.js","webpack://glass/./app/javascript/components/ChatCommandButton/index.tsx","webpack://glass/./app/javascript/components/DeviceTypeIcon.js","webpack://glass/./app/javascript/components/Expire.js","webpack://glass/./app/javascript/components/IndiciaHeader.js","webpack://glass/./app/javascript/components/IndiciaPanel.js","webpack://glass/./app/javascript/components/IndiciaToggle.js","webpack://glass/./app/javascript/components/LiveReplayer.js","webpack://glass/./app/javascript/components/LiveReplayerComponent.js","webpack://glass/./app/javascript/components/LiveReplayerDocumentVisibility.js","webpack://glass/./app/javascript/components/LiveReplayerLastActive.js","webpack://glass/./app/javascript/components/LiveReplayerSpinner.js","webpack://glass/./app/javascript/components/LiveStream/index.tsx","webpack://glass/./app/javascript/components/OSIcon.tsx","webpack://glass/./app/javascript/components/OperatorChatMacros/constants.ts","webpack://glass/./app/javascript/components/OperatorChatMacros/index.tsx","webpack://glass/./app/javascript/components/OperatorChatMacros/utils.ts","webpack://glass/./app/javascript/components/PreRenderPlaceholder.js","webpack://glass/./app/javascript/components/PreviewPrompt.js","webpack://glass/./app/javascript/components/ScreenView.js","webpack://glass/./node_modules/rrweb-player/dist/index.mjs","webpack://glass/./app/javascript/components/StaticReplayer.js","webpack://glass/./app/javascript/components/UTMIcon.js","webpack://glass/./app/javascript/components/VideoRecorderUpload.js","webpack://glass/./app/javascript/components/session_stack/SessionStackMostRecentSession.js","webpack://glass/./app/javascript/components/session_stack/SessionStackPlayerEmbed.js","webpack://glass/./app/javascript/components/session_stack/SessionStackScreen.js","webpack://glass/./app/javascript/components/session_stack/SessionStackScreenHeader.js","webpack://glass/./app/javascript/components/session_stack/SessionStackScreensGrid.js","webpack://glass/./app/javascript/components/session_stack/SessionStackVisitLength.js","webpack://glass/./app/javascript/components/session_stack/SessionStackVisitStarted.js","webpack://glass/./app/javascript/components/session_stack/timeAgoFormatterFn.js","webpack://glass/./app/javascript/web_components/session-stack/session-stack-sessions.js","webpack://glass/./app/assets/images/device_icons/browser/chrome.svg","webpack://glass/./app/assets/images/device_icons/browser/edge.svg","webpack://glass/./app/assets/images/device_icons/browser/firefox.svg","webpack://glass/./app/assets/images/device_icons/browser/safari.svg","webpack://glass/./app/assets/images/device_icons/os/android.svg","webpack://glass/./app/assets/images/device_icons/os/apple.svg","webpack://glass/./app/assets/images/device_icons/os/linux.svg","webpack://glass/./app/assets/images/device_icons/os/windows.svg","webpack://glass/./app/assets/images/icons/bolt-light.svg","webpack://glass/./app/assets/images/icons/video-arrow-up-right-light.svg","webpack://glass/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://glass/webpack/bootstrap","webpack://glass/webpack/runtime/compat get default export","webpack://glass/webpack/runtime/define property getters","webpack://glass/webpack/runtime/hasOwnProperty shorthand","webpack://glass/webpack/runtime/make namespace object","webpack://glass/webpack/runtime/node module decorator","webpack://glass/webpack/runtime/publicPath","webpack://glass/webpack/runtime/nonce","webpack://glass/./app/javascript/channels/index.js","webpack://glass/./app/javascript/custom/dropdown.js","webpack://glass/./app/javascript/custom/time_util.js","webpack://glass/./app/javascript/web_components/tab-tray.js","webpack://glass/./app/javascript/web_components/tab-item.js","webpack://glass/./app/javascript/web_components/person-active-status.js","webpack://glass/./app/javascript/web_components/person-active-status-favicon.js","webpack://glass/./app/javascript/web_components/person-icon.js","webpack://glass/./app/javascript/web_components/monitor-active-people.js","webpack://glass/./app/javascript/web_components/monitor-segment-current-people.js","webpack://glass/./app/javascript/custom/flash_title.js","webpack://glass/./app/javascript/packs/application.js","webpack://glass/./app/javascript/custom/resize_debounce.js"],"sourcesContent":["var map = {\n\t\"./sites_channel.js\": 2941,\n\t\"channels/sites_channel.js\": 2941\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6463;","var map = {\n\t\"./ActivePeople\": 1713,\n\t\"./ActivePeople.js\": 1713,\n\t\"./BrowserIcon\": 2534,\n\t\"./BrowserIcon.js\": 2534,\n\t\"./Call\": 3659,\n\t\"./Call.js\": 3659,\n\t\"./ChatCommandButton\": 1332,\n\t\"./ChatCommandButton/\": 1332,\n\t\"./ChatCommandButton/index\": 1332,\n\t\"./ChatCommandButton/index.tsx\": 1332,\n\t\"./DeviceTypeIcon\": 4330,\n\t\"./DeviceTypeIcon.js\": 4330,\n\t\"./Expire\": 485,\n\t\"./Expire.js\": 485,\n\t\"./IndiciaHeader\": 7,\n\t\"./IndiciaHeader.js\": 7,\n\t\"./IndiciaPanel\": 6627,\n\t\"./IndiciaPanel.js\": 6627,\n\t\"./IndiciaToggle\": 3403,\n\t\"./IndiciaToggle.js\": 3403,\n\t\"./LiveReplayer\": 8912,\n\t\"./LiveReplayer.js\": 8912,\n\t\"./LiveReplayerComponent\": 9724,\n\t\"./LiveReplayerComponent.js\": 9724,\n\t\"./LiveReplayerDocumentVisibility\": 4573,\n\t\"./LiveReplayerDocumentVisibility.js\": 4573,\n\t\"./LiveReplayerLastActive\": 1078,\n\t\"./LiveReplayerLastActive.js\": 1078,\n\t\"./LiveReplayerSpinner\": 5475,\n\t\"./LiveReplayerSpinner.js\": 5475,\n\t\"./LiveStream\": 2899,\n\t\"./LiveStream/\": 2899,\n\t\"./LiveStream/index\": 2899,\n\t\"./LiveStream/index.tsx\": 2899,\n\t\"./OSIcon\": 9938,\n\t\"./OSIcon.tsx\": 9938,\n\t\"./OperatorChatMacros\": 9329,\n\t\"./OperatorChatMacros/\": 9329,\n\t\"./OperatorChatMacros/constants\": 568,\n\t\"./OperatorChatMacros/constants.ts\": 568,\n\t\"./OperatorChatMacros/index\": 9329,\n\t\"./OperatorChatMacros/index.tsx\": 9329,\n\t\"./OperatorChatMacros/types\": 7853,\n\t\"./OperatorChatMacros/types.ts\": 7853,\n\t\"./OperatorChatMacros/utils\": 3547,\n\t\"./OperatorChatMacros/utils.ts\": 3547,\n\t\"./PreRenderPlaceholder\": 7707,\n\t\"./PreRenderPlaceholder.js\": 7707,\n\t\"./PreviewPrompt\": 9715,\n\t\"./PreviewPrompt.js\": 9715,\n\t\"./ScreenView\": 5084,\n\t\"./ScreenView.js\": 5084,\n\t\"./StaticReplayer\": 7022,\n\t\"./StaticReplayer.js\": 7022,\n\t\"./UTMIcon\": 2459,\n\t\"./UTMIcon.js\": 2459,\n\t\"./VideoRecorderUpload\": 3869,\n\t\"./VideoRecorderUpload.js\": 3869,\n\t\"./session_stack/SessionStackMostRecentSession\": 4657,\n\t\"./session_stack/SessionStackMostRecentSession.js\": 4657,\n\t\"./session_stack/SessionStackPlayerEmbed\": 3507,\n\t\"./session_stack/SessionStackPlayerEmbed.js\": 3507,\n\t\"./session_stack/SessionStackScreen\": 8016,\n\t\"./session_stack/SessionStackScreen.js\": 8016,\n\t\"./session_stack/SessionStackScreenHeader\": 689,\n\t\"./session_stack/SessionStackScreenHeader.js\": 689,\n\t\"./session_stack/SessionStackScreensGrid\": 9361,\n\t\"./session_stack/SessionStackScreensGrid.js\": 9361,\n\t\"./session_stack/SessionStackVisitLength\": 7289,\n\t\"./session_stack/SessionStackVisitLength.js\": 7289,\n\t\"./session_stack/SessionStackVisitStarted\": 1479,\n\t\"./session_stack/SessionStackVisitStarted.js\": 1479,\n\t\"./session_stack/timeAgoFormatterFn\": 2891,\n\t\"./session_stack/timeAgoFormatterFn.js\": 2891\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 982;","function _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function () { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = \"function\" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || \"@@iterator\", asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\", toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, \"\"); } catch (err) { define = function (obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: \"normal\", arg: fn.call(obj, arg) }; } catch (err) { return { type: \"throw\", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { [\"next\", \"throw\", \"return\"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if (\"throw\" !== record.type) { var result = record.arg, value = result.value; return value && \"object\" == typeof value && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke(\"next\", value, resolve, reject); }, function (err) { invoke(\"throw\", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke(\"throw\", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, \"_invoke\", { value: function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = \"suspendedStart\"; return function (method, arg) { if (\"executing\" === state) throw new Error(\"Generator is already running\"); if (\"completed\" === state) { if (\"throw\" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) { if (\"suspendedStart\" === state) throw state = \"completed\", context.arg; context.dispatchException(context.arg); } else \"return\" === context.method && context.abrupt(\"return\", context.arg); state = \"executing\"; var record = tryCatch(innerFn, self, context); if (\"normal\" === record.type) { if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator.return && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = \"normal\", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: \"root\" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if (\"function\" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) { var ctor = \"function\" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, \"toString\", function () { return \"[object Generator]\"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function (skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function () { this.done = !0; var rootRecord = this.tryEntries[0].completion; if (\"throw\" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function (exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if (\"root\" === entry.tryLoc) return handle(\"end\"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, \"catchLoc\"), hasFinally = hasOwn.call(entry, \"finallyLoc\"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error(\"try statement without catch or finally\"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function (type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function (record, afterLoc) { if (\"throw\" === record.type) throw record.arg; return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function (finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function (tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if (\"throw\" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function (iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function () {}; return { s: F, n: function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function (e) { throw e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function () { it = it.call(o); }, n: function () { var step = it.next(); normalCompletion = step.done; return step; }, e: function (e) { didErr = true; err = e; }, f: function () { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport e, { EventEmitter as t } from \"events\";\nvar r = function (e, t) {\n if (null == e) return {};\n var r,\n i,\n n = {},\n a = Object.keys(e);\n for (i = 0; i < a.length; i++) r = a[i], t.indexOf(r) >= 0 || (n[r] = e[r]);\n return n;\n};\nvar i = function (e, t) {\n if (null == e) return {};\n var i,\n n,\n a = r(e, t);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (n = 0; n < o.length; n++) i = o[n], t.indexOf(i) >= 0 || Object.prototype.propertyIsEnumerable.call(e, i) && (a[i] = e[i]);\n }\n return a;\n};\nfunction n(e, t, r, i, n, a, o) {\n try {\n var s = e[a](o),\n c = s.value;\n } catch (e) {\n return void r(e);\n }\n s.done ? t(c) : Promise.resolve(c).then(i, n);\n}\nvar a = function (e) {\n return function () {\n var t = this,\n r = arguments;\n return new Promise(function (i, a) {\n var o = e.apply(t, r);\n function s(e) {\n n(o, i, a, s, c, \"next\", e);\n }\n function c(e) {\n n(o, i, a, s, c, \"throw\", e);\n }\n s(void 0);\n });\n };\n};\nvar o = function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n};\nvar s = function (e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n};\nfunction c(e, t) {\n for (var r = 0; r < t.length; r++) {\n var i = t[r];\n i.enumerable = i.enumerable || !1, i.configurable = !0, \"value\" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);\n }\n}\nvar l = function (e, t, r) {\n return t && c(e.prototype, t), r && c(e, r), e;\n },\n u = \"undefined\" != typeof globalThis ? globalThis : \"undefined\" != typeof window ? window : \"undefined\" != typeof global ? global : \"undefined\" != typeof self ? self : {};\nfunction d(e, t) {\n return e(t = {\n exports: {}\n }, t.exports), t.exports;\n}\nvar h = d(function (e) {\n function t(r, i) {\n return e.exports = t = Object.setPrototypeOf || function (e, t) {\n return e.__proto__ = t, e;\n }, t(r, i);\n }\n e.exports = t;\n});\nvar p = function (e, t) {\n if (\"function\" != typeof t && null !== t) throw new TypeError(\"Super expression must either be null or a function\");\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: !0,\n configurable: !0\n }\n }), t && h(e, t);\n },\n f = d(function (e) {\n function t(r) {\n return \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? e.exports = t = function (e) {\n return typeof e;\n } : e.exports = t = function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, t(r);\n }\n e.exports = t;\n });\nvar v = function (e, t) {\n return !t || \"object\" !== f(t) && \"function\" != typeof t ? s(e) : t;\n },\n g = d(function (e) {\n function t(r) {\n return e.exports = t = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {\n return e.__proto__ || Object.getPrototypeOf(e);\n }, t(r);\n }\n e.exports = t;\n });\nvar m = function (e, t, r) {\n return t in e ? Object.defineProperty(e, t, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = r, e;\n};\nvar y = function (e) {\n if (Array.isArray(e)) return e;\n};\nvar b = function (e, t) {\n if (\"undefined\" != typeof Symbol && Symbol.iterator in Object(e)) {\n var r = [],\n i = !0,\n n = !1,\n a = void 0;\n try {\n for (var o, s = e[Symbol.iterator](); !(i = (o = s.next()).done) && (r.push(o.value), !t || r.length !== t); i = !0);\n } catch (e) {\n n = !0, a = e;\n } finally {\n try {\n i || null == s.return || s.return();\n } finally {\n if (n) throw a;\n }\n }\n return r;\n }\n};\nvar w = function (e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var r = 0, i = new Array(t); r < t; r++) i[r] = e[r];\n return i;\n};\nvar _ = function (e, t) {\n if (e) {\n if (\"string\" == typeof e) return w(e, t);\n var r = Object.prototype.toString.call(e).slice(8, -1);\n return \"Object\" === r && e.constructor && (r = e.constructor.name), \"Map\" === r || \"Set\" === r ? Array.from(e) : \"Arguments\" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? w(e, t) : void 0;\n }\n};\nvar k = function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n};\nvar S = function (e, t) {\n return y(e) || b(e, t) || _(e, t) || k();\n },\n M = \"function\" == typeof Map,\n C = \"function\" == typeof Set,\n T = \"function\" == typeof WeakSet,\n O = Object.keys,\n j = function (e, t) {\n return e && \"object\" == typeof e && t.add(e);\n },\n P = function (e, t, r, i) {\n for (var n, a = 0; a < e.length; a++) if (r((n = e[a])[0], t[0], i) && r(n[1], t[1], i)) return !0;\n return !1;\n },\n A = function (e, t, r, i) {\n for (var n = 0; n < e.length; n++) if (r(e[n], t, i)) return !0;\n return !1;\n },\n F = function (e, t) {\n return e === t || e != e && t != t;\n },\n E = function (e) {\n return e.constructor === Object;\n },\n I = function (e) {\n return \"function\" == typeof e.then;\n },\n L = function (e) {\n return !(!e.$$typeof || !e._store);\n },\n D = function (e) {\n return function (t) {\n var r = e || t;\n return function (e, t, i) {\n void 0 === i && (i = T ? new WeakSet() : Object.create({\n _values: [],\n add: function (e) {\n this._values.push(e);\n },\n has: function (e) {\n return !!~this._values.indexOf(e);\n }\n }));\n var n = i.has(e),\n a = i.has(t);\n return n || a ? n && a : (j(e, i), j(t, i), r(e, t, i));\n };\n };\n },\n B = function (e) {\n var t = [];\n return e.forEach(function (e, r) {\n return t.push([r, e]);\n }), t;\n },\n N = function (e) {\n var t = [];\n return e.forEach(function (e) {\n return t.push(e);\n }), t;\n },\n x = function (e, t, r, i) {\n if (e.length !== t.length) return !1;\n for (var n = 0; n < e.length; n++) if (!r(e[n], t[n], i)) return !1;\n return !0;\n },\n R = function (e, t, r, i) {\n if (e.size !== t.size) return !1;\n for (var n = B(e), a = B(t), o = 0; o < n.length; o++) if (!P(a, n[o], r, i) || !P(n, a[o], r, i)) return !1;\n return !0;\n },\n V = function (e, t, r, i) {\n var n,\n a = O(e),\n o = O(t);\n if (a.length !== o.length) return !1;\n for (var s = 0; s < a.length; s++) {\n if (n = a[s], !A(o, n, F)) return !1;\n if ((\"_owner\" !== n || !L(e) || !L(t)) && !r(e[n], t[n], i)) return !1;\n }\n return !0;\n },\n U = function (e, t) {\n return e.source === t.source && e.global === t.global && e.ignoreCase === t.ignoreCase && e.multiline === t.multiline && e.unicode === t.unicode && e.sticky === t.sticky && e.lastIndex === t.lastIndex;\n },\n z = function (e, t, r, i) {\n if (e.size !== t.size) return !1;\n for (var n = N(e), a = N(t), o = 0; o < n.length; o++) if (!A(a, n[o], r, i) || !A(n, a[o], r, i)) return !1;\n return !0;\n },\n J = Array.isArray,\n q = function (e) {\n var t = \"function\" == typeof e ? e(r) : r;\n function r(e, r, i) {\n if (F(e, r)) return !0;\n var n = typeof e;\n if (n !== typeof r || \"object\" !== n || !e || !r) return !1;\n if (E(e) && E(r)) return V(e, r, t, i);\n var a = J(e),\n o = J(r);\n if (a || o) return a === o && x(e, r, t, i);\n var s = e instanceof Date,\n c = r instanceof Date;\n if (s || c) return s === c && F(e.getTime(), r.getTime());\n var l = e instanceof RegExp,\n u = r instanceof RegExp;\n if (l || u) return l === u && U(e, r);\n if (I(e) || I(r)) return e === r;\n if (M) {\n var d = e instanceof Map,\n h = r instanceof Map;\n if (d || h) return d === h && R(e, r, t, i);\n }\n if (C) {\n var p = e instanceof Set,\n f = r instanceof Set;\n if (p || f) return p === f && z(e, r, t, i);\n }\n return V(e, r, t, i);\n }\n return r;\n },\n W = (q(D()), q(D(F)), q());\nq(function () {\n return F;\n});\nconst G = {\n \"Amazon Silk\": \"amazon_silk\",\n \"Android Browser\": \"android\",\n Bada: \"bada\",\n BlackBerry: \"blackberry\",\n Chrome: \"chrome\",\n Chromium: \"chromium\",\n Electron: \"electron\",\n Epiphany: \"epiphany\",\n Firefox: \"firefox\",\n Focus: \"focus\",\n Generic: \"generic\",\n \"Google Search\": \"google_search\",\n Googlebot: \"googlebot\",\n \"Internet Explorer\": \"ie\",\n \"K-Meleon\": \"k_meleon\",\n Maxthon: \"maxthon\",\n \"Microsoft Edge\": \"edge\",\n \"MZ Browser\": \"mz\",\n \"NAVER Whale Browser\": \"naver\",\n Opera: \"opera\",\n \"Opera Coast\": \"opera_coast\",\n PhantomJS: \"phantomjs\",\n Puffin: \"puffin\",\n QupZilla: \"qupzilla\",\n QQ: \"qq\",\n QQLite: \"qqlite\",\n Safari: \"safari\",\n Sailfish: \"sailfish\",\n \"Samsung Internet for Android\": \"samsung_internet\",\n SeaMonkey: \"seamonkey\",\n Sleipnir: \"sleipnir\",\n Swing: \"swing\",\n Tizen: \"tizen\",\n \"UC Browser\": \"uc\",\n Vivaldi: \"vivaldi\",\n \"WebOS Browser\": \"webos\",\n WeChat: \"wechat\",\n \"Yandex Browser\": \"yandex\",\n Roku: \"roku\"\n },\n H = {\n amazon_silk: \"Amazon Silk\",\n android: \"Android Browser\",\n bada: \"Bada\",\n blackberry: \"BlackBerry\",\n chrome: \"Chrome\",\n chromium: \"Chromium\",\n electron: \"Electron\",\n epiphany: \"Epiphany\",\n firefox: \"Firefox\",\n focus: \"Focus\",\n generic: \"Generic\",\n googlebot: \"Googlebot\",\n google_search: \"Google Search\",\n ie: \"Internet Explorer\",\n k_meleon: \"K-Meleon\",\n maxthon: \"Maxthon\",\n edge: \"Microsoft Edge\",\n mz: \"MZ Browser\",\n naver: \"NAVER Whale Browser\",\n opera: \"Opera\",\n opera_coast: \"Opera Coast\",\n phantomjs: \"PhantomJS\",\n puffin: \"Puffin\",\n qupzilla: \"QupZilla\",\n qq: \"QQ Browser\",\n qqlite: \"QQ Browser Lite\",\n safari: \"Safari\",\n sailfish: \"Sailfish\",\n samsung_internet: \"Samsung Internet for Android\",\n seamonkey: \"SeaMonkey\",\n sleipnir: \"Sleipnir\",\n swing: \"Swing\",\n tizen: \"Tizen\",\n uc: \"UC Browser\",\n vivaldi: \"Vivaldi\",\n webos: \"WebOS Browser\",\n wechat: \"WeChat\",\n yandex: \"Yandex Browser\"\n },\n K = {\n tablet: \"tablet\",\n mobile: \"mobile\",\n desktop: \"desktop\",\n tv: \"tv\"\n },\n Q = {\n WindowsPhone: \"Windows Phone\",\n Windows: \"Windows\",\n MacOS: \"macOS\",\n iOS: \"iOS\",\n Android: \"Android\",\n WebOS: \"WebOS\",\n BlackBerry: \"BlackBerry\",\n Bada: \"Bada\",\n Tizen: \"Tizen\",\n Linux: \"Linux\",\n ChromeOS: \"Chrome OS\",\n PlayStation4: \"PlayStation 4\",\n Roku: \"Roku\"\n },\n $ = {\n EdgeHTML: \"EdgeHTML\",\n Blink: \"Blink\",\n Trident: \"Trident\",\n Presto: \"Presto\",\n Gecko: \"Gecko\",\n WebKit: \"WebKit\"\n };\nclass Y {\n static getFirstMatch(e, t) {\n const r = t.match(e);\n return r && r.length > 0 && r[1] || \"\";\n }\n static getSecondMatch(e, t) {\n const r = t.match(e);\n return r && r.length > 1 && r[2] || \"\";\n }\n static matchAndReturnConst(e, t, r) {\n if (e.test(t)) return r;\n }\n static getWindowsVersionName(e) {\n switch (e) {\n case \"NT\":\n return \"NT\";\n case \"XP\":\n return \"XP\";\n case \"NT 5.0\":\n return \"2000\";\n case \"NT 5.1\":\n return \"XP\";\n case \"NT 5.2\":\n return \"2003\";\n case \"NT 6.0\":\n return \"Vista\";\n case \"NT 6.1\":\n return \"7\";\n case \"NT 6.2\":\n return \"8\";\n case \"NT 6.3\":\n return \"8.1\";\n case \"NT 10.0\":\n return \"10\";\n default:\n return;\n }\n }\n static getMacOSVersionName(e) {\n const t = e.split(\".\").splice(0, 2).map(e => parseInt(e, 10) || 0);\n if (t.push(0), 10 === t[0]) switch (t[1]) {\n case 5:\n return \"Leopard\";\n case 6:\n return \"Snow Leopard\";\n case 7:\n return \"Lion\";\n case 8:\n return \"Mountain Lion\";\n case 9:\n return \"Mavericks\";\n case 10:\n return \"Yosemite\";\n case 11:\n return \"El Capitan\";\n case 12:\n return \"Sierra\";\n case 13:\n return \"High Sierra\";\n case 14:\n return \"Mojave\";\n case 15:\n return \"Catalina\";\n default:\n return;\n }\n }\n static getAndroidVersionName(e) {\n const t = e.split(\".\").splice(0, 2).map(e => parseInt(e, 10) || 0);\n if (t.push(0), !(1 === t[0] && t[1] < 5)) return 1 === t[0] && t[1] < 6 ? \"Cupcake\" : 1 === t[0] && t[1] >= 6 ? \"Donut\" : 2 === t[0] && t[1] < 2 ? \"Eclair\" : 2 === t[0] && 2 === t[1] ? \"Froyo\" : 2 === t[0] && t[1] > 2 ? \"Gingerbread\" : 3 === t[0] ? \"Honeycomb\" : 4 === t[0] && t[1] < 1 ? \"Ice Cream Sandwich\" : 4 === t[0] && t[1] < 4 ? \"Jelly Bean\" : 4 === t[0] && t[1] >= 4 ? \"KitKat\" : 5 === t[0] ? \"Lollipop\" : 6 === t[0] ? \"Marshmallow\" : 7 === t[0] ? \"Nougat\" : 8 === t[0] ? \"Oreo\" : 9 === t[0] ? \"Pie\" : void 0;\n }\n static getVersionPrecision(e) {\n return e.split(\".\").length;\n }\n static compareVersions(e, t) {\n let r = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : !1;\n const i = Y.getVersionPrecision(e),\n n = Y.getVersionPrecision(t);\n let a = Math.max(i, n),\n o = 0;\n const s = Y.map([e, t], e => {\n const t = a - Y.getVersionPrecision(e),\n r = e + new Array(t + 1).join(\".0\");\n return Y.map(r.split(\".\"), e => new Array(20 - e.length).join(\"0\") + e).reverse();\n });\n for (r && (o = a - Math.min(i, n)), a -= 1; a >= o;) {\n if (s[0][a] > s[1][a]) return 1;\n if (s[0][a] === s[1][a]) {\n if (a === o) return 0;\n a -= 1;\n } else if (s[0][a] < s[1][a]) return -1;\n }\n }\n static map(e, t) {\n const r = [];\n let i;\n if (Array.prototype.map) return Array.prototype.map.call(e, t);\n for (i = 0; i < e.length; i += 1) r.push(t(e[i]));\n return r;\n }\n static find(e, t) {\n let r, i;\n if (Array.prototype.find) return Array.prototype.find.call(e, t);\n for (r = 0, i = e.length; r < i; r += 1) {\n const i = e[r];\n if (t(i, r)) return i;\n }\n }\n static assign(e) {\n const r = e;\n let i, n;\n for (var _len = arguments.length, t = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n t[_key - 1] = arguments[_key];\n }\n if (Object.assign) return Object.assign(e, ...t);\n for (i = 0, n = t.length; i < n; i += 1) {\n const e = t[i];\n if (\"object\" == typeof e && null !== e) {\n Object.keys(e).forEach(t => {\n r[t] = e[t];\n });\n }\n }\n return e;\n }\n static getBrowserAlias(e) {\n return G[e];\n }\n static getBrowserTypeByAlias(e) {\n return H[e] || \"\";\n }\n}\nconst Z = /version\\/(\\d+(\\.?_?\\d+)+)/i,\n X = [{\n test: [/googlebot/i],\n describe(e) {\n const t = {\n name: \"Googlebot\"\n },\n r = Y.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i, e) || Y.getFirstMatch(Z, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/opera/i],\n describe(e) {\n const t = {\n name: \"Opera\"\n },\n r = Y.getFirstMatch(Z, e) || Y.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/opr\\/|opios/i],\n describe(e) {\n const t = {\n name: \"Opera\"\n },\n r = Y.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i, e) || Y.getFirstMatch(Z, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/SamsungBrowser/i],\n describe(e) {\n const t = {\n name: \"Samsung Internet for Android\"\n },\n r = Y.getFirstMatch(Z, e) || Y.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/Whale/i],\n describe(e) {\n const t = {\n name: \"NAVER Whale Browser\"\n },\n r = Y.getFirstMatch(Z, e) || Y.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/MZBrowser/i],\n describe(e) {\n const t = {\n name: \"MZ Browser\"\n },\n r = Y.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i, e) || Y.getFirstMatch(Z, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/focus/i],\n describe(e) {\n const t = {\n name: \"Focus\"\n },\n r = Y.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i, e) || Y.getFirstMatch(Z, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/swing/i],\n describe(e) {\n const t = {\n name: \"Swing\"\n },\n r = Y.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i, e) || Y.getFirstMatch(Z, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/coast/i],\n describe(e) {\n const t = {\n name: \"Opera Coast\"\n },\n r = Y.getFirstMatch(Z, e) || Y.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/yabrowser/i],\n describe(e) {\n const t = {\n name: \"Yandex Browser\"\n },\n r = Y.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || Y.getFirstMatch(Z, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/ucbrowser/i],\n describe(e) {\n const t = {\n name: \"UC Browser\"\n },\n r = Y.getFirstMatch(Z, e) || Y.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/Maxthon|mxios/i],\n describe(e) {\n const t = {\n name: \"Maxthon\"\n },\n r = Y.getFirstMatch(Z, e) || Y.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/epiphany/i],\n describe(e) {\n const t = {\n name: \"Epiphany\"\n },\n r = Y.getFirstMatch(Z, e) || Y.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/puffin/i],\n describe(e) {\n const t = {\n name: \"Puffin\"\n },\n r = Y.getFirstMatch(Z, e) || Y.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/sleipnir/i],\n describe(e) {\n const t = {\n name: \"Sleipnir\"\n },\n r = Y.getFirstMatch(Z, e) || Y.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/k-meleon/i],\n describe(e) {\n const t = {\n name: \"K-Meleon\"\n },\n r = Y.getFirstMatch(Z, e) || Y.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/micromessenger/i],\n describe(e) {\n const t = {\n name: \"WeChat\"\n },\n r = Y.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || Y.getFirstMatch(Z, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/qqbrowser/i],\n describe(e) {\n const t = {\n name: /qqbrowserlite/i.test(e) ? \"QQ Browser Lite\" : \"QQ Browser\"\n },\n r = Y.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i, e) || Y.getFirstMatch(Z, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/msie|trident/i],\n describe(e) {\n const t = {\n name: \"Internet Explorer\"\n },\n r = Y.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/\\sedg\\//i],\n describe(e) {\n const t = {\n name: \"Microsoft Edge\"\n },\n r = Y.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/edg([ea]|ios)/i],\n describe(e) {\n const t = {\n name: \"Microsoft Edge\"\n },\n r = Y.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/vivaldi/i],\n describe(e) {\n const t = {\n name: \"Vivaldi\"\n },\n r = Y.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/seamonkey/i],\n describe(e) {\n const t = {\n name: \"SeaMonkey\"\n },\n r = Y.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/sailfish/i],\n describe(e) {\n const t = {\n name: \"Sailfish\"\n },\n r = Y.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/silk/i],\n describe(e) {\n const t = {\n name: \"Amazon Silk\"\n },\n r = Y.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/phantom/i],\n describe(e) {\n const t = {\n name: \"PhantomJS\"\n },\n r = Y.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/slimerjs/i],\n describe(e) {\n const t = {\n name: \"SlimerJS\"\n },\n r = Y.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/blackberry|\\bbb\\d+/i, /rim\\stablet/i],\n describe(e) {\n const t = {\n name: \"BlackBerry\"\n },\n r = Y.getFirstMatch(Z, e) || Y.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/(web|hpw)[o0]s/i],\n describe(e) {\n const t = {\n name: \"WebOS Browser\"\n },\n r = Y.getFirstMatch(Z, e) || Y.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/bada/i],\n describe(e) {\n const t = {\n name: \"Bada\"\n },\n r = Y.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/tizen/i],\n describe(e) {\n const t = {\n name: \"Tizen\"\n },\n r = Y.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i, e) || Y.getFirstMatch(Z, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/qupzilla/i],\n describe(e) {\n const t = {\n name: \"QupZilla\"\n },\n r = Y.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || Y.getFirstMatch(Z, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/firefox|iceweasel|fxios/i],\n describe(e) {\n const t = {\n name: \"Firefox\"\n },\n r = Y.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/electron/i],\n describe(e) {\n const t = {\n name: \"Electron\"\n },\n r = Y.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/chromium/i],\n describe(e) {\n const t = {\n name: \"Chromium\"\n },\n r = Y.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || Y.getFirstMatch(Z, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/chrome|crios|crmo/i],\n describe(e) {\n const t = {\n name: \"Chrome\"\n },\n r = Y.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/GSA/i],\n describe(e) {\n const t = {\n name: \"Google Search\"\n },\n r = Y.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test(e) {\n const t = !e.test(/like android/i),\n r = e.test(/android/i);\n return t && r;\n },\n describe(e) {\n const t = {\n name: \"Android Browser\"\n },\n r = Y.getFirstMatch(Z, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/playstation 4/i],\n describe(e) {\n const t = {\n name: \"PlayStation 4\"\n },\n r = Y.getFirstMatch(Z, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/safari|applewebkit/i],\n describe(e) {\n const t = {\n name: \"Safari\"\n },\n r = Y.getFirstMatch(Z, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/.*/i],\n describe(e) {\n const t = -1 !== e.search(\"\\\\(\") ? /^(.*)\\/(.*)[ \\t]\\((.*)/ : /^(.*)\\/(.*) /;\n return {\n name: Y.getFirstMatch(t, e),\n version: Y.getSecondMatch(t, e)\n };\n }\n }];\nvar ee = [{\n test: [/Roku\\/DVP/],\n describe(e) {\n const t = Y.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i, e);\n return {\n name: Q.Roku,\n version: t\n };\n }\n }, {\n test: [/windows phone/i],\n describe(e) {\n const t = Y.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i, e);\n return {\n name: Q.WindowsPhone,\n version: t\n };\n }\n }, {\n test: [/windows /i],\n describe(e) {\n const t = Y.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i, e),\n r = Y.getWindowsVersionName(t);\n return {\n name: Q.Windows,\n version: t,\n versionName: r\n };\n }\n }, {\n test: [/Macintosh(.*?) FxiOS(.*?) Version\\//],\n describe(e) {\n const t = Y.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/, e);\n return {\n name: Q.iOS,\n version: t\n };\n }\n }, {\n test: [/macintosh/i],\n describe(e) {\n const t = Y.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i, e).replace(/[_\\s]/g, \".\"),\n r = Y.getMacOSVersionName(t),\n i = {\n name: Q.MacOS,\n version: t\n };\n return r && (i.versionName = r), i;\n }\n }, {\n test: [/(ipod|iphone|ipad)/i],\n describe(e) {\n const t = Y.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i, e).replace(/[_\\s]/g, \".\");\n return {\n name: Q.iOS,\n version: t\n };\n }\n }, {\n test(e) {\n const t = !e.test(/like android/i),\n r = e.test(/android/i);\n return t && r;\n },\n describe(e) {\n const t = Y.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i, e),\n r = Y.getAndroidVersionName(t),\n i = {\n name: Q.Android,\n version: t\n };\n return r && (i.versionName = r), i;\n }\n }, {\n test: [/(web|hpw)[o0]s/i],\n describe(e) {\n const t = Y.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i, e),\n r = {\n name: Q.WebOS\n };\n return t && t.length && (r.version = t), r;\n }\n }, {\n test: [/blackberry|\\bbb\\d+/i, /rim\\stablet/i],\n describe(e) {\n const t = Y.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i, e) || Y.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i, e) || Y.getFirstMatch(/\\bbb(\\d+)/i, e);\n return {\n name: Q.BlackBerry,\n version: t\n };\n }\n }, {\n test: [/bada/i],\n describe(e) {\n const t = Y.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i, e);\n return {\n name: Q.Bada,\n version: t\n };\n }\n }, {\n test: [/tizen/i],\n describe(e) {\n const t = Y.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i, e);\n return {\n name: Q.Tizen,\n version: t\n };\n }\n }, {\n test: [/linux/i],\n describe: () => ({\n name: Q.Linux\n })\n }, {\n test: [/CrOS/],\n describe: () => ({\n name: Q.ChromeOS\n })\n }, {\n test: [/PlayStation 4/],\n describe(e) {\n const t = Y.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i, e);\n return {\n name: Q.PlayStation4,\n version: t\n };\n }\n }],\n te = [{\n test: [/googlebot/i],\n describe: () => ({\n type: \"bot\",\n vendor: \"Google\"\n })\n }, {\n test: [/huawei/i],\n describe(e) {\n const t = Y.getFirstMatch(/(can-l01)/i, e) && \"Nova\",\n r = {\n type: K.mobile,\n vendor: \"Huawei\"\n };\n return t && (r.model = t), r;\n }\n }, {\n test: [/nexus\\s*(?:7|8|9|10).*/i],\n describe: () => ({\n type: K.tablet,\n vendor: \"Nexus\"\n })\n }, {\n test: [/ipad/i],\n describe: () => ({\n type: K.tablet,\n vendor: \"Apple\",\n model: \"iPad\"\n })\n }, {\n test: [/Macintosh(.*?) FxiOS(.*?) Version\\//],\n describe: () => ({\n type: K.tablet,\n vendor: \"Apple\",\n model: \"iPad\"\n })\n }, {\n test: [/kftt build/i],\n describe: () => ({\n type: K.tablet,\n vendor: \"Amazon\",\n model: \"Kindle Fire HD 7\"\n })\n }, {\n test: [/silk/i],\n describe: () => ({\n type: K.tablet,\n vendor: \"Amazon\"\n })\n }, {\n test: [/tablet(?! pc)/i],\n describe: () => ({\n type: K.tablet\n })\n }, {\n test(e) {\n const t = e.test(/ipod|iphone/i),\n r = e.test(/like (ipod|iphone)/i);\n return t && !r;\n },\n describe(e) {\n const t = Y.getFirstMatch(/(ipod|iphone)/i, e);\n return {\n type: K.mobile,\n vendor: \"Apple\",\n model: t\n };\n }\n }, {\n test: [/nexus\\s*[0-6].*/i, /galaxy nexus/i],\n describe: () => ({\n type: K.mobile,\n vendor: \"Nexus\"\n })\n }, {\n test: [/[^-]mobi/i],\n describe: () => ({\n type: K.mobile\n })\n }, {\n test: e => \"blackberry\" === e.getBrowserName(!0),\n describe: () => ({\n type: K.mobile,\n vendor: \"BlackBerry\"\n })\n }, {\n test: e => \"bada\" === e.getBrowserName(!0),\n describe: () => ({\n type: K.mobile\n })\n }, {\n test: e => \"windows phone\" === e.getBrowserName(),\n describe: () => ({\n type: K.mobile,\n vendor: \"Microsoft\"\n })\n }, {\n test(e) {\n const t = Number(String(e.getOSVersion()).split(\".\")[0]);\n return \"android\" === e.getOSName(!0) && t >= 3;\n },\n describe: () => ({\n type: K.tablet\n })\n }, {\n test: e => \"android\" === e.getOSName(!0),\n describe: () => ({\n type: K.mobile\n })\n }, {\n test: e => \"macos\" === e.getOSName(!0),\n describe: () => ({\n type: K.desktop,\n vendor: \"Apple\"\n })\n }, {\n test: e => \"windows\" === e.getOSName(!0),\n describe: () => ({\n type: K.desktop\n })\n }, {\n test: e => \"linux\" === e.getOSName(!0),\n describe: () => ({\n type: K.desktop\n })\n }, {\n test: e => \"playstation 4\" === e.getOSName(!0),\n describe: () => ({\n type: K.tv\n })\n }, {\n test: e => \"roku\" === e.getOSName(!0),\n describe: () => ({\n type: K.tv\n })\n }],\n re = [{\n test: e => \"microsoft edge\" === e.getBrowserName(!0),\n describe(e) {\n if (/\\sedg\\//i.test(e)) return {\n name: $.Blink\n };\n const t = Y.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return {\n name: $.EdgeHTML,\n version: t\n };\n }\n }, {\n test: [/trident/i],\n describe(e) {\n const t = {\n name: $.Trident\n },\n r = Y.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: e => e.test(/presto/i),\n describe(e) {\n const t = {\n name: $.Presto\n },\n r = Y.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test(e) {\n const t = e.test(/gecko/i),\n r = e.test(/like gecko/i);\n return t && !r;\n },\n describe(e) {\n const t = {\n name: $.Gecko\n },\n r = Y.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/(apple)?webkit\\/537\\.36/i],\n describe: () => ({\n name: $.Blink\n })\n }, {\n test: [/(apple)?webkit/i],\n describe(e) {\n const t = {\n name: $.WebKit\n },\n r = Y.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }];\nclass ie {\n constructor(e) {\n let t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !1;\n if (null == e || \"\" === e) throw new Error(\"UserAgent parameter can't be empty\");\n this._ua = e, this.parsedResult = {}, !0 !== t && this.parse();\n }\n getUA() {\n return this._ua;\n }\n test(e) {\n return e.test(this._ua);\n }\n parseBrowser() {\n this.parsedResult.browser = {};\n const e = Y.find(X, e => {\n if (\"function\" == typeof e.test) return e.test(this);\n if (e.test instanceof Array) return e.test.some(e => this.test(e));\n throw new Error(\"Browser's test function is not valid\");\n });\n return e && (this.parsedResult.browser = e.describe(this.getUA())), this.parsedResult.browser;\n }\n getBrowser() {\n return this.parsedResult.browser ? this.parsedResult.browser : this.parseBrowser();\n }\n getBrowserName(e) {\n return e ? String(this.getBrowser().name).toLowerCase() || \"\" : this.getBrowser().name || \"\";\n }\n getBrowserVersion() {\n return this.getBrowser().version;\n }\n getOS() {\n return this.parsedResult.os ? this.parsedResult.os : this.parseOS();\n }\n parseOS() {\n this.parsedResult.os = {};\n const e = Y.find(ee, e => {\n if (\"function\" == typeof e.test) return e.test(this);\n if (e.test instanceof Array) return e.test.some(e => this.test(e));\n throw new Error(\"Browser's test function is not valid\");\n });\n return e && (this.parsedResult.os = e.describe(this.getUA())), this.parsedResult.os;\n }\n getOSName(e) {\n const _this$getOS = this.getOS(),\n t = _this$getOS.name;\n return e ? String(t).toLowerCase() || \"\" : t || \"\";\n }\n getOSVersion() {\n return this.getOS().version;\n }\n getPlatform() {\n return this.parsedResult.platform ? this.parsedResult.platform : this.parsePlatform();\n }\n getPlatformType() {\n let e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : !1;\n const _this$getPlatform = this.getPlatform(),\n t = _this$getPlatform.type;\n return e ? String(t).toLowerCase() || \"\" : t || \"\";\n }\n parsePlatform() {\n this.parsedResult.platform = {};\n const e = Y.find(te, e => {\n if (\"function\" == typeof e.test) return e.test(this);\n if (e.test instanceof Array) return e.test.some(e => this.test(e));\n throw new Error(\"Browser's test function is not valid\");\n });\n return e && (this.parsedResult.platform = e.describe(this.getUA())), this.parsedResult.platform;\n }\n getEngine() {\n return this.parsedResult.engine ? this.parsedResult.engine : this.parseEngine();\n }\n getEngineName(e) {\n return e ? String(this.getEngine().name).toLowerCase() || \"\" : this.getEngine().name || \"\";\n }\n parseEngine() {\n this.parsedResult.engine = {};\n const e = Y.find(re, e => {\n if (\"function\" == typeof e.test) return e.test(this);\n if (e.test instanceof Array) return e.test.some(e => this.test(e));\n throw new Error(\"Browser's test function is not valid\");\n });\n return e && (this.parsedResult.engine = e.describe(this.getUA())), this.parsedResult.engine;\n }\n parse() {\n return this.parseBrowser(), this.parseOS(), this.parsePlatform(), this.parseEngine(), this;\n }\n getResult() {\n return Y.assign({}, this.parsedResult);\n }\n satisfies(e) {\n const t = {};\n let r = 0;\n const i = {};\n let n = 0;\n if (Object.keys(e).forEach(a => {\n const o = e[a];\n \"string\" == typeof o ? (i[a] = o, n += 1) : \"object\" == typeof o && (t[a] = o, r += 1);\n }), r > 0) {\n const e = Object.keys(t),\n r = Y.find(e, e => this.isOS(e));\n if (r) {\n const e = this.satisfies(t[r]);\n if (void 0 !== e) return e;\n }\n const i = Y.find(e, e => this.isPlatform(e));\n if (i) {\n const e = this.satisfies(t[i]);\n if (void 0 !== e) return e;\n }\n }\n if (n > 0) {\n const e = Object.keys(i),\n t = Y.find(e, e => this.isBrowser(e, !0));\n if (void 0 !== t) return this.compareVersion(i[t]);\n }\n }\n isBrowser(e) {\n let t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !1;\n const r = this.getBrowserName().toLowerCase();\n let i = e.toLowerCase();\n const n = Y.getBrowserTypeByAlias(i);\n return t && n && (i = n.toLowerCase()), i === r;\n }\n compareVersion(e) {\n let t = [0],\n r = e,\n i = !1;\n const n = this.getBrowserVersion();\n if (\"string\" == typeof n) return \">\" === e[0] || \"<\" === e[0] ? (r = e.substr(1), \"=\" === e[1] ? (i = !0, r = e.substr(2)) : t = [], \">\" === e[0] ? t.push(1) : t.push(-1)) : \"=\" === e[0] ? r = e.substr(1) : \"~\" === e[0] && (i = !0, r = e.substr(1)), t.indexOf(Y.compareVersions(n, r, i)) > -1;\n }\n isOS(e) {\n return this.getOSName(!0) === String(e).toLowerCase();\n }\n isPlatform(e) {\n return this.getPlatformType(!0) === String(e).toLowerCase();\n }\n isEngine(e) {\n return this.getEngineName(!0) === String(e).toLowerCase();\n }\n is(e) {\n return this.isBrowser(e) || this.isOS(e) || this.isPlatform(e);\n }\n some() {\n let e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return e.some(e => this.is(e));\n }\n}\nvar ne = \"new\",\n ae = \"loading\",\n oe = \"joining-meeting\",\n se = \"joined-meeting\",\n ce = \"left-meeting\",\n le = \"error\",\n ue = \"blocked\",\n de = \"off\",\n he = \"sendable\",\n pe = \"loading\",\n fe = \"interrupted\",\n ve = \"playable\",\n ge = \"unknown\",\n me = \"full\",\n ye = \"lobby\",\n be = \"none\",\n we = \"base\",\n _e = \"*\",\n ke = \"ejected\",\n Se = \"nbf-room\",\n Me = \"nbf-token\",\n Ce = \"exp-room\",\n Te = \"exp-token\",\n Oe = \"meeting-full\",\n je = \"end-of-life\",\n Pe = \"not-allowed\",\n Ae = \"cam-in-use\",\n Fe = \"mic-in-use\",\n Ee = \"cam-mic-in-use\",\n Ie = \"permissions\",\n Le = \"undefined-mediadevices\",\n De = \"not-found\",\n Be = \"constraints\",\n Ne = \"unknown\",\n xe = \"iframe-ready-for-launch-config\",\n Re = \"iframe-launch-config\",\n Ve = \"theme-updated\",\n Ue = \"loading\",\n ze = \"load-attempt-failed\",\n Je = \"loaded\",\n qe = \"started-camera\",\n We = \"camera-error\",\n Ge = \"joining-meeting\",\n He = \"joined-meeting\",\n Ke = \"left-meeting\",\n Qe = \"available-devices-updated\",\n $e = \"participant-joined\",\n Ye = \"participant-updated\",\n Ze = \"participant-left\",\n Xe = \"participant-counts-updated\",\n et = \"access-state-updated\",\n tt = \"meeting-session-updated\",\n rt = \"meeting-session-state-updated\",\n it = \"meeting-session-data-error\",\n nt = \"waiting-participant-added\",\n at = \"waiting-participant-updated\",\n ot = \"waiting-participant-removed\",\n st = \"track-started\",\n ct = \"track-stopped\",\n lt = \"transcription-started\",\n ut = \"transcription-stopped\",\n dt = \"transcription-error\",\n ht = \"recording-started\",\n pt = \"recording-stopped\",\n ft = \"recording-stats\",\n vt = \"recording-error\",\n gt = \"recording-upload-completed\",\n mt = \"recording-data\",\n yt = \"app-message\",\n bt = \"remote-media-player-started\",\n wt = \"remote-media-player-updated\",\n _t = \"remote-media-player-stopped\",\n kt = \"local-screen-share-started\",\n St = \"local-screen-share-stopped\",\n Mt = \"active-speaker-change\",\n Ct = \"active-speaker-mode-change\",\n Tt = \"network-quality-change\",\n Ot = \"network-connection\",\n jt = \"cpu-load-change\",\n Pt = \"fullscreen\",\n At = \"exited-fullscreen\",\n Ft = \"live-streaming-started\",\n Et = \"live-streaming-updated\",\n It = \"live-streaming-stopped\",\n Lt = \"live-streaming-error\",\n Dt = \"lang-updated\",\n Bt = \"receive-settings-updated\",\n Nt = \"input-settings-updated\",\n xt = \"nonfatal-error\",\n Rt = \"error\",\n Vt = 4096,\n Ut = \"daily-custom-track\",\n zt = {\n NONE: \"none\",\n BGBLUR: \"background-blur\",\n BGIMAGE: \"background-image\"\n },\n Jt = {\n NONE: \"none\",\n NOISE_CANCELLATION: \"noise-cancellation\"\n },\n qt = {\n PLAY: \"play\",\n PAUSE: \"pause\"\n },\n Wt = 10,\n Gt = [\"jpg\", \"png\", \"jpeg\"],\n Ht = \"add-endpoints\",\n Kt = \"remove-endpoints\";\nfunction Qt() {\n return !$t() && \"undefined\" != typeof window && window.navigator && window.navigator.userAgent ? window.navigator.userAgent : \"\";\n}\nfunction $t() {\n return \"undefined\" != typeof navigator && navigator.product && \"ReactNative\" === navigator.product;\n}\nfunction Yt() {\n return navigator && navigator.mediaDevices && navigator.mediaDevices.getUserMedia;\n}\nfunction Zt() {\n return !!(navigator && navigator.mediaDevices && navigator.mediaDevices.getDisplayMedia) && function (e, t) {\n if (!e || !t) return !0;\n switch (e) {\n case \"Chrome\":\n return t.major >= 75;\n case \"Safari\":\n return RTCRtpTransceiver.prototype.hasOwnProperty(\"currentDirection\") && !(13 === t.major && 0 === t.minor && 0 === t.point);\n case \"Firefox\":\n return t.major >= 67;\n }\n return !0;\n }(nr(), function () {\n switch (nr()) {\n case \"Chrome\":\n return ar();\n case \"Safari\":\n return sr();\n case \"Firefox\":\n return cr();\n case \"Edge\":\n return function () {\n var e = 0,\n t = 0;\n if (\"undefined\" != typeof window) {\n var r = Qt(),\n i = r.match(/Edge\\/(\\d+).(\\d+)/);\n if (i) try {\n e = parseInt(i[1]), t = parseInt(i[2]);\n } catch (e) {}\n }\n return {\n major: e,\n minor: t\n };\n }();\n }\n }());\n}\nfunction Xt() {\n if ($t()) return !1;\n if (!document) return !1;\n var e = document.createElement(\"iframe\");\n return !!e.requestFullscreen || !!e.webkitRequestFullscreen;\n}\nvar er = [\"Chrome\", \"Firefox\"];\nvar tr = [\"Chrome\", \"Firefox\"];\nfunction rr() {\n return Yt() && !function () {\n var e,\n t = nr();\n if (!Qt()) return !0;\n switch (t) {\n case \"Chrome\":\n return (e = ar()).major && e.major > 0 && e.major < 61;\n case \"Firefox\":\n return (e = cr()).major < 78;\n case \"Safari\":\n return (e = sr()).major < 12;\n default:\n return !0;\n }\n }();\n}\nfunction ir() {\n var e = Qt();\n return !(!e.match(/Mobi/) && !e.match(/Android/)) || !!Qt().match(/DailyAnd\\//) || void 0;\n}\nfunction nr() {\n if (\"undefined\" != typeof window) {\n var e = Qt();\n return or() ? \"Safari\" : e.indexOf(\"Edge\") > -1 ? \"Edge\" : e.match(/Chrome\\//) ? \"Chrome\" : e.indexOf(\"Safari\") > -1 ? \"Safari\" : e.indexOf(\"Firefox\") > -1 ? \"Firefox\" : e.indexOf(\"MSIE\") > -1 || e.indexOf(\".NET\") > -1 ? \"IE\" : \"Unknown Browser\";\n }\n}\nfunction ar() {\n var e = 0,\n t = 0,\n r = 0,\n i = 0,\n n = !1;\n if (\"undefined\" != typeof window) {\n var a = Qt(),\n o = a.match(/Chrome\\/(\\d+).(\\d+).(\\d+).(\\d+)/);\n if (o) try {\n e = parseInt(o[1]), t = parseInt(o[2]), r = parseInt(o[3]), i = parseInt(o[4]), n = a.indexOf(\"OPR/\") > -1;\n } catch (e) {}\n }\n return {\n major: e,\n minor: t,\n build: r,\n patch: i,\n opera: n\n };\n}\nfunction or() {\n return !!Qt().match(/iPad|iPhone|iPod/i) && Yt();\n}\nfunction sr() {\n var e = 0,\n t = 0,\n r = 0;\n if (\"undefined\" != typeof window) {\n var i = Qt().match(/Version\\/(\\d+).(\\d+)(.(\\d+))?/);\n if (i) try {\n e = parseInt(i[1]), t = parseInt(i[2]), r = parseInt(i[4]);\n } catch (e) {} else or() && (e = 14, t = 0, r = 3);\n }\n return {\n major: e,\n minor: t,\n point: r\n };\n}\nfunction cr() {\n var e = 0,\n t = 0;\n if (\"undefined\" != typeof window) {\n var r = Qt().match(/Firefox\\/(\\d+).(\\d+)/);\n if (r) try {\n e = parseInt(r[1]), t = parseInt(r[2]);\n } catch (e) {}\n }\n return {\n major: e,\n minor: t\n };\n}\nfunction lr() {\n return Date.now() + Math.random().toString();\n}\nfunction ur() {\n throw new Error(\"Method must be implemented in subclass\");\n}\nfunction dr() {\n return window._dailyConfig && window._dailyConfig.callObjectBundleUrlOverride ? window._dailyConfig.callObjectBundleUrlOverride : \"https://c.daily.co/call-machine/versioned/\".concat(\"0.41.0\", \"/static/call-machine-object-bundle.js\");\n}\nfunction hr(e) {\n try {\n new URL(e);\n } catch (e) {\n return !1;\n }\n return !0;\n}\nvar pr = function () {\n function e() {\n o(this, e);\n }\n return l(e, [{\n key: \"addListenerForMessagesFromCallMachine\",\n value: function (e, t, r) {\n ur();\n }\n }, {\n key: \"addListenerForMessagesFromDailyJs\",\n value: function (e, t, r) {\n ur();\n }\n }, {\n key: \"sendMessageToCallMachine\",\n value: function (e, t, r, i) {\n ur();\n }\n }, {\n key: \"sendMessageToDailyJs\",\n value: function (e, t) {\n ur();\n }\n }, {\n key: \"removeListener\",\n value: function (e) {\n ur();\n }\n }]), e;\n}();\nfunction fr(e, t) {\n var r = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n t && (i = i.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), r.push.apply(r, i);\n }\n return r;\n}\nfunction vr(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = null != arguments[t] ? arguments[t] : {};\n t % 2 ? fr(Object(r), !0).forEach(function (t) {\n m(e, t, r[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : fr(Object(r)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n });\n }\n return e;\n}\nfunction gr(e) {\n var t = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n try {\n return Date.prototype.toString.call(Reflect.construct(Date, [], function () {})), !0;\n } catch (e) {\n return !1;\n }\n }();\n return function () {\n var r,\n i = g(e);\n if (t) {\n var n = g(this).constructor;\n r = Reflect.construct(i, arguments, n);\n } else r = i.apply(this, arguments);\n return v(this, r);\n };\n}\nvar mr = function (e) {\n p(r, pr);\n var t = gr(r);\n function r() {\n var e;\n return o(this, r), (e = t.call(this))._wrappedListeners = {}, e._messageCallbacks = {}, e;\n }\n return l(r, [{\n key: \"addListenerForMessagesFromCallMachine\",\n value: function (e, t, r) {\n var i = this,\n n = function (n) {\n if (n.data && \"iframe-call-message\" === n.data.what && (!n.data.callFrameId || n.data.callFrameId === t) && (!n.data.from || \"module\" !== n.data.from)) {\n var a = vr({}, n.data);\n if (delete a.from, a.callbackStamp && i._messageCallbacks[a.callbackStamp]) {\n var o = a.callbackStamp;\n i._messageCallbacks[o].call(r, a), delete i._messageCallbacks[o];\n }\n delete a.what, delete a.callbackStamp, e.call(r, a);\n }\n };\n this._wrappedListeners[e] = n, window.addEventListener(\"message\", n);\n }\n }, {\n key: \"addListenerForMessagesFromDailyJs\",\n value: function (e, t, r) {\n var i = function (i) {\n if (!(!i.data || \"iframe-call-message\" !== i.data.what || !i.data.action || i.data.from && \"module\" !== i.data.from || i.data.callFrameId && t && i.data.callFrameId !== t)) {\n var n = i.data;\n e.call(r, n);\n }\n };\n this._wrappedListeners[e] = i, window.addEventListener(\"message\", i);\n }\n }, {\n key: \"sendMessageToCallMachine\",\n value: function (e, t, r, i) {\n if (!i) throw new Error(\"undefined callFrameId. Are you trying to use a dailyIFrame instance previously destroyed?\");\n var n = vr({}, e);\n if (n.what = \"iframe-call-message\", n.from = \"module\", n.callFrameId = i, t) {\n var a = lr();\n this._messageCallbacks[a] = t, n.callbackStamp = a;\n }\n (r ? r.contentWindow : window).postMessage(n, \"*\");\n }\n }, {\n key: \"sendMessageToDailyJs\",\n value: function (e, t) {\n e.what = \"iframe-call-message\", e.callFrameId = t, e.from = \"embedded\", window.postMessage(e, \"*\");\n }\n }, {\n key: \"removeListener\",\n value: function (e) {\n var t = this._wrappedListeners[e];\n t && (window.removeEventListener(\"message\", t), delete this._wrappedListeners[e]);\n }\n }, {\n key: \"forwardPackagedMessageToCallMachine\",\n value: function (e, t, r) {\n var i = vr({}, e);\n i.callFrameId = r, (t ? t.contentWindow : window).postMessage(i, \"*\");\n }\n }, {\n key: \"addListenerForPackagedMessagesFromCallMachine\",\n value: function (e, t) {\n var r = function (r) {\n if (r.data && \"iframe-call-message\" === r.data.what && (!r.data.callFrameId || r.data.callFrameId === t) && (!r.data.from || \"module\" !== r.data.from)) {\n var i = r.data;\n e(i);\n }\n };\n return this._wrappedListeners[e] = r, window.addEventListener(\"message\", r), e;\n }\n }, {\n key: \"removeListenerForPackagedMessagesFromCallMachine\",\n value: function (e) {\n var t = this._wrappedListeners[e];\n t && (window.removeEventListener(\"message\", t), delete this._wrappedListeners[e]);\n }\n }]), r;\n}();\nfunction yr(e) {\n var t = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n try {\n return Date.prototype.toString.call(Reflect.construct(Date, [], function () {})), !0;\n } catch (e) {\n return !1;\n }\n }();\n return function () {\n var r,\n i = g(e);\n if (t) {\n var n = g(this).constructor;\n r = Reflect.construct(i, arguments, n);\n } else r = i.apply(this, arguments);\n return v(this, r);\n };\n}\nvar br = function (e) {\n p(i, pr);\n var r = yr(i);\n function i() {\n var e;\n return o(this, i), e = r.call(this), global.callMachineToDailyJsEmitter = global.callMachineToDailyJsEmitter || new t(), global.dailyJsToCallMachineEmitter = global.dailyJsToCallMachineEmitter || new t(), e._wrappedListeners = {}, e._messageCallbacks = {}, e;\n }\n return l(i, [{\n key: \"addListenerForMessagesFromCallMachine\",\n value: function (e, t, r) {\n this._addListener(e, global.callMachineToDailyJsEmitter, r, \"received call machine message\");\n }\n }, {\n key: \"addListenerForMessagesFromDailyJs\",\n value: function (e, t, r) {\n this._addListener(e, global.dailyJsToCallMachineEmitter, r, \"received daily-js message\");\n }\n }, {\n key: \"sendMessageToCallMachine\",\n value: function (e, t) {\n this._sendMessage(e, global.dailyJsToCallMachineEmitter, \"sending message to call machine\", t);\n }\n }, {\n key: \"sendMessageToDailyJs\",\n value: function (e) {\n this._sendMessage(e, global.callMachineToDailyJsEmitter, \"sending message to daily-js\");\n }\n }, {\n key: \"removeListener\",\n value: function (e) {\n var t = this._wrappedListeners[e];\n t && (global.callMachineToDailyJsEmitter.removeListener(\"message\", t), global.dailyJsToCallMachineEmitter.removeListener(\"message\", t), delete this._wrappedListeners[e]);\n }\n }, {\n key: \"_addListener\",\n value: function (e, t, r, i) {\n var n = this,\n a = function (t) {\n if (t.callbackStamp && n._messageCallbacks[t.callbackStamp]) {\n var i = t.callbackStamp;\n n._messageCallbacks[i].call(r, t), delete n._messageCallbacks[i];\n }\n e.call(r, t);\n };\n this._wrappedListeners[e] = a, t.addListener(\"message\", a);\n }\n }, {\n key: \"_sendMessage\",\n value: function (e, t, r, i) {\n if (i) {\n var n = lr();\n this._messageCallbacks[n] = i, e.callbackStamp = n;\n }\n t.emit(\"message\", e);\n }\n }]), i;\n }(),\n wr = Object.prototype.hasOwnProperty;\nfunction _r(e, t, r) {\n var _iterator = _createForOfIteratorHelper(e.keys()),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n r = _step.value;\n if (kr(r, t)) return r;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n}\nfunction kr(e, t) {\n var r, i, n;\n if (e === t) return !0;\n if (e && t && (r = e.constructor) === t.constructor) {\n if (r === Date) return e.getTime() === t.getTime();\n if (r === RegExp) return e.toString() === t.toString();\n if (r === Array) {\n if ((i = e.length) === t.length) for (; i-- && kr(e[i], t[i]););\n return -1 === i;\n }\n if (r === Set) {\n if (e.size !== t.size) return !1;\n var _iterator2 = _createForOfIteratorHelper(e),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n i = _step2.value;\n if ((n = i) && \"object\" == typeof n && !(n = _r(t, n))) return !1;\n if (!t.has(n)) return !1;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return !0;\n }\n if (r === Map) {\n if (e.size !== t.size) return !1;\n var _iterator3 = _createForOfIteratorHelper(e),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n i = _step3.value;\n if ((n = i[0]) && \"object\" == typeof n && !(n = _r(t, n))) return !1;\n if (!kr(i[1], t.get(n))) return !1;\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n return !0;\n }\n if (r === ArrayBuffer) e = new Uint8Array(e), t = new Uint8Array(t);else if (r === DataView) {\n if ((i = e.byteLength) === t.byteLength) for (; i-- && e.getInt8(i) === t.getInt8(i););\n return -1 === i;\n }\n if (ArrayBuffer.isView(e)) {\n if ((i = e.byteLength) === t.byteLength) for (; i-- && e[i] === t[i];);\n return -1 === i;\n }\n if (!r || \"object\" == typeof e) {\n for (r in i = 0, e) {\n if (wr.call(e, r) && ++i && !wr.call(t, r)) return !1;\n if (!(r in t && kr(e[r], t[r]))) return !1;\n }\n return Object.keys(t).length === i;\n }\n }\n return e != e && t != t;\n}\nvar Sr = \"replace\",\n Mr = [Sr, \"shallow-merge\"];\nvar Cr = function () {\n function e() {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n r = t.data,\n i = t.mergeStrategy,\n n = void 0 === i ? Sr : i;\n o(this, e), e._validateMergeStrategy(n), e._validateData(r, n), this.mergeStrategy = n, this.data = r;\n }\n return l(e, [{\n key: \"isNoOp\",\n value: function () {\n return e.isNoOpUpdate(this.data, this.mergeStrategy);\n }\n }], [{\n key: \"isNoOpUpdate\",\n value: function (e, t) {\n return 0 === Object.keys(e).length && \"shallow-merge\" === t;\n }\n }, {\n key: \"_validateMergeStrategy\",\n value: function (e) {\n if (!Mr.includes(e)) throw Error(\"Unrecognized mergeStrategy provided. Options are: [\".concat(Mr, \"]\"));\n }\n }, {\n key: \"_validateData\",\n value: function (e, t) {\n if (!function (e) {\n if (null == e || \"object\" !== f(e)) return !1;\n var t = Object.getPrototypeOf(e);\n return null == t || t === Object.prototype;\n }(e)) throw Error(\"Meeting session data must be a plain (map-like) object\");\n var r;\n try {\n if (r = JSON.stringify(e), t === Sr) {\n var i = JSON.parse(r);\n kr(i, e) || console.warn(\"The meeting session data provided will be modified when serialized.\", i, e);\n } else if (\"shallow-merge\" === t) for (var n in e) if (Object.hasOwnProperty.call(e, n) && void 0 !== e[n]) {\n var a = JSON.parse(JSON.stringify(e[n]));\n kr(e[n], a) || console.warn(\"At least one key in the meeting session data provided will be modified when serialized.\", a, e[n]);\n }\n } catch (e) {\n throw Error(\"Meeting session data must be serializable to JSON: \".concat(e));\n }\n if (r.length > 102400) throw Error(\"Meeting session data is too large (\".concat(r.length, \" characters). Maximum size suppported is \").concat(102400, \".\"));\n }\n }]), e;\n}();\nvar Tr = function (e) {\n return -1 !== Function.toString.call(e).indexOf(\"[native code]\");\n};\nvar Or = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n try {\n return Date.prototype.toString.call(Reflect.construct(Date, [], function () {})), !0;\n } catch (e) {\n return !1;\n }\n },\n jr = d(function (e) {\n function t(r, i, n) {\n return Or() ? e.exports = t = Reflect.construct : e.exports = t = function (e, t, r) {\n var i = [null];\n i.push.apply(i, t);\n var n = new (Function.bind.apply(e, i))();\n return r && h(n, r.prototype), n;\n }, t.apply(null, arguments);\n }\n e.exports = t;\n }),\n Pr = d(function (e) {\n function t(r) {\n var i = \"function\" == typeof Map ? new Map() : void 0;\n return e.exports = t = function (e) {\n if (null === e || !Tr(e)) return e;\n if (\"function\" != typeof e) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== i) {\n if (i.has(e)) return i.get(e);\n i.set(e, t);\n }\n function t() {\n return jr(e, arguments, g(this).constructor);\n }\n return t.prototype = Object.create(e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), h(t, e);\n }, t(r);\n }\n e.exports = t;\n });\nfunction Ar(e) {\n var t = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n try {\n return Date.prototype.toString.call(Reflect.construct(Date, [], function () {})), !0;\n } catch (e) {\n return !1;\n }\n }();\n return function () {\n var r,\n i = g(e);\n if (t) {\n var n = g(this).constructor;\n r = Reflect.construct(i, arguments, n);\n } else r = i.apply(this, arguments);\n return v(this, r);\n };\n}\nvar Fr = function () {\n function e() {\n o(this, e), this._currentLoad = null;\n }\n return l(e, [{\n key: \"load\",\n value: function (e, t, r, i) {\n if (this.loaded) return window._dailyCallObjectSetup(e), void r(!0);\n !function (e, t) {\n window._dailyConfig || (window._dailyConfig = {}), window._dailyConfig.callFrameId = e, window._dailyConfig.avoidEval = t;\n }(e, t), this._currentLoad && this._currentLoad.cancel(), this._currentLoad = new Ir(function () {\n r(!1);\n }, i), this._currentLoad.start();\n }\n }, {\n key: \"cancel\",\n value: function () {\n this._currentLoad && this._currentLoad.cancel();\n }\n }, {\n key: \"loaded\",\n get: function () {\n return this._currentLoad && this._currentLoad.succeeded;\n }\n }]), e;\n }(),\n Er = 3,\n Ir = function () {\n function e(t, r) {\n o(this, e), this._attemptsRemaining = Er, this._currentAttempt = null, this._successCallback = t, this._failureCallback = r;\n }\n return l(e, [{\n key: \"start\",\n value: function () {\n var e = this;\n if (!this._currentAttempt) {\n this._currentAttempt = new Dr(this._successCallback, function t(r) {\n e._currentAttempt.cancelled || (e._attemptsRemaining--, e._failureCallback(r, e._attemptsRemaining > 0), e._attemptsRemaining <= 0 || setTimeout(function () {\n e._currentAttempt.cancelled || (e._currentAttempt = new Dr(e._successCallback, t), e._currentAttempt.start());\n }, 3e3));\n }), this._currentAttempt.start();\n }\n }\n }, {\n key: \"cancel\",\n value: function () {\n this._currentAttempt && this._currentAttempt.cancel();\n }\n }, {\n key: \"cancelled\",\n get: function () {\n return this._currentAttempt && this._currentAttempt.cancelled;\n }\n }, {\n key: \"succeeded\",\n get: function () {\n return this._currentAttempt && this._currentAttempt.succeeded;\n }\n }]), e;\n }(),\n Lr = function (e) {\n p(r, e);\n var t = Ar(r);\n function r() {\n return o(this, r), t.apply(this, arguments);\n }\n return r;\n }(Pr(Error)),\n Dr = function () {\n function e(t, r) {\n o(this, e), this._loadAttemptImpl = $t() || !_dailyConfig.avoidEval ? new Br(t, r) : new Nr(t, r);\n }\n return l(e, [{\n key: \"start\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", this._loadAttemptImpl.start());\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"cancel\",\n value: function () {\n this._loadAttemptImpl.cancel();\n }\n }, {\n key: \"cancelled\",\n get: function () {\n return this._loadAttemptImpl.cancelled;\n }\n }, {\n key: \"succeeded\",\n get: function () {\n return this._loadAttemptImpl.succeeded;\n }\n }]), e;\n }(),\n Br = function () {\n function e(t, r) {\n o(this, e), this.cancelled = !1, this.succeeded = !1, this._networkTimedOut = !1, this._networkTimeout = null, this._iosCache = \"undefined\" != typeof iOSCallObjectBundleCache && iOSCallObjectBundleCache, this._refetchHeaders = null, this._successCallback = t, this._failureCallback = r;\n }\n return l(e, [{\n key: \"start\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var e;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n e = dr();\n _context2.next = 3;\n return this._tryLoadFromIOSCache(e);\n case 3:\n _context2.t0 = !_context2.sent;\n if (!_context2.t0) {\n _context2.next = 6;\n break;\n }\n this._loadFromNetwork(e);\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"cancel\",\n value: function () {\n clearTimeout(this._networkTimeout), this.cancelled = !0;\n }\n }, {\n key: \"_tryLoadFromIOSCache\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(e) {\n var t;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n if (this._iosCache) {\n _context3.next = 2;\n break;\n }\n return _context3.abrupt(\"return\", !1);\n case 2:\n _context3.prev = 2;\n _context3.next = 5;\n return this._iosCache.get(e);\n case 5:\n t = _context3.sent;\n return _context3.abrupt(\"return\", !!this.cancelled || !!t && (t.code ? (Function('\"use strict\";' + t.code)(), this.succeeded = !0, this._successCallback(), !0) : (this._refetchHeaders = t.refetchHeaders, !1)));\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](2);\n return _context3.abrupt(\"return\", !1);\n case 12:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, this, [[2, 9]]);\n }));\n return function (t) {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"_loadFromNetwork\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(e) {\n var t, r, i, n;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n t = this;\n this._networkTimeout = setTimeout(function () {\n t._networkTimedOut = !0, t._failureCallback(\"Timed out (>\".concat(2e4, \" ms) when loading call object bundle \").concat(e));\n }, 2e4);\n _context4.prev = 2;\n r = this._refetchHeaders ? {\n headers: this._refetchHeaders\n } : {};\n _context4.next = 6;\n return fetch(e, r);\n case 6:\n i = _context4.sent;\n if (!(clearTimeout(this._networkTimeout), this.cancelled || this._networkTimedOut)) {\n _context4.next = 9;\n break;\n }\n throw new Lr();\n case 9:\n _context4.next = 11;\n return this._getBundleCodeFromResponse(e, i);\n case 11:\n n = _context4.sent;\n if (!this.cancelled) {\n _context4.next = 14;\n break;\n }\n throw new Lr();\n case 14:\n Function('\"use strict\";' + n)(), this._iosCache && this._iosCache.set(e, n, i.headers), this.succeeded = !0, this._successCallback();\n _context4.next = 22;\n break;\n case 17:\n _context4.prev = 17;\n _context4.t0 = _context4[\"catch\"](2);\n if (!(clearTimeout(this._networkTimeout), _context4.t0 instanceof Lr || this.cancelled || this._networkTimedOut)) {\n _context4.next = 21;\n break;\n }\n return _context4.abrupt(\"return\");\n case 21:\n this._failureCallback(\"Failed to load call object bundle \".concat(e, \": \").concat(_context4.t0));\n case 22:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, this, [[2, 17]]);\n }));\n return function (t) {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"_getBundleCodeFromResponse\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(e, t) {\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n if (!t.ok) {\n _context5.next = 4;\n break;\n }\n _context5.next = 3;\n return t.text();\n case 3:\n return _context5.abrupt(\"return\", _context5.sent);\n case 4:\n if (!(this._iosCache && 304 === t.status)) {\n _context5.next = 8;\n break;\n }\n _context5.next = 7;\n return this._iosCache.renew(e, t.headers);\n case 7:\n return _context5.abrupt(\"return\", _context5.sent.code);\n case 8:\n throw new Error(\"Received \".concat(t.status, \" response\"));\n case 9:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, this);\n }));\n return function (t, r) {\n return e.apply(this, arguments);\n };\n }()\n }]), e;\n }(),\n Nr = function () {\n function e(t, r) {\n o(this, e), this.cancelled = !1, this.succeeded = !1, this._successCallback = t, this._failureCallback = r, this._attemptId = lr(), this._networkTimeout = null, this._scriptElement = null;\n }\n return l(e, [{\n key: \"start\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var e;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n window._dailyCallMachineLoadWaitlist || (window._dailyCallMachineLoadWaitlist = new Set());\n e = dr();\n \"object\" === (\"undefined\" == typeof document ? \"undefined\" : f(document)) ? this._startLoading(e) : this._failureCallback(\"Call object bundle must be loaded in a DOM/web context\");\n case 3:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, this);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"cancel\",\n value: function () {\n this._stopLoading(), this.cancelled = !0;\n }\n }, {\n key: \"_startLoading\",\n value: function (e) {\n var t = this;\n this._signUpForCallMachineLoadWaitlist(), this._networkTimeout = setTimeout(function () {\n t._stopLoading(), t._failureCallback(\"Timed out (>\".concat(2e4, \" ms) when loading call object bundle \").concat(e));\n }, 2e4);\n var r = document.getElementsByTagName(\"head\")[0],\n i = document.createElement(\"script\");\n this._scriptElement = i, i.onload = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n t._stopLoading(), t.succeeded = !0, t._successCallback();\n case 1:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n })), i.onerror = function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(e) {\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n t._stopLoading(), t._failureCallback(\"Failed to load call object bundle \".concat(e.target.src));\n case 1:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n return function (t) {\n return e.apply(this, arguments);\n };\n }(), i.src = e, r.appendChild(i);\n }\n }, {\n key: \"_stopLoading\",\n value: function () {\n this._withdrawFromCallMachineLoadWaitlist(), clearTimeout(this._networkTimeout), this._scriptElement && (this._scriptElement.onload = null, this._scriptElement.onerror = null);\n }\n }, {\n key: \"_signUpForCallMachineLoadWaitlist\",\n value: function () {\n window._dailyCallMachineLoadWaitlist.add(this._attemptId);\n }\n }, {\n key: \"_withdrawFromCallMachineLoadWaitlist\",\n value: function () {\n window._dailyCallMachineLoadWaitlist.delete(this._attemptId);\n }\n }]), e;\n }();\nvar xr = function (e, t) {\n for (var r = -1, i = null == e ? 0 : e.length, n = 0, a = []; ++r < i;) {\n var o = e[r];\n t(o, r, e) && (a[n++] = o);\n }\n return a;\n};\nvar Rr = function (e) {\n return function (t, r, i) {\n for (var n = -1, a = Object(t), o = i(t), s = o.length; s--;) {\n var c = o[e ? s : ++n];\n if (!1 === r(a[c], c, a)) break;\n }\n return t;\n };\n}();\nvar Vr = function (e, t) {\n for (var r = -1, i = Array(e); ++r < e;) i[r] = t(r);\n return i;\n },\n Ur = \"object\" == typeof u && u && u.Object === Object && u,\n zr = \"object\" == typeof self && self && self.Object === Object && self,\n Jr = Ur || zr || Function(\"return this\")(),\n qr = Jr.Symbol,\n Wr = Object.prototype,\n Gr = Wr.hasOwnProperty,\n Hr = Wr.toString,\n Kr = qr ? qr.toStringTag : void 0;\nvar Qr = function (e) {\n var t = Gr.call(e, Kr),\n r = e[Kr];\n try {\n e[Kr] = void 0;\n var i = !0;\n } catch (e) {}\n var n = Hr.call(e);\n return i && (t ? e[Kr] = r : delete e[Kr]), n;\n },\n $r = Object.prototype.toString;\nvar Yr = function (e) {\n return $r.call(e);\n },\n Zr = \"[object Null]\",\n Xr = \"[object Undefined]\",\n ei = qr ? qr.toStringTag : void 0;\nvar ti = function (e) {\n return null == e ? void 0 === e ? Xr : Zr : ei && ei in Object(e) ? Qr(e) : Yr(e);\n};\nvar ri = function (e) {\n return null != e && \"object\" == typeof e;\n },\n ii = \"[object Arguments]\";\nvar ni = function (e) {\n return ri(e) && ti(e) == ii;\n },\n ai = Object.prototype,\n oi = ai.hasOwnProperty,\n si = ai.propertyIsEnumerable,\n ci = ni(function () {\n return arguments;\n }()) ? ni : function (e) {\n return ri(e) && oi.call(e, \"callee\") && !si.call(e, \"callee\");\n },\n li = Array.isArray;\nvar ui = function () {\n return !1;\n },\n di = d(function (e, t) {\n var r = t && !t.nodeType && t,\n i = r && e && !e.nodeType && e,\n n = i && i.exports === r ? Jr.Buffer : void 0,\n a = (n ? n.isBuffer : void 0) || ui;\n e.exports = a;\n }),\n hi = 9007199254740991,\n pi = /^(?:0|[1-9]\\d*)$/;\nvar fi = function (e, t) {\n var r = typeof e;\n return !!(t = null == t ? hi : t) && (\"number\" == r || \"symbol\" != r && pi.test(e)) && e > -1 && e % 1 == 0 && e < t;\n },\n vi = 9007199254740991;\nvar gi = function (e) {\n return \"number\" == typeof e && e > -1 && e % 1 == 0 && e <= vi;\n },\n mi = {};\nmi[\"[object Float32Array]\"] = mi[\"[object Float64Array]\"] = mi[\"[object Int8Array]\"] = mi[\"[object Int16Array]\"] = mi[\"[object Int32Array]\"] = mi[\"[object Uint8Array]\"] = mi[\"[object Uint8ClampedArray]\"] = mi[\"[object Uint16Array]\"] = mi[\"[object Uint32Array]\"] = !0, mi[\"[object Arguments]\"] = mi[\"[object Array]\"] = mi[\"[object ArrayBuffer]\"] = mi[\"[object Boolean]\"] = mi[\"[object DataView]\"] = mi[\"[object Date]\"] = mi[\"[object Error]\"] = mi[\"[object Function]\"] = mi[\"[object Map]\"] = mi[\"[object Number]\"] = mi[\"[object Object]\"] = mi[\"[object RegExp]\"] = mi[\"[object Set]\"] = mi[\"[object String]\"] = mi[\"[object WeakMap]\"] = !1;\nvar yi = function (e) {\n return ri(e) && gi(e.length) && !!mi[ti(e)];\n};\nvar bi = function (e) {\n return function (t) {\n return e(t);\n };\n },\n wi = d(function (e, t) {\n var r = t && !t.nodeType && t,\n i = r && e && !e.nodeType && e,\n n = i && i.exports === r && Ur.process,\n a = function () {\n try {\n var e = i && i.require && i.require(\"util\").types;\n return e || n && n.binding && n.binding(\"util\");\n } catch (e) {}\n }();\n e.exports = a;\n }),\n _i = wi && wi.isTypedArray,\n ki = _i ? bi(_i) : yi,\n Si = Object.prototype.hasOwnProperty;\nvar Mi = function (e, t) {\n var r = li(e),\n i = !r && ci(e),\n n = !r && !i && di(e),\n a = !r && !i && !n && ki(e),\n o = r || i || n || a,\n s = o ? Vr(e.length, String) : [],\n c = s.length;\n for (var l in e) !t && !Si.call(e, l) || o && (\"length\" == l || n && (\"offset\" == l || \"parent\" == l) || a && (\"buffer\" == l || \"byteLength\" == l || \"byteOffset\" == l) || fi(l, c)) || s.push(l);\n return s;\n },\n Ci = Object.prototype;\nvar Ti = function (e) {\n var t = e && e.constructor;\n return e === (\"function\" == typeof t && t.prototype || Ci);\n};\nvar Oi = function (e, t) {\n return function (r) {\n return e(t(r));\n };\n }(Object.keys, Object),\n ji = Object.prototype.hasOwnProperty;\nvar Pi = function (e) {\n if (!Ti(e)) return Oi(e);\n var t = [];\n for (var r in Object(e)) ji.call(e, r) && \"constructor\" != r && t.push(r);\n return t;\n};\nvar Ai = function (e) {\n var t = typeof e;\n return null != e && (\"object\" == t || \"function\" == t);\n },\n Fi = \"[object AsyncFunction]\",\n Ei = \"[object Function]\",\n Ii = \"[object GeneratorFunction]\",\n Li = \"[object Proxy]\";\nvar Di = function (e) {\n if (!Ai(e)) return !1;\n var t = ti(e);\n return t == Ei || t == Ii || t == Fi || t == Li;\n};\nvar Bi = function (e) {\n return null != e && gi(e.length) && !Di(e);\n};\nvar Ni = function (e) {\n return Bi(e) ? Mi(e) : Pi(e);\n};\nvar xi = function (e, t) {\n return function (r, i) {\n if (null == r) return r;\n if (!Bi(r)) return e(r, i);\n for (var n = r.length, a = t ? n : -1, o = Object(r); (t ? a-- : ++a < n) && !1 !== i(o[a], a, o););\n return r;\n };\n}(function (e, t) {\n return e && Rr(e, t, Ni);\n});\nvar Ri = function (e, t) {\n var r = [];\n return xi(e, function (e, i, n) {\n t(e, i, n) && r.push(e);\n }), r;\n};\nvar Vi = function () {\n this.__data__ = [], this.size = 0;\n};\nvar Ui = function (e, t) {\n return e === t || e != e && t != t;\n};\nvar zi = function (e, t) {\n for (var r = e.length; r--;) if (Ui(e[r][0], t)) return r;\n return -1;\n },\n Ji = Array.prototype.splice;\nvar qi = function (e) {\n var t = this.__data__,\n r = zi(t, e);\n return !(r < 0 || (r == t.length - 1 ? t.pop() : Ji.call(t, r, 1), --this.size, 0));\n};\nvar Wi = function (e) {\n var t = this.__data__,\n r = zi(t, e);\n return r < 0 ? void 0 : t[r][1];\n};\nvar Gi = function (e) {\n return zi(this.__data__, e) > -1;\n};\nvar Hi = function (e, t) {\n var r = this.__data__,\n i = zi(r, e);\n return i < 0 ? (++this.size, r.push([e, t])) : r[i][1] = t, this;\n};\nfunction Ki(e) {\n var t = -1,\n r = null == e ? 0 : e.length;\n for (this.clear(); ++t < r;) {\n var i = e[t];\n this.set(i[0], i[1]);\n }\n}\nKi.prototype.clear = Vi, Ki.prototype.delete = qi, Ki.prototype.get = Wi, Ki.prototype.has = Gi, Ki.prototype.set = Hi;\nvar Qi = Ki;\nvar $i = function () {\n this.__data__ = new Qi(), this.size = 0;\n};\nvar Yi = function (e) {\n var t = this.__data__,\n r = t.delete(e);\n return this.size = t.size, r;\n};\nvar Zi = function (e) {\n return this.__data__.get(e);\n};\nvar Xi,\n en = function (e) {\n return this.__data__.has(e);\n },\n tn = Jr[\"__core-js_shared__\"],\n rn = (Xi = /[^.]+$/.exec(tn && tn.keys && tn.keys.IE_PROTO || \"\")) ? \"Symbol(src)_1.\" + Xi : \"\";\nvar nn = function (e) {\n return !!rn && rn in e;\n },\n an = Function.prototype.toString;\nvar on = function (e) {\n if (null != e) {\n try {\n return an.call(e);\n } catch (e) {}\n try {\n return e + \"\";\n } catch (e) {}\n }\n return \"\";\n },\n sn = /^\\[object .+?Constructor\\]$/,\n cn = Function.prototype,\n ln = Object.prototype,\n un = cn.toString,\n dn = ln.hasOwnProperty,\n hn = RegExp(\"^\" + un.call(dn).replace(/[\\\\^$.*+?()[\\]{}|]/g, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\");\nvar pn = function (e) {\n return !(!Ai(e) || nn(e)) && (Di(e) ? hn : sn).test(on(e));\n};\nvar fn = function (e, t) {\n return null == e ? void 0 : e[t];\n};\nvar vn = function (e, t) {\n var r = fn(e, t);\n return pn(r) ? r : void 0;\n },\n gn = vn(Jr, \"Map\"),\n mn = vn(Object, \"create\");\nvar yn = function () {\n this.__data__ = mn ? mn(null) : {}, this.size = 0;\n};\nvar bn = function (e) {\n var t = this.has(e) && delete this.__data__[e];\n return this.size -= t ? 1 : 0, t;\n },\n wn = \"__lodash_hash_undefined__\",\n _n = Object.prototype.hasOwnProperty;\nvar kn = function (e) {\n var t = this.__data__;\n if (mn) {\n var r = t[e];\n return r === wn ? void 0 : r;\n }\n return _n.call(t, e) ? t[e] : void 0;\n },\n Sn = Object.prototype.hasOwnProperty;\nvar Mn = function (e) {\n var t = this.__data__;\n return mn ? void 0 !== t[e] : Sn.call(t, e);\n },\n Cn = \"__lodash_hash_undefined__\";\nvar Tn = function (e, t) {\n var r = this.__data__;\n return this.size += this.has(e) ? 0 : 1, r[e] = mn && void 0 === t ? Cn : t, this;\n};\nfunction On(e) {\n var t = -1,\n r = null == e ? 0 : e.length;\n for (this.clear(); ++t < r;) {\n var i = e[t];\n this.set(i[0], i[1]);\n }\n}\nOn.prototype.clear = yn, On.prototype.delete = bn, On.prototype.get = kn, On.prototype.has = Mn, On.prototype.set = Tn;\nvar jn = On;\nvar Pn = function () {\n this.size = 0, this.__data__ = {\n hash: new jn(),\n map: new (gn || Qi)(),\n string: new jn()\n };\n};\nvar An = function (e) {\n var t = typeof e;\n return \"string\" == t || \"number\" == t || \"symbol\" == t || \"boolean\" == t ? \"__proto__\" !== e : null === e;\n};\nvar Fn = function (e, t) {\n var r = e.__data__;\n return An(t) ? r[\"string\" == typeof t ? \"string\" : \"hash\"] : r.map;\n};\nvar En = function (e) {\n var t = Fn(this, e).delete(e);\n return this.size -= t ? 1 : 0, t;\n};\nvar In = function (e) {\n return Fn(this, e).get(e);\n};\nvar Ln = function (e) {\n return Fn(this, e).has(e);\n};\nvar Dn = function (e, t) {\n var r = Fn(this, e),\n i = r.size;\n return r.set(e, t), this.size += r.size == i ? 0 : 1, this;\n};\nfunction Bn(e) {\n var t = -1,\n r = null == e ? 0 : e.length;\n for (this.clear(); ++t < r;) {\n var i = e[t];\n this.set(i[0], i[1]);\n }\n}\nBn.prototype.clear = Pn, Bn.prototype.delete = En, Bn.prototype.get = In, Bn.prototype.has = Ln, Bn.prototype.set = Dn;\nvar Nn = Bn,\n xn = 200;\nvar Rn = function (e, t) {\n var r = this.__data__;\n if (r instanceof Qi) {\n var i = r.__data__;\n if (!gn || i.length < xn - 1) return i.push([e, t]), this.size = ++r.size, this;\n r = this.__data__ = new Nn(i);\n }\n return r.set(e, t), this.size = r.size, this;\n};\nfunction Vn(e) {\n var t = this.__data__ = new Qi(e);\n this.size = t.size;\n}\nVn.prototype.clear = $i, Vn.prototype.delete = Yi, Vn.prototype.get = Zi, Vn.prototype.has = en, Vn.prototype.set = Rn;\nvar Un = Vn,\n zn = \"__lodash_hash_undefined__\";\nvar Jn = function (e) {\n return this.__data__.set(e, zn), this;\n};\nvar qn = function (e) {\n return this.__data__.has(e);\n};\nfunction Wn(e) {\n var t = -1,\n r = null == e ? 0 : e.length;\n for (this.__data__ = new Nn(); ++t < r;) this.add(e[t]);\n}\nWn.prototype.add = Wn.prototype.push = Jn, Wn.prototype.has = qn;\nvar Gn = Wn;\nvar Hn = function (e, t) {\n for (var r = -1, i = null == e ? 0 : e.length; ++r < i;) if (t(e[r], r, e)) return !0;\n return !1;\n};\nvar Kn = function (e, t) {\n return e.has(t);\n },\n Qn = 1,\n $n = 2;\nvar Yn = function (e, t, r, i, n, a) {\n var o = r & Qn,\n s = e.length,\n c = t.length;\n if (s != c && !(o && c > s)) return !1;\n var l = a.get(e),\n u = a.get(t);\n if (l && u) return l == t && u == e;\n var d = -1,\n h = !0,\n p = r & $n ? new Gn() : void 0;\n for (a.set(e, t), a.set(t, e); ++d < s;) {\n var f = e[d],\n v = t[d];\n if (i) var g = o ? i(v, f, d, t, e, a) : i(f, v, d, e, t, a);\n if (void 0 !== g) {\n if (g) continue;\n h = !1;\n break;\n }\n if (p) {\n if (!Hn(t, function (e, t) {\n if (!Kn(p, t) && (f === e || n(f, e, r, i, a))) return p.push(t);\n })) {\n h = !1;\n break;\n }\n } else if (f !== v && !n(f, v, r, i, a)) {\n h = !1;\n break;\n }\n }\n return a.delete(e), a.delete(t), h;\n },\n Zn = Jr.Uint8Array;\nvar Xn = function (e) {\n var t = -1,\n r = Array(e.size);\n return e.forEach(function (e, i) {\n r[++t] = [i, e];\n }), r;\n};\nvar ea = function (e) {\n var t = -1,\n r = Array(e.size);\n return e.forEach(function (e) {\n r[++t] = e;\n }), r;\n },\n ta = 1,\n ra = 2,\n ia = \"[object Boolean]\",\n na = \"[object Date]\",\n aa = \"[object Error]\",\n oa = \"[object Map]\",\n sa = \"[object Number]\",\n ca = \"[object RegExp]\",\n la = \"[object Set]\",\n ua = \"[object String]\",\n da = \"[object Symbol]\",\n ha = \"[object ArrayBuffer]\",\n pa = \"[object DataView]\",\n fa = qr ? qr.prototype : void 0,\n va = fa ? fa.valueOf : void 0;\nvar ga = function (e, t, r, i, n, a, o) {\n switch (r) {\n case pa:\n if (e.byteLength != t.byteLength || e.byteOffset != t.byteOffset) return !1;\n e = e.buffer, t = t.buffer;\n case ha:\n return !(e.byteLength != t.byteLength || !a(new Zn(e), new Zn(t)));\n case ia:\n case na:\n case sa:\n return Ui(+e, +t);\n case aa:\n return e.name == t.name && e.message == t.message;\n case ca:\n case ua:\n return e == t + \"\";\n case oa:\n var s = Xn;\n case la:\n var c = i & ta;\n if (s || (s = ea), e.size != t.size && !c) return !1;\n var l = o.get(e);\n if (l) return l == t;\n i |= ra, o.set(e, t);\n var u = Yn(s(e), s(t), i, n, a, o);\n return o.delete(e), u;\n case da:\n if (va) return va.call(e) == va.call(t);\n }\n return !1;\n};\nvar ma = function (e, t) {\n for (var r = -1, i = t.length, n = e.length; ++r < i;) e[n + r] = t[r];\n return e;\n};\nvar ya = function (e, t, r) {\n var i = t(e);\n return li(e) ? i : ma(i, r(e));\n};\nvar ba = function () {\n return [];\n },\n wa = Object.prototype.propertyIsEnumerable,\n _a = Object.getOwnPropertySymbols,\n ka = _a ? function (e) {\n return null == e ? [] : (e = Object(e), xr(_a(e), function (t) {\n return wa.call(e, t);\n }));\n } : ba;\nvar Sa = function (e) {\n return ya(e, Ni, ka);\n },\n Ma = 1,\n Ca = Object.prototype.hasOwnProperty;\nvar Ta = function (e, t, r, i, n, a) {\n var o = r & Ma,\n s = Sa(e),\n c = s.length;\n if (c != Sa(t).length && !o) return !1;\n for (var l = c; l--;) {\n var u = s[l];\n if (!(o ? u in t : Ca.call(t, u))) return !1;\n }\n var d = a.get(e),\n h = a.get(t);\n if (d && h) return d == t && h == e;\n var p = !0;\n a.set(e, t), a.set(t, e);\n for (var f = o; ++l < c;) {\n var v = e[u = s[l]],\n g = t[u];\n if (i) var m = o ? i(g, v, u, t, e, a) : i(v, g, u, e, t, a);\n if (!(void 0 === m ? v === g || n(v, g, r, i, a) : m)) {\n p = !1;\n break;\n }\n f || (f = \"constructor\" == u);\n }\n if (p && !f) {\n var y = e.constructor,\n b = t.constructor;\n y != b && \"constructor\" in e && \"constructor\" in t && !(\"function\" == typeof y && y instanceof y && \"function\" == typeof b && b instanceof b) && (p = !1);\n }\n return a.delete(e), a.delete(t), p;\n },\n Oa = vn(Jr, \"DataView\"),\n ja = vn(Jr, \"Promise\"),\n Pa = vn(Jr, \"Set\"),\n Aa = vn(Jr, \"WeakMap\"),\n Fa = on(Oa),\n Ea = on(gn),\n Ia = on(ja),\n La = on(Pa),\n Da = on(Aa),\n Ba = ti;\n(Oa && \"[object DataView]\" != Ba(new Oa(new ArrayBuffer(1))) || gn && \"[object Map]\" != Ba(new gn()) || ja && \"[object Promise]\" != Ba(ja.resolve()) || Pa && \"[object Set]\" != Ba(new Pa()) || Aa && \"[object WeakMap]\" != Ba(new Aa())) && (Ba = function (e) {\n var t = ti(e),\n r = \"[object Object]\" == t ? e.constructor : void 0,\n i = r ? on(r) : \"\";\n if (i) switch (i) {\n case Fa:\n return \"[object DataView]\";\n case Ea:\n return \"[object Map]\";\n case Ia:\n return \"[object Promise]\";\n case La:\n return \"[object Set]\";\n case Da:\n return \"[object WeakMap]\";\n }\n return t;\n});\nvar Na = Ba,\n xa = 1,\n Ra = \"[object Arguments]\",\n Va = \"[object Array]\",\n Ua = \"[object Object]\",\n za = Object.prototype.hasOwnProperty;\nvar Ja = function (e, t, r, i, n, a) {\n var o = li(e),\n s = li(t),\n c = o ? Va : Na(e),\n l = s ? Va : Na(t),\n u = (c = c == Ra ? Ua : c) == Ua,\n d = (l = l == Ra ? Ua : l) == Ua,\n h = c == l;\n if (h && di(e)) {\n if (!di(t)) return !1;\n o = !0, u = !1;\n }\n if (h && !u) return a || (a = new Un()), o || ki(e) ? Yn(e, t, r, i, n, a) : ga(e, t, c, r, i, n, a);\n if (!(r & xa)) {\n var p = u && za.call(e, \"__wrapped__\"),\n f = d && za.call(t, \"__wrapped__\");\n if (p || f) {\n var v = p ? e.value() : e,\n g = f ? t.value() : t;\n return a || (a = new Un()), n(v, g, r, i, a);\n }\n }\n return !!h && (a || (a = new Un()), Ta(e, t, r, i, n, a));\n};\nvar qa = function e(t, r, i, n, a) {\n return t === r || (null == t || null == r || !ri(t) && !ri(r) ? t != t && r != r : Ja(t, r, i, n, e, a));\n },\n Wa = 1,\n Ga = 2;\nvar Ha = function (e, t, r, i) {\n var n = r.length,\n a = n,\n o = !i;\n if (null == e) return !a;\n for (e = Object(e); n--;) {\n var s = r[n];\n if (o && s[2] ? s[1] !== e[s[0]] : !(s[0] in e)) return !1;\n }\n for (; ++n < a;) {\n var c = (s = r[n])[0],\n l = e[c],\n u = s[1];\n if (o && s[2]) {\n if (void 0 === l && !(c in e)) return !1;\n } else {\n var d = new Un();\n if (i) var h = i(l, u, c, e, t, d);\n if (!(void 0 === h ? qa(u, l, Wa | Ga, i, d) : h)) return !1;\n }\n }\n return !0;\n};\nvar Ka = function (e) {\n return e == e && !Ai(e);\n};\nvar Qa = function (e) {\n for (var t = Ni(e), r = t.length; r--;) {\n var i = t[r],\n n = e[i];\n t[r] = [i, n, Ka(n)];\n }\n return t;\n};\nvar $a = function (e, t) {\n return function (r) {\n return null != r && r[e] === t && (void 0 !== t || e in Object(r));\n };\n};\nvar Ya = function (e) {\n var t = Qa(e);\n return 1 == t.length && t[0][2] ? $a(t[0][0], t[0][1]) : function (r) {\n return r === e || Ha(r, e, t);\n };\n },\n Za = \"[object Symbol]\";\nvar Xa = function (e) {\n return \"symbol\" == typeof e || ri(e) && ti(e) == Za;\n },\n eo = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n to = /^\\w*$/;\nvar ro = function (e, t) {\n if (li(e)) return !1;\n var r = typeof e;\n return !(\"number\" != r && \"symbol\" != r && \"boolean\" != r && null != e && !Xa(e)) || to.test(e) || !eo.test(e) || null != t && e in Object(t);\n },\n io = \"Expected a function\";\nfunction no(e, t) {\n if (\"function\" != typeof e || null != t && \"function\" != typeof t) throw new TypeError(io);\n var r = function () {\n var i = arguments,\n n = t ? t.apply(this, i) : i[0],\n a = r.cache;\n if (a.has(n)) return a.get(n);\n var o = e.apply(this, i);\n return r.cache = a.set(n, o) || a, o;\n };\n return r.cache = new (no.Cache || Nn)(), r;\n}\nno.Cache = Nn;\nvar ao = no,\n oo = 500;\nvar so = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,\n co = /\\\\(\\\\)?/g,\n lo = function (e) {\n var t = ao(e, function (e) {\n return r.size === oo && r.clear(), e;\n }),\n r = t.cache;\n return t;\n }(function (e) {\n var t = [];\n return 46 === e.charCodeAt(0) && t.push(\"\"), e.replace(so, function (e, r, i, n) {\n t.push(i ? n.replace(co, \"$1\") : r || e);\n }), t;\n });\nvar uo = function (e, t) {\n for (var r = -1, i = null == e ? 0 : e.length, n = Array(i); ++r < i;) n[r] = t(e[r], r, e);\n return n;\n },\n ho = 1 / 0,\n po = qr ? qr.prototype : void 0,\n fo = po ? po.toString : void 0;\nvar vo = function e(t) {\n if (\"string\" == typeof t) return t;\n if (li(t)) return uo(t, e) + \"\";\n if (Xa(t)) return fo ? fo.call(t) : \"\";\n var r = t + \"\";\n return \"0\" == r && 1 / t == -ho ? \"-0\" : r;\n};\nvar go = function (e) {\n return null == e ? \"\" : vo(e);\n};\nvar mo = function (e, t) {\n return li(e) ? e : ro(e, t) ? [e] : lo(go(e));\n },\n yo = 1 / 0;\nvar bo = function (e) {\n if (\"string\" == typeof e || Xa(e)) return e;\n var t = e + \"\";\n return \"0\" == t && 1 / e == -yo ? \"-0\" : t;\n};\nvar wo = function (e, t) {\n for (var r = 0, i = (t = mo(t, e)).length; null != e && r < i;) e = e[bo(t[r++])];\n return r && r == i ? e : void 0;\n};\nvar _o = function (e, t, r) {\n var i = null == e ? void 0 : wo(e, t);\n return void 0 === i ? r : i;\n};\nvar ko = function (e, t) {\n return null != e && t in Object(e);\n};\nvar So = function (e, t, r) {\n for (var i = -1, n = (t = mo(t, e)).length, a = !1; ++i < n;) {\n var o = bo(t[i]);\n if (!(a = null != e && r(e, o))) break;\n e = e[o];\n }\n return a || ++i != n ? a : !!(n = null == e ? 0 : e.length) && gi(n) && fi(o, n) && (li(e) || ci(e));\n};\nvar Mo = function (e, t) {\n return null != e && So(e, t, ko);\n },\n Co = 1,\n To = 2;\nvar Oo = function (e, t) {\n return ro(e) && Ka(t) ? $a(bo(e), t) : function (r) {\n var i = _o(r, e);\n return void 0 === i && i === t ? Mo(r, e) : qa(t, i, Co | To);\n };\n};\nvar jo = function (e) {\n return e;\n};\nvar Po = function (e) {\n return function (t) {\n return null == t ? void 0 : t[e];\n };\n};\nvar Ao = function (e) {\n return function (t) {\n return wo(t, e);\n };\n};\nvar Fo = function (e) {\n return ro(e) ? Po(bo(e)) : Ao(e);\n};\nvar Eo = function (e) {\n return \"function\" == typeof e ? e : null == e ? jo : \"object\" == typeof e ? li(e) ? Oo(e[0], e[1]) : Ya(e) : Fo(e);\n};\nvar Io = function (e, t) {\n return (li(e) ? xr : Ri)(e, Eo(t));\n};\nvar Lo = function (e, t) {\n var r = -1,\n i = Bi(e) ? Array(e.length) : [];\n return xi(e, function (e, n, a) {\n i[++r] = t(e, n, a);\n }), i;\n};\nvar Do = function (e, t) {\n var r = e.length;\n for (e.sort(t); r--;) e[r] = e[r].value;\n return e;\n};\nvar Bo = function (e, t) {\n if (e !== t) {\n var r = void 0 !== e,\n i = null === e,\n n = e == e,\n a = Xa(e),\n o = void 0 !== t,\n s = null === t,\n c = t == t,\n l = Xa(t);\n if (!s && !l && !a && e > t || a && o && c && !s && !l || i && o && c || !r && c || !n) return 1;\n if (!i && !a && !l && e < t || l && r && n && !i && !a || s && r && n || !o && n || !c) return -1;\n }\n return 0;\n};\nvar No = function (e, t, r) {\n for (var i = -1, n = e.criteria, a = t.criteria, o = n.length, s = r.length; ++i < o;) {\n var c = Bo(n[i], a[i]);\n if (c) return i >= s ? c : c * (\"desc\" == r[i] ? -1 : 1);\n }\n return e.index - t.index;\n};\nvar xo = function (e, t, r) {\n t = t.length ? uo(t, function (e) {\n return li(e) ? function (t) {\n return wo(t, 1 === e.length ? e[0] : e);\n } : e;\n }) : [jo];\n var i = -1;\n t = uo(t, bi(Eo));\n var n = Lo(e, function (e, r, n) {\n return {\n criteria: uo(t, function (t) {\n return t(e);\n }),\n index: ++i,\n value: e\n };\n });\n return Do(n, function (e, t) {\n return No(e, t, r);\n });\n};\nvar Ro,\n Vo = function (e, t, r, i) {\n return null == e ? [] : (li(t) || (t = null == t ? [] : [t]), li(r = i ? void 0 : r) || (r = null == r ? [] : [r]), xo(e, t, r));\n },\n Uo = function (e, t, r) {\n return !0 === qo(e.local, t, r);\n },\n zo = function (e, t, r) {\n return e.local.streams && e.local.streams[t] && e.local.streams[t].stream && e.local.streams[t].stream[\"get\".concat(\"video\" === r ? \"Video\" : \"Audio\", \"Tracks\")]()[0];\n },\n Jo = function (e, t, r, i) {\n var n = Wo(e, t, r, i);\n return n && n.pendingTrack;\n },\n qo = function (e, t, r) {\n if (!e) return !1;\n var i = function (e) {\n switch (e) {\n case \"avatar\":\n return !0;\n case \"staged\":\n return e;\n default:\n return !!e;\n }\n },\n n = e.public.subscribedTracks;\n return n && n[t] ? -1 === [\"cam-audio\", \"cam-video\", \"screen-video\", \"screen-audio\", \"rmpAudio\", \"rmpVideo\"].indexOf(r) && n[t].custom ? [!0, \"staged\"].includes(n[t].custom) ? i(n[t].custom) : i(n[t].custom[r]) : i(n[t][r]) : !n || i(n.ALL);\n },\n Wo = function (e, t, r, i) {\n var n = Vo(Io(e.streams, function (e) {\n return e.participantId === t && e.type === r && e.pendingTrack && e.pendingTrack.kind === i;\n }), \"starttime\", \"desc\");\n return n && n[0];\n },\n Go = function (e, t) {\n var r = e.local.public.customTracks;\n if (r && r[t]) return r[t].track;\n };\nfunction Ho(e) {\n for (var t = store.getState(), r = 0, i = [\"cam\", \"screen\"]; r < i.length; r++) for (var n = i[r], a = 0, o = [\"video\", \"audio\"]; a < o.length; a++) {\n var s = o[a],\n c = \"cam\" === n ? s : \"screen\".concat(s.charAt(0).toUpperCase() + s.slice(1)),\n l = e.tracks[c];\n if (l) {\n var u = e.local ? zo(t, n, s) : Jo(t, e.session_id, n, s);\n \"playable\" === l.state && (l.track = u), l.persistentTrack = u;\n }\n }\n}\nfunction Ko(e) {\n try {\n var t = store.getState();\n for (var r in e.tracks) if (!Qo(r)) {\n var i = e.tracks[r].kind;\n if (i) {\n var n = e.tracks[r];\n if (n) {\n var a = e.local ? Go(t, r, i) : Jo(t, e.session_id, r, i);\n \"playable\" === n.state && (e.tracks[r].track = a), n.persistentTrack = a;\n }\n } else console.error(\"unknown type for custom track\");\n }\n } catch (e) {\n console.error(e);\n }\n}\nfunction Qo(e) {\n return [\"video\", \"audio\", \"screenVideo\", \"screenAudio\"].includes(e);\n}\nfunction $o(e, t) {\n var r = store.getState();\n if (e.local) {\n if (e.audio) try {\n e.audioTrack = r.local.streams.cam.stream.getAudioTracks()[0], e.audioTrack || (e.audio = !1);\n } catch (e) {}\n if (e.video) try {\n e.videoTrack = r.local.streams.cam.stream.getVideoTracks()[0], e.videoTrack || (e.video = !1);\n } catch (e) {}\n if (e.screen) try {\n e.screenVideoTrack = r.local.streams.screen.stream.getVideoTracks()[0], e.screenAudioTrack = r.local.streams.screen.stream.getAudioTracks()[0], e.screenVideoTrack || e.screenAudioTrack || (e.screen = !1);\n } catch (e) {}\n } else {\n var i = !0;\n try {\n var n = r.participants[e.session_id];\n n && n.public && n.public.rtcType && \"peer-to-peer\" === n.public.rtcType.impl && n.private && ![\"connected\", \"completed\"].includes(n.private.peeringState) && (i = !1);\n } catch (e) {\n console.error(e);\n }\n if (!i) return e.audio = !1, e.audioTrack = !1, e.video = !1, e.videoTrack = !1, e.screen = !1, void (e.screenTrack = !1);\n try {\n r.streams;\n if (e.audio && Uo(r, e.session_id, \"cam-audio\")) {\n var a = Jo(r, e.session_id, \"cam\", \"audio\");\n a && (t && t.audioTrack && t.audioTrack.id === a.id ? e.audioTrack = a : a.muted || (e.audioTrack = a)), e.audioTrack || (e.audio = !1);\n }\n if (e.video && Uo(r, e.session_id, \"cam-video\")) {\n var o = Jo(r, e.session_id, \"cam\", \"video\");\n o && (t && t.videoTrack && t.videoTrack.id === o.id ? e.videoTrack = o : o.muted || (e.videoTrack = o)), e.videoTrack || (e.video = !1);\n }\n if (e.screen && Uo(r, e.session_id, \"screen-audio\")) {\n var s = Jo(r, e.session_id, \"screen\", \"audio\");\n s && (t && t.screenAudioTrack && t.screenAudioTrack.id === s.id ? e.screenAudioTrack = s : s.muted || (e.screenAudioTrack = s));\n }\n if (e.screen && Uo(r, e.session_id, \"screen-video\")) {\n var c = Jo(r, e.session_id, \"screen\", \"video\");\n c && (t && t.screenVideoTrack && t.screenVideoTrack.id === c.id ? e.screenVideoTrack = c : c.muted || (e.screenVideoTrack = c));\n }\n e.screenVideoTrack || e.screenAudioTrack || (e.screen = !1);\n } catch (e) {\n console.error(\"unexpected error matching up tracks\", e);\n }\n }\n}\nfunction Yo(e, t) {\n var r = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n t && (i = i.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), r.push.apply(r, i);\n }\n return r;\n}\nfunction Zo(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = null != arguments[t] ? arguments[t] : {};\n t % 2 ? Yo(Object(r), !0).forEach(function (t) {\n m(e, t, r[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : Yo(Object(r)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n });\n }\n return e;\n}\nfunction Xo(e) {\n var t = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n try {\n return Date.prototype.toString.call(Reflect.construct(Date, [], function () {})), !0;\n } catch (e) {\n return !1;\n }\n }();\n return function () {\n var r,\n i = g(e);\n if (t) {\n var n = g(this).constructor;\n r = Reflect.construct(i, arguments, n);\n } else r = i.apply(this, arguments);\n return v(this, r);\n };\n}\nfunction es(e, t) {\n var r;\n if (\"undefined\" == typeof Symbol || null == e[Symbol.iterator]) {\n if (Array.isArray(e) || (r = function (e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return ts(e, t);\n var r = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === r && e.constructor && (r = e.constructor.name);\n if (\"Map\" === r || \"Set\" === r) return Array.from(e);\n if (\"Arguments\" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return ts(e, t);\n }(e)) || t && e && \"number\" == typeof e.length) {\n r && (e = r);\n var i = 0,\n n = function () {};\n return {\n s: n,\n n: function () {\n return i >= e.length ? {\n done: !0\n } : {\n done: !1,\n value: e[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: n\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var a,\n o = !0,\n s = !1;\n return {\n s: function () {\n r = e[Symbol.iterator]();\n },\n n: function () {\n var e = r.next();\n return o = e.done, e;\n },\n e: function (e) {\n s = !0, a = e;\n },\n f: function () {\n try {\n o || null == r.return || r.return();\n } finally {\n if (s) throw a;\n }\n }\n };\n}\nfunction ts(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var r = 0, i = new Array(t); r < t; r++) i[r] = e[r];\n return i;\n}\nvar rs = \"video\",\n is = \"voice\",\n ns = 3,\n as = $t() ? {\n data: {}\n } : {\n data: {},\n topology: \"none\"\n },\n os = {\n present: 0,\n hidden: 0\n },\n ss = {\n maxBitrate: {\n min: 1e5,\n max: 25e5\n },\n maxFramerate: {\n min: 1,\n max: 30\n },\n scaleResolutionDownBy: {\n min: 1,\n max: 8\n }\n },\n cs = [\"state\", \"volume\", \"simulcastEncodings\"],\n ls = {\n androidInCallNotification: {\n title: \"string\",\n subtitle: \"string\",\n iconName: \"string\",\n disableForCustomOverride: \"boolean\"\n },\n disableAutoDeviceManagement: {\n audio: \"boolean\",\n video: \"boolean\"\n }\n },\n us = {\n id: {\n iconPath: \"string\",\n iconPathDarkMode: \"string\",\n label: \"string\",\n tooltip: \"string\"\n }\n },\n ds = {\n customTrayButtons: {\n validate: Ms,\n help: \"customTrayButtons should be a dictionary of the type \".concat(JSON.stringify(us))\n },\n url: {\n validate: function (e) {\n return \"string\" == typeof e;\n },\n help: \"url should be a string\"\n },\n baseUrl: {\n validate: function (e) {\n return \"string\" == typeof e;\n },\n help: \"baseUrl should be a string\"\n },\n token: {\n validate: function (e) {\n return \"string\" == typeof e;\n },\n help: \"token should be a string\",\n queryString: \"t\"\n },\n dailyConfig: {\n validate: function (e) {\n return window._dailyConfig || (window._dailyConfig = {}), window._dailyConfig.experimentalGetUserMediaConstraintsModify = e.experimentalGetUserMediaConstraintsModify, window._dailyConfig.userMediaVideoConstraints = e.userMediaVideoConstraints, window._dailyConfig.userMediaAudioConstraints = e.userMediaAudioConstraints, window._dailyConfig.callObjectBundleUrlOverride = e.callObjectBundleUrlOverride, !0;\n }\n },\n reactNativeConfig: {\n validate: function (e) {\n return function e(t, r) {\n if (void 0 === r) return !1;\n switch (f(r)) {\n case \"string\":\n return f(t) === r;\n case \"object\":\n if (\"object\" !== f(t)) return !1;\n for (var i in t) if (!e(t[i], r[i])) return !1;\n return !0;\n default:\n return !1;\n }\n }(e, ls);\n },\n help: \"reactNativeConfig should look like \".concat(JSON.stringify(ls), \", all fields optional\")\n },\n lang: {\n validate: function (e) {\n return [\"de\", \"en-us\", \"en\", \"es\", \"fi\", \"fr\", \"it\", \"jp\", \"ka\", \"nl\", \"no\", \"pl\", \"pt\", \"ru\", \"sv\", \"tr\", \"user\"].includes(e);\n },\n help: \"language not supported. Options are: de, en-us, en, es, fi, fr, it, jp, ka, nl, no, pl, pt, ru, sv, tr, user\"\n },\n userName: !0,\n userData: {\n validate: function (e) {\n try {\n return bs(e), !0;\n } catch (e) {\n return console.error(e), !1;\n }\n },\n help: \"invalid userData type provided\"\n },\n startVideoOff: !0,\n startAudioOff: !0,\n activeSpeakerMode: !0,\n showLeaveButton: !0,\n showLocalVideo: !0,\n showParticipantsBar: !0,\n showFullscreenButton: !0,\n showUserNameChangeUI: !0,\n iframeStyle: !0,\n customLayout: !0,\n cssFile: !0,\n cssText: !0,\n bodyClass: !0,\n videoSource: {\n validate: function (e, t) {\n return t._preloadCache.videoDeviceId = e, !0;\n }\n },\n audioSource: {\n validate: function (e, t) {\n return t._preloadCache.audioDeviceId = e, !0;\n }\n },\n subscribeToTracksAutomatically: {\n validate: function (e, t) {\n return t._preloadCache.subscribeToTracksAutomatically = e, !0;\n }\n },\n theme: {\n validate: function (e) {\n var t = [\"accent\", \"accentText\", \"background\", \"backgroundAccent\", \"baseText\", \"border\", \"mainAreaBg\", \"mainAreaBgAccent\", \"mainAreaText\", \"supportiveText\"],\n r = function (e) {\n for (var r = 0, i = Object.keys(e); r < i.length; r++) {\n var n = i[r];\n if (!t.includes(n)) return console.error('unsupported color \"'.concat(n, '\". Valid colors: ').concat(t.join(\", \"))), !1;\n if (!e[n].match(/^#[0-9a-f]{6}|#[0-9a-f]{3}$/i)) return console.error(\"\".concat(n, ' theme color should be provided in valid hex color format. Received: \"').concat(e[n], '\"')), !1;\n }\n return !0;\n };\n return \"object\" === f(e) && (\"light\" in e && \"dark\" in e || \"colors\" in e) ? \"light\" in e && \"dark\" in e ? \"colors\" in e.light ? \"colors\" in e.dark ? r(e.light.colors) && r(e.dark.colors) : (console.error('Dark theme is missing \"colors\" property.', e), !1) : (console.error('Light theme is missing \"colors\" property.', e), !1) : r(e.colors) : (console.error('Theme must contain either both \"light\" and \"dark\" properties, or \"colors\".', e), !1);\n },\n help: \"unsupported theme configuration. Check error logs for detailed info.\"\n },\n layoutConfig: {\n validate: function (e) {\n if (\"grid\" in e) {\n var t = e.grid;\n if (\"maxTilesPerPage\" in t) {\n if (!Number.isInteger(t.maxTilesPerPage)) return console.error(\"grid.maxTilesPerPage should be an integer. You passed \".concat(t.maxTilesPerPage, \".\")), !1;\n if (t.maxTilesPerPage > 49) return console.error(\"grid.maxTilesPerPage can't be larger than 49 without sacrificing browser performance. Please contact us at https://www.daily.co/contact to talk about your use case.\"), !1;\n }\n if (\"minTilesPerPage\" in t) {\n if (!Number.isInteger(t.minTilesPerPage)) return console.error(\"grid.minTilesPerPage should be an integer. You passed \".concat(t.minTilesPerPage, \".\")), !1;\n if (t.minTilesPerPage < 1) return console.error(\"grid.minTilesPerPage can't be lower than 1.\"), !1;\n if (\"maxTilesPerPage\" in t && t.minTilesPerPage > t.maxTilesPerPage) return console.error(\"grid.minTilesPerPage can't be higher than grid.maxTilesPerPage.\"), !1;\n }\n }\n return !0;\n },\n help: \"unsupported layoutConfig. Check error logs for detailed info.\"\n },\n receiveSettings: {\n validate: function (e) {\n return ws(e, {\n allowAllParticipantsKey: !1\n });\n },\n help: Ss({\n allowAllParticipantsKey: !1\n })\n },\n inputSettings: {\n validate: function (e, t) {\n return !!_s(e) && (t._preloadCache.inputSettings || (t._preloadCache.inputSettings = {}), e.audio && (t._preloadCache.inputSettings.audio = e.audio), e.video && (t._preloadCache.inputSettings.video = e.video), !0);\n },\n help: ks()\n },\n layout: {\n validate: function (e) {\n return \"custom-v1\" === e || \"browser\" === e || \"none\" === e;\n },\n help: 'layout may only be set to \"custom-v1\"',\n queryString: \"layout\"\n },\n emb: {\n queryString: \"emb\"\n },\n embHref: {\n queryString: \"embHref\"\n },\n dailyJsVersion: {\n queryString: \"dailyJsVersion\"\n },\n strictMode: !0\n },\n hs = {\n styles: {\n validate: function (e) {\n for (var t in e) if (\"cam\" !== t && \"screen\" !== t) return !1;\n if (e.cam) for (var r in e.cam) if (\"div\" !== r && \"video\" !== r) return !1;\n if (e.screen) for (var i in e.screen) if (\"div\" !== i && \"video\" !== i) return !1;\n return !0;\n },\n help: \"styles format should be a subset of: { cam: {div: {}, video: {}}, screen: {div: {}, video: {}} }\"\n },\n setSubscribedTracks: {\n validate: function (e, t) {\n if (t._preloadCache.subscribeToTracksAutomatically) return !1;\n var r = [!0, !1, \"staged\"];\n if (r.includes(e) || !$t() && \"avatar\" === e) return !0;\n var i = [\"audio\", \"video\", \"screenAudio\", \"screenVideo\", \"rmpAudio\", \"rmpVideo\"];\n return function e(t) {\n var n = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];\n for (var a in t) if (\"custom\" === a) {\n if (!r.includes(t[a]) && !e(t[a], !0)) return !1;\n } else {\n var o = !n && !i.includes(a),\n s = !r.includes(t[a]);\n if (o || s) return !1;\n }\n return !0;\n }(e);\n },\n help: \"setSubscribedTracks cannot be used when setSubscribeToTracksAutomatically is enabled, and should be of the form: \" + \"true\".concat($t() ? \"\" : \" | 'avatar'\", \" | false | 'staged' | { [audio: true|false|'staged'], [video: true|false|'staged'], [screenAudio: true|false|'staged'], [screenVideo: true|false|'staged'] }\")\n },\n setAudio: !0,\n setVideo: !0,\n eject: !0,\n updatePermissions: {\n validate: function (e) {\n for (var t = 0, r = Object.entries(e); t < r.length; t++) {\n var i = S(r[t], 2),\n n = i[0],\n a = i[1];\n switch (n) {\n case \"hasPresence\":\n if (\"boolean\" != typeof a) return !1;\n break;\n case \"canSend\":\n if (a instanceof Set) {\n var o,\n s = [\"video\", \"audio\", \"screenVideo\", \"screenAudio\", \"customVideo\", \"customAudio\"],\n c = es(a);\n try {\n for (c.s(); !(o = c.n()).done;) {\n var l = o.value;\n if (!s.includes(l)) return !1;\n }\n } catch (e) {\n c.e(e);\n } finally {\n c.f();\n }\n } else if (\"boolean\" != typeof a) return !1;\n break;\n default:\n return !1;\n }\n }\n return !0;\n },\n help: \"updatePermissions can take hasPresence and canSend permissions. hasPresence must be a boolean. canSend can be a boolean or an array of media types (video, audio, screenVideo, screenAudio, customVideo, customAudio).\"\n }\n };\nfunction ps(e) {\n var t = {};\n for (var r in e) e[r] instanceof MediaStreamTrack ? t[r] = Ut : \"dailyConfig\" === r ? (e[r].modifyLocalSdpHook && (window._dailyConfig && (window._dailyConfig.modifyLocalSdpHook = e[r].modifyLocalSdpHook), delete e[r].modifyLocalSdpHook), e[r].modifyRemoteSdpHook && (window._dailyConfig && (window._dailyConfig.modifyRemoteSdpHook = e[r].modifyRemoteSdpHook), delete e[r].modifyRemoteSdpHook), t[r] = e[r]) : t[r] = e[r];\n return t;\n}\nfunction fs(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"This daily-js method\",\n r = arguments.length > 2 ? arguments[2] : void 0;\n if (e !== se) {\n var i = \"\".concat(t, \" only supported after join.\");\n throw r && (i += \" \".concat(r)), console.error(i), new Error(i);\n }\n}\nfunction vs(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"This daily-js method\";\n if (!e) {\n var r = \"\".concat(t, \" is only supported on custom callObject instances\");\n throw console.error(r), new Error(r);\n }\n}\nfunction gs(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"This daily-js method\";\n if (e) {\n var r = \"\".concat(t, \" is only supported as part of Daily's Prebuilt\");\n throw console.error(r), new Error(r);\n }\n}\nfunction ms() {\n if ($t()) throw new Error(\"This daily-js method is not currently supported in React Native\");\n}\nfunction ys() {\n if (!$t()) throw new Error(\"This daily-js method is only supported in React Native\");\n}\nfunction bs(e) {\n if (void 0 === e) return !0;\n var t;\n if (\"string\" == typeof e) t = e;else try {\n t = JSON.stringify(e), W(JSON.parse(t), e) || console.warn(\"The userData provided will be modified when serialized.\");\n } catch (e) {\n throw Error(\"userData must be serializable to JSON: \".concat(e));\n }\n if (t.length > Vt) throw Error(\"userData is too large (\".concat(t.length, \" characters). Maximum size suppported is \").concat(Vt, \".\"));\n return !0;\n}\nfunction ws(e, t) {\n for (var r = t.allowAllParticipantsKey, i = function (e) {\n var t = [\"local\"];\n return r || t.push(\"*\"), e && !t.includes(e);\n }, n = function (e) {\n return !!(void 0 === e.layer || Number.isInteger(e.layer) && e.layer >= 0 || \"inherit\" === e.layer);\n }, a = function (e) {\n return !!e && !(e.video && !n(e.video)) && !(e.screenVideo && !n(e.screenVideo));\n }, o = 0, s = Object.entries(e); o < s.length; o++) {\n var c = S(s[o], 2),\n l = c[0],\n u = c[1];\n if (!i(l) || !a(u)) return !1;\n }\n return !0;\n}\nfunction _s(e) {\n return \"object\" === f(e) && !!(e.video && \"object\" === f(e.video) || e.audio && \"object\" === f(e.audio)) && !(e.video && !function (e) {\n var t = [\"type\", \"config\", \"publish\"];\n if (!e) return !1;\n if (\"object\" !== f(e)) return !1;\n if (0 === Object.keys(e).length) return !1;\n if (e.type && !function (e) {\n if (\"string\" != typeof e) return !1;\n if (!Object.values(zt).includes(e)) return console.error(\"inputSettings video processor type invalid\"), !1;\n return !0;\n }(e.type)) return !1;\n if (void 0 !== e.publish && \"boolean\" != typeof e.publish) return !1;\n \"boolean\" == typeof e.publish && console.warn(\"inputSettings.video.processor: publish key has been deprecated; it will be ignored\");\n if (e.config) {\n if (\"object\" !== f(e.config)) return !1;\n if (!function (e, t) {\n var r = Object.keys(t);\n if (0 === r.length) return !0;\n var i = \"invalid object in inputSettings -> video -> processor -> config\";\n switch (e) {\n case zt.BGBLUR:\n return r.length > 1 || \"strength\" !== r[0] ? (console.error(i), !1) : !(\"number\" != typeof t.strength || t.strength <= 0 || t.strength > 1 || isNaN(t.strength)) || (console.error(\"\".concat(i, \"; expected: {0 < strength <= 1}, got: \").concat(t.strength)), !1);\n case zt.BGIMAGE:\n return !(void 0 !== t.source && !function (e) {\n if (\"default\" === e.source) return e.type = \"default\", !0;\n if (hr(e.source)) return e.type = \"url\", !!function (e) {\n var t = new URL(e),\n r = t.pathname;\n if (\"data:\" === t.protocol) try {\n var i = r.substring(r.indexOf(\":\") + 1, r.indexOf(\";\")),\n n = i.split(\"/\")[1];\n return Gt.includes(n);\n } catch (e) {\n return console.error(\"failed to deduce blob content type\", e), !1;\n }\n var a = r.split(\".\").at(-1).toLowerCase().trim();\n return Gt.includes(a);\n }(e.source) || (console.error(\"invalid image type; supported types: [\".concat(Gt.join(\", \"), \"]\")), !1);\n return t = e.source, r = Number(t), isNaN(r) || !Number.isInteger(r) || r <= 0 || r > Wt ? (console.error(\"invalid image selection; must be an int, > 0, <= \".concat(Wt)), !1) : (e.type = \"daily-preselect\", !0);\n var t, r;\n }(t));\n default:\n return !0;\n }\n }(e.type, e.config)) return !1;\n }\n return Object.keys(e).filter(function (e) {\n return !t.includes(e);\n }).forEach(function (t) {\n console.warn(\"invalid key inputSettings -> video -> processor : \".concat(t)), delete e[t];\n }), !0;\n }(e.video.processor)) && !(e.audio && (t = e.audio.processor, r = [\"type\"], !t || \"object\" !== f(t) || (Object.keys(t).filter(function (e) {\n return !r.includes(e);\n }).forEach(function (e) {\n console.warn(\"invalid key inputSettings -> audio -> processor : \".concat(e)), delete t[e];\n }), t.type && (i = t.type, \"string\" != typeof i || !Object.values(Jt).includes(i) && (console.error(\"inputSettings audio processor type invalid\"), 1)))));\n var t, r, i;\n}\nfunction ks() {\n var e = Object.values(zt).join(\" | \"),\n t = Object.values(Jt).join(\" | \");\n return \"inputSettings must be of the form: { video?: { processor: { type: [ \".concat(e, \" ], config?: {} } }, audio?: { processor: {type: [ \").concat(t, \" ] } } }\");\n}\nfunction Ss(e) {\n var t = e.allowAllParticipantsKey;\n return \"receiveSettings must be of the form { [ | \".concat(we).concat(t ? ' | \"'.concat(_e, '\"') : \"\", \"]: \") + '{ [video: [{ layer: [ | \"inherit\"] } | \"inherit\"]], [screenVideo: [{ layer: [ | \"inherit\"] } | \"inherit\"]] }}}';\n}\nfunction Ms(e) {\n if (e && \"object\" !== f(e) || Array.isArray(e)) return console.error(\"customTrayButtons should be an Object of the type \".concat(JSON.stringify(us), \".\")), !1;\n if (e) for (var t = 0, r = Object.entries(e); t < r.length; t++) for (var i = S(r[t], 1)[0], n = 0, a = Object.entries(e[i]); n < a.length; n++) {\n var o = S(a[n], 2),\n s = o[0],\n c = o[1];\n if (\"iconPath\" === s && !hr(c)) return console.error(\"customTrayButton \".concat(s, \" should be a url.\")), !1;\n if (\"iconPathDarkMode\" === s && !hr(c)) return console.error(\"customTrayButton \".concat(s, \" should be a url.\")), !1;\n var l = us.id[s];\n if (!l) return console.error(\"customTrayButton does not support key \".concat(s)), !1;\n if (f(c) !== l) return console.error(\"customTrayButton \".concat(s, \" should be a \").concat(l, \".\")), !1;\n }\n return !0;\n}\nfunction Cs(e) {\n if (\"object\" !== f(e)) throw new Error('RemoteMediaPlayerSettings: must be \"object\" type');\n if (e.state && !Object.values(qt).includes(e.state)) throw new Error(\"Invalid value for RemoteMediaPlayerSettings.state, valid values are: \" + JSON.stringify(qt));\n if (e.volume) {\n if (\"number\" != typeof e.volume) throw new Error('RemoteMediaPlayerSettings.volume: must be \"number\" type');\n if (e.volume < 0 || e.volume > 2) throw new Error(\"RemoteMediaPlayerSettings.volume: must be between 0.0 - 2.0\");\n }\n}\nfunction Ts(e, t, r) {\n return !(\"number\" != typeof e || e < t || e > r);\n}\nfunction Os(e, t) {\n return e && !t && delete e.data, e;\n}\nexport default (function (t) {\n p(n, e);\n var r = Xo(n);\n function n(e) {\n var t,\n i,\n c = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n if (o(this, n), t = r.call(this), m(s(t), \"startListeningForDeviceChanges\", function () {\n void 0 !== navigator.mediaDevices.ondevicechange || $t() ? navigator.mediaDevices.addEventListener(\"devicechange\", t.deviceChangeListener) : t.startPollingForDeviceChanges();\n }), m(s(t), \"stopListeningForDeviceChanges\", function () {\n void 0 !== navigator.mediaDevices.ondevicechange || $t() ? navigator.mediaDevices.removeEventListener(\"devicechange\", t.deviceChangeListener) : t.stopPollingForDeviceChanges();\n }), m(s(t), \"deviceChangeListener\", a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var e;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return t.enumerateDevices();\n case 2:\n e = _context9.sent;\n t.handleDeviceChange(e.devices);\n case 4:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }))), m(s(t), \"handleDeviceChange\", function (e) {\n t.emit(Qe, {\n action: Qe,\n availableDevices: e\n });\n }), m(s(t), \"startPollingForDeviceChanges\", function () {\n t._deviceChangeInterval || (t._deviceChangeInterval = setInterval(a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var e, r;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return t.enumerateDevices();\n case 2:\n e = _context10.sent;\n r = JSON.stringify(e);\n t._lastDevicesJSON && r !== t._lastDevicesJSON && t.handleDeviceChange(e.devices), t._lastDevicesJSON = r;\n case 5:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n })), 3e3));\n }), m(s(t), \"stopPollingForDeviceChanges\", function () {\n t._deviceChangeInterval && (clearInterval(t._deviceChangeInterval), t._deviceChangeInterval = null, t._lastDevicesJSON = null);\n }), m(s(t), \"handleNativeAppActiveStateChange\", function (e) {\n t.disableReactNativeAutoDeviceManagement(\"video\") || (e ? t.camUnmutedBeforeLosingNativeActiveState && t.setLocalVideo(!0) : (t.camUnmutedBeforeLosingNativeActiveState = t.localVideo(), t.camUnmutedBeforeLosingNativeActiveState && t.setLocalVideo(!1)));\n }), m(s(t), \"handleNativeAudioFocusChange\", function (e) {\n t.disableReactNativeAutoDeviceManagement(\"audio\") || (t._hasNativeAudioFocus = e, t.toggleParticipantAudioBasedOnNativeAudioFocus(), t._hasNativeAudioFocus ? t.micUnmutedBeforeLosingNativeAudioFocus && t.setLocalAudio(!0) : (t.micUnmutedBeforeLosingNativeAudioFocus = t.localAudio(), t.setLocalAudio(!1)));\n }), t.strictMode = c.strictMode, Ro) {\n if (t._logDuplicateInstanceAttempt(), t.strictMode) throw new Error(\"Duplicate DailyIframe instances are not allowed\");\n } else i = s(t), Ro = i;\n if (c.dailyJsVersion = n.version(), t._iframe = e, t._callObjectMode = \"none\" === c.layout && !t._iframe, t._preloadCache = {\n subscribeToTracksAutomatically: !0,\n audioDeviceId: null,\n videoDeviceId: null,\n outputDeviceId: null,\n inputSettings: null\n }, t._callObjectMode && (window._dailyPreloadCache = t._preloadCache), void 0 !== c.showLocalVideo ? t._callObjectMode ? console.error(\"showLocalVideo is not available in call object mode\") : t._showLocalVideo = !!c.showLocalVideo : t._showLocalVideo = !0, void 0 !== c.showParticipantsBar ? t._callObjectMode ? console.error(\"showParticipantsBar is not available in call object mode\") : t._showParticipantsBar = !!c.showParticipantsBar : t._showParticipantsBar = !0, void 0 !== c.customTrayButtons ? t._callObjectMode ? console.error(\"customTrayButtons is not available in call object mode\") : t._customTrayButtons = c.customTrayButtons : t._customTrayButtons = {}, void 0 !== c.activeSpeakerMode ? t._callObjectMode ? console.error(\"activeSpeakerMode is not available in call object mode\") : t._activeSpeakerMode = !!c.activeSpeakerMode : t._activeSpeakerMode = !1, c.receiveSettings ? t._callObjectMode ? t._receiveSettings = c.receiveSettings : console.error(\"receiveSettings is only available in call object mode\") : t._receiveSettings = {}, t.validateProperties(c), t.properties = Zo({}, c), t._preloadCache.inputSettings || (t._preloadCache.inputSettings = {}), c.inputSettings && c.inputSettings.audio && (t._preloadCache.inputSettings.audio = c.inputSettings.audio), c.inputSettings && c.inputSettings.video && (t._preloadCache.inputSettings.video = c.inputSettings.video), t._callObjectLoader = t._callObjectMode ? new Fr() : null, t._callState = ne, t._isPreparingToJoin = !1, t._accessState = {\n access: ge\n }, t._meetingSessionState = Os(as, t._callObjectMode), t._nativeInCallAudioMode = rs, t._participants = {}, t._participantCounts = os, t._rmpPlayerState = {}, t._waitingParticipants = {}, t._inputEventsOn = {}, t._network = {\n threshold: \"good\",\n quality: 100\n }, t._activeSpeaker = {}, t._callFrameId = lr(), t._messageChannel = $t() ? new br() : new mr(), t._iframe && (t._iframe.requestFullscreen ? t._iframe.addEventListener(\"fullscreenchange\", function () {\n document.fullscreenElement === t._iframe ? (t.emit(Pt, {\n action: Pt\n }), t.sendMessageToCallMachine({\n action: Pt\n })) : (t.emit(At, {\n action: At\n }), t.sendMessageToCallMachine({\n action: At\n }));\n }) : t._iframe.webkitRequestFullscreen && t._iframe.addEventListener(\"webkitfullscreenchange\", function () {\n document.webkitFullscreenElement === t._iframe ? (t.emit(Pt, {\n action: Pt\n }), t.sendMessageToCallMachine({\n action: Pt\n })) : (t.emit(At, {\n action: At\n }), t.sendMessageToCallMachine({\n action: At\n }));\n })), $t()) {\n var l = t.nativeUtils();\n l.addAudioFocusChangeListener && l.removeAudioFocusChangeListener && l.addAppActiveStateChangeListener && l.removeAppActiveStateChangeListener || console.warn(\"expected (add|remove)(AudioFocus|AppActiveState)ChangeListener to be available in React Native\"), t._hasNativeAudioFocus = !0, l.addAudioFocusChangeListener(t.handleNativeAudioFocusChange), l.addAppActiveStateChangeListener(t.handleNativeAppActiveStateChange);\n }\n return t._callObjectMode && t.startListeningForDeviceChanges(), t._messageChannel.addListenerForMessagesFromCallMachine(t.handleMessageFromCallMachine, t._callFrameId, s(t)), t;\n }\n return l(n, null, [{\n key: \"supportedBrowser\",\n value: function () {\n if ($t()) return {\n supported: !0,\n mobile: !0,\n name: \"React Native\",\n version: null,\n supportsScreenShare: !1,\n supportsSfu: !0,\n supportsVideoProcessing: !1,\n supportsAudioProcessing: !1\n };\n var e = class {\n static getParser(e) {\n let t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !1;\n if (\"string\" != typeof e) throw new Error(\"UserAgent should be a string\");\n return new ie(e, t);\n }\n static parse(e) {\n return new ie(e).getResult();\n }\n static get BROWSER_MAP() {\n return H;\n }\n static get ENGINE_MAP() {\n return $;\n }\n static get OS_MAP() {\n return Q;\n }\n static get PLATFORMS_MAP() {\n return K;\n }\n }.getParser(Qt());\n return {\n supported: !!rr(),\n mobile: \"mobile\" === e.getPlatformType(),\n name: e.getBrowserName(),\n version: e.getBrowserVersion(),\n supportsFullscreen: !!Xt(),\n supportsScreenShare: !!Zt(),\n supportsSfu: !!rr(),\n supportsVideoProcessing: !$t() && !ir() && er.includes(nr()),\n supportsAudioProcessing: !$t() && !ir() && \"undefined\" != typeof AudioWorkletNode && tr.includes(nr())\n };\n }\n }, {\n key: \"version\",\n value: function () {\n return \"0.41.0\";\n }\n }, {\n key: \"createCallObject\",\n value: function () {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n return e.layout = \"none\", new n(null, e);\n }\n }, {\n key: \"wrap\",\n value: function (e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n if (ms(), !e || !e.contentWindow || \"string\" != typeof e.src) throw new Error(\"DailyIframe::Wrap needs an iframe-like first argument\");\n return t.layout || (t.customLayout ? t.layout = \"custom-v1\" : t.layout = \"browser\"), new n(e, t);\n }\n }, {\n key: \"createFrame\",\n value: function (e, t) {\n var r, i;\n ms(), e && t ? (r = e, i = t) : e && e.append ? (r = e, i = {}) : (r = document.body, i = e || {});\n var a = i.iframeStyle;\n a || (a = r === document.body ? {\n position: \"fixed\",\n border: \"1px solid black\",\n backgroundColor: \"white\",\n width: \"375px\",\n height: \"450px\",\n right: \"1em\",\n bottom: \"1em\"\n } : {\n border: 0,\n width: \"100%\",\n height: \"100%\"\n });\n var o = document.createElement(\"iframe\");\n window.navigator && window.navigator.userAgent.match(/Chrome\\/61\\./) ? o.allow = \"microphone, camera\" : o.allow = \"microphone; camera; autoplay; display-capture\", o.style.visibility = \"hidden\", r.appendChild(o), o.style.visibility = null, Object.keys(a).forEach(function (e) {\n return o.style[e] = a[e];\n }), i.layout || (i.customLayout ? i.layout = \"custom-v1\" : i.layout = \"browser\");\n try {\n return new n(o, i);\n } catch (e) {\n throw r.removeChild(o), e;\n }\n }\n }, {\n key: \"createTransparentFrame\",\n value: function () {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n ms();\n var t = document.createElement(\"iframe\");\n return t.allow = \"microphone; camera; autoplay\", t.style.cssText = \"\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n border: 0;\\n pointer-events: none;\\n \", document.body.appendChild(t), e.layout || (e.layout = \"custom-v1\"), n.wrap(t, e);\n }\n }, {\n key: \"getCallInstance\",\n value: function () {\n return Ro;\n }\n }]), l(n, [{\n key: \"destroy\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var e, t, r;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n _context11.t0 = [se, ae].includes(this._callState);\n if (!_context11.t0) {\n _context11.next = 5;\n break;\n }\n _context11.next = 5;\n return this.leave();\n case 5:\n _context11.next = 9;\n break;\n case 7:\n _context11.prev = 7;\n _context11.t1 = _context11[\"catch\"](0);\n case 9:\n e = this._iframe;\n if (e) {\n t = e.parentElement;\n t && t.removeChild(e);\n }\n if (this._messageChannel.removeListener(this.handleMessageFromCallMachine), $t()) {\n r = this.nativeUtils();\n r.removeAudioFocusChangeListener(this.handleNativeAudioFocusChange), r.removeAppActiveStateChangeListener(this.handleNativeAppActiveStateChange);\n }\n this._callObjectMode && this.stopListeningForDeviceChanges(), this.resetMeetingDependentVars(), this._destroyed = !0, this.strictMode && (this._callFrameId = void 0), Ro = void 0;\n case 13:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, this, [[0, 7]]);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"isDestroyed\",\n value: function () {\n return this._destroyed;\n }\n }, {\n key: \"loadCss\",\n value: function (e) {\n var t = e.bodyClass,\n r = e.cssFile,\n i = e.cssText;\n return ms(), this.sendMessageToCallMachine({\n action: \"load-css\",\n cssFile: this.absoluteUrl(r),\n bodyClass: t,\n cssText: i\n }), this;\n }\n }, {\n key: \"iframe\",\n value: function () {\n return ms(), this._iframe;\n }\n }, {\n key: \"meetingState\",\n value: function () {\n return this._callState;\n }\n }, {\n key: \"accessState\",\n value: function () {\n return vs(this._callObjectMode, \"accessState()\"), this._accessState;\n }\n }, {\n key: \"participants\",\n value: function () {\n return this._participants;\n }\n }, {\n key: \"participantCounts\",\n value: function () {\n return this._participantCounts;\n }\n }, {\n key: \"waitingParticipants\",\n value: function () {\n return vs(this._callObjectMode, \"waitingParticipants()\"), this._waitingParticipants;\n }\n }, {\n key: \"validateParticipantProperties\",\n value: function (e, t) {\n for (var r in t) {\n if (!hs[r]) throw new Error(\"unrecognized updateParticipant property \".concat(r));\n if (hs[r].validate && !hs[r].validate(t[r], this, this._participants[e])) throw new Error(hs[r].help);\n }\n }\n }, {\n key: \"updateParticipant\",\n value: function (e, t) {\n return this._participants.local && this._participants.local.session_id === e && (e = \"local\"), e && t && (this.validateParticipantProperties(e, t), this.sendMessageToCallMachine({\n action: \"update-participant\",\n id: e,\n properties: t\n })), this;\n }\n }, {\n key: \"updateParticipants\",\n value: function (e) {\n var t = this._participants.local && this._participants.local.session_id;\n for (var r in e) r === t && (r = \"local\"), r && e[r] && this.validateParticipantProperties(r, e[r]);\n return this.sendMessageToCallMachine({\n action: \"update-participants\",\n participants: e\n }), this;\n }\n }, {\n key: \"updateWaitingParticipant\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n var e,\n t,\n r,\n _args12 = arguments;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n e = this, t = _args12.length > 0 && void 0 !== _args12[0] ? _args12[0] : \"\", r = _args12.length > 1 && void 0 !== _args12[1] ? _args12[1] : {};\n if (!(vs(this._callObjectMode, \"updateWaitingParticipant()\"), fs(this._callState, \"updateWaitingParticipant()\"), \"string\" != typeof t || \"object\" !== f(r))) {\n _context12.next = 3;\n break;\n }\n throw new Error(\"updateWaitingParticipant() must take an id string and a updates object\");\n case 3:\n return _context12.abrupt(\"return\", new Promise(function (i, n) {\n e.sendMessageToCallMachine({\n action: \"daily-method-update-waiting-participant\",\n id: t,\n updates: r\n }, function (e) {\n e.error && n(e.error), e.id || n(new Error(\"unknown error in updateWaitingParticipant()\")), i({\n id: e.id\n });\n });\n }));\n case 4:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, this);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"updateWaitingParticipants\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var e,\n t,\n _args13 = arguments;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n e = this, t = _args13.length > 0 && void 0 !== _args13[0] ? _args13[0] : {};\n if (!(vs(this._callObjectMode, \"updateWaitingParticipants()\"), fs(this._callState, \"updateWaitingParticipants()\"), \"object\" !== f(t))) {\n _context13.next = 3;\n break;\n }\n throw new Error(\"updateWaitingParticipants() must take a mapping between ids and update objects\");\n case 3:\n return _context13.abrupt(\"return\", new Promise(function (r, i) {\n e.sendMessageToCallMachine({\n action: \"daily-method-update-waiting-participants\",\n updatesById: t\n }, function (e) {\n e.error && i(e.error), e.ids || i(new Error(\"unknown error in updateWaitingParticipants()\")), r({\n ids: e.ids\n });\n });\n }));\n case 4:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, this);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"requestAccess\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {\n var e,\n t,\n r,\n i,\n n,\n a,\n _args14 = arguments;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n e = this, t = _args14.length > 0 && void 0 !== _args14[0] ? _args14[0] : {}, r = t.access, i = void 0 === r ? {\n level: \"full\"\n } : r, n = t.name, a = void 0 === n ? \"\" : n;\n return _context14.abrupt(\"return\", (vs(this._callObjectMode, \"requestAccess()\"), fs(this._callState, \"requestAccess()\"), new Promise(function (t, r) {\n e.sendMessageToCallMachine({\n action: \"daily-method-request-access\",\n access: i,\n name: a\n }, function (e) {\n e.error && r(e.error), e.access || r(new Error(\"unknown error in requestAccess()\")), t({\n access: e.access,\n granted: e.granted\n });\n });\n })));\n case 2:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, this);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"localAudio\",\n value: function () {\n return this._participants.local ? this._participants.local.audio : null;\n }\n }, {\n key: \"localVideo\",\n value: function () {\n return this._participants.local ? this._participants.local.video : null;\n }\n }, {\n key: \"setLocalAudio\",\n value: function (e) {\n return this.sendMessageToCallMachine({\n action: \"local-audio\",\n state: e\n }), this;\n }\n }, {\n key: \"setLocalVideo\",\n value: function (e) {\n return this.sendMessageToCallMachine({\n action: \"local-video\",\n state: e\n }), this;\n }\n }, {\n key: \"getReceiveSettings\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee15(e) {\n var t,\n r,\n i,\n _args15 = arguments;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n t = this, r = (_args15.length > 1 && void 0 !== _args15[1] ? _args15[1] : {}).showInheritedValues, i = void 0 !== r && r;\n _context15.t0 = (vs(this._callObjectMode, \"getReceiveSettings()\"), f(e));\n _context15.next = _context15.t0 === \"string\" ? 4 : _context15.t0 === \"undefined\" ? 5 : 6;\n break;\n case 4:\n return _context15.abrupt(\"return\", new Promise(function (r) {\n t.sendMessageToCallMachine({\n action: \"get-single-participant-receive-settings\",\n id: e,\n showInheritedValues: i\n }, function (e) {\n r(e.receiveSettings);\n });\n }));\n case 5:\n return _context15.abrupt(\"return\", this._receiveSettings);\n case 6:\n throw new Error('first argument to getReceiveSettings() must be a participant id (or \"base\"), or there should be no arguments');\n case 7:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, this);\n }));\n return function (t) {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"updateReceiveSettings\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee16(e) {\n var t;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n t = this;\n if (!(vs(this._callObjectMode, \"updateReceiveSettings()\"), !ws(e, {\n allowAllParticipantsKey: !0\n }))) {\n _context16.next = 3;\n break;\n }\n throw new Error(Ss({\n allowAllParticipantsKey: !0\n }));\n case 3:\n return _context16.abrupt(\"return\", (fs(this._callState, \"updateReceiveSettings()\", \"To specify receive settings earlier, use the receiveSettings config property.\"), new Promise(function (r) {\n t.sendMessageToCallMachine({\n action: \"update-receive-settings\",\n receiveSettings: e\n }, function (e) {\n r({\n receiveSettings: e.receiveSettings\n });\n });\n })));\n case 4:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, this);\n }));\n return function (t) {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"getInputSettings\",\n value: function () {\n var e = this;\n return new Promise(function (t) {\n if (e.needsLoad()) {\n var r = {\n processor: {\n type: \"none\"\n }\n },\n i = {\n processor: {\n type: \"none\"\n }\n },\n n = !1,\n a = !1;\n e._inputSettings && e._inputSettings.video && Object.keys(e._inputSettings.video).length > 0 && (r = e._inputSettings.video, n = !0), e._inputSettings && e._inputSettings.audio && Object.keys(e._inputSettings.audio).length > 0 && (i = e._inputSettings.audio, a = !0);\n var o = e._preloadCache && e._preloadCache.inputSettings && e._preloadCache.inputSettings.video && Object.keys(e._preloadCache.inputSettings.video).length > 0,\n s = e._preloadCache && e._preloadCache.inputSettings && e._preloadCache.inputSettings.audio && Object.keys(e._preloadCache.inputSettings.audio).length > 0;\n !n && o && (r = e._preloadCache.inputSettings.video), !a && s && (i = e._preloadCache.inputSettings.audio), t({\n audio: i,\n video: r\n });\n } else t(e._inputSettings);\n });\n }\n }, {\n key: \"updateInputSettings\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee17(e) {\n var t;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n t = this;\n return _context17.abrupt(\"return\", _s(e) ? (e && (this._preloadCache.inputSettings || (this._preloadCache.inputSettings = {}), e.audio && (this._preloadCache.inputSettings.audio = e.audio), e.video && (this._preloadCache.inputSettings.video = e.video)), this._callObjectMode && this.needsLoad() ? {\n inputSettings: this._preloadCache.inputSettings\n } : new Promise(function (r, i) {\n t.sendMessageToCallMachine({\n action: \"update-input-settings\",\n inputSettings: e\n }, function (e) {\n e.error ? i(e.error) : r({\n inputSettings: e.inputSettings\n });\n });\n })) : (console.error(ks()), Promise.reject(ks())));\n case 2:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, this);\n }));\n return function (t) {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"setBandwidth\",\n value: function (e) {\n var t = e.kbs,\n r = e.trackConstraints;\n return ms(), this.sendMessageToCallMachine({\n action: \"set-bandwidth\",\n kbs: t,\n trackConstraints: r\n }), this;\n }\n }, {\n key: \"getDailyLang\",\n value: function () {\n var e = this;\n return ms(), new Promise(function () {\n var t = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee18(t) {\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n e.sendMessageToCallMachine({\n action: \"get-daily-lang\"\n }, function (e) {\n delete e.action, delete e.callbackStamp, t(e);\n });\n case 1:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18);\n }));\n return function (e) {\n return t.apply(this, arguments);\n };\n }());\n }\n }, {\n key: \"setDailyLang\",\n value: function (e) {\n return ms(), this.sendMessageToCallMachine({\n action: \"set-daily-lang\",\n lang: e\n }), this;\n }\n }, {\n key: \"getMeetingSession\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee20() {\n var e;\n return _regeneratorRuntime().wrap(function _callee20$(_context20) {\n while (1) switch (_context20.prev = _context20.next) {\n case 0:\n e = this;\n return _context20.abrupt(\"return\", (fs(this._callState, \"getMeetingSession()\"), new Promise(function () {\n var t = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee19(t) {\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n e.sendMessageToCallMachine({\n action: \"get-meeting-session\"\n }, function (e) {\n delete e.action, delete e.callbackStamp, delete e.callFrameId, t(e);\n });\n case 1:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19);\n }));\n return function (e) {\n return t.apply(this, arguments);\n };\n }())));\n case 2:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, this);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"meetingSessionState\",\n value: function () {\n if (this._callState !== se) throw new Error(\"meetingSessionState() is only available when joined\");\n return this._meetingSessionState;\n }\n }, {\n key: \"setMeetingSessionData\",\n value: function (e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"replace\";\n if (vs(this._callObjectMode, \"setMeetingSessionData()\"), this._callState !== se) throw new Error(\"setMeetingSessionData() is only available when joined\");\n try {\n !function (e, t) {\n new Cr({\n data: e,\n mergeStrategy: t\n });\n }(e, t);\n } catch (e) {\n throw console.error(e), e;\n }\n try {\n this.sendMessageToCallMachine({\n action: \"set-session-data\",\n data: e,\n mergeStrategy: t\n });\n } catch (e) {\n throw new Error(\"Error setting meeting session data: \".concat(e));\n }\n }\n }, {\n key: \"setUserName\",\n value: function (e, t) {\n var r = this;\n return this.properties.userName = e, new Promise(function (i) {\n r.sendMessageToCallMachine({\n action: \"set-user-name\",\n name: null != e ? e : \"\",\n thisMeetingOnly: $t() || !!t && !!t.thisMeetingOnly\n }, function (e) {\n delete e.action, delete e.callbackStamp, i(e);\n });\n });\n }\n }, {\n key: \"setUserData\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee21(e) {\n var t;\n return _regeneratorRuntime().wrap(function _callee21$(_context21) {\n while (1) switch (_context21.prev = _context21.next) {\n case 0:\n t = this;\n _context21.prev = 1;\n bs(e);\n _context21.next = 8;\n break;\n case 5:\n _context21.prev = 5;\n _context21.t0 = _context21[\"catch\"](1);\n throw console.error(_context21.t0), _context21.t0;\n case 8:\n return _context21.abrupt(\"return\", (this.properties.userData = e, new Promise(function (r) {\n try {\n t.sendMessageToCallMachine({\n action: \"set-user-data\",\n userData: e\n }, function (e) {\n delete e.action, delete e.callbackStamp, delete e.callFrameId, r(e);\n });\n } catch (e) {\n throw new Error(\"Error setting user data: \".concat(e));\n }\n })));\n case 9:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, this, [[1, 5]]);\n }));\n return function (t) {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"startCamera\",\n value: function () {\n var e = this,\n t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n if (vs(this._callObjectMode, \"startCamera()\"), [oe, se].includes(this._callState)) throw new Error(\"startCamera() not supported after joining a meeting: did you mean to use setLocalAudio() and/or setLocalVideo() instead?\");\n return new Promise(function () {\n var r = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee22(r, i) {\n return _regeneratorRuntime().wrap(function _callee22$(_context22) {\n while (1) switch (_context22.prev = _context22.next) {\n case 0:\n if (!e.needsLoad()) {\n _context22.next = 11;\n break;\n }\n _context22.prev = 1;\n _context22.next = 4;\n return e.load(t);\n case 4:\n _context22.next = 9;\n break;\n case 6:\n _context22.prev = 6;\n _context22.t0 = _context22[\"catch\"](1);\n i(_context22.t0);\n case 9:\n _context22.next = 12;\n break;\n case 11:\n e.validateProperties(t);\n case 12:\n e.sendMessageToCallMachine({\n action: \"start-camera\",\n properties: ps(e.properties),\n preloadCache: ps(e._preloadCache)\n }, function (e) {\n delete e.action, delete e.callbackStamp, r(e);\n });\n case 13:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[1, 6]]);\n }));\n return function (e, t) {\n return r.apply(this, arguments);\n };\n }());\n }\n }, {\n key: \"validateCustomTrack\",\n value: function (e, t, r) {\n if (r && r.length > 50) throw new Error(\"Custom track `trackName` must not be more than 50 characters\");\n if (t && \"music\" !== t && \"speech\" !== t && !(t instanceof Object)) throw new Error(\"Custom track `mode` must be either `music` | `speech` | `DailyMicAudioModeSettings` or `undefined`\");\n if (!!r && [\"cam-audio\", \"cam-video\", \"screen-video\", \"screen-audio\", \"rmpAudio\", \"rmpVideo\"].includes(r)) throw new Error(\"Custom track `trackName` must not match a track name already used by daily: cam-audio, cam-video, screen-video, screen-audio, rmpAudio, rmpVideo\");\n if (!(e instanceof MediaStreamTrack)) throw new Error(\"Custom tracks provided must be instances of MediaStreamTrack\");\n }\n }, {\n key: \"startCustomTrack\",\n value: function () {\n var e = this,\n t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {\n track: track,\n mode: mode,\n trackName: trackName\n };\n if (ms(), this.validateCustomTrack(t.track, t.mode, t.trackName), this._callState !== se) throw new Error(\"startCustomTrack() is only allowed when joined\");\n return new Promise(function (r, i) {\n window._dailyPreloadCache.customTrack = t.track, t.track = Ut, e.sendMessageToCallMachine({\n action: \"start-custom-track\",\n properties: t\n }, function (e) {\n e.error ? i({\n error: e.error\n }) : r(e.mediaTag);\n });\n });\n }\n }, {\n key: \"stopCustomTrack\",\n value: function (e) {\n var t = this;\n if (ms(), this._callState !== se) throw new Error(\"stopCustomTrack() is only allowed when joined\");\n return new Promise(function (r) {\n t.sendMessageToCallMachine({\n action: \"stop-custom-track\",\n mediaTag: e\n }, function (e) {\n r(e.mediaTag);\n });\n });\n }\n }, {\n key: \"setCamera\",\n value: function (e) {\n var t = this;\n if (ys(), this.needsLoad()) throw new Error(\"Before you can invoke setCamera, first you need to invoke one of these methods: join, startCamera, or preAuth\");\n return new Promise(function (r) {\n t.sendMessageToCallMachine({\n action: \"set-camera\",\n cameraDeviceId: e\n }, function (e) {\n r({\n device: e.device\n });\n });\n });\n }\n }, {\n key: \"setAudioDevice\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee23(e) {\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n ys();\n this.nativeUtils().setAudioDevice(e);\n _context23.next = 4;\n return this.nativeUtils().getAudioDevice();\n case 4:\n _context23.t0 = _context23.sent;\n return _context23.abrupt(\"return\", {\n deviceId: _context23.t0\n });\n case 6:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, this);\n }));\n return function (t) {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"cycleCamera\",\n value: function () {\n var e = this;\n return new Promise(function (t) {\n e.sendMessageToCallMachine({\n action: \"cycle-camera\"\n }, function (e) {\n t({\n device: e.device\n });\n });\n });\n }\n }, {\n key: \"cycleMic\",\n value: function () {\n var e = this;\n return ms(), new Promise(function (t) {\n e.sendMessageToCallMachine({\n action: \"cycle-mic\"\n }, function (e) {\n t({\n device: e.device\n });\n });\n });\n }\n }, {\n key: \"getCameraFacingMode\",\n value: function () {\n var e = this;\n return ys(), new Promise(function (t) {\n e.sendMessageToCallMachine({\n action: \"get-camera-facing-mode\"\n }, function (e) {\n t(e.facingMode);\n });\n });\n }\n }, {\n key: \"setInputDevices\",\n value: function (e) {\n var t = e.audioDeviceId,\n r = e.videoDeviceId,\n i = e.audioSource,\n n = e.videoSource;\n return console.warn(\"setInputDevices() is deprecated: instead use setInputDevicesAsync(), which returns a Promise\"), this.setInputDevicesAsync({\n audioDeviceId: t,\n videoDeviceId: r,\n audioSource: i,\n videoSource: n\n }), this;\n }\n }, {\n key: \"setInputDevicesAsync\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee24(e) {\n var t, r, i, n, a;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n t = this, r = e.audioDeviceId, i = e.videoDeviceId, n = e.audioSource, a = e.videoSource;\n return _context24.abrupt(\"return\", (ms(), void 0 !== n && (r = n), void 0 !== a && (i = a), r && (this._preloadCache.audioDeviceId = r), i && (this._preloadCache.videoDeviceId = i), this._callObjectMode && this.needsLoad() ? {\n camera: {\n deviceId: this._preloadCache.videoDeviceId\n },\n mic: {\n deviceId: this._preloadCache.audioDeviceId\n },\n speaker: {\n deviceId: this._preloadCache.outputDeviceId\n }\n } : (r instanceof MediaStreamTrack && (r = Ut), i instanceof MediaStreamTrack && (i = Ut), new Promise(function (e) {\n t.sendMessageToCallMachine({\n action: \"set-input-devices\",\n audioDeviceId: r,\n videoDeviceId: i\n }, function (r) {\n delete r.action, delete r.callbackStamp, r.returnPreloadCache ? e({\n camera: {\n deviceId: t._preloadCache.videoDeviceId\n },\n mic: {\n deviceId: t._preloadCache.audioDeviceId\n },\n speaker: {\n deviceId: t._preloadCache.outputDeviceId\n }\n }) : e(r);\n });\n }))));\n case 2:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, this);\n }));\n return function (t) {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"setOutputDevice\",\n value: function (e) {\n var t = e.outputDeviceId;\n return console.warn(\"setOutputDevice() is deprecated: instead use setOutputDeviceAsync(), which returns a Promise\"), this.setOutputDeviceAsync({\n outputDeviceId: t\n }), this;\n }\n }, {\n key: \"setOutputDeviceAsync\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee25(e) {\n var t, r;\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n t = this, r = e.outputDeviceId;\n return _context25.abrupt(\"return\", (ms(), r && (this._preloadCache.outputDeviceId = r), this._callObjectMode && this.needsLoad() ? {\n camera: {\n deviceId: this._preloadCache.videoDeviceId\n },\n mic: {\n deviceId: this._preloadCache.audioDeviceId\n },\n speaker: {\n deviceId: this._preloadCache.outputDeviceId\n }\n } : new Promise(function (e) {\n t.sendMessageToCallMachine({\n action: \"set-output-device\",\n outputDeviceId: r\n }, function (r) {\n delete r.action, delete r.callbackStamp, r.returnPreloadCache ? e({\n camera: {\n deviceId: t._preloadCache.videoDeviceId\n },\n mic: {\n deviceId: t._preloadCache.audioDeviceId\n },\n speaker: {\n deviceId: t._preloadCache.outputDeviceId\n }\n }) : e(r);\n });\n })));\n case 2:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25, this);\n }));\n return function (t) {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"getInputDevices\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee26() {\n var e;\n return _regeneratorRuntime().wrap(function _callee26$(_context26) {\n while (1) switch (_context26.prev = _context26.next) {\n case 0:\n e = this;\n return _context26.abrupt(\"return\", this._callObjectMode && this.needsLoad() ? {\n camera: {\n deviceId: this._preloadCache.videoDeviceId\n },\n mic: {\n deviceId: this._preloadCache.audioDeviceId\n },\n speaker: {\n deviceId: this._preloadCache.outputDeviceId\n }\n } : new Promise(function (t) {\n e.sendMessageToCallMachine({\n action: \"get-input-devices\"\n }, function (r) {\n delete r.action, delete r.callbackStamp, r.returnPreloadCache ? t({\n camera: {\n deviceId: e._preloadCache.videoDeviceId\n },\n mic: {\n deviceId: e._preloadCache.audioDeviceId\n },\n speaker: {\n deviceId: e._preloadCache.outputDeviceId\n }\n }) : t(r);\n });\n }));\n case 2:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, this);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"nativeInCallAudioMode\",\n value: function () {\n return ys(), this._nativeInCallAudioMode;\n }\n }, {\n key: \"setNativeInCallAudioMode\",\n value: function (e) {\n if (ys(), [rs, is].includes(e)) {\n if (e !== this._nativeInCallAudioMode) return this._nativeInCallAudioMode = e, !this.disableReactNativeAutoDeviceManagement(\"audio\") && this._isCallPendingOrOngoing(this._callState, this._isPreparingToJoin) && this.nativeUtils().setAudioMode(this._nativeInCallAudioMode), this;\n } else console.error(\"invalid in-call audio mode specified: \", e);\n }\n }, {\n key: \"preAuth\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee27() {\n var e,\n t,\n _args27 = arguments;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n e = this, t = _args27.length > 0 && void 0 !== _args27[0] ? _args27[0] : {};\n if (!(vs(this._callObjectMode, \"preAuth()\"), [oe, se].includes(this._callState))) {\n _context27.next = 3;\n break;\n }\n throw new Error(\"preAuth() not supported after joining a meeting\");\n case 3:\n _context27.t0 = this.needsLoad();\n if (!_context27.t0) {\n _context27.next = 7;\n break;\n }\n _context27.next = 7;\n return this.load(t);\n case 7:\n if (t.url) {\n _context27.next = 9;\n break;\n }\n throw new Error(\"preAuth() requires at least a url to be provided\");\n case 9:\n return _context27.abrupt(\"return\", (this.validateProperties(t), this.properties = Zo(Zo({}, this.properties), t), new Promise(function (t, r) {\n e.sendMessageToCallMachine({\n action: \"daily-method-preauth\",\n properties: ps(e.properties)\n }, function (i) {\n return i.error ? r(i.error) : i.access ? (e._didPreAuth = !0, void t({\n access: i.access\n })) : r(new Error(\"unknown error in preAuth()\"));\n });\n })));\n case 10:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, this);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"load\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee28(e) {\n var t;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n t = this;\n if (!this.needsLoad()) {\n _context28.next = 9;\n break;\n }\n if (!(this._destroyed && (this._logUseAfterDestroy(), this.strictMode))) {\n _context28.next = 4;\n break;\n }\n throw new Error(\"Use after destroy\");\n case 4:\n if (!(e && (this.validateProperties(e), this.properties = Zo(Zo({}, this.properties), e)), !this._callObjectMode && !this.properties.url)) {\n _context28.next = 6;\n break;\n }\n throw new Error(\"can't load iframe meeting because url property isn't set\");\n case 6:\n this._updateCallState(ae);\n try {\n this.emit(\"loading\", {\n action: \"loading\"\n });\n } catch (e) {\n console.log(\"could not emit 'loading'\", e);\n }\n return _context28.abrupt(\"return\", this._callObjectMode ? new Promise(function (e, r) {\n t._callObjectLoader.cancel(), t._callObjectLoader.load(t._callFrameId, t.properties.dailyConfig && t.properties.dailyConfig.avoidEval, function (r) {\n t._updateCallState(\"loaded\"), r && t.emit(\"loaded\", {\n action: \"loaded\"\n }), e();\n }, function (e, i) {\n t.emit(\"load-attempt-failed\", {\n action: \"load-attempt-failed\",\n errorMsg: e\n }), i || (t._updateCallState(le), t.resetMeetingDependentVars(), t.emit(\"error\", {\n action: \"error\",\n errorMsg: e\n }), r(e));\n });\n }) : (this._iframe.src = this.assembleMeetingUrl(), new Promise(function (e, r) {\n t._loadedCallback = function (i) {\n if (t._callState !== le) {\n for (var n in t._updateCallState(\"loaded\"), (t.properties.cssFile || t.properties.cssText) && t.loadCss(t.properties), t._inputEventsOn) t.sendMessageToCallMachine({\n action: \"register-input-handler\",\n on: n\n });\n e();\n } else r(i);\n };\n })));\n case 9:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, this);\n }));\n return function (t) {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"join\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var e,\n t,\n r,\n _args29 = arguments;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n e = this, t = _args29.length > 0 && void 0 !== _args29[0] ? _args29[0] : {}, r = !1;\n if (!this.needsLoad()) {\n _context29.next = 13;\n break;\n }\n this.updateIsPreparingToJoin(!0);\n _context29.prev = 3;\n _context29.next = 6;\n return this.load(t);\n case 6:\n _context29.next = 11;\n break;\n case 8:\n _context29.prev = 8;\n _context29.t0 = _context29[\"catch\"](3);\n return _context29.abrupt(\"return\", (this.updateIsPreparingToJoin(!1), Promise.reject(_context29.t0)));\n case 11:\n _context29.next = 21;\n break;\n case 13:\n if (!(r = !(!this.properties.cssFile && !this.properties.cssText), this._didPreAuth)) {\n _context29.next = 18;\n break;\n }\n if (!(t.url && t.url !== this.properties.url)) {\n _context29.next = 16;\n break;\n }\n return _context29.abrupt(\"return\", (console.error(\"url in join() is different than the one used in preAuth()\"), this.updateIsPreparingToJoin(!1), Promise.reject()));\n case 16:\n if (!(t.token && t.token !== this.properties.token)) {\n _context29.next = 18;\n break;\n }\n return _context29.abrupt(\"return\", (console.error(\"token in join() is different than the one used in preAuth()\"), this.updateIsPreparingToJoin(!1), Promise.reject()));\n case 18:\n if (!(t.url && !this._callObjectMode && t.url && t.url !== this.properties.url)) {\n _context29.next = 20;\n break;\n }\n return _context29.abrupt(\"return\", (console.error(\"url in join() is different than the one used in load() (\".concat(this.properties.url, \" -> \").concat(t.url, \")\")), this.updateIsPreparingToJoin(!1), Promise.reject()));\n case 20:\n this.validateProperties(t), this.properties = Zo(Zo({}, this.properties), t);\n case 21:\n if (!(void 0 !== t.showLocalVideo && (this._callObjectMode ? console.error(\"showLocalVideo is not available in callObject mode\") : this._showLocalVideo = !!t.showLocalVideo), void 0 !== t.showParticipantsBar && (this._callObjectMode ? console.error(\"showParticipantsBar is not available in callObject mode\") : this._showParticipantsBar = !!t.showParticipantsBar), this._callState === se || this._callState === oe)) {\n _context29.next = 23;\n break;\n }\n return _context29.abrupt(\"return\", (console.warn(\"already joined meeting, call leave() before joining again\"), void this.updateIsPreparingToJoin(!1)));\n case 23:\n this._updateCallState(oe, !1);\n try {\n this.emit(\"joining-meeting\", {\n action: \"joining-meeting\"\n });\n } catch (e) {\n console.log(\"could not emit 'joining-meeting'\", e);\n }\n return _context29.abrupt(\"return\", (this._preloadCache.inputSettings || (this._preloadCache.inputSettings = {}), t.inputSettings && t.inputSettings.audio && (this._preloadCache.inputSettings.audio = t.inputSettings.audio), t.inputSettings && t.inputSettings.video && (this._preloadCache.inputSettings.video = t.inputSettings.video), this.sendMessageToCallMachine({\n action: \"join-meeting\",\n properties: ps(this.properties),\n preloadCache: ps(this._preloadCache)\n }), new Promise(function (t, i) {\n e._joinedCallback = function (n, a) {\n if (e._callState !== le) {\n if (e._updateCallState(se), n) for (var o in n) e._callObjectMode && (Ho(n[o]), Ko(n[o]), $o(n[o], e._participants[o])), e._participants[o] = Zo({}, n[o]), e.toggleParticipantAudioBasedOnNativeAudioFocus();\n r && e.loadCss(e.properties), t(n);\n } else i(a);\n };\n })));\n case 26:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, this, [[3, 8]]);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"leave\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee30() {\n var e;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n e = this;\n return _context30.abrupt(\"return\", new Promise(function (t) {\n if (e._callObjectLoader && !e._callObjectLoader.loaded) {\n e._callObjectLoader.cancel(), e._updateCallState(ce), e.resetMeetingDependentVars();\n try {\n e.emit(ce, {\n action: ce\n });\n } catch (e) {\n console.log(\"could not emit 'left-meeting'\", e);\n }\n t();\n } else e._callState === ce || e._callState === le ? t() : (e._resolveLeave = t, e.sendMessageToCallMachine({\n action: \"leave-meeting\"\n }));\n }));\n case 2:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, this);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"startScreenShare\",\n value: function () {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n ms(), e.mediaStream && (this._preloadCache.screenMediaStream = e.mediaStream, e.mediaStream = Ut), this.sendMessageToCallMachine({\n action: \"local-screen-start\",\n captureOptions: e\n });\n }\n }, {\n key: \"stopScreenShare\",\n value: function () {\n ms(), this.sendMessageToCallMachine({\n action: \"local-screen-stop\"\n });\n }\n }, {\n key: \"startRecording\",\n value: function () {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n this.sendMessageToCallMachine(Zo({\n action: \"local-recording-start\"\n }, e));\n }\n }, {\n key: \"updateRecording\",\n value: function (e) {\n var t = e.layout,\n r = void 0 === t ? {\n preset: \"default\"\n } : t,\n i = e.instanceId;\n this.sendMessageToCallMachine({\n action: \"daily-method-update-recording\",\n layout: r,\n instanceId: i\n });\n }\n }, {\n key: \"stopRecording\",\n value: function () {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n this.sendMessageToCallMachine(Zo({\n action: \"local-recording-stop\"\n }, e));\n }\n }, {\n key: \"startLiveStreaming\",\n value: function () {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n this.sendMessageToCallMachine(Zo({\n action: \"daily-method-start-live-streaming\"\n }, e));\n }\n }, {\n key: \"updateLiveStreaming\",\n value: function (e) {\n var t = e.layout,\n r = void 0 === t ? {\n preset: \"default\"\n } : t,\n i = e.instanceId;\n this.sendMessageToCallMachine({\n action: \"daily-method-update-live-streaming\",\n layout: r,\n instanceId: i\n });\n }\n }, {\n key: \"addLiveStreamingEndpoints\",\n value: function (e) {\n var t = e.endpoints,\n r = e.instanceId;\n this.sendMessageToCallMachine({\n action: \"daily-method-update-live-streaming-endpoints\",\n endpointsOp: Ht,\n endpoints: t,\n instanceId: r\n });\n }\n }, {\n key: \"removeLiveStreamingEndpoints\",\n value: function (e) {\n var t = e.endpoints,\n r = e.instanceId;\n this.sendMessageToCallMachine({\n action: \"daily-method-update-live-streaming-endpoints\",\n endpointsOp: Kt,\n endpoints: t,\n instanceId: r\n });\n }\n }, {\n key: \"stopLiveStreaming\",\n value: function () {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n this.sendMessageToCallMachine(Zo({\n action: \"daily-method-stop-live-streaming\"\n }, e));\n }\n }, {\n key: \"startRemoteMediaPlayer\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee32(e) {\n var t, r, i, n;\n return _regeneratorRuntime().wrap(function _callee32$(_context32) {\n while (1) switch (_context32.prev = _context32.next) {\n case 0:\n t = this, r = e.url, i = e.settings, n = void 0 === i ? {\n state: qt.PLAY\n } : i;\n _context32.prev = 1;\n !function (e) {\n if (\"string\" != typeof e) throw new Error('url parameter must be \"string\" type');\n }(r), Cs(n), function (e) {\n for (var t in e) if (!cs.includes(t)) throw new Error(\"Invalid key \".concat(t, \", valid keys are: \").concat(cs));\n if (e.simulcastEncodings) {\n if (!(e.simulcastEncodings instanceof Array)) throw new Error('simulcastEncodings must be \"Array\"');\n if (!Ts(e.simulcastEncodings.length, 0, ns)) throw new Error('\"simulcastEncodings\" not in range. valid range 1 to 3 layers');\n e.simulcastEncodings.every(function (e) {\n for (var t in e) {\n if (!ss.hasOwnProperty(t)) throw new Error(\"Invalid key \".concat(t, \", valid keys are:\") + Object.keys(ss));\n if (\"number\" != typeof e[t]) throw new Error(\"simulcastEncodings[].\".concat(t, ' must be \"number\"'));\n var r = ss[t],\n i = r.min,\n n = r.max;\n if (!Ts(e[t], i, n)) throw new Error(\"simulcastEncodings[].\".concat(t, \" value not in range. valid range: \").concat(i, \" to \").concat(n));\n }\n if (!e.hasOwnProperty(\"maxBitrate\")) throw new Error(\"simulcastEncodings[].maxBitrate is not specified\");\n });\n }\n }(n);\n _context32.next = 8;\n break;\n case 5:\n _context32.prev = 5;\n _context32.t0 = _context32[\"catch\"](1);\n throw console.error(\"invalid argument Error: \".concat(_context32.t0)), console.error('startRemoteMediaPlayer arguments must be of the form: \\n { url: \"playback url\", \\n settings?: \\n {state: \"play\"|\"pause\", simulcastEncodings?: [{}] } }'), _context32.t0;\n case 8:\n return _context32.abrupt(\"return\", new Promise(function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee31(e, i) {\n return _regeneratorRuntime().wrap(function _callee31$(_context31) {\n while (1) switch (_context31.prev = _context31.next) {\n case 0:\n t.sendMessageToCallMachine({\n action: \"daily-method-start-remote-media-player\",\n url: r,\n settings: n\n }, function (t) {\n t.error ? i({\n error: t.error,\n errorMsg: t.errorMsg\n }) : e({\n session_id: t.session_id,\n remoteMediaPlayerState: {\n state: t.state,\n settings: t.settings\n }\n });\n });\n case 1:\n case \"end\":\n return _context31.stop();\n }\n }, _callee31);\n }));\n return function (t, r) {\n return e.apply(this, arguments);\n };\n }()));\n case 9:\n case \"end\":\n return _context32.stop();\n }\n }, _callee32, this, [[1, 5]]);\n }));\n return function (t) {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"stopRemoteMediaPlayer\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee34(e) {\n var t;\n return _regeneratorRuntime().wrap(function _callee34$(_context34) {\n while (1) switch (_context34.prev = _context34.next) {\n case 0:\n t = this;\n if (!(\"string\" != typeof e)) {\n _context34.next = 3;\n break;\n }\n throw new Error(\" remotePlayerID must be of type string\");\n case 3:\n return _context34.abrupt(\"return\", new Promise(function () {\n var r = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee33(r, i) {\n return _regeneratorRuntime().wrap(function _callee33$(_context33) {\n while (1) switch (_context33.prev = _context33.next) {\n case 0:\n t.sendMessageToCallMachine({\n action: \"daily-method-stop-remote-media-player\",\n session_id: e\n }, function (e) {\n e.error ? i({\n error: e.error,\n errorMsg: e.errorMsg\n }) : r();\n });\n case 1:\n case \"end\":\n return _context33.stop();\n }\n }, _callee33);\n }));\n return function (e, t) {\n return r.apply(this, arguments);\n };\n }()));\n case 4:\n case \"end\":\n return _context34.stop();\n }\n }, _callee34, this);\n }));\n return function (t) {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"updateRemoteMediaPlayer\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee36(e) {\n var t, r, i;\n return _regeneratorRuntime().wrap(function _callee36$(_context36) {\n while (1) switch (_context36.prev = _context36.next) {\n case 0:\n t = this, r = e.session_id, i = e.settings;\n _context36.prev = 1;\n Cs(i);\n _context36.next = 8;\n break;\n case 5:\n _context36.prev = 5;\n _context36.t0 = _context36[\"catch\"](1);\n throw console.error(\"invalid argument Error: \".concat(_context36.t0)), console.error('updateRemoteMediaPlayer arguments must be of the form: \\n session_id: \"participant session\", \\n { settings?: {state: \"play\"|\"pause\"} }'), _context36.t0;\n case 8:\n return _context36.abrupt(\"return\", new Promise(function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee35(e, n) {\n return _regeneratorRuntime().wrap(function _callee35$(_context35) {\n while (1) switch (_context35.prev = _context35.next) {\n case 0:\n t.sendMessageToCallMachine({\n action: \"daily-method-update-remote-media-player\",\n session_id: r,\n settings: i\n }, function (t) {\n t.error ? n({\n error: t.error,\n errorMsg: t.errorMsg\n }) : e({\n session_id: t.session_id,\n remoteMediaPlayerState: {\n state: t.state,\n settings: t.settings\n }\n });\n });\n case 1:\n case \"end\":\n return _context35.stop();\n }\n }, _callee35);\n }));\n return function (t, r) {\n return e.apply(this, arguments);\n };\n }()));\n case 9:\n case \"end\":\n return _context36.stop();\n }\n }, _callee36, this, [[1, 5]]);\n }));\n return function (t) {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"startTranscription\",\n value: function (e) {\n this.sendMessageToCallMachine(Zo({\n action: \"daily-method-start-transcription\"\n }, e));\n }\n }, {\n key: \"stopTranscription\",\n value: function () {\n this.sendMessageToCallMachine({\n action: \"daily-method-stop-transcription\"\n });\n }\n }, {\n key: \"getNetworkStats\",\n value: function () {\n var e = this;\n if (this._callState !== se) {\n return {\n stats: {\n latest: {}\n }\n };\n }\n return new Promise(function (t) {\n e.sendMessageToCallMachine({\n action: \"get-calc-stats\"\n }, function (r) {\n t(Zo({\n stats: r.stats\n }, e._network));\n });\n });\n }\n }, {\n key: \"getCpuLoadStats\",\n value: function () {\n var e = this;\n return this._callState !== se ? {\n cpuLoadState: void 0,\n stats: {}\n } : new Promise(function (t, r) {\n e.sendMessageToCallMachine({\n action: \"get-cpu-load-stats\"\n }, function (e) {\n t(e.cpuStats);\n });\n });\n }\n }, {\n key: \"getActiveSpeaker\",\n value: function () {\n return ms(), this._activeSpeaker;\n }\n }, {\n key: \"setActiveSpeakerMode\",\n value: function (e) {\n return ms(), this.sendMessageToCallMachine({\n action: \"set-active-speaker-mode\",\n enabled: e\n }), this;\n }\n }, {\n key: \"activeSpeakerMode\",\n value: function () {\n return ms(), this._activeSpeakerMode;\n }\n }, {\n key: \"subscribeToTracksAutomatically\",\n value: function () {\n return this._preloadCache.subscribeToTracksAutomatically;\n }\n }, {\n key: \"setSubscribeToTracksAutomatically\",\n value: function (e) {\n return fs(this._callState, \"setSubscribeToTracksAutomatically()\", \"Use the subscribeToTracksAutomatically configuration property.\"), this._preloadCache.subscribeToTracksAutomatically = e, this.sendMessageToCallMachine({\n action: \"daily-method-subscribe-to-tracks-automatically\",\n enabled: e\n }), this;\n }\n }, {\n key: \"enumerateDevices\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee37() {\n var e;\n return _regeneratorRuntime().wrap(function _callee37$(_context37) {\n while (1) switch (_context37.prev = _context37.next) {\n case 0:\n e = this;\n if (!this._callObjectMode) {\n _context37.next = 8;\n break;\n }\n _context37.next = 4;\n return navigator.mediaDevices.enumerateDevices();\n case 4:\n _context37.t1 = _context37.sent.map(function (e) {\n return JSON.parse(JSON.stringify(e));\n });\n _context37.t0 = {\n devices: _context37.t1\n };\n _context37.next = 9;\n break;\n case 8:\n _context37.t0 = new Promise(function (t) {\n e.sendMessageToCallMachine({\n action: \"enumerate-devices\"\n }, function (e) {\n t({\n devices: e.devices\n });\n });\n });\n case 9:\n return _context37.abrupt(\"return\", _context37.t0);\n case 10:\n case \"end\":\n return _context37.stop();\n }\n }, _callee37, this);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"sendAppMessage\",\n value: function (e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"*\";\n if (JSON.stringify(e).length > 4096) throw new Error(\"Message data too large. Max size is 4096\");\n return this.sendMessageToCallMachine({\n action: \"app-msg\",\n data: e,\n to: t\n }), this;\n }\n }, {\n key: \"addFakeParticipant\",\n value: function (e) {\n return ms(), this.sendMessageToCallMachine(Zo({\n action: \"add-fake-participant\"\n }, e)), this;\n }\n }, {\n key: \"setShowNamesMode\",\n value: function (e) {\n return gs(this._callObjectMode, \"setShowNamesMode()\"), ms(), e && \"always\" !== e && \"never\" !== e ? (console.error('setShowNamesMode argument should be \"always\", \"never\", or false'), this) : (this.sendMessageToCallMachine({\n action: \"set-show-names\",\n mode: e\n }), this);\n }\n }, {\n key: \"setShowLocalVideo\",\n value: function () {\n var e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];\n return gs(this._callObjectMode, \"setShowLocalVideo()\"), ms(), fs(this._callState, \"setShowLocalVideo()\"), \"boolean\" != typeof e ? (console.error(\"setShowLocalVideo only accepts a boolean value\"), this) : (this.sendMessageToCallMachine({\n action: \"set-show-local-video\",\n show: e\n }), this._showLocalVideo = e, this);\n }\n }, {\n key: \"showLocalVideo\",\n value: function () {\n return gs(this._callObjectMode, \"showLocalVideo()\"), ms(), this._showLocalVideo;\n }\n }, {\n key: \"setShowParticipantsBar\",\n value: function () {\n var e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];\n return gs(this._callObjectMode, \"setShowParticipantsBar()\"), ms(), fs(this._callState, \"setShowParticipantsBar()\"), \"boolean\" != typeof e ? (console.error(\"setShowParticipantsBar only accepts a boolean value\"), this) : (this.sendMessageToCallMachine({\n action: \"set-show-participants-bar\",\n show: e\n }), this._showParticipantsBar = e, this);\n }\n }, {\n key: \"showParticipantsBar\",\n value: function () {\n return gs(this._callObjectMode, \"showParticipantsBar()\"), ms(), this._showParticipantsBar;\n }\n }, {\n key: \"customTrayButtons\",\n value: function () {\n return gs(this._callObjectMode, \"customTrayButtons()\"), ms(), this._customTrayButtons;\n }\n }, {\n key: \"updateCustomTrayButtons\",\n value: function (e) {\n return gs(this._callObjectMode, \"updateCustomTrayButtons()\"), ms(), fs(this._callState, \"updateCustomTrayButtons()\"), Ms(e) ? (this.sendMessageToCallMachine({\n action: \"update-custom-tray-buttons\",\n btns: e\n }), this._customTrayButtons = e, this) : (console.error(\"updateCustomTrayButtons only accepts a dictionary of the type \".concat(JSON.stringify(us))), this);\n }\n }, {\n key: \"theme\",\n value: function () {\n return gs(this._callObjectMode, \"theme()\"), this.properties.theme;\n }\n }, {\n key: \"setTheme\",\n value: function (e) {\n var t = this;\n return gs(this._callObjectMode, \"setTheme()\"), new Promise(function (r, i) {\n try {\n t.validateProperties({\n theme: e\n }), t.properties.theme = Zo({}, e), t.sendMessageToCallMachine({\n action: \"set-theme\",\n theme: t.properties.theme\n });\n try {\n t.emit(\"theme-updated\", {\n action: \"theme-updated\",\n theme: t.properties.theme\n });\n } catch (e) {\n console.log(\"could not emit 'theme-updated'\", e);\n }\n r(t.properties.theme);\n } catch (e) {\n i(e);\n }\n });\n }\n }, {\n key: \"detectAllFaces\",\n value: function () {\n var e = this;\n return ms(), new Promise(function (t) {\n e.sendMessageToCallMachine({\n action: \"detect-all-faces\"\n }, function (e) {\n delete e.action, delete e.callbackStamp, t(e);\n });\n });\n }\n }, {\n key: \"requestFullscreen\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee38() {\n return _regeneratorRuntime().wrap(function _callee38$(_context38) {\n while (1) switch (_context38.prev = _context38.next) {\n case 0:\n if (!(ms(), this._iframe && !document.fullscreenElement && Xt())) {\n _context38.next = 14;\n break;\n }\n _context38.prev = 1;\n _context38.next = 4;\n return this._iframe.requestFullscreen;\n case 4:\n if (!_context38.sent) {\n _context38.next = 8;\n break;\n }\n this._iframe.requestFullscreen();\n _context38.next = 9;\n break;\n case 8:\n this._iframe.webkitRequestFullscreen();\n case 9:\n _context38.next = 14;\n break;\n case 11:\n _context38.prev = 11;\n _context38.t0 = _context38[\"catch\"](1);\n console.log(\"could not make video call fullscreen\", _context38.t0);\n case 14:\n case \"end\":\n return _context38.stop();\n }\n }, _callee38, this, [[1, 11]]);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"exitFullscreen\",\n value: function () {\n ms(), document.fullscreenElement ? document.exitFullscreen() : document.webkitFullscreenElement && document.webkitExitFullscreen();\n }\n }, {\n key: \"room\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee39() {\n var e,\n t,\n r,\n _args39 = arguments;\n return _regeneratorRuntime().wrap(function _callee39$(_context39) {\n while (1) switch (_context39.prev = _context39.next) {\n case 0:\n e = this, t = (_args39.length > 0 && void 0 !== _args39[0] ? _args39[0] : {}).includeRoomConfigDefaults, r = void 0 === t || t;\n return _context39.abrupt(\"return\", this._accessState.access === ge || this.needsLoad() ? this.properties.url ? {\n roomUrlPendingJoin: this.properties.url\n } : null : new Promise(function (t) {\n e.sendMessageToCallMachine({\n action: \"lib-room-info\",\n includeRoomConfigDefaults: r\n }, function (e) {\n delete e.action, delete e.callbackStamp, t(e);\n });\n }));\n case 2:\n case \"end\":\n return _context39.stop();\n }\n }, _callee39, this);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"geo\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee41() {\n return _regeneratorRuntime().wrap(function _callee41$(_context41) {\n while (1) switch (_context41.prev = _context41.next) {\n case 0:\n return _context41.abrupt(\"return\", new Promise(function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee40(e) {\n var t;\n return _regeneratorRuntime().wrap(function _callee40$(_context40) {\n while (1) switch (_context40.prev = _context40.next) {\n case 0:\n _context40.prev = 0;\n _context40.next = 3;\n return fetch(\"https://gs.daily.co/_ks_/x-swsl/:\");\n case 3:\n t = _context40.sent;\n _context40.t0 = e;\n _context40.next = 7;\n return t.json();\n case 7:\n _context40.t1 = _context40.sent.geo;\n _context40.t2 = {\n current: _context40.t1\n };\n (0, _context40.t0)(_context40.t2);\n _context40.next = 15;\n break;\n case 12:\n _context40.prev = 12;\n _context40.t3 = _context40[\"catch\"](0);\n console.error(\"geo lookup failed\", _context40.t3), e({\n current: \"\"\n });\n case 15:\n case \"end\":\n return _context40.stop();\n }\n }, _callee40, null, [[0, 12]]);\n }));\n return function (t) {\n return e.apply(this, arguments);\n };\n }()));\n case 1:\n case \"end\":\n return _context41.stop();\n }\n }, _callee41);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"setNetworkTopology\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee43(e) {\n var t;\n return _regeneratorRuntime().wrap(function _callee43$(_context43) {\n while (1) switch (_context43.prev = _context43.next) {\n case 0:\n t = this;\n return _context43.abrupt(\"return\", (ms(), new Promise(function () {\n var r = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee42(r, i) {\n return _regeneratorRuntime().wrap(function _callee42$(_context42) {\n while (1) switch (_context42.prev = _context42.next) {\n case 0:\n t.sendMessageToCallMachine({\n action: \"set-network-topology\",\n opts: e\n }, function (e) {\n e.error ? i({\n error: e.error\n }) : r({\n workerId: e.workerId\n });\n });\n case 1:\n case \"end\":\n return _context42.stop();\n }\n }, _callee42);\n }));\n return function (e, t) {\n return r.apply(this, arguments);\n };\n }())));\n case 2:\n case \"end\":\n return _context43.stop();\n }\n }, _callee43, this);\n }));\n return function (t) {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"getNetworkTopology\",\n value: function () {\n var e = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee45() {\n var e;\n return _regeneratorRuntime().wrap(function _callee45$(_context45) {\n while (1) switch (_context45.prev = _context45.next) {\n case 0:\n e = this;\n return _context45.abrupt(\"return\", new Promise(function () {\n var t = a( /*#__PURE__*/_regeneratorRuntime().mark(function _callee44(t, r) {\n return _regeneratorRuntime().wrap(function _callee44$(_context44) {\n while (1) switch (_context44.prev = _context44.next) {\n case 0:\n e.sendMessageToCallMachine({\n action: \"get-network-topology\"\n }, function (e) {\n e.error ? r({\n error: e.error\n }) : t({\n topology: e.topology\n });\n });\n case 1:\n case \"end\":\n return _context44.stop();\n }\n }, _callee44);\n }));\n return function (e, r) {\n return t.apply(this, arguments);\n };\n }()));\n case 2:\n case \"end\":\n return _context45.stop();\n }\n }, _callee45, this);\n }));\n return function () {\n return e.apply(this, arguments);\n };\n }()\n }, {\n key: \"setPlayNewParticipantSound\",\n value: function (e) {\n if (ms(), \"number\" != typeof e && !0 !== e && !1 !== e) throw new Error(\"argument to setShouldPlayNewParticipantSound should be true, false, or a number, but is \".concat(e));\n this.sendMessageToCallMachine({\n action: \"daily-method-set-play-ding\",\n arg: e\n });\n }\n }, {\n key: \"on\",\n value: function (t, r) {\n return this._inputEventsOn[t] = {}, this.sendMessageToCallMachine({\n action: \"register-input-handler\",\n on: t\n }), e.prototype.on.call(this, t, r);\n }\n }, {\n key: \"once\",\n value: function (t, r) {\n return this._inputEventsOn[t] = {}, this.sendMessageToCallMachine({\n action: \"register-input-handler\",\n on: t\n }), e.prototype.once.call(this, t, r);\n }\n }, {\n key: \"off\",\n value: function (t, r) {\n return delete this._inputEventsOn[t], this.isDestroyed() || this.sendMessageToCallMachine({\n action: \"register-input-handler\",\n off: t\n }), e.prototype.off.call(this, t, r);\n }\n }, {\n key: \"validateProperties\",\n value: function (e) {\n for (var t in e) {\n if (!ds[t]) throw new Error(\"unrecognized property '\".concat(t, \"'\"));\n if (ds[t].validate && !ds[t].validate(e[t], this)) throw new Error(\"property '\".concat(t, \"': \").concat(ds[t].help));\n }\n }\n }, {\n key: \"assembleMeetingUrl\",\n value: function () {\n var e = Zo(Zo({}, this.properties), {}, {\n emb: this._callFrameId,\n embHref: encodeURIComponent(window.location.href)\n }),\n t = e.url.match(/\\?/) ? \"&\" : \"?\";\n return e.url + t + Object.keys(ds).filter(function (t) {\n return ds[t].queryString && void 0 !== e[t];\n }).map(function (t) {\n return \"\".concat(ds[t].queryString, \"=\").concat(e[t]);\n }).join(\"&\");\n }\n }, {\n key: \"needsLoad\",\n value: function () {\n return [ne, ae, ce, le].includes(this._callState);\n }\n }, {\n key: \"sendMessageToCallMachine\",\n value: function (e, t) {\n if (this._destroyed && (this._logUseAfterDestroy(), this.strictMode)) throw new Error(\"Use after destroy\");\n this._messageChannel.sendMessageToCallMachine(e, t, this._iframe, this._callFrameId);\n }\n }, {\n key: \"forwardPackagedMessageToCallMachine\",\n value: function (e) {\n this._messageChannel.forwardPackagedMessageToCallMachine(e, this._iframe, this._callFrameId);\n }\n }, {\n key: \"addListenerForPackagedMessagesFromCallMachine\",\n value: function (e) {\n return this._messageChannel.addListenerForPackagedMessagesFromCallMachine(e, this._callFrameId);\n }\n }, {\n key: \"removeListenerForPackagedMessagesFromCallMachine\",\n value: function (e) {\n this._messageChannel.removeListenerForPackagedMessagesFromCallMachine(e);\n }\n }, {\n key: \"handleMessageFromCallMachine\",\n value: function (e) {\n switch (e.action) {\n case \"iframe-ready-for-launch-config\":\n this.sendMessageToCallMachine(Zo({\n action: \"iframe-launch-config\"\n }, this.properties));\n break;\n case \"loaded\":\n this._loadedCallback && (this._loadedCallback(), this._loadedCallback = null);\n try {\n this.emit(e.action, e);\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n break;\n case \"joined-meeting\":\n this._joinedCallback && (this._joinedCallback(e.participants), this._joinedCallback = null);\n try {\n this.emit(e.action, e);\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n break;\n case \"participant-joined\":\n case \"participant-updated\":\n if (this._callState === ce) return;\n if (e.participant && e.participant.session_id) {\n var t = e.participant.local ? \"local\" : e.participant.session_id;\n this._callObjectMode && (Ho(e.participant), Ko(e.participant), $o(e.participant, this._participants[t]));\n try {\n this.maybeParticipantTracksStopped(this._participants[t], e.participant), this.maybeParticipantTracksStarted(this._participants[t], e.participant), this.maybeEventRecordingStopped(this._participants[t], e.participant), this.maybeEventRecordingStarted(this._participants[t], e.participant);\n } catch (e) {\n console.error(\"track events error\", e);\n }\n if (!this.compareEqualForParticipantUpdateEvent(e.participant, this._participants[t])) {\n this._participants[t] = Zo({}, e.participant), this.toggleParticipantAudioBasedOnNativeAudioFocus();\n try {\n this.emit(e.action, e);\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n }\n }\n break;\n case \"participant-left\":\n if (e.participant && e.participant.session_id) {\n var r = this._participants[e.participant.session_id];\n r && this.maybeParticipantTracksStopped(r, null), delete this._participants[e.participant.session_id];\n try {\n this.emit(e.action, e);\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n }\n break;\n case \"participant-counts-updated\":\n if (!W(this._participantCounts, e.participantCounts)) {\n this._participantCounts = e.participantCounts;\n try {\n this.emit(e.action, e);\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n }\n break;\n case \"access-state-updated\":\n var n = {\n access: e.access\n };\n if (e.awaitingAccess && (n.awaitingAccess = e.awaitingAccess), !W(this._accessState, n)) {\n this._accessState = n;\n try {\n this.emit(e.action, e);\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n }\n break;\n case \"meeting-session-updated\":\n if (e.meetingSession) try {\n delete e.callFrameId, this.emit(e.action, e);\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n break;\n case \"error\":\n this._iframe && !e.preserveIframe && (this._iframe.src = \"\"), this._updateCallState(le), this.resetMeetingDependentVars(), this._loadedCallback && (this._loadedCallback(e.errorMsg), this._loadedCallback = null), this._joinedCallback && (this._joinedCallback(null, e.errorMsg), this._joinedCallback = null);\n try {\n e.preserveIframe;\n var a = i(e, [\"preserveIframe\"]);\n this.emit(e.action, a);\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n break;\n case \"left-meeting\":\n this._callState !== le && this._updateCallState(ce), this.resetMeetingDependentVars(), this._resolveLeave && (this._resolveLeave(), this._resolveLeave = null);\n try {\n this.emit(e.action, e);\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n break;\n case \"selected-devices-updated\":\n if (e.devices) try {\n this.emit(e.action, e);\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n break;\n case \"network-quality-change\":\n var o = e.threshold,\n s = e.quality;\n if (o !== this._network.threshold || s !== this._network.quality) {\n this._network.quality = s, this._network.threshold = o;\n try {\n this.emit(e.action, e);\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n }\n break;\n case \"cpu-load-change\":\n if (e && e.cpuLoadState) try {\n this.emit(e.action, e);\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n break;\n case \"active-speaker-change\":\n var c = e.activeSpeaker;\n if (this._activeSpeaker.peerId !== c.peerId) {\n this._activeSpeaker.peerId = c.peerId;\n try {\n this.emit(e.action, {\n action: e.action,\n activeSpeaker: this._activeSpeaker\n });\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n }\n break;\n case \"show-local-video-changed\":\n if (this._callObjectMode) return;\n var l = e.show;\n this._showLocalVideo = l;\n try {\n this.emit(e.action, {\n action: e.action,\n show: l\n });\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n break;\n case \"active-speaker-mode-change\":\n var u = e.enabled;\n if (this._activeSpeakerMode !== u) {\n this._activeSpeakerMode = u;\n try {\n this.emit(e.action, {\n action: e.action,\n enabled: this._activeSpeakerMode\n });\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n }\n break;\n case \"waiting-participant-added\":\n case \"waiting-participant-updated\":\n case \"waiting-participant-removed\":\n this._waitingParticipants = e.allWaitingParticipants;\n try {\n this.emit(e.action, {\n action: e.action,\n participant: e.participant\n });\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n break;\n case \"receive-settings-updated\":\n if (!W(this._receiveSettings, e.receiveSettings)) {\n this._receiveSettings = e.receiveSettings;\n try {\n this.emit(e.action, {\n action: e.action,\n receiveSettings: e.receiveSettings\n });\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n }\n break;\n case \"input-settings-updated\":\n if (!W(this._inputSettings, e.inputSettings)) {\n this._inputSettings = e.inputSettings, this._preloadCache.inputSettings = {};\n try {\n this.emit(e.action, {\n action: e.action,\n inputSettings: e.inputSettings\n });\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n }\n break;\n case \"remote-media-player-started\":\n var d = e.session_id;\n this._rmpPlayerState[d] = e.playerState, this.emitDailyJSEvent(e);\n break;\n case \"remote-media-player-stopped\":\n delete this._rmpPlayerState[e.session_id], this.emitDailyJSEvent(e);\n break;\n case \"remote-media-player-updated\":\n var h = e.session_id,\n p = this._rmpPlayerState[h];\n p && this.compareEqualForRMPUpdateEvent(p, e.remoteMediaPlayerState) || (this._rmpPlayerState[h] = e.remoteMediaPlayerState, this.emitDailyJSEvent(e));\n break;\n case \"custom-button-click\":\n this.emitDailyJSEvent(e);\n break;\n case \"meeting-session-state-updated\":\n var f = this._meetingSessionState.topology !== (e.meetingSessionState && e.meetingSessionState.topology);\n this._meetingSessionState = Os(e.meetingSessionState, this._callObjectMode), (this._callObjectMode || f) && this.emitDailyJSEvent(e);\n break;\n case \"recording-started\":\n case \"recording-stopped\":\n case \"recording-stats\":\n case \"recording-error\":\n case \"recording-upload-completed\":\n case \"transcription-started\":\n case \"transcription-stopped\":\n case \"transcription-error\":\n case \"started-camera\":\n case \"camera-error\":\n case \"app-message\":\n case \"local-screen-share-started\":\n case \"local-screen-share-stopped\":\n case \"network-connection\":\n case \"recording-data\":\n case \"live-streaming-started\":\n case \"live-streaming-updated\":\n case \"live-streaming-stopped\":\n case \"live-streaming-error\":\n case \"nonfatal-error\":\n case \"lang-updated\":\n try {\n this.emit(e.action, e);\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n break;\n case \"request-fullscreen\":\n this.requestFullscreen();\n break;\n case \"request-exit-fullscreen\":\n this.exitFullscreen();\n }\n }\n }, {\n key: \"maybeEventRecordingStopped\",\n value: function (e, t) {\n var r = \"record\";\n if (e && !t.local && !1 === t[r] && e[r] !== t[r]) try {\n this.emit(\"recording-stopped\", {\n action: \"recording-stopped\"\n });\n } catch (e) {\n console.log(\"could not emit\", e);\n }\n }\n }, {\n key: \"maybeEventRecordingStarted\",\n value: function (e, t) {\n var r = \"record\";\n if (e && !t.local && !0 === t[r] && e[r] !== t[r]) try {\n this.emit(\"recording-started\", {\n action: \"recording-started\"\n });\n } catch (e) {\n console.log(\"could not emit\", e);\n }\n }\n }, {\n key: \"maybeEventTrackStopped\",\n value: function (e, t, r, i) {\n if (e && (\"ended\" === e.readyState || !t || e.id !== t.id)) try {\n this.emit(\"track-stopped\", {\n action: \"track-stopped\",\n track: e,\n participant: r,\n type: i\n });\n } catch (e) {\n console.log(\"maybeEventTrackStopped: could not emit\", e);\n }\n }\n }, {\n key: \"maybeEventTrackStarted\",\n value: function (e, t, r, i) {\n if (t && (!e || \"ended\" === e.readyState || t.id !== e.id)) try {\n this.emit(\"track-started\", {\n action: \"track-started\",\n track: t,\n participant: r,\n type: i\n });\n } catch (e) {\n console.log(\"maybeEventTrackStarted: could not emit\", e);\n }\n }\n }, {\n key: \"maybeParticipantTracksStopped\",\n value: function (e, t) {\n if (e) for (var r in e.tracks) this.maybeEventTrackStopped(e.tracks[r].track, t && t.tracks[r] ? t.tracks[r].track : null, t, r);\n }\n }, {\n key: \"maybeParticipantTracksStarted\",\n value: function (e, t) {\n if (t) for (var r in t.tracks) this.maybeEventTrackStarted(e && e.tracks[r] ? e.tracks[r].track : null, t.tracks[r].track, t, r);\n }\n }, {\n key: \"compareEqualForRMPUpdateEvent\",\n value: function (e, t) {\n var r, i;\n return e.state === t.state && (null === (r = e.settings) || void 0 === r ? void 0 : r.volume) === (null === (i = t.settings) || void 0 === i ? void 0 : i.volume);\n }\n }, {\n key: \"emitDailyJSEvent\",\n value: function (e) {\n try {\n this.emit(e.action, e);\n } catch (t) {\n console.log(\"could not emit\", e, t);\n }\n }\n }, {\n key: \"compareEqualForParticipantUpdateEvent\",\n value: function (e, t) {\n return !!W(e, t) && (!e.videoTrack || !t.videoTrack || e.videoTrack.id === t.videoTrack.id && e.videoTrack.muted === t.videoTrack.muted && e.videoTrack.enabled === t.videoTrack.enabled) && (!e.audioTrack || !t.audioTrack || e.audioTrack.id === t.audioTrack.id && e.audioTrack.muted === t.audioTrack.muted && e.audioTrack.enabled === t.audioTrack.enabled);\n }\n }, {\n key: \"nativeUtils\",\n value: function () {\n return $t() ? \"undefined\" == typeof DailyNativeUtils ? (console.warn(\"in React Native, DailyNativeUtils is expected to be available\"), null) : DailyNativeUtils : null;\n }\n }, {\n key: \"updateIsPreparingToJoin\",\n value: function (e) {\n this._updateCallState(this._callState, e);\n }\n }, {\n key: \"_updateCallState\",\n value: function (e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this._isPreparingToJoin;\n if (e !== this._callState || t !== this._isPreparingToJoin) {\n var r = this._callState,\n i = this._isPreparingToJoin;\n this._callState = e, this._isPreparingToJoin = t;\n var n = this._isCallPendingOrOngoing(r, i),\n a = this._isCallPendingOrOngoing(this._callState, this._isPreparingToJoin);\n n !== a && (this.updateKeepDeviceAwake(a), this.updateDeviceAudioMode(a), this.updateShowAndroidOngoingMeetingNotification(a), this.updateNoOpRecordingEnsuringBackgroundContinuity(a));\n }\n }\n }, {\n key: \"resetMeetingDependentVars\",\n value: function () {\n this._participants = {}, this._participantCounts = os, this._waitingParticipants = {}, this._activeSpeaker = {}, this._activeSpeakerMode = !1, this._didPreAuth = !1, this._accessState = {\n access: ge\n }, this._meetingSessionState = Os(as, this._callObjectMode), this._receiveSettings = {}, this._inputSettings = {}, this._preloadCache;\n }\n }, {\n key: \"updateKeepDeviceAwake\",\n value: function (e) {\n $t() && this.nativeUtils().setKeepDeviceAwake(e, this._callFrameId);\n }\n }, {\n key: \"updateDeviceAudioMode\",\n value: function (e) {\n if ($t() && !this.disableReactNativeAutoDeviceManagement(\"audio\")) {\n var t = e ? this._nativeInCallAudioMode : \"idle\";\n this.nativeUtils().setAudioMode(t);\n }\n }\n }, {\n key: \"updateShowAndroidOngoingMeetingNotification\",\n value: function (e) {\n if ($t() && this.nativeUtils().setShowOngoingMeetingNotification) {\n var t, r, i, n;\n if (this.properties.reactNativeConfig && this.properties.reactNativeConfig.androidInCallNotification) {\n var a = this.properties.reactNativeConfig.androidInCallNotification;\n t = a.title, r = a.subtitle, i = a.iconName, n = a.disableForCustomOverride;\n }\n n && (e = !1), this.nativeUtils().setShowOngoingMeetingNotification(e, t, r, i, this._callFrameId);\n }\n }\n }, {\n key: \"updateNoOpRecordingEnsuringBackgroundContinuity\",\n value: function (e) {\n $t() && this.nativeUtils().enableNoOpRecordingEnsuringBackgroundContinuity && this.nativeUtils().enableNoOpRecordingEnsuringBackgroundContinuity(e);\n }\n }, {\n key: \"_isCallPendingOrOngoing\",\n value: function (e, t) {\n return [oe, se].includes(e) || t;\n }\n }, {\n key: \"toggleParticipantAudioBasedOnNativeAudioFocus\",\n value: function () {\n if ($t()) {\n var e = store.getState();\n for (var t in e.streams) {\n var r = e.streams[t];\n r && r.pendingTrack && \"audio\" === r.pendingTrack.kind && (r.pendingTrack.enabled = this._hasNativeAudioFocus);\n }\n }\n }\n }, {\n key: \"disableReactNativeAutoDeviceManagement\",\n value: function (e) {\n return this.properties.reactNativeConfig && this.properties.reactNativeConfig.disableAutoDeviceManagement && this.properties.reactNativeConfig.disableAutoDeviceManagement[e];\n }\n }, {\n key: \"absoluteUrl\",\n value: function (e) {\n if (void 0 !== e) {\n var t = document.createElement(\"a\");\n return t.href = e, t.href;\n }\n }\n }, {\n key: \"sayHello\",\n value: function () {\n var e = \"hello, world.\";\n return console.log(e), e;\n }\n }, {\n key: \"_logUseAfterDestroy\",\n value: function () {\n if (this.needsLoad()) {\n if (Ro && !Ro.needsLoad()) {\n var e = {\n action: \"transmit-log\",\n level: \"error\",\n code: this.strictMode ? 9995 : 9996\n };\n Ro.sendMessageToCallMachine(e);\n } else if (!this.strictMode) {\n console.error(\"You are attempting to use a call instance that was previously destroyed. This is unsupported and will not be allowed beginning in 0.43.0. Add `strictMode: true` to your call frame constructor properties to debug and catch the error now.\");\n }\n } else {\n var t = {\n action: \"transmit-log\",\n level: \"error\",\n code: this.strictMode ? 9995 : 9996\n };\n this._messageChannel.sendMessageToCallMachine(t, null, this._iframe, this._callFrameId);\n }\n }\n }, {\n key: \"_logDuplicateInstanceAttempt\",\n value: function () {\n if (Ro.needsLoad()) {\n if (!this.strictMode) {\n console.error(\"Duplicate call object instances detected. Please ensure the previous instance has been destroyed before creating a new one. This is unsupported and will result in unknown errors. This will not be allowed beginning in 0.43.0. Add `strictMode: true` to your call frame constructor properties to debug and catch the error now.\");\n }\n } else Ro.sendMessageToCallMachine({\n action: \"transmit-log\",\n level: \"error\",\n code: this.strictMode ? 9990 : 9991\n });\n }\n }]), n;\n})();\nexport { me as DAILY_ACCESS_LEVEL_FULL, ye as DAILY_ACCESS_LEVEL_LOBBY, be as DAILY_ACCESS_LEVEL_NONE, ge as DAILY_ACCESS_UNKNOWN, Ee as DAILY_CAMERA_ERROR_CAM_AND_MIC_IN_USE, Ae as DAILY_CAMERA_ERROR_CAM_IN_USE, Be as DAILY_CAMERA_ERROR_CONSTRAINTS, Fe as DAILY_CAMERA_ERROR_MIC_IN_USE, De as DAILY_CAMERA_ERROR_NOT_FOUND, Ie as DAILY_CAMERA_ERROR_PERMISSIONS, Le as DAILY_CAMERA_ERROR_UNDEF_MEDIADEVICES, Ne as DAILY_CAMERA_ERROR_UNKNOWN, et as DAILY_EVENT_ACCESS_STATE_UPDATED, Mt as DAILY_EVENT_ACTIVE_SPEAKER_CHANGE, Ct as DAILY_EVENT_ACTIVE_SPEAKER_MODE_CHANGE, yt as DAILY_EVENT_APP_MSG, We as DAILY_EVENT_CAMERA_ERROR, jt as DAILY_EVENT_CPU_LOAD_CHANGE, Rt as DAILY_EVENT_ERROR, At as DAILY_EVENT_EXIT_FULLSCREEN, Pt as DAILY_EVENT_FULLSCREEN, Re as DAILY_EVENT_IFRAME_LAUNCH_CONFIG, xe as DAILY_EVENT_IFRAME_READY_FOR_LAUNCH_CONFIG, Nt as DAILY_EVENT_INPUT_SETTINGS_UPDATED, He as DAILY_EVENT_JOINED_MEETING, Ge as DAILY_EVENT_JOINING_MEETING, Dt as DAILY_EVENT_LANG_UPDATED, Ke as DAILY_EVENT_LEFT_MEETING, Lt as DAILY_EVENT_LIVE_STREAMING_ERROR, Ft as DAILY_EVENT_LIVE_STREAMING_STARTED, It as DAILY_EVENT_LIVE_STREAMING_STOPPED, Et as DAILY_EVENT_LIVE_STREAMING_UPDATED, Je as DAILY_EVENT_LOADED, Ue as DAILY_EVENT_LOADING, ze as DAILY_EVENT_LOAD_ATTEMPT_FAILED, kt as DAILY_EVENT_LOCAL_SCREEN_SHARE_STARTED, St as DAILY_EVENT_LOCAL_SCREEN_SHARE_STOPPED, it as DAILY_EVENT_MEETING_SESSION_DATA_ERROR, rt as DAILY_EVENT_MEETING_SESSION_STATE_UPDATED, tt as DAILY_EVENT_MEETING_SESSION_UPDATED, Ot as DAILY_EVENT_NETWORK_CONNECTION, Tt as DAILY_EVENT_NETWORK_QUALITY_CHANGE, xt as DAILY_EVENT_NONFATAL_ERROR, Xe as DAILY_EVENT_PARTICIPANT_COUNTS_UPDATED, $e as DAILY_EVENT_PARTICIPANT_JOINED, Ze as DAILY_EVENT_PARTICIPANT_LEFT, Ye as DAILY_EVENT_PARTICIPANT_UPDATED, Bt as DAILY_EVENT_RECEIVE_SETTINGS_UPDATED, mt as DAILY_EVENT_RECORDING_DATA, vt as DAILY_EVENT_RECORDING_ERROR, ht as DAILY_EVENT_RECORDING_STARTED, ft as DAILY_EVENT_RECORDING_STATS, pt as DAILY_EVENT_RECORDING_STOPPED, gt as DAILY_EVENT_RECORDING_UPLOAD_COMPLETED, bt as DAILY_EVENT_REMOTE_MEDIA_PLAYER_STARTED, _t as DAILY_EVENT_REMOTE_MEDIA_PLAYER_STOPPED, wt as DAILY_EVENT_REMOTE_MEDIA_PLAYER_UPDATED, qe as DAILY_EVENT_STARTED_CAMERA, Ve as DAILY_EVENT_THEME_UPDATED, st as DAILY_EVENT_TRACK_STARTED, ct as DAILY_EVENT_TRACK_STOPPED, dt as DAILY_EVENT_TRANSCRIPTION_ERROR, lt as DAILY_EVENT_TRANSCRIPTION_STARTED, ut as DAILY_EVENT_TRANSCRIPTION_STOPPED, nt as DAILY_EVENT_WAITING_PARTICIPANT_ADDED, ot as DAILY_EVENT_WAITING_PARTICIPANT_REMOVED, at as DAILY_EVENT_WAITING_PARTICIPANT_UPDATED, ke as DAILY_FATAL_ERROR_EJECTED, je as DAILY_FATAL_ERROR_EOL, Ce as DAILY_FATAL_ERROR_EXP_ROOM, Te as DAILY_FATAL_ERROR_EXP_TOKEN, Oe as DAILY_FATAL_ERROR_MEETING_FULL, Se as DAILY_FATAL_ERROR_NBF_ROOM, Me as DAILY_FATAL_ERROR_NBF_TOKEN, Pe as DAILY_FATAL_ERROR_NOT_ALLOWED, _e as DAILY_RECEIVE_SETTINGS_ALL_PARTICIPANTS_KEY, we as DAILY_RECEIVE_SETTINGS_BASE_KEY, le as DAILY_STATE_ERROR, se as DAILY_STATE_JOINED, oe as DAILY_STATE_JOINING, ce as DAILY_STATE_LEFT, ne as DAILY_STATE_NEW, ue as DAILY_TRACK_STATE_BLOCKED, fe as DAILY_TRACK_STATE_INTERRUPTED, pe as DAILY_TRACK_STATE_LOADING, de as DAILY_TRACK_STATE_OFF, ve as DAILY_TRACK_STATE_PLAYABLE, he as DAILY_TRACK_STATE_SENDABLE };","(function (global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActionCable = {});\n})(this, function (exports) {\n \"use strict\";\n\n var adapters = {\n logger: self.console,\n WebSocket: self.WebSocket\n };\n var logger = {\n log: function log() {\n if (this.enabled) {\n var _adapters$logger;\n for (var _len = arguments.length, messages = Array(_len), _key = 0; _key < _len; _key++) {\n messages[_key] = arguments[_key];\n }\n messages.push(Date.now());\n (_adapters$logger = adapters.logger).log.apply(_adapters$logger, [\"[ActionCable]\"].concat(messages));\n }\n }\n };\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n var createClass = 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 Object.defineProperty(target, descriptor.key, descriptor);\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 var now = function now() {\n return new Date().getTime();\n };\n var secondsSince = function secondsSince(time) {\n return (now() - time) / 1e3;\n };\n var clamp = function clamp(number, min, max) {\n return Math.max(min, Math.min(max, number));\n };\n var ConnectionMonitor = function () {\n function ConnectionMonitor(connection) {\n classCallCheck(this, ConnectionMonitor);\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n ConnectionMonitor.prototype.start = function start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor started. pollInterval = \" + this.getPollInterval() + \" ms\");\n }\n };\n ConnectionMonitor.prototype.stop = function stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n };\n ConnectionMonitor.prototype.isRunning = function isRunning() {\n return this.startedAt && !this.stoppedAt;\n };\n ConnectionMonitor.prototype.recordPing = function recordPing() {\n this.pingedAt = now();\n };\n ConnectionMonitor.prototype.recordConnect = function recordConnect() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n };\n ConnectionMonitor.prototype.recordDisconnect = function recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n };\n ConnectionMonitor.prototype.startPolling = function startPolling() {\n this.stopPolling();\n this.poll();\n };\n ConnectionMonitor.prototype.stopPolling = function stopPolling() {\n clearTimeout(this.pollTimeout);\n };\n ConnectionMonitor.prototype.poll = function poll() {\n var _this = this;\n this.pollTimeout = setTimeout(function () {\n _this.reconnectIfStale();\n _this.poll();\n }, this.getPollInterval());\n };\n ConnectionMonitor.prototype.getPollInterval = function getPollInterval() {\n var _constructor$pollInte = this.constructor.pollInterval,\n min = _constructor$pollInte.min,\n max = _constructor$pollInte.max,\n multiplier = _constructor$pollInte.multiplier;\n var interval = multiplier * Math.log(this.reconnectAttempts + 1);\n return Math.round(clamp(interval, min, max) * 1e3);\n };\n ConnectionMonitor.prototype.reconnectIfStale = function reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(\"ConnectionMonitor detected stale connection. reconnectAttempts = \" + this.reconnectAttempts + \", pollInterval = \" + this.getPollInterval() + \" ms, time disconnected = \" + secondsSince(this.disconnectedAt) + \" s, stale threshold = \" + this.constructor.staleThreshold + \" s\");\n this.reconnectAttempts++;\n if (this.disconnectedRecently()) {\n logger.log(\"ConnectionMonitor skipping reopening recent disconnect\");\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n };\n ConnectionMonitor.prototype.connectionIsStale = function connectionIsStale() {\n return secondsSince(this.pingedAt ? this.pingedAt : this.startedAt) > this.constructor.staleThreshold;\n };\n ConnectionMonitor.prototype.disconnectedRecently = function disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n };\n ConnectionMonitor.prototype.visibilityDidChange = function visibilityDidChange() {\n var _this2 = this;\n if (document.visibilityState === \"visible\") {\n setTimeout(function () {\n if (_this2.connectionIsStale() || !_this2.connection.isOpen()) {\n logger.log(\"ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = \" + document.visibilityState);\n _this2.connection.reopen();\n }\n }, 200);\n }\n };\n return ConnectionMonitor;\n }();\n ConnectionMonitor.pollInterval = {\n min: 3,\n max: 30,\n multiplier: 5\n };\n ConnectionMonitor.staleThreshold = 6;\n var INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\"\n },\n default_mount_path: \"/cable\",\n protocols: [\"actioncable-v1-json\", \"actioncable-unsupported\"]\n };\n var message_types = INTERNAL.message_types,\n protocols = INTERNAL.protocols;\n var supportedProtocols = protocols.slice(0, protocols.length - 1);\n var indexOf = [].indexOf;\n var Connection = function () {\n function Connection(consumer) {\n classCallCheck(this, Connection);\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n Connection.prototype.send = function send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n };\n Connection.prototype.open = function open() {\n if (this.isActive()) {\n logger.log(\"Attempted to open WebSocket, but existing socket is \" + this.getState());\n return false;\n } else {\n logger.log(\"Opening WebSocket, current state is \" + this.getState() + \", subprotocols: \" + protocols);\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n };\n Connection.prototype.close = function close() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n allowReconnect: true\n },\n allowReconnect = _ref.allowReconnect;\n if (!allowReconnect) {\n this.monitor.stop();\n }\n if (this.isActive()) {\n return this.webSocket.close();\n }\n };\n Connection.prototype.reopen = function reopen() {\n logger.log(\"Reopening WebSocket, current state is \" + this.getState());\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(\"Reopening WebSocket in \" + this.constructor.reopenDelay + \"ms\");\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n };\n Connection.prototype.getProtocol = function getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n };\n Connection.prototype.isOpen = function isOpen() {\n return this.isState(\"open\");\n };\n Connection.prototype.isActive = function isActive() {\n return this.isState(\"open\", \"connecting\");\n };\n Connection.prototype.isProtocolSupported = function isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n };\n Connection.prototype.isState = function isState() {\n for (var _len = arguments.length, states = Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n return indexOf.call(states, this.getState()) >= 0;\n };\n Connection.prototype.getState = function getState() {\n if (this.webSocket) {\n for (var state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n return null;\n };\n Connection.prototype.installEventHandlers = function installEventHandlers() {\n for (var eventName in this.events) {\n var handler = this.events[eventName].bind(this);\n this.webSocket[\"on\" + eventName] = handler;\n }\n };\n Connection.prototype.uninstallEventHandlers = function uninstallEventHandlers() {\n for (var eventName in this.events) {\n this.webSocket[\"on\" + eventName] = function () {};\n }\n };\n return Connection;\n }();\n Connection.reopenDelay = 500;\n Connection.prototype.events = {\n message: function message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n var _JSON$parse = JSON.parse(event.data),\n identifier = _JSON$parse.identifier,\n message = _JSON$parse.message,\n reason = _JSON$parse.reason,\n reconnect = _JSON$parse.reconnect,\n type = _JSON$parse.type;\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n case message_types.disconnect:\n logger.log(\"Disconnecting. Reason: \" + reason);\n return this.close({\n allowReconnect: reconnect\n });\n case message_types.ping:\n return this.monitor.recordPing();\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier);\n return this.subscriptions.notify(identifier, \"connected\");\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open: function open() {\n logger.log(\"WebSocket onopen event, using '\" + this.getProtocol() + \"' subprotocol\");\n this.disconnected = false;\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close: function close(event) {\n logger.log(\"WebSocket onclose event\");\n if (this.disconnected) {\n return;\n }\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error: function error() {\n logger.log(\"WebSocket onerror event\");\n }\n };\n var extend = function extend(object, properties) {\n if (properties != null) {\n for (var key in properties) {\n var value = properties[key];\n object[key] = value;\n }\n }\n return object;\n };\n var Subscription = function () {\n function Subscription(consumer) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var mixin = arguments[2];\n classCallCheck(this, Subscription);\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n Subscription.prototype.perform = function perform(action) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n data.action = action;\n return this.send(data);\n };\n Subscription.prototype.send = function send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n };\n Subscription.prototype.unsubscribe = function unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n };\n return Subscription;\n }();\n var SubscriptionGuarantor = function () {\n function SubscriptionGuarantor(subscriptions) {\n classCallCheck(this, SubscriptionGuarantor);\n this.subscriptions = subscriptions;\n this.pendingSubscriptions = [];\n }\n SubscriptionGuarantor.prototype.guarantee = function guarantee(subscription) {\n if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n logger.log(\"SubscriptionGuarantor guaranteeing \" + subscription.identifier);\n this.pendingSubscriptions.push(subscription);\n } else {\n logger.log(\"SubscriptionGuarantor already guaranteeing \" + subscription.identifier);\n }\n this.startGuaranteeing();\n };\n SubscriptionGuarantor.prototype.forget = function forget(subscription) {\n logger.log(\"SubscriptionGuarantor forgetting \" + subscription.identifier);\n this.pendingSubscriptions = this.pendingSubscriptions.filter(function (s) {\n return s !== subscription;\n });\n };\n SubscriptionGuarantor.prototype.startGuaranteeing = function startGuaranteeing() {\n this.stopGuaranteeing();\n this.retrySubscribing();\n };\n SubscriptionGuarantor.prototype.stopGuaranteeing = function stopGuaranteeing() {\n clearTimeout(this.retryTimeout);\n };\n SubscriptionGuarantor.prototype.retrySubscribing = function retrySubscribing() {\n var _this = this;\n this.retryTimeout = setTimeout(function () {\n if (_this.subscriptions && typeof _this.subscriptions.subscribe === \"function\") {\n _this.pendingSubscriptions.map(function (subscription) {\n logger.log(\"SubscriptionGuarantor resubscribing \" + subscription.identifier);\n _this.subscriptions.subscribe(subscription);\n });\n }\n }, 500);\n };\n return SubscriptionGuarantor;\n }();\n var Subscriptions = function () {\n function Subscriptions(consumer) {\n classCallCheck(this, Subscriptions);\n this.consumer = consumer;\n this.guarantor = new SubscriptionGuarantor(this);\n this.subscriptions = [];\n }\n Subscriptions.prototype.create = function create(channelName, mixin) {\n var channel = channelName;\n var params = (typeof channel === \"undefined\" ? \"undefined\" : _typeof(channel)) === \"object\" ? channel : {\n channel: channel\n };\n var subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n };\n Subscriptions.prototype.add = function add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.subscribe(subscription);\n return subscription;\n };\n Subscriptions.prototype.remove = function remove(subscription) {\n this.forget(subscription);\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n return subscription;\n };\n Subscriptions.prototype.reject = function reject(identifier) {\n var _this = this;\n return this.findAll(identifier).map(function (subscription) {\n _this.forget(subscription);\n _this.notify(subscription, \"rejected\");\n return subscription;\n });\n };\n Subscriptions.prototype.forget = function forget(subscription) {\n this.guarantor.forget(subscription);\n this.subscriptions = this.subscriptions.filter(function (s) {\n return s !== subscription;\n });\n return subscription;\n };\n Subscriptions.prototype.findAll = function findAll(identifier) {\n return this.subscriptions.filter(function (s) {\n return s.identifier === identifier;\n });\n };\n Subscriptions.prototype.reload = function reload() {\n var _this2 = this;\n return this.subscriptions.map(function (subscription) {\n return _this2.subscribe(subscription);\n });\n };\n Subscriptions.prototype.notifyAll = function notifyAll(callbackName) {\n var _this3 = this;\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return this.subscriptions.map(function (subscription) {\n return _this3.notify.apply(_this3, [subscription, callbackName].concat(args));\n });\n };\n Subscriptions.prototype.notify = function notify(subscription, callbackName) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n var subscriptions = void 0;\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [subscription];\n }\n return subscriptions.map(function (subscription) {\n return typeof subscription[callbackName] === \"function\" ? subscription[callbackName].apply(subscription, args) : undefined;\n });\n };\n Subscriptions.prototype.subscribe = function subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription);\n }\n };\n Subscriptions.prototype.confirmSubscription = function confirmSubscription(identifier) {\n var _this4 = this;\n logger.log(\"Subscription confirmed \" + identifier);\n this.findAll(identifier).map(function (subscription) {\n return _this4.guarantor.forget(subscription);\n });\n };\n Subscriptions.prototype.sendCommand = function sendCommand(subscription, command) {\n var identifier = subscription.identifier;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n };\n return Subscriptions;\n }();\n var Consumer = function () {\n function Consumer(url) {\n classCallCheck(this, Consumer);\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n }\n Consumer.prototype.send = function send(data) {\n return this.connection.send(data);\n };\n Consumer.prototype.connect = function connect() {\n return this.connection.open();\n };\n Consumer.prototype.disconnect = function disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n };\n Consumer.prototype.ensureActiveConnection = function ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n };\n createClass(Consumer, [{\n key: \"url\",\n get: function get$$1() {\n return createWebSocketURL(this._url);\n }\n }]);\n return Consumer;\n }();\n function createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n if (url && !/^wss?:/i.test(url)) {\n var a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n }\n function createConsumer() {\n var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getConfig(\"url\") || INTERNAL.default_mount_path;\n return new Consumer(url);\n }\n function getConfig(name) {\n var element = document.head.querySelector(\"meta[name='action-cable-\" + name + \"']\");\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n exports.Connection = Connection;\n exports.ConnectionMonitor = ConnectionMonitor;\n exports.Consumer = Consumer;\n exports.INTERNAL = INTERNAL;\n exports.Subscription = Subscription;\n exports.Subscriptions = Subscriptions;\n exports.SubscriptionGuarantor = SubscriptionGuarantor;\n exports.adapters = adapters;\n exports.createWebSocketURL = createWebSocketURL;\n exports.logger = logger;\n exports.createConsumer = createConsumer;\n exports.getConfig = getConfig;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","(function (global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n function md5blk(s) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n function md5blk_array(a) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function rhex(n) {\n var s = \"\",\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n return s;\n }\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join(\"\");\n }\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n return Math.min(val, length);\n }\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n if (to !== undefined) {\n end = clamp(to, length);\n }\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n return str;\n }\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n return returnUInt8Array ? arr : buff;\n }\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n return String.fromCharCode.apply(String, bytes);\n }\n function SparkMD5() {\n this.reset();\n }\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n });\n });\n var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n var createClass = 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 Object.defineProperty(target, descriptor.key, descriptor);\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 var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n }\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n return event;\n }\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n var id = 0;\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n return object[methodName].apply(object, messages);\n }\n }\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n _this.dispatch(\"end\");\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var controllers = this.createDirectUploadControllers();\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n _this.dispatch(\"end\");\n }\n };\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n function didClick(event) {\n var target = event.target;\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n submitButtonsByForm.delete(form);\n }\n function disable(input) {\n input.disabled = true;\n }\n function enable(input) {\n input.disabled = false;\n }\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n expando = '_ujsData';\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function (event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n }\n return result;\n };\n }\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n prepareOptions = function (options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n createXHR = function (options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n processResponse = function (response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n Rails.href = function (element) {\n return element.href;\n };\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n toArray = function (e) {\n return Array.prototype.slice.call(e);\n };\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n allowAction = function (element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n Rails.enableElement = function (e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n disableLinkElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n enableLinkElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n disableFormElements = function (form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n disableFormElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n enableFormElements = function (form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n enableFormElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n isXhrRedirect = function (event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n isRemote = function (element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function (xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","/*!\n * @license Copyright 2015-2022 Ably Real-time Ltd (ably.com)\n * \n * Ably JavaScript Library v1.2.36\n * https://github.com/ably/ably-js\n * \n * Released under the Apache Licence v2.0\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory();else if (typeof define === 'function' && define.amd) define([], factory);else if (typeof exports === 'object') exports[\"Ably\"] = factory();else root[\"Ably\"] = factory();\n})(window, function () {\n return (/******/function (modules) {\n // webpackBootstrap\n /******/ // The module cache\n /******/\n var installedModules = {};\n /******/\n /******/ // The require function\n /******/\n function __webpack_require__(moduleId) {\n /******/\n /******/ // Check if module is in cache\n /******/if (installedModules[moduleId]) {\n /******/return installedModules[moduleId].exports;\n /******/\n }\n /******/ // Create a new module (and put it into the cache)\n /******/\n var module = installedModules[moduleId] = {\n /******/i: moduleId,\n /******/l: false,\n /******/exports: {}\n /******/\n };\n /******/\n /******/ // Execute the module function\n /******/\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n /******/ // Flag the module as loaded\n /******/\n module.l = true;\n /******/\n /******/ // Return the exports of the module\n /******/\n return module.exports;\n /******/\n }\n /******/\n /******/\n /******/ // expose the modules object (__webpack_modules__)\n /******/\n __webpack_require__.m = modules;\n /******/\n /******/ // expose the module cache\n /******/\n __webpack_require__.c = installedModules;\n /******/\n /******/ // define getter function for harmony exports\n /******/\n __webpack_require__.d = function (exports, name, getter) {\n /******/if (!__webpack_require__.o(exports, name)) {\n /******/Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n };\n /******/\n /******/ // define __esModule on exports\n /******/\n __webpack_require__.r = function (exports) {\n /******/if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n /******/ // create a fake namespace object\n /******/ // mode & 1: value is a module id, require it\n /******/ // mode & 2: merge all properties of value into the ns\n /******/ // mode & 4: return value when already ns object\n /******/ // mode & 8|1: behave like require\n /******/\n __webpack_require__.t = function (value, mode) {\n /******/if (mode & 1) value = __webpack_require__(value);\n /******/\n if (mode & 8) return value;\n /******/\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n var ns = Object.create(null);\n /******/\n __webpack_require__.r(ns);\n /******/\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n return ns;\n /******/\n };\n /******/\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/\n __webpack_require__.n = function (module) {\n /******/var getter = module && module.__esModule ? /******/function getDefault() {\n return module['default'];\n } : /******/function getModuleExports() {\n return module;\n };\n /******/\n __webpack_require__.d(getter, 'a', getter);\n /******/\n return getter;\n /******/\n };\n /******/\n /******/ // Object.prototype.hasOwnProperty.call\n /******/\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n /******/ // __webpack_public_path__\n /******/\n __webpack_require__.p = \"\";\n /******/\n /******/\n /******/ // Load entry module and return exports\n /******/\n return __webpack_require__(__webpack_require__.s = 42);\n /******/\n }\n /************************************************************************/\n /******/([/* 0 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var Platform = /** @class */function () {\n function Platform() {}\n return Platform;\n }();\n exports.default = Platform;\n\n /***/\n }, /* 1 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__extends\", function () {\n return __extends;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__assign\", function () {\n return __assign;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__rest\", function () {\n return __rest;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__decorate\", function () {\n return __decorate;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__param\", function () {\n return __param;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__metadata\", function () {\n return __metadata;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__awaiter\", function () {\n return __awaiter;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__generator\", function () {\n return __generator;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__createBinding\", function () {\n return __createBinding;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__exportStar\", function () {\n return __exportStar;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__values\", function () {\n return __values;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__read\", function () {\n return __read;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__spread\", function () {\n return __spread;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__spreadArrays\", function () {\n return __spreadArrays;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__spreadArray\", function () {\n return __spreadArray;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__await\", function () {\n return __await;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__asyncGenerator\", function () {\n return __asyncGenerator;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__asyncDelegator\", function () {\n return __asyncDelegator;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__asyncValues\", function () {\n return __asyncValues;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__makeTemplateObject\", function () {\n return __makeTemplateObject;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__importStar\", function () {\n return __importStar;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__importDefault\", function () {\n return __importDefault;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldGet\", function () {\n return __classPrivateFieldGet;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldSet\", function () {\n return __classPrivateFieldSet;\n });\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n \r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n \r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\n /* global Reflect, Promise */\n\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n }\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n }\n function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n }\n function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n }\n function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n }\n function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n }\n function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n }\n var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function () {\n return m[k];\n }\n });\n } : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n };\n function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n }\n function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n }\n\n /** @deprecated */\n function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n }\n\n /** @deprecated */\n function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n }\n function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n }\n function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n }\n function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n function fulfill(value) {\n resume(\"next\", value);\n }\n function reject(value) {\n resume(\"throw\", value);\n }\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n }\n function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n }\n function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n }\n function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n return cooked;\n }\n ;\n var __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n } : function (o, v) {\n o[\"default\"] = v;\n };\n function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n }\n function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n }\n function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n }\n function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n }\n\n /***/\n }, /* 2 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n /* WEBPACK VAR INJECTION */\n (function (global) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.allToUpperCase = exports.allToLowerCase = exports.encodeBody = exports.decodeBody = exports.Format = exports.promisify = exports.trim = exports.arrChooseN = exports.randomHexString = exports.randomString = exports.cheapRandStr = exports.dataSizeBytes = exports.inspectBody = exports.inspectError = exports.isErrorInfo = exports.now = exports.parseQueryString = exports.toQueryString = exports.arrPopRandomElement = exports.defaultPostHeaders = exports.defaultGetHeaders = exports.allSame = exports.arrEvery = exports.arrFilter = exports.arrMap = exports.safeArrForEach = exports.arrForEach = exports.forInOwnNonNullProperties = exports.valuesArray = exports.keysArray = exports.arrWithoutValue = exports.arrDeleteValue = exports.arrIn = exports.arrIndexOf = exports.arrSubtract = exports.arrIntersectOb = exports.arrIntersect = exports.intersect = exports.containsValue = exports.inherits = exports.prototypicalClone = exports.shallowClone = exports.isEmptyArg = exports.isOnlyPropIn = exports.isEmpty = exports.isObject = exports.ensureArray = exports.isArray = exports.copy = exports.mixin = void 0;\n exports.shallowEquals = exports.getGlobalObject = exports.getJitterCoefficient = exports.getBackoffCoefficient = void 0;\n var tslib_1 = __webpack_require__(1);\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n var defaults_1 = tslib_1.__importStar(__webpack_require__(8));\n function randomPosn(arrOrStr) {\n return Math.floor(Math.random() * arrOrStr.length);\n }\n /*\n * Add a set of properties to a target object\n * target: the target object\n * props: an object whose enumerable properties are\n * added, by reference only\n */\n function mixin(target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n for (var i = 0; i < args.length; i++) {\n var source = args[i];\n if (!source) {\n break;\n }\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n for (var key in source) {\n if (!hasOwnProperty || hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }\n exports.mixin = mixin;\n /*\n * Add a set of properties to a target object\n * target: the target object\n * props: an object whose enumerable properties are\n * added, by reference only\n */\n function copy(src) {\n return mixin({}, src);\n }\n exports.copy = copy;\n /*\n * Determine whether or not a given object is\n * an array.\n */\n exports.isArray = Array.isArray || function (value) {\n return Object.prototype.toString.call(value) == '[object Array]';\n };\n /*\n * Ensures that an Array object is always returned\n * returning the original Array of obj is an Array\n * else wrapping the obj in a single element Array\n */\n function ensureArray(obj) {\n if (isEmptyArg(obj)) {\n return [];\n }\n if ((0, exports.isArray)(obj)) {\n return obj;\n }\n return [obj];\n }\n exports.ensureArray = ensureArray;\n function isObject(ob) {\n return Object.prototype.toString.call(ob) == '[object Object]';\n }\n exports.isObject = isObject;\n /*\n * Determine whether or not an object contains\n * any enumerable properties.\n * ob: the object\n */\n function isEmpty(ob) {\n for (var prop in ob) return false;\n return true;\n }\n exports.isEmpty = isEmpty;\n function isOnlyPropIn(ob, property) {\n for (var prop in ob) {\n if (prop !== property) {\n return false;\n }\n }\n return true;\n }\n exports.isOnlyPropIn = isOnlyPropIn;\n /*\n * Determine whether or not an argument to an overloaded function is\n * undefined (missing) or null.\n * This method is useful when constructing functions such as (WebIDL terminology):\n * off([TreatUndefinedAs=Null] DOMString? event)\n * as you can then confirm the argument using:\n * Utils.isEmptyArg(event)\n */\n function isEmptyArg(arg) {\n return arg === null || arg === undefined;\n }\n exports.isEmptyArg = isEmptyArg;\n /*\n * Perform a simple shallow clone of an object.\n * Result is an object irrespective of whether\n * the input is an object or array. All\n * enumerable properties are copied.\n * ob: the object\n */\n function shallowClone(ob) {\n var result = new Object();\n for (var prop in ob) result[prop] = ob[prop];\n return result;\n }\n exports.shallowClone = shallowClone;\n /*\n * Clone an object by creating a new object with the\n * given object as its prototype. Optionally\n * a set of additional own properties can be\n * supplied to be added to the newly created clone.\n * ob: the object to be cloned\n * ownProperties: optional object with additional\n * properties to add\n */\n function prototypicalClone(ob, ownProperties) {\n var F = /** @class */function () {\n function F() {}\n return F;\n }();\n F.prototype = ob;\n var result = new F();\n if (ownProperties) mixin(result, ownProperties);\n return result;\n }\n exports.prototypicalClone = prototypicalClone;\n /*\n * Declare a constructor to represent a subclass\n * of another constructor\n * If platform has a built-in version we use that from Platform, else we\n * define here (so can make use of other Utils fns)\n * See node.js util.inherits\n */\n var inherits = function (ctor, superCtor) {\n if (platform_1.default.Config.inherits) {\n platform_1.default.Config.inherits(ctor, superCtor);\n return;\n }\n ctor.super_ = superCtor;\n ctor.prototype = prototypicalClone(superCtor.prototype, {\n constructor: ctor\n });\n };\n exports.inherits = inherits;\n /*\n * Determine whether or not an object has an enumerable\n * property whose value equals a given value.\n * ob: the object\n * val: the value to find\n */\n function containsValue(ob, val) {\n for (var i in ob) {\n if (ob[i] == val) return true;\n }\n return false;\n }\n exports.containsValue = containsValue;\n function intersect(arr, ob) {\n return (0, exports.isArray)(ob) ? arrIntersect(arr, ob) : arrIntersectOb(arr, ob);\n }\n exports.intersect = intersect;\n function arrIntersect(arr1, arr2) {\n var result = [];\n for (var i = 0; i < arr1.length; i++) {\n var member = arr1[i];\n if ((0, exports.arrIndexOf)(arr2, member) != -1) result.push(member);\n }\n return result;\n }\n exports.arrIntersect = arrIntersect;\n function arrIntersectOb(arr, ob) {\n var result = [];\n for (var i = 0; i < arr.length; i++) {\n var member = arr[i];\n if (member in ob) result.push(member);\n }\n return result;\n }\n exports.arrIntersectOb = arrIntersectOb;\n function arrSubtract(arr1, arr2) {\n var result = [];\n for (var i = 0; i < arr1.length; i++) {\n var element = arr1[i];\n if ((0, exports.arrIndexOf)(arr2, element) == -1) result.push(element);\n }\n return result;\n }\n exports.arrSubtract = arrSubtract;\n exports.arrIndexOf = Array.prototype.indexOf ? function (arr, elem, fromIndex) {\n return arr.indexOf(elem, fromIndex);\n } : function (arr, elem, fromIndex) {\n fromIndex = fromIndex || 0;\n var len = arr.length;\n for (; fromIndex < len; fromIndex++) {\n if (arr[fromIndex] === elem) {\n return fromIndex;\n }\n }\n return -1;\n };\n function arrIn(arr, val) {\n return (0, exports.arrIndexOf)(arr, val) !== -1;\n }\n exports.arrIn = arrIn;\n function arrDeleteValue(arr, val) {\n var idx = (0, exports.arrIndexOf)(arr, val);\n var res = idx != -1;\n if (res) arr.splice(idx, 1);\n return res;\n }\n exports.arrDeleteValue = arrDeleteValue;\n function arrWithoutValue(arr, val) {\n var newArr = arr.slice();\n arrDeleteValue(newArr, val);\n return newArr;\n }\n exports.arrWithoutValue = arrWithoutValue;\n /*\n * Construct an array of the keys of the enumerable\n * properties of a given object, optionally limited\n * to only the own properties.\n * ob: the object\n * ownOnly: boolean, get own properties only\n */\n function keysArray(ob, ownOnly) {\n var result = [];\n for (var prop in ob) {\n if (ownOnly && !Object.prototype.hasOwnProperty.call(ob, prop)) continue;\n result.push(prop);\n }\n return result;\n }\n exports.keysArray = keysArray;\n /*\n * Construct an array of the values of the enumerable\n * properties of a given object, optionally limited\n * to only the own properties.\n * ob: the object\n * ownOnly: boolean, get own properties only\n */\n function valuesArray(ob, ownOnly) {\n var result = [];\n for (var prop in ob) {\n if (ownOnly && !Object.prototype.hasOwnProperty.call(ob, prop)) continue;\n result.push(ob[prop]);\n }\n return result;\n }\n exports.valuesArray = valuesArray;\n function forInOwnNonNullProperties(ob, fn) {\n for (var prop in ob) {\n if (Object.prototype.hasOwnProperty.call(ob, prop) && ob[prop]) {\n fn(prop);\n }\n }\n }\n exports.forInOwnNonNullProperties = forInOwnNonNullProperties;\n exports.arrForEach = Array.prototype.forEach ? function (arr, fn) {\n arr.forEach(fn);\n } : function (arr, fn) {\n var len = arr.length;\n for (var i = 0; i < len; i++) {\n fn(arr[i], i, arr);\n }\n };\n /* Useful when the function may mutate the array */\n function safeArrForEach(arr, fn) {\n return (0, exports.arrForEach)(arr.slice(), fn);\n }\n exports.safeArrForEach = safeArrForEach;\n exports.arrMap = Array.prototype.map ? function (arr, fn) {\n return arr.map(fn);\n } : function (arr, fn) {\n var result = [];\n var len = arr.length;\n for (var i = 0; i < len; i++) {\n result.push(fn(arr[i], i, arr));\n }\n return result;\n };\n exports.arrFilter = Array.prototype.filter ? function (arr, fn) {\n return arr.filter(fn);\n } : function (arr, fn) {\n var result = [],\n len = arr.length;\n for (var i = 0; i < len; i++) {\n if (fn(arr[i])) {\n result.push(arr[i]);\n }\n }\n return result;\n };\n exports.arrEvery = Array.prototype.every ? function (arr, fn) {\n return arr.every(fn);\n } : function (arr, fn) {\n var len = arr.length;\n for (var i = 0; i < len; i++) {\n if (!fn(arr[i], i, arr)) {\n return false;\n }\n }\n return true;\n };\n function allSame(arr, prop) {\n if (arr.length === 0) {\n return true;\n }\n var first = arr[0][prop];\n return (0, exports.arrEvery)(arr, function (item) {\n return item[prop] === first;\n });\n }\n exports.allSame = allSame;\n var contentTypes = {\n json: 'application/json',\n jsonp: 'application/javascript',\n xml: 'application/xml',\n html: 'text/html',\n msgpack: 'application/x-msgpack'\n };\n function defaultGetHeaders(options, format) {\n var accept = contentTypes[format || Format.json];\n return {\n accept: accept,\n 'X-Ably-Version': defaults_1.default.apiVersion,\n 'Ably-Agent': (0, defaults_1.getAgentString)(options)\n };\n }\n exports.defaultGetHeaders = defaultGetHeaders;\n function defaultPostHeaders(options, format) {\n var contentType;\n var accept = contentType = contentTypes[format || Format.json];\n return {\n accept: accept,\n 'content-type': contentType,\n 'X-Ably-Version': defaults_1.default.apiVersion,\n 'Ably-Agent': (0, defaults_1.getAgentString)(options)\n };\n }\n exports.defaultPostHeaders = defaultPostHeaders;\n function arrPopRandomElement(arr) {\n return arr.splice(randomPosn(arr), 1)[0];\n }\n exports.arrPopRandomElement = arrPopRandomElement;\n function toQueryString(params) {\n var parts = [];\n if (params) {\n for (var key in params) parts.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key]));\n }\n return parts.length ? '?' + parts.join('&') : '';\n }\n exports.toQueryString = toQueryString;\n function parseQueryString(query) {\n var match;\n var search = /([^?&=]+)=?([^&]*)/g;\n var result = {};\n while (match = search.exec(query)) result[decodeURIComponent(match[1])] = decodeURIComponent(match[2]);\n return result;\n }\n exports.parseQueryString = parseQueryString;\n exports.now = Date.now || function () {\n /* IE 8 */\n return new Date().getTime();\n };\n function isErrorInfo(err) {\n return typeof err == 'object' && err !== null && err.constructor.name == 'ErrorInfo';\n }\n exports.isErrorInfo = isErrorInfo;\n function inspectError(err) {\n var _a;\n if (err instanceof Error || ((_a = err === null || err === void 0 ? void 0 : err.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ErrorInfo') return platform_1.default.Config.inspect(err);\n return err.toString();\n }\n exports.inspectError = inspectError;\n function inspectBody(body) {\n if (platform_1.default.BufferUtils.isBuffer(body)) {\n return body.toString();\n } else if (typeof body === 'string') {\n return body;\n } else {\n return platform_1.default.Config.inspect(body);\n }\n }\n exports.inspectBody = inspectBody;\n /* Data is assumed to be either a string or a buffer. */\n function dataSizeBytes(data) {\n if (platform_1.default.BufferUtils.isBuffer(data)) {\n return platform_1.default.BufferUtils.byteLength(data);\n }\n if (typeof data === 'string') {\n return platform_1.default.Config.stringByteSize(data);\n }\n throw new Error('Expected input of Utils.dataSizeBytes to be a buffer or string, but was: ' + typeof data);\n }\n exports.dataSizeBytes = dataSizeBytes;\n function cheapRandStr() {\n return String(Math.random()).substr(2);\n }\n exports.cheapRandStr = cheapRandStr;\n /* Takes param the minimum number of bytes of entropy the string must\n * include, not the length of the string. String length produced is not\n * guaranteed. */\n var randomString = function (numBytes) {\n if (platform_1.default.Config.getRandomValues && typeof Uint8Array !== 'undefined') {\n var uIntArr = new Uint8Array(numBytes);\n platform_1.default.Config.getRandomValues(uIntArr);\n return platform_1.default.BufferUtils.base64Encode(uIntArr);\n }\n /* Old browser; fall back to Math.random. Could just use a\n * CryptoJS version of the above, but want this to still work in nocrypto\n * versions of the library */\n var charset = platform_1.default.BufferUtils.base64CharSet;\n /* base64 has 33% overhead; round length up */\n var length = Math.round(numBytes * 4 / 3);\n var result = '';\n for (var i = 0; i < length; i++) {\n result += charset[randomPosn(charset)];\n }\n return result;\n };\n exports.randomString = randomString;\n var randomHexString = function (numBytes) {\n if (platform_1.default.Config.getRandomValues && typeof Uint8Array !== 'undefined') {\n var uIntArr = new Uint8Array(numBytes);\n platform_1.default.Config.getRandomValues(uIntArr);\n return platform_1.default.BufferUtils.hexEncode(uIntArr);\n }\n var charset = platform_1.default.BufferUtils.hexCharSet;\n var length = numBytes * 2;\n var result = '';\n for (var i = 0; i < length; i++) {\n result += charset[randomPosn(charset)];\n }\n return result;\n };\n exports.randomHexString = randomHexString;\n /* Pick n elements at random without replacement from an array */\n function arrChooseN(arr, n) {\n var numItems = Math.min(n, arr.length),\n mutableArr = arr.slice(),\n result = [];\n for (var i = 0; i < numItems; i++) {\n result.push(arrPopRandomElement(mutableArr));\n }\n return result;\n }\n exports.arrChooseN = arrChooseN;\n exports.trim = String.prototype.trim ? function (str) {\n return str.trim();\n } : function (str) {\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n };\n function promisify(ob, fnName, args) {\n return new Promise(function (resolve, reject) {\n ob[fnName].apply(ob, tslib_1.__spreadArray(tslib_1.__spreadArray([], args, false), [function (err, res) {\n err ? reject(err) : resolve(res);\n }], false));\n });\n }\n exports.promisify = promisify;\n var Format;\n (function (Format) {\n Format[\"msgpack\"] = \"msgpack\";\n Format[\"json\"] = \"json\";\n })(Format = exports.Format || (exports.Format = {}));\n function decodeBody(body, format) {\n return format == 'msgpack' ? platform_1.default.Config.msgpack.decode(body) : JSON.parse(String(body));\n }\n exports.decodeBody = decodeBody;\n function encodeBody(body, format) {\n return format == 'msgpack' ? platform_1.default.Config.msgpack.encode(body, true) : JSON.stringify(body);\n }\n exports.encodeBody = encodeBody;\n function allToLowerCase(arr) {\n return arr.map(function (element) {\n return element && element.toLowerCase();\n });\n }\n exports.allToLowerCase = allToLowerCase;\n function allToUpperCase(arr) {\n return arr.map(function (element) {\n return element && element.toUpperCase();\n });\n }\n exports.allToUpperCase = allToUpperCase;\n function getBackoffCoefficient(n) {\n return Math.min((n + 2) / 3, 2);\n }\n exports.getBackoffCoefficient = getBackoffCoefficient;\n function getJitterCoefficient() {\n return 1 - Math.random() * 0.2;\n }\n exports.getJitterCoefficient = getJitterCoefficient;\n function getGlobalObject() {\n if (global) {\n return global;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n return self;\n }\n exports.getGlobalObject = getGlobalObject;\n function shallowEquals(source, target) {\n return Object.keys(source).every(function (key) {\n return source[key] === target[key];\n }) && Object.keys(target).every(function (key) {\n return target[key] === source[key];\n });\n }\n exports.shallowEquals = shallowEquals;\n\n /* WEBPACK VAR INJECTION */\n }).call(this, __webpack_require__(12));\n\n /***/\n }, /* 3 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n /* WEBPACK VAR INJECTION */\n (function (global) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n // Workaround for salesforce lightning locker compatibility\n // This is a shorthand version of Utils.getGlobalObject (which we can't use here without creating a circular import)\n var globalObject = global || (typeof window !== 'undefined' ? window : self);\n var LogLevels;\n (function (LogLevels) {\n LogLevels[LogLevels[\"None\"] = 0] = \"None\";\n LogLevels[LogLevels[\"Error\"] = 1] = \"Error\";\n LogLevels[LogLevels[\"Major\"] = 2] = \"Major\";\n LogLevels[LogLevels[\"Minor\"] = 3] = \"Minor\";\n LogLevels[LogLevels[\"Micro\"] = 4] = \"Micro\";\n })(LogLevels || (LogLevels = {}));\n function pad(timeSegment, three) {\n return \"\".concat(timeSegment).padStart(three ? 3 : 2, '0');\n }\n function getHandler(logger) {\n return platform_1.default.Config.logTimestamps ? function (msg) {\n var time = new Date();\n logger(pad(time.getHours()) + ':' + pad(time.getMinutes()) + ':' + pad(time.getSeconds()) + '.' + pad(time.getMilliseconds(), 1) + ' ' + msg);\n } : logger;\n }\n var getDefaultLoggers = function () {\n var _a, _b;\n var consoleLogger;\n var errorLogger;\n /* Can't just check for console && console.log; fails in IE <=9 */\n if (typeof Window === 'undefined' && typeof WorkerGlobalScope === 'undefined' /* node */ || typeof ((_b = (_a = globalObject === null || globalObject === void 0 ? void 0 : globalObject.console) === null || _a === void 0 ? void 0 : _a.log) === null || _b === void 0 ? void 0 : _b.apply) === 'function' /* sensible browsers */) {\n consoleLogger = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n console.log.apply(console, args);\n };\n errorLogger = console.warn ? function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n console.warn.apply(console, args);\n } : consoleLogger;\n } else if (globalObject === null || globalObject === void 0 ? void 0 : globalObject.console.log) {\n /* IE <= 9 with the console open -- console.log does not\n * inherit from Function, so has no apply method */\n consoleLogger = errorLogger = function () {\n Function.prototype.apply.call(console.log, console, arguments);\n };\n } else {\n /* IE <= 9 when dev tools are closed - window.console not even defined */\n consoleLogger = errorLogger = function () {};\n }\n return [consoleLogger, errorLogger].map(getHandler);\n };\n var Logger = /** @class */function () {\n function Logger() {\n Logger.logLevel = Logger.LOG_DEFAULT;\n }\n Logger.initLogHandlers = function () {\n var _a = getDefaultLoggers(),\n logHandler = _a[0],\n logErrorHandler = _a[1];\n this.logHandler = logHandler;\n this.logErrorHandler = logErrorHandler;\n };\n Logger.logLevel = LogLevels.Error; // default logLevel\n // public constants\n Logger.LOG_NONE = LogLevels.None;\n Logger.LOG_ERROR = LogLevels.Error;\n Logger.LOG_MAJOR = LogLevels.Major;\n Logger.LOG_MINOR = LogLevels.Minor;\n Logger.LOG_MICRO = LogLevels.Micro;\n // aliases\n Logger.LOG_DEFAULT = LogLevels.Error;\n Logger.LOG_DEBUG = LogLevels.Micro;\n /* public static functions */\n Logger.logAction = function (level, action, message) {\n if (Logger.shouldLog(level)) {\n (level === LogLevels.Error ? Logger.logErrorHandler : Logger.logHandler)('Ably: ' + action + ': ' + message);\n }\n };\n Logger.deprecated = function (original, replacement) {\n Logger.deprecatedWithMsg(original, \"Please use '\" + replacement + \"' instead.\");\n };\n Logger.deprecatedWithMsg = function (funcName, msg) {\n if (Logger.shouldLog(LogLevels.Error)) {\n Logger.logErrorHandler(\"Ably: Deprecation warning - '\" + funcName + \"' is deprecated and will be removed from a future version. \" + msg);\n }\n };\n /* Where a logging operation is expensive, such as serialisation of data, use shouldLog will prevent\n the object being serialised if the log level will not output the message */\n Logger.shouldLog = function (level) {\n return level <= Logger.logLevel;\n };\n Logger.setLog = function (level, handler) {\n if (level !== undefined) Logger.logLevel = level;\n if (handler !== undefined) Logger.logHandler = Logger.logErrorHandler = handler;\n };\n return Logger;\n }();\n exports.default = Logger;\n\n /* WEBPACK VAR INJECTION */\n }).call(this, __webpack_require__(12));\n\n /***/\n }, /* 4 */\n /***/function (module, exports, __webpack_require__) {\n ;\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(6));\n } else {}\n })(this, function (CryptoJS) {\n (function () {\n // Check if typed arrays are supported\n if (typeof ArrayBuffer != 'function') {\n return;\n }\n\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n\n // Reference original init\n var superInit = WordArray.init;\n\n // Augment WordArray.init to handle typed arrays\n var subInit = WordArray.init = function (typedArray) {\n // Convert buffers to uint8\n if (typedArray instanceof ArrayBuffer) {\n typedArray = new Uint8Array(typedArray);\n }\n\n // Convert other array views to uint8\n if (typedArray instanceof Int8Array || typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray || typedArray instanceof Int16Array || typedArray instanceof Uint16Array || typedArray instanceof Int32Array || typedArray instanceof Uint32Array || typedArray instanceof Float32Array || typedArray instanceof Float64Array) {\n typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n }\n\n // Handle Uint8Array\n if (typedArray instanceof Uint8Array) {\n // Shortcut\n var typedArrayByteLength = typedArray.byteLength;\n\n // Extract bytes\n var words = [];\n for (var i = 0; i < typedArrayByteLength; i++) {\n words[i >>> 2] |= typedArray[i] << 24 - i % 4 * 8;\n }\n\n // Initialize this word array\n superInit.call(this, words, typedArrayByteLength);\n } else {\n // Else call normal init\n superInit.apply(this, arguments);\n }\n };\n subInit.prototype = WordArray;\n })();\n return CryptoJS.lib.WordArray;\n });\n\n /***/\n }, /* 5 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var ErrorInfo = /** @class */function () {\n function ErrorInfo(message, code, statusCode, cause) {\n this.message = message;\n this.code = code;\n this.statusCode = statusCode;\n this.cause = cause;\n }\n ErrorInfo.prototype.toString = function () {\n var result = '[' + this.constructor.name;\n if (this.message) result += ': ' + this.message;\n if (this.statusCode) result += '; statusCode=' + this.statusCode;\n if (this.code) result += '; code=' + this.code;\n if (this.cause) result += '; cause=' + Utils.inspectError(this.cause);\n if (this.href && !(this.message && this.message.indexOf('help.ably.io') > -1)) result += '; see ' + this.href + ' ';\n result += ']';\n return result;\n };\n ErrorInfo.fromValues = function (values) {\n var _a = values,\n message = _a.message,\n code = _a.code,\n statusCode = _a.statusCode;\n if (typeof message !== 'string' || typeof code !== 'number' || typeof statusCode !== 'number') {\n throw new Error('ErrorInfo.fromValues(): invalid values: ' + platform_1.default.Config.inspect(values));\n }\n var result = Object.assign(new ErrorInfo(message, code, statusCode), values);\n if (result.code && !result.href) {\n result.href = 'https://help.ably.io/error/' + result.code;\n }\n return result;\n };\n return ErrorInfo;\n }();\n exports.default = ErrorInfo;\n\n /***/\n }, /* 6 */\n /***/function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */(function (global) {\n ;\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory();\n } else {}\n })(this, function () {\n /*globals window, global, require*/\n\n /**\n * CryptoJS core components.\n */\n var CryptoJS = CryptoJS || function (Math, undefined) {\n var crypto;\n\n // Native crypto from window (Browser)\n if (typeof window !== 'undefined' && window.crypto) {\n crypto = window.crypto;\n }\n\n // Native (experimental IE 11) crypto from window (Browser)\n if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n crypto = window.msCrypto;\n }\n\n // Native crypto from global (NodeJS)\n if (!crypto && typeof global !== 'undefined' && global.crypto) {\n crypto = global.crypto;\n }\n\n // Native crypto import via require (NodeJS)\n if (!crypto && \"function\" === 'function') {\n try {\n crypto = __webpack_require__(45);\n } catch (err) {}\n }\n\n /*\n * Cryptographically secure pseudorandom number generator\n *\n * As Math.random() is cryptographically not safe to use\n */\n var cryptoSecureRandomInt = function () {\n if (crypto) {\n // Use getRandomValues method (Browser)\n if (typeof crypto.getRandomValues === 'function') {\n try {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n } catch (err) {}\n }\n\n // Use randomBytes method (NodeJS)\n if (typeof crypto.randomBytes === 'function') {\n try {\n return crypto.randomBytes(4).readInt32LE();\n } catch (err) {}\n }\n }\n throw new Error('Native crypto module could not be used to get secure random number.');\n };\n\n /*\n * Local polyfill of Object.create\n */\n var create = Object.create || function () {\n function F() {}\n return function (obj) {\n var subtype;\n F.prototype = obj;\n subtype = new F();\n F.prototype = null;\n return subtype;\n };\n }();\n\n /**\n * CryptoJS namespace.\n */\n var C = {};\n\n /**\n * Library namespace.\n */\n var C_lib = C.lib = {};\n\n /**\n * Base object for prototypal inheritance.\n */\n var Base = C_lib.Base = function () {\n return {\n /**\n * Creates a new object that inherits from this object.\n *\n * @param {Object} overrides Properties to copy into the new object.\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * field: 'value',\n *\n * method: function () {\n * }\n * });\n */\n extend: function (overrides) {\n // Spawn\n var subtype = create(this);\n\n // Augment\n if (overrides) {\n subtype.mixIn(overrides);\n }\n\n // Create default initializer\n if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n subtype.init = function () {\n subtype.$super.init.apply(this, arguments);\n };\n }\n\n // Initializer's prototype is the subtype object\n subtype.init.prototype = subtype;\n\n // Reference supertype\n subtype.$super = this;\n return subtype;\n },\n /**\n * Extends this object and runs the init method.\n * Arguments to create() will be passed to init().\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var instance = MyType.create();\n */\n create: function () {\n var instance = this.extend();\n instance.init.apply(instance, arguments);\n return instance;\n },\n /**\n * Initializes a newly created object.\n * Override this method to add some logic when your objects are created.\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * init: function () {\n * // ...\n * }\n * });\n */\n init: function () {},\n /**\n * Copies properties into this object.\n *\n * @param {Object} properties The properties to mix in.\n *\n * @example\n *\n * MyType.mixIn({\n * field: 'value'\n * });\n */\n mixIn: function (properties) {\n for (var propertyName in properties) {\n if (properties.hasOwnProperty(propertyName)) {\n this[propertyName] = properties[propertyName];\n }\n }\n\n // IE won't copy toString using the loop above\n if (properties.hasOwnProperty('toString')) {\n this.toString = properties.toString;\n }\n },\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = instance.clone();\n */\n clone: function () {\n return this.init.prototype.extend(this);\n }\n };\n }();\n\n /**\n * An array of 32-bit words.\n *\n * @property {Array} words The array of 32-bit words.\n * @property {number} sigBytes The number of significant bytes in this word array.\n */\n var WordArray = C_lib.WordArray = Base.extend({\n /**\n * Initializes a newly created word array.\n *\n * @param {Array} words (Optional) An array of 32-bit words.\n * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.create();\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n */\n init: function (words, sigBytes) {\n words = this.words = words || [];\n if (sigBytes != undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 4;\n }\n },\n /**\n * Converts this word array to a string.\n *\n * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n *\n * @return {string} The stringified word array.\n *\n * @example\n *\n * var string = wordArray + '';\n * var string = wordArray.toString();\n * var string = wordArray.toString(CryptoJS.enc.Utf8);\n */\n toString: function (encoder) {\n return (encoder || Hex).stringify(this);\n },\n /**\n * Concatenates a word array to this word array.\n *\n * @param {WordArray} wordArray The word array to append.\n *\n * @return {WordArray} This word array.\n *\n * @example\n *\n * wordArray1.concat(wordArray2);\n */\n concat: function (wordArray) {\n // Shortcuts\n var thisWords = this.words;\n var thatWords = wordArray.words;\n var thisSigBytes = this.sigBytes;\n var thatSigBytes = wordArray.sigBytes;\n\n // Clamp excess bits\n this.clamp();\n\n // Concat\n if (thisSigBytes % 4) {\n // Copy one byte at a time\n for (var i = 0; i < thatSigBytes; i++) {\n var thatByte = thatWords[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n thisWords[thisSigBytes + i >>> 2] |= thatByte << 24 - (thisSigBytes + i) % 4 * 8;\n }\n } else {\n // Copy one word at a time\n for (var i = 0; i < thatSigBytes; i += 4) {\n thisWords[thisSigBytes + i >>> 2] = thatWords[i >>> 2];\n }\n }\n this.sigBytes += thatSigBytes;\n\n // Chainable\n return this;\n },\n /**\n * Removes insignificant bits.\n *\n * @example\n *\n * wordArray.clamp();\n */\n clamp: function () {\n // Shortcuts\n var words = this.words;\n var sigBytes = this.sigBytes;\n\n // Clamp\n words[sigBytes >>> 2] &= 0xffffffff << 32 - sigBytes % 4 * 8;\n words.length = Math.ceil(sigBytes / 4);\n },\n /**\n * Creates a copy of this word array.\n *\n * @return {WordArray} The clone.\n *\n * @example\n *\n * var clone = wordArray.clone();\n */\n clone: function () {\n var clone = Base.clone.call(this);\n clone.words = this.words.slice(0);\n return clone;\n },\n /**\n * Creates a word array filled with random bytes.\n *\n * @param {number} nBytes The number of random bytes to generate.\n *\n * @return {WordArray} The random word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.random(16);\n */\n random: function (nBytes) {\n var words = [];\n for (var i = 0; i < nBytes; i += 4) {\n words.push(cryptoSecureRandomInt());\n }\n return new WordArray.init(words, nBytes);\n }\n });\n\n /**\n * Encoder namespace.\n */\n var C_enc = C.enc = {};\n\n /**\n * Hex encoding strategy.\n */\n var Hex = C_enc.Hex = {\n /**\n * Converts a word array to a hex string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The hex string.\n *\n * @static\n *\n * @example\n *\n * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n */\n stringify: function (wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n\n // Convert\n var hexChars = [];\n for (var i = 0; i < sigBytes; i++) {\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n return hexChars.join('');\n },\n /**\n * Converts a hex string to a word array.\n *\n * @param {string} hexStr The hex string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n */\n parse: function (hexStr) {\n // Shortcut\n var hexStrLength = hexStr.length;\n\n // Convert\n var words = [];\n for (var i = 0; i < hexStrLength; i += 2) {\n words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << 24 - i % 8 * 4;\n }\n return new WordArray.init(words, hexStrLength / 2);\n }\n };\n\n /**\n * Latin1 encoding strategy.\n */\n var Latin1 = C_enc.Latin1 = {\n /**\n * Converts a word array to a Latin1 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Latin1 string.\n *\n * @static\n *\n * @example\n *\n * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n */\n stringify: function (wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n\n // Convert\n var latin1Chars = [];\n for (var i = 0; i < sigBytes; i++) {\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n latin1Chars.push(String.fromCharCode(bite));\n }\n return latin1Chars.join('');\n },\n /**\n * Converts a Latin1 string to a word array.\n *\n * @param {string} latin1Str The Latin1 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n */\n parse: function (latin1Str) {\n // Shortcut\n var latin1StrLength = latin1Str.length;\n\n // Convert\n var words = [];\n for (var i = 0; i < latin1StrLength; i++) {\n words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << 24 - i % 4 * 8;\n }\n return new WordArray.init(words, latin1StrLength);\n }\n };\n\n /**\n * UTF-8 encoding strategy.\n */\n var Utf8 = C_enc.Utf8 = {\n /**\n * Converts a word array to a UTF-8 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-8 string.\n *\n * @static\n *\n * @example\n *\n * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n */\n stringify: function (wordArray) {\n try {\n return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n } catch (e) {\n throw new Error('Malformed UTF-8 data');\n }\n },\n /**\n * Converts a UTF-8 string to a word array.\n *\n * @param {string} utf8Str The UTF-8 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n */\n parse: function (utf8Str) {\n return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n }\n };\n\n /**\n * Abstract buffered block algorithm template.\n *\n * The property blockSize must be implemented in a concrete subtype.\n *\n * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n */\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n /**\n * Resets this block algorithm's data buffer to its initial state.\n *\n * @example\n *\n * bufferedBlockAlgorithm.reset();\n */\n reset: function () {\n // Initial values\n this._data = new WordArray.init();\n this._nDataBytes = 0;\n },\n /**\n * Adds new data to this block algorithm's buffer.\n *\n * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n *\n * @example\n *\n * bufferedBlockAlgorithm._append('data');\n * bufferedBlockAlgorithm._append(wordArray);\n */\n _append: function (data) {\n // Convert string to WordArray, else assume WordArray already\n if (typeof data == 'string') {\n data = Utf8.parse(data);\n }\n\n // Append\n this._data.concat(data);\n this._nDataBytes += data.sigBytes;\n },\n /**\n * Processes available data blocks.\n *\n * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n *\n * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n *\n * @return {WordArray} The processed data.\n *\n * @example\n *\n * var processedData = bufferedBlockAlgorithm._process();\n * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n */\n _process: function (doFlush) {\n var processedWords;\n\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var dataSigBytes = data.sigBytes;\n var blockSize = this.blockSize;\n var blockSizeBytes = blockSize * 4;\n\n // Count blocks ready\n var nBlocksReady = dataSigBytes / blockSizeBytes;\n if (doFlush) {\n // Round up to include partial blocks\n nBlocksReady = Math.ceil(nBlocksReady);\n } else {\n // Round down to include only full blocks,\n // less the number of blocks that must remain in the buffer\n nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n }\n\n // Count words ready\n var nWordsReady = nBlocksReady * blockSize;\n\n // Count bytes ready\n var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n // Process blocks\n if (nWordsReady) {\n for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n // Perform concrete-algorithm logic\n this._doProcessBlock(dataWords, offset);\n }\n\n // Remove processed words\n processedWords = dataWords.splice(0, nWordsReady);\n data.sigBytes -= nBytesReady;\n }\n\n // Return processed words\n return new WordArray.init(processedWords, nBytesReady);\n },\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = bufferedBlockAlgorithm.clone();\n */\n clone: function () {\n var clone = Base.clone.call(this);\n clone._data = this._data.clone();\n return clone;\n },\n _minBufferSize: 0\n });\n\n /**\n * Abstract hasher template.\n *\n * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n */\n var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n */\n cfg: Base.extend(),\n /**\n * Initializes a newly created hasher.\n *\n * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n *\n * @example\n *\n * var hasher = CryptoJS.algo.SHA256.create();\n */\n init: function (cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg);\n\n // Set initial values\n this.reset();\n },\n /**\n * Resets this hasher to its initial state.\n *\n * @example\n *\n * hasher.reset();\n */\n reset: function () {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this);\n\n // Perform concrete-hasher logic\n this._doReset();\n },\n /**\n * Updates this hasher with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {Hasher} This hasher.\n *\n * @example\n *\n * hasher.update('message');\n * hasher.update(wordArray);\n */\n update: function (messageUpdate) {\n // Append\n this._append(messageUpdate);\n\n // Update the hash\n this._process();\n\n // Chainable\n return this;\n },\n /**\n * Finalizes the hash computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The hash.\n *\n * @example\n *\n * var hash = hasher.finalize();\n * var hash = hasher.finalize('message');\n * var hash = hasher.finalize(wordArray);\n */\n finalize: function (messageUpdate) {\n // Final message update\n if (messageUpdate) {\n this._append(messageUpdate);\n }\n\n // Perform concrete-hasher logic\n var hash = this._doFinalize();\n return hash;\n },\n blockSize: 512 / 32,\n /**\n * Creates a shortcut function to a hasher's object interface.\n *\n * @param {Hasher} hasher The hasher to create a helper for.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n */\n _createHelper: function (hasher) {\n return function (message, cfg) {\n return new hasher.init(cfg).finalize(message);\n };\n },\n /**\n * Creates a shortcut function to the HMAC's object interface.\n *\n * @param {Hasher} hasher The hasher to use in this HMAC helper.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n */\n _createHmacHelper: function (hasher) {\n return function (message, key) {\n return new C_algo.HMAC.init(hasher, key).finalize(message);\n };\n }\n });\n\n /**\n * Algorithm namespace.\n */\n var C_algo = C.algo = {};\n return C;\n }(Math);\n return CryptoJS;\n });\n /* WEBPACK VAR INJECTION */\n }).call(this, __webpack_require__(12));\n\n /***/\n }, /* 7 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n /* Call the listener, catch any exceptions and log, but continue operation*/\n function callListener(eventThis, listener, args) {\n try {\n listener.apply(eventThis, args);\n } catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'EventEmitter.emit()', 'Unexpected listener exception: ' + e + '; stack = ' + (e && e.stack));\n }\n }\n /**\n * Remove listeners that match listener\n * @param targetListeners is an array of listener arrays or event objects with arrays of listeners\n * @param listener the listener callback to remove\n * @param eventFilter (optional) event name instructing the function to only remove listeners for the specified event\n */\n function removeListener(targetListeners, listener, eventFilter) {\n var listeners;\n var index;\n var eventName;\n for (var targetListenersIndex = 0; targetListenersIndex < targetListeners.length; targetListenersIndex++) {\n listeners = targetListeners[targetListenersIndex];\n if (eventFilter) {\n listeners = listeners[eventFilter];\n }\n if (Utils.isArray(listeners)) {\n while ((index = Utils.arrIndexOf(listeners, listener)) !== -1) {\n listeners.splice(index, 1);\n }\n /* If events object has an event name key with no listeners then\n remove the key to stop the list growing indefinitely */\n if (eventFilter && listeners.length === 0) {\n delete targetListeners[targetListenersIndex][eventFilter];\n }\n } else if (Utils.isObject(listeners)) {\n /* events */\n for (eventName in listeners) {\n if (Object.prototype.hasOwnProperty.call(listeners, eventName) && Utils.isArray(listeners[eventName])) {\n removeListener([listeners], listener, eventName);\n }\n }\n }\n }\n }\n var EventEmitter = /** @class */function () {\n function EventEmitter() {\n this.any = [];\n this.events = Object.create(null);\n this.anyOnce = [];\n this.eventsOnce = Object.create(null);\n }\n EventEmitter.prototype.on = function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length === 1) {\n var listener = args[0];\n if (typeof listener === 'function') {\n this.any.push(listener);\n } else {\n throw new Error('EventListener.on(): Invalid arguments: ' + platform_1.default.Config.inspect(args));\n }\n }\n if (args.length === 2) {\n var event_1 = args[0],\n listener_1 = args[1];\n if (typeof listener_1 !== 'function') {\n throw new Error('EventListener.on(): Invalid arguments: ' + platform_1.default.Config.inspect(args));\n }\n if (Utils.isEmptyArg(event_1)) {\n this.any.push(listener_1);\n } else if (Utils.isArray(event_1)) {\n event_1.forEach(function (eventName) {\n _this.on(eventName, listener_1);\n });\n } else {\n if (typeof event_1 !== 'string') {\n throw new Error('EventListener.on(): Invalid arguments: ' + platform_1.default.Config.inspect(args));\n }\n var listeners = this.events[event_1] || (this.events[event_1] = []);\n listeners.push(listener_1);\n }\n }\n };\n EventEmitter.prototype.off = function () {\n var _a;\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length == 0 || Utils.isEmptyArg(args[0]) && Utils.isEmptyArg(args[1])) {\n this.any = [];\n this.events = Object.create(null);\n this.anyOnce = [];\n this.eventsOnce = Object.create(null);\n return;\n }\n var firstArg = args[0],\n secondArg = args[1];\n var listener = null;\n var event = null;\n if (args.length === 1 || !secondArg) {\n if (typeof firstArg === 'function') {\n /* we take this to be the listener and treat the event as \"any\" .. */\n listener = firstArg;\n } else {\n event = firstArg;\n }\n /* ... or we take event to be the actual event name and listener to be all */\n } else {\n if (typeof secondArg !== 'function') {\n throw new Error('EventEmitter.off(): invalid arguments:' + platform_1.default.Config.inspect(args));\n }\n _a = [firstArg, secondArg], event = _a[0], listener = _a[1];\n }\n if (listener && Utils.isEmptyArg(event)) {\n removeListener([this.any, this.events, this.anyOnce, this.eventsOnce], listener);\n return;\n }\n if (Utils.isArray(event)) {\n event.forEach(function (eventName) {\n _this.off(eventName, listener);\n });\n return;\n }\n /* \"normal\" case where event is an actual event */\n if (typeof event !== 'string') {\n throw new Error('EventEmitter.off(): invalid arguments:' + platform_1.default.Config.inspect(args));\n }\n if (listener) {\n removeListener([this.events, this.eventsOnce], listener, event);\n } else {\n delete this.events[event];\n delete this.eventsOnce[event];\n }\n };\n /**\n * Get the array of listeners for a given event; excludes once events\n * @param event (optional) the name of the event, or none for 'any'\n * @return array of events, or null if none\n */\n EventEmitter.prototype.listeners = function (event) {\n if (event) {\n var listeners = this.events[event] || [];\n if (this.eventsOnce[event]) Array.prototype.push.apply(listeners, this.eventsOnce[event]);\n return listeners.length ? listeners : null;\n }\n return this.any.length ? this.any : null;\n };\n /**\n * Emit an event\n * @param event the event name\n * @param args the arguments to pass to the listener\n */\n EventEmitter.prototype.emit = function (event) {\n var args = []; /* , args... */\n for (var _i = 1 /* , args... */; _i < arguments.length /* , args... */; _i++ /* , args... */) {\n args[_i - 1] = arguments[_i]; /* , args... */\n }\n\n var eventThis = {\n event: event\n };\n var listeners = [];\n if (this.anyOnce.length) {\n Array.prototype.push.apply(listeners, this.anyOnce);\n this.anyOnce = [];\n }\n if (this.any.length) {\n Array.prototype.push.apply(listeners, this.any);\n }\n var eventsOnceListeners = this.eventsOnce[event];\n if (eventsOnceListeners) {\n Array.prototype.push.apply(listeners, eventsOnceListeners);\n delete this.eventsOnce[event];\n }\n var eventsListeners = this.events[event];\n if (eventsListeners) {\n Array.prototype.push.apply(listeners, eventsListeners);\n }\n Utils.arrForEach(listeners, function (listener) {\n callListener(eventThis, listener, args);\n });\n };\n EventEmitter.prototype.once = function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var argCount = args.length;\n if ((argCount === 0 || argCount === 1 && typeof args[0] !== 'function') && platform_1.default.Config.Promise) {\n var event_2 = args[0];\n return new platform_1.default.Config.Promise(function (resolve) {\n _this.once(event_2, resolve);\n });\n }\n var firstArg = args[0],\n secondArg = args[1];\n if (args.length === 1 && typeof firstArg === 'function') {\n this.anyOnce.push(firstArg);\n } else if (Utils.isEmptyArg(firstArg)) {\n if (typeof secondArg !== 'function') {\n throw new Error('EventEmitter.once(): Invalid arguments:' + platform_1.default.Config.inspect(args));\n }\n this.anyOnce.push(secondArg);\n } else if (Utils.isArray(firstArg)) {\n var self_1 = this;\n var listenerWrapper_1 = function () {\n var innerArgs = Array.prototype.slice.call(arguments);\n Utils.arrForEach(firstArg, function (eventName) {\n self_1.off(eventName, listenerWrapper_1);\n });\n if (typeof secondArg !== 'function') {\n throw new Error('EventEmitter.once(): Invalid arguments:' + platform_1.default.Config.inspect(args));\n }\n secondArg.apply(this, innerArgs);\n };\n Utils.arrForEach(firstArg, function (eventName) {\n self_1.on(eventName, listenerWrapper_1);\n });\n } else {\n if (typeof firstArg !== 'string') {\n throw new Error('EventEmitter.once(): Invalid arguments:' + platform_1.default.Config.inspect(args));\n }\n var listeners = this.eventsOnce[firstArg] || (this.eventsOnce[firstArg] = []);\n if (secondArg) {\n if (typeof secondArg !== 'function') {\n throw new Error('EventEmitter.once(): Invalid arguments:' + platform_1.default.Config.inspect(args));\n }\n listeners.push(secondArg);\n }\n }\n };\n /**\n * Private API\n *\n * Listen for a single occurrence of a state event and fire immediately if currentState matches targetState\n * @param targetState the name of the state event to listen to\n * @param currentState the name of the current state of this object\n * @param listener the listener to be called\n * @param listenerArgs\n */\n EventEmitter.prototype.whenState = function (targetState, currentState, listener) {\n var _this = this;\n var listenerArgs = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n listenerArgs[_i - 3] = arguments[_i];\n }\n var eventThis = {\n event: targetState\n };\n if (typeof targetState !== 'string' || typeof currentState !== 'string') {\n throw 'whenState requires a valid event String argument';\n }\n if (typeof listener !== 'function' && platform_1.default.Config.Promise) {\n return new platform_1.default.Config.Promise(function (resolve) {\n EventEmitter.prototype.whenState.apply(_this, [targetState, currentState, resolve].concat(listenerArgs));\n });\n }\n if (targetState === currentState) {\n callListener(eventThis, listener, listenerArgs);\n } else {\n this.once(targetState, listener);\n }\n };\n return EventEmitter;\n }();\n exports.default = EventEmitter;\n\n /***/\n }, /* 8 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.getDefaults = exports.normaliseOptions = exports.objectifyOptions = exports.getAgentString = exports.getHosts = exports.getFallbackHosts = exports.environmentFallbackHosts = exports.getHttpScheme = exports.getPort = exports.getHost = void 0;\n var tslib_1 = __webpack_require__(1);\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var package_json_1 = __webpack_require__(43);\n var agent = 'ably-js/' + package_json_1.version;\n var Defaults = {\n ENVIRONMENT: '',\n REST_HOST: 'rest.ably.io',\n REALTIME_HOST: 'realtime.ably.io',\n FALLBACK_HOSTS: ['A.ably-realtime.com', 'B.ably-realtime.com', 'C.ably-realtime.com', 'D.ably-realtime.com', 'E.ably-realtime.com'],\n PORT: 80,\n TLS_PORT: 443,\n TIMEOUTS: {\n /* Documented as options params: */\n disconnectedRetryTimeout: 15000,\n suspendedRetryTimeout: 30000,\n /* Undocumented, but part of the api and can be used by customers: */\n httpRequestTimeout: 15000,\n channelRetryTimeout: 15000,\n fallbackRetryTimeout: 600000,\n /* For internal / test use only: */\n connectionStateTtl: 120000,\n realtimeRequestTimeout: 10000,\n recvTimeout: 90000,\n preferenceConnectTimeout: 6000,\n parallelUpgradeDelay: 6000\n },\n httpMaxRetryCount: 3,\n maxMessageSize: 65536,\n version: package_json_1.version,\n apiVersion: '2',\n agent: agent,\n getHost: getHost,\n getPort: getPort,\n getHttpScheme: getHttpScheme,\n environmentFallbackHosts: environmentFallbackHosts,\n getFallbackHosts: getFallbackHosts,\n getHosts: getHosts,\n checkHost: checkHost,\n objectifyOptions: objectifyOptions,\n normaliseOptions: normaliseOptions\n };\n function getHost(options, host, ws) {\n if (ws) host = host == options.restHost && options.realtimeHost || host || options.realtimeHost;else host = host || options.restHost;\n return host;\n }\n exports.getHost = getHost;\n function getPort(options, tls) {\n return tls || options.tls ? options.tlsPort : options.port;\n }\n exports.getPort = getPort;\n function getHttpScheme(options) {\n return options.tls ? 'https://' : 'http://';\n }\n exports.getHttpScheme = getHttpScheme;\n // construct environment fallback hosts as per RSC15i\n function environmentFallbackHosts(environment) {\n return [environment + '-a-fallback.ably-realtime.com', environment + '-b-fallback.ably-realtime.com', environment + '-c-fallback.ably-realtime.com', environment + '-d-fallback.ably-realtime.com', environment + '-e-fallback.ably-realtime.com'];\n }\n exports.environmentFallbackHosts = environmentFallbackHosts;\n function getFallbackHosts(options) {\n var fallbackHosts = options.fallbackHosts,\n httpMaxRetryCount = typeof options.httpMaxRetryCount !== 'undefined' ? options.httpMaxRetryCount : Defaults.httpMaxRetryCount;\n return fallbackHosts ? Utils.arrChooseN(fallbackHosts, httpMaxRetryCount) : [];\n }\n exports.getFallbackHosts = getFallbackHosts;\n function getHosts(options) {\n return [options.restHost].concat(getFallbackHosts(options));\n }\n exports.getHosts = getHosts;\n function checkHost(host) {\n if (typeof host !== 'string') {\n throw new errorinfo_1.default('host must be a string; was a ' + typeof host, 40000, 400);\n }\n if (!host.length) {\n throw new errorinfo_1.default('host must not be zero-length', 40000, 400);\n }\n }\n function getRealtimeHost(options, production, environment) {\n if (options.realtimeHost) return options.realtimeHost;\n /* prefer setting realtimeHost to restHost as a custom restHost typically indicates\n * a development environment is being used that can't be inferred by the library */\n if (options.restHost) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Defaults.normaliseOptions', 'restHost is set to \"' + options.restHost + '\" but realtimeHost is not set, so setting realtimeHost to \"' + options.restHost + '\" too. If this is not what you want, please set realtimeHost explicitly.');\n return options.restHost;\n }\n return production ? Defaults.REALTIME_HOST : environment + '-' + Defaults.REALTIME_HOST;\n }\n function getTimeouts(options) {\n /* Allow values passed in options to override default timeouts */\n var timeouts = {};\n for (var prop in Defaults.TIMEOUTS) {\n timeouts[prop] = options[prop] || Defaults.TIMEOUTS[prop];\n }\n return timeouts;\n }\n function getAgentString(options) {\n var agentStr = Defaults.agent;\n if (options.agents) {\n for (var agent in options.agents) {\n agentStr += ' ' + agent + '/' + options.agents[agent];\n }\n }\n return agentStr;\n }\n exports.getAgentString = getAgentString;\n function objectifyOptions(options) {\n if (typeof options == 'string') {\n return options.indexOf(':') == -1 ? {\n token: options\n } : {\n key: options\n };\n }\n return options;\n }\n exports.objectifyOptions = objectifyOptions;\n function normaliseOptions(options) {\n /* Deprecated options */\n if (options.host) {\n logger_1.default.deprecated('host', 'restHost');\n options.restHost = options.host;\n }\n if (options.wsHost) {\n logger_1.default.deprecated('wsHost', 'realtimeHost');\n options.realtimeHost = options.wsHost;\n }\n if (options.queueEvents) {\n logger_1.default.deprecated('queueEvents', 'queueMessages');\n options.queueMessages = options.queueEvents;\n }\n if (options.fallbackHostsUseDefault) {\n /* fallbackHostsUseDefault and fallbackHosts are mutually exclusive as per TO3k7 */\n if (options.fallbackHosts) {\n var msg = 'fallbackHosts and fallbackHostsUseDefault cannot both be set';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Defaults.normaliseOptions', msg);\n throw new errorinfo_1.default(msg, 40000, 400);\n }\n /* default fallbacks can't be used with custom ports */\n if (options.port || options.tlsPort) {\n var msg = 'fallbackHostsUseDefault cannot be set when port or tlsPort are set';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Defaults.normaliseOptions', msg);\n throw new errorinfo_1.default(msg, 40000, 400);\n }\n /* emit an appropriate deprecation warning */\n if (options.environment) {\n logger_1.default.deprecatedWithMsg('fallbackHostsUseDefault', 'There is no longer a need to set this when the environment option is also set since the library will now generate the correct fallback hosts using the environment option.');\n } else {\n logger_1.default.deprecated('fallbackHostsUseDefault', 'fallbackHosts: Ably.Defaults.FALLBACK_HOSTS');\n }\n /* use the default fallback hosts as requested */\n options.fallbackHosts = Defaults.FALLBACK_HOSTS;\n }\n /* options.recover as a boolean is deprecated, and therefore is not part of the public typing */\n if (options.recover === true) {\n logger_1.default.deprecated('{recover: true}', '{recover: function(lastConnectionDetails, cb) { cb(true); }}');\n options.recover = function (lastConnectionDetails, cb) {\n cb(true);\n };\n }\n if (typeof options.recover === 'function' && options.closeOnUnload === true) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Defaults.normaliseOptions', 'closeOnUnload was true and a session recovery function was set - these are mutually exclusive, so unsetting the latter');\n options.recover = undefined;\n }\n if (!('closeOnUnload' in options)) {\n /* Have closeOnUnload default to true unless we have any indication that\n * the user may want to recover the connection */\n options.closeOnUnload = !options.recover;\n }\n if (options.transports && Utils.arrIn(options.transports, 'xhr')) {\n logger_1.default.deprecated('transports: [\"xhr\"]', 'transports: [\"xhr_streaming\"]');\n Utils.arrDeleteValue(options.transports, 'xhr');\n options.transports.push('xhr_streaming');\n }\n if (!('queueMessages' in options)) options.queueMessages = true;\n /* infer hosts and fallbacks based on the configured environment */\n var environment = options.environment && String(options.environment).toLowerCase() || Defaults.ENVIRONMENT;\n var production = !environment || environment === 'production';\n if (!options.fallbackHosts && !options.restHost && !options.realtimeHost && !options.port && !options.tlsPort) {\n options.fallbackHosts = production ? Defaults.FALLBACK_HOSTS : environmentFallbackHosts(environment);\n }\n var restHost = options.restHost || (production ? Defaults.REST_HOST : environment + '-' + Defaults.REST_HOST);\n var realtimeHost = getRealtimeHost(options, production, environment);\n Utils.arrForEach((options.fallbackHosts || []).concat(restHost, realtimeHost), checkHost);\n options.port = options.port || Defaults.PORT;\n options.tlsPort = options.tlsPort || Defaults.TLS_PORT;\n if (!('tls' in options)) options.tls = true;\n var timeouts = getTimeouts(options);\n if ('useBinaryProtocol' in options) {\n options.useBinaryProtocol = platform_1.default.Config.supportsBinary && options.useBinaryProtocol;\n } else {\n options.useBinaryProtocol = platform_1.default.Config.preferBinary;\n }\n if (options.clientId) {\n var headers = options.headers = options.headers || {};\n headers['X-Ably-ClientId'] = platform_1.default.BufferUtils.base64Encode(platform_1.default.BufferUtils.utf8Encode(options.clientId));\n }\n if (!('idempotentRestPublishing' in options)) {\n options.idempotentRestPublishing = true;\n }\n if (options.promises && !platform_1.default.Config.Promise) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Defaults.normaliseOptions', '{promises: true} was specified, but no Promise constructor found; disabling promises');\n options.promises = false;\n }\n var connectivityCheckParams = null;\n var connectivityCheckUrl = options.connectivityCheckUrl;\n if (options.connectivityCheckUrl) {\n var _a = options.connectivityCheckUrl.split('?'),\n uri = _a[0],\n qs = _a[1];\n connectivityCheckParams = qs ? Utils.parseQueryString(qs) : {};\n if (uri.indexOf('://') === -1) {\n uri = 'https://' + uri;\n }\n connectivityCheckUrl = uri;\n }\n return tslib_1.__assign(tslib_1.__assign({}, options), {\n useBinaryProtocol: 'useBinaryProtocol' in options ? platform_1.default.Config.supportsBinary && options.useBinaryProtocol : platform_1.default.Config.preferBinary,\n realtimeHost: realtimeHost,\n restHost: restHost,\n maxMessageSize: options.maxMessageSize || Defaults.maxMessageSize,\n timeouts: timeouts,\n connectivityCheckParams: connectivityCheckParams,\n connectivityCheckUrl: connectivityCheckUrl\n });\n }\n exports.normaliseOptions = normaliseOptions;\n exports.default = Defaults;\n function getDefaults(platformDefaults) {\n return Object.assign(Defaults, platformDefaults);\n }\n exports.getDefaults = getDefaults;\n\n /***/\n }, /* 9 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n function normaliseContext(context) {\n if (!context || !context.channelOptions) {\n return {\n channelOptions: context,\n plugins: {},\n baseEncodedPreviousPayload: undefined\n };\n }\n return context;\n }\n function normalizeCipherOptions(options) {\n if (options && options.cipher && !options.cipher.channelCipher) {\n if (!platform_1.default.Crypto) throw new Error('Encryption not enabled; use ably.encryption.js instead');\n var cipher = platform_1.default.Crypto.getCipher(options.cipher);\n return {\n cipher: cipher.cipherParams,\n channelCipher: cipher.cipher\n };\n }\n return options;\n }\n function getMessageSize(msg) {\n var size = 0;\n if (msg.name) {\n size += msg.name.length;\n }\n if (msg.clientId) {\n size += msg.clientId.length;\n }\n if (msg.extras) {\n size += JSON.stringify(msg.extras).length;\n }\n if (msg.data) {\n size += Utils.dataSizeBytes(msg.data);\n }\n return size;\n }\n var Message = /** @class */function () {\n function Message() {}\n /**\n * Overload toJSON() to intercept JSON.stringify()\n * @return {*}\n */\n Message.prototype.toJSON = function () {\n /* encode data to base64 if present and we're returning real JSON;\n * although msgpack calls toJSON(), we know it is a stringify()\n * call if it has a non-empty arguments list */\n var encoding = this.encoding;\n var data = this.data;\n if (data && platform_1.default.BufferUtils.isBuffer(data)) {\n if (arguments.length > 0) {\n /* stringify call */\n encoding = encoding ? encoding + '/base64' : 'base64';\n data = platform_1.default.BufferUtils.base64Encode(data);\n } else {\n /* Called by msgpack. toBuffer returns a datatype understandable by\n * that platform's msgpack implementation (Buffer in node, Uint8Array\n * in browsers) */\n data = platform_1.default.BufferUtils.toBuffer(data);\n }\n }\n return {\n name: this.name,\n id: this.id,\n clientId: this.clientId,\n connectionId: this.connectionId,\n connectionKey: this.connectionKey,\n extras: this.extras,\n encoding: encoding,\n data: data\n };\n };\n Message.prototype.toString = function () {\n var result = '[Message';\n if (this.name) result += '; name=' + this.name;\n if (this.id) result += '; id=' + this.id;\n if (this.timestamp) result += '; timestamp=' + this.timestamp;\n if (this.clientId) result += '; clientId=' + this.clientId;\n if (this.connectionId) result += '; connectionId=' + this.connectionId;\n if (this.encoding) result += '; encoding=' + this.encoding;\n if (this.extras) result += '; extras =' + JSON.stringify(this.extras);\n if (this.data) {\n if (typeof this.data == 'string') result += '; data=' + this.data;else if (platform_1.default.BufferUtils.isBuffer(this.data)) result += '; data (buffer)=' + platform_1.default.BufferUtils.base64Encode(this.data);else result += '; data (json)=' + JSON.stringify(this.data);\n }\n if (this.extras) result += '; extras=' + JSON.stringify(this.extras);\n result += ']';\n return result;\n };\n Message.encrypt = function (msg, options, callback) {\n var data = msg.data,\n encoding = msg.encoding,\n cipher = options.channelCipher;\n encoding = encoding ? encoding + '/' : '';\n if (!platform_1.default.BufferUtils.isBuffer(data)) {\n data = platform_1.default.BufferUtils.utf8Encode(String(data));\n encoding = encoding + 'utf-8/';\n }\n cipher.encrypt(data, function (err, data) {\n if (err) {\n callback(err);\n return;\n }\n msg.data = data;\n msg.encoding = encoding + 'cipher+' + cipher.algorithm;\n callback(null, msg);\n });\n };\n Message.encode = function (msg, options, callback) {\n var data = msg.data;\n var nativeDataType = typeof data == 'string' || platform_1.default.BufferUtils.isBuffer(data) || data === null || data === undefined;\n if (!nativeDataType) {\n if (Utils.isObject(data) || Utils.isArray(data)) {\n msg.data = JSON.stringify(data);\n msg.encoding = msg.encoding ? msg.encoding + '/json' : 'json';\n } else {\n throw new errorinfo_1.default('Data type is unsupported', 40013, 400);\n }\n }\n if (options != null && options.cipher) {\n Message.encrypt(msg, options, callback);\n } else {\n callback(null, msg);\n }\n };\n Message.encodeArray = function (messages, options, callback) {\n var processed = 0;\n for (var i = 0; i < messages.length; i++) {\n Message.encode(messages[i], options, function (err) {\n if (err) {\n callback(err);\n return;\n }\n processed++;\n if (processed == messages.length) {\n callback(null, messages);\n }\n });\n }\n };\n Message.decode = function (message, inputContext) {\n var context = normaliseContext(inputContext);\n var lastPayload = message.data;\n var encoding = message.encoding;\n if (encoding) {\n var xforms = encoding.split('/');\n var lastProcessedEncodingIndex = void 0,\n encodingsToProcess = xforms.length,\n data = message.data;\n var xform = '';\n try {\n while ((lastProcessedEncodingIndex = encodingsToProcess) > 0) {\n // eslint-disable-next-line security/detect-unsafe-regex\n var match = xforms[--encodingsToProcess].match(/([-\\w]+)(\\+([\\w-]+))?/);\n if (!match) break;\n xform = match[1];\n switch (xform) {\n case 'base64':\n data = platform_1.default.BufferUtils.base64Decode(String(data));\n if (lastProcessedEncodingIndex == xforms.length) {\n lastPayload = data;\n }\n continue;\n case 'utf-8':\n data = platform_1.default.BufferUtils.utf8Decode(data);\n continue;\n case 'json':\n data = JSON.parse(data);\n continue;\n case 'cipher':\n if (context.channelOptions != null && context.channelOptions.cipher && context.channelOptions.channelCipher) {\n var xformAlgorithm = match[3],\n cipher = context.channelOptions.channelCipher;\n /* don't attempt to decrypt unless the cipher params are compatible */\n if (xformAlgorithm != cipher.algorithm) {\n throw new Error('Unable to decrypt message with given cipher; incompatible cipher params');\n }\n data = cipher.decrypt(data);\n continue;\n } else {\n throw new Error('Unable to decrypt message; not an encrypted channel');\n }\n case 'vcdiff':\n if (!context.plugins || !context.plugins.vcdiff) {\n throw new errorinfo_1.default('Missing Vcdiff decoder (https://github.com/ably-forks/vcdiff-decoder)', 40019, 400);\n }\n if (typeof Uint8Array === 'undefined') {\n throw new errorinfo_1.default('Delta decoding not supported on this browser (need ArrayBuffer & Uint8Array)', 40020, 400);\n }\n try {\n var deltaBase = context.baseEncodedPreviousPayload;\n if (typeof deltaBase === 'string') {\n deltaBase = platform_1.default.BufferUtils.utf8Encode(deltaBase);\n }\n /* vcdiff expects Uint8Arrays, can't copy with ArrayBuffers. (also, if we\n * don't have a TextDecoder, deltaBase might be a WordArray here, so need\n * to process it into a buffer anyway) */\n deltaBase = platform_1.default.BufferUtils.toBuffer(deltaBase);\n data = platform_1.default.BufferUtils.toBuffer(data);\n data = platform_1.default.BufferUtils.typedArrayToBuffer(context.plugins.vcdiff.decode(data, deltaBase));\n lastPayload = data;\n } catch (e) {\n throw new errorinfo_1.default('Vcdiff delta decode failed with ' + e, 40018, 400);\n }\n continue;\n default:\n throw new Error('Unknown encoding');\n }\n }\n } catch (e) {\n var err = e;\n throw new errorinfo_1.default('Error processing the ' + xform + ' encoding, decoder returned ‘' + err.message + '’', err.code || 40013, 400);\n } finally {\n message.encoding = lastProcessedEncodingIndex <= 0 ? null : xforms.slice(0, lastProcessedEncodingIndex).join('/');\n message.data = data;\n }\n }\n context.baseEncodedPreviousPayload = lastPayload;\n };\n Message.fromResponseBody = function (body, options, format) {\n if (format) {\n body = Utils.decodeBody(body, format);\n }\n for (var i = 0; i < body.length; i++) {\n var msg = body[i] = Message.fromValues(body[i]);\n try {\n Message.decode(msg, options);\n } catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Message.fromResponseBody()', e.toString());\n }\n }\n return body;\n };\n Message.fromValues = function (values) {\n return Object.assign(new Message(), values);\n };\n Message.fromValuesArray = function (values) {\n var count = values.length,\n result = new Array(count);\n for (var i = 0; i < count; i++) result[i] = Message.fromValues(values[i]);\n return result;\n };\n Message.fromEncoded = function (encoded, inputOptions) {\n var msg = Message.fromValues(encoded);\n var options = normalizeCipherOptions(inputOptions);\n /* if decoding fails at any point, catch and return the message decoded to\n * the fullest extent possible */\n try {\n Message.decode(msg, options);\n } catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Message.fromEncoded()', e.toString());\n }\n return msg;\n };\n Message.fromEncodedArray = function (encodedArray, options) {\n normalizeCipherOptions(options);\n return encodedArray.map(function (encoded) {\n return Message.fromEncoded(encoded, options);\n });\n };\n /* This should be called on encode()d (and encrypt()d) Messages (as it\n * assumes the data is a string or buffer) */\n Message.getMessagesSize = function (messages) {\n var msg,\n total = 0;\n for (var i = 0; i < messages.length; i++) {\n msg = messages[i];\n total += msg.size || (msg.size = getMessageSize(msg));\n }\n return total;\n };\n Message.serialize = Utils.encodeBody;\n return Message;\n }();\n exports.default = Message;\n\n /***/\n }, /* 10 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var message_1 = tslib_1.__importDefault(__webpack_require__(9));\n var presencemessage_1 = tslib_1.__importDefault(__webpack_require__(14));\n var actions = {\n HEARTBEAT: 0,\n ACK: 1,\n NACK: 2,\n CONNECT: 3,\n CONNECTED: 4,\n DISCONNECT: 5,\n DISCONNECTED: 6,\n CLOSE: 7,\n CLOSED: 8,\n ERROR: 9,\n ATTACH: 10,\n ATTACHED: 11,\n DETACH: 12,\n DETACHED: 13,\n PRESENCE: 14,\n MESSAGE: 15,\n SYNC: 16,\n AUTH: 17,\n ACTIVATE: 18\n };\n var ActionName = [];\n Object.keys(actions).forEach(function (name) {\n ActionName[actions[name]] = name;\n });\n var flags = {\n /* Channel attach state flags */\n HAS_PRESENCE: 1 << 0,\n HAS_BACKLOG: 1 << 1,\n RESUMED: 1 << 2,\n TRANSIENT: 1 << 4,\n ATTACH_RESUME: 1 << 5,\n /* Channel mode flags */\n PRESENCE: 1 << 16,\n PUBLISH: 1 << 17,\n SUBSCRIBE: 1 << 18,\n PRESENCE_SUBSCRIBE: 1 << 19\n };\n var flagNames = Object.keys(flags);\n flags.MODE_ALL = flags.PRESENCE | flags.PUBLISH | flags.SUBSCRIBE | flags.PRESENCE_SUBSCRIBE;\n function toStringArray(array) {\n var result = [];\n if (array) {\n for (var i = 0; i < array.length; i++) {\n result.push(array[i].toString());\n }\n }\n return '[ ' + result.join(', ') + ' ]';\n }\n var simpleAttributes = 'id channel channelSerial connectionId connectionKey count msgSerial timestamp'.split(' ');\n var ProtocolMessage = /** @class */function () {\n function ProtocolMessage() {\n var _this = this;\n this.hasFlag = function (flag) {\n return (_this.flags & flags[flag]) > 0;\n };\n }\n ProtocolMessage.prototype.setFlag = function (flag) {\n return this.flags = this.flags | flags[flag];\n };\n ProtocolMessage.prototype.getMode = function () {\n return this.flags && this.flags & flags.MODE_ALL;\n };\n ProtocolMessage.prototype.encodeModesToFlags = function (modes) {\n var _this = this;\n modes.forEach(function (mode) {\n return _this.setFlag(mode);\n });\n };\n ProtocolMessage.prototype.decodeModesFromFlags = function () {\n var _this = this;\n var modes = [];\n ProtocolMessage.channelModes.forEach(function (mode) {\n if (_this.hasFlag(mode)) {\n modes.push(mode);\n }\n });\n return modes.length > 0 ? modes : undefined;\n };\n ProtocolMessage.fromValues = function (values) {\n return Object.assign(new ProtocolMessage(), values);\n };\n ProtocolMessage.Action = actions;\n ProtocolMessage.channelModes = ['PRESENCE', 'PUBLISH', 'SUBSCRIBE', 'PRESENCE_SUBSCRIBE'];\n ProtocolMessage.ActionName = ActionName;\n ProtocolMessage.serialize = Utils.encodeBody;\n ProtocolMessage.deserialize = function (serialized, format) {\n var deserialized = Utils.decodeBody(serialized, format);\n return ProtocolMessage.fromDeserialized(deserialized);\n };\n ProtocolMessage.fromDeserialized = function (deserialized) {\n var error = deserialized.error;\n if (error) deserialized.error = errorinfo_1.default.fromValues(error);\n var messages = deserialized.messages;\n if (messages) for (var i = 0; i < messages.length; i++) messages[i] = message_1.default.fromValues(messages[i]);\n var presence = deserialized.presence;\n if (presence) for (var i = 0; i < presence.length; i++) presence[i] = presencemessage_1.default.fromValues(presence[i], true);\n return Object.assign(new ProtocolMessage(), deserialized);\n };\n ProtocolMessage.stringify = function (msg) {\n var result = '[ProtocolMessage';\n if (msg.action !== undefined) result += '; action=' + ProtocolMessage.ActionName[msg.action] || false;\n var attribute;\n for (var attribIndex = 0; attribIndex < simpleAttributes.length; attribIndex++) {\n attribute = simpleAttributes[attribIndex];\n if (msg[attribute] !== undefined) result += '; ' + attribute + '=' + msg[attribute];\n }\n if (msg.messages) result += '; messages=' + toStringArray(message_1.default.fromValuesArray(msg.messages));\n if (msg.presence) result += '; presence=' + toStringArray(presencemessage_1.default.fromValuesArray(msg.presence));\n if (msg.error) result += '; error=' + errorinfo_1.default.fromValues(msg.error).toString();\n if (msg.auth && msg.auth.accessToken) result += '; token=' + msg.auth.accessToken;\n if (msg.flags) result += '; flags=' + flagNames.filter(msg.hasFlag).join(',');\n if (msg.params) {\n var stringifiedParams_1 = '';\n Utils.forInOwnNonNullProperties(msg.params, function (prop) {\n if (stringifiedParams_1.length > 0) {\n stringifiedParams_1 += '; ';\n }\n stringifiedParams_1 += prop + '=' + msg.params[prop];\n });\n if (stringifiedParams_1.length > 0) {\n result += '; params=[' + stringifiedParams_1 + ']';\n }\n }\n result += ']';\n return result;\n };\n return ProtocolMessage;\n }();\n exports.default = ProtocolMessage;\n\n /***/\n }, /* 11 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var protocolmessage_1 = tslib_1.__importDefault(__webpack_require__(10));\n var transport_1 = tslib_1.__importDefault(__webpack_require__(26));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var defaults_1 = tslib_1.__importDefault(__webpack_require__(8));\n var connectionerrors_1 = tslib_1.__importDefault(__webpack_require__(19));\n var auth_1 = tslib_1.__importDefault(__webpack_require__(16));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var XHRStates_1 = tslib_1.__importDefault(__webpack_require__(20));\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n /* TODO: can remove once realtime sends protocol message responses for comet errors */\n function shouldBeErrorAction(err) {\n var UNRESOLVABLE_ERROR_CODES = [80015, 80017, 80030];\n if (err.code) {\n if (auth_1.default.isTokenErr(err)) return false;\n if (Utils.arrIn(UNRESOLVABLE_ERROR_CODES, err.code)) return true;\n return err.code >= 40000 && err.code < 50000;\n } else {\n /* Likely a network or transport error of some kind. Certainly not fatal to the connection */\n return false;\n }\n }\n function protocolMessageFromRawError(err) {\n /* err will be either a legacy (non-protocolmessage) comet error response\n * (which will have an err.code), or a xhr/network error (which won't). */\n if (shouldBeErrorAction(err)) {\n return [protocolmessage_1.default.fromValues({\n action: protocolmessage_1.default.Action.ERROR,\n error: err\n })];\n } else {\n return [protocolmessage_1.default.fromValues({\n action: protocolmessage_1.default.Action.DISCONNECTED,\n error: err\n })];\n }\n }\n /*\n * A base comet transport class\n */\n var CometTransport = /** @class */function (_super) {\n tslib_1.__extends(CometTransport, _super);\n function CometTransport(connectionManager, auth, params) {\n var _this = _super.call(this, connectionManager, auth, params, /* binary not supported for comet so force JSON protocol */true) || this;\n /* For comet, we could do the auth update by aborting the current recv and\n * starting a new one with the new token, that'd be sufficient for realtime.\n * Problem is JSONP - you can't cancel truly abort a recv once started. So\n * we need to send an AUTH for jsonp. In which case it's simpler to keep all\n * comet transports the same and do it for all of them. So we send the AUTH\n * instead, and don't need to abort the recv */\n _this.onAuthUpdated = function (tokenDetails) {\n _this.authParams = {\n access_token: tokenDetails.token\n };\n };\n _this.stream = 'stream' in params ? params.stream : true;\n _this.sendRequest = null;\n _this.recvRequest = null;\n _this.pendingCallback = null;\n _this.pendingItems = null;\n return _this;\n }\n CometTransport.prototype.connect = function () {\n var _this = this;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'CometTransport.connect()', 'starting');\n transport_1.default.prototype.connect.call(this);\n var params = this.params;\n var options = params.options;\n var host = defaults_1.default.getHost(options, params.host);\n var port = defaults_1.default.getPort(options);\n var cometScheme = options.tls ? 'https://' : 'http://';\n this.baseUri = cometScheme + host + ':' + port + '/comet/';\n var connectUri = this.baseUri + 'connect';\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'CometTransport.connect()', 'uri: ' + connectUri);\n this.auth.getAuthParams(function (err, authParams) {\n if (err) {\n _this.disconnect(err);\n return;\n }\n if (_this.isDisposed) {\n return;\n }\n _this.authParams = authParams;\n var connectParams = _this.params.getConnectParams(authParams);\n if ('stream' in connectParams) _this.stream = connectParams.stream;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'CometTransport.connect()', 'connectParams:' + Utils.toQueryString(connectParams));\n /* this will be the 'recvRequest' so this connection can stream messages */\n var preconnected = false;\n var connectRequest = _this.recvRequest = _this.createRequest(connectUri, null, connectParams, null, _this.stream ? XHRStates_1.default.REQ_RECV_STREAM : XHRStates_1.default.REQ_RECV);\n connectRequest.on('data', function (data) {\n if (!_this.recvRequest) {\n /* the transport was disposed before we connected */\n return;\n }\n if (!preconnected) {\n preconnected = true;\n _this.emit('preconnect');\n }\n _this.onData(data);\n });\n connectRequest.on('complete', function (err) {\n if (!_this.recvRequest) {\n /* the transport was disposed before we connected */\n err = err || new errorinfo_1.default('Request cancelled', 80003, 400);\n }\n _this.recvRequest = null;\n /* Connect request may complete without a emitting 'data' event since that is not\n * emitted for e.g. a non-streamed error response. Still implies preconnect. */\n if (!preconnected && !err) {\n preconnected = true;\n _this.emit('preconnect');\n }\n _this.onActivity();\n if (err) {\n if (err.code) {\n /* A protocol error received from realtime. TODO: once realtime\n * consistendly sends errors wrapped in protocol messages, should be\n * able to remove this */\n _this.onData(protocolMessageFromRawError(err));\n } else {\n /* A network/xhr error. Don't bother wrapping in a protocol message,\n * just disconnect the transport */\n _this.disconnect(err);\n }\n return;\n }\n platform_1.default.Config.nextTick(function () {\n _this.recv();\n });\n });\n connectRequest.exec();\n });\n };\n CometTransport.prototype.requestClose = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'CometTransport.requestClose()');\n this._requestCloseOrDisconnect(true);\n };\n CometTransport.prototype.requestDisconnect = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'CometTransport.requestDisconnect()');\n this._requestCloseOrDisconnect(false);\n };\n CometTransport.prototype._requestCloseOrDisconnect = function (closing) {\n var _this = this;\n var closeOrDisconnectUri = closing ? this.closeUri : this.disconnectUri;\n if (closeOrDisconnectUri) {\n var request = this.createRequest(closeOrDisconnectUri, null, this.authParams, null, XHRStates_1.default.REQ_SEND);\n request.on('complete', function (err) {\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'CometTransport.request' + (closing ? 'Close()' : 'Disconnect()'), 'request returned err = ' + Utils.inspectError(err));\n _this.finish('disconnected', err);\n }\n });\n request.exec();\n }\n };\n CometTransport.prototype.dispose = function () {\n var _this = this;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'CometTransport.dispose()', '');\n if (!this.isDisposed) {\n this.isDisposed = true;\n if (this.recvRequest) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'CometTransport.dispose()', 'aborting recv request');\n this.recvRequest.abort();\n this.recvRequest = null;\n }\n /* In almost all cases the transport will be finished before it's\n * disposed. Finish here just to make sure. */\n this.finish('disconnected', connectionerrors_1.default.disconnected);\n platform_1.default.Config.nextTick(function () {\n _this.emit('disposed');\n });\n }\n };\n CometTransport.prototype.onConnect = function (message) {\n var _a;\n /* if this transport has been disposed whilst awaiting connection, do nothing */\n if (this.isDisposed) {\n return;\n }\n /* the connectionKey in a comet connected response is really\n * - */\n var connectionStr = (_a = message.connectionDetails) === null || _a === void 0 ? void 0 : _a.connectionKey;\n transport_1.default.prototype.onConnect.call(this, message);\n var baseConnectionUri = this.baseUri + connectionStr;\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'CometTransport.onConnect()', 'baseUri = ' + baseConnectionUri + '; connectionKey = ' + message.connectionKey);\n this.sendUri = baseConnectionUri + '/send';\n this.recvUri = baseConnectionUri + '/recv';\n this.closeUri = baseConnectionUri + '/close';\n this.disconnectUri = baseConnectionUri + '/disconnect';\n };\n CometTransport.prototype.send = function (message) {\n if (this.sendRequest) {\n /* there is a pending send, so queue this message */\n this.pendingItems = this.pendingItems || [];\n this.pendingItems.push(message);\n return;\n }\n /* send this, plus any pending, now */\n var pendingItems = this.pendingItems || [];\n pendingItems.push(message);\n this.pendingItems = null;\n this.sendItems(pendingItems);\n };\n CometTransport.prototype.sendAnyPending = function () {\n var pendingItems = this.pendingItems;\n if (!pendingItems) {\n return;\n }\n this.pendingItems = null;\n this.sendItems(pendingItems);\n };\n CometTransport.prototype.sendItems = function (items) {\n var _this = this;\n var sendRequest = this.sendRequest = this.createRequest(this.sendUri, null, this.authParams, this.encodeRequest(items), XHRStates_1.default.REQ_SEND);\n sendRequest.on('complete', function (err, data) {\n if (err) logger_1.default.logAction(logger_1.default.LOG_ERROR, 'CometTransport.sendItems()', 'on complete: err = ' + Utils.inspectError(err));\n _this.sendRequest = null;\n /* the result of the request, even if a nack, is usually a protocol response\n * contained in the data. An err is anomolous, and indicates some issue with the\n * network,transport, or connection */\n if (err) {\n if (err.code) {\n /* A protocol error received from realtime. TODO: once realtime\n * consistendly sends errors wrapped in protocol messages, should be\n * able to remove this */\n _this.onData(protocolMessageFromRawError(err));\n } else {\n /* A network/xhr error. Don't bother wrapping in a protocol message,\n * just disconnect the transport */\n _this.disconnect(err);\n }\n return;\n }\n if (data) {\n _this.onData(data);\n }\n if (_this.pendingItems) {\n platform_1.default.Config.nextTick(function () {\n /* If there's a new send request by now, any pending items will have\n * been picked up by that; any new ones added since then will be\n * picked up after that one completes */\n if (!_this.sendRequest) {\n _this.sendAnyPending();\n }\n });\n }\n });\n sendRequest.exec();\n };\n CometTransport.prototype.recv = function () {\n var _this = this;\n /* do nothing if there is an active request, which might be streaming */\n if (this.recvRequest) return;\n /* If we're no longer connected, do nothing */\n if (!this.isConnected) return;\n var recvRequest = this.recvRequest = this.createRequest(this.recvUri, null, this.authParams, null, this.stream ? XHRStates_1.default.REQ_RECV_STREAM : XHRStates_1.default.REQ_RECV_POLL);\n recvRequest.on('data', function (data) {\n _this.onData(data);\n });\n recvRequest.on('complete', function (err) {\n _this.recvRequest = null;\n /* A request completing must be considered activity, as realtime sends\n * heartbeats every 15s since a request began, not every 15s absolutely */\n _this.onActivity();\n if (err) {\n if (err.code) {\n /* A protocol error received from realtime. TODO: once realtime\n * consistently sends errors wrapped in protocol messages, should be\n * able to remove this */\n _this.onData(protocolMessageFromRawError(err));\n } else {\n /* A network/xhr error. Don't bother wrapping in a protocol message,\n * just disconnect the transport */\n _this.disconnect(err);\n }\n return;\n }\n platform_1.default.Config.nextTick(function () {\n _this.recv();\n });\n });\n recvRequest.exec();\n };\n CometTransport.prototype.onData = function (responseData) {\n try {\n var items = this.decodeResponse(responseData);\n if (items && items.length) for (var i = 0; i < items.length; i++) this.onProtocolMessage(protocolmessage_1.default.fromDeserialized(items[i]));\n } catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'CometTransport.onData()', 'Unexpected exception handing channel event: ' + e.stack);\n }\n };\n CometTransport.prototype.encodeRequest = function (requestItems) {\n return JSON.stringify(requestItems);\n };\n CometTransport.prototype.decodeResponse = function (responseData) {\n if (typeof responseData == 'string') return JSON.parse(responseData);\n return responseData;\n };\n return CometTransport;\n }(transport_1.default);\n exports.default = CometTransport;\n\n /***/\n }, /* 12 */\n /***/function (module, exports) {\n var g;\n\n // This works in non-strict mode\n g = function () {\n return this;\n }();\n try {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n } catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n }\n\n // g can still be undefined, but nothing to do about it...\n // We return undefined, instead of nothing here, so it's\n // easier to handle this case. if(!global) { ...}\n\n module.exports = g;\n\n /***/\n }, /* 13 */\n /***/function (module, exports, __webpack_require__) {\n ;\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(6));\n } else {}\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n\n /**\n * Base64 encoding strategy.\n */\n var Base64 = C_enc.Base64 = {\n /**\n * Converts a word array to a Base64 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Base64 string.\n *\n * @static\n *\n * @example\n *\n * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n */\n stringify: function (wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n // Clamp excess bits\n wordArray.clamp();\n\n // Convert\n var base64Chars = [];\n for (var i = 0; i < sigBytes; i += 3) {\n var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 0xff;\n var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 0xff;\n var triplet = byte1 << 16 | byte2 << 8 | byte3;\n for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {\n base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 0x3f));\n }\n }\n\n // Add padding\n var paddingChar = map.charAt(64);\n if (paddingChar) {\n while (base64Chars.length % 4) {\n base64Chars.push(paddingChar);\n }\n }\n return base64Chars.join('');\n },\n /**\n * Converts a Base64 string to a word array.\n *\n * @param {string} base64Str The Base64 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n */\n parse: function (base64Str) {\n // Shortcuts\n var base64StrLength = base64Str.length;\n var map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var reverseMap = this._reverseMap;\n if (!reverseMap) {\n reverseMap = this._reverseMap = [];\n for (var j = 0; j < map.length; j++) {\n reverseMap[map.charCodeAt(j)] = j;\n }\n }\n\n // Ignore padding\n var paddingChar = map.charAt(64);\n if (paddingChar) {\n var paddingIndex = base64Str.indexOf(paddingChar);\n if (paddingIndex !== -1) {\n base64StrLength = paddingIndex;\n }\n }\n\n // Convert\n return parseLoop(base64Str, base64StrLength, reverseMap);\n }\n };\n function parseLoop(base64Str, base64StrLength, reverseMap) {\n var words = [];\n var nBytes = 0;\n for (var i = 0; i < base64StrLength; i++) {\n if (i % 4) {\n var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2;\n var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2;\n var bitsCombined = bits1 | bits2;\n words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8;\n nBytes++;\n }\n }\n return WordArray.create(words, nBytes);\n }\n })();\n return CryptoJS.enc.Base64;\n });\n\n /***/\n }, /* 14 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n var message_1 = tslib_1.__importDefault(__webpack_require__(9));\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n function toActionValue(actionString) {\n return PresenceMessage.Actions.indexOf(actionString);\n }\n var PresenceMessage = /** @class */function () {\n function PresenceMessage() {}\n /* Returns whether this presenceMessage is synthesized, i.e. was not actually\n * sent by the connection (usually means a leave event sent 15s after a\n * disconnection). This is useful because synthesized messages cannot be\n * compared for newness by id lexicographically - RTP2b1\n */\n PresenceMessage.prototype.isSynthesized = function () {\n if (!this.id || !this.connectionId) {\n return true;\n }\n return this.id.substring(this.connectionId.length, 0) !== this.connectionId;\n };\n /* RTP2b2 */\n PresenceMessage.prototype.parseId = function () {\n if (!this.id) throw new Error('parseId(): Presence message does not contain an id');\n var parts = this.id.split(':');\n return {\n connectionId: parts[0],\n msgSerial: parseInt(parts[1], 10),\n index: parseInt(parts[2], 10)\n };\n };\n /**\n * Overload toJSON() to intercept JSON.stringify()\n * @return {*}\n */\n PresenceMessage.prototype.toJSON = function () {\n /* encode data to base64 if present and we're returning real JSON;\n * although msgpack calls toJSON(), we know it is a stringify()\n * call if it has a non-empty arguments list */\n var data = this.data;\n var encoding = this.encoding;\n if (data && platform_1.default.BufferUtils.isBuffer(data)) {\n if (arguments.length > 0) {\n /* stringify call */\n encoding = encoding ? encoding + '/base64' : 'base64';\n data = platform_1.default.BufferUtils.base64Encode(data);\n } else {\n /* Called by msgpack. toBuffer returns a datatype understandable by\n * that platform's msgpack implementation (Buffer in node, Uint8Array\n * in browsers) */\n data = platform_1.default.BufferUtils.toBuffer(data);\n }\n }\n return {\n id: this.id,\n clientId: this.clientId,\n /* Convert presence action back to an int for sending to Ably */\n action: toActionValue(this.action),\n data: data,\n encoding: encoding\n };\n };\n PresenceMessage.prototype.toString = function () {\n var result = '[PresenceMessage';\n result += '; action=' + this.action;\n if (this.id) result += '; id=' + this.id;\n if (this.timestamp) result += '; timestamp=' + this.timestamp;\n if (this.clientId) result += '; clientId=' + this.clientId;\n if (this.connectionId) result += '; connectionId=' + this.connectionId;\n if (this.encoding) result += '; encoding=' + this.encoding;\n if (this.data) {\n if (typeof this.data == 'string') result += '; data=' + this.data;else if (platform_1.default.BufferUtils.isBuffer(this.data)) result += '; data (buffer)=' + platform_1.default.BufferUtils.base64Encode(this.data);else result += '; data (json)=' + JSON.stringify(this.data);\n }\n result += ']';\n return result;\n };\n PresenceMessage.fromResponseBody = function (body, options, format) {\n var messages = [];\n if (format) {\n body = Utils.decodeBody(body, format);\n }\n for (var i = 0; i < body.length; i++) {\n var msg = messages[i] = PresenceMessage.fromValues(body[i], true);\n try {\n PresenceMessage.decode(msg, options);\n } catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'PresenceMessage.fromResponseBody()', e.toString());\n }\n }\n return messages;\n };\n PresenceMessage.fromValues = function (values, stringifyAction) {\n if (stringifyAction) {\n values.action = PresenceMessage.Actions[values.action];\n }\n return Object.assign(new PresenceMessage(), values);\n };\n PresenceMessage.fromValuesArray = function (values) {\n var count = values.length,\n result = new Array(count);\n for (var i = 0; i < count; i++) result[i] = PresenceMessage.fromValues(values[i]);\n return result;\n };\n PresenceMessage.fromEncoded = function (encoded, options) {\n var msg = PresenceMessage.fromValues(encoded, true);\n /* if decoding fails at any point, catch and return the message decoded to\n * the fullest extent possible */\n try {\n PresenceMessage.decode(msg, options);\n } catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'PresenceMessage.fromEncoded()', e.toString());\n }\n return msg;\n };\n PresenceMessage.fromEncodedArray = function (encodedArray, options) {\n return encodedArray.map(function (encoded) {\n return PresenceMessage.fromEncoded(encoded, options);\n });\n };\n PresenceMessage.Actions = ['absent', 'present', 'enter', 'leave', 'update'];\n PresenceMessage.encode = message_1.default.encode;\n PresenceMessage.decode = message_1.default.decode;\n PresenceMessage.getMessagesSize = message_1.default.getMessagesSize;\n return PresenceMessage;\n }();\n exports.default = PresenceMessage;\n\n /***/\n }, /* 15 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n /* WEBPACK VAR INJECTION */\n (function (global) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var defaults_1 = tslib_1.__importDefault(__webpack_require__(8));\n var XHRStates_1 = tslib_1.__importDefault(__webpack_require__(20));\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n function isAblyError(responseBody, headers) {\n return Utils.arrIn(Utils.allToLowerCase(Utils.keysArray(headers)), 'x-ably-errorcode');\n }\n function getAblyError(responseBody, headers) {\n if (isAblyError(responseBody, headers)) {\n return responseBody.error && errorinfo_1.default.fromValues(responseBody.error);\n }\n }\n var noop = function () {};\n var idCounter = 0;\n var pendingRequests = {};\n var isIE = typeof global !== 'undefined' && global.XDomainRequest;\n function ieVersion() {\n var match = navigator.userAgent.toString().match(/MSIE\\s([\\d.]+)/);\n return match && Number(match[1]);\n }\n function needJsonEnvelope() {\n /* IE 10 xhr bug: http://stackoverflow.com/a/16320339 */\n var version;\n return isIE && (version = ieVersion()) && version === 10;\n }\n function getHeader(xhr, header) {\n return xhr.getResponseHeader && xhr.getResponseHeader(header);\n }\n /* Safari mysteriously returns 'Identity' for transfer-encoding when in fact\n * it is 'chunked'. So instead, decide that it is chunked when\n * transfer-encoding is present or content-length is absent. ('or' because\n * when using http2 streaming, there's no transfer-encoding header, but can\n * still deduce streaming from lack of content-length) */\n function isEncodingChunked(xhr) {\n return xhr.getResponseHeader && (xhr.getResponseHeader('transfer-encoding') || !xhr.getResponseHeader('content-length'));\n }\n function getHeadersAsObject(xhr) {\n var headerPairs = Utils.trim(xhr.getAllResponseHeaders()).split('\\r\\n');\n var headers = {};\n for (var i = 0; i < headerPairs.length; i++) {\n var parts = headerPairs[i].split(':').map(Utils.trim);\n headers[parts[0].toLowerCase()] = parts[1];\n }\n return headers;\n }\n var XHRRequest = /** @class */function (_super) {\n tslib_1.__extends(XHRRequest, _super);\n function XHRRequest(uri, headers, params, body, requestMode, timeouts, method) {\n var _this = _super.call(this) || this;\n params = params || {};\n params.rnd = Utils.cheapRandStr();\n if (needJsonEnvelope() && !params.envelope) params.envelope = 'json';\n _this.uri = uri + Utils.toQueryString(params);\n _this.headers = headers || {};\n _this.body = body;\n _this.method = method ? method.toUpperCase() : Utils.isEmptyArg(body) ? 'GET' : 'POST';\n _this.requestMode = requestMode;\n _this.timeouts = timeouts;\n _this.timedOut = false;\n _this.requestComplete = false;\n _this.id = String(++idCounter);\n pendingRequests[_this.id] = _this;\n return _this;\n }\n XHRRequest.createRequest = function (uri, headers, params, body, requestMode, timeouts, method) {\n /* XHR requests are used either with the context being a realtime\n * transport, or with timeouts passed in (for when used by a rest client),\n * or completely standalone. Use the appropriate timeouts in each case */\n var _timeouts = timeouts || defaults_1.default.TIMEOUTS;\n return new XHRRequest(uri, headers, Utils.copy(params), body, requestMode, _timeouts, method);\n };\n XHRRequest.prototype.complete = function (err, body, headers, unpacked, statusCode) {\n if (!this.requestComplete) {\n this.requestComplete = true;\n if (!err && body) {\n this.emit('data', body);\n }\n this.emit('complete', err, body, headers, unpacked, statusCode);\n this.dispose();\n }\n };\n XHRRequest.prototype.abort = function () {\n this.dispose();\n };\n XHRRequest.prototype.exec = function () {\n var _this = this;\n var headers = this.headers;\n var timeout = this.requestMode == XHRStates_1.default.REQ_SEND ? this.timeouts.httpRequestTimeout : this.timeouts.recvTimeout,\n timer = this.timer = setTimeout(function () {\n _this.timedOut = true;\n xhr.abort();\n }, timeout),\n method = this.method,\n xhr = this.xhr = new XMLHttpRequest(),\n accept = headers['accept'];\n var body = this.body;\n var responseType = 'text';\n if (!accept) {\n // Default to JSON\n headers['accept'] = 'application/json';\n } else if (accept.indexOf('application/x-msgpack') === 0) {\n // Msgpack responses will be typed as ArrayBuffer\n responseType = 'arraybuffer';\n }\n if (body) {\n var contentType = headers['content-type'] || (headers['content-type'] = 'application/json');\n if (contentType.indexOf('application/json') > -1 && typeof body != 'string') body = JSON.stringify(body);\n }\n // Can probably remove this directive if https://github.com/nodesecurity/eslint-plugin-security/issues/26 is resolved\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n xhr.open(method, this.uri, true);\n xhr.responseType = responseType;\n if ('authorization' in headers) {\n xhr.withCredentials = true;\n }\n for (var h in headers) xhr.setRequestHeader(h, headers[h]);\n var errorHandler = function (errorEvent, message, code, statusCode) {\n var _a;\n var errorMessage = message + ' (event type: ' + errorEvent.type + ')';\n if ((_a = _this === null || _this === void 0 ? void 0 : _this.xhr) === null || _a === void 0 ? void 0 : _a.statusText) errorMessage += ', current statusText is ' + _this.xhr.statusText;\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Request.on' + errorEvent.type + '()', errorMessage);\n _this.complete(new errorinfo_1.default(errorMessage, code, statusCode));\n };\n xhr.onerror = function (errorEvent) {\n errorHandler(errorEvent, 'XHR error occurred', null, 400);\n };\n xhr.onabort = function (errorEvent) {\n if (_this.timedOut) {\n errorHandler(errorEvent, 'Request aborted due to request timeout expiring', null, 408);\n } else {\n errorHandler(errorEvent, 'Request cancelled', null, 400);\n }\n };\n xhr.ontimeout = function (errorEvent) {\n errorHandler(errorEvent, 'Request timed out', null, 408);\n };\n var streaming;\n var statusCode;\n var successResponse;\n var streamPos = 0;\n var unpacked = false;\n var onResponse = function () {\n clearTimeout(timer);\n successResponse = statusCode < 400;\n if (statusCode == 204) {\n _this.complete(null, null, null, null, statusCode);\n return;\n }\n streaming = _this.requestMode == XHRStates_1.default.REQ_RECV_STREAM && successResponse && isEncodingChunked(xhr);\n };\n var onEnd = function () {\n var parsedResponse;\n try {\n var contentType = getHeader(xhr, 'content-type');\n /* Be liberal in what we accept; buggy auth servers may respond\n * without the correct contenttype, but assume they're still\n * responding with json */\n var json = contentType ? contentType.indexOf('application/json') >= 0 : xhr.responseType == 'text';\n if (json) {\n /* If we requested msgpack but server responded with json, then since\n * we set the responseType expecting msgpack, the response will be\n * an ArrayBuffer containing json */\n var jsonResponseBody = xhr.responseType === 'arraybuffer' ? platform_1.default.BufferUtils.utf8Decode(xhr.response) : String(xhr.responseText);\n if (jsonResponseBody.length) {\n parsedResponse = JSON.parse(jsonResponseBody);\n } else {\n parsedResponse = jsonResponseBody;\n }\n unpacked = true;\n } else {\n parsedResponse = xhr.response;\n }\n if (parsedResponse.response !== undefined) {\n /* unwrap JSON envelope */\n statusCode = parsedResponse.statusCode;\n successResponse = statusCode < 400;\n headers = parsedResponse.headers;\n parsedResponse = parsedResponse.response;\n } else {\n headers = getHeadersAsObject(xhr);\n }\n } catch (e) {\n _this.complete(new errorinfo_1.default('Malformed response body from server: ' + e.message, null, 400));\n return;\n }\n /* If response is an array, it's an array of protocol messages -- even if\n * is contains an error action (hence the nonsuccess statuscode), we can\n * consider the request to have succeeded, just pass it on to\n * onProtocolMessage to decide what to do */\n if (successResponse || Utils.isArray(parsedResponse)) {\n _this.complete(null, parsedResponse, headers, unpacked, statusCode);\n return;\n }\n var err = getAblyError(parsedResponse, headers);\n if (!err) {\n err = new errorinfo_1.default('Error response received from server: ' + statusCode + ' body was: ' + platform_1.default.Config.inspect(parsedResponse), null, statusCode);\n }\n _this.complete(err, parsedResponse, headers, unpacked, statusCode);\n };\n function onProgress() {\n var responseText = xhr.responseText;\n var bodyEnd = responseText.length - 1;\n var idx, chunk;\n while (streamPos < bodyEnd && (idx = responseText.indexOf('\\n', streamPos)) > -1) {\n chunk = responseText.slice(streamPos, idx);\n streamPos = idx + 1;\n onChunk(chunk);\n }\n }\n var onChunk = function (chunk) {\n try {\n chunk = JSON.parse(chunk);\n } catch (e) {\n _this.complete(new errorinfo_1.default('Malformed response body from server: ' + e.message, null, 400));\n return;\n }\n _this.emit('data', chunk);\n };\n var onStreamEnd = function () {\n onProgress();\n _this.streamComplete = true;\n platform_1.default.Config.nextTick(function () {\n _this.complete();\n });\n };\n xhr.onreadystatechange = function () {\n var readyState = xhr.readyState;\n if (readyState < 3) return;\n if (xhr.status !== 0) {\n if (statusCode === undefined) {\n statusCode = xhr.status;\n /* IE returns 1223 for 204: http://bugs.jquery.com/ticket/1450 */\n if (statusCode === 1223) statusCode = 204;\n onResponse();\n }\n if (readyState == 3 && streaming) {\n onProgress();\n } else if (readyState == 4) {\n if (streaming) onStreamEnd();else onEnd();\n }\n }\n };\n xhr.send(body);\n };\n XHRRequest.prototype.dispose = function () {\n var xhr = this.xhr;\n if (xhr) {\n xhr.onreadystatechange = xhr.onerror = xhr.onabort = xhr.ontimeout = noop;\n this.xhr = null;\n var timer = this.timer;\n if (timer) {\n clearTimeout(timer);\n this.timer = null;\n }\n if (!this.requestComplete) xhr.abort();\n }\n delete pendingRequests[this.id];\n };\n return XHRRequest;\n }(eventemitter_1.default);\n exports.default = XHRRequest;\n\n /* WEBPACK VAR INJECTION */\n }).call(this, __webpack_require__(12));\n\n /***/\n }, /* 16 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var multicaster_1 = tslib_1.__importDefault(__webpack_require__(22));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var hmac_sha256_1 = tslib_1.__importDefault(__webpack_require__(44));\n var enc_base64_1 = __webpack_require__(13);\n var enc_utf8_1 = __webpack_require__(32);\n var HttpMethods_1 = tslib_1.__importDefault(__webpack_require__(17));\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n var MAX_TOKEN_LENGTH = Math.pow(2, 17);\n function noop() {}\n function random() {\n return ('000000' + Math.floor(Math.random() * 1e16)).slice(-16);\n }\n function isRealtime(client) {\n return !!client.connection;\n }\n /* A client auth callback may give errors in any number of formats; normalise to an errorinfo */\n function normaliseAuthcallbackError(err) {\n if (!Utils.isErrorInfo(err)) {\n return new errorinfo_1.default(Utils.inspectError(err), err.code || 40170, err.statusCode || 401);\n }\n /* network errors will not have an inherent error code */\n if (!err.code) {\n if (err.statusCode === 403) {\n err.code = 40300;\n } else {\n err.code = 40170;\n /* normalise statusCode to 401 per RSA4e */\n err.statusCode = 401;\n }\n }\n return err;\n }\n var toBase64 = function (str) {\n if (platform_1.default.Config.createHmac) {\n return Buffer.from(str, 'ascii').toString('base64');\n }\n return (0, enc_base64_1.stringify)((0, enc_utf8_1.parse)(str));\n };\n var hmac = function (text, key) {\n if (platform_1.default.Config.createHmac) {\n var inst = platform_1.default.Config.createHmac('SHA256', key);\n inst.update(text);\n return inst.digest('base64');\n }\n return (0, enc_base64_1.stringify)((0, hmac_sha256_1.default)(text, key));\n };\n function c14n(capability) {\n if (!capability) return '';\n if (typeof capability == 'string') capability = JSON.parse(capability);\n var c14nCapability = Object.create(null);\n var keys = Utils.keysArray(capability, true);\n if (!keys) return '';\n keys.sort();\n for (var i = 0; i < keys.length; i++) {\n c14nCapability[keys[i]] = capability[keys[i]].sort();\n }\n return JSON.stringify(c14nCapability);\n }\n function logAndValidateTokenAuthMethod(authOptions) {\n if (authOptions.authCallback) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth()', 'using token auth with authCallback');\n } else if (authOptions.authUrl) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth()', 'using token auth with authUrl');\n } else if (authOptions.key) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth()', 'using token auth with client-side signing');\n } else if (authOptions.tokenDetails) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth()', 'using token auth with supplied token only');\n } else {\n var msg = 'authOptions must include valid authentication parameters';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth()', msg);\n throw new Error(msg);\n }\n }\n function basicAuthForced(options) {\n return 'useTokenAuth' in options && !options.useTokenAuth;\n }\n /* RSA4 */\n function useTokenAuth(options) {\n return options.useTokenAuth || !basicAuthForced(options) && (options.authCallback || options.authUrl || options.token || options.tokenDetails);\n }\n /* RSA4a */\n function noWayToRenew(options) {\n return !options.key && !options.authCallback && !options.authUrl;\n }\n var trId = 0;\n function getTokenRequestId() {\n return trId++;\n }\n var Auth = /** @class */function () {\n function Auth(client, options) {\n // This initialization is always overwritten and only used to prevent a TypeScript compiler error\n this.authOptions = {};\n this.client = client;\n this.tokenParams = options.defaultTokenParams || {};\n /* The id of the current token request if one is in progress, else null */\n this.currentTokenRequestId = null;\n this.waitingForTokenRequest = null;\n if (useTokenAuth(options)) {\n /* Token auth */\n if (options.key && !hmac) {\n var msg = 'client-side token request signing not supported';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth()', msg);\n throw new Error(msg);\n }\n if (noWayToRenew(options)) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth()', 'Warning: library initialized with a token literal without any way to renew the token when it expires (no authUrl, authCallback, or key). See https://help.ably.io/error/40171 for help');\n }\n this._saveTokenOptions(options.defaultTokenParams, options);\n logAndValidateTokenAuthMethod(this.authOptions);\n } else {\n /* Basic auth */\n if (!options.key) {\n var msg = 'No authentication options provided; need one of: key, authUrl, or authCallback (or for testing only, token or tokenDetails)';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth()', msg);\n throw new errorinfo_1.default(msg, 40160, 401);\n }\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth()', 'anonymous, using basic auth');\n this._saveBasicOptions(options);\n }\n }\n Auth.prototype.authorize = function (tokenParams, authOptions, callback) {\n var _this = this;\n var _authOptions;\n /* shuffle and normalise arguments as necessary */\n if (typeof tokenParams == 'function' && !callback) {\n callback = tokenParams;\n _authOptions = tokenParams = null;\n } else if (typeof authOptions == 'function' && !callback) {\n callback = authOptions;\n _authOptions = null;\n } else {\n _authOptions = authOptions;\n }\n if (!callback) {\n if (this.client.options.promises) {\n return Utils.promisify(this, 'authorize', arguments);\n }\n }\n /* RSA10a: authorize() call implies token auth. If a key is passed it, we\n * just check if it doesn't clash and assume we're generating a token from it */\n if (_authOptions && _authOptions.key && this.authOptions.key !== _authOptions.key) {\n throw new errorinfo_1.default('Unable to update auth options with incompatible key', 40102, 401);\n }\n if (_authOptions && 'force' in _authOptions) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth.authorize', 'Deprecation warning: specifying {force: true} in authOptions is no longer necessary, authorize() now always gets a new token. Please remove this, as in version 1.0 and later, having a non-null authOptions will overwrite stored library authOptions, which may not be what you want');\n /* Emulate the old behaviour: if 'force' was the only member of authOptions,\n * set it to null so it doesn't overwrite stored. TODO: remove in version 1.0 */\n if (Utils.isOnlyPropIn(_authOptions, 'force')) {\n _authOptions = null;\n }\n }\n this._forceNewToken(tokenParams, _authOptions, function (err, tokenDetails) {\n if (err) {\n if (_this.client.connection) {\n /* We interpret RSA4d as including requests made by a client lib to\n * authenticate triggered by an explicit authorize() or an AUTH received from\n * ably, not just connect-sequence-triggered token fetches */\n _this.client.connection.connectionManager.actOnErrorFromAuthorize(err);\n }\n callback === null || callback === void 0 ? void 0 : callback(err);\n return;\n }\n /* RTC8\n * - When authorize called by an end user and have a realtime connection,\n * don't call back till new token has taken effect.\n * - Use this.client.connection as a proxy for (this.client instanceof Realtime),\n * which doesn't work in node as Realtime isn't part of the vm context for Rest clients */\n if (isRealtime(_this.client)) {\n _this.client.connection.connectionManager.onAuthUpdated(tokenDetails, callback || noop);\n } else {\n callback === null || callback === void 0 ? void 0 : callback(null, tokenDetails);\n }\n });\n };\n Auth.prototype.authorise = function (tokenParams, authOptions, callback) {\n logger_1.default.deprecated('Auth.authorise', 'Auth.authorize');\n this.authorize(tokenParams, authOptions, callback);\n };\n /* For internal use, eg by connectionManager - useful when want to call back\n * as soon as we have the new token, rather than waiting for it to take\n * effect on the connection as #authorize does */\n Auth.prototype._forceNewToken = function (tokenParams, authOptions, callback) {\n var _this = this;\n /* get rid of current token even if still valid */\n this.tokenDetails = null;\n /* _save normalises the tokenParams and authOptions and updates the auth\n * object. All subsequent operations should use the values on `this`,\n * not the passed in ones. */\n this._saveTokenOptions(tokenParams, authOptions);\n logAndValidateTokenAuthMethod(this.authOptions);\n this._ensureValidAuthCredentials(true, function (err, tokenDetails) {\n /* RSA10g */\n delete _this.tokenParams.timestamp;\n delete _this.authOptions.queryTime;\n callback(err, tokenDetails);\n });\n };\n Auth.prototype.requestToken = function (tokenParams, authOptions, callback) {\n var _this = this;\n /* shuffle and normalise arguments as necessary */\n if (typeof tokenParams == 'function' && !callback) {\n callback = tokenParams;\n authOptions = tokenParams = null;\n } else if (typeof authOptions == 'function' && !callback) {\n callback = authOptions;\n authOptions = null;\n }\n if (!callback && this.client.options.promises) {\n return Utils.promisify(this, 'requestToken', arguments);\n }\n /* RSA8e: if authOptions passed in, they're used instead of stored, don't merge them */\n authOptions = authOptions || this.authOptions;\n tokenParams = tokenParams || Utils.copy(this.tokenParams);\n var _callback = callback || noop;\n /* first set up whatever callback will be used to get signed\n * token requests */\n var tokenRequestCallback,\n client = this.client;\n if (authOptions.authCallback) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth.requestToken()', 'using token auth with authCallback');\n tokenRequestCallback = authOptions.authCallback;\n } else if (authOptions.authUrl) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth.requestToken()', 'using token auth with authUrl');\n tokenRequestCallback = function (params, cb) {\n var authHeaders = Utils.mixin({\n accept: 'application/json, text/plain'\n }, authOptions.authHeaders);\n var usePost = authOptions.authMethod && authOptions.authMethod.toLowerCase() === 'post';\n var providedQsParams;\n /* Combine authParams with any qs params given in the authUrl */\n var queryIdx = authOptions.authUrl.indexOf('?');\n if (queryIdx > -1) {\n providedQsParams = Utils.parseQueryString(authOptions.authUrl.slice(queryIdx));\n authOptions.authUrl = authOptions.authUrl.slice(0, queryIdx);\n if (!usePost) {\n /* In case of conflict, authParams take precedence over qs params in the authUrl */\n authOptions.authParams = Utils.mixin(providedQsParams, authOptions.authParams);\n }\n }\n /* RSA8c2 */\n var authParams = Utils.mixin({}, authOptions.authParams || {}, params);\n var authUrlRequestCallback = function (err, body, headers, unpacked) {\n var contentType;\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Auth.requestToken().tokenRequestCallback', 'Received Error: ' + Utils.inspectError(err));\n } else {\n contentType = headers['content-type'];\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Auth.requestToken().tokenRequestCallback', 'Received; content-type: ' + contentType + '; body: ' + Utils.inspectBody(body));\n }\n if (err || unpacked) return cb(err, body);\n if (platform_1.default.BufferUtils.isBuffer(body)) body = body.toString();\n if (!contentType) {\n cb(new errorinfo_1.default('authUrl response is missing a content-type header', 40170, 401));\n return;\n }\n var json = contentType.indexOf('application/json') > -1,\n text = contentType.indexOf('text/plain') > -1 || contentType.indexOf('application/jwt') > -1;\n if (!json && !text) {\n cb(new errorinfo_1.default('authUrl responded with unacceptable content-type ' + contentType + ', should be either text/plain, application/jwt or application/json', 40170, 401));\n return;\n }\n if (json) {\n if (body.length > MAX_TOKEN_LENGTH) {\n cb(new errorinfo_1.default('authUrl response exceeded max permitted length', 40170, 401));\n return;\n }\n try {\n body = JSON.parse(body);\n } catch (e) {\n cb(new errorinfo_1.default('Unexpected error processing authURL response; err = ' + e.message, 40170, 401));\n return;\n }\n }\n cb(null, body, contentType);\n };\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Auth.requestToken().tokenRequestCallback', 'Requesting token from ' + authOptions.authUrl + '; Params: ' + JSON.stringify(authParams) + '; method: ' + (usePost ? 'POST' : 'GET'));\n if (usePost) {\n /* send body form-encoded */\n var headers = authHeaders || {};\n headers['content-type'] = 'application/x-www-form-urlencoded';\n var body = Utils.toQueryString(authParams).slice(1); /* slice is to remove the initial '?' */\n _this.client.http.doUri(HttpMethods_1.default.Post, client, authOptions.authUrl, headers, body, providedQsParams, authUrlRequestCallback);\n } else {\n _this.client.http.doUri(HttpMethods_1.default.Get, client, authOptions.authUrl, authHeaders || {}, null, authParams, authUrlRequestCallback);\n }\n };\n } else if (authOptions.key) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth.requestToken()', 'using token auth with client-side signing');\n tokenRequestCallback = function (params, cb) {\n _this.createTokenRequest(params, authOptions, cb);\n };\n } else {\n var msg = 'Need a new token, but authOptions does not include any way to request one (no authUrl, authCallback, or key)';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth()', 'library initialized with a token literal without any way to renew the token when it expires (no authUrl, authCallback, or key). See https://help.ably.io/error/40171 for help');\n _callback(new errorinfo_1.default(msg, 40171, 403));\n return;\n }\n /* normalise token params */\n if ('capability' in tokenParams) tokenParams.capability = c14n(tokenParams.capability);\n var tokenRequest = function (signedTokenParams, tokenCb) {\n var keyName = signedTokenParams.keyName,\n path = '/keys/' + keyName + '/requestToken',\n tokenUri = function (host) {\n return client.baseUri(host) + path;\n };\n var requestHeaders = Utils.defaultPostHeaders(_this.client.options);\n if (authOptions.requestHeaders) Utils.mixin(requestHeaders, authOptions.requestHeaders);\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Auth.requestToken().requestToken', 'Sending POST to ' + path + '; Token params: ' + JSON.stringify(signedTokenParams));\n _this.client.http.do(HttpMethods_1.default.Post, client, tokenUri, requestHeaders, JSON.stringify(signedTokenParams), null, tokenCb);\n };\n var tokenRequestCallbackTimeoutExpired = false,\n timeoutLength = this.client.options.timeouts.realtimeRequestTimeout,\n tokenRequestCallbackTimeout = setTimeout(function () {\n tokenRequestCallbackTimeoutExpired = true;\n var msg = 'Token request callback timed out after ' + timeoutLength / 1000 + ' seconds';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth.requestToken()', msg);\n _callback(new errorinfo_1.default(msg, 40170, 401));\n }, timeoutLength);\n tokenRequestCallback(tokenParams, function (err, tokenRequestOrDetails, contentType) {\n if (tokenRequestCallbackTimeoutExpired) return;\n clearTimeout(tokenRequestCallbackTimeout);\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth.requestToken()', 'token request signing call returned error; err = ' + Utils.inspectError(err));\n _callback(normaliseAuthcallbackError(err));\n return;\n }\n /* the response from the callback might be a token string, a signed request or a token details */\n if (typeof tokenRequestOrDetails === 'string') {\n if (tokenRequestOrDetails.length === 0) {\n _callback(new errorinfo_1.default('Token string is empty', 40170, 401));\n } else if (tokenRequestOrDetails.length > MAX_TOKEN_LENGTH) {\n _callback(new errorinfo_1.default('Token string exceeded max permitted length (was ' + tokenRequestOrDetails.length + ' bytes)', 40170, 401));\n } else if (tokenRequestOrDetails === 'undefined' || tokenRequestOrDetails === 'null') {\n /* common failure mode with poorly-implemented authCallbacks */\n _callback(new errorinfo_1.default('Token string was literal null/undefined', 40170, 401));\n } else if (tokenRequestOrDetails[0] === '{' && !(contentType && contentType.indexOf('application/jwt') > -1)) {\n _callback(new errorinfo_1.default(\"Token was double-encoded; make sure you're not JSON-encoding an already encoded token request or details\", 40170, 401));\n } else {\n _callback(null, {\n token: tokenRequestOrDetails\n });\n }\n return;\n }\n if (typeof tokenRequestOrDetails !== 'object') {\n var msg = 'Expected token request callback to call back with a token string or token request/details object, but got a ' + typeof tokenRequestOrDetails;\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth.requestToken()', msg);\n _callback(new errorinfo_1.default(msg, 40170, 401));\n return;\n }\n var objectSize = JSON.stringify(tokenRequestOrDetails).length;\n if (objectSize > MAX_TOKEN_LENGTH && !authOptions.suppressMaxLengthCheck) {\n _callback(new errorinfo_1.default('Token request/details object exceeded max permitted stringified size (was ' + objectSize + ' bytes)', 40170, 401));\n return;\n }\n if ('issued' in tokenRequestOrDetails) {\n /* a tokenDetails object */\n _callback(null, tokenRequestOrDetails);\n return;\n }\n if (!('keyName' in tokenRequestOrDetails)) {\n var msg = 'Expected token request callback to call back with a token string, token request object, or token details object';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth.requestToken()', msg);\n _callback(new errorinfo_1.default(msg, 40170, 401));\n return;\n }\n /* it's a token request, so make the request */\n tokenRequest(tokenRequestOrDetails, function (err, tokenResponse, headers, unpacked) {\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth.requestToken()', 'token request API call returned error; err = ' + Utils.inspectError(err));\n _callback(normaliseAuthcallbackError(err));\n return;\n }\n if (!unpacked) tokenResponse = JSON.parse(tokenResponse);\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth.getToken()', 'token received');\n _callback(null, tokenResponse);\n });\n });\n };\n /**\n * Create and sign a token request based on the given options.\n * NOTE this can only be used when the key value is available locally.\n * Otherwise, signed token requests must be obtained from the key\n * owner (either using the token request callback or url).\n *\n * @param authOptions\n * an object containing the request options:\n * - key: the key to use. If not specified, a key passed in constructing\n * the Rest interface will be used\n *\n * - queryTime (optional) boolean indicating that the ably system should be\n * queried for the current time when none is specified explicitly\n *\n * - requestHeaders (optional, unsupported, for testing only) extra headers to add to the\n * requestToken request\n *\n * @param tokenParams\n * an object containing the parameters for the requested token:\n * - ttl: (optional) the requested life of the token in ms. If none is specified\n * a default of 1 hour is provided. The maximum lifetime is 24hours; any request\n * exceeding that lifetime will be rejected with an error.\n *\n * - capability: (optional) the capability to associate with the access token.\n * If none is specified, a token will be requested with all of the\n * capabilities of the specified key.\n *\n * - clientId: (optional) a client ID to associate with the token; if not\n * specified, a clientId passed in constructing the Rest interface will be used\n *\n * - timestamp: (optional) the time in ms since the epoch. If none is specified,\n * the system will be queried for a time value to use.\n *\n * @param callback\n */\n Auth.prototype.createTokenRequest = function (tokenParams, authOptions, callback) {\n var _this = this;\n /* shuffle and normalise arguments as necessary */\n if (typeof tokenParams == 'function' && !callback) {\n callback = tokenParams;\n authOptions = tokenParams = null;\n } else if (typeof authOptions == 'function' && !callback) {\n callback = authOptions;\n authOptions = null;\n }\n if (!callback && this.client.options.promises) {\n return Utils.promisify(this, 'createTokenRequest', arguments);\n }\n /* RSA9h: if authOptions passed in, they're used instead of stored, don't merge them */\n authOptions = authOptions || this.authOptions;\n tokenParams = tokenParams || Utils.copy(this.tokenParams);\n var key = authOptions.key;\n if (!key) {\n callback(new errorinfo_1.default('No key specified', 40101, 403));\n return;\n }\n var keyParts = key.split(':'),\n keyName = keyParts[0],\n keySecret = keyParts[1];\n if (!keySecret) {\n callback(new errorinfo_1.default('Invalid key specified', 40101, 403));\n return;\n }\n if (tokenParams.clientId === '') {\n callback(new errorinfo_1.default('clientId can’t be an empty string', 40012, 400));\n return;\n }\n if ('capability' in tokenParams) {\n tokenParams.capability = c14n(tokenParams.capability);\n }\n var request = Utils.mixin({\n keyName: keyName\n }, tokenParams),\n clientId = tokenParams.clientId || '',\n ttl = tokenParams.ttl || '',\n capability = tokenParams.capability || '';\n (function (authoriseCb) {\n if (request.timestamp) {\n authoriseCb();\n return;\n }\n _this.getTimestamp(authOptions && authOptions.queryTime, function (err, time) {\n if (err) {\n callback(err);\n return;\n }\n request.timestamp = time;\n authoriseCb();\n });\n })(function () {\n /* nonce */\n /* NOTE: there is no expectation that the client\n * specifies the nonce; this is done by the library\n * However, this can be overridden by the client\n * simply for testing purposes. */\n var nonce = request.nonce || (request.nonce = random()),\n timestamp = request.timestamp;\n var signText = request.keyName + '\\n' + ttl + '\\n' + capability + '\\n' + clientId + '\\n' + timestamp + '\\n' + nonce + '\\n';\n /* mac */\n /* NOTE: there is no expectation that the client\n * specifies the mac; this is done by the library\n * However, this can be overridden by the client\n * simply for testing purposes. */\n request.mac = request.mac || hmac(signText, keySecret);\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth.getTokenRequest()', 'generated signed request');\n callback(null, request);\n });\n };\n /**\n * Get the auth query params to use for a websocket connection,\n * based on the current auth parameters\n */\n Auth.prototype.getAuthParams = function (callback) {\n if (this.method == 'basic') callback(null, {\n key: this.key\n });else this._ensureValidAuthCredentials(false, function (err, tokenDetails) {\n if (err) {\n callback(err);\n return;\n }\n if (!tokenDetails) {\n throw new Error('Auth.getAuthParams(): _ensureValidAuthCredentials returned no error or tokenDetails');\n }\n callback(null, {\n access_token: tokenDetails.token\n });\n });\n };\n /**\n * Get the authorization header to use for a REST or comet request,\n * based on the current auth parameters\n */\n Auth.prototype.getAuthHeaders = function (callback) {\n if (this.method == 'basic') {\n callback(null, {\n authorization: 'Basic ' + this.basicKey\n });\n } else {\n this._ensureValidAuthCredentials(false, function (err, tokenDetails) {\n if (err) {\n callback(err);\n return;\n }\n if (!tokenDetails) {\n throw new Error('Auth.getAuthParams(): _ensureValidAuthCredentials returned no error or tokenDetails');\n }\n callback(null, {\n authorization: 'Bearer ' + toBase64(tokenDetails.token)\n });\n });\n }\n };\n /**\n * Get the current time based on the local clock,\n * or if the option queryTime is true, return the server time.\n * The server time offset from the local time is stored so that\n * only one request to the server to get the time is ever needed\n */\n Auth.prototype.getTimestamp = function (queryTime, callback) {\n if (!this.isTimeOffsetSet() && (queryTime || this.authOptions.queryTime)) {\n this.client.time(callback);\n } else {\n callback(null, this.getTimestampUsingOffset());\n }\n };\n Auth.prototype.getTimestampUsingOffset = function () {\n return Utils.now() + (this.client.serverTimeOffset || 0);\n };\n Auth.prototype.isTimeOffsetSet = function () {\n return this.client.serverTimeOffset !== null;\n };\n Auth.prototype._saveBasicOptions = function (authOptions) {\n this.method = 'basic';\n this.key = authOptions.key;\n this.basicKey = toBase64(authOptions.key);\n this.authOptions = authOptions || {};\n if ('clientId' in authOptions) {\n this._userSetClientId(authOptions.clientId);\n }\n };\n Auth.prototype._saveTokenOptions = function (tokenParams, authOptions) {\n this.method = 'token';\n if (tokenParams) {\n /* We temporarily persist tokenParams.timestamp in case a new token needs\n * to be requested, then null it out in the callback of\n * _ensureValidAuthCredentials for RSA10g compliance */\n this.tokenParams = tokenParams;\n }\n if (authOptions) {\n /* normalise */\n if (authOptions.token) {\n /* options.token may contain a token string or, for convenience, a TokenDetails */\n authOptions.tokenDetails = typeof authOptions.token === 'string' ? {\n token: authOptions.token\n } : authOptions.token;\n }\n if (authOptions.tokenDetails) {\n this.tokenDetails = authOptions.tokenDetails;\n }\n if ('clientId' in authOptions) {\n this._userSetClientId(authOptions.clientId);\n }\n this.authOptions = authOptions;\n }\n };\n /* @param forceSupersede: force a new token request even if there's one in\n * progress, making all pending callbacks wait for the new one */\n Auth.prototype._ensureValidAuthCredentials = function (forceSupersede, callback) {\n var _this = this;\n var token = this.tokenDetails;\n if (token) {\n if (this._tokenClientIdMismatch(token.clientId)) {\n /* 403 to trigger a permanently failed client - RSA15c */\n callback(new errorinfo_1.default('Mismatch between clientId in token (' + token.clientId + ') and current clientId (' + this.clientId + ')', 40102, 403));\n return;\n }\n /* RSA4b1 -- if we have a server time offset set already, we can\n * automatically remove expired tokens. Else just use the cached token. If it is\n * expired Ably will tell us and we'll discard it then. */\n if (!this.isTimeOffsetSet() || !token.expires || token.expires >= this.getTimestampUsingOffset()) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth.getToken()', 'using cached token; expires = ' + token.expires);\n callback(null, token);\n return;\n }\n /* expired, so remove and fallthrough to getting a new one */\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth.getToken()', 'deleting expired token');\n this.tokenDetails = null;\n }\n (this.waitingForTokenRequest || (this.waitingForTokenRequest = multicaster_1.default.create())).push(callback);\n if (this.currentTokenRequestId !== null && !forceSupersede) {\n return;\n }\n /* Request a new token */\n var tokenRequestId = this.currentTokenRequestId = getTokenRequestId();\n this.requestToken(this.tokenParams, this.authOptions, function (err, tokenResponse) {\n if (_this.currentTokenRequestId > tokenRequestId) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth._ensureValidAuthCredentials()', 'Discarding token request response; overtaken by newer one');\n return;\n }\n _this.currentTokenRequestId = null;\n var callbacks = _this.waitingForTokenRequest || noop;\n _this.waitingForTokenRequest = null;\n if (err) {\n callbacks(err);\n return;\n }\n callbacks(null, _this.tokenDetails = tokenResponse);\n });\n };\n /* User-set: check types, '*' is disallowed, throw any errors */\n Auth.prototype._userSetClientId = function (clientId) {\n if (!(typeof clientId === 'string' || clientId === null)) {\n throw new errorinfo_1.default('clientId must be either a string or null', 40012, 400);\n } else if (clientId === '*') {\n throw new errorinfo_1.default('Can’t use \"*\" as a clientId as that string is reserved. (To change the default token request behaviour to use a wildcard clientId, instantiate the library with {defaultTokenParams: {clientId: \"*\"}}), or if calling authorize(), pass it in as a tokenParam: authorize({clientId: \"*\"}, authOptions)', 40012, 400);\n } else {\n var err = this._uncheckedSetClientId(clientId);\n if (err) throw err;\n }\n };\n /* Ably-set: no typechecking, '*' is allowed but not set on this.clientId), return errors to the caller */\n Auth.prototype._uncheckedSetClientId = function (clientId) {\n if (this._tokenClientIdMismatch(clientId)) {\n /* Should never happen in normal circumstances as realtime should\n * recognise mismatch and return an error */\n var msg = 'Unexpected clientId mismatch: client has ' + this.clientId + ', requested ' + clientId;\n var err = new errorinfo_1.default(msg, 40102, 401);\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth._uncheckedSetClientId()', msg);\n return err;\n } else {\n /* RSA7a4: if options.clientId is provided and is not\n * null, it overrides defaultTokenParams.clientId */\n this.clientId = this.tokenParams.clientId = clientId;\n return null;\n }\n };\n Auth.prototype._tokenClientIdMismatch = function (tokenClientId) {\n return !!(this.clientId && this.clientId !== '*' && tokenClientId && tokenClientId !== '*' && this.clientId !== tokenClientId);\n };\n Auth.isTokenErr = function (error) {\n return error.code && error.code >= 40140 && error.code < 40150;\n };\n return Auth;\n }();\n exports.default = Auth;\n\n /***/\n }, /* 17 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var HttpMethods;\n (function (HttpMethods) {\n HttpMethods[\"Get\"] = \"get\";\n HttpMethods[\"Delete\"] = \"delete\";\n HttpMethods[\"Post\"] = \"post\";\n HttpMethods[\"Put\"] = \"put\";\n HttpMethods[\"Patch\"] = \"patch\";\n })(HttpMethods || (HttpMethods = {}));\n exports.default = HttpMethods;\n\n /***/\n }, /* 18 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.HttpPaginatedResponse = exports.PaginatedResult = void 0;\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var resource_1 = tslib_1.__importDefault(__webpack_require__(24));\n function getRelParams(linkUrl) {\n var urlMatch = linkUrl.match(/^\\.\\/(\\w+)\\?(.*)$/);\n return urlMatch && urlMatch[2] && Utils.parseQueryString(urlMatch[2]);\n }\n function parseRelLinks(linkHeader) {\n if (typeof linkHeader == 'string') linkHeader = linkHeader.split(',');\n var relParams = {};\n for (var i = 0; i < linkHeader.length; i++) {\n var linkMatch = linkHeader[i].match(/^\\s*<(.+)>;\\s*rel=\"(\\w+)\"$/);\n if (linkMatch) {\n var params = getRelParams(linkMatch[1]);\n if (params) relParams[linkMatch[2]] = params;\n }\n }\n return relParams;\n }\n function returnErrOnly(err, body, useHPR) {\n /* If using httpPaginatedResponse, errors from Ably are returned as part of\n * the HPR, only do callback(err) for network errors etc. which don't\n * return a body and/or have no ably-originated error code (non-numeric\n * error codes originate from node) */\n return !(useHPR && (body || typeof err.code === 'number'));\n }\n var PaginatedResource = /** @class */function () {\n function PaginatedResource(rest, path, headers, envelope, bodyHandler, useHttpPaginatedResponse) {\n this.rest = rest;\n this.path = path;\n this.headers = headers;\n this.envelope = envelope !== null && envelope !== void 0 ? envelope : null;\n this.bodyHandler = bodyHandler;\n this.useHttpPaginatedResponse = useHttpPaginatedResponse || false;\n }\n PaginatedResource.prototype.get = function (params, callback) {\n var _this = this;\n resource_1.default.get(this.rest, this.path, this.headers, params, this.envelope, function (err, body, headers, unpacked, statusCode) {\n _this.handlePage(err, body, headers, unpacked, statusCode, callback);\n });\n };\n PaginatedResource.prototype.delete = function (params, callback) {\n var _this = this;\n resource_1.default.delete(this.rest, this.path, this.headers, params, this.envelope, function (err, body, headers, unpacked, statusCode) {\n _this.handlePage(err, body, headers, unpacked, statusCode, callback);\n });\n };\n PaginatedResource.prototype.post = function (params, body, callback) {\n var _this = this;\n resource_1.default.post(this.rest, this.path, body, this.headers, params, this.envelope, function (err, responseBody, headers, unpacked, statusCode) {\n if (callback) {\n _this.handlePage(err, responseBody, headers, unpacked, statusCode, callback);\n }\n });\n };\n PaginatedResource.prototype.put = function (params, body, callback) {\n var _this = this;\n resource_1.default.put(this.rest, this.path, body, this.headers, params, this.envelope, function (err, responseBody, headers, unpacked, statusCode) {\n if (callback) {\n _this.handlePage(err, responseBody, headers, unpacked, statusCode, callback);\n }\n });\n };\n PaginatedResource.prototype.patch = function (params, body, callback) {\n var _this = this;\n resource_1.default.patch(this.rest, this.path, body, this.headers, params, this.envelope, function (err, responseBody, headers, unpacked, statusCode) {\n if (callback) {\n _this.handlePage(err, responseBody, headers, unpacked, statusCode, callback);\n }\n });\n };\n PaginatedResource.prototype.handlePage = function (err, body, headers, unpacked, statusCode, callback) {\n if (err && returnErrOnly(err, body, this.useHttpPaginatedResponse)) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'PaginatedResource.handlePage()', 'Unexpected error getting resource: err = ' + Utils.inspectError(err));\n callback === null || callback === void 0 ? void 0 : callback(err);\n return;\n }\n var items, linkHeader, relParams;\n try {\n items = this.bodyHandler(body, headers || {}, unpacked);\n } catch (e) {\n /* If we got an error, the failure to parse the body is almost certainly\n * due to that, so callback with that in preference over the parse error */\n callback === null || callback === void 0 ? void 0 : callback(err || e);\n return;\n }\n if (headers && (linkHeader = headers['Link'] || headers['link'])) {\n relParams = parseRelLinks(linkHeader);\n }\n if (this.useHttpPaginatedResponse) {\n callback(null, new HttpPaginatedResponse(this, items, headers || {}, statusCode, relParams, err));\n } else {\n callback(null, new PaginatedResult(this, items, relParams));\n }\n };\n return PaginatedResource;\n }();\n var PaginatedResult = /** @class */function () {\n function PaginatedResult(resource, items, relParams) {\n var _this = this;\n this.resource = resource;\n this.items = items;\n var self = this;\n if (relParams) {\n if ('first' in relParams) {\n this.first = function (callback) {\n if (!callback && self.resource.rest.options.promises) {\n return Utils.promisify(self, 'first', []);\n }\n self.get(relParams.first, callback);\n };\n }\n if ('current' in relParams) {\n this.current = function (callback) {\n if (!callback && self.resource.rest.options.promises) {\n return Utils.promisify(self, 'current', []);\n }\n self.get(relParams.current, callback);\n };\n }\n this.next = function (callback) {\n if (!callback && self.resource.rest.options.promises) {\n return Utils.promisify(self, 'next', []);\n }\n if ('next' in relParams) {\n self.get(relParams.next, callback);\n } else {\n callback(null);\n }\n };\n this.hasNext = function () {\n return 'next' in relParams;\n };\n this.isLast = function () {\n var _a;\n return !((_a = _this.hasNext) === null || _a === void 0 ? void 0 : _a.call(_this));\n };\n }\n }\n /* We assume that only the initial request can be a POST, and that accessing\n * the rest of a multipage set of results can always be done with GET */\n PaginatedResult.prototype.get = function (params, callback) {\n var res = this.resource;\n resource_1.default.get(res.rest, res.path, res.headers, params, res.envelope, function (err, body, headers, unpacked, statusCode) {\n res.handlePage(err, body, headers, unpacked, statusCode, callback);\n });\n };\n return PaginatedResult;\n }();\n exports.PaginatedResult = PaginatedResult;\n var HttpPaginatedResponse = /** @class */function (_super) {\n tslib_1.__extends(HttpPaginatedResponse, _super);\n function HttpPaginatedResponse(resource, items, headers, statusCode, relParams, err) {\n var _this = _super.call(this, resource, items, relParams) || this;\n _this.statusCode = statusCode;\n _this.success = statusCode < 300 && statusCode >= 200;\n _this.headers = headers;\n _this.errorCode = err && err.code;\n _this.errorMessage = err && err.message;\n return _this;\n }\n HttpPaginatedResponse.prototype.toJSON = function () {\n return {\n items: this.items,\n statusCode: this.statusCode,\n success: this.success,\n headers: this.headers,\n errorCode: this.errorCode,\n errorMessage: this.errorMessage\n };\n };\n return HttpPaginatedResponse;\n }(PaginatedResult);\n exports.HttpPaginatedResponse = HttpPaginatedResponse;\n exports.default = PaginatedResource;\n\n /***/\n }, /* 19 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.isRetriable = void 0;\n var tslib_1 = __webpack_require__(1);\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var ConnectionErrors = {\n disconnected: errorinfo_1.default.fromValues({\n statusCode: 400,\n code: 80003,\n message: 'Connection to server temporarily unavailable'\n }),\n suspended: errorinfo_1.default.fromValues({\n statusCode: 400,\n code: 80002,\n message: 'Connection to server unavailable'\n }),\n failed: errorinfo_1.default.fromValues({\n statusCode: 400,\n code: 80000,\n message: 'Connection failed or disconnected by server'\n }),\n closing: errorinfo_1.default.fromValues({\n statusCode: 400,\n code: 80017,\n message: 'Connection closing'\n }),\n closed: errorinfo_1.default.fromValues({\n statusCode: 400,\n code: 80017,\n message: 'Connection closed'\n }),\n unknownConnectionErr: errorinfo_1.default.fromValues({\n statusCode: 500,\n code: 50002,\n message: 'Internal connection error'\n }),\n unknownChannelErr: errorinfo_1.default.fromValues({\n statusCode: 500,\n code: 50001,\n message: 'Internal channel error'\n })\n };\n function isRetriable(err) {\n if (!err.statusCode || !err.code || err.statusCode >= 500) {\n return true;\n }\n var retriable = false;\n Object.values(ConnectionErrors).forEach(function (connErr) {\n if (connErr.code && connErr.code == err.code) {\n retriable = true;\n }\n });\n return retriable;\n }\n exports.isRetriable = isRetriable;\n exports.default = ConnectionErrors;\n\n /***/\n }, /* 20 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var XHRStates;\n (function (XHRStates) {\n XHRStates[XHRStates[\"REQ_SEND\"] = 0] = \"REQ_SEND\";\n XHRStates[XHRStates[\"REQ_RECV\"] = 1] = \"REQ_RECV\";\n XHRStates[XHRStates[\"REQ_RECV_POLL\"] = 2] = \"REQ_RECV_POLL\";\n XHRStates[XHRStates[\"REQ_RECV_STREAM\"] = 3] = \"REQ_RECV_STREAM\";\n })(XHRStates || (XHRStates = {}));\n exports.default = XHRStates;\n\n /***/\n }, /* 21 */\n /***/function (module, exports, __webpack_require__) {\n ;\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(6), __webpack_require__(4), __webpack_require__(58), __webpack_require__(13), __webpack_require__(40), __webpack_require__(31), __webpack_require__(23), __webpack_require__(27), __webpack_require__(28), __webpack_require__(59), __webpack_require__(60));\n } else {}\n })(this, function (CryptoJS) {\n return CryptoJS;\n });\n\n /***/\n }, /* 22 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var Multicaster = /** @class */function () {\n // Private constructor; use static Multicaster.create instead\n function Multicaster(members) {\n this.members = members || [];\n }\n Multicaster.prototype.call = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n for (var _a = 0, _b = this.members; _a < _b.length; _a++) {\n var member = _b[_a];\n if (member) {\n try {\n member.apply(void 0, args);\n } catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Multicaster multiple callback handler', 'Unexpected exception: ' + e + '; stack = ' + e.stack);\n }\n }\n }\n };\n Multicaster.prototype.push = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n (_a = this.members).push.apply(_a, args);\n };\n Multicaster.create = function (members) {\n var instance = new Multicaster(members);\n return Object.assign(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return instance.call.apply(instance, args);\n }, {\n push: function (fn) {\n return instance.push(fn);\n }\n });\n };\n return Multicaster;\n }();\n exports.default = Multicaster;\n\n /***/\n }, /* 23 */\n /***/function (module, exports, __webpack_require__) {\n ;\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(6));\n } else {}\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var C_algo = C.algo;\n\n /**\n * HMAC algorithm.\n */\n var HMAC = C_algo.HMAC = Base.extend({\n /**\n * Initializes a newly created HMAC.\n *\n * @param {Hasher} hasher The hash algorithm to use.\n * @param {WordArray|string} key The secret key.\n *\n * @example\n *\n * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n */\n init: function (hasher, key) {\n // Init hasher\n hasher = this._hasher = new hasher.init();\n\n // Convert string to WordArray, else assume WordArray already\n if (typeof key == 'string') {\n key = Utf8.parse(key);\n }\n\n // Shortcuts\n var hasherBlockSize = hasher.blockSize;\n var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n // Allow arbitrary length keys\n if (key.sigBytes > hasherBlockSizeBytes) {\n key = hasher.finalize(key);\n }\n\n // Clamp excess bits\n key.clamp();\n\n // Clone key for inner and outer pads\n var oKey = this._oKey = key.clone();\n var iKey = this._iKey = key.clone();\n\n // Shortcuts\n var oKeyWords = oKey.words;\n var iKeyWords = iKey.words;\n\n // XOR keys with pad constants\n for (var i = 0; i < hasherBlockSize; i++) {\n oKeyWords[i] ^= 0x5c5c5c5c;\n iKeyWords[i] ^= 0x36363636;\n }\n oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n // Set initial values\n this.reset();\n },\n /**\n * Resets this HMAC to its initial state.\n *\n * @example\n *\n * hmacHasher.reset();\n */\n reset: function () {\n // Shortcut\n var hasher = this._hasher;\n\n // Reset\n hasher.reset();\n hasher.update(this._iKey);\n },\n /**\n * Updates this HMAC with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {HMAC} This HMAC instance.\n *\n * @example\n *\n * hmacHasher.update('message');\n * hmacHasher.update(wordArray);\n */\n update: function (messageUpdate) {\n this._hasher.update(messageUpdate);\n\n // Chainable\n return this;\n },\n /**\n * Finalizes the HMAC computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The HMAC.\n *\n * @example\n *\n * var hmac = hmacHasher.finalize();\n * var hmac = hmacHasher.finalize('message');\n * var hmac = hmacHasher.finalize(wordArray);\n */\n finalize: function (messageUpdate) {\n // Shortcut\n var hasher = this._hasher;\n\n // Compute HMAC\n var innerHash = hasher.finalize(messageUpdate);\n hasher.reset();\n var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n return hmac;\n }\n });\n })();\n });\n\n /***/\n }, /* 24 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var auth_1 = tslib_1.__importDefault(__webpack_require__(16));\n var HttpMethods_1 = tslib_1.__importDefault(__webpack_require__(17));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n function withAuthDetails(rest, headers, params, errCallback, opCallback) {\n if (rest.http.supportsAuthHeaders) {\n rest.auth.getAuthHeaders(function (err, authHeaders) {\n if (err) errCallback(err);else opCallback(Utils.mixin(authHeaders, headers), params);\n });\n } else {\n rest.auth.getAuthParams(function (err, authParams) {\n if (err) errCallback(err);else opCallback(headers, Utils.mixin(authParams, params));\n });\n }\n }\n function unenvelope(callback, format) {\n return function (err, body, outerHeaders, unpacked, outerStatusCode) {\n if (err && !body) {\n callback(err);\n return;\n }\n if (!unpacked) {\n try {\n body = Utils.decodeBody(body, format);\n } catch (e) {\n if (Utils.isErrorInfo(e)) {\n callback(e);\n } else {\n callback(new errorinfo_1.default(Utils.inspectError(e), null));\n }\n return;\n }\n }\n if (!body) {\n callback(new errorinfo_1.default('unenvelope(): Response body is missing', null));\n return;\n }\n var _a = body,\n wrappedStatusCode = _a.statusCode,\n response = _a.response,\n wrappedHeaders = _a.headers;\n if (wrappedStatusCode === undefined) {\n /* Envelope already unwrapped by the transport */\n callback(err, body, outerHeaders, true, outerStatusCode);\n return;\n }\n if (wrappedStatusCode < 200 || wrappedStatusCode >= 300) {\n /* handle wrapped errors */\n var wrappedErr = response && response.error || err;\n if (!wrappedErr) {\n wrappedErr = new Error('Error in unenveloping ' + body);\n wrappedErr.statusCode = wrappedStatusCode;\n }\n callback(wrappedErr, response, wrappedHeaders, true, wrappedStatusCode);\n return;\n }\n callback(err, response, wrappedHeaders, true, wrappedStatusCode);\n };\n }\n function paramString(params) {\n var paramPairs = [];\n if (params) {\n for (var needle in params) {\n paramPairs.push(needle + '=' + params[needle]);\n }\n }\n return paramPairs.join('&');\n }\n function urlFromPathAndParams(path, params) {\n return path + (params ? '?' : '') + paramString(params);\n }\n function logResponseHandler(callback, method, path, params) {\n return function (err, body, headers, unpacked, statusCode) {\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Resource.' + method + '()', 'Received Error; ' + urlFromPathAndParams(path, params) + '; Error: ' + Utils.inspectError(err));\n } else {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Resource.' + method + '()', 'Received; ' + urlFromPathAndParams(path, params) + '; Headers: ' + paramString(headers) + '; StatusCode: ' + statusCode + '; Body: ' + (platform_1.default.BufferUtils.isBuffer(body) ? body.toString() : body));\n }\n if (callback) {\n callback(err, body, headers, unpacked, statusCode);\n }\n };\n }\n var Resource = /** @class */function () {\n function Resource() {}\n Resource.get = function (rest, path, headers, params, envelope, callback) {\n Resource.do(HttpMethods_1.default.Get, rest, path, null, headers, params, envelope, callback);\n };\n Resource.delete = function (rest, path, headers, params, envelope, callback) {\n Resource.do(HttpMethods_1.default.Delete, rest, path, null, headers, params, envelope, callback);\n };\n Resource.post = function (rest, path, body, headers, params, envelope, callback) {\n Resource.do(HttpMethods_1.default.Post, rest, path, body, headers, params, envelope, callback);\n };\n Resource.patch = function (rest, path, body, headers, params, envelope, callback) {\n Resource.do(HttpMethods_1.default.Patch, rest, path, body, headers, params, envelope, callback);\n };\n Resource.put = function (rest, path, body, headers, params, envelope, callback) {\n Resource.do(HttpMethods_1.default.Put, rest, path, body, headers, params, envelope, callback);\n };\n Resource.do = function (method, rest, path, body, headers, params, envelope, callback) {\n if (logger_1.default.shouldLog(logger_1.default.LOG_MICRO)) {\n callback = logResponseHandler(callback, method, path, params);\n }\n if (envelope) {\n callback = callback && unenvelope(callback, envelope);\n (params = params || {})['envelope'] = envelope;\n }\n function doRequest(headers, params) {\n var _a;\n if (logger_1.default.shouldLog(logger_1.default.LOG_MICRO)) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Resource.' + method + '()', 'Sending; ' + urlFromPathAndParams(path, params));\n }\n if (logger_1.default.shouldLog(logger_1.default.LOG_MICRO)) {\n var decodedBody = body;\n if (((_a = headers['content-type']) === null || _a === void 0 ? void 0 : _a.indexOf('msgpack')) > 0) {\n try {\n decodedBody = platform_1.default.Config.msgpack.decode(body);\n } catch (decodeErr) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Resource.' + method + '()', 'Sending MsgPack Decoding Error: ' + Utils.inspectError(decodeErr));\n }\n }\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Resource.' + method + '()', 'Sending; ' + urlFromPathAndParams(path, params) + '; Body: ' + decodedBody);\n }\n rest.http.do(method, rest, path, headers, body, params, function (err, res, headers, unpacked, statusCode) {\n if (err && auth_1.default.isTokenErr(err)) {\n /* token has expired, so get a new one */\n rest.auth.authorize(null, null, function (err) {\n if (err) {\n callback(err);\n return;\n }\n /* retry ... */\n withAuthDetails(rest, headers, params, callback, doRequest);\n });\n return;\n }\n callback(err, res, headers, unpacked, statusCode);\n });\n }\n withAuthDetails(rest, headers, params, callback, doRequest);\n };\n return Resource;\n }();\n exports.default = Resource;\n\n /***/\n }, /* 25 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n /* WEBPACK VAR INJECTION */\n (function (global) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.TransportParams = void 0;\n var tslib_1 = __webpack_require__(1);\n var protocolmessage_1 = tslib_1.__importDefault(__webpack_require__(10));\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var protocol_1 = tslib_1.__importStar(__webpack_require__(52));\n var defaults_1 = tslib_1.__importStar(__webpack_require__(8));\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n var eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\n var messagequeue_1 = tslib_1.__importDefault(__webpack_require__(35));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var connectionstatechange_1 = tslib_1.__importDefault(__webpack_require__(36));\n var connectionerrors_1 = tslib_1.__importStar(__webpack_require__(19));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var auth_1 = tslib_1.__importDefault(__webpack_require__(16));\n var message_1 = tslib_1.__importDefault(__webpack_require__(9));\n var multicaster_1 = tslib_1.__importDefault(__webpack_require__(22));\n var websockettransport_1 = tslib_1.__importDefault(__webpack_require__(53));\n var transport_1 = tslib_1.__importDefault(__webpack_require__(26));\n var HttpStatusCodes_1 = tslib_1.__importDefault(__webpack_require__(37));\n var haveWebStorage = function () {\n var _a;\n return typeof platform_1.default.WebStorage !== 'undefined' && ((_a = platform_1.default.WebStorage) === null || _a === void 0 ? void 0 : _a.localSupported);\n };\n var haveSessionStorage = function () {\n var _a;\n return typeof platform_1.default.WebStorage !== 'undefined' && ((_a = platform_1.default.WebStorage) === null || _a === void 0 ? void 0 : _a.sessionSupported);\n };\n var actions = protocolmessage_1.default.Action;\n var noop = function () {};\n var transportPreferenceName = 'ably-transport-preference';\n var sessionRecoveryName = 'ably-connection-recovery';\n function getSessionRecoverData() {\n var _a, _b;\n return haveSessionStorage() && ((_b = (_a = platform_1.default.WebStorage) === null || _a === void 0 ? void 0 : _a.getSession) === null || _b === void 0 ? void 0 : _b.call(_a, sessionRecoveryName));\n }\n function setSessionRecoverData(value) {\n var _a, _b;\n return haveSessionStorage() && ((_b = (_a = platform_1.default.WebStorage) === null || _a === void 0 ? void 0 : _a.setSession) === null || _b === void 0 ? void 0 : _b.call(_a, sessionRecoveryName, value));\n }\n function clearSessionRecoverData() {\n var _a, _b;\n return haveSessionStorage() && ((_b = (_a = platform_1.default.WebStorage) === null || _a === void 0 ? void 0 : _a.removeSession) === null || _b === void 0 ? void 0 : _b.call(_a, sessionRecoveryName));\n }\n function betterTransportThan(a, b) {\n return Utils.arrIndexOf(platform_1.default.Defaults.transportPreferenceOrder, a.shortName) > Utils.arrIndexOf(platform_1.default.Defaults.transportPreferenceOrder, b.shortName);\n }\n function bundleWith(dest, src, maxSize) {\n var action;\n if (dest.channel !== src.channel) {\n /* RTL6d3 */\n return false;\n }\n if ((action = dest.action) !== actions.PRESENCE && action !== actions.MESSAGE) {\n /* RTL6d - can only bundle messages or presence */\n return false;\n }\n if (action !== src.action) {\n /* RTL6d4 */\n return false;\n }\n var kind = action === actions.PRESENCE ? 'presence' : 'messages',\n proposed = dest[kind].concat(src[kind]),\n size = message_1.default.getMessagesSize(proposed);\n if (size > maxSize) {\n /* RTL6d1 */\n return false;\n }\n if (!Utils.allSame(proposed, 'clientId')) {\n /* RTL6d2 */\n return false;\n }\n if (!Utils.arrEvery(proposed, function (msg) {\n return !msg.id;\n })) {\n /* RTL6d7 */\n return false;\n }\n /* we're good to go! */\n dest[kind] = proposed;\n return true;\n }\n function decodeRecoveryKey(recoveryKey) {\n try {\n return JSON.parse(recoveryKey);\n } catch (e) {\n return null;\n }\n }\n var TransportParams = /** @class */function () {\n function TransportParams(options, host, mode, connectionKey) {\n this.options = options;\n this.host = host;\n this.mode = mode;\n this.connectionKey = connectionKey;\n this.format = options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json;\n }\n TransportParams.prototype.getConnectParams = function (authParams) {\n var params = authParams ? Utils.copy(authParams) : {};\n var options = this.options;\n switch (this.mode) {\n case 'upgrade':\n params.upgrade = this.connectionKey;\n break;\n case 'resume':\n params.resume = this.connectionKey;\n break;\n case 'recover':\n {\n var recoveryContext = decodeRecoveryKey(options.recover);\n if (recoveryContext) {\n params.recover = recoveryContext.connectionKey;\n }\n break;\n }\n default:\n }\n if (options.clientId !== undefined) {\n params.clientId = options.clientId;\n }\n if (options.echoMessages === false) {\n params.echo = 'false';\n }\n if (this.format !== undefined) {\n params.format = this.format;\n }\n if (this.stream !== undefined) {\n params.stream = this.stream;\n }\n if (this.heartbeats !== undefined) {\n params.heartbeats = this.heartbeats;\n }\n params.v = defaults_1.default.apiVersion;\n params.agent = encodeURIComponent((0, defaults_1.getAgentString)(this.options));\n if (options.transportParams !== undefined) {\n Utils.mixin(params, options.transportParams);\n }\n return params;\n };\n TransportParams.prototype.toString = function () {\n var result = '[mode=' + this.mode;\n if (this.host) {\n result += ',host=' + this.host;\n }\n if (this.connectionKey) {\n result += ',connectionKey=' + this.connectionKey;\n }\n if (this.format) {\n result += ',format=' + this.format;\n }\n result += ']';\n return result;\n };\n return TransportParams;\n }();\n exports.TransportParams = TransportParams;\n var ConnectionManager = /** @class */function (_super) {\n tslib_1.__extends(ConnectionManager, _super);\n function ConnectionManager(realtime, options) {\n var _this = _super.call(this) || this;\n _this.disconnectedRetryCount = 0;\n ConnectionManager.initTransports();\n _this.realtime = realtime;\n _this.options = options;\n var timeouts = options.timeouts;\n /* connectingTimeout: leave preferenceConnectTimeout (~6s) to try the\n * preference transport, then realtimeRequestTimeout (~10s) to establish\n * the base transport in case that fails */\n var connectingTimeout = timeouts.preferenceConnectTimeout + timeouts.realtimeRequestTimeout;\n _this.states = {\n initialized: {\n state: 'initialized',\n terminal: false,\n queueEvents: true,\n sendEvents: false,\n failState: 'disconnected'\n },\n connecting: {\n state: 'connecting',\n terminal: false,\n queueEvents: true,\n sendEvents: false,\n retryDelay: connectingTimeout,\n failState: 'disconnected'\n },\n connected: {\n state: 'connected',\n terminal: false,\n queueEvents: false,\n sendEvents: true,\n failState: 'disconnected'\n },\n synchronizing: {\n state: 'connected',\n terminal: false,\n queueEvents: true,\n sendEvents: false,\n forceQueueEvents: true,\n failState: 'disconnected'\n },\n disconnected: {\n state: 'disconnected',\n terminal: false,\n queueEvents: true,\n sendEvents: false,\n retryDelay: timeouts.disconnectedRetryTimeout,\n failState: 'disconnected'\n },\n suspended: {\n state: 'suspended',\n terminal: false,\n queueEvents: false,\n sendEvents: false,\n retryDelay: timeouts.suspendedRetryTimeout,\n failState: 'suspended'\n },\n closing: {\n state: 'closing',\n terminal: false,\n queueEvents: false,\n sendEvents: false,\n retryDelay: timeouts.realtimeRequestTimeout,\n failState: 'closed'\n },\n closed: {\n state: 'closed',\n terminal: true,\n queueEvents: false,\n sendEvents: false,\n failState: 'closed'\n },\n failed: {\n state: 'failed',\n terminal: true,\n queueEvents: false,\n sendEvents: false,\n failState: 'failed'\n }\n };\n _this.state = _this.states.initialized;\n _this.errorReason = null;\n _this.queuedMessages = new messagequeue_1.default();\n _this.msgSerial = 0;\n _this.connectionDetails = undefined;\n _this.connectionId = undefined;\n _this.connectionKey = undefined;\n _this.connectionStateTtl = timeouts.connectionStateTtl;\n _this.maxIdleInterval = null;\n _this.transports = Utils.intersect(options.transports || defaults_1.default.defaultTransports, ConnectionManager.supportedTransports);\n /* baseTransports selects the leftmost transport in the Defaults.baseTransportOrder list\n * that's both requested and supported. Normally this will be xhr_polling;\n * if xhr isn't supported it will be jsonp. If the user has forced a\n * transport, it'll just be that one. */\n _this.baseTransport = Utils.intersect(defaults_1.default.baseTransportOrder, _this.transports)[0];\n _this.upgradeTransports = Utils.intersect(_this.transports, defaults_1.default.upgradeTransports);\n _this.transportPreference = null;\n _this.httpHosts = defaults_1.default.getHosts(options);\n _this.activeProtocol = null;\n _this.proposedTransports = [];\n _this.pendingTransports = [];\n _this.host = null;\n _this.lastAutoReconnectAttempt = null;\n _this.lastActivity = null;\n _this.forceFallbackHost = false;\n _this.connectCounter = 0;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Realtime.ConnectionManager()', 'started');\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Realtime.ConnectionManager()', 'requested transports = [' + (options.transports || defaults_1.default.defaultTransports) + ']');\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Realtime.ConnectionManager()', 'available transports = [' + _this.transports + ']');\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Realtime.ConnectionManager()', 'http hosts = [' + _this.httpHosts + ']');\n if (!_this.transports.length) {\n var msg = 'no requested transports available';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'realtime.ConnectionManager()', msg);\n throw new Error(msg);\n }\n var addEventListener = platform_1.default.Config.addEventListener;\n if (addEventListener) {\n /* intercept close event in browser to persist connection id if requested */\n if (haveSessionStorage() && typeof options.recover === 'function') {\n /* Usually can't use bind as not supported in IE8, but IE doesn't support sessionStorage, so... */\n addEventListener('beforeunload', _this.persistConnection.bind(_this));\n }\n if (options.closeOnUnload === true) {\n addEventListener('beforeunload', function () {\n logger_1.default.logAction(logger_1.default.LOG_MAJOR, 'Realtime.ConnectionManager()', 'beforeunload event has triggered the connection to close as closeOnUnload is true');\n _this.requestState({\n state: 'closing'\n });\n });\n }\n /* Listen for online and offline events */\n addEventListener('online', function () {\n if (_this.state == _this.states.disconnected || _this.state == _this.states.suspended) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager caught browser ‘online’ event', 'reattempting connection');\n _this.requestState({\n state: 'connecting'\n });\n }\n });\n addEventListener('offline', function () {\n if (_this.state == _this.states.connected) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager caught browser ‘offline’ event', 'disconnecting active transport');\n // Not sufficient to just go to the 'disconnected' state, want to\n // force all transports to reattempt the connection. Will immediately\n // retry.\n _this.disconnectAllTransports();\n }\n });\n }\n return _this;\n }\n ConnectionManager.initTransports = function () {\n (0, websockettransport_1.default)(ConnectionManager);\n Utils.arrForEach(platform_1.default.Transports, function (initFn) {\n initFn(ConnectionManager);\n });\n };\n ConnectionManager.prototype.createTransportParams = function (host, mode) {\n return new TransportParams(this.options, host, mode, this.connectionKey);\n };\n ConnectionManager.prototype.getTransportParams = function (callback) {\n var _this = this;\n var decideMode = function (modeCb) {\n if (_this.connectionKey) {\n modeCb('resume');\n return;\n }\n if (typeof _this.options.recover === 'string') {\n modeCb('recover');\n return;\n }\n var recoverFn = _this.options.recover,\n lastSessionData = getSessionRecoverData();\n if (lastSessionData && typeof recoverFn === 'function') {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.getTransportParams()', 'Calling clientOptions-provided recover function with last session data');\n recoverFn(lastSessionData, function (shouldRecover) {\n if (shouldRecover) {\n _this.options.recover = lastSessionData.recoveryKey;\n modeCb('recover');\n } else {\n modeCb('clean');\n }\n });\n return;\n }\n modeCb('clean');\n };\n decideMode(function (mode) {\n var transportParams = _this.createTransportParams(null, mode);\n if (mode === 'recover') {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.getTransportParams()', 'Transport recovery mode = recover; recoveryKey = ' + _this.options.recover);\n var recoveryContext = decodeRecoveryKey(_this.options.recover);\n if (recoveryContext) {\n _this.msgSerial = recoveryContext.msgSerial;\n }\n } else {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.getTransportParams()', 'Transport params = ' + transportParams.toString());\n }\n callback(transportParams);\n });\n };\n /**\n * Attempt to connect using a given transport\n * @param transportParams\n * @param candidate, the transport to try\n * @param callback\n */\n ConnectionManager.prototype.tryATransport = function (transportParams, candidate, callback) {\n var _this = this;\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.tryATransport()', 'trying ' + candidate);\n transport_1.default.tryConnect(ConnectionManager.supportedTransports[candidate], this, this.realtime.auth, transportParams, function (wrappedErr, transport) {\n var state = _this.state;\n if (state == _this.states.closing || state == _this.states.closed || state == _this.states.failed) {\n if (transport) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.tryATransport()', 'connection ' + state.state + ' while we were attempting the transport; closing ' + transport);\n transport.close();\n }\n callback(true);\n return;\n }\n if (wrappedErr) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.tryATransport()', 'transport ' + candidate + ' ' + wrappedErr.event + ', err: ' + wrappedErr.error.toString());\n /* Comet transport onconnect token errors can be dealt with here.\n * Websocket ones only happen after the transport claims to be viable,\n * so are dealt with as non-onconnect token errors */\n if (auth_1.default.isTokenErr(wrappedErr.error) && !(_this.errorReason && auth_1.default.isTokenErr(_this.errorReason))) {\n _this.errorReason = wrappedErr.error;\n /* re-get a token and try again */\n _this.realtime.auth._forceNewToken(null, null, function (err) {\n if (err) {\n _this.actOnErrorFromAuthorize(err);\n return;\n }\n _this.tryATransport(transportParams, candidate, callback);\n });\n } else if (wrappedErr.event === 'failed') {\n /* Error that's fatal to the connection */\n _this.notifyState({\n state: 'failed',\n error: wrappedErr.error\n });\n callback(true);\n } else if (wrappedErr.event === 'disconnected') {\n if (!(0, connectionerrors_1.isRetriable)(wrappedErr.error)) {\n /* Error received from the server that does not call for trying a fallback host, eg a rate limit */\n _this.notifyState({\n state: _this.states.connecting.failState,\n error: wrappedErr.error\n });\n callback(true);\n } else {\n /* Error with that transport only; continue trying other fallback hosts */\n callback(false);\n }\n }\n return;\n }\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.tryATransport()', 'viable transport ' + candidate + '; setting pending');\n _this.setTransportPending(transport, transportParams);\n callback(null, transport);\n });\n };\n /**\n * Called when a transport is indicated to be viable, and the ConnectionManager\n * expects to activate this transport as soon as it is connected.\n * @param transport\n * @param transportParams\n */\n ConnectionManager.prototype.setTransportPending = function (transport, transportParams) {\n var _this = this;\n var mode = transportParams.mode;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.setTransportPending()', 'transport = ' + transport + '; mode = ' + mode);\n Utils.arrDeleteValue(this.proposedTransports, transport);\n this.pendingTransports.push(transport);\n var optimalTransport = platform_1.default.Defaults.transportPreferenceOrder[platform_1.default.Defaults.transportPreferenceOrder.length - 1];\n transport.once('connected', function (error, connectionId, connectionDetails) {\n if (mode == 'upgrade' && _this.activeProtocol) {\n /* if ws and xhrs are connecting in parallel, delay xhrs activation to let ws go ahead */\n if (transport.shortName !== optimalTransport && Utils.arrIn(_this.getUpgradePossibilities(), optimalTransport) && _this.activeProtocol) {\n setTimeout(function () {\n _this.scheduleTransportActivation(error, transport, connectionId, connectionDetails);\n }, _this.options.timeouts.parallelUpgradeDelay);\n } else {\n _this.scheduleTransportActivation(error, transport, connectionId, connectionDetails);\n }\n } else {\n _this.activateTransport(error, transport, connectionId, connectionDetails);\n /* allow connectImpl to start the upgrade process if needed, but allow\n * other event handlers, including activating the transport, to run first */\n platform_1.default.Config.nextTick(function () {\n _this.connectImpl(transportParams);\n });\n }\n if (mode === 'recover' && _this.options.recover) {\n /* After a successful recovery, we unpersist, as a recovery key cannot\n * be used more than once */\n _this.options.recover = null;\n _this.unpersistConnection();\n }\n });\n var self = this;\n transport.on(['disconnected', 'closed', 'failed'], function (error) {\n self.deactivateTransport(transport, this.event, error);\n });\n this.emit('transport.pending', transport);\n };\n /**\n * Called when an upgrade transport is connected,\n * to schedule the activation of that transport.\n * @param error\n * @param transport\n * @param connectionId\n * @param connectionDetails\n */\n ConnectionManager.prototype.scheduleTransportActivation = function (error, transport, connectionId, connectionDetails) {\n var _this = this;\n var currentTransport = this.activeProtocol && this.activeProtocol.getTransport(),\n abandon = function () {\n transport.disconnect();\n Utils.arrDeleteValue(_this.pendingTransports, transport);\n };\n if (this.state !== this.states.connected && this.state !== this.states.connecting) {\n /* This is most likely to happen for the delayed XHRs, when XHRs and ws are scheduled in parallel*/\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.scheduleTransportActivation()', 'Current connection state (' + this.state.state + (this.state === this.states.synchronizing ? ', but with an upgrade already in progress' : '') + ') is not valid to upgrade in; abandoning upgrade to ' + transport.shortName);\n abandon();\n return;\n }\n if (currentTransport && !betterTransportThan(transport, currentTransport)) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.scheduleTransportActivation()', 'Proposed transport ' + transport.shortName + ' is no better than current active transport ' + currentTransport.shortName + ' - abandoning upgrade');\n abandon();\n return;\n }\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.scheduleTransportActivation()', 'Scheduling transport upgrade; transport = ' + transport);\n var oldProtocol = null;\n if (!transport.isConnected) {\n /* This is only possible if the xhr streaming transport was disconnected during the parallelUpgradeDelay */\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.scheduleTransportActivation()', 'Proposed transport ' + transport.shortName + 'is no longer connected; abandoning upgrade');\n abandon();\n return;\n }\n if (this.state === this.states.connected) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.scheduleTransportActivation()', 'Currently connected, so temporarily pausing events until the upgrade is complete');\n this.state = this.states.synchronizing;\n oldProtocol = this.activeProtocol;\n } else if (this.state !== this.states.connecting) {\n /* Note: upgrading from the connecting state is valid if the old active\n * transport was deactivated after the upgrade transport first connected;\n * see logic in deactivateTransport */\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.scheduleTransportActivation()', 'Current connection state (' + this.state.state + (this.state === this.states.synchronizing ? ', but with an upgrade already in progress' : '') + ') is not valid to upgrade in; abandoning upgrade to ' + transport.shortName);\n abandon();\n return;\n }\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.scheduleTransportActivation()', 'Syncing transport; transport = ' + transport);\n var finishUpgrade = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.scheduleTransportActivation()', 'Activating transport; transport = ' + transport);\n // Send ACTIVATE to tell the server to make this transport the\n // active transport, which suspends channels until we re-attach.\n transport.send(protocolmessage_1.default.fromValues({\n action: actions.ACTIVATE\n }));\n _this.activateTransport(error, transport, connectionId, connectionDetails);\n /* Restore pre-sync state. If state has changed in the meantime,\n * don't touch it -- since the websocket transport waits a tick before\n * disposing itself, it's possible for it to have happily synced\n * without err while, unknown to it, the connection has closed in the\n * meantime and the ws transport is scheduled for death */\n if (_this.state === _this.states.synchronizing) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.scheduleTransportActivation()', 'Pre-upgrade protocol idle, sending queued messages on upgraded transport; transport = ' + transport);\n _this.state = _this.states.connected;\n } else {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.scheduleTransportActivation()', 'Pre-upgrade protocol idle, but state is now ' + _this.state.state + ', so leaving unchanged');\n }\n if (_this.state.sendEvents) {\n _this.sendQueuedMessages();\n }\n };\n /* Wait until sync is done and old transport is idle before activating new transport. This\n * guarantees that messages arrive at realtime in the same order they are sent.\n *\n * If a message times out on the old transport, since it's still the active transport the\n * message will be requeued. deactivateTransport will see the pending transport and notify\n * the `connecting` state without starting a new connection, so the new transport can take\n * over once deactivateTransport clears the old protocol's queue.\n *\n * If there is no old protocol, that meant that we weren't in the connected state at the\n * beginning of the sync - likely the base transport died just before the sync. So can just\n * finish the upgrade. If we're actually in closing/failed rather than connecting, that's\n * fine, activatetransport will deal with that. */\n if (oldProtocol) {\n /* Most of the time this will be already true: the new-transport sync will have given\n * enough time for in-flight messages on the old transport to complete. */\n oldProtocol.onceIdle(finishUpgrade);\n } else {\n finishUpgrade();\n }\n };\n /**\n * Called when a transport is connected, and the connectionmanager decides that\n * it will now be the active transport. Returns whether or not it activated\n * the transport (if the connection is closing/closed it will choose not to).\n * @param transport the transport instance\n * @param connectionId the id of the new active connection\n * @param connectionDetails the details of the new active connection\n */\n ConnectionManager.prototype.activateTransport = function (error, transport, connectionId, connectionDetails) {\n var _this = this;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.activateTransport()', 'transport = ' + transport);\n if (error) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.activateTransport()', 'error = ' + error);\n }\n if (connectionId) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.activateTransport()', 'connectionId = ' + connectionId);\n }\n if (connectionDetails) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.activateTransport()', 'connectionDetails = ' + JSON.stringify(connectionDetails));\n }\n this.persistTransportPreference(transport);\n /* if the connectionmanager moved to the closing/closed state before this\n * connection event, then we won't activate this transport */\n var existingState = this.state,\n connectedState = this.states.connected.state;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.activateTransport()', 'current state = ' + existingState.state);\n if (existingState.state == this.states.closing.state || existingState.state == this.states.closed.state || existingState.state == this.states.failed.state) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.activateTransport()', 'Disconnecting transport and abandoning');\n transport.disconnect();\n return false;\n }\n /* remove this transport from pending transports */\n Utils.arrDeleteValue(this.pendingTransports, transport);\n /* if the transport is not connected then don't activate it */\n if (!transport.isConnected) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.activateTransport()', 'Declining to activate transport ' + transport + ' since it appears to no longer be connected');\n return false;\n }\n /* the given transport is connected; this will immediately\n * take over as the active transport */\n var existingActiveProtocol = this.activeProtocol;\n this.activeProtocol = new protocol_1.default(transport);\n this.host = transport.params.host;\n var connectionKey = connectionDetails.connectionKey;\n if (connectionKey && this.connectionKey != connectionKey) {\n this.setConnection(connectionId, connectionDetails, !!error);\n }\n /* Rebroadcast any new connectionDetails from the active transport, which\n * can come at any time (eg following a reauth), and emit an RTN24 UPDATE\n * event. (Listener added on nextTick because we're in a transport.on('connected')\n * callback at the moment; if we add it now we'll be adding it to the end\n * of the listeners array and it'll be called immediately) */\n this.onConnectionDetailsUpdate(connectionDetails, transport);\n platform_1.default.Config.nextTick(function () {\n transport.on('connected', function (connectedErr, _connectionId, connectionDetails) {\n _this.onConnectionDetailsUpdate(connectionDetails, transport);\n _this.emit('update', new connectionstatechange_1.default(connectedState, connectedState, null, connectedErr));\n });\n });\n /* If previously not connected, notify the state change (including any\n * error). */\n if (existingState.state === this.states.connected.state) {\n if (error) {\n /* if upgrading without error, leave any existing errorReason alone */\n this.errorReason = this.realtime.connection.errorReason = error;\n /* Only bother emitting an upgrade if there's an error; otherwise it's\n * just a transport upgrade, so auth details won't have changed */\n this.emit('update', new connectionstatechange_1.default(connectedState, connectedState, null, error));\n }\n } else {\n this.notifyState({\n state: 'connected',\n error: error\n });\n this.errorReason = this.realtime.connection.errorReason = error || null;\n }\n /* Send after the connection state update, as Channels hooks into this to\n * resend attaches on a new transport if necessary */\n this.emit('transport.active', transport);\n /* Gracefully terminate existing protocol */\n if (existingActiveProtocol) {\n if (existingActiveProtocol.messageQueue.count() > 0) {\n /* We could just requeue pending messages on the new transport, but\n * actually this should never happen: transports should only take over\n * from other active transports when upgrading, and upgrading waits for\n * the old transport to be idle. So log an error. */\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.activateTransport()', 'Previous active protocol (for transport ' + existingActiveProtocol.transport.shortName + ', new one is ' + transport.shortName + ') finishing with ' + existingActiveProtocol.messageQueue.count() + ' messages still pending');\n }\n if (existingActiveProtocol.transport === transport) {\n var msg = 'Assumption violated: activating a transport that was also the transport for the previous active protocol; transport = ' + transport.shortName + '; stack = ' + new Error().stack;\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.activateTransport()', msg);\n } else {\n existingActiveProtocol.finish();\n }\n }\n /* Terminate any other pending transport(s), and\n * abort any not-yet-pending transport attempts */\n Utils.safeArrForEach(this.pendingTransports, function (pendingTransport) {\n if (pendingTransport === transport) {\n var msg = 'Assumption violated: activating a transport that is still marked as a pending transport; transport = ' + transport.shortName + '; stack = ' + new Error().stack;\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.activateTransport()', msg);\n Utils.arrDeleteValue(_this.pendingTransports, transport);\n } else {\n pendingTransport.disconnect();\n }\n });\n Utils.safeArrForEach(this.proposedTransports, function (proposedTransport) {\n if (proposedTransport === transport) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.activateTransport()', 'Assumption violated: activating a transport that is still marked as a proposed transport; transport = ' + transport.shortName + '; stack = ' + new Error().stack);\n Utils.arrDeleteValue(_this.proposedTransports, transport);\n } else {\n proposedTransport.dispose();\n }\n });\n return true;\n };\n /**\n * Called when a transport is no longer the active transport. This can occur\n * in any transport connection state.\n * @param transport\n */\n ConnectionManager.prototype.deactivateTransport = function (transport, state, error) {\n var currentProtocol = this.activeProtocol,\n wasActive = currentProtocol && currentProtocol.getTransport() === transport,\n wasPending = Utils.arrDeleteValue(this.pendingTransports, transport),\n wasProposed = Utils.arrDeleteValue(this.proposedTransports, transport),\n noTransportsScheduledForActivation = this.noTransportsScheduledForActivation();\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.deactivateTransport()', 'transport = ' + transport);\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.deactivateTransport()', 'state = ' + state + (wasActive ? '; was active' : wasPending ? '; was pending' : wasProposed ? '; was proposed' : '') + (noTransportsScheduledForActivation ? '' : '; another transport is scheduled for activation'));\n if (error && error.message) logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.deactivateTransport()', 'reason = ' + error.message);\n if (wasActive) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.deactivateTransport()', 'Getting, clearing, and requeuing ' + this.activeProtocol.messageQueue.count() + ' pending messages');\n this.queuePendingMessages(currentProtocol.getPendingMessages());\n /* Clear any messages we requeue to allow the protocol to become idle.\n * In case of an upgrade, this will trigger an immediate activation of\n * the upgrade transport, so delay a tick so this transport can finish\n * deactivating */\n platform_1.default.Config.nextTick(function () {\n currentProtocol.clearPendingMessages();\n });\n this.activeProtocol = this.host = null;\n }\n this.emit('transport.inactive', transport);\n /* this transport state change is a state change for the connectionmanager if\n * - the transport was the active transport and there are no transports\n * which are connected and scheduled for activation, just waiting for the\n * active transport to finish what its doing; or\n * - the transport was the active transport and the error was fatal (so\n * unhealable by another transport); or\n * - there is no active transport, and this is the last remaining\n * pending transport (so we were in the connecting state)\n */\n if (wasActive && noTransportsScheduledForActivation || wasActive && state === 'failed' || state === 'closed' || currentProtocol === null && wasPending && this.pendingTransports.length === 0) {\n /* If we're disconnected with a 5xx we need to try fallback hosts\n * (RTN14d), but (a) due to how the upgrade sequence works, the\n * host/transport selection sequence only cares about getting to\n * `preconnect` (eg establishing a websocket) getting a `disconnected`\n * protocol message afterwards is too late; and (b) host retry only\n * applies to connectBase unless the stored preference transport doesn't\n * work. We solve this by unpersisting the transport preference and\n * setting an instance variable to force fallback hosts to be used (if\n * any) here. Bit of a kludge, but no real better alternatives without\n * rewriting the entire thing */\n if (state === 'disconnected' && error && error.statusCode > 500 && this.httpHosts.length > 1) {\n this.unpersistTransportPreference();\n this.forceFallbackHost = true;\n /* and try to connect again to try a fallback host without waiting for the usual 15s disconnectedRetryTimeout */\n this.notifyState({\n state: state,\n error: error,\n retryImmediately: true\n });\n return;\n }\n /* TODO remove below line once realtime sends token errors as DISCONNECTEDs */\n var newConnectionState = state === 'failed' && auth_1.default.isTokenErr(error) ? 'disconnected' : state;\n this.notifyState({\n state: newConnectionState,\n error: error\n });\n return;\n }\n if (wasActive && state === 'disconnected' && this.state !== this.states.synchronizing) {\n /* If we were active but there is another transport scheduled for\n * activation, go into to the connecting state until that transport\n * activates and sets us back to connected. (manually starting the\n * transition timers in case that never happens). (If we were in the\n * synchronizing state, then that's fine, the old transport just got its\n * disconnected before the new one got the sync -- ignore it and keep\n * waiting for the sync. If it fails we have a separate sync timer that\n * will expire). */\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.deactivateTransport()', 'wasActive but another transport is connected and scheduled for activation, so going into the connecting state until it activates');\n this.startSuspendTimer();\n this.startTransitionTimer(this.states.connecting);\n this.notifyState({\n state: 'connecting',\n error: error\n });\n }\n };\n /* Helper that returns true if there are no transports which are pending,\n * have been connected, and are just waiting for onceNoPending to fire before\n * being activated */\n ConnectionManager.prototype.noTransportsScheduledForActivation = function () {\n return Utils.isEmpty(this.pendingTransports) || this.pendingTransports.every(function (transport) {\n return !transport.isConnected;\n });\n };\n ConnectionManager.prototype.setConnection = function (connectionId, connectionDetails, hasConnectionError) {\n /* if connectionKey changes but connectionId stays the same, then just a\n * transport change on the same connection. If connectionId changes, we're\n * on a new connection, with implications for msgSerial and channel state */\n /* If no previous connectionId, don't reset the msgSerial as it may have\n * been set by recover data (unless the recover failed) */\n var prevConnId = this.connectionId,\n connIdChanged = prevConnId && prevConnId !== connectionId,\n recoverFailure = !prevConnId && hasConnectionError;\n if (connIdChanged || recoverFailure) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.setConnection()', 'Resetting msgSerial');\n this.msgSerial = 0;\n // RTN19a2: In the event of a new connectionId, previous msgSerials are\n // meaningless.\n this.queuedMessages.resetSendAttempted();\n }\n if (this.connectionId !== connectionId) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.setConnection()', 'New connectionId; reattaching any attached channels');\n }\n this.realtime.connection.id = this.connectionId = connectionId;\n this.realtime.connection.key = this.connectionKey = connectionDetails.connectionKey;\n };\n ConnectionManager.prototype.clearConnection = function () {\n this.realtime.connection.id = this.connectionId = undefined;\n this.realtime.connection.key = this.connectionKey = undefined;\n this.msgSerial = 0;\n this.unpersistConnection();\n };\n ConnectionManager.prototype.createRecoveryKey = function () {\n // RTN16g2.\n if (!this.connectionKey) {\n return null;\n }\n return JSON.stringify({\n connectionKey: this.connectionKey,\n msgSerial: this.msgSerial,\n channelSerials: this.realtime.channels.channelSerials()\n });\n };\n ConnectionManager.prototype.checkConnectionStateFreshness = function () {\n if (!this.lastActivity || !this.connectionId) {\n return;\n }\n var sinceLast = Utils.now() - this.lastActivity;\n if (sinceLast > this.connectionStateTtl + this.maxIdleInterval) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.checkConnectionStateFreshness()', 'Last known activity from realtime was ' + sinceLast + 'ms ago; discarding connection state');\n this.clearConnection();\n this.states.connecting.failState = 'suspended';\n }\n };\n /**\n * Called when the connectionmanager wants to persist transport\n * state for later recovery. Only applicable in the browser context.\n */\n ConnectionManager.prototype.persistConnection = function () {\n if (haveSessionStorage()) {\n var recoveryKey = this.createRecoveryKey();\n if (recoveryKey) {\n setSessionRecoverData({\n recoveryKey: recoveryKey,\n disconnectedAt: Utils.now(),\n location: global.location,\n clientId: this.realtime.auth.clientId\n });\n }\n }\n };\n /**\n * Called when the connectionmanager wants to persist transport\n * state for later recovery. Only applicable in the browser context.\n */\n ConnectionManager.prototype.unpersistConnection = function () {\n clearSessionRecoverData();\n };\n /*********************\n * state management\n *********************/\n ConnectionManager.prototype.getError = function () {\n return this.errorReason || this.getStateError();\n };\n ConnectionManager.prototype.getStateError = function () {\n return connectionerrors_1.default[this.state.state];\n };\n ConnectionManager.prototype.activeState = function () {\n return this.state.queueEvents || this.state.sendEvents;\n };\n ConnectionManager.prototype.enactStateChange = function (stateChange) {\n var logLevel = stateChange.current === 'failed' ? logger_1.default.LOG_ERROR : logger_1.default.LOG_MAJOR;\n logger_1.default.logAction(logLevel, 'Connection state', stateChange.current + (stateChange.reason ? '; reason: ' + stateChange.reason : ''));\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.enactStateChange', 'setting new state: ' + stateChange.current + '; reason = ' + (stateChange.reason && stateChange.reason.message));\n var newState = this.state = this.states[stateChange.current];\n if (stateChange.reason) {\n this.errorReason = stateChange.reason;\n this.realtime.connection.errorReason = stateChange.reason;\n }\n if (newState.terminal || newState.state === 'suspended') {\n /* suspended is nonterminal, but once in the suspended state, realtime\n * will have discarded our connection state, so futher connection\n * attempts should start from scratch */\n this.clearConnection();\n }\n this.emit('connectionstate', stateChange);\n };\n /****************************************\n * ConnectionManager connection lifecycle\n ****************************************/\n ConnectionManager.prototype.startTransitionTimer = function (transitionState) {\n var _this = this;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.startTransitionTimer()', 'transitionState: ' + transitionState.state);\n if (this.transitionTimer) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.startTransitionTimer()', 'clearing already-running timer');\n clearTimeout(this.transitionTimer);\n }\n this.transitionTimer = setTimeout(function () {\n if (_this.transitionTimer) {\n _this.transitionTimer = null;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager ' + transitionState.state + ' timer expired', 'requesting new state: ' + transitionState.failState);\n _this.notifyState({\n state: transitionState.failState\n });\n }\n }, transitionState.retryDelay);\n };\n ConnectionManager.prototype.cancelTransitionTimer = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.cancelTransitionTimer()', '');\n if (this.transitionTimer) {\n clearTimeout(this.transitionTimer);\n this.transitionTimer = null;\n }\n };\n ConnectionManager.prototype.startSuspendTimer = function () {\n var _this = this;\n if (this.suspendTimer) return;\n this.suspendTimer = setTimeout(function () {\n if (_this.suspendTimer) {\n _this.suspendTimer = null;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager suspend timer expired', 'requesting new state: suspended');\n _this.states.connecting.failState = 'suspended';\n _this.notifyState({\n state: 'suspended'\n });\n }\n }, this.connectionStateTtl);\n };\n ConnectionManager.prototype.checkSuspendTimer = function (state) {\n if (state !== 'disconnected' && state !== 'suspended' && state !== 'connecting') this.cancelSuspendTimer();\n };\n ConnectionManager.prototype.cancelSuspendTimer = function () {\n this.states.connecting.failState = 'disconnected';\n if (this.suspendTimer) {\n clearTimeout(this.suspendTimer);\n this.suspendTimer = null;\n }\n };\n ConnectionManager.prototype.startRetryTimer = function (interval) {\n var _this = this;\n this.retryTimer = setTimeout(function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager retry timer expired', 'retrying');\n _this.retryTimer = null;\n _this.requestState({\n state: 'connecting'\n });\n }, interval);\n };\n ConnectionManager.prototype.cancelRetryTimer = function () {\n if (this.retryTimer) {\n clearTimeout(this.retryTimer);\n this.retryTimer = null;\n }\n };\n ConnectionManager.prototype.notifyState = function (indicated) {\n var _this = this;\n var state = indicated.state;\n /* We retry immediately if:\n * - something disconnects us while we're connected, or\n * - a viable (but not yet active) transport fails due to a token error (so\n * this.errorReason will be set, and startConnect will do a forced\n * authorize). If this.errorReason is already set (to a token error),\n * then there has been at least one previous attempt to connect that also\n * failed for a token error, so by RTN14b we go to DISCONNECTED and wait\n * before trying again */\n var retryImmediately = state === 'disconnected' && (this.state === this.states.connected || this.state === this.states.synchronizing || indicated.retryImmediately || this.state === this.states.connecting && indicated.error && auth_1.default.isTokenErr(indicated.error) && !(this.errorReason && auth_1.default.isTokenErr(this.errorReason)));\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.notifyState()', 'new state: ' + state + (retryImmediately ? '; will retry connection immediately' : ''));\n /* do nothing if we're already in the indicated state */\n if (state == this.state.state) return;\n /* kill timers (possibly excepting suspend timer depending on the notified\n * state), as these are superseded by this notification */\n this.cancelTransitionTimer();\n this.cancelRetryTimer();\n this.checkSuspendTimer(indicated.state);\n if (state === 'suspended' || state === 'connected') {\n this.disconnectedRetryCount = 0;\n }\n /* do nothing if we're unable to move from the current state */\n if (this.state.terminal) return;\n /* process new state */\n var newState = this.states[indicated.state];\n var retryDelay = newState.retryDelay;\n if (newState.state === 'disconnected') {\n this.disconnectedRetryCount++;\n retryDelay = newState.retryDelay * Utils.getBackoffCoefficient(this.disconnectedRetryCount) * Utils.getJitterCoefficient();\n }\n var change = new connectionstatechange_1.default(this.state.state, newState.state, retryDelay, indicated.error || connectionerrors_1.default[newState.state]);\n if (retryImmediately) {\n var autoReconnect = function () {\n if (_this.state === _this.states.disconnected) {\n _this.lastAutoReconnectAttempt = Utils.now();\n _this.requestState({\n state: 'connecting'\n });\n }\n };\n var sinceLast = this.lastAutoReconnectAttempt && Utils.now() - this.lastAutoReconnectAttempt + 1;\n if (sinceLast && sinceLast < 1000) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.notifyState()', 'Last reconnect attempt was only ' + sinceLast + 'ms ago, waiting another ' + (1000 - sinceLast) + 'ms before trying again');\n setTimeout(autoReconnect, 1000 - sinceLast);\n } else {\n platform_1.default.Config.nextTick(autoReconnect);\n }\n } else if (state === 'disconnected' || state === 'suspended') {\n this.startRetryTimer(retryDelay);\n }\n /* If going into disconnect/suspended (and not retrying immediately), or a\n * terminal state, ensure there are no orphaned transports hanging around. */\n if (state === 'disconnected' && !retryImmediately || state === 'suspended' || newState.terminal) {\n /* Wait till the next tick so the connection state change is enacted,\n * so aborting transports doesn't trigger redundant state changes */\n platform_1.default.Config.nextTick(function () {\n _this.disconnectAllTransports();\n });\n }\n if (state == 'connected' && !this.activeProtocol) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.notifyState()', 'Broken invariant: attempted to go into connected state, but there is no active protocol');\n }\n /* implement the change and notify */\n this.enactStateChange(change);\n if (this.state.sendEvents) {\n this.sendQueuedMessages();\n } else if (!this.state.queueEvents) {\n this.realtime.channels.propogateConnectionInterruption(state, change.reason);\n this.failQueuedMessages(change.reason); // RTN7c\n }\n };\n\n ConnectionManager.prototype.requestState = function (request) {\n var _this = this;\n var state = request.state;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.requestState()', 'requested state: ' + state + '; current state: ' + this.state.state);\n if (state == this.state.state) return; /* silently do nothing */\n /* kill running timers, as this request supersedes them */\n this.cancelTransitionTimer();\n this.cancelRetryTimer();\n /* for suspend timer check rather than cancel -- eg requesting a connecting\n * state should not reset the suspend timer */\n this.checkSuspendTimer(state);\n if (state == 'connecting' && this.state.state == 'connected') return;\n if (state == 'closing' && this.state.state == 'closed') return;\n var newState = this.states[state],\n change = new connectionstatechange_1.default(this.state.state, newState.state, null, request.error || connectionerrors_1.default[newState.state]);\n this.enactStateChange(change);\n if (state == 'connecting') {\n platform_1.default.Config.nextTick(function () {\n _this.startConnect();\n });\n }\n if (state == 'closing') {\n this.closeImpl();\n }\n };\n ConnectionManager.prototype.startConnect = function () {\n var _this = this;\n if (this.state !== this.states.connecting) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.startConnect()', 'Must be in connecting state to connect, but was ' + this.state.state);\n return;\n }\n var auth = this.realtime.auth;\n /* The point of the connectCounter mechanism is to ensure that the\n * connection procedure can be cancelled. We want disconnectAllTransports\n * to be able to stop any in-progress connection, even before it gets to\n * the stage of having a pending (or even a proposed) transport that it can\n * dispose() of. So we check that it's still current after any async stage,\n * up until the stage that is synchronous with instantiating a transport */\n var connectCount = ++this.connectCounter;\n var connect = function () {\n _this.checkConnectionStateFreshness();\n _this.getTransportParams(function (transportParams) {\n if (transportParams.mode === 'recover' && transportParams.options.recover) {\n var recoveryContext = decodeRecoveryKey(transportParams.options.recover);\n if (recoveryContext) {\n _this.realtime.channels.recoverChannels(recoveryContext.channelSerials);\n }\n }\n if (connectCount !== _this.connectCounter) {\n return;\n }\n _this.connectImpl(transportParams, connectCount);\n });\n };\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.startConnect()', 'starting connection');\n this.startSuspendTimer();\n this.startTransitionTimer(this.states.connecting);\n if (auth.method === 'basic') {\n connect();\n } else {\n var authCb = function (err) {\n if (connectCount !== _this.connectCounter) {\n return;\n }\n if (err) {\n _this.actOnErrorFromAuthorize(err);\n } else {\n connect();\n }\n };\n if (this.errorReason && auth_1.default.isTokenErr(this.errorReason)) {\n /* Force a refetch of a new token */\n auth._forceNewToken(null, null, authCb);\n } else {\n auth._ensureValidAuthCredentials(false, authCb);\n }\n }\n };\n /**\n * There are three stages in connecting:\n * - preference: if there is a cached transport preference, we try to connect\n * on that. If that fails or times out we abort the attempt, remove the\n * preference and fall back to base. If it succeeds, we try upgrading it if\n * needed (will only be in the case where the preference is xhrs and the\n * browser supports ws).\n * - base: we try to connect with the best transport that we think will\n * never fail for this browser (usually this is xhr_polling; for very old\n * browsers will be jsonp, for node will be comet). If it doesn't work, we\n * try fallback hosts.\n * - upgrade: given a connected transport, we see if there are any better\n * ones, and if so, try to upgrade to them.\n *\n * connectImpl works out what stage you're at (which is purely a function of\n * the current connection state and whether there are any stored preferences),\n * and dispatches accordingly. After a transport has been set pending,\n * tryATransport calls connectImpl to see if there's another stage to be done.\n * */\n ConnectionManager.prototype.connectImpl = function (transportParams, connectCount) {\n var state = this.state.state;\n if (state !== this.states.connecting.state && state !== this.states.connected.state) {\n /* Only keep trying as long as in the 'connecting' state (or 'connected'\n * for upgrading). Any operation can put us into 'disconnected' to cancel\n * connection attempts and wait before retrying, or 'failed' to fail. */\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.connectImpl()', 'Must be in connecting state to connect (or connected to upgrade), but was ' + state);\n } else if (this.pendingTransports.length) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.connectImpl()', 'Transports ' + this.pendingTransports[0].toString() + ' currently pending; taking no action');\n } else if (state == this.states.connected.state) {\n this.upgradeIfNeeded(transportParams);\n } else if (this.transports.length > 1 && this.getTransportPreference()) {\n this.connectPreference(transportParams);\n } else {\n this.connectBase(transportParams, connectCount);\n }\n };\n ConnectionManager.prototype.connectPreference = function (transportParams) {\n var _this = this;\n var preference = this.getTransportPreference();\n var preferenceTimeoutExpired = false;\n if (!Utils.arrIn(this.transports, preference)) {\n this.unpersistTransportPreference();\n this.connectImpl(transportParams);\n }\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.connectPreference()', 'Trying to connect with stored transport preference ' + preference);\n var preferenceTimeout = setTimeout(function () {\n preferenceTimeoutExpired = true;\n if (!(_this.state.state === _this.states.connected.state)) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.connectPreference()', 'Shortcircuit connection attempt with ' + preference + ' failed; clearing preference and trying from scratch');\n /* Abort all connection attempts. (This also disconnects the active\n * protocol, but none exists if we're not in the connected state) */\n _this.disconnectAllTransports();\n /* Be quite agressive about clearing the stored preference if ever it doesn't work */\n _this.unpersistTransportPreference();\n }\n _this.connectImpl(transportParams);\n }, this.options.timeouts.preferenceConnectTimeout);\n /* For connectPreference, just use the main host. If host fallback is needed, do it in connectBase.\n * The wstransport it will substitute the httphost for an appropriate wshost */\n transportParams.host = this.httpHosts[0];\n this.tryATransport(transportParams, preference, function (fatal, transport) {\n clearTimeout(preferenceTimeout);\n if (preferenceTimeoutExpired && transport) {\n /* Viable, but too late - connectImpl() will already be trying\n * connectBase, and we weren't in upgrade mode. Just remove the\n * onconnected listener and get rid of it */\n transport.off();\n transport.disconnect();\n Utils.arrDeleteValue(_this.pendingTransports, transport);\n } else if (!transport && !fatal) {\n /* Preference failed in a transport-specific way. Try more */\n _this.unpersistTransportPreference();\n _this.connectImpl(transportParams);\n }\n /* If suceeded, or failed fatally, nothing to do */\n });\n };\n /**\n * Try to establish a transport on the base transport (the best transport\n * such that if it doesn't work, nothing will work) as determined through\n * static feature detection, checking for network connectivity and trying\n * fallback hosts if applicable.\n * @param transportParams\n */\n ConnectionManager.prototype.connectBase = function (transportParams, connectCount) {\n var _this = this;\n var giveUp = function (err) {\n _this.notifyState({\n state: _this.states.connecting.failState,\n error: err\n });\n };\n var candidateHosts = this.httpHosts.slice();\n var hostAttemptCb = function (fatal, transport) {\n if (connectCount !== _this.connectCounter) {\n return;\n }\n if (!transport && !fatal) {\n tryFallbackHosts();\n }\n };\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.connectBase()', 'Trying to connect with base transport ' + this.baseTransport);\n /* first try to establish a connection with the priority host with http transport */\n var host = candidateHosts.shift();\n if (!host) {\n giveUp(new errorinfo_1.default('Unable to connect (no available host)', 80003, 404));\n return;\n }\n transportParams.host = host;\n /* this is what we'll be doing if the attempt for the main host fails */\n var tryFallbackHosts = function () {\n /* if there aren't any fallback hosts, fail */\n if (!candidateHosts.length) {\n giveUp(new errorinfo_1.default('Unable to connect (and no more fallback hosts to try)', 80003, 404));\n return;\n }\n /* before trying any fallback (or any remaining fallback) we decide if\n * there is a problem with the ably host, or there is a general connectivity\n * problem */\n if (!_this.realtime.http.checkConnectivity) {\n giveUp(new errorinfo_1.default('Internal error: Http.checkConnectivity not set', null, 500));\n return;\n }\n _this.realtime.http.checkConnectivity(function (err, connectivity) {\n if (connectCount !== _this.connectCounter) {\n return;\n }\n /* we know err won't happen but handle it here anyway */\n if (err) {\n giveUp(err);\n return;\n }\n if (!connectivity) {\n /* the internet isn't reachable, so don't try the fallback hosts */\n giveUp(new errorinfo_1.default('Unable to connect (network unreachable)', 80003, 404));\n return;\n }\n /* the network is there, so there's a problem with the main host, or\n * its dns. Try the fallback hosts. We could try them simultaneously but\n * that would potentially cause a huge spike in load on the load balancer */\n transportParams.host = Utils.arrPopRandomElement(candidateHosts);\n _this.tryATransport(transportParams, _this.baseTransport, hostAttemptCb);\n });\n };\n if (this.forceFallbackHost && candidateHosts.length) {\n this.forceFallbackHost = false;\n tryFallbackHosts();\n return;\n }\n this.tryATransport(transportParams, this.baseTransport, hostAttemptCb);\n };\n ConnectionManager.prototype.getUpgradePossibilities = function () {\n /* returns the subset of upgradeTransports to the right of the current\n * transport in upgradeTransports (if it's in there - if not, currentSerial\n * will be -1, so return upgradeTransports.slice(0) == upgradeTransports */\n var current = this.activeProtocol.getTransport().shortName;\n var currentSerial = Utils.arrIndexOf(this.upgradeTransports, current);\n return this.upgradeTransports.slice(currentSerial + 1);\n };\n ConnectionManager.prototype.upgradeIfNeeded = function (transportParams) {\n var _this = this;\n var upgradePossibilities = this.getUpgradePossibilities();\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.upgradeIfNeeded()', 'upgrade possibilities: ' + platform_1.default.Config.inspect(upgradePossibilities));\n if (!upgradePossibilities.length) {\n return;\n }\n Utils.arrForEach(upgradePossibilities, function (upgradeTransport) {\n /* Note: the transport may mutate the params, so give each transport a fresh one */\n var upgradeTransportParams = _this.createTransportParams(transportParams.host, 'upgrade');\n _this.tryATransport(upgradeTransportParams, upgradeTransport, noop);\n });\n };\n ConnectionManager.prototype.closeImpl = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.closeImpl()', 'closing connection');\n this.cancelSuspendTimer();\n this.startTransitionTimer(this.states.closing);\n Utils.safeArrForEach(this.pendingTransports, function (transport) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.closeImpl()', 'Closing pending transport: ' + transport);\n if (transport) transport.close();\n });\n Utils.safeArrForEach(this.proposedTransports, function (transport) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.closeImpl()', 'Disposing of proposed transport: ' + transport);\n if (transport) transport.dispose();\n });\n if (this.activeProtocol) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.closeImpl()', 'Closing active transport: ' + this.activeProtocol.getTransport());\n this.activeProtocol.getTransport().close();\n }\n /* If there was an active transport, this will probably be\n * preempted by the notifyState call in deactivateTransport */\n this.notifyState({\n state: 'closed'\n });\n };\n ConnectionManager.prototype.onAuthUpdated = function (tokenDetails, callback) {\n var _this = this;\n var _a;\n switch (this.state.state) {\n case 'connected':\n {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.onAuthUpdated()', 'Sending AUTH message on active transport');\n /* If there are any proposed/pending transports (eg an upgrade that\n * isn't yet scheduled for activation) that hasn't yet started syncing,\n * just to get rid of them & restart the upgrade with the new token, to\n * avoid a race condition. (If it has started syncing, the AUTH will be\n * queued until the upgrade is complete, so everything's fine) */\n if ((this.pendingTransports.length || this.proposedTransports.length) && this.state !== this.states.synchronizing) {\n this.disconnectAllTransports( /* exceptActive: */true);\n var transportParams_1 = this.activeProtocol.getTransport().params;\n platform_1.default.Config.nextTick(function () {\n if (_this.state.state === 'connected') {\n _this.upgradeIfNeeded(transportParams_1);\n }\n });\n }\n /* Do any transport-specific new-token action */\n var activeTransport = (_a = this.activeProtocol) === null || _a === void 0 ? void 0 : _a.getTransport();\n if (activeTransport && activeTransport.onAuthUpdated) {\n activeTransport.onAuthUpdated(tokenDetails);\n }\n var authMsg = protocolmessage_1.default.fromValues({\n action: actions.AUTH,\n auth: {\n accessToken: tokenDetails.token\n }\n });\n this.send(authMsg);\n /* The answer will come back as either a connectiondetails event\n * (realtime sends a CONNECTED to acknowledge the reauth) or a\n * statechange to failed */\n var successListener_1 = function () {\n _this.off(failureListener_1);\n callback(null, tokenDetails);\n };\n var failureListener_1 = function (stateChange) {\n if (stateChange.current === 'failed') {\n _this.off(successListener_1);\n _this.off(failureListener_1);\n callback(stateChange.reason || _this.getStateError());\n }\n };\n this.once('connectiondetails', successListener_1);\n this.on('connectionstate', failureListener_1);\n break;\n }\n case 'connecting':\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.onAuthUpdated()', 'Aborting current connection attempts in order to start again with the new auth details');\n this.disconnectAllTransports();\n /* fallthrough to add statechange listener */\n default:\n {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.onAuthUpdated()', 'Connection state is ' + this.state.state + '; waiting until either connected or failed');\n var listener_1 = function (stateChange) {\n switch (stateChange.current) {\n case 'connected':\n _this.off(listener_1);\n callback(null, tokenDetails);\n break;\n case 'failed':\n case 'closed':\n case 'suspended':\n _this.off(listener_1);\n callback(stateChange.reason || _this.getStateError());\n break;\n default:\n /* ignore till we get either connected or failed */\n break;\n }\n };\n this.on('connectionstate', listener_1);\n if (this.state.state === 'connecting') {\n /* can happen if in the connecting state but no transport was pending\n * yet, so disconnectAllTransports did not trigger a disconnected state */\n this.startConnect();\n } else {\n this.requestState({\n state: 'connecting'\n });\n }\n }\n }\n };\n ConnectionManager.prototype.disconnectAllTransports = function (exceptActive) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.disconnectAllTransports()', 'Disconnecting all transports' + (exceptActive ? ' except the active transport' : ''));\n /* This will prevent any connection procedure in an async part of one of its early stages from continuing */\n this.connectCounter++;\n Utils.safeArrForEach(this.pendingTransports, function (transport) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.disconnectAllTransports()', 'Disconnecting pending transport: ' + transport);\n if (transport) transport.disconnect();\n });\n this.pendingTransports = [];\n Utils.safeArrForEach(this.proposedTransports, function (transport) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.disconnectAllTransports()', 'Disposing of proposed transport: ' + transport);\n if (transport) transport.dispose();\n });\n this.proposedTransports = [];\n if (this.activeProtocol && !exceptActive) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.disconnectAllTransports()', 'Disconnecting active transport: ' + this.activeProtocol.getTransport());\n this.activeProtocol.getTransport().disconnect();\n }\n /* No need to notify state disconnected; disconnecting the active transport\n * will have that effect */\n };\n /******************\n * event queueing\n ******************/\n ConnectionManager.prototype.send = function (msg, queueEvent, callback) {\n callback = callback || noop;\n var state = this.state;\n if (state.sendEvents) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.send()', 'sending event');\n this.sendImpl(new protocol_1.PendingMessage(msg, callback));\n return;\n }\n var shouldQueue = queueEvent && state.queueEvents || state.forceQueueEvents;\n if (!shouldQueue) {\n var err = 'rejecting event, queueEvent was ' + queueEvent + ', state was ' + state.state;\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.send()', err);\n callback(this.errorReason || new errorinfo_1.default(err, 90000, 400));\n return;\n }\n if (logger_1.default.shouldLog(logger_1.default.LOG_MICRO)) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.send()', 'queueing msg; ' + protocolmessage_1.default.stringify(msg));\n }\n this.queue(msg, callback);\n };\n ConnectionManager.prototype.sendImpl = function (pendingMessage) {\n var msg = pendingMessage.message;\n /* If have already attempted to send this, resend with the same msgSerial,\n * so Ably can dedup if the previous send succeeded */\n if (pendingMessage.ackRequired && !pendingMessage.sendAttempted) {\n msg.msgSerial = this.msgSerial++;\n }\n try {\n this.activeProtocol.send(pendingMessage);\n } catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.sendImpl()', 'Unexpected exception in transport.send(): ' + e.stack);\n }\n };\n ConnectionManager.prototype.queue = function (msg, callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.queue()', 'queueing event');\n var lastQueued = this.queuedMessages.last();\n var maxSize = this.options.maxMessageSize;\n /* If have already attempted to send a message, don't merge more messages\n * into it, as if the previous send actually succeeded and realtime ignores\n * the dup, they'll be lost */\n if (lastQueued && !lastQueued.sendAttempted && bundleWith(lastQueued.message, msg, maxSize)) {\n if (!lastQueued.merged) {\n lastQueued.callback = multicaster_1.default.create([lastQueued.callback]);\n lastQueued.merged = true;\n }\n lastQueued.callback.push(callback);\n } else {\n this.queuedMessages.push(new protocol_1.PendingMessage(msg, callback));\n }\n };\n ConnectionManager.prototype.sendQueuedMessages = function () {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.sendQueuedMessages()', 'sending ' + this.queuedMessages.count() + ' queued messages');\n var pendingMessage;\n while (pendingMessage = this.queuedMessages.shift()) this.sendImpl(pendingMessage);\n };\n ConnectionManager.prototype.queuePendingMessages = function (pendingMessages) {\n if (pendingMessages && pendingMessages.length) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.queuePendingMessages()', 'queueing ' + pendingMessages.length + ' pending messages');\n this.queuedMessages.prepend(pendingMessages);\n }\n };\n ConnectionManager.prototype.failQueuedMessages = function (err) {\n var numQueued = this.queuedMessages.count();\n if (numQueued > 0) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.failQueuedMessages()', 'failing ' + numQueued + ' queued messages, err = ' + Utils.inspectError(err));\n this.queuedMessages.completeAllMessages(err);\n }\n };\n ConnectionManager.prototype.onChannelMessage = function (message, transport) {\n var onActiveTransport = this.activeProtocol && transport === this.activeProtocol.getTransport(),\n onUpgradeTransport = Utils.arrIn(this.pendingTransports, transport) && this.state == this.states.synchronizing;\n /* As the lib now has a period where the upgrade transport is synced but\n * before it's become active (while waiting for the old one to become\n * idle), message can validly arrive on it even though it isn't active */\n if (onActiveTransport || onUpgradeTransport) {\n this.realtime.channels.onChannelMessage(message);\n } else {\n // Message came in on a defunct transport. Allow only acks, nacks, & errors for outstanding\n // messages, no new messages (as sync has been sent on new transport so new messages will\n // be resent there, or connection has been closed so don't want new messages)\n if (Utils.arrIndexOf([actions.ACK, actions.NACK, actions.ERROR], message.action) > -1) {\n this.realtime.channels.onChannelMessage(message);\n } else {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.onChannelMessage()', 'received message ' + JSON.stringify(message) + 'on defunct transport; discarding');\n }\n }\n };\n ConnectionManager.prototype.ping = function (transport, callback) {\n var _this = this;\n /* if transport is specified, try that */\n if (transport) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.ping()', 'transport = ' + transport);\n var onTimeout = function () {\n transport.off('heartbeat', onHeartbeat_1);\n callback(new errorinfo_1.default('Timeout waiting for heartbeat response', 50000, 500));\n };\n var pingStart_1 = Utils.now(),\n id_1 = Utils.cheapRandStr();\n var onHeartbeat_1 = function (responseId) {\n if (responseId === id_1) {\n transport.off('heartbeat', onHeartbeat_1);\n clearTimeout(timer_1);\n var responseTime = Utils.now() - pingStart_1;\n callback(null, responseTime);\n }\n };\n var timer_1 = setTimeout(onTimeout, this.options.timeouts.realtimeRequestTimeout);\n transport.on('heartbeat', onHeartbeat_1);\n transport.ping(id_1);\n return;\n }\n /* if we're not connected, don't attempt */\n if (this.state.state !== 'connected') {\n callback(new errorinfo_1.default('Unable to ping service; not connected', 40000, 400));\n return;\n }\n /* no transport was specified, so use the current (connected) one\n * but ensure that we retry if the transport is superseded before we complete */\n var completed = false;\n var onPingComplete = function (err, responseTime) {\n _this.off('transport.active', onTransportActive);\n if (!completed) {\n completed = true;\n callback(err, responseTime);\n }\n };\n var onTransportActive = function () {\n if (!completed) {\n /* ensure that no callback happens for the currently outstanding operation */\n completed = true;\n /* repeat but picking up the new transport */\n platform_1.default.Config.nextTick(function () {\n _this.ping(null, callback);\n });\n }\n };\n this.on('transport.active', onTransportActive);\n this.ping(this.activeProtocol.getTransport(), onPingComplete);\n };\n ConnectionManager.prototype.abort = function (error) {\n this.activeProtocol.getTransport().fail(error);\n };\n ConnectionManager.prototype.registerProposedTransport = function (transport) {\n this.proposedTransports.push(transport);\n };\n ConnectionManager.prototype.getTransportPreference = function () {\n var _a, _b;\n return this.transportPreference || haveWebStorage() && ((_b = (_a = platform_1.default.WebStorage) === null || _a === void 0 ? void 0 : _a.get) === null || _b === void 0 ? void 0 : _b.call(_a, transportPreferenceName));\n };\n ConnectionManager.prototype.persistTransportPreference = function (transport) {\n var _a, _b;\n if (Utils.arrIn(defaults_1.default.upgradeTransports, transport.shortName)) {\n this.transportPreference = transport.shortName;\n if (haveWebStorage()) {\n (_b = (_a = platform_1.default.WebStorage) === null || _a === void 0 ? void 0 : _a.set) === null || _b === void 0 ? void 0 : _b.call(_a, transportPreferenceName, transport.shortName);\n }\n }\n };\n ConnectionManager.prototype.unpersistTransportPreference = function () {\n var _a, _b;\n this.transportPreference = null;\n if (haveWebStorage()) {\n (_b = (_a = platform_1.default.WebStorage) === null || _a === void 0 ? void 0 : _a.remove) === null || _b === void 0 ? void 0 : _b.call(_a, transportPreferenceName);\n }\n };\n /* This method is only used during connection attempts, so implements RSA4c1,\n * RSA4c2, and RSA4d. In particular, it is not invoked for\n * serverside-triggered reauths or manual reauths, so RSA4c3 does not apply */\n ConnectionManager.prototype.actOnErrorFromAuthorize = function (err) {\n if (err.code === 40171) {\n /* No way to reauth */\n this.notifyState({\n state: 'failed',\n error: err\n });\n } else if (err.statusCode === HttpStatusCodes_1.default.Forbidden) {\n var msg = 'Client configured authentication provider returned 403; failing the connection';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.actOnErrorFromAuthorize()', msg);\n this.notifyState({\n state: 'failed',\n error: new errorinfo_1.default(msg, 80019, 403, err)\n });\n } else {\n var msg = 'Client configured authentication provider request failed';\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.actOnErrorFromAuthorize', msg);\n this.notifyState({\n state: this.state.failState,\n error: new errorinfo_1.default(msg, 80019, 401, err)\n });\n }\n };\n ConnectionManager.prototype.onConnectionDetailsUpdate = function (connectionDetails, transport) {\n if (!connectionDetails) {\n return;\n }\n this.connectionDetails = connectionDetails;\n if (connectionDetails.maxMessageSize) {\n this.options.maxMessageSize = connectionDetails.maxMessageSize;\n }\n var clientId = connectionDetails.clientId;\n if (clientId) {\n var err = this.realtime.auth._uncheckedSetClientId(clientId);\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.onConnectionDetailsUpdate()', err.message);\n /* Errors setting the clientId are fatal to the connection */\n transport.fail(err);\n return;\n }\n }\n var connectionStateTtl = connectionDetails.connectionStateTtl;\n if (connectionStateTtl) {\n this.connectionStateTtl = connectionStateTtl;\n }\n this.maxIdleInterval = connectionDetails.maxIdleInterval;\n this.emit('connectiondetails', connectionDetails);\n };\n /*********************\n * transport management\n *********************/\n ConnectionManager.supportedTransports = {};\n return ConnectionManager;\n }(eventemitter_1.default);\n exports.default = ConnectionManager;\n\n /* WEBPACK VAR INJECTION */\n }).call(this, __webpack_require__(12));\n\n /***/\n }, /* 26 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var protocolmessage_1 = tslib_1.__importDefault(__webpack_require__(10));\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var connectionerrors_1 = tslib_1.__importDefault(__webpack_require__(19));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n var actions = protocolmessage_1.default.Action;\n var closeMessage = protocolmessage_1.default.fromValues({\n action: actions.CLOSE\n });\n var disconnectMessage = protocolmessage_1.default.fromValues({\n action: actions.DISCONNECT\n });\n /*\n * Transport instances inherit from EventEmitter and emit the following events:\n *\n * event name data\n * closed error\n * failed error\n * disposed\n * connected null error, connectionSerial, connectionId, connectionDetails\n * event channel message object\n */\n var Transport = /** @class */function (_super) {\n tslib_1.__extends(Transport, _super);\n function Transport(connectionManager, auth, params, forceJsonProtocol) {\n var _this = _super.call(this) || this;\n if (forceJsonProtocol) {\n params.format = undefined;\n params.heartbeats = true;\n }\n _this.connectionManager = connectionManager;\n connectionManager.registerProposedTransport(_this);\n _this.auth = auth;\n _this.params = params;\n _this.timeouts = params.options.timeouts;\n _this.format = params.format;\n _this.isConnected = false;\n _this.isFinished = false;\n _this.isDisposed = false;\n _this.maxIdleInterval = null;\n _this.idleTimer = null;\n _this.lastActivity = null;\n return _this;\n }\n Transport.prototype.connect = function () {};\n Transport.prototype.close = function () {\n if (this.isConnected) {\n this.requestClose();\n }\n this.finish('closed', connectionerrors_1.default.closed);\n };\n Transport.prototype.disconnect = function (err) {\n /* Used for network/transport issues that need to result in the transport\n * being disconnected, but should not transition the connection to 'failed' */\n if (this.isConnected) {\n this.requestDisconnect();\n }\n this.finish('disconnected', err || connectionerrors_1.default.disconnected);\n };\n Transport.prototype.fail = function (err) {\n /* Used for client-side-detected fatal connection issues */\n if (this.isConnected) {\n this.requestDisconnect();\n }\n this.finish('failed', err || connectionerrors_1.default.failed);\n };\n Transport.prototype.finish = function (event, err) {\n var _a;\n if (this.isFinished) {\n return;\n }\n this.isFinished = true;\n this.isConnected = false;\n this.maxIdleInterval = null;\n clearTimeout((_a = this.idleTimer) !== null && _a !== void 0 ? _a : undefined);\n this.idleTimer = null;\n this.emit(event, err);\n this.dispose();\n };\n Transport.prototype.onProtocolMessage = function (message) {\n if (logger_1.default.shouldLog(logger_1.default.LOG_MICRO)) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Transport.onProtocolMessage()', 'received on ' + this.shortName + ': ' + protocolmessage_1.default.stringify(message) + '; connectionId = ' + this.connectionManager.connectionId);\n }\n this.onActivity();\n switch (message.action) {\n case actions.HEARTBEAT:\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Transport.onProtocolMessage()', this.shortName + ' heartbeat; connectionId = ' + this.connectionManager.connectionId);\n this.emit('heartbeat', message.id);\n break;\n case actions.CONNECTED:\n this.onConnect(message);\n this.emit('connected', message.error, message.connectionId, message.connectionDetails, message);\n break;\n case actions.CLOSED:\n this.onClose(message);\n break;\n case actions.DISCONNECTED:\n this.onDisconnect(message);\n break;\n case actions.ACK:\n this.emit('ack', message.msgSerial, message.count);\n break;\n case actions.NACK:\n this.emit('nack', message.msgSerial, message.count, message.error);\n break;\n case actions.SYNC:\n this.connectionManager.onChannelMessage(message, this);\n break;\n case actions.ACTIVATE:\n // Ignored.\n break;\n case actions.AUTH:\n this.auth.authorize(function (err) {\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Transport.onProtocolMessage()', 'Ably requested re-authentication, but unable to obtain a new token: ' + Utils.inspectError(err));\n }\n });\n break;\n case actions.ERROR:\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Transport.onProtocolMessage()', 'received error action; connectionId = ' + this.connectionManager.connectionId + '; err = ' + platform_1.default.Config.inspect(message.error) + (message.channel ? ', channel: ' + message.channel : ''));\n if (message.channel === undefined) {\n this.onFatalError(message);\n break;\n }\n /* otherwise it's a channel-specific error, so handle it in the channel */\n this.connectionManager.onChannelMessage(message, this);\n break;\n default:\n /* all other actions are channel-specific */\n this.connectionManager.onChannelMessage(message, this);\n }\n };\n Transport.prototype.onConnect = function (message) {\n this.isConnected = true;\n if (!message.connectionDetails) {\n throw new Error('Transport.onConnect(): Connect message recieved without connectionDetails');\n }\n var maxPromisedIdle = message.connectionDetails.maxIdleInterval;\n if (maxPromisedIdle) {\n this.maxIdleInterval = maxPromisedIdle + this.timeouts.realtimeRequestTimeout;\n this.onActivity();\n }\n /* else Realtime declines to guarantee any maximum idle interval - CD2h */\n };\n\n Transport.prototype.onDisconnect = function (message) {\n /* Used for when the server has disconnected the client (usually with a\n * DISCONNECTED action) */\n var err = message && message.error;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Transport.onDisconnect()', 'err = ' + Utils.inspectError(err));\n this.finish('disconnected', err);\n };\n Transport.prototype.onFatalError = function (message) {\n /* On receipt of a fatal connection error, we can assume that the server\n * will close the connection and the transport, and do not need to request\n * a disconnection - RTN15i */\n var err = message && message.error;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Transport.onFatalError()', 'err = ' + Utils.inspectError(err));\n this.finish('failed', err);\n };\n Transport.prototype.onClose = function (message) {\n var err = message && message.error;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Transport.onClose()', 'err = ' + Utils.inspectError(err));\n this.finish('closed', err);\n };\n Transport.prototype.requestClose = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Transport.requestClose()', '');\n this.send(closeMessage);\n };\n Transport.prototype.requestDisconnect = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Transport.requestDisconnect()', '');\n this.send(disconnectMessage);\n };\n Transport.prototype.ping = function (id) {\n var msg = {\n action: protocolmessage_1.default.Action.HEARTBEAT\n };\n if (id) msg.id = id;\n this.send(protocolmessage_1.default.fromValues(msg));\n };\n Transport.prototype.dispose = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Transport.dispose()', '');\n this.isDisposed = true;\n this.off();\n };\n Transport.prototype.onActivity = function () {\n if (!this.maxIdleInterval) {\n return;\n }\n this.lastActivity = this.connectionManager.lastActivity = Utils.now();\n this.setIdleTimer(this.maxIdleInterval + 100);\n };\n Transport.prototype.setIdleTimer = function (timeout) {\n var _this = this;\n if (!this.idleTimer) {\n this.idleTimer = setTimeout(function () {\n _this.onIdleTimerExpire();\n }, timeout);\n }\n };\n Transport.prototype.onIdleTimerExpire = function () {\n if (!this.lastActivity || !this.maxIdleInterval) {\n throw new Error('Transport.onIdleTimerExpire(): lastActivity/maxIdleInterval not set');\n }\n this.idleTimer = null;\n var sinceLast = Utils.now() - this.lastActivity;\n var timeRemaining = this.maxIdleInterval - sinceLast;\n if (timeRemaining <= 0) {\n var msg = 'No activity seen from realtime in ' + sinceLast + 'ms; assuming connection has dropped';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Transport.onIdleTimerExpire()', msg);\n this.disconnect(new errorinfo_1.default(msg, 80003, 408));\n } else {\n this.setIdleTimer(timeRemaining + 100);\n }\n };\n Transport.tryConnect = function (transportCtor, connectionManager, auth, transportParams, callback) {\n var transport = new transportCtor(connectionManager, auth, transportParams);\n var transportAttemptTimer;\n var errorCb = function (err) {\n clearTimeout(transportAttemptTimer);\n callback({\n event: this.event,\n error: err\n });\n };\n var realtimeRequestTimeout = connectionManager.options.timeouts.realtimeRequestTimeout;\n transportAttemptTimer = setTimeout(function () {\n transport.off(['preconnect', 'disconnected', 'failed']);\n transport.dispose();\n errorCb.call({\n event: 'disconnected'\n }, new errorinfo_1.default('Timeout waiting for transport to indicate itself viable', 50000, 500));\n }, realtimeRequestTimeout);\n transport.on(['failed', 'disconnected'], errorCb);\n transport.on('preconnect', function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Transport.tryConnect()', 'viable transport ' + transport);\n clearTimeout(transportAttemptTimer);\n transport.off(['failed', 'disconnected'], errorCb);\n callback(null, transport);\n });\n transport.connect();\n };\n return Transport;\n }(eventemitter_1.default);\n exports.default = Transport;\n\n /***/\n }, /* 27 */\n /***/function (module, exports, __webpack_require__) {\n ;\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(6), __webpack_require__(40), __webpack_require__(23));\n } else {}\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var MD5 = C_algo.MD5;\n\n /**\n * This key derivation function is meant to conform with EVP_BytesToKey.\n * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n */\n var EvpKDF = C_algo.EvpKDF = Base.extend({\n /**\n * Configuration options.\n *\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n * @property {number} iterations The number of iterations to perform. Default: 1\n */\n cfg: Base.extend({\n keySize: 128 / 32,\n hasher: MD5,\n iterations: 1\n }),\n /**\n * Initializes a newly created key derivation function.\n *\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n *\n * @example\n *\n * var kdf = CryptoJS.algo.EvpKDF.create();\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n */\n init: function (cfg) {\n this.cfg = this.cfg.extend(cfg);\n },\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n *\n * @return {WordArray} The derived key.\n *\n * @example\n *\n * var key = kdf.compute(password, salt);\n */\n compute: function (password, salt) {\n var block;\n\n // Shortcut\n var cfg = this.cfg;\n\n // Init hasher\n var hasher = cfg.hasher.create();\n\n // Initial values\n var derivedKey = WordArray.create();\n\n // Shortcuts\n var derivedKeyWords = derivedKey.words;\n var keySize = cfg.keySize;\n var iterations = cfg.iterations;\n\n // Generate key\n while (derivedKeyWords.length < keySize) {\n if (block) {\n hasher.update(block);\n }\n block = hasher.update(password).finalize(salt);\n hasher.reset();\n\n // Iterations\n for (var i = 1; i < iterations; i++) {\n block = hasher.finalize(block);\n hasher.reset();\n }\n derivedKey.concat(block);\n }\n derivedKey.sigBytes = keySize * 4;\n return derivedKey;\n }\n });\n\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n * @param {Object} cfg (Optional) The configuration options to use for this computation.\n *\n * @return {WordArray} The derived key.\n *\n * @static\n *\n * @example\n *\n * var key = CryptoJS.EvpKDF(password, salt);\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n */\n C.EvpKDF = function (password, salt, cfg) {\n return EvpKDF.create(cfg).compute(password, salt);\n };\n })();\n return CryptoJS.EvpKDF;\n });\n\n /***/\n }, /* 28 */\n /***/function (module, exports, __webpack_require__) {\n ;\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(6), __webpack_require__(27));\n } else {}\n })(this, function (CryptoJS) {\n /**\n * Cipher core components.\n */\n CryptoJS.lib.Cipher || function (undefined) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var Base64 = C_enc.Base64;\n var C_algo = C.algo;\n var EvpKDF = C_algo.EvpKDF;\n\n /**\n * Abstract base cipher template.\n *\n * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n */\n var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n *\n * @property {WordArray} iv The IV to use for this operation.\n */\n cfg: Base.extend(),\n /**\n * Creates this cipher in encryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n */\n createEncryptor: function (key, cfg) {\n return this.create(this._ENC_XFORM_MODE, key, cfg);\n },\n /**\n * Creates this cipher in decryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n */\n createDecryptor: function (key, cfg) {\n return this.create(this._DEC_XFORM_MODE, key, cfg);\n },\n /**\n * Initializes a newly created cipher.\n *\n * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n */\n init: function (xformMode, key, cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg);\n\n // Store transform mode and key\n this._xformMode = xformMode;\n this._key = key;\n\n // Set initial values\n this.reset();\n },\n /**\n * Resets this cipher to its initial state.\n *\n * @example\n *\n * cipher.reset();\n */\n reset: function () {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this);\n\n // Perform concrete-cipher logic\n this._doReset();\n },\n /**\n * Adds data to be encrypted or decrypted.\n *\n * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n *\n * @return {WordArray} The data after processing.\n *\n * @example\n *\n * var encrypted = cipher.process('data');\n * var encrypted = cipher.process(wordArray);\n */\n process: function (dataUpdate) {\n // Append\n this._append(dataUpdate);\n\n // Process available blocks\n return this._process();\n },\n /**\n * Finalizes the encryption or decryption process.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n *\n * @return {WordArray} The data after final processing.\n *\n * @example\n *\n * var encrypted = cipher.finalize();\n * var encrypted = cipher.finalize('data');\n * var encrypted = cipher.finalize(wordArray);\n */\n finalize: function (dataUpdate) {\n // Final data update\n if (dataUpdate) {\n this._append(dataUpdate);\n }\n\n // Perform concrete-cipher logic\n var finalProcessedData = this._doFinalize();\n return finalProcessedData;\n },\n keySize: 128 / 32,\n ivSize: 128 / 32,\n _ENC_XFORM_MODE: 1,\n _DEC_XFORM_MODE: 2,\n /**\n * Creates shortcut functions to a cipher's object interface.\n *\n * @param {Cipher} cipher The cipher to create a helper for.\n *\n * @return {Object} An object with encrypt and decrypt shortcut functions.\n *\n * @static\n *\n * @example\n *\n * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n */\n _createHelper: function () {\n function selectCipherStrategy(key) {\n if (typeof key == 'string') {\n return PasswordBasedCipher;\n } else {\n return SerializableCipher;\n }\n }\n return function (cipher) {\n return {\n encrypt: function (message, key, cfg) {\n return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n },\n decrypt: function (ciphertext, key, cfg) {\n return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n }\n };\n };\n }()\n });\n\n /**\n * Abstract base stream cipher template.\n *\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n */\n var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n _doFinalize: function () {\n // Process partial blocks\n var finalProcessedBlocks = this._process(!!'flush');\n return finalProcessedBlocks;\n },\n blockSize: 1\n });\n\n /**\n * Mode namespace.\n */\n var C_mode = C.mode = {};\n\n /**\n * Abstract base block cipher mode template.\n */\n var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n /**\n * Creates this mode for encryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n */\n createEncryptor: function (cipher, iv) {\n return this.Encryptor.create(cipher, iv);\n },\n /**\n * Creates this mode for decryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n */\n createDecryptor: function (cipher, iv) {\n return this.Decryptor.create(cipher, iv);\n },\n /**\n * Initializes a newly created mode.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n */\n init: function (cipher, iv) {\n this._cipher = cipher;\n this._iv = iv;\n }\n });\n\n /**\n * Cipher Block Chaining mode.\n */\n var CBC = C_mode.CBC = function () {\n /**\n * Abstract base CBC mode.\n */\n var CBC = BlockCipherMode.extend();\n\n /**\n * CBC encryptor.\n */\n CBC.Encryptor = CBC.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */\n processBlock: function (words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n\n // XOR and encrypt\n xorBlock.call(this, words, offset, blockSize);\n cipher.encryptBlock(words, offset);\n\n // Remember this block to use with next block\n this._prevBlock = words.slice(offset, offset + blockSize);\n }\n });\n\n /**\n * CBC decryptor.\n */\n CBC.Decryptor = CBC.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */\n processBlock: function (words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n\n // Remember this block to use with next block\n var thisBlock = words.slice(offset, offset + blockSize);\n\n // Decrypt and XOR\n cipher.decryptBlock(words, offset);\n xorBlock.call(this, words, offset, blockSize);\n\n // This block becomes the previous block\n this._prevBlock = thisBlock;\n }\n });\n function xorBlock(words, offset, blockSize) {\n var block;\n\n // Shortcut\n var iv = this._iv;\n\n // Choose mixing block\n if (iv) {\n block = iv;\n\n // Remove IV for subsequent blocks\n this._iv = undefined;\n } else {\n block = this._prevBlock;\n }\n\n // XOR blocks\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= block[i];\n }\n }\n return CBC;\n }();\n\n /**\n * Padding namespace.\n */\n var C_pad = C.pad = {};\n\n /**\n * PKCS #5/7 padding strategy.\n */\n var Pkcs7 = C_pad.Pkcs7 = {\n /**\n * Pads data using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to pad.\n * @param {number} blockSize The multiple that the data should be padded to.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n */\n pad: function (data, blockSize) {\n // Shortcut\n var blockSizeBytes = blockSize * 4;\n\n // Count padding bytes\n var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n // Create padding word\n var paddingWord = nPaddingBytes << 24 | nPaddingBytes << 16 | nPaddingBytes << 8 | nPaddingBytes;\n\n // Create padding\n var paddingWords = [];\n for (var i = 0; i < nPaddingBytes; i += 4) {\n paddingWords.push(paddingWord);\n }\n var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n // Add padding\n data.concat(padding);\n },\n /**\n * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to unpad.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.unpad(wordArray);\n */\n unpad: function (data) {\n // Get number of padding bytes from last byte\n var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 0xff;\n\n // Remove padding\n data.sigBytes -= nPaddingBytes;\n }\n };\n\n /**\n * Abstract base block cipher template.\n *\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n */\n var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n /**\n * Configuration options.\n *\n * @property {Mode} mode The block mode to use. Default: CBC\n * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n */\n cfg: Cipher.cfg.extend({\n mode: CBC,\n padding: Pkcs7\n }),\n reset: function () {\n var modeCreator;\n\n // Reset cipher\n Cipher.reset.call(this);\n\n // Shortcuts\n var cfg = this.cfg;\n var iv = cfg.iv;\n var mode = cfg.mode;\n\n // Reset block mode\n if (this._xformMode == this._ENC_XFORM_MODE) {\n modeCreator = mode.createEncryptor;\n } else /* if (this._xformMode == this._DEC_XFORM_MODE) */{\n modeCreator = mode.createDecryptor;\n // Keep at least one block in the buffer for unpadding\n this._minBufferSize = 1;\n }\n if (this._mode && this._mode.__creator == modeCreator) {\n this._mode.init(this, iv && iv.words);\n } else {\n this._mode = modeCreator.call(mode, this, iv && iv.words);\n this._mode.__creator = modeCreator;\n }\n },\n _doProcessBlock: function (words, offset) {\n this._mode.processBlock(words, offset);\n },\n _doFinalize: function () {\n var finalProcessedBlocks;\n\n // Shortcut\n var padding = this.cfg.padding;\n\n // Finalize\n if (this._xformMode == this._ENC_XFORM_MODE) {\n // Pad data\n padding.pad(this._data, this.blockSize);\n\n // Process final blocks\n finalProcessedBlocks = this._process(!!'flush');\n } else /* if (this._xformMode == this._DEC_XFORM_MODE) */{\n // Process final blocks\n finalProcessedBlocks = this._process(!!'flush');\n\n // Unpad data\n padding.unpad(finalProcessedBlocks);\n }\n return finalProcessedBlocks;\n },\n blockSize: 128 / 32\n });\n\n /**\n * A collection of cipher parameters.\n *\n * @property {WordArray} ciphertext The raw ciphertext.\n * @property {WordArray} key The key to this ciphertext.\n * @property {WordArray} iv The IV used in the ciphering operation.\n * @property {WordArray} salt The salt used with a key derivation function.\n * @property {Cipher} algorithm The cipher algorithm.\n * @property {Mode} mode The block mode used in the ciphering operation.\n * @property {Padding} padding The padding scheme used in the ciphering operation.\n * @property {number} blockSize The block size of the cipher.\n * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n */\n var CipherParams = C_lib.CipherParams = Base.extend({\n /**\n * Initializes a newly created cipher params object.\n *\n * @param {Object} cipherParams An object with any of the possible cipher parameters.\n *\n * @example\n *\n * var cipherParams = CryptoJS.lib.CipherParams.create({\n * ciphertext: ciphertextWordArray,\n * key: keyWordArray,\n * iv: ivWordArray,\n * salt: saltWordArray,\n * algorithm: CryptoJS.algo.AES,\n * mode: CryptoJS.mode.CBC,\n * padding: CryptoJS.pad.PKCS7,\n * blockSize: 4,\n * formatter: CryptoJS.format.OpenSSL\n * });\n */\n init: function (cipherParams) {\n this.mixIn(cipherParams);\n },\n /**\n * Converts this cipher params object to a string.\n *\n * @param {Format} formatter (Optional) The formatting strategy to use.\n *\n * @return {string} The stringified cipher params.\n *\n * @throws Error If neither the formatter nor the default formatter is set.\n *\n * @example\n *\n * var string = cipherParams + '';\n * var string = cipherParams.toString();\n * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n */\n toString: function (formatter) {\n return (formatter || this.formatter).stringify(this);\n }\n });\n\n /**\n * Format namespace.\n */\n var C_format = C.format = {};\n\n /**\n * OpenSSL formatting strategy.\n */\n var OpenSSLFormatter = C_format.OpenSSL = {\n /**\n * Converts a cipher params object to an OpenSSL-compatible string.\n *\n * @param {CipherParams} cipherParams The cipher params object.\n *\n * @return {string} The OpenSSL-compatible string.\n *\n * @static\n *\n * @example\n *\n * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n */\n stringify: function (cipherParams) {\n var wordArray;\n\n // Shortcuts\n var ciphertext = cipherParams.ciphertext;\n var salt = cipherParams.salt;\n\n // Format\n if (salt) {\n wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n } else {\n wordArray = ciphertext;\n }\n return wordArray.toString(Base64);\n },\n /**\n * Converts an OpenSSL-compatible string to a cipher params object.\n *\n * @param {string} openSSLStr The OpenSSL-compatible string.\n *\n * @return {CipherParams} The cipher params object.\n *\n * @static\n *\n * @example\n *\n * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n */\n parse: function (openSSLStr) {\n var salt;\n\n // Parse base64\n var ciphertext = Base64.parse(openSSLStr);\n\n // Shortcut\n var ciphertextWords = ciphertext.words;\n\n // Test for salt\n if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n // Extract salt\n salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n // Remove salt from ciphertext\n ciphertextWords.splice(0, 4);\n ciphertext.sigBytes -= 16;\n }\n return CipherParams.create({\n ciphertext: ciphertext,\n salt: salt\n });\n }\n };\n\n /**\n * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n */\n var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n /**\n * Configuration options.\n *\n * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n */\n cfg: Base.extend({\n format: OpenSSLFormatter\n }),\n /**\n * Encrypts a message.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */\n encrypt: function (cipher, message, key, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n\n // Encrypt\n var encryptor = cipher.createEncryptor(key, cfg);\n var ciphertext = encryptor.finalize(message);\n\n // Shortcut\n var cipherCfg = encryptor.cfg;\n\n // Create and return serializable cipher params\n return CipherParams.create({\n ciphertext: ciphertext,\n key: key,\n iv: cipherCfg.iv,\n algorithm: cipher,\n mode: cipherCfg.mode,\n padding: cipherCfg.padding,\n blockSize: cipher.blockSize,\n formatter: cfg.format\n });\n },\n /**\n * Decrypts serialized ciphertext.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */\n decrypt: function (cipher, ciphertext, key, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n\n // Convert string to CipherParams\n ciphertext = this._parse(ciphertext, cfg.format);\n\n // Decrypt\n var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n return plaintext;\n },\n /**\n * Converts serialized ciphertext to CipherParams,\n * else assumed CipherParams already and returns ciphertext unchanged.\n *\n * @param {CipherParams|string} ciphertext The ciphertext.\n * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n *\n * @return {CipherParams} The unserialized ciphertext.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n */\n _parse: function (ciphertext, format) {\n if (typeof ciphertext == 'string') {\n return format.parse(ciphertext, this);\n } else {\n return ciphertext;\n }\n }\n });\n\n /**\n * Key derivation function namespace.\n */\n var C_kdf = C.kdf = {};\n\n /**\n * OpenSSL key derivation function.\n */\n var OpenSSLKdf = C_kdf.OpenSSL = {\n /**\n * Derives a key and IV from a password.\n *\n * @param {string} password The password to derive from.\n * @param {number} keySize The size in words of the key to generate.\n * @param {number} ivSize The size in words of the IV to generate.\n * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n *\n * @return {CipherParams} A cipher params object with the key, IV, and salt.\n *\n * @static\n *\n * @example\n *\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n */\n execute: function (password, keySize, ivSize, salt) {\n // Generate random salt\n if (!salt) {\n salt = WordArray.random(64 / 8);\n }\n\n // Derive key and IV\n var key = EvpKDF.create({\n keySize: keySize + ivSize\n }).compute(password, salt);\n\n // Separate key and IV\n var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n key.sigBytes = keySize * 4;\n\n // Return params\n return CipherParams.create({\n key: key,\n iv: iv,\n salt: salt\n });\n }\n };\n\n /**\n * A serializable cipher wrapper that derives the key from a password,\n * and returns ciphertext as a serializable cipher params object.\n */\n var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n /**\n * Configuration options.\n *\n * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n */\n cfg: SerializableCipher.cfg.extend({\n kdf: OpenSSLKdf\n }),\n /**\n * Encrypts a message using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n */\n encrypt: function (cipher, message, password, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n\n // Derive key and other params\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);\n\n // Add IV to config\n cfg.iv = derivedParams.iv;\n\n // Encrypt\n var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n // Mix in derived params\n ciphertext.mixIn(derivedParams);\n return ciphertext;\n },\n /**\n * Decrypts serialized ciphertext using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n */\n decrypt: function (cipher, ciphertext, password, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n\n // Convert string to CipherParams\n ciphertext = this._parse(ciphertext, cfg.format);\n\n // Derive key and other params\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);\n\n // Add IV to config\n cfg.iv = derivedParams.iv;\n\n // Decrypt\n var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n return plaintext;\n }\n });\n }();\n });\n\n /***/\n }, /* 29 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Request = exports.createRequest = void 0;\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var comettransport_1 = tslib_1.__importDefault(__webpack_require__(11));\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n var eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var defaults_1 = tslib_1.__importDefault(__webpack_require__(8));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var XHRStates_1 = tslib_1.__importDefault(__webpack_require__(20));\n // Workaround for salesforce lightning locker compatibility\n var globalObject = Utils.getGlobalObject();\n var noop = function () {};\n /* Can't just use window.Ably, as that won't exist if using the commonjs version. */\n var _ = globalObject._ablyjs_jsonp = {};\n /* express strips out parantheses from the callback!\n * Kludge to still alow its responses to work, while not keeping the\n * function form for normal use and not cluttering window.Ably\n * https://github.com/expressjs/express/blob/5b4d4b4ab1324743534fbcd4709f4e75bb4b4e9d/lib/response.js#L305\n */\n _._ = function (id) {\n return _['_' + id] || noop;\n };\n var idCounter = 1;\n var shortName = 'jsonp';\n function createRequest(uri, headers, params, body, requestMode, timeouts, method) {\n /* JSONP requests are used either with the context being a realtime\n * transport, or with timeouts passed in (for when used by a rest client),\n * or completely standalone. Use the appropriate timeouts in each case */\n timeouts = timeouts || defaults_1.default.TIMEOUTS;\n return new Request(undefined, uri, headers, Utils.copy(params), body, requestMode, timeouts, method);\n }\n exports.createRequest = createRequest;\n var JSONPTransport = /** @class */function (_super) {\n tslib_1.__extends(JSONPTransport, _super);\n function JSONPTransport(connectionManager, auth, params) {\n var _this = _super.call(this, connectionManager, auth, params) || this;\n _this.shortName = shortName;\n params.stream = false;\n return _this;\n }\n JSONPTransport.isAvailable = function () {\n return platform_1.default.Config.jsonpSupported && platform_1.default.Config.allowComet;\n };\n JSONPTransport.prototype.toString = function () {\n return 'JSONPTransport; uri=' + this.baseUri + '; isConnected=' + this.isConnected;\n };\n JSONPTransport.prototype.createRequest = function (uri, headers, params, body, requestMode, timeouts, method) {\n /* JSONP requests are used either with the context being a realtime\n * transport, or with timeouts passed in (for when used by a rest client),\n * or completely standalone. Use the appropriate timeouts in each case */\n timeouts = (this === null || this === void 0 ? void 0 : this.timeouts) || timeouts || defaults_1.default.TIMEOUTS;\n return createRequest(uri, headers, params, body, requestMode, timeouts, method);\n };\n return JSONPTransport;\n }(comettransport_1.default);\n var Request = /** @class */function (_super) {\n tslib_1.__extends(Request, _super);\n function Request(id, uri, headers, params, body, requestMode, timeouts, method) {\n var _this = _super.call(this) || this;\n if (id === undefined) id = idCounter++;\n _this.id = id;\n _this.uri = uri;\n _this.params = params || {};\n _this.params.rnd = Utils.cheapRandStr();\n if (headers) {\n /* JSONP doesn't allow headers. Cherry-pick a couple to turn into qs params */\n if (headers['X-Ably-Version']) _this.params.v = headers['X-Ably-Version'];\n if (headers['X-Ably-Lib']) _this.params.lib = headers['X-Ably-Lib'];\n }\n _this.body = body;\n _this.method = method;\n _this.requestMode = requestMode;\n _this.timeouts = timeouts;\n _this.requestComplete = false;\n return _this;\n }\n Request.prototype.exec = function () {\n var _this = this;\n var id = this.id,\n body = this.body,\n method = this.method,\n uri = this.uri,\n params = this.params;\n params.callback = '_ablyjs_jsonp._(' + id + ')';\n params.envelope = 'jsonp';\n if (body) {\n params.body = body;\n }\n if (method && method !== 'get') {\n params.method = method;\n }\n var script = this.script = document.createElement('script');\n var src = uri + Utils.toQueryString(params);\n script.src = src;\n if (script.src.split('/').slice(-1)[0] !== src.split('/').slice(-1)[0]) {\n /* The src has been truncated. Can't abort, but can at least emit an\n * error so the user knows what's gone wrong. (Can't compare strings\n * directly as src may have a port, script.src won't) */\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'JSONP Request.exec()', 'Warning: the browser appears to have truncated the script URI. This will likely result in the request failing due to an unparseable body param');\n }\n script.async = true;\n script.type = 'text/javascript';\n script.charset = 'UTF-8';\n script.onerror = function (err) {\n _this.complete(new errorinfo_1.default('JSONP script error (event: ' + platform_1.default.Config.inspect(err) + ')', null, 400));\n };\n _['_' + id] = function (message) {\n if (message.statusCode) {\n /* Handle as enveloped jsonp, as all jsonp transport uses should be */\n var response = message.response;\n if (message.statusCode == 204) {\n _this.complete(null, null, null, message.statusCode);\n } else if (!response) {\n _this.complete(new errorinfo_1.default('Invalid server response: no envelope detected', null, 500));\n } else if (message.statusCode < 400 || Utils.isArray(response)) {\n /* If response is an array, it's an array of protocol messages -- even if\n * it contains an error action (hence the nonsuccess statuscode), we can\n * consider the request to have succeeded, just pass it on to\n * onProtocolMessage to decide what to do */\n _this.complete(null, response, message.headers, message.statusCode);\n } else {\n var err = response.error || new errorinfo_1.default('Error response received from server', null, message.statusCode);\n _this.complete(err);\n }\n } else {\n /* Handle as non-enveloped -- as will be eg from a customer's authUrl server */\n _this.complete(null, message);\n }\n };\n var timeout = this.requestMode == XHRStates_1.default.REQ_SEND ? this.timeouts.httpRequestTimeout : this.timeouts.recvTimeout;\n this.timer = setTimeout(this.abort.bind(this), timeout);\n var head = document.getElementsByTagName('head')[0];\n head.insertBefore(script, head.firstChild);\n };\n Request.prototype.complete = function (err, body, headers, statusCode) {\n headers = headers || {};\n if (!this.requestComplete) {\n this.requestComplete = true;\n var contentType = void 0;\n if (body) {\n contentType = typeof body == 'string' ? 'text/plain' : 'application/json';\n headers['content-type'] = contentType;\n this.emit('data', body);\n }\n this.emit('complete', err, body, headers, /* unpacked: */true, statusCode);\n this.dispose();\n }\n };\n Request.prototype.abort = function () {\n this.dispose();\n };\n Request.prototype.dispose = function () {\n var timer = this.timer;\n if (timer) {\n clearTimeout(timer);\n this.timer = null;\n }\n var script = this.script;\n if (script.parentNode) script.parentNode.removeChild(script);\n delete _[this.id];\n this.emit('disposed');\n };\n return Request;\n }(eventemitter_1.default);\n exports.Request = Request;\n function default_1(connectionManager) {\n globalObject.JSONPTransport = JSONPTransport;\n if (JSONPTransport.isAvailable()) {\n connectionManager.supportedTransports[shortName] = JSONPTransport;\n }\n return JSONPTransport;\n }\n exports.default = default_1;\n\n /***/\n }, /* 30 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var defaults_1 = tslib_1.__importDefault(__webpack_require__(8));\n var auth_1 = tslib_1.__importDefault(__webpack_require__(16));\n var push_1 = tslib_1.__importDefault(__webpack_require__(46));\n var paginatedresource_1 = tslib_1.__importDefault(__webpack_require__(18));\n var channel_1 = tslib_1.__importDefault(__webpack_require__(33));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var stats_1 = tslib_1.__importDefault(__webpack_require__(49));\n var HttpMethods_1 = tslib_1.__importDefault(__webpack_require__(17));\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n var noop = function () {};\n var Rest = /** @class */function () {\n function Rest(options) {\n if (!options) {\n var msg = 'no options provided';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Rest()', msg);\n throw new Error(msg);\n }\n var optionsObj = defaults_1.default.objectifyOptions(options);\n if (optionsObj.log) {\n logger_1.default.setLog(optionsObj.log.level, optionsObj.log.handler);\n }\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Rest()', 'initialized with clientOptions ' + platform_1.default.Config.inspect(options));\n var normalOptions = this.options = defaults_1.default.normaliseOptions(optionsObj);\n /* process options */\n if (normalOptions.key) {\n var keyMatch = normalOptions.key.match(/^([^:\\s]+):([^:.\\s]+)$/);\n if (!keyMatch) {\n var msg = 'invalid key parameter';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Rest()', msg);\n throw new errorinfo_1.default(msg, 40400, 404);\n }\n normalOptions.keyName = keyMatch[1];\n normalOptions.keySecret = keyMatch[2];\n }\n if ('clientId' in normalOptions) {\n if (!(typeof normalOptions.clientId === 'string' || normalOptions.clientId === null)) throw new errorinfo_1.default('clientId must be either a string or null', 40012, 400);else if (normalOptions.clientId === '*') throw new errorinfo_1.default('Can’t use \"*\" as a clientId as that string is reserved. (To change the default token request behaviour to use a wildcard clientId, use {defaultTokenParams: {clientId: \"*\"}})', 40012, 400);\n }\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Rest()', 'started; version = ' + defaults_1.default.version);\n this.baseUri = this.authority = function (host) {\n return defaults_1.default.getHttpScheme(normalOptions) + host + ':' + defaults_1.default.getPort(normalOptions, false);\n };\n this._currentFallback = null;\n this.serverTimeOffset = null;\n this.http = new platform_1.default.Http(normalOptions);\n this.auth = new auth_1.default(this, normalOptions);\n this.channels = new Channels(this);\n this.push = new push_1.default(this);\n }\n Rest.prototype.stats = function (params, callback) {\n /* params and callback are optional; see if params contains the callback */\n if (callback === undefined) {\n if (typeof params == 'function') {\n callback = params;\n params = null;\n } else {\n if (this.options.promises) {\n return Utils.promisify(this, 'stats', [params]);\n }\n callback = noop;\n }\n }\n var headers = Utils.defaultGetHeaders(this.options),\n format = this.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json,\n envelope = this.http.supportsLinkHeaders ? undefined : format;\n if (this.options.headers) Utils.mixin(headers, this.options.headers);\n new paginatedresource_1.default(this, '/stats', headers, envelope, function (body, headers, unpacked) {\n var statsValues = unpacked ? body : JSON.parse(body);\n for (var i = 0; i < statsValues.length; i++) statsValues[i] = stats_1.default.fromValues(statsValues[i]);\n return statsValues;\n }).get(params, callback);\n };\n Rest.prototype.time = function (params, callback) {\n var _this = this;\n /* params and callback are optional; see if params contains the callback */\n if (callback === undefined) {\n if (typeof params == 'function') {\n callback = params;\n params = null;\n } else {\n if (this.options.promises) {\n return Utils.promisify(this, 'time', [params]);\n }\n }\n }\n var _callback = callback || noop;\n var headers = Utils.defaultGetHeaders(this.options);\n if (this.options.headers) Utils.mixin(headers, this.options.headers);\n var timeUri = function (host) {\n return _this.authority(host) + '/time';\n };\n this.http.do(HttpMethods_1.default.Get, this, timeUri, headers, null, params, function (err, res, headers, unpacked) {\n if (err) {\n _callback(err);\n return;\n }\n if (!unpacked) res = JSON.parse(res);\n var time = res[0];\n if (!time) {\n _callback(new errorinfo_1.default('Internal error (unexpected result type from GET /time)', 50000, 500));\n return;\n }\n /* calculate time offset only once for this device by adding to the prototype */\n _this.serverTimeOffset = time - Utils.now();\n _callback(null, time);\n });\n };\n Rest.prototype.request = function (method, path, params, body, customHeaders, callback) {\n var useBinary = this.options.useBinaryProtocol,\n encoder = useBinary ? platform_1.default.Config.msgpack.encode : JSON.stringify,\n decoder = useBinary ? platform_1.default.Config.msgpack.decode : JSON.parse,\n format = useBinary ? Utils.Format.msgpack : Utils.Format.json,\n envelope = this.http.supportsLinkHeaders ? undefined : format;\n params = params || {};\n var _method = method.toLowerCase();\n var headers = _method == 'get' ? Utils.defaultGetHeaders(this.options, format) : Utils.defaultPostHeaders(this.options, format);\n if (callback === undefined) {\n if (this.options.promises) {\n return Utils.promisify(this, 'request', [method, path, params, body, customHeaders]);\n }\n callback = noop;\n }\n if (typeof body !== 'string') {\n body = encoder(body);\n }\n if (this.options.headers) {\n Utils.mixin(headers, this.options.headers);\n }\n if (customHeaders) {\n Utils.mixin(headers, customHeaders);\n }\n var paginatedResource = new paginatedresource_1.default(this, path, headers, envelope, function (resbody, headers, unpacked) {\n return Utils.ensureArray(unpacked ? resbody : decoder(resbody));\n }, /* useHttpPaginatedResponse: */true);\n if (!Utils.arrIn(platform_1.default.Http.methods, _method)) {\n throw new errorinfo_1.default('Unsupported method ' + _method, 40500, 405);\n }\n if (Utils.arrIn(platform_1.default.Http.methodsWithBody, _method)) {\n paginatedResource[_method](params, body, callback);\n } else {\n paginatedResource[_method](params, callback);\n }\n };\n Rest.prototype.setLog = function (logOptions) {\n logger_1.default.setLog(logOptions.level, logOptions.handler);\n };\n Rest.Promise = function (options) {\n options = defaults_1.default.objectifyOptions(options);\n options.promises = true;\n return new Rest(options);\n };\n Rest.Callbacks = Rest;\n Rest.Platform = platform_1.default;\n return Rest;\n }();\n var Channels = /** @class */function () {\n function Channels(rest) {\n this.rest = rest;\n this.all = Object.create(null);\n }\n Channels.prototype.get = function (name, channelOptions) {\n name = String(name);\n var channel = this.all[name];\n if (!channel) {\n this.all[name] = channel = new channel_1.default(this.rest, name, channelOptions);\n } else if (channelOptions) {\n channel.setOptions(channelOptions);\n }\n return channel;\n };\n /* Included to support certain niche use-cases; most users should ignore this.\n * Please do not use this unless you know what you're doing */\n Channels.prototype.release = function (name) {\n delete this.all[String(name)];\n };\n return Channels;\n }();\n exports.default = Rest;\n\n /***/\n }, /* 31 */\n /***/function (module, exports, __webpack_require__) {\n ;\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(6));\n } else {}\n })(this, function (CryptoJS) {\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n\n // Initialization and round constants tables\n var H = [];\n var K = [];\n\n // Compute constants\n (function () {\n function isPrime(n) {\n var sqrtN = Math.sqrt(n);\n for (var factor = 2; factor <= sqrtN; factor++) {\n if (!(n % factor)) {\n return false;\n }\n }\n return true;\n }\n function getFractionalBits(n) {\n return (n - (n | 0)) * 0x100000000 | 0;\n }\n var n = 2;\n var nPrime = 0;\n while (nPrime < 64) {\n if (isPrime(n)) {\n if (nPrime < 8) {\n H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n }\n K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n nPrime++;\n }\n n++;\n }\n })();\n\n // Reusable object\n var W = [];\n\n /**\n * SHA-256 hash algorithm.\n */\n var SHA256 = C_algo.SHA256 = Hasher.extend({\n _doReset: function () {\n this._hash = new WordArray.init(H.slice(0));\n },\n _doProcessBlock: function (M, offset) {\n // Shortcut\n var H = this._hash.words;\n\n // Working variables\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n var f = H[5];\n var g = H[6];\n var h = H[7];\n\n // Computation\n for (var i = 0; i < 64; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0;\n } else {\n var gamma0x = W[i - 15];\n var gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3;\n var gamma1x = W[i - 2];\n var gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10;\n W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n }\n var ch = e & f ^ ~e & g;\n var maj = a & b ^ a & c ^ b & c;\n var sigma0 = (a << 30 | a >>> 2) ^ (a << 19 | a >>> 13) ^ (a << 10 | a >>> 22);\n var sigma1 = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25);\n var t1 = h + sigma1 + ch + K[i] + W[i];\n var t2 = sigma0 + maj;\n h = g;\n g = f;\n f = e;\n e = d + t1 | 0;\n d = c;\n c = b;\n b = a;\n a = t1 + t2 | 0;\n }\n\n // Intermediate hash value\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n H[4] = H[4] + e | 0;\n H[5] = H[5] + f | 0;\n H[6] = H[6] + g | 0;\n H[7] = H[7] + h | 0;\n },\n _doFinalize: function () {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n\n // Add padding\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4;\n\n // Hash final blocks\n this._process();\n\n // Return final computed hash\n return this._hash;\n },\n clone: function () {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA256('message');\n * var hash = CryptoJS.SHA256(wordArray);\n */\n C.SHA256 = Hasher._createHelper(SHA256);\n\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA256(message, key);\n */\n C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n })(Math);\n return CryptoJS.SHA256;\n });\n\n /***/\n }, /* 32 */\n /***/function (module, exports, __webpack_require__) {\n ;\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(6));\n } else {}\n })(this, function (CryptoJS) {\n return CryptoJS.enc.Utf8;\n });\n\n /***/\n }, /* 33 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var presence_1 = tslib_1.__importDefault(__webpack_require__(34));\n var message_1 = tslib_1.__importDefault(__webpack_require__(9));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var paginatedresource_1 = tslib_1.__importDefault(__webpack_require__(18));\n var resource_1 = tslib_1.__importDefault(__webpack_require__(24));\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n function noop() {}\n var MSG_ID_ENTROPY_BYTES = 9;\n function allEmptyIds(messages) {\n return Utils.arrEvery(messages, function (message) {\n return !message.id;\n });\n }\n function normaliseChannelOptions(options) {\n var channelOptions = options || {};\n if (channelOptions.cipher) {\n if (!platform_1.default.Crypto) throw new Error('Encryption not enabled; use ably.encryption.js instead');\n var cipher = platform_1.default.Crypto.getCipher(channelOptions.cipher);\n channelOptions.cipher = cipher.cipherParams;\n channelOptions.channelCipher = cipher.cipher;\n } else if ('cipher' in channelOptions) {\n /* Don't deactivate an existing cipher unless options\n * has a 'cipher' key that's falsey */\n channelOptions.cipher = undefined;\n channelOptions.channelCipher = null;\n }\n return channelOptions;\n }\n var Channel = /** @class */function (_super) {\n tslib_1.__extends(Channel, _super);\n function Channel(rest, name, channelOptions) {\n var _this = _super.call(this) || this;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Channel()', 'started; name = ' + name);\n _this.rest = rest;\n _this.name = name;\n _this.basePath = '/channels/' + encodeURIComponent(name);\n _this.presence = new presence_1.default(_this);\n _this.channelOptions = normaliseChannelOptions(channelOptions);\n return _this;\n }\n Channel.prototype.setOptions = function (options) {\n this.channelOptions = normaliseChannelOptions(options);\n };\n Channel.prototype.history = function (params, callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Channel.history()', 'channel = ' + this.name);\n /* params and callback are optional; see if params contains the callback */\n if (callback === undefined) {\n if (typeof params == 'function') {\n callback = params;\n params = null;\n } else {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'history', arguments);\n }\n callback = noop;\n }\n }\n this._history(params, callback);\n };\n Channel.prototype._history = function (params, callback) {\n var rest = this.rest,\n format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json,\n envelope = this.rest.http.supportsLinkHeaders ? undefined : format,\n headers = Utils.defaultGetHeaders(rest.options, format);\n if (rest.options.headers) Utils.mixin(headers, rest.options.headers);\n var options = this.channelOptions;\n new paginatedresource_1.default(rest, this.basePath + '/messages', headers, envelope, function (body, headers, unpacked) {\n return message_1.default.fromResponseBody(body, options, unpacked ? undefined : format);\n }).get(params, callback);\n };\n Channel.prototype.publish = function () {\n var _this = this;\n var argCount = arguments.length,\n first = arguments[0],\n second = arguments[1];\n var callback = arguments[argCount - 1];\n var messages;\n var params;\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'publish', arguments);\n }\n callback = noop;\n }\n if (typeof first === 'string' || first === null) {\n /* (name, data, ...) */\n messages = [message_1.default.fromValues({\n name: first,\n data: second\n })];\n params = arguments[2];\n } else if (Utils.isObject(first)) {\n messages = [message_1.default.fromValues(first)];\n params = arguments[1];\n } else if (Utils.isArray(first)) {\n messages = message_1.default.fromValuesArray(first);\n params = arguments[1];\n } else {\n throw new errorinfo_1.default('The single-argument form of publish() expects a message object or an array of message objects', 40013, 400);\n }\n if (typeof params !== 'object' || !params) {\n /* No params supplied (so after-message argument is just the callback or undefined) */\n params = {};\n }\n var rest = this.rest,\n options = rest.options,\n format = options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json,\n idempotentRestPublishing = rest.options.idempotentRestPublishing,\n headers = Utils.defaultPostHeaders(rest.options, format);\n if (options.headers) Utils.mixin(headers, options.headers);\n if (idempotentRestPublishing && allEmptyIds(messages)) {\n var msgIdBase_1 = Utils.randomString(MSG_ID_ENTROPY_BYTES);\n Utils.arrForEach(messages, function (message, index) {\n message.id = msgIdBase_1 + ':' + index.toString();\n });\n }\n message_1.default.encodeArray(messages, this.channelOptions, function (err) {\n if (err) {\n callback(err);\n return;\n }\n /* RSL1i */\n var size = message_1.default.getMessagesSize(messages),\n maxMessageSize = options.maxMessageSize;\n if (size > maxMessageSize) {\n callback(new errorinfo_1.default('Maximum size of messages that can be published at once exceeded ( was ' + size + ' bytes; limit is ' + maxMessageSize + ' bytes)', 40009, 400));\n return;\n }\n _this._publish(message_1.default.serialize(messages, format), headers, params, callback);\n });\n };\n Channel.prototype._publish = function (requestBody, headers, params, callback) {\n resource_1.default.post(this.rest, this.basePath + '/messages', requestBody, headers, params, null, callback);\n };\n Channel.prototype.status = function (callback) {\n if (typeof callback !== 'function' && this.rest.options.promises) {\n return Utils.promisify(this, 'status', []);\n }\n var format = this.rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json;\n var headers = Utils.defaultPostHeaders(this.rest.options, format);\n resource_1.default.get(this.rest, this.basePath, headers, {}, format, callback || noop);\n };\n return Channel;\n }(eventemitter_1.default);\n exports.default = Channel;\n\n /***/\n }, /* 34 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var paginatedresource_1 = tslib_1.__importDefault(__webpack_require__(18));\n var presencemessage_1 = tslib_1.__importDefault(__webpack_require__(14));\n function noop() {}\n var Presence = /** @class */function (_super) {\n tslib_1.__extends(Presence, _super);\n function Presence(channel) {\n var _this = _super.call(this) || this;\n _this.channel = channel;\n _this.basePath = channel.basePath + '/presence';\n return _this;\n }\n Presence.prototype.get = function (params, callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Presence.get()', 'channel = ' + this.channel.name);\n /* params and callback are optional; see if params contains the callback */\n if (callback === undefined) {\n if (typeof params == 'function') {\n callback = params;\n params = null;\n } else {\n if (this.channel.rest.options.promises) {\n return Utils.promisify(this, 'get', arguments);\n }\n callback = noop;\n }\n }\n var rest = this.channel.rest,\n format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json,\n envelope = this.channel.rest.http.supportsLinkHeaders ? undefined : format,\n headers = Utils.defaultGetHeaders(rest.options, format);\n if (rest.options.headers) Utils.mixin(headers, rest.options.headers);\n var options = this.channel.channelOptions;\n new paginatedresource_1.default(rest, this.basePath, headers, envelope, function (body, headers, unpacked) {\n return presencemessage_1.default.fromResponseBody(body, options, unpacked ? undefined : format);\n }).get(params, callback);\n };\n Presence.prototype.history = function (params, callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Presence.history()', 'channel = ' + this.channel.name);\n this._history(params, callback);\n };\n Presence.prototype._history = function (params, callback) {\n /* params and callback are optional; see if params contains the callback */\n if (callback === undefined) {\n if (typeof params == 'function') {\n callback = params;\n params = null;\n } else {\n if (this.channel.rest.options.promises) {\n return Utils.promisify(this, '_history', arguments);\n }\n callback = noop;\n }\n }\n var rest = this.channel.rest,\n format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json,\n envelope = this.channel.rest.http.supportsLinkHeaders ? undefined : format,\n headers = Utils.defaultGetHeaders(rest.options, format);\n if (rest.options.headers) Utils.mixin(headers, rest.options.headers);\n var options = this.channel.channelOptions;\n new paginatedresource_1.default(rest, this.basePath + '/history', headers, envelope, function (body, headers, unpacked) {\n return presencemessage_1.default.fromResponseBody(body, options, unpacked ? undefined : format);\n }).get(params, callback);\n };\n return Presence;\n }(eventemitter_1.default);\n exports.default = Presence;\n\n /***/\n }, /* 35 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var MessageQueue = /** @class */function (_super) {\n tslib_1.__extends(MessageQueue, _super);\n function MessageQueue() {\n var _this = _super.call(this) || this;\n _this.messages = [];\n return _this;\n }\n MessageQueue.prototype.count = function () {\n return this.messages.length;\n };\n MessageQueue.prototype.push = function (message) {\n this.messages.push(message);\n };\n MessageQueue.prototype.shift = function () {\n return this.messages.shift();\n };\n MessageQueue.prototype.last = function () {\n return this.messages[this.messages.length - 1];\n };\n MessageQueue.prototype.copyAll = function () {\n return this.messages.slice();\n };\n MessageQueue.prototype.append = function (messages) {\n this.messages.push.apply(this.messages, messages);\n };\n MessageQueue.prototype.prepend = function (messages) {\n this.messages.unshift.apply(this.messages, messages);\n };\n MessageQueue.prototype.completeMessages = function (serial, count, err) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'MessageQueue.completeMessages()', 'serial = ' + serial + '; count = ' + count);\n err = err || null;\n var messages = this.messages;\n if (messages.length === 0) {\n throw new Error('MessageQueue.completeMessages(): completeMessages called on any empty MessageQueue');\n }\n var first = messages[0];\n if (first) {\n var startSerial = first.message.msgSerial;\n var endSerial = serial + count; /* the serial of the first message that is *not* the subject of this call */\n if (endSerial > startSerial) {\n var completeMessages = messages.splice(0, endSerial - startSerial);\n for (var _i = 0, completeMessages_1 = completeMessages; _i < completeMessages_1.length; _i++) {\n var message = completeMessages_1[_i];\n message.callback(err);\n }\n }\n if (messages.length == 0) this.emit('idle');\n }\n };\n MessageQueue.prototype.completeAllMessages = function (err) {\n this.completeMessages(0, Number.MAX_SAFE_INTEGER || Number.MAX_VALUE, err);\n };\n MessageQueue.prototype.resetSendAttempted = function () {\n for (var _i = 0, _a = this.messages; _i < _a.length; _i++) {\n var msg = _a[_i];\n msg.sendAttempted = false;\n }\n };\n MessageQueue.prototype.clear = function () {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'MessageQueue.clear()', 'clearing ' + this.messages.length + ' messages');\n this.messages = [];\n this.emit('idle');\n };\n return MessageQueue;\n }(eventemitter_1.default);\n exports.default = MessageQueue;\n\n /***/\n }, /* 36 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var ConnectionStateChange = /** @class */function () {\n function ConnectionStateChange(previous, current, retryIn, reason) {\n this.previous = previous;\n this.current = current;\n if (retryIn) this.retryIn = retryIn;\n if (reason) this.reason = reason;\n }\n return ConnectionStateChange;\n }();\n exports.default = ConnectionStateChange;\n\n /***/\n }, /* 37 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.isSuccessCode = void 0;\n var HttpStatusCodes;\n (function (HttpStatusCodes) {\n HttpStatusCodes[HttpStatusCodes[\"Success\"] = 200] = \"Success\";\n HttpStatusCodes[HttpStatusCodes[\"NoContent\"] = 204] = \"NoContent\";\n HttpStatusCodes[HttpStatusCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpStatusCodes[HttpStatusCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpStatusCodes[HttpStatusCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpStatusCodes[HttpStatusCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpStatusCodes[HttpStatusCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n })(HttpStatusCodes || (HttpStatusCodes = {}));\n function isSuccessCode(statusCode) {\n return statusCode >= HttpStatusCodes.Success && statusCode < HttpStatusCodes.BadRequest;\n }\n exports.isSuccessCode = isSuccessCode;\n exports.default = HttpStatusCodes;\n\n /***/\n }, /* 38 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var protocolmessage_1 = tslib_1.__importDefault(__webpack_require__(10));\n var eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var channel_1 = tslib_1.__importDefault(__webpack_require__(33));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var realtimepresence_1 = tslib_1.__importDefault(__webpack_require__(54));\n var message_1 = tslib_1.__importDefault(__webpack_require__(9));\n var channelstatechange_1 = tslib_1.__importDefault(__webpack_require__(39));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var presencemessage_1 = tslib_1.__importDefault(__webpack_require__(14));\n var connectionerrors_1 = tslib_1.__importDefault(__webpack_require__(19));\n var actions = protocolmessage_1.default.Action;\n var noop = function () {};\n function validateChannelOptions(options) {\n if (options && 'params' in options && !Utils.isObject(options.params)) {\n return new errorinfo_1.default('options.params must be an object', 40000, 400);\n }\n if (options && 'modes' in options) {\n if (!Utils.isArray(options.modes)) {\n return new errorinfo_1.default('options.modes must be an array', 40000, 400);\n }\n for (var i = 0; i < options.modes.length; i++) {\n var currentMode = options.modes[i];\n if (!currentMode || typeof currentMode !== 'string' || !Utils.arrIn(protocolmessage_1.default.channelModes, String.prototype.toUpperCase.call(currentMode))) {\n return new errorinfo_1.default('Invalid channel mode: ' + currentMode, 40000, 400);\n }\n }\n }\n }\n var RealtimeChannel = /** @class */function (_super) {\n tslib_1.__extends(RealtimeChannel, _super);\n function RealtimeChannel(realtime, name, options) {\n var _this = _super.call(this, realtime, name, options) || this;\n _this.retryCount = 0;\n _this.history = function (params, callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimeChannel.history()', 'channel = ' + this.name);\n /* params and callback are optional; see if params contains the callback */\n if (callback === undefined) {\n if (typeof params == 'function') {\n callback = params;\n params = null;\n } else {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'history', arguments);\n }\n callback = noop;\n }\n }\n if (params && params.untilAttach) {\n if (this.state !== 'attached') {\n callback(new errorinfo_1.default('option untilAttach requires the channel to be attached', 40000, 400));\n return;\n }\n if (!this.properties.attachSerial) {\n callback(new errorinfo_1.default('untilAttach was specified and channel is attached, but attachSerial is not defined', 40000, 400));\n return;\n }\n delete params.untilAttach;\n params.from_serial = this.properties.attachSerial;\n }\n channel_1.default.prototype._history.call(this, params, callback);\n };\n _this.whenState = function (state, listener) {\n return eventemitter_1.default.prototype.whenState.call(_this, state, _this.state, listener);\n };\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimeChannel()', 'started; name = ' + name);\n _this.realtime = realtime;\n _this.presence = new realtimepresence_1.default(_this);\n _this.connectionManager = realtime.connection.connectionManager;\n _this.state = 'initialized';\n _this.subscriptions = new eventemitter_1.default();\n _this.syncChannelSerial = undefined;\n _this.properties = {\n attachSerial: undefined,\n channelSerial: undefined\n };\n _this.setOptions(options);\n _this.errorReason = null;\n _this._requestedFlags = null;\n _this._mode = null;\n _this._attachResume = false;\n _this._decodingContext = {\n channelOptions: _this.channelOptions,\n plugins: realtime.options.plugins || {},\n baseEncodedPreviousPayload: undefined\n };\n _this._lastPayload = {\n messageId: null,\n protocolMessageChannelSerial: null,\n decodeFailureRecoveryInProgress: null\n };\n /* Only differences between this and the public event emitter is that this emits an\n * update event for all ATTACHEDs, whether resumed or not */\n _this._allChannelChanges = new eventemitter_1.default();\n return _this;\n }\n RealtimeChannel.invalidStateError = function (state) {\n return {\n statusCode: 400,\n code: 90001,\n message: 'Channel operation failed as channel state is ' + state\n };\n };\n RealtimeChannel.processListenerArgs = function (args) {\n /* [event], listener, [callback] */\n args = Array.prototype.slice.call(args);\n if (typeof args[0] === 'function') {\n args.unshift(null);\n }\n if (args[args.length - 1] == undefined) {\n args.pop();\n }\n return args;\n };\n RealtimeChannel.prototype.setOptions = function (options, callback) {\n if (!callback) {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'setOptions', arguments);\n }\n }\n var _callback = callback || function (err) {\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'RealtimeChannel.setOptions()', 'Set options failed: ' + err.toString());\n }\n };\n var err = validateChannelOptions(options);\n if (err) {\n _callback(err);\n return;\n }\n channel_1.default.prototype.setOptions.call(this, options);\n if (this._decodingContext) this._decodingContext.channelOptions = this.channelOptions;\n if (this._shouldReattachToSetOptions(options)) {\n /* This does not just do _attach(true, null, callback) because that would put us\n * into the 'attaching' state until we receive the new attached, which is\n * conceptually incorrect: we are still attached, we just have a pending request to\n * change some channel params. Per RTL17 going into the attaching state would mean\n * rejecting messages until we have confirmation that the options have changed,\n * which would unnecessarily lose message continuity. */\n this.attachImpl();\n // Ignore 'attaching' -- could be just due to to a resume & reattach, should not\n // call back setOptions until we're definitely attached with the new options (or\n // else in a terminal state)\n this._allChannelChanges.once(['attached', 'update', 'detached', 'failed'], function (stateChange) {\n switch (this.event) {\n case 'update':\n case 'attached':\n _callback === null || _callback === void 0 ? void 0 : _callback(null);\n return;\n default:\n _callback === null || _callback === void 0 ? void 0 : _callback(stateChange.reason);\n return;\n }\n });\n } else {\n _callback();\n }\n };\n RealtimeChannel.prototype._shouldReattachToSetOptions = function (options) {\n return (this.state === 'attached' || this.state === 'attaching') && ((options === null || options === void 0 ? void 0 : options.params) || (options === null || options === void 0 ? void 0 : options.modes));\n };\n RealtimeChannel.prototype.publish = function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var messages = args[0];\n var argCount = args.length;\n var callback = args[argCount - 1];\n if (typeof callback !== 'function') {\n if (this.realtime.options.promises) {\n return Utils.promisify(this, 'publish', arguments);\n }\n callback = noop;\n ++argCount;\n }\n if (!this.connectionManager.activeState()) {\n callback(this.connectionManager.getError());\n return;\n }\n if (argCount == 2) {\n if (Utils.isObject(messages)) messages = [message_1.default.fromValues(messages)];else if (Utils.isArray(messages)) messages = message_1.default.fromValuesArray(messages);else throw new errorinfo_1.default('The single-argument form of publish() expects a message object or an array of message objects', 40013, 400);\n } else {\n messages = [message_1.default.fromValues({\n name: args[0],\n data: args[1]\n })];\n }\n var maxMessageSize = this.realtime.options.maxMessageSize;\n message_1.default.encodeArray(messages, this.channelOptions, function (err) {\n if (err) {\n callback(err);\n return;\n }\n /* RSL1i */\n var size = message_1.default.getMessagesSize(messages);\n if (size > maxMessageSize) {\n callback(new errorinfo_1.default('Maximum size of messages that can be published at once exceeded ( was ' + size + ' bytes; limit is ' + maxMessageSize + ' bytes)', 40009, 400));\n return;\n }\n _this.__publish(messages, callback);\n });\n };\n // Double underscore used to prevent type conflict with underlying Channel._publish method\n RealtimeChannel.prototype.__publish = function (messages, callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimeChannel.publish()', 'message count = ' + messages.length);\n var state = this.state;\n switch (state) {\n case 'failed':\n case 'suspended':\n callback(errorinfo_1.default.fromValues(RealtimeChannel.invalidStateError(state)));\n break;\n default:\n {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimeChannel.publish()', 'sending message; channel state is ' + state);\n var msg = new protocolmessage_1.default();\n msg.action = actions.MESSAGE;\n msg.channel = this.name;\n msg.messages = messages;\n this.sendMessage(msg, callback);\n break;\n }\n }\n };\n RealtimeChannel.prototype.onEvent = function (messages) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimeChannel.onEvent()', 'received message');\n var subscriptions = this.subscriptions;\n for (var i = 0; i < messages.length; i++) {\n var message = messages[i];\n subscriptions.emit(message.name, message);\n }\n };\n RealtimeChannel.prototype.attach = function (flags, callback) {\n var _flags;\n if (typeof flags === 'function') {\n callback = flags;\n _flags = null;\n } else {\n _flags = flags;\n }\n if (!callback) {\n if (this.realtime.options.promises) {\n return Utils.promisify(this, 'attach', arguments);\n }\n callback = function (err) {\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_MAJOR, 'RealtimeChannel.attach()', 'Channel attach failed: ' + err.toString());\n }\n };\n }\n if (_flags) {\n logger_1.default.deprecated('channel.attach() with flags', 'channel.setOptions() with channelOptions.params');\n /* If flags requested, always do a re-attach. TODO only do this if\n * current mode differs from requested mode */\n this._requestedFlags = _flags;\n } else if (this.state === 'attached') {\n callback();\n return;\n }\n this._attach(false, null, callback);\n };\n RealtimeChannel.prototype._attach = function (forceReattach, attachReason, callback) {\n if (!callback) {\n callback = function (err) {\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'RealtimeChannel._attach()', 'Channel attach failed: ' + err.toString());\n }\n };\n }\n var connectionManager = this.connectionManager;\n if (!connectionManager.activeState()) {\n callback(connectionManager.getError());\n return;\n }\n if (this.state !== 'attaching' || forceReattach) {\n this.requestState('attaching', attachReason);\n }\n this.once(function (stateChange) {\n switch (this.event) {\n case 'attached':\n callback === null || callback === void 0 ? void 0 : callback();\n break;\n case 'detached':\n case 'suspended':\n case 'failed':\n callback === null || callback === void 0 ? void 0 : callback(stateChange.reason || connectionManager.getError() || new errorinfo_1.default('Unable to attach; reason unknown; state = ' + this.event, 90000, 500));\n break;\n case 'detaching':\n callback === null || callback === void 0 ? void 0 : callback(new errorinfo_1.default('Attach request superseded by a subsequent detach request', 90000, 409));\n break;\n }\n });\n };\n RealtimeChannel.prototype.attachImpl = function () {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimeChannel.attachImpl()', 'sending ATTACH message');\n var attachMsg = protocolmessage_1.default.fromValues({\n action: actions.ATTACH,\n channel: this.name,\n params: this.channelOptions.params,\n // RTL4c1: Includes the channel serial to resume from a previous message\n // or attachment.\n channelSerial: this.properties.channelSerial\n });\n if (this._requestedFlags) {\n attachMsg.encodeModesToFlags(this._requestedFlags);\n } else if (this.channelOptions.modes) {\n attachMsg.encodeModesToFlags(Utils.allToUpperCase(this.channelOptions.modes));\n }\n if (this._attachResume) {\n attachMsg.setFlag('ATTACH_RESUME');\n }\n if (this._lastPayload.decodeFailureRecoveryInProgress) {\n attachMsg.channelSerial = this._lastPayload.protocolMessageChannelSerial;\n }\n this.sendMessage(attachMsg, noop);\n };\n RealtimeChannel.prototype.detach = function (callback) {\n if (!callback) {\n if (this.realtime.options.promises) {\n return Utils.promisify(this, 'detach', arguments);\n }\n callback = noop;\n }\n var connectionManager = this.connectionManager;\n if (!connectionManager.activeState()) {\n callback(connectionManager.getError());\n return;\n }\n switch (this.state) {\n case 'suspended':\n this.notifyState('detached');\n callback();\n break;\n case 'detached':\n callback();\n break;\n case 'failed':\n callback(new errorinfo_1.default('Unable to detach; channel state = failed', 90001, 400));\n break;\n default:\n this.requestState('detaching');\n // eslint-disable-next-line no-fallthrough\n case 'detaching':\n this.once(function (stateChange) {\n switch (this.event) {\n case 'detached':\n callback();\n break;\n case 'attached':\n case 'suspended':\n case 'failed':\n callback(stateChange.reason || connectionManager.getError() || new errorinfo_1.default('Unable to detach; reason unknown; state = ' + this.event, 90000, 500));\n break;\n case 'attaching':\n callback(new errorinfo_1.default('Detach request superseded by a subsequent attach request', 90000, 409));\n break;\n }\n });\n }\n };\n RealtimeChannel.prototype.detachImpl = function (callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimeChannel.detach()', 'sending DETACH message');\n var msg = protocolmessage_1.default.fromValues({\n action: actions.DETACH,\n channel: this.name\n });\n this.sendMessage(msg, callback || noop);\n };\n RealtimeChannel.prototype.subscribe = function () {\n var args = []; /* [event], listener, [callback] */\n for (var _i = 0 /* [event], listener, [callback] */; _i < arguments.length /* [event], listener, [callback] */; _i++ /* [event], listener, [callback] */) {\n args[_i] = arguments[_i]; /* [event], listener, [callback] */\n }\n\n var _a = RealtimeChannel.processListenerArgs(args),\n event = _a[0],\n listener = _a[1],\n callback = _a[2];\n if (!callback && this.realtime.options.promises) {\n return Utils.promisify(this, 'subscribe', [event, listener]);\n }\n if (this.state === 'failed') {\n callback === null || callback === void 0 ? void 0 : callback(errorinfo_1.default.fromValues(RealtimeChannel.invalidStateError('failed')));\n return;\n }\n // Filtered\n if (event && typeof event === 'object' && !Array.isArray(event)) {\n this._subscribeFilter(event, listener);\n } else {\n this.subscriptions.on(event, listener);\n }\n return this.attach(callback || noop);\n };\n RealtimeChannel.prototype._subscribeFilter = function (filter, listener) {\n var filteredListener = function (m) {\n var _a, _b, _c, _d, _e, _f;\n var mapping = {\n name: m.name,\n refTimeserial: (_b = (_a = m.extras) === null || _a === void 0 ? void 0 : _a.ref) === null || _b === void 0 ? void 0 : _b.timeserial,\n refType: (_d = (_c = m.extras) === null || _c === void 0 ? void 0 : _c.ref) === null || _d === void 0 ? void 0 : _d.type,\n isRef: !!((_f = (_e = m.extras) === null || _e === void 0 ? void 0 : _e.ref) === null || _f === void 0 ? void 0 : _f.timeserial),\n clientId: m.clientId\n };\n // Check if any values are defined in the filter and if they match the value in the message object\n if (Object.entries(filter).find(function (_a) {\n var key = _a[0],\n value = _a[1];\n return value !== undefined ? mapping[key] !== value : false;\n })) {\n return;\n }\n listener(m);\n };\n this._addFilteredSubscription(filter, listener, filteredListener);\n this.subscriptions.on(filteredListener);\n };\n // Adds a new filtered subscription\n RealtimeChannel.prototype._addFilteredSubscription = function (filter, realListener, filteredListener) {\n var _a;\n if (!this.filteredSubscriptions) {\n this.filteredSubscriptions = new Map();\n }\n if (this.filteredSubscriptions.has(realListener)) {\n var realListenerMap = this.filteredSubscriptions.get(realListener);\n // Add the filtered listener to the map, or append to the array if this filter has already been used\n realListenerMap.set(filter, ((_a = realListenerMap === null || realListenerMap === void 0 ? void 0 : realListenerMap.get(filter)) === null || _a === void 0 ? void 0 : _a.concat(filteredListener)) || [filteredListener]);\n } else {\n this.filteredSubscriptions.set(realListener, new Map([[filter, [filteredListener]]]));\n }\n };\n RealtimeChannel.prototype._getAndDeleteFilteredSubscriptions = function (filter, realListener) {\n var _this = this;\n // No filtered subscriptions map means there has been no filtered subscriptions yet, so return nothing\n if (!this.filteredSubscriptions) {\n return [];\n }\n // Only a filter is passed in with no specific listener\n if (!realListener && filter) {\n // Return each listener which is attached to the specified filter object\n return Array.from(this.filteredSubscriptions.entries()).map(function (_a) {\n var _b;\n var key = _a[0],\n filterMaps = _a[1];\n // Get (then delete) the maps matching this filter\n var listenerMaps = filterMaps.get(filter);\n filterMaps.delete(filter);\n // Clear the parent if nothing is left\n if (filterMaps.size === 0) {\n (_b = _this.filteredSubscriptions) === null || _b === void 0 ? void 0 : _b.delete(key);\n }\n return listenerMaps;\n }).reduce(function (prev, cur) {\n var _a;\n return cur ? (_a = prev).concat.apply(_a, cur) : prev;\n }, []);\n }\n // No subscriptions for this listener\n if (!realListener || !this.filteredSubscriptions.has(realListener)) {\n return [];\n }\n var realListenerMap = this.filteredSubscriptions.get(realListener);\n // If no filter is specified return all listeners using that function\n if (!filter) {\n // array.flat is not available unless we support es2019 or higher\n var listeners_1 = Array.from(realListenerMap.values()).reduce(function (prev, cur) {\n return prev.concat.apply(prev, cur);\n }, []);\n // remove the listener from the map\n this.filteredSubscriptions.delete(realListener);\n return listeners_1;\n }\n var listeners = realListenerMap.get(filter);\n realListenerMap.delete(filter);\n return listeners || [];\n };\n RealtimeChannel.prototype.unsubscribe = function () {\n var _this = this;\n var _a;\n var args = []; /* [event], listener */\n for (var _i = 0 /* [event], listener */; _i < arguments.length /* [event], listener */; _i++ /* [event], listener */) {\n args[_i] = arguments[_i]; /* [event], listener */\n }\n\n var _b = RealtimeChannel.processListenerArgs(args),\n event = _b[0],\n listener = _b[1];\n // If we either have a filtered listener, a filter or both we need to do additional processing to find the original function(s)\n if (typeof event === 'object' && !listener || ((_a = this.filteredSubscriptions) === null || _a === void 0 ? void 0 : _a.has(listener))) {\n this._getAndDeleteFilteredSubscriptions(event, listener).forEach(function (l) {\n return _this.subscriptions.off(l);\n });\n return;\n }\n this.subscriptions.off(event, listener);\n };\n RealtimeChannel.prototype.sync = function () {\n /* check preconditions */\n switch (this.state) {\n case 'initialized':\n case 'detaching':\n case 'detached':\n throw new errorinfo_1.default('Unable to sync to channel; not attached', 40000);\n default:\n }\n var connectionManager = this.connectionManager;\n if (!connectionManager.activeState()) {\n throw connectionManager.getError();\n }\n /* send sync request */\n var syncMessage = protocolmessage_1.default.fromValues({\n action: actions.SYNC,\n channel: this.name\n });\n if (this.syncChannelSerial) {\n syncMessage.channelSerial = this.syncChannelSerial;\n }\n connectionManager.send(syncMessage);\n };\n RealtimeChannel.prototype.sendMessage = function (msg, callback) {\n this.connectionManager.send(msg, this.realtime.options.queueMessages, callback);\n };\n RealtimeChannel.prototype.sendPresence = function (presence, callback) {\n var msg = protocolmessage_1.default.fromValues({\n action: actions.PRESENCE,\n channel: this.name,\n presence: Utils.isArray(presence) ? presencemessage_1.default.fromValuesArray(presence) : [presencemessage_1.default.fromValues(presence)]\n });\n this.sendMessage(msg, callback);\n };\n RealtimeChannel.prototype.onMessage = function (message) {\n if (message.action === actions.ATTACHED || message.action === actions.MESSAGE || message.action === actions.PRESENCE) {\n // RTL15b\n this.setChannelSerial(message.channelSerial);\n }\n var syncChannelSerial,\n isSync = false;\n switch (message.action) {\n case actions.ATTACHED:\n {\n this.properties.attachSerial = message.channelSerial;\n this._mode = message.getMode();\n this.params = message.params || {};\n var modesFromFlags = message.decodeModesFromFlags();\n this.modes = modesFromFlags && Utils.allToLowerCase(modesFromFlags) || undefined;\n var resumed = message.hasFlag('RESUMED');\n var hasPresence = message.hasFlag('HAS_PRESENCE');\n if (this.state === 'attached') {\n if (!resumed) {\n /* On a loss of continuity, the presence set needs to be re-synced */\n this.presence.onAttached(hasPresence);\n }\n var change = new channelstatechange_1.default(this.state, this.state, resumed, message.error);\n this._allChannelChanges.emit('update', change);\n if (!resumed || this.channelOptions.updateOnAttached) {\n this.emit('update', change);\n }\n } else if (this.state === 'detaching') {\n /* RTL5i: re-send DETACH and remain in the 'detaching' state */\n this.checkPendingState();\n } else {\n this.notifyState('attached', message.error, resumed, hasPresence);\n }\n break;\n }\n case actions.DETACHED:\n {\n var detachErr = message.error ? errorinfo_1.default.fromValues(message.error) : new errorinfo_1.default('Channel detached', 90001, 404);\n if (this.state === 'detaching') {\n this.notifyState('detached', detachErr);\n } else if (this.state === 'attaching') {\n /* Only retry immediately if we were previously attached. If we were\n * attaching, go into suspended, fail messages, and wait a few seconds\n * before retrying */\n this.notifyState('suspended', detachErr);\n } else {\n this.requestState('attaching', detachErr);\n }\n break;\n }\n case actions.SYNC:\n /* syncs can have channelSerials, but might not if the sync is one page long */\n isSync = true;\n syncChannelSerial = this.syncChannelSerial = message.channelSerial;\n /* syncs can happen on channels with no presence data as part of connection\n * resuming, in which case protocol message has no presence property */\n if (!message.presence) break;\n // eslint-disable-next-line no-fallthrough\n case actions.PRESENCE:\n {\n var presence = message.presence;\n var id = message.id,\n connectionId = message.connectionId,\n timestamp = message.timestamp;\n var options = this.channelOptions;\n var presenceMsg = void 0;\n for (var i = 0; i < presence.length; i++) {\n try {\n presenceMsg = presence[i];\n presencemessage_1.default.decode(presenceMsg, options);\n if (!presenceMsg.connectionId) presenceMsg.connectionId = connectionId;\n if (!presenceMsg.timestamp) presenceMsg.timestamp = timestamp;\n if (!presenceMsg.id) presenceMsg.id = id + ':' + i;\n } catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'RealtimeChannel.onMessage()', e.toString());\n }\n }\n this.presence.setPresence(presence, isSync, syncChannelSerial);\n break;\n }\n case actions.MESSAGE:\n {\n //RTL17\n if (this.state !== 'attached') {\n logger_1.default.logAction(logger_1.default.LOG_MAJOR, 'RealtimeChannel.onMessage()', 'Message \"' + message.id + '\" skipped as this channel \"' + this.name + '\" state is not \"attached\" (state is \"' + this.state + '\").');\n return;\n }\n var messages = message.messages,\n firstMessage = messages[0],\n lastMessage = messages[messages.length - 1],\n id = message.id,\n connectionId = message.connectionId,\n timestamp = message.timestamp;\n if (firstMessage.extras && firstMessage.extras.delta && firstMessage.extras.delta.from !== this._lastPayload.messageId) {\n var msg = 'Delta message decode failure - previous message not available for message \"' + message.id + '\" on this channel \"' + this.name + '\".';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'RealtimeChannel.onMessage()', msg);\n this._startDecodeFailureRecovery(new errorinfo_1.default(msg, 40018, 400));\n break;\n }\n for (var i = 0; i < messages.length; i++) {\n var msg = messages[i];\n try {\n message_1.default.decode(msg, this._decodingContext);\n } catch (e) {\n /* decrypt failed .. the most likely cause is that we have the wrong key */\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'RealtimeChannel.onMessage()', e.toString());\n switch (e.code) {\n case 40018:\n /* decode failure */\n this._startDecodeFailureRecovery(e);\n return;\n case 40019:\n /* No vcdiff plugin passed in - no point recovering, give up */\n // eslint-disable-next-line no-fallthrough\n case 40021:\n /* Browser does not support deltas, similarly no point recovering */\n this.notifyState('failed', e);\n return;\n }\n }\n if (!msg.connectionId) msg.connectionId = connectionId;\n if (!msg.timestamp) msg.timestamp = timestamp;\n if (!msg.id) msg.id = id + ':' + i;\n }\n this._lastPayload.messageId = lastMessage.id;\n this._lastPayload.protocolMessageChannelSerial = message.channelSerial;\n this.onEvent(messages);\n break;\n }\n case actions.ERROR:\n {\n /* there was a channel-specific error */\n var err = message.error;\n if (err && err.code == 80016) {\n /* attach/detach operation attempted on superseded transport handle */\n this.checkPendingState();\n } else {\n this.notifyState('failed', errorinfo_1.default.fromValues(err));\n }\n break;\n }\n default:\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'RealtimeChannel.onMessage()', 'Fatal protocol error: unrecognised action (' + message.action + ')');\n this.connectionManager.abort(connectionerrors_1.default.unknownChannelErr);\n }\n };\n RealtimeChannel.prototype._startDecodeFailureRecovery = function (reason) {\n var _this = this;\n if (!this._lastPayload.decodeFailureRecoveryInProgress) {\n logger_1.default.logAction(logger_1.default.LOG_MAJOR, 'RealtimeChannel.onMessage()', 'Starting decode failure recovery process.');\n this._lastPayload.decodeFailureRecoveryInProgress = true;\n this._attach(true, reason, function () {\n _this._lastPayload.decodeFailureRecoveryInProgress = false;\n });\n }\n };\n RealtimeChannel.prototype.onAttached = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimeChannel.onAttached', 'activating channel; name = ' + this.name);\n };\n RealtimeChannel.prototype.notifyState = function (state, reason, resumed, hasPresence) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimeChannel.notifyState', 'name = ' + this.name + ', current state = ' + this.state + ', notifying state ' + state);\n this.clearStateTimer();\n // RTP5a1\n if (Utils.arrIn(['detached', 'suspended', 'failed'], state)) {\n this.properties.channelSerial = null;\n }\n if (state === this.state) {\n return;\n }\n this.presence.actOnChannelState(state, hasPresence, reason);\n if (state === 'suspended' && this.connectionManager.state.sendEvents) {\n this.startRetryTimer();\n } else {\n this.cancelRetryTimer();\n }\n if (reason) {\n this.errorReason = reason;\n }\n var change = new channelstatechange_1.default(this.state, state, resumed, reason);\n var logLevel = state === 'failed' ? logger_1.default.LOG_ERROR : logger_1.default.LOG_MAJOR;\n logger_1.default.logAction(logLevel, 'Channel state for channel \"' + this.name + '\"', state + (reason ? '; reason: ' + reason : ''));\n if (state !== 'attaching' && state !== 'suspended') {\n this.retryCount = 0;\n }\n /* Note: we don't set inProgress for pending states until the request is actually in progress */\n if (state === 'attached') {\n this.onAttached();\n }\n if (state === 'attached') {\n this._attachResume = true;\n } else if (state === 'detaching' || state === 'failed') {\n this._attachResume = false;\n }\n this.state = state;\n this._allChannelChanges.emit(state, change);\n this.emit(state, change);\n };\n RealtimeChannel.prototype.requestState = function (state, reason) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimeChannel.requestState', 'name = ' + this.name + ', state = ' + state);\n this.notifyState(state, reason);\n /* send the event and await response */\n this.checkPendingState();\n };\n RealtimeChannel.prototype.checkPendingState = function () {\n /* if can't send events, do nothing */\n var cmState = this.connectionManager.state;\n /* Allow attach messages to queue up when synchronizing, since this will be\n * the state we'll be in when upgrade transport.active triggers a checkpendingstate */\n if (!(cmState.sendEvents || cmState.forceQueueEvents)) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimeChannel.checkPendingState', 'sendEvents is false; state is ' + this.connectionManager.state.state);\n return;\n }\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimeChannel.checkPendingState', 'name = ' + this.name + ', state = ' + this.state);\n /* Only start the state timer running when actually sending the event */\n switch (this.state) {\n case 'attaching':\n this.startStateTimerIfNotRunning();\n this.attachImpl();\n break;\n case 'detaching':\n this.startStateTimerIfNotRunning();\n this.detachImpl();\n break;\n case 'attached':\n /* resume any sync operation that was in progress */\n this.sync();\n break;\n default:\n break;\n }\n };\n RealtimeChannel.prototype.timeoutPendingState = function () {\n switch (this.state) {\n case 'attaching':\n {\n var err = new errorinfo_1.default('Channel attach timed out', 90007, 408);\n this.notifyState('suspended', err);\n break;\n }\n case 'detaching':\n {\n var err = new errorinfo_1.default('Channel detach timed out', 90007, 408);\n this.notifyState('attached', err);\n break;\n }\n default:\n this.checkPendingState();\n break;\n }\n };\n RealtimeChannel.prototype.startStateTimerIfNotRunning = function () {\n var _this = this;\n if (!this.stateTimer) {\n this.stateTimer = setTimeout(function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimeChannel.startStateTimerIfNotRunning', 'timer expired');\n _this.stateTimer = null;\n _this.timeoutPendingState();\n }, this.realtime.options.timeouts.realtimeRequestTimeout);\n }\n };\n RealtimeChannel.prototype.clearStateTimer = function () {\n var stateTimer = this.stateTimer;\n if (stateTimer) {\n clearTimeout(stateTimer);\n this.stateTimer = null;\n }\n };\n RealtimeChannel.prototype.startRetryTimer = function () {\n var _this = this;\n if (this.retryTimer) return;\n this.retryCount++;\n var retryDelay = this.realtime.options.timeouts.channelRetryTimeout * Utils.getJitterCoefficient() * Utils.getBackoffCoefficient(this.retryCount);\n this.retryTimer = setTimeout(function () {\n /* If connection is not connected, just leave in suspended, a reattach\n * will be triggered once it connects again */\n if (_this.state === 'suspended' && _this.connectionManager.state.sendEvents) {\n _this.retryTimer = null;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimeChannel retry timer expired', 'attempting a new attach');\n _this.requestState('attaching');\n }\n }, retryDelay);\n };\n RealtimeChannel.prototype.cancelRetryTimer = function () {\n if (this.retryTimer) {\n clearTimeout(this.retryTimer);\n this.retryTimer = null;\n }\n };\n /* @returns null (if can safely be released) | ErrorInfo (if cannot) */\n RealtimeChannel.prototype.getReleaseErr = function () {\n var s = this.state;\n if (s === 'initialized' || s === 'detached' || s === 'failed') {\n return null;\n }\n return new errorinfo_1.default('Can only release a channel in a state where there is no possibility of further updates from the server being received (initialized, detached, or failed); was ' + s, 90001, 400);\n };\n RealtimeChannel.prototype.setChannelSerial = function (channelSerial) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimeChannel.setChannelSerial()', 'Updating channel serial; serial = ' + channelSerial + '; previous = ' + this.properties.channelSerial);\n // RTP17h: Only update the channel serial if its present (it won't always\n // be set).\n if (channelSerial) {\n this.properties.channelSerial = channelSerial;\n }\n };\n return RealtimeChannel;\n }(channel_1.default);\n exports.default = RealtimeChannel;\n\n /***/\n }, /* 39 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var ChannelStateChange = /** @class */function () {\n function ChannelStateChange(previous, current, resumed, reason) {\n this.previous = previous;\n this.current = current;\n if (current === 'attached') this.resumed = resumed;\n if (reason) this.reason = reason;\n }\n return ChannelStateChange;\n }();\n exports.default = ChannelStateChange;\n\n /***/\n }, /* 40 */\n /***/function (module, exports, __webpack_require__) {\n ;\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(6));\n } else {}\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n\n // Reusable object\n var W = [];\n\n /**\n * SHA-1 hash algorithm.\n */\n var SHA1 = C_algo.SHA1 = Hasher.extend({\n _doReset: function () {\n this._hash = new WordArray.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]);\n },\n _doProcessBlock: function (M, offset) {\n // Shortcut\n var H = this._hash.words;\n\n // Working variables\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n // Computation\n for (var i = 0; i < 80; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0;\n } else {\n var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n W[i] = n << 1 | n >>> 31;\n }\n var t = (a << 5 | a >>> 27) + e + W[i];\n if (i < 20) {\n t += (b & c | ~b & d) + 0x5a827999;\n } else if (i < 40) {\n t += (b ^ c ^ d) + 0x6ed9eba1;\n } else if (i < 60) {\n t += (b & c | b & d | c & d) - 0x70e44324;\n } else /* if (i < 80) */{\n t += (b ^ c ^ d) - 0x359d3e2a;\n }\n e = d;\n d = c;\n c = b << 30 | b >>> 2;\n b = a;\n a = t;\n }\n\n // Intermediate hash value\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n H[4] = H[4] + e | 0;\n },\n _doFinalize: function () {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n\n // Add padding\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4;\n\n // Hash final blocks\n this._process();\n\n // Return final computed hash\n return this._hash;\n },\n clone: function () {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA1('message');\n * var hash = CryptoJS.SHA1(wordArray);\n */\n C.SHA1 = Hasher._createHelper(SHA1);\n\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA1(message, key);\n */\n C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n })();\n return CryptoJS.SHA1;\n });\n\n /***/\n }, /* 41 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n function inspect(buffer) {\n if (buffer === undefined) return 'undefined';\n var view;\n var type;\n if (buffer instanceof ArrayBuffer) {\n type = 'ArrayBuffer';\n view = new DataView(buffer);\n } else if (buffer instanceof DataView) {\n type = 'DataView';\n view = buffer;\n }\n if (!view) return JSON.stringify(buffer);\n var bytes = [];\n for (var i = 0; i < buffer.byteLength; i++) {\n if (i > 20) {\n bytes.push('...');\n break;\n }\n var byte_ = view.getUint8(i).toString(16);\n if (byte_.length === 1) byte_ = '0' + byte_;\n bytes.push(byte_);\n }\n return '<' + type + ' ' + bytes.join(' ') + '>';\n }\n // Encode string as utf8 into dataview at offset\n function utf8Write(view, offset, string) {\n for (var i = 0, l = string.length; i < l; i++) {\n var codePoint = string.charCodeAt(i);\n // One byte of UTF-8\n if (codePoint < 0x80) {\n view.setUint8(offset++, codePoint >>> 0 & 0x7f | 0x00);\n continue;\n }\n // Two bytes of UTF-8\n if (codePoint < 0x800) {\n view.setUint8(offset++, codePoint >>> 6 & 0x1f | 0xc0);\n view.setUint8(offset++, codePoint >>> 0 & 0x3f | 0x80);\n continue;\n }\n // Three bytes of UTF-8.\n if (codePoint < 0x10000) {\n view.setUint8(offset++, codePoint >>> 12 & 0x0f | 0xe0);\n view.setUint8(offset++, codePoint >>> 6 & 0x3f | 0x80);\n view.setUint8(offset++, codePoint >>> 0 & 0x3f | 0x80);\n continue;\n }\n // Four bytes of UTF-8\n if (codePoint < 0x110000) {\n view.setUint8(offset++, codePoint >>> 18 & 0x07 | 0xf0);\n view.setUint8(offset++, codePoint >>> 12 & 0x3f | 0x80);\n view.setUint8(offset++, codePoint >>> 6 & 0x3f | 0x80);\n view.setUint8(offset++, codePoint >>> 0 & 0x3f | 0x80);\n continue;\n }\n throw new Error('bad codepoint ' + codePoint);\n }\n }\n function utf8Read(view, offset, length) {\n var string = '';\n for (var i = offset, end = offset + length; i < end; i++) {\n var byte_ = view.getUint8(i);\n // One byte character\n if ((byte_ & 0x80) === 0x00) {\n string += String.fromCharCode(byte_);\n continue;\n }\n // Two byte character\n if ((byte_ & 0xe0) === 0xc0) {\n string += String.fromCharCode((byte_ & 0x0f) << 6 | view.getUint8(++i) & 0x3f);\n continue;\n }\n // Three byte character\n if ((byte_ & 0xf0) === 0xe0) {\n string += String.fromCharCode((byte_ & 0x0f) << 12 | (view.getUint8(++i) & 0x3f) << 6 | (view.getUint8(++i) & 0x3f) << 0);\n continue;\n }\n // Four byte character\n if ((byte_ & 0xf8) === 0xf0) {\n string += String.fromCharCode((byte_ & 0x07) << 18 | (view.getUint8(++i) & 0x3f) << 12 | (view.getUint8(++i) & 0x3f) << 6 | (view.getUint8(++i) & 0x3f) << 0);\n continue;\n }\n throw new Error('Invalid byte ' + byte_.toString(16));\n }\n return string;\n }\n function utf8ByteCount(string) {\n var count = 0;\n for (var i = 0, l = string.length; i < l; i++) {\n var codePoint = string.charCodeAt(i);\n if (codePoint < 0x80) {\n count += 1;\n continue;\n }\n if (codePoint < 0x800) {\n count += 2;\n continue;\n }\n if (codePoint < 0x10000) {\n count += 3;\n continue;\n }\n if (codePoint < 0x110000) {\n count += 4;\n continue;\n }\n throw new Error('bad codepoint ' + codePoint);\n }\n return count;\n }\n function encode(value, sparse) {\n var size = sizeof(value, sparse);\n if (size === 0) return undefined;\n var buffer = new ArrayBuffer(size);\n var view = new DataView(buffer);\n _encode(value, view, 0, sparse);\n return buffer;\n }\n var SH_L_32 = (1 << 16) * (1 << 16),\n SH_R_32 = 1 / SH_L_32;\n function getInt64(view, offset) {\n offset = offset || 0;\n return view.getInt32(offset) * SH_L_32 + view.getUint32(offset + 4);\n }\n function getUint64(view, offset) {\n offset = offset || 0;\n return view.getUint32(offset) * SH_L_32 + view.getUint32(offset + 4);\n }\n function setInt64(view, offset, val) {\n if (val < 0x8000000000000000) {\n view.setInt32(offset, Math.floor(val * SH_R_32));\n view.setInt32(offset + 4, val & -1);\n } else {\n view.setUint32(offset, 0x7fffffff);\n view.setUint32(offset + 4, 0x7fffffff);\n }\n }\n function setUint64(view, offset, val) {\n if (val < 0x10000000000000000) {\n view.setUint32(offset, Math.floor(val * SH_R_32));\n view.setInt32(offset + 4, val & -1);\n } else {\n view.setUint32(offset, 0xffffffff);\n view.setUint32(offset + 4, 0xffffffff);\n }\n }\n // https://gist.github.com/frsyuki/5432559 - v5 spec\n //\n // I've used one extension point from `fixext 1` to store `undefined`. On the wire this\n // should translate to exactly 0xd40000\n //\n // +--------+--------+--------+\n // | 0xd4 | 0x00 | 0x00 |\n // +--------+--------+--------+\n // ^ fixext | ^ value part unused (fixed to be 0)\n // ^ indicates undefined value\n //\n var Decoder = /** @class */function () {\n function Decoder(view, offset) {\n var _this = this;\n this.map = function (length) {\n var value = {};\n for (var i = 0; i < length; i++) {\n var key = _this.parse();\n value[key] = _this.parse();\n }\n return value;\n };\n this.bin = function (length) {\n var value = new ArrayBuffer(length);\n new Uint8Array(value).set(new Uint8Array(_this.view.buffer, _this.offset, length), 0);\n _this.offset += length;\n return value;\n };\n this.buf = this.bin;\n this.str = function (length) {\n var value = utf8Read(_this.view, _this.offset, length);\n _this.offset += length;\n return value;\n };\n this.array = function (length) {\n var value = new Array(length);\n for (var i = 0; i < length; i++) {\n value[i] = _this.parse();\n }\n return value;\n };\n this.ext = function (length) {\n _this.offset += length;\n return {\n type: _this.view.getInt8(_this.offset),\n data: _this.buf(length)\n };\n };\n this.parse = function () {\n var type = _this.view.getUint8(_this.offset);\n var value, length;\n // Positive FixInt - 0xxxxxxx\n if ((type & 0x80) === 0x00) {\n _this.offset++;\n return type;\n }\n // FixMap - 1000xxxx\n if ((type & 0xf0) === 0x80) {\n length = type & 0x0f;\n _this.offset++;\n return _this.map(length);\n }\n // FixArray - 1001xxxx\n if ((type & 0xf0) === 0x90) {\n length = type & 0x0f;\n _this.offset++;\n return _this.array(length);\n }\n // FixStr - 101xxxxx\n if ((type & 0xe0) === 0xa0) {\n length = type & 0x1f;\n _this.offset++;\n return _this.str(length);\n }\n // Negative FixInt - 111xxxxx\n if ((type & 0xe0) === 0xe0) {\n value = _this.view.getInt8(_this.offset);\n _this.offset++;\n return value;\n }\n switch (type) {\n // nil\n case 0xc0:\n _this.offset++;\n return null;\n // 0xc1 never used - use for undefined (NON-STANDARD)\n case 0xc1:\n _this.offset++;\n return undefined;\n // false\n case 0xc2:\n _this.offset++;\n return false;\n // true\n case 0xc3:\n _this.offset++;\n return true;\n // bin 8\n case 0xc4:\n length = _this.view.getUint8(_this.offset + 1);\n _this.offset += 2;\n return _this.bin(length);\n // bin 16\n case 0xc5:\n length = _this.view.getUint16(_this.offset + 1);\n _this.offset += 3;\n return _this.bin(length);\n // bin 32\n case 0xc6:\n length = _this.view.getUint32(_this.offset + 1);\n _this.offset += 5;\n return _this.bin(length);\n // ext 8\n case 0xc7:\n length = _this.view.getUint8(_this.offset + 1);\n _this.offset += 2;\n return _this.ext(length);\n // ext 16\n case 0xc8:\n length = _this.view.getUint16(_this.offset + 1);\n _this.offset += 3;\n return _this.ext(length);\n // ext 32\n case 0xc9:\n length = _this.view.getUint32(_this.offset + 1);\n _this.offset += 5;\n return _this.ext(length);\n // float 32\n case 0xca:\n value = _this.view.getFloat32(_this.offset + 1);\n _this.offset += 5;\n return value;\n // float 64\n case 0xcb:\n value = _this.view.getFloat64(_this.offset + 1);\n _this.offset += 9;\n return value;\n // uint8\n case 0xcc:\n value = _this.view.getUint8(_this.offset + 1);\n _this.offset += 2;\n return value;\n // uint 16\n case 0xcd:\n value = _this.view.getUint16(_this.offset + 1);\n _this.offset += 3;\n return value;\n // uint 32\n case 0xce:\n value = _this.view.getUint32(_this.offset + 1);\n _this.offset += 5;\n return value;\n // uint 64\n case 0xcf:\n value = getUint64(_this.view, _this.offset + 1);\n _this.offset += 9;\n return value;\n // int 8\n case 0xd0:\n value = _this.view.getInt8(_this.offset + 1);\n _this.offset += 2;\n return value;\n // int 16\n case 0xd1:\n value = _this.view.getInt16(_this.offset + 1);\n _this.offset += 3;\n return value;\n // int 32\n case 0xd2:\n value = _this.view.getInt32(_this.offset + 1);\n _this.offset += 5;\n return value;\n // int 64\n case 0xd3:\n value = getInt64(_this.view, _this.offset + 1);\n _this.offset += 9;\n return value;\n // fixext 1\n case 0xd4:\n length = 1;\n _this.offset++;\n return _this.ext(length);\n // fixext 2\n case 0xd5:\n length = 2;\n _this.offset++;\n return _this.ext(length);\n // fixext 4\n case 0xd6:\n length = 4;\n _this.offset++;\n return _this.ext(length);\n // fixext 8\n case 0xd7:\n length = 8;\n _this.offset++;\n return _this.ext(length);\n // fixext 16\n case 0xd8:\n length = 16;\n _this.offset++;\n return _this.ext(length);\n // str8\n case 0xd9:\n length = _this.view.getUint8(_this.offset + 1);\n _this.offset += 2;\n return _this.str(length);\n // str 16\n case 0xda:\n length = _this.view.getUint16(_this.offset + 1);\n _this.offset += 3;\n return _this.str(length);\n // str 32\n case 0xdb:\n length = _this.view.getUint32(_this.offset + 1);\n _this.offset += 5;\n return _this.str(length);\n // array 16\n case 0xdc:\n length = _this.view.getUint16(_this.offset + 1);\n _this.offset += 3;\n return _this.array(length);\n // array 32\n case 0xdd:\n length = _this.view.getUint32(_this.offset + 1);\n _this.offset += 5;\n return _this.array(length);\n // map 16\n case 0xde:\n length = _this.view.getUint16(_this.offset + 1);\n _this.offset += 3;\n return _this.map(length);\n // map 32\n case 0xdf:\n length = _this.view.getUint32(_this.offset + 1);\n _this.offset += 5;\n return _this.map(length);\n }\n throw new Error('Unknown type 0x' + type.toString(16));\n };\n this.offset = offset || 0;\n this.view = view;\n }\n return Decoder;\n }();\n function decode(buffer) {\n var view = new DataView(buffer);\n var decoder = new Decoder(view);\n var value = decoder.parse();\n if (decoder.offset !== buffer.byteLength) throw new Error(buffer.byteLength - decoder.offset + ' trailing bytes');\n return value;\n }\n function encodeableKeys(value, sparse) {\n return Object.keys(value).filter(function (e) {\n var val = value[e],\n type = typeof val;\n return (!sparse || val !== undefined && val !== null) && ('function' !== type || !!val.toJSON);\n });\n }\n function _encode(value, view, offset, sparse) {\n var type = typeof value;\n // Strings Bytes\n // There are four string types: fixstr/str8/str16/str32\n if (typeof value === 'string') {\n var length_1 = utf8ByteCount(value);\n // fixstr\n if (length_1 < 0x20) {\n view.setUint8(offset, length_1 | 0xa0);\n utf8Write(view, offset + 1, value);\n return 1 + length_1;\n }\n // str8\n if (length_1 < 0x100) {\n view.setUint8(offset, 0xd9);\n view.setUint8(offset + 1, length_1);\n utf8Write(view, offset + 2, value);\n return 2 + length_1;\n }\n // str16\n if (length_1 < 0x10000) {\n view.setUint8(offset, 0xda);\n view.setUint16(offset + 1, length_1);\n utf8Write(view, offset + 3, value);\n return 3 + length_1;\n }\n // str32\n if (length_1 < 0x100000000) {\n view.setUint8(offset, 0xdb);\n view.setUint32(offset + 1, length_1);\n utf8Write(view, offset + 5, value);\n return 5 + length_1;\n }\n }\n if (ArrayBuffer.isView && ArrayBuffer.isView(value)) {\n // extract the arraybuffer and fallthrough\n value = value.buffer;\n }\n // There are three bin types: bin8/bin16/bin32\n if (value instanceof ArrayBuffer) {\n var length_2 = value.byteLength;\n // bin8\n if (length_2 < 0x100) {\n view.setUint8(offset, 0xc4);\n view.setUint8(offset + 1, length_2);\n new Uint8Array(view.buffer).set(new Uint8Array(value), offset + 2);\n return 2 + length_2;\n }\n // bin16\n if (length_2 < 0x10000) {\n view.setUint8(offset, 0xc5);\n view.setUint16(offset + 1, length_2);\n new Uint8Array(view.buffer).set(new Uint8Array(value), offset + 3);\n return 3 + length_2;\n }\n // bin 32\n if (length_2 < 0x100000000) {\n view.setUint8(offset, 0xc6);\n view.setUint32(offset + 1, length_2);\n new Uint8Array(view.buffer).set(new Uint8Array(value), offset + 5);\n return 5 + length_2;\n }\n }\n if (typeof value === 'number') {\n // Floating Point\n // NOTE: We're always using float64\n if (Math.floor(value) !== value) {\n view.setUint8(offset, 0xcb);\n view.setFloat64(offset + 1, value);\n return 9;\n }\n // Integers\n if (value >= 0) {\n // positive fixnum\n if (value < 0x80) {\n view.setUint8(offset, value);\n return 1;\n }\n // uint 8\n if (value < 0x100) {\n view.setUint8(offset, 0xcc);\n view.setUint8(offset + 1, value);\n return 2;\n }\n // uint 16\n if (value < 0x10000) {\n view.setUint8(offset, 0xcd);\n view.setUint16(offset + 1, value);\n return 3;\n }\n // uint 32\n if (value < 0x100000000) {\n view.setUint8(offset, 0xce);\n view.setUint32(offset + 1, value);\n return 5;\n }\n // uint 64\n if (value < 0x10000000000000000) {\n view.setUint8(offset, 0xcf);\n setUint64(view, offset + 1, value);\n return 9;\n }\n throw new Error('Number too big 0x' + value.toString(16));\n }\n // negative fixnum\n if (value >= -0x20) {\n view.setInt8(offset, value);\n return 1;\n }\n // int 8\n if (value >= -0x80) {\n view.setUint8(offset, 0xd0);\n view.setInt8(offset + 1, value);\n return 2;\n }\n // int 16\n if (value >= -0x8000) {\n view.setUint8(offset, 0xd1);\n view.setInt16(offset + 1, value);\n return 3;\n }\n // int 32\n if (value >= -0x80000000) {\n view.setUint8(offset, 0xd2);\n view.setInt32(offset + 1, value);\n return 5;\n }\n // int 64\n if (value >= -0x8000000000000000) {\n view.setUint8(offset, 0xd3);\n setInt64(view, offset + 1, value);\n return 9;\n }\n throw new Error('Number too small -0x' + (-value).toString(16).substr(1));\n }\n // undefined - use d4 (NON-STANDARD)\n if (type === 'undefined') {\n if (sparse) return 0;\n view.setUint8(offset, 0xd4);\n view.setUint8(offset + 1, 0x00);\n view.setUint8(offset + 2, 0x00);\n return 3;\n }\n // null\n if (value === null) {\n if (sparse) return 0;\n view.setUint8(offset, 0xc0);\n return 1;\n }\n // Boolean\n if (type === 'boolean') {\n view.setUint8(offset, value ? 0xc3 : 0xc2);\n return 1;\n }\n if ('function' === typeof value.toJSON) return _encode(value.toJSON(), view, offset, sparse);\n // Container Types\n if (type === 'object') {\n var length_3,\n size = 0;\n var keys = void 0;\n var isArray = Array.isArray(value);\n if (isArray) {\n length_3 = value.length;\n } else {\n keys = encodeableKeys(value, sparse);\n length_3 = keys.length;\n }\n if (length_3 < 0x10) {\n view.setUint8(offset, length_3 | (isArray ? 0x90 : 0x80));\n size = 1;\n } else if (length_3 < 0x10000) {\n view.setUint8(offset, isArray ? 0xdc : 0xde);\n view.setUint16(offset + 1, length_3);\n size = 3;\n } else if (length_3 < 0x100000000) {\n view.setUint8(offset, isArray ? 0xdd : 0xdf);\n view.setUint32(offset + 1, length_3);\n size = 5;\n }\n if (isArray) {\n for (var i = 0; i < length_3; i++) {\n size += _encode(value[i], view, offset + size, sparse);\n }\n } else if (keys) {\n for (var i = 0; i < length_3; i++) {\n var key = keys[i];\n size += _encode(key, view, offset + size);\n size += _encode(value[key], view, offset + size, sparse);\n }\n }\n return size;\n }\n if (type === 'function') return 0;\n throw new Error('Unknown type ' + type);\n }\n function sizeof(value, sparse) {\n var type = typeof value;\n // fixstr or str8 or str16 or str32\n if (type === 'string') {\n var length_4 = utf8ByteCount(value);\n if (length_4 < 0x20) {\n return 1 + length_4;\n }\n if (length_4 < 0x100) {\n return 2 + length_4;\n }\n if (length_4 < 0x10000) {\n return 3 + length_4;\n }\n if (length_4 < 0x100000000) {\n return 5 + length_4;\n }\n }\n if (ArrayBuffer.isView && ArrayBuffer.isView(value)) {\n // extract the arraybuffer and fallthrough\n value = value.buffer;\n }\n // bin8 or bin16 or bin32\n if (value instanceof ArrayBuffer) {\n var length_5 = value.byteLength;\n if (length_5 < 0x100) {\n return 2 + length_5;\n }\n if (length_5 < 0x10000) {\n return 3 + length_5;\n }\n if (length_5 < 0x100000000) {\n return 5 + length_5;\n }\n }\n if (typeof value === 'number') {\n // Floating Point (32 bits)\n // double\n if (Math.floor(value) !== value) return 9;\n // Integers\n if (value >= 0) {\n // positive fixint\n if (value < 0x80) return 1;\n // uint 8\n if (value < 0x100) return 2;\n // uint 16\n if (value < 0x10000) return 3;\n // uint 32\n if (value < 0x100000000) return 5;\n // uint 64\n if (value < 0x10000000000000000) return 9;\n // Too big\n throw new Error('Number too big 0x' + value.toString(16));\n }\n // negative fixint\n if (value >= -0x20) return 1;\n // int 8\n if (value >= -0x80) return 2;\n // int 16\n if (value >= -0x8000) return 3;\n // int 32\n if (value >= -0x80000000) return 5;\n // int 64\n if (value >= -0x8000000000000000) return 9;\n // Too small\n throw new Error('Number too small -0x' + value.toString(16).substr(1));\n }\n // Boolean\n if (type === 'boolean') return 1;\n // undefined, null\n if (value === null) return sparse ? 0 : 1;\n if (value === undefined) return sparse ? 0 : 3;\n if ('function' === typeof value.toJSON) return sizeof(value.toJSON(), sparse);\n // Container Types\n if (type === 'object') {\n var length_6,\n size = 0;\n if (Array.isArray(value)) {\n length_6 = value.length;\n for (var i = 0; i < length_6; i++) {\n size += sizeof(value[i], sparse);\n }\n } else {\n var keys = encodeableKeys(value, sparse);\n length_6 = keys.length;\n for (var i = 0; i < length_6; i++) {\n var key = keys[i];\n size += sizeof(key) + sizeof(value[key], sparse);\n }\n }\n if (length_6 < 0x10) {\n return 1 + size;\n }\n if (length_6 < 0x10000) {\n return 3 + size;\n }\n if (length_6 < 0x100000000) {\n return 5 + size;\n }\n throw new Error('Array or object too long 0x' + length_6.toString(16));\n }\n if (type === 'function') return 0;\n throw new Error('Unknown type ' + type);\n }\n exports.default = {\n encode: encode,\n decode: decode,\n inspect: inspect,\n utf8Write: utf8Write,\n utf8Read: utf8Read,\n utf8ByteCount: utf8ByteCount\n };\n\n /***/\n }, /* 42 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n // Common\n var rest_1 = tslib_1.__importDefault(__webpack_require__(30));\n var realtime_1 = tslib_1.__importDefault(__webpack_require__(50));\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n // Platform Specific\n var bufferutils_1 = tslib_1.__importDefault(__webpack_require__(55));\n // @ts-ignore\n var crypto_1 = tslib_1.__importDefault(__webpack_require__(57));\n var http_1 = tslib_1.__importDefault(__webpack_require__(62));\n var platform_2 = tslib_1.__importDefault(__webpack_require__(64));\n // @ts-ignore\n var transport_1 = tslib_1.__importDefault(__webpack_require__(68));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var defaults_1 = __webpack_require__(8);\n var connectionmanager_1 = tslib_1.__importDefault(__webpack_require__(25));\n var webstorage_1 = tslib_1.__importDefault(__webpack_require__(65));\n var defaults_2 = tslib_1.__importDefault(__webpack_require__(66));\n var msgpack_1 = tslib_1.__importDefault(__webpack_require__(41));\n var message_1 = tslib_1.__importDefault(__webpack_require__(9));\n var presencemessage_1 = tslib_1.__importDefault(__webpack_require__(14));\n platform_1.default.Crypto = crypto_1.default;\n platform_1.default.BufferUtils = bufferutils_1.default;\n platform_1.default.Http = http_1.default;\n platform_1.default.Config = platform_2.default;\n platform_1.default.Transports = transport_1.default;\n platform_1.default.WebStorage = webstorage_1.default;\n rest_1.default.Crypto = crypto_1.default;\n realtime_1.default.Crypto = crypto_1.default;\n rest_1.default.Message = message_1.default;\n realtime_1.default.Message = message_1.default;\n rest_1.default.PresenceMessage = presencemessage_1.default;\n realtime_1.default.PresenceMessage = presencemessage_1.default;\n realtime_1.default.ConnectionManager = connectionmanager_1.default;\n logger_1.default.initLogHandlers();\n platform_1.default.Defaults = (0, defaults_1.getDefaults)(defaults_2.default);\n if (platform_1.default.Config.agent) {\n // @ts-ignore\n platform_1.default.Defaults.agent += ' ' + platform_1.default.Config.agent;\n }\n /* If using IE8, don't attempt to upgrade from xhr_polling to xhr_streaming -\n * while it can do streaming, the low max http-connections-per-host limit means\n * that the polling transport is crippled during the upgrade process. So just\n * leave it at the base transport */\n if (platform_1.default.Config.noUpgrade) {\n platform_1.default.Defaults.upgradeTransports = [];\n }\n exports.default = {\n Rest: rest_1.default,\n Realtime: realtime_1.default,\n msgpack: msgpack_1.default\n };\n\n /***/\n }, /* 43 */\n /***/function (module) {\n module.exports = JSON.parse(\"{\\\"name\\\":\\\"ably\\\",\\\"description\\\":\\\"Realtime client library for Ably, the realtime messaging service\\\",\\\"version\\\":\\\"1.2.36\\\",\\\"license\\\":\\\"Apache-2.0\\\",\\\"bugs\\\":{\\\"url\\\":\\\"https://github.com/ably/ably-js/issues\\\",\\\"email\\\":\\\"support@ably.com\\\"},\\\"main\\\":\\\"./build/ably-node.js\\\",\\\"typings\\\":\\\"./ably.d.ts\\\",\\\"react-native\\\":{\\\"./build/ably-node.js\\\":\\\"./build/ably-reactnative.js\\\"},\\\"browser\\\":{\\\"./build/ably-node.js\\\":\\\"./build/ably-commonjs.js\\\"},\\\"files\\\":[\\\"build/**\\\",\\\"ably.d.ts\\\",\\\"callbacks.d.ts\\\",\\\"callbacks.js\\\",\\\"promises.d.ts\\\",\\\"promises.js\\\",\\\"resources/**\\\"],\\\"dependencies\\\":{\\\"@ably/msgpack-js\\\":\\\"^0.4.0\\\",\\\"got\\\":\\\"^11.8.2\\\",\\\"ws\\\":\\\"^5.1\\\"},\\\"devDependencies\\\":{\\\"@ably/vcdiff-decoder\\\":\\\"1.0.4\\\",\\\"@types/crypto-js\\\":\\\"^4.0.1\\\",\\\"@types/node\\\":\\\"^15.0.0\\\",\\\"@types/request\\\":\\\"^2.48.7\\\",\\\"@types/ws\\\":\\\"^8.2.0\\\",\\\"@typescript-eslint/eslint-plugin\\\":\\\"^5.14.0\\\",\\\"@typescript-eslint/parser\\\":\\\"^5.14.0\\\",\\\"async\\\":\\\"ably-forks/async#requirejs\\\",\\\"aws-sdk\\\":\\\"^2.1075.0\\\",\\\"chai\\\":\\\"^4.2.0\\\",\\\"copy-webpack-plugin\\\":\\\"^6.4.1\\\",\\\"cors\\\":\\\"~2.7\\\",\\\"crypto-js\\\":\\\"ably-forks/crypto-js#crypto-lite\\\",\\\"eslint\\\":\\\"^7.13.0\\\",\\\"eslint-plugin-jsdoc\\\":\\\"^39.3.2\\\",\\\"eslint-plugin-security\\\":\\\"^1.4.0\\\",\\\"express\\\":\\\"^4.17.1\\\",\\\"glob\\\":\\\"~4.4\\\",\\\"google-closure-compiler\\\":\\\"^20180610.0.1\\\",\\\"grunt\\\":\\\"^1.4.1\\\",\\\"grunt-bump\\\":\\\"^0.3.1\\\",\\\"grunt-cli\\\":\\\"~1.2.0\\\",\\\"grunt-closure-tools\\\":\\\"^1.0.0\\\",\\\"grunt-contrib-concat\\\":\\\"~0.5\\\",\\\"grunt-shell\\\":\\\"~1.1\\\",\\\"grunt-webpack\\\":\\\"^4.0.2\\\",\\\"hexy\\\":\\\"~0.2\\\",\\\"kexec\\\":\\\"ably-forks/node-kexec#update-for-node-12\\\",\\\"minimist\\\":\\\"^1.2.5\\\",\\\"mocha\\\":\\\"^8.1.3\\\",\\\"null-loader\\\":\\\"^4.0.1\\\",\\\"playwright\\\":\\\"^1.10.0\\\",\\\"prettier\\\":\\\"^2.5.1\\\",\\\"requirejs\\\":\\\"~2.1\\\",\\\"shelljs\\\":\\\"~0.8\\\",\\\"source-map-explorer\\\":\\\"^2.5.2\\\",\\\"ts-loader\\\":\\\"^8.2.0\\\",\\\"tsconfig-paths-webpack-plugin\\\":\\\"^3.5.2\\\",\\\"tslib\\\":\\\"^2.3.1\\\",\\\"typedoc\\\":\\\"^0.23.8\\\",\\\"typescript\\\":\\\"^4.6.4\\\",\\\"webpack\\\":\\\"^4.44.2\\\",\\\"webpack-cli\\\":\\\"^4.2.0\\\"},\\\"engines\\\":{\\\"node\\\":\\\">=5.10.x\\\"},\\\"repository\\\":\\\"ably/ably-js\\\",\\\"jspm\\\":{\\\"registry\\\":\\\"npm\\\",\\\"directories\\\":{\\\"lib\\\":\\\"browser/static\\\"},\\\"main\\\":\\\"ably\\\"},\\\"scripts\\\":{\\\"grunt\\\":\\\"grunt\\\",\\\"test\\\":\\\"grunt test\\\",\\\"test:node\\\":\\\"grunt test:node\\\",\\\"test:webserver\\\":\\\"grunt test:webserver\\\",\\\"test:playwright\\\":\\\"node test/support/runPlaywrightTests.js\\\",\\\"concat\\\":\\\"grunt concat\\\",\\\"build\\\":\\\"grunt build:all\\\",\\\"build:node\\\":\\\"grunt build:node\\\",\\\"build:browser\\\":\\\"grunt build:browser\\\",\\\"requirejs\\\":\\\"grunt requirejs\\\",\\\"lint\\\":\\\"eslint .\\\",\\\"lint:fix\\\":\\\"eslint --fix .\\\",\\\"check-closure-compiler\\\":\\\"grunt check-closure-compiler\\\",\\\"prepare\\\":\\\"npm run build\\\",\\\"format\\\":\\\"prettier --write --ignore-path .gitignore src test ably.d.ts webpack.config.js Gruntfile.js scripts/cdn_deploy.js docs/chrome-mv3.md\\\",\\\"format:check\\\":\\\"prettier --check --ignore-path .gitignore src test ably.d.ts webpack.config.js Gruntfile.js scripts/cdn_deploy.js\\\",\\\"sourcemap\\\":\\\"source-map-explorer build/ably.min.js\\\",\\\"sourcemap:noencryption\\\":\\\"source-map-explorer build/ably.noencryption.min.js\\\",\\\"docs\\\":\\\"typedoc --entryPoints ably.d.ts --out docs/generated/default --readme docs/landing-pages/default.md && typedoc --entryPoints promises.d.ts --out docs/generated/promises --name \\\\\\\"ably (Promise-based)\\\\\\\" --readme docs/landing-pages/promises.md && cp docs/landing-pages/choose-library.html docs/generated/index.html\\\"}}\");\n\n /***/\n }, /* 44 */\n /***/function (module, exports, __webpack_require__) {\n ;\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(6), __webpack_require__(31), __webpack_require__(23));\n } else {}\n })(this, function (CryptoJS) {\n return CryptoJS.HmacSHA256;\n });\n\n /***/\n }, /* 45 */\n /***/function (module, exports) {\n\n /***/}, /* 46 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var devicedetails_1 = tslib_1.__importDefault(__webpack_require__(47));\n var resource_1 = tslib_1.__importDefault(__webpack_require__(24));\n var paginatedresource_1 = tslib_1.__importDefault(__webpack_require__(18));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var pushchannelsubscription_1 = tslib_1.__importDefault(__webpack_require__(48));\n var noop = function () {};\n var Push = /** @class */function () {\n function Push(rest) {\n this.rest = rest;\n this.admin = new Admin(rest);\n }\n return Push;\n }();\n var Admin = /** @class */function () {\n function Admin(rest) {\n this.rest = rest;\n this.deviceRegistrations = new DeviceRegistrations(rest);\n this.channelSubscriptions = new ChannelSubscriptions(rest);\n }\n Admin.prototype.publish = function (recipient, payload, callback) {\n var rest = this.rest;\n var format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json,\n headers = Utils.defaultPostHeaders(rest.options, format),\n params = {};\n var body = Utils.mixin({\n recipient: recipient\n }, payload);\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'publish', arguments);\n }\n callback = noop;\n }\n if (rest.options.headers) Utils.mixin(headers, rest.options.headers);\n if (rest.options.pushFullWait) Utils.mixin(params, {\n fullWait: 'true'\n });\n var requestBody = Utils.encodeBody(body, format);\n resource_1.default.post(rest, '/push/publish', requestBody, headers, params, null, function (err) {\n return callback(err);\n });\n };\n return Admin;\n }();\n var DeviceRegistrations = /** @class */function () {\n function DeviceRegistrations(rest) {\n this.rest = rest;\n }\n DeviceRegistrations.prototype.save = function (device, callback) {\n var rest = this.rest;\n var body = devicedetails_1.default.fromValues(device);\n var format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json,\n headers = Utils.defaultPostHeaders(rest.options, format),\n params = {};\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'save', arguments);\n }\n callback = noop;\n }\n if (rest.options.headers) Utils.mixin(headers, rest.options.headers);\n if (rest.options.pushFullWait) Utils.mixin(params, {\n fullWait: 'true'\n });\n var requestBody = Utils.encodeBody(body, format);\n resource_1.default.put(rest, '/push/deviceRegistrations/' + encodeURIComponent(device.id), requestBody, headers, params, null, function (err, body, headers, unpacked) {\n callback(err, !err ? devicedetails_1.default.fromResponseBody(body, unpacked ? undefined : format) : undefined);\n });\n };\n DeviceRegistrations.prototype.get = function (deviceIdOrDetails, callback) {\n var rest = this.rest,\n format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json,\n headers = Utils.defaultGetHeaders(rest.options, format),\n deviceId = deviceIdOrDetails.id || deviceIdOrDetails;\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'get', arguments);\n }\n callback = noop;\n }\n if (typeof deviceId !== 'string' || !deviceId.length) {\n callback(new errorinfo_1.default('First argument to DeviceRegistrations#get must be a deviceId string or DeviceDetails', 40000, 400));\n return;\n }\n if (rest.options.headers) Utils.mixin(headers, rest.options.headers);\n resource_1.default.get(rest, '/push/deviceRegistrations/' + encodeURIComponent(deviceId), headers, {}, null, function (err, body, headers, unpacked) {\n callback(err, !err ? devicedetails_1.default.fromResponseBody(body, unpacked ? undefined : format) : undefined);\n });\n };\n DeviceRegistrations.prototype.list = function (params, callback) {\n var rest = this.rest,\n format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json,\n envelope = this.rest.http.supportsLinkHeaders ? undefined : format,\n headers = Utils.defaultGetHeaders(rest.options, format);\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'list', arguments);\n }\n callback = noop;\n }\n if (rest.options.headers) Utils.mixin(headers, rest.options.headers);\n new paginatedresource_1.default(rest, '/push/deviceRegistrations', headers, envelope, function (body, headers, unpacked) {\n return devicedetails_1.default.fromResponseBody(body, unpacked ? undefined : format);\n }).get(params, callback);\n };\n DeviceRegistrations.prototype.remove = function (deviceIdOrDetails, callback) {\n var rest = this.rest,\n format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json,\n headers = Utils.defaultGetHeaders(rest.options, format),\n params = {},\n deviceId = deviceIdOrDetails.id || deviceIdOrDetails;\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'remove', arguments);\n }\n callback = noop;\n }\n if (typeof deviceId !== 'string' || !deviceId.length) {\n callback(new errorinfo_1.default('First argument to DeviceRegistrations#remove must be a deviceId string or DeviceDetails', 40000, 400));\n return;\n }\n if (rest.options.headers) Utils.mixin(headers, rest.options.headers);\n if (rest.options.pushFullWait) Utils.mixin(params, {\n fullWait: 'true'\n });\n resource_1.default['delete'](rest, '/push/deviceRegistrations/' + encodeURIComponent(deviceId), headers, params, null, function (err) {\n return callback(err);\n });\n };\n DeviceRegistrations.prototype.removeWhere = function (params, callback) {\n var rest = this.rest,\n format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json,\n headers = Utils.defaultGetHeaders(rest.options, format);\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'removeWhere', arguments);\n }\n callback = noop;\n }\n if (rest.options.headers) Utils.mixin(headers, rest.options.headers);\n if (rest.options.pushFullWait) Utils.mixin(params, {\n fullWait: 'true'\n });\n resource_1.default['delete'](rest, '/push/deviceRegistrations', headers, params, null, function (err) {\n return callback(err);\n });\n };\n return DeviceRegistrations;\n }();\n var ChannelSubscriptions = /** @class */function () {\n function ChannelSubscriptions(rest) {\n /* ChannelSubscriptions have no unique id; removing one is equivalent to removeWhere by its properties */\n this.remove = ChannelSubscriptions.prototype.removeWhere;\n this.rest = rest;\n }\n ChannelSubscriptions.prototype.save = function (subscription, callback) {\n var rest = this.rest;\n var body = pushchannelsubscription_1.default.fromValues(subscription);\n var format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json,\n headers = Utils.defaultPostHeaders(rest.options, format),\n params = {};\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'save', arguments);\n }\n callback = noop;\n }\n if (rest.options.headers) Utils.mixin(headers, rest.options.headers);\n if (rest.options.pushFullWait) Utils.mixin(params, {\n fullWait: 'true'\n });\n var requestBody = Utils.encodeBody(body, format);\n resource_1.default.post(rest, '/push/channelSubscriptions', requestBody, headers, params, null, function (err, body, headers, unpacked) {\n callback(err, !err && pushchannelsubscription_1.default.fromResponseBody(body, unpacked ? undefined : format));\n });\n };\n ChannelSubscriptions.prototype.list = function (params, callback) {\n var rest = this.rest,\n format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json,\n envelope = this.rest.http.supportsLinkHeaders ? undefined : format,\n headers = Utils.defaultGetHeaders(rest.options, format);\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'list', arguments);\n }\n callback = noop;\n }\n if (rest.options.headers) Utils.mixin(headers, rest.options.headers);\n new paginatedresource_1.default(rest, '/push/channelSubscriptions', headers, envelope, function (body, headers, unpacked) {\n return pushchannelsubscription_1.default.fromResponseBody(body, unpacked ? undefined : format);\n }).get(params, callback);\n };\n ChannelSubscriptions.prototype.removeWhere = function (params, callback) {\n var rest = this.rest,\n format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json,\n headers = Utils.defaultGetHeaders(rest.options, format);\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'removeWhere', arguments);\n }\n callback = noop;\n }\n if (rest.options.headers) Utils.mixin(headers, rest.options.headers);\n if (rest.options.pushFullWait) Utils.mixin(params, {\n fullWait: 'true'\n });\n resource_1.default['delete'](rest, '/push/channelSubscriptions', headers, params, null, function (err) {\n return callback(err);\n });\n };\n ChannelSubscriptions.prototype.listChannels = function (params, callback) {\n var rest = this.rest,\n format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json,\n envelope = this.rest.http.supportsLinkHeaders ? undefined : format,\n headers = Utils.defaultGetHeaders(rest.options, format);\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'listChannels', arguments);\n }\n callback = noop;\n }\n if (rest.options.headers) Utils.mixin(headers, rest.options.headers);\n if (rest.options.pushFullWait) Utils.mixin(params, {\n fullWait: 'true'\n });\n new paginatedresource_1.default(rest, '/push/channels', headers, envelope, function (body, headers, unpacked) {\n var parsedBody = !unpacked && format ? Utils.decodeBody(body, format) : body;\n for (var i = 0; i < parsedBody.length; i++) {\n parsedBody[i] = String(parsedBody[i]);\n }\n return parsedBody;\n }).get(params, callback);\n };\n return ChannelSubscriptions;\n }();\n exports.default = Push;\n\n /***/\n }, /* 47 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var DeviceFormFactor;\n (function (DeviceFormFactor) {\n DeviceFormFactor[\"Phone\"] = \"phone\";\n DeviceFormFactor[\"Tablet\"] = \"tablet\";\n DeviceFormFactor[\"Desktop\"] = \"desktop\";\n DeviceFormFactor[\"TV\"] = \"tv\";\n DeviceFormFactor[\"Watch\"] = \"watch\";\n DeviceFormFactor[\"Car\"] = \"car\";\n DeviceFormFactor[\"Embedded\"] = \"embedded\";\n DeviceFormFactor[\"Other\"] = \"other\";\n })(DeviceFormFactor || (DeviceFormFactor = {}));\n var DevicePlatform;\n (function (DevicePlatform) {\n DevicePlatform[\"Android\"] = \"android\";\n DevicePlatform[\"IOS\"] = \"ios\";\n DevicePlatform[\"Browser\"] = \"browser\";\n })(DevicePlatform || (DevicePlatform = {}));\n var DeviceDetails = /** @class */function () {\n function DeviceDetails() {}\n DeviceDetails.prototype.toJSON = function () {\n var _a, _b, _c;\n return {\n id: this.id,\n deviceSecret: this.deviceSecret,\n platform: this.platform,\n formFactor: this.formFactor,\n clientId: this.clientId,\n metadata: this.metadata,\n deviceIdentityToken: this.deviceIdentityToken,\n push: {\n recipient: (_a = this.push) === null || _a === void 0 ? void 0 : _a.recipient,\n state: (_b = this.push) === null || _b === void 0 ? void 0 : _b.state,\n error: (_c = this.push) === null || _c === void 0 ? void 0 : _c.error\n }\n };\n };\n DeviceDetails.prototype.toString = function () {\n var _a, _b, _c, _d;\n var result = '[DeviceDetails';\n if (this.id) result += '; id=' + this.id;\n if (this.platform) result += '; platform=' + this.platform;\n if (this.formFactor) result += '; formFactor=' + this.formFactor;\n if (this.clientId) result += '; clientId=' + this.clientId;\n if (this.metadata) result += '; metadata=' + this.metadata;\n if (this.deviceIdentityToken) result += '; deviceIdentityToken=' + JSON.stringify(this.deviceIdentityToken);\n if ((_a = this.push) === null || _a === void 0 ? void 0 : _a.recipient) result += '; push.recipient=' + JSON.stringify(this.push.recipient);\n if ((_b = this.push) === null || _b === void 0 ? void 0 : _b.state) result += '; push.state=' + this.push.state;\n if ((_c = this.push) === null || _c === void 0 ? void 0 : _c.error) result += '; push.error=' + JSON.stringify(this.push.error);\n if ((_d = this.push) === null || _d === void 0 ? void 0 : _d.metadata) result += '; push.metadata=' + this.push.metadata;\n result += ']';\n return result;\n };\n DeviceDetails.fromResponseBody = function (body, format) {\n if (format) {\n body = Utils.decodeBody(body, format);\n }\n if (Utils.isArray(body)) {\n return DeviceDetails.fromValuesArray(body);\n } else {\n return DeviceDetails.fromValues(body);\n }\n };\n DeviceDetails.fromValues = function (values) {\n values.error = values.error && errorinfo_1.default.fromValues(values.error);\n return Object.assign(new DeviceDetails(), values);\n };\n DeviceDetails.fromValuesArray = function (values) {\n var count = values.length,\n result = new Array(count);\n for (var i = 0; i < count; i++) result[i] = DeviceDetails.fromValues(values[i]);\n return result;\n };\n DeviceDetails.toRequestBody = Utils.encodeBody;\n return DeviceDetails;\n }();\n exports.default = DeviceDetails;\n\n /***/\n }, /* 48 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var PushChannelSubscription = /** @class */function () {\n function PushChannelSubscription() {}\n /**\n * Overload toJSON() to intercept JSON.stringify()\n * @return {*}\n */\n PushChannelSubscription.prototype.toJSON = function () {\n return {\n channel: this.channel,\n deviceId: this.deviceId,\n clientId: this.clientId\n };\n };\n PushChannelSubscription.prototype.toString = function () {\n var result = '[PushChannelSubscription';\n if (this.channel) result += '; channel=' + this.channel;\n if (this.deviceId) result += '; deviceId=' + this.deviceId;\n if (this.clientId) result += '; clientId=' + this.clientId;\n result += ']';\n return result;\n };\n PushChannelSubscription.fromResponseBody = function (body, format) {\n if (format) {\n body = Utils.decodeBody(body, format);\n }\n if (Utils.isArray(body)) {\n return PushChannelSubscription.fromValuesArray(body);\n } else {\n return PushChannelSubscription.fromValues(body);\n }\n };\n PushChannelSubscription.fromValues = function (values) {\n return Object.assign(new PushChannelSubscription(), values);\n };\n PushChannelSubscription.fromValuesArray = function (values) {\n var count = values.length,\n result = new Array(count);\n for (var i = 0; i < count; i++) result[i] = PushChannelSubscription.fromValues(values[i]);\n return result;\n };\n PushChannelSubscription.toRequestBody = Utils.encodeBody;\n return PushChannelSubscription;\n }();\n exports.default = PushChannelSubscription;\n\n /***/\n }, /* 49 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var MessageCount = /** @class */function () {\n function MessageCount(values) {\n this.count = values && values.count || 0;\n this.data = values && values.data || 0;\n this.uncompressedData = values && values.uncompressedData || 0;\n this.failed = values && values.failed || 0;\n this.refused = values && values.refused || 0;\n }\n return MessageCount;\n }();\n var MessageCategory = /** @class */function (_super) {\n tslib_1.__extends(MessageCategory, _super);\n function MessageCategory(values) {\n var _this = _super.call(this, values) || this;\n if (values && values.category) {\n _this.category = {};\n Utils.forInOwnNonNullProperties(values.category, function (prop) {\n _this.category[prop] = new MessageCount(values.category[prop]);\n });\n }\n return _this;\n }\n return MessageCategory;\n }(MessageCount);\n var ResourceCount = /** @class */function () {\n function ResourceCount(values) {\n this.peak = values && values.peak || 0;\n this.min = values && values.min || 0;\n this.mean = values && values.mean || 0;\n this.opened = values && values.opened || 0;\n this.refused = values && values.refused || 0;\n }\n return ResourceCount;\n }();\n var RequestCount = /** @class */function () {\n function RequestCount(values) {\n this.succeeded = values && values.succeeded || 0;\n this.failed = values && values.failed || 0;\n this.refused = values && values.refused || 0;\n }\n return RequestCount;\n }();\n var ConnectionTypes = /** @class */function () {\n function ConnectionTypes(values) {\n this.plain = new ResourceCount(values && values.plain);\n this.tls = new ResourceCount(values && values.tls);\n this.all = new ResourceCount(values && values.all);\n }\n return ConnectionTypes;\n }();\n var MessageTypes = /** @class */function () {\n function MessageTypes(values) {\n this.messages = new MessageCategory(values && values.messages);\n this.presence = new MessageCategory(values && values.presence);\n this.all = new MessageCategory(values && values.all);\n }\n return MessageTypes;\n }();\n var MessageTraffic = /** @class */function () {\n function MessageTraffic(values) {\n this.realtime = new MessageTypes(values && values.realtime);\n this.rest = new MessageTypes(values && values.rest);\n this.webhook = new MessageTypes(values && values.webhook);\n this.sharedQueue = new MessageTypes(values && values.sharedQueue);\n this.externalQueue = new MessageTypes(values && values.externalQueue);\n this.httpEvent = new MessageTypes(values && values.httpEvent);\n this.push = new MessageTypes(values && values.push);\n this.all = new MessageTypes(values && values.all);\n }\n return MessageTraffic;\n }();\n var MessageDirections = /** @class */function () {\n function MessageDirections(values) {\n this.all = new MessageTypes(values && values.all);\n this.inbound = new MessageTraffic(values && values.inbound);\n this.outbound = new MessageTraffic(values && values.outbound);\n }\n return MessageDirections;\n }();\n var XchgMessages = /** @class */function () {\n function XchgMessages(values) {\n this.all = new MessageTypes(values && values.all);\n this.producerPaid = new MessageDirections(values && values.producerPaid);\n this.consumerPaid = new MessageDirections(values && values.consumerPaid);\n }\n return XchgMessages;\n }();\n var PushStats = /** @class */function () {\n function PushStats(values) {\n this.messages = values && values.messages || 0;\n var notifications = values && values.notifications;\n this.notifications = {\n invalid: notifications && notifications.invalid || 0,\n attempted: notifications && notifications.attempted || 0,\n successful: notifications && notifications.successful || 0,\n failed: notifications && notifications.failed || 0\n };\n this.directPublishes = values && values.directPublishes || 0;\n }\n return PushStats;\n }();\n var ProcessedCount = /** @class */function () {\n function ProcessedCount(values) {\n this.succeeded = values && values.succeeded || 0;\n this.skipped = values && values.skipped || 0;\n this.failed = values && values.failed || 0;\n }\n return ProcessedCount;\n }();\n var ProcessedMessages = /** @class */function () {\n function ProcessedMessages(values) {\n var _this = this;\n this.delta = undefined;\n if (values && values.delta) {\n this.delta = {};\n Utils.forInOwnNonNullProperties(values.delta, function (prop) {\n _this.delta[prop] = new ProcessedCount(values.delta[prop]);\n });\n }\n }\n return ProcessedMessages;\n }();\n var Stats = /** @class */function (_super) {\n tslib_1.__extends(Stats, _super);\n function Stats(values) {\n var _this = _super.call(this, values) || this;\n _this.persisted = new MessageTypes(values && values.persisted);\n _this.connections = new ConnectionTypes(values && values.connections);\n _this.channels = new ResourceCount(values && values.channels);\n _this.apiRequests = new RequestCount(values && values.apiRequests);\n _this.tokenRequests = new RequestCount(values && values.tokenRequests);\n _this.xchgProducer = new XchgMessages(values && values.xchgProducer);\n _this.xchgConsumer = new XchgMessages(values && values.xchgConsumer);\n _this.push = new PushStats(values && values.pushStats);\n _this.processed = new ProcessedMessages(values && values.processed);\n _this.inProgress = values && values.inProgress || undefined;\n _this.unit = values && values.unit || undefined;\n _this.intervalId = values && values.intervalId || undefined;\n return _this;\n }\n Stats.fromValues = function (values) {\n return new Stats(values);\n };\n return Stats;\n }(MessageDirections);\n exports.default = Stats;\n\n /***/\n }, /* 50 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var rest_1 = tslib_1.__importDefault(__webpack_require__(30));\n var eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var connection_1 = tslib_1.__importDefault(__webpack_require__(51));\n var realtimechannel_1 = tslib_1.__importDefault(__webpack_require__(38));\n var defaults_1 = tslib_1.__importDefault(__webpack_require__(8));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var protocolmessage_1 = tslib_1.__importDefault(__webpack_require__(10));\n var connectionmanager_1 = tslib_1.__importDefault(__webpack_require__(25));\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n var message_1 = tslib_1.__importDefault(__webpack_require__(9));\n var Realtime = /** @class */function (_super) {\n tslib_1.__extends(Realtime, _super);\n function Realtime(options) {\n var _this = _super.call(this, options) || this;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Realtime()', '');\n _this.connection = new connection_1.default(_this, _this.options);\n _this.channels = new Channels(_this);\n if (options.autoConnect !== false) _this.connect();\n return _this;\n }\n Realtime.prototype.connect = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Realtime.connect()', '');\n this.connection.connect();\n };\n Realtime.prototype.close = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Realtime.close()', '');\n this.connection.close();\n };\n Realtime.Promise = function (options) {\n options = defaults_1.default.objectifyOptions(options);\n options.promises = true;\n return new Realtime(options);\n };\n Realtime.Callbacks = Realtime;\n Realtime.Utils = Utils;\n Realtime.ConnectionManager = connectionmanager_1.default;\n Realtime.Platform = platform_1.default;\n Realtime.ProtocolMessage = protocolmessage_1.default;\n Realtime.Message = message_1.default;\n return Realtime;\n }(rest_1.default);\n var Channels = /** @class */function (_super) {\n tslib_1.__extends(Channels, _super);\n function Channels(realtime) {\n var _this = _super.call(this) || this;\n _this.realtime = realtime;\n _this.all = Object.create(null);\n realtime.connection.connectionManager.on('transport.active', function () {\n _this.onTransportActive();\n });\n return _this;\n }\n Channels.prototype.channelSerials = function () {\n var serials = {};\n for (var _i = 0, _a = Utils.keysArray(this.all, true); _i < _a.length; _i++) {\n var name_1 = _a[_i];\n var channel = this.all[name_1];\n if (channel.properties.channelSerial) {\n serials[name_1] = channel.properties.channelSerial;\n }\n }\n return serials;\n };\n // recoverChannels gets the given channels and sets their channel serials.\n Channels.prototype.recoverChannels = function (channelSerials) {\n for (var _i = 0, _a = Utils.keysArray(channelSerials, true); _i < _a.length; _i++) {\n var name_2 = _a[_i];\n var channel = this.get(name_2);\n channel.properties.channelSerial = channelSerials[name_2];\n }\n };\n Channels.prototype.onChannelMessage = function (msg) {\n var channelName = msg.channel;\n if (channelName === undefined) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Channels.onChannelMessage()', 'received event unspecified channel, action = ' + msg.action);\n return;\n }\n var channel = this.all[channelName];\n if (!channel) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Channels.onChannelMessage()', 'received event for non-existent channel: ' + channelName);\n return;\n }\n channel.onMessage(msg);\n };\n /* called when a transport becomes connected; reattempt attach/detach\n * for channels that are attaching or detaching. */\n Channels.prototype.onTransportActive = function () {\n for (var channelName in this.all) {\n var channel = this.all[channelName];\n if (channel.state === 'attaching' || channel.state === 'detaching') {\n channel.checkPendingState();\n } else if (channel.state === 'suspended') {\n channel._attach(false, null);\n } else if (channel.state === 'attached') {\n // Note explicity request the state, channel.attach() would do nothing\n // as its already attached.\n channel.requestState('attaching');\n }\n }\n };\n /* Connection interruptions (ie when the connection will no longer queue\n * events) imply connection state changes for any channel which is either\n * attached, pending, or will attempt to become attached in the future */\n Channels.prototype.propogateConnectionInterruption = function (connectionState, reason) {\n var connectionStateToChannelState = {\n closing: 'detached',\n closed: 'detached',\n failed: 'failed',\n suspended: 'suspended'\n };\n var fromChannelStates = ['attaching', 'attached', 'detaching', 'suspended'];\n var toChannelState = connectionStateToChannelState[connectionState];\n for (var channelId in this.all) {\n var channel = this.all[channelId];\n if (Utils.arrIn(fromChannelStates, channel.state)) {\n channel.notifyState(toChannelState, reason);\n }\n }\n };\n Channels.prototype.get = function (name, channelOptions) {\n name = String(name);\n var channel = this.all[name];\n if (!channel) {\n channel = this.all[name] = new realtimechannel_1.default(this.realtime, name, channelOptions);\n } else if (channelOptions) {\n if (channel._shouldReattachToSetOptions(channelOptions)) {\n throw new errorinfo_1.default('Channels.get() cannot be used to set channel options that would cause the channel to reattach. Please, use RealtimeChannel.setOptions() instead.', 40000, 400);\n }\n channel.setOptions(channelOptions);\n }\n return channel;\n };\n /* Included to support certain niche use-cases; most users should ignore this.\n * Please do not use this unless you know what you're doing */\n Channels.prototype.release = function (name) {\n name = String(name);\n var channel = this.all[name];\n if (!channel) {\n return;\n }\n var releaseErr = channel.getReleaseErr();\n if (releaseErr) {\n throw releaseErr;\n }\n delete this.all[name];\n };\n return Channels;\n }(eventemitter_1.default);\n exports.default = Realtime;\n\n /***/\n }, /* 51 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\n var connectionmanager_1 = tslib_1.__importDefault(__webpack_require__(25));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var connectionstatechange_1 = tslib_1.__importDefault(__webpack_require__(36));\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n function noop() {}\n var Connection = /** @class */function (_super) {\n tslib_1.__extends(Connection, _super);\n function Connection(ably, options) {\n var _this = _super.call(this) || this;\n _this.whenState = function (state, listener) {\n return eventemitter_1.default.prototype.whenState.call(_this, state, _this.state, listener, new connectionstatechange_1.default(undefined, state));\n };\n _this.ably = ably;\n _this.connectionManager = new connectionmanager_1.default(ably, options);\n _this.state = _this.connectionManager.state.state;\n _this.key = undefined;\n _this.id = undefined;\n _this.errorReason = null;\n _this.connectionManager.on('connectionstate', function (stateChange) {\n var state = _this.state = stateChange.current;\n platform_1.default.Config.nextTick(function () {\n _this.emit(state, stateChange);\n });\n });\n _this.connectionManager.on('update', function (stateChange) {\n platform_1.default.Config.nextTick(function () {\n _this.emit('update', stateChange);\n });\n });\n return _this;\n }\n Connection.prototype.connect = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Connection.connect()', '');\n this.connectionManager.requestState({\n state: 'connecting'\n });\n };\n Connection.prototype.ping = function (callback) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Connection.ping()', '');\n if (!callback) {\n if (this.ably.options.promises) {\n return Utils.promisify(this, 'ping', arguments);\n }\n callback = noop;\n }\n this.connectionManager.ping(null, callback);\n };\n Connection.prototype.close = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Connection.close()', 'connectionKey = ' + this.key);\n this.connectionManager.requestState({\n state: 'closing'\n });\n };\n Object.defineProperty(Connection.prototype, \"recoveryKey\", {\n get: function () {\n return this.createRecoveryKey();\n },\n enumerable: false,\n configurable: true\n });\n Connection.prototype.createRecoveryKey = function () {\n return this.connectionManager.createRecoveryKey();\n };\n return Connection;\n }(eventemitter_1.default);\n exports.default = Connection;\n\n /***/\n }, /* 52 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.PendingMessage = void 0;\n var tslib_1 = __webpack_require__(1);\n var protocolmessage_1 = tslib_1.__importDefault(__webpack_require__(10));\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var messagequeue_1 = tslib_1.__importDefault(__webpack_require__(35));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var actions = protocolmessage_1.default.Action;\n var PendingMessage = /** @class */function () {\n function PendingMessage(message, callback) {\n this.message = message;\n this.callback = callback;\n this.merged = false;\n var action = message.action;\n this.sendAttempted = false;\n this.ackRequired = action == actions.MESSAGE || action == actions.PRESENCE;\n }\n return PendingMessage;\n }();\n exports.PendingMessage = PendingMessage;\n var Protocol = /** @class */function (_super) {\n tslib_1.__extends(Protocol, _super);\n function Protocol(transport) {\n var _this = _super.call(this) || this;\n _this.transport = transport;\n _this.messageQueue = new messagequeue_1.default();\n transport.on('ack', function (serial, count) {\n _this.onAck(serial, count);\n });\n transport.on('nack', function (serial, count, err) {\n _this.onNack(serial, count, err);\n });\n return _this;\n }\n Protocol.prototype.onAck = function (serial, count) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Protocol.onAck()', 'serial = ' + serial + '; count = ' + count);\n this.messageQueue.completeMessages(serial, count);\n };\n Protocol.prototype.onNack = function (serial, count, err) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Protocol.onNack()', 'serial = ' + serial + '; count = ' + count + '; err = ' + Utils.inspectError(err));\n if (!err) {\n err = new errorinfo_1.default('Unable to send message; channel not responding', 50001, 500);\n }\n this.messageQueue.completeMessages(serial, count, err);\n };\n Protocol.prototype.onceIdle = function (listener) {\n var messageQueue = this.messageQueue;\n if (messageQueue.count() === 0) {\n listener();\n return;\n }\n messageQueue.once('idle', listener);\n };\n Protocol.prototype.send = function (pendingMessage) {\n if (pendingMessage.ackRequired) {\n this.messageQueue.push(pendingMessage);\n }\n if (logger_1.default.shouldLog(logger_1.default.LOG_MICRO)) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Protocol.send()', 'sending msg; ' + protocolmessage_1.default.stringify(pendingMessage.message));\n }\n pendingMessage.sendAttempted = true;\n this.transport.send(pendingMessage.message);\n };\n Protocol.prototype.getTransport = function () {\n return this.transport;\n };\n Protocol.prototype.getPendingMessages = function () {\n return this.messageQueue.copyAll();\n };\n Protocol.prototype.clearPendingMessages = function () {\n return this.messageQueue.clear();\n };\n Protocol.prototype.finish = function () {\n var transport = this.transport;\n this.onceIdle(function () {\n transport.disconnect();\n });\n };\n return Protocol;\n }(eventemitter_1.default);\n exports.default = Protocol;\n\n /***/\n }, /* 53 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var transport_1 = tslib_1.__importDefault(__webpack_require__(26));\n var defaults_1 = tslib_1.__importDefault(__webpack_require__(8));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var protocolmessage_1 = tslib_1.__importDefault(__webpack_require__(10));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var shortName = 'web_socket';\n function isNodeWebSocket(ws) {\n return !!ws.on;\n }\n var WebSocketTransport = /** @class */function (_super) {\n tslib_1.__extends(WebSocketTransport, _super);\n function WebSocketTransport(connectionManager, auth, params) {\n var _this = _super.call(this, connectionManager, auth, params) || this;\n _this.shortName = shortName;\n /* If is a browser, can't detect pings, so request protocol heartbeats */\n params.heartbeats = platform_1.default.Config.useProtocolHeartbeats;\n _this.wsHost = defaults_1.default.getHost(params.options, params.host, true);\n return _this;\n }\n WebSocketTransport.isAvailable = function () {\n return !!platform_1.default.Config.WebSocket;\n };\n WebSocketTransport.prototype.createWebSocket = function (uri, connectParams) {\n var paramCount = 0;\n if (connectParams) {\n for (var key in connectParams) uri += (paramCount++ ? '&' : '?') + key + '=' + connectParams[key];\n }\n this.uri = uri;\n return new platform_1.default.Config.WebSocket(uri);\n };\n WebSocketTransport.prototype.toString = function () {\n return 'WebSocketTransport; uri=' + this.uri;\n };\n WebSocketTransport.prototype.connect = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'WebSocketTransport.connect()', 'starting');\n transport_1.default.prototype.connect.call(this);\n var self = this,\n params = this.params,\n options = params.options;\n var wsScheme = options.tls ? 'wss://' : 'ws://';\n var wsUri = wsScheme + this.wsHost + ':' + defaults_1.default.getPort(options) + '/';\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'WebSocketTransport.connect()', 'uri: ' + wsUri);\n this.auth.getAuthParams(function (err, authParams) {\n if (self.isDisposed) {\n return;\n }\n var paramStr = '';\n for (var param in authParams) paramStr += ' ' + param + ': ' + authParams[param] + ';';\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'WebSocketTransport.connect()', 'authParams:' + paramStr + ' err: ' + err);\n if (err) {\n self.disconnect(err);\n return;\n }\n var connectParams = params.getConnectParams(authParams);\n try {\n var wsConnection = self.wsConnection = self.createWebSocket(wsUri, connectParams);\n wsConnection.binaryType = platform_1.default.Config.binaryType;\n wsConnection.onopen = function () {\n self.onWsOpen();\n };\n wsConnection.onclose = function (ev) {\n self.onWsClose(ev);\n };\n wsConnection.onmessage = function (ev) {\n self.onWsData(ev.data);\n };\n wsConnection.onerror = function (ev) {\n self.onWsError(ev);\n };\n if (isNodeWebSocket(wsConnection)) {\n /* node; browsers currently don't have a general eventemitter and can't detect\n * pings. Also, no need to reply with a pong explicitly, ws lib handles that */\n wsConnection.on('ping', function () {\n self.onActivity();\n });\n }\n } catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'WebSocketTransport.connect()', 'Unexpected exception creating websocket: err = ' + (e.stack || e.message));\n self.disconnect(e);\n }\n });\n };\n WebSocketTransport.prototype.send = function (message) {\n var wsConnection = this.wsConnection;\n if (!wsConnection) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'WebSocketTransport.send()', 'No socket connection');\n return;\n }\n try {\n wsConnection.send(protocolmessage_1.default.serialize(message, this.params.format));\n } catch (e) {\n var msg = 'Exception from ws connection when trying to send: ' + Utils.inspectError(e);\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'WebSocketTransport.send()', msg);\n /* Don't try to request a disconnect, that'll just involve sending data\n * down the websocket again. Just finish the transport. */\n this.finish('disconnected', new errorinfo_1.default(msg, 50000, 500));\n }\n };\n WebSocketTransport.prototype.onWsData = function (data) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'WebSocketTransport.onWsData()', 'data received; length = ' + data.length + '; type = ' + typeof data);\n try {\n this.onProtocolMessage(protocolmessage_1.default.deserialize(data, this.format));\n } catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'WebSocketTransport.onWsData()', 'Unexpected exception handing channel message: ' + e.stack);\n }\n };\n WebSocketTransport.prototype.onWsOpen = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'WebSocketTransport.onWsOpen()', 'opened WebSocket');\n this.emit('preconnect');\n };\n WebSocketTransport.prototype.onWsClose = function (ev) {\n var wasClean, code;\n if (typeof ev == 'object') {\n /* W3C spec-compatible */\n code = ev.code;\n // ev.wasClean is undefined in reactnative\n wasClean = ev.wasClean || code === 1000;\n } /*if(typeof(ev) == 'number')*/else {\n /* ws in node */\n code = ev;\n wasClean = code == 1000;\n }\n delete this.wsConnection;\n if (wasClean) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'WebSocketTransport.onWsClose()', 'Cleanly closed WebSocket');\n var err = new errorinfo_1.default('Websocket closed', 80003, 400);\n this.finish('disconnected', err);\n } else {\n var msg = 'Unclean disconnection of WebSocket ; code = ' + code,\n err = new errorinfo_1.default(msg, 80003, 400);\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'WebSocketTransport.onWsClose()', msg);\n this.finish('disconnected', err);\n }\n this.emit('disposed');\n };\n WebSocketTransport.prototype.onWsError = function (err) {\n var _this = this;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'WebSocketTransport.onError()', 'Error from WebSocket: ' + err.message);\n /* Wait a tick before aborting: if the websocket was connected, this event\n * will be immediately followed by an onclose event with a close code. Allow\n * that to close it (so we see the close code) rather than anticipating it */\n platform_1.default.Config.nextTick(function () {\n _this.disconnect(Error(err.message));\n });\n };\n WebSocketTransport.prototype.dispose = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'WebSocketTransport.dispose()', '');\n this.isDisposed = true;\n var wsConnection = this.wsConnection;\n if (wsConnection) {\n /* Ignore any messages that come through after dispose() is called but before\n * websocket is actually closed. (mostly would be harmless, but if it's a\n * CONNECTED, it'll re-tick isConnected and cause all sorts of havoc) */\n wsConnection.onmessage = function () {};\n delete this.wsConnection;\n /* defer until the next event loop cycle before closing the socket,\n * giving some implementations the opportunity to send any outstanding close message */\n platform_1.default.Config.nextTick(function () {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'WebSocketTransport.dispose()', 'closing websocket');\n if (!wsConnection) {\n throw new Error('WebSocketTransport.dispose(): wsConnection is not defined');\n }\n wsConnection.close();\n });\n }\n };\n return WebSocketTransport;\n }(transport_1.default);\n function initialiseTransport(connectionManager) {\n if (WebSocketTransport.isAvailable()) connectionManager.supportedTransports[shortName] = WebSocketTransport;\n return WebSocketTransport;\n }\n exports.default = initialiseTransport;\n\n /***/\n }, /* 54 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var presence_1 = tslib_1.__importDefault(__webpack_require__(34));\n var eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var presencemessage_1 = tslib_1.__importDefault(__webpack_require__(14));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var realtimechannel_1 = tslib_1.__importDefault(__webpack_require__(38));\n var multicaster_1 = tslib_1.__importDefault(__webpack_require__(22));\n var channelstatechange_1 = tslib_1.__importDefault(__webpack_require__(39));\n var noop = function () {};\n function getClientId(realtimePresence) {\n return realtimePresence.channel.realtime.auth.clientId;\n }\n function isAnonymousOrWildcard(realtimePresence) {\n var realtime = realtimePresence.channel.realtime;\n /* If not currently connected, we can't assume that we're an anonymous\n * client, as realtime may inform us of our clientId in the CONNECTED\n * message. So assume we're not anonymous and leave it to realtime to\n * return an error if we are */\n var clientId = realtime.auth.clientId;\n return (!clientId || clientId === '*') && realtime.connection.state === 'connected';\n }\n /* Callback is called only in the event of an error */\n function waitAttached(channel, callback, action) {\n switch (channel.state) {\n case 'attached':\n case 'suspended':\n action();\n break;\n case 'initialized':\n case 'detached':\n case 'detaching':\n case 'attaching':\n channel.attach(function (err) {\n if (err) callback(err);else action();\n });\n break;\n default:\n callback(errorinfo_1.default.fromValues(realtimechannel_1.default.invalidStateError(channel.state)));\n }\n }\n function newerThan(item, existing) {\n /* RTP2b1: if either is synthesised, compare by timestamp */\n if (item.isSynthesized() || existing.isSynthesized()) {\n return item.timestamp > existing.timestamp;\n }\n /* RTP2b2 */\n var itemOrderings = item.parseId(),\n existingOrderings = existing.parseId();\n if (itemOrderings.msgSerial === existingOrderings.msgSerial) {\n return itemOrderings.index > existingOrderings.index;\n } else {\n return itemOrderings.msgSerial > existingOrderings.msgSerial;\n }\n }\n var RealtimePresence = /** @class */function (_super) {\n tslib_1.__extends(RealtimePresence, _super);\n function RealtimePresence(channel) {\n var _this = _super.call(this, channel) || this;\n _this.channel = channel;\n _this.syncComplete = false;\n _this.members = new PresenceMap(_this, function (item) {\n return item.clientId + ':' + item.connectionId;\n });\n // RTP17h: Store own members by clientId only.\n _this._myMembers = new PresenceMap(_this, function (item) {\n return item.clientId;\n });\n _this.subscriptions = new eventemitter_1.default();\n _this.pendingPresence = [];\n return _this;\n }\n RealtimePresence.prototype.enter = function (data, callback) {\n if (isAnonymousOrWildcard(this)) {\n throw new errorinfo_1.default('clientId must be specified to enter a presence channel', 40012, 400);\n }\n return this._enterOrUpdateClient(undefined, undefined, data, 'enter', callback);\n };\n RealtimePresence.prototype.update = function (data, callback) {\n if (isAnonymousOrWildcard(this)) {\n throw new errorinfo_1.default('clientId must be specified to update presence data', 40012, 400);\n }\n return this._enterOrUpdateClient(undefined, undefined, data, 'update', callback);\n };\n RealtimePresence.prototype.enterClient = function (clientId, data, callback) {\n return this._enterOrUpdateClient(undefined, clientId, data, 'enter', callback);\n };\n RealtimePresence.prototype.updateClient = function (clientId, data, callback) {\n return this._enterOrUpdateClient(undefined, clientId, data, 'update', callback);\n };\n RealtimePresence.prototype._enterOrUpdateClient = function (id, clientId, data, action, callback) {\n var _this = this;\n if (!callback) {\n if (typeof data === 'function') {\n callback = data;\n data = null;\n } else {\n if (this.channel.realtime.options.promises) {\n return Utils.promisify(this, '_enterOrUpdateClient', [id, clientId, data, action]);\n }\n callback = noop;\n }\n }\n var channel = this.channel;\n if (!channel.connectionManager.activeState()) {\n callback(channel.connectionManager.getError());\n return;\n }\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimePresence.' + action + 'Client()', 'channel = ' + channel.name + ', id = ' + id + ', client = ' + (clientId || '(implicit) ' + getClientId(this)));\n var presence = presencemessage_1.default.fromValues({\n action: action,\n data: data\n });\n if (id) {\n presence.id = id;\n }\n if (clientId) {\n presence.clientId = clientId;\n }\n presencemessage_1.default.encode(presence, channel.channelOptions, function (err) {\n if (err) {\n callback(err);\n return;\n }\n switch (channel.state) {\n case 'attached':\n channel.sendPresence(presence, callback);\n break;\n case 'initialized':\n case 'detached':\n channel.attach();\n // eslint-disable-next-line no-fallthrough\n case 'attaching':\n _this.pendingPresence.push({\n presence: presence,\n callback: callback\n });\n break;\n default:\n err = new errorinfo_1.default('Unable to ' + action + ' presence channel while in ' + channel.state + ' state', 90001);\n err.code = 90001;\n callback(err);\n }\n });\n };\n RealtimePresence.prototype.leave = function (data, callback) {\n if (isAnonymousOrWildcard(this)) {\n throw new errorinfo_1.default('clientId must have been specified to enter or leave a presence channel', 40012, 400);\n }\n return this.leaveClient(undefined, data, callback);\n };\n RealtimePresence.prototype.leaveClient = function (clientId, data, callback) {\n if (!callback) {\n if (typeof data === 'function') {\n callback = data;\n data = null;\n } else {\n if (this.channel.realtime.options.promises) {\n return Utils.promisify(this, 'leaveClient', [clientId, data]);\n }\n callback = noop;\n }\n }\n var channel = this.channel;\n if (!channel.connectionManager.activeState()) {\n callback === null || callback === void 0 ? void 0 : callback(channel.connectionManager.getError());\n return;\n }\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimePresence.leaveClient()', 'leaving; channel = ' + this.channel.name + ', client = ' + clientId);\n var presence = presencemessage_1.default.fromValues({\n action: 'leave',\n data: data\n });\n if (clientId) {\n presence.clientId = clientId;\n }\n switch (channel.state) {\n case 'attached':\n channel.sendPresence(presence, callback);\n break;\n case 'attaching':\n this.pendingPresence.push({\n presence: presence,\n callback: callback\n });\n break;\n case 'initialized':\n case 'failed':\n {\n /* we're not attached; therefore we let any entered status\n * timeout by itself instead of attaching just in order to leave */\n var err = new errorinfo_1.default('Unable to leave presence channel (incompatible state)', 90001);\n callback === null || callback === void 0 ? void 0 : callback(err);\n break;\n }\n default:\n callback === null || callback === void 0 ? void 0 : callback(realtimechannel_1.default.invalidStateError(channel.state));\n }\n };\n // Return type is any to avoid conflict with base Presence class\n RealtimePresence.prototype.get = function (params, callback) {\n var _this = this;\n var args = Array.prototype.slice.call(arguments);\n if (args.length == 1 && typeof args[0] == 'function') args.unshift(null);\n params = args[0];\n callback = args[1];\n var waitForSync = !params || ('waitForSync' in params ? params.waitForSync : true);\n if (!callback) {\n if (this.channel.realtime.options.promises) {\n return Utils.promisify(this, 'get', args);\n }\n callback = noop;\n }\n function returnMembers(members) {\n callback(null, params ? members.list(params) : members.values());\n }\n /* Special-case the suspended state: can still get (stale) presence set if waitForSync is false */\n if (this.channel.state === 'suspended') {\n if (waitForSync) {\n callback(errorinfo_1.default.fromValues({\n statusCode: 400,\n code: 91005,\n message: 'Presence state is out of sync due to channel being in the SUSPENDED state'\n }));\n } else {\n returnMembers(this.members);\n }\n return;\n }\n waitAttached(this.channel, callback, function () {\n var members = _this.members;\n if (waitForSync) {\n members.waitSync(function () {\n returnMembers(members);\n });\n } else {\n returnMembers(members);\n }\n });\n };\n RealtimePresence.prototype.history = function (params, callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimePresence.history()', 'channel = ' + this.name);\n /* params and callback are optional; see if params contains the callback */\n if (callback === undefined) {\n if (typeof params == 'function') {\n callback = params;\n params = null;\n } else {\n if (this.channel.realtime.options.promises) {\n return Utils.promisify(this, 'history', arguments);\n }\n callback = noop;\n }\n }\n if (params && params.untilAttach) {\n if (this.channel.state === 'attached') {\n delete params.untilAttach;\n params.from_serial = this.channel.properties.attachSerial;\n } else {\n callback(new errorinfo_1.default('option untilAttach requires the channel to be attached, was: ' + this.channel.state, 40000, 400));\n }\n }\n presence_1.default.prototype._history.call(this, params, callback);\n };\n RealtimePresence.prototype.setPresence = function (presenceSet, isSync, syncChannelSerial) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimePresence.setPresence()', 'received presence for ' + presenceSet.length + ' participants; syncChannelSerial = ' + syncChannelSerial);\n var syncCursor, match;\n var members = this.members,\n myMembers = this._myMembers,\n broadcastMessages = [],\n connId = this.channel.connectionManager.connectionId;\n if (isSync) {\n this.members.startSync();\n if (syncChannelSerial && (match = syncChannelSerial.match(/^[\\w-]+:(.*)$/))) {\n syncCursor = match[1];\n }\n }\n for (var i = 0; i < presenceSet.length; i++) {\n var presence = presencemessage_1.default.fromValues(presenceSet[i]);\n switch (presence.action) {\n case 'leave':\n if (members.remove(presence)) {\n broadcastMessages.push(presence);\n }\n if (presence.connectionId === connId && !presence.isSynthesized()) {\n myMembers.remove(presence);\n }\n break;\n case 'enter':\n case 'present':\n case 'update':\n if (members.put(presence)) {\n broadcastMessages.push(presence);\n }\n if (presence.connectionId === connId) {\n myMembers.put(presence);\n }\n break;\n }\n }\n /* if this is the last (or only) message in a sequence of sync updates, end the sync */\n if (isSync && !syncCursor) {\n members.endSync();\n this.channel.syncChannelSerial = null;\n }\n /* broadcast to listeners */\n for (var i = 0; i < broadcastMessages.length; i++) {\n var presence = broadcastMessages[i];\n this.subscriptions.emit(presence.action, presence);\n }\n };\n RealtimePresence.prototype.onAttached = function (hasPresence) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimePresence.onAttached()', 'channel = ' + this.channel.name + ', hasPresence = ' + hasPresence);\n if (hasPresence) {\n this.members.startSync();\n } else {\n this._synthesizeLeaves(this.members.values());\n this.members.clear();\n }\n // RTP17f: Re-enter own members when moving into the attached state.\n this._ensureMyMembersPresent();\n /* NB this must be after the _ensureMyMembersPresent call, which may add items to pendingPresence */\n var pendingPresence = this.pendingPresence,\n pendingPresCount = pendingPresence.length;\n if (pendingPresCount) {\n this.pendingPresence = [];\n var presenceArray = [];\n var multicaster = multicaster_1.default.create();\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimePresence.onAttached', 'sending ' + pendingPresCount + ' queued presence messages');\n for (var i = 0; i < pendingPresCount; i++) {\n var event_1 = pendingPresence[i];\n presenceArray.push(event_1.presence);\n multicaster.push(event_1.callback);\n }\n this.channel.sendPresence(presenceArray, multicaster);\n }\n };\n RealtimePresence.prototype.actOnChannelState = function (state, hasPresence, err) {\n switch (state) {\n case 'attached':\n this.onAttached(hasPresence);\n break;\n case 'detached':\n case 'failed':\n this._clearMyMembers();\n this.members.clear();\n /* falls through */\n case 'suspended':\n this.failPendingPresence(err);\n break;\n }\n };\n RealtimePresence.prototype.failPendingPresence = function (err) {\n if (this.pendingPresence.length) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimeChannel.failPendingPresence', 'channel; name = ' + this.channel.name + ', err = ' + Utils.inspectError(err));\n for (var i = 0; i < this.pendingPresence.length; i++) try {\n this.pendingPresence[i].callback(err);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n this.pendingPresence = [];\n }\n };\n RealtimePresence.prototype._clearMyMembers = function () {\n this._myMembers.clear();\n };\n RealtimePresence.prototype._ensureMyMembersPresent = function () {\n var _this = this;\n var myMembers = this._myMembers,\n reenterCb = function (err) {\n if (err) {\n var msg = 'Presence auto-re-enter failed: ' + err.toString();\n var wrappedErr = new errorinfo_1.default(msg, 91004, 400);\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'RealtimePresence._ensureMyMembersPresent()', msg);\n var change = new channelstatechange_1.default(_this.channel.state, _this.channel.state, true, wrappedErr);\n _this.channel.emit('update', change);\n }\n };\n for (var memberKey in myMembers.map) {\n var entry = myMembers.map[memberKey];\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimePresence._ensureMyMembersPresent()', 'Auto-reentering clientId \"' + entry.clientId + '\" into the presence set');\n // RTP17g: Send ENTER containing the member id, clientId and data\n // attributes.\n this._enterOrUpdateClient(entry.id, entry.clientId, entry.data, 'enter', reenterCb);\n }\n };\n RealtimePresence.prototype._synthesizeLeaves = function (items) {\n var subscriptions = this.subscriptions;\n Utils.arrForEach(items, function (item) {\n var presence = presencemessage_1.default.fromValues({\n action: 'leave',\n connectionId: item.connectionId,\n clientId: item.clientId,\n data: item.data,\n encoding: item.encoding,\n timestamp: Utils.now()\n });\n subscriptions.emit('leave', presence);\n });\n };\n /* Deprecated */\n RealtimePresence.prototype.on = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n logger_1.default.deprecated('presence.on', 'presence.subscribe');\n this.subscribe.apply(this, args);\n };\n /* Deprecated */\n RealtimePresence.prototype.off = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n logger_1.default.deprecated('presence.off', 'presence.unsubscribe');\n this.unsubscribe.apply(this, args);\n };\n RealtimePresence.prototype.subscribe = function () {\n var _args = []; /* [event], listener, [callback] */\n for (var _i = 0 /* [event], listener, [callback] */; _i < arguments.length /* [event], listener, [callback] */; _i++ /* [event], listener, [callback] */) {\n _args[_i] = arguments[_i]; /* [event], listener, [callback] */\n }\n\n var args = realtimechannel_1.default.processListenerArgs(_args);\n var event = args[0];\n var listener = args[1];\n var callback = args[2];\n var channel = this.channel;\n if (!callback) {\n if (this.channel.realtime.options.promises) {\n return Utils.promisify(this, 'subscribe', [event, listener]);\n }\n callback = noop;\n }\n if (channel.state === 'failed') {\n callback(errorinfo_1.default.fromValues(realtimechannel_1.default.invalidStateError('failed')));\n return;\n }\n this.subscriptions.on(event, listener);\n channel.attach(callback);\n };\n RealtimePresence.prototype.unsubscribe = function () {\n var _args = []; /* [event], listener */\n for (var _i = 0 /* [event], listener */; _i < arguments.length /* [event], listener */; _i++ /* [event], listener */) {\n _args[_i] = arguments[_i]; /* [event], listener */\n }\n\n var args = realtimechannel_1.default.processListenerArgs(_args);\n var event = args[0];\n var listener = args[1];\n this.subscriptions.off(event, listener);\n };\n return RealtimePresence;\n }(presence_1.default);\n var PresenceMap = /** @class */function (_super) {\n tslib_1.__extends(PresenceMap, _super);\n function PresenceMap(presence, memberKey) {\n var _this = _super.call(this) || this;\n _this.presence = presence;\n _this.map = Object.create(null);\n _this.syncInProgress = false;\n _this.residualMembers = null;\n _this.memberKey = memberKey;\n return _this;\n }\n PresenceMap.prototype.get = function (key) {\n return this.map[key];\n };\n PresenceMap.prototype.getClient = function (clientId) {\n var map = this.map,\n result = [];\n for (var key in map) {\n var item = map[key];\n if (item.clientId == clientId && item.action != 'absent') result.push(item);\n }\n return result;\n };\n PresenceMap.prototype.list = function (params) {\n var map = this.map,\n clientId = params && params.clientId,\n connectionId = params && params.connectionId,\n result = [];\n for (var key in map) {\n var item = map[key];\n if (item.action === 'absent') continue;\n if (clientId && clientId != item.clientId) continue;\n if (connectionId && connectionId != item.connectionId) continue;\n result.push(item);\n }\n return result;\n };\n PresenceMap.prototype.put = function (item) {\n if (item.action === 'enter' || item.action === 'update') {\n item = presencemessage_1.default.fromValues(item);\n item.action = 'present';\n }\n var map = this.map,\n key = this.memberKey(item);\n /* we've seen this member, so do not remove it at the end of sync */\n if (this.residualMembers) delete this.residualMembers[key];\n /* compare the timestamp of the new item with any existing member (or ABSENT witness) */\n var existingItem = map[key];\n if (existingItem && !newerThan(item, existingItem)) {\n return false;\n }\n map[key] = item;\n return true;\n };\n PresenceMap.prototype.values = function () {\n var map = this.map,\n result = [];\n for (var key in map) {\n var item = map[key];\n if (item.action != 'absent') result.push(item);\n }\n return result;\n };\n PresenceMap.prototype.remove = function (item) {\n var map = this.map,\n key = this.memberKey(item);\n var existingItem = map[key];\n if (existingItem && !newerThan(item, existingItem)) {\n return false;\n }\n /* RTP2f */\n if (this.syncInProgress) {\n item = presencemessage_1.default.fromValues(item);\n item.action = 'absent';\n map[key] = item;\n } else {\n delete map[key];\n }\n return true;\n };\n PresenceMap.prototype.startSync = function () {\n var map = this.map,\n syncInProgress = this.syncInProgress;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'PresenceMap.startSync()', 'channel = ' + this.presence.channel.name + '; syncInProgress = ' + syncInProgress);\n /* we might be called multiple times while a sync is in progress */\n if (!this.syncInProgress) {\n this.residualMembers = Utils.copy(map);\n this.setInProgress(true);\n }\n };\n PresenceMap.prototype.endSync = function () {\n var map = this.map,\n syncInProgress = this.syncInProgress;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'PresenceMap.endSync()', 'channel = ' + this.presence.channel.name + '; syncInProgress = ' + syncInProgress);\n if (syncInProgress) {\n /* we can now strip out the ABSENT members, as we have\n * received all of the out-of-order sync messages */\n for (var memberKey in map) {\n var entry = map[memberKey];\n if (entry.action === 'absent') {\n delete map[memberKey];\n }\n }\n /* any members that were present at the start of the sync,\n * and have not been seen in sync, can be removed, and leave events emitted */\n this.presence._synthesizeLeaves(Utils.valuesArray(this.residualMembers));\n for (var memberKey in this.residualMembers) {\n delete map[memberKey];\n }\n this.residualMembers = null;\n /* finish, notifying any waiters */\n this.setInProgress(false);\n }\n this.emit('sync');\n };\n PresenceMap.prototype.waitSync = function (callback) {\n var syncInProgress = this.syncInProgress;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'PresenceMap.waitSync()', 'channel = ' + this.presence.channel.name + '; syncInProgress = ' + syncInProgress);\n if (!syncInProgress) {\n callback();\n return;\n }\n this.once('sync', callback);\n };\n PresenceMap.prototype.clear = function () {\n this.map = {};\n this.setInProgress(false);\n this.residualMembers = null;\n };\n PresenceMap.prototype.setInProgress = function (inProgress) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'PresenceMap.setInProgress()', 'inProgress = ' + inProgress);\n this.syncInProgress = inProgress;\n this.presence.syncComplete = !inProgress;\n };\n return PresenceMap;\n }(eventemitter_1.default);\n exports.default = RealtimePresence;\n\n /***/\n }, /* 55 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var enc_hex_1 = __webpack_require__(56);\n var enc_utf8_1 = __webpack_require__(32);\n var enc_base64_1 = __webpack_require__(13);\n var lib_typedarrays_1 = tslib_1.__importDefault(__webpack_require__(4));\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n /* Most BufferUtils methods that return a binary object return an ArrayBuffer\n * if supported, else a CryptoJS WordArray. The exception is toBuffer, which\n * returns a Uint8Array (and won't work on browsers too old to support it) */\n var BufferUtils = /** @class */function () {\n function BufferUtils() {\n this.base64CharSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n this.hexCharSet = '0123456789abcdef';\n }\n BufferUtils.prototype.isWordArray = function (ob) {\n return ob !== null && ob !== undefined && ob.sigBytes !== undefined;\n };\n BufferUtils.prototype.isArrayBuffer = function (ob) {\n return ob !== null && ob !== undefined && ob.constructor === ArrayBuffer;\n };\n BufferUtils.prototype.isTypedArray = function (ob) {\n return !!ArrayBuffer && ArrayBuffer.isView && ArrayBuffer.isView(ob);\n };\n // // https://gist.githubusercontent.com/jonleighton/958841/raw/f200e30dfe95212c0165ccf1ae000ca51e9de803/gistfile1.js\n BufferUtils.prototype.uint8ViewToBase64 = function (bytes) {\n var base64 = '';\n var encodings = this.base64CharSet;\n var byteLength = bytes.byteLength;\n var byteRemainder = byteLength % 3;\n var mainLength = byteLength - byteRemainder;\n var a, b, c, d;\n var chunk;\n // Main loop deals with bytes in chunks of 3\n for (var i = 0; i < mainLength; i = i + 3) {\n // Combine the three bytes into a single integer\n chunk = bytes[i] << 16 | bytes[i + 1] << 8 | bytes[i + 2];\n // Use bitmasks to extract 6-bit segments from the triplet\n a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18\n b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12\n c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6\n d = chunk & 63; // 63 = 2^6 - 1\n // Convert the raw binary segments to the appropriate ASCII encoding\n base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d];\n }\n // Deal with the remaining bytes and padding\n if (byteRemainder == 1) {\n chunk = bytes[mainLength];\n a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2\n // Set the 4 least significant bits to zero\n b = (chunk & 3) << 4; // 3 = 2^2 - 1\n base64 += encodings[a] + encodings[b] + '==';\n } else if (byteRemainder == 2) {\n chunk = bytes[mainLength] << 8 | bytes[mainLength + 1];\n a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10\n b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4\n // Set the 2 least significant bits to zero\n c = (chunk & 15) << 2; // 15 = 2^4 - 1\n base64 += encodings[a] + encodings[b] + encodings[c] + '=';\n }\n return base64;\n };\n BufferUtils.prototype.base64ToArrayBuffer = function (base64) {\n var binary_string = atob === null || atob === void 0 ? void 0 : atob(base64); // this will always be defined in browser so it's safe to cast\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n var ascii = binary_string.charCodeAt(i);\n bytes[i] = ascii;\n }\n return bytes.buffer;\n };\n BufferUtils.prototype.isBuffer = function (buffer) {\n return this.isArrayBuffer(buffer) || this.isWordArray(buffer) || this.isTypedArray(buffer);\n };\n /* In browsers, returns a Uint8Array */\n BufferUtils.prototype.toBuffer = function (buffer) {\n if (!ArrayBuffer) {\n throw new Error(\"Can't convert to Buffer: browser does not support the necessary types\");\n }\n if (this.isArrayBuffer(buffer)) {\n return new Uint8Array(buffer);\n }\n if (this.isTypedArray(buffer)) {\n return new Uint8Array(buffer.buffer);\n }\n if (this.isWordArray(buffer)) {\n /* Backported from unreleased CryptoJS\n * https://code.google.com/p/crypto-js/source/browse/branches/3.x/src/lib-typedarrays.js?r=661 */\n var arrayBuffer = new ArrayBuffer(buffer.sigBytes);\n var uint8View = new Uint8Array(arrayBuffer);\n for (var i = 0; i < buffer.sigBytes; i++) {\n uint8View[i] = buffer.words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n }\n return uint8View;\n }\n throw new Error('BufferUtils.toBuffer expected an arraybuffer, typed array, or CryptoJS wordarray');\n };\n BufferUtils.prototype.toArrayBuffer = function (buffer) {\n if (this.isArrayBuffer(buffer)) {\n return buffer;\n }\n return this.toBuffer(buffer).buffer;\n };\n BufferUtils.prototype.toWordArray = function (buffer) {\n if (this.isTypedArray(buffer)) {\n buffer = buffer.buffer;\n }\n return this.isWordArray(buffer) ? buffer : lib_typedarrays_1.default.create(buffer);\n };\n BufferUtils.prototype.base64Encode = function (buffer) {\n if (this.isWordArray(buffer)) {\n return (0, enc_base64_1.stringify)(buffer);\n }\n return this.uint8ViewToBase64(this.toBuffer(buffer));\n };\n BufferUtils.prototype.base64Decode = function (str) {\n if (ArrayBuffer && platform_1.default.Config.atob) {\n return this.base64ToArrayBuffer(str);\n }\n return (0, enc_base64_1.parse)(str);\n };\n BufferUtils.prototype.hexEncode = function (buffer) {\n return (0, enc_hex_1.stringify)(this.toWordArray(buffer));\n };\n BufferUtils.prototype.hexDecode = function (string) {\n var wordArray = (0, enc_hex_1.parse)(string);\n return ArrayBuffer ? this.toArrayBuffer(wordArray) : wordArray;\n };\n BufferUtils.prototype.utf8Encode = function (string) {\n if (TextEncoder) {\n return new TextEncoder().encode(string).buffer;\n }\n return (0, enc_utf8_1.parse)(string);\n };\n /* For utf8 decoding we apply slightly stricter input validation than to\n * hexEncode/base64Encode/etc: in those we accept anything that Buffer.from\n * can take (in particular allowing strings, which are just interpreted as\n * binary); here we ensure that the input is actually a buffer since trying\n * to utf8-decode a string to another string is almost certainly a mistake */\n BufferUtils.prototype.utf8Decode = function (buffer) {\n if (!this.isBuffer(buffer)) {\n throw new Error('Expected input of utf8decode to be an arraybuffer, typed array, or CryptoJS wordarray');\n }\n if (TextDecoder && !this.isWordArray(buffer)) {\n return new TextDecoder().decode(buffer);\n }\n buffer = this.toWordArray(buffer);\n return (0, enc_utf8_1.stringify)(buffer);\n };\n BufferUtils.prototype.bufferCompare = function (buffer1, buffer2) {\n if (!buffer1) return -1;\n if (!buffer2) return 1;\n var wordArray1 = this.toWordArray(buffer1);\n var wordArray2 = this.toWordArray(buffer2);\n wordArray1.clamp();\n wordArray2.clamp();\n var cmp = wordArray1.sigBytes - wordArray2.sigBytes;\n if (cmp != 0) return cmp;\n var words1 = wordArray1.words;\n var words2 = wordArray2.words;\n for (var i = 0; i < words1.length; i++) {\n cmp = words1[i] - words2[i];\n if (cmp != 0) return cmp;\n }\n return 0;\n };\n BufferUtils.prototype.byteLength = function (buffer) {\n if (this.isArrayBuffer(buffer) || this.isTypedArray(buffer)) {\n return buffer.byteLength;\n } else if (this.isWordArray(buffer)) {\n return buffer.sigBytes;\n }\n return -1;\n };\n /* Returns ArrayBuffer on browser and Buffer on Node.js */\n BufferUtils.prototype.typedArrayToBuffer = function (typedArray) {\n return typedArray.buffer;\n };\n return BufferUtils;\n }();\n exports.default = new BufferUtils();\n\n /***/\n }, /* 56 */\n /***/function (module, exports, __webpack_require__) {\n ;\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(6));\n } else {}\n })(this, function (CryptoJS) {\n return CryptoJS.enc.Hex;\n });\n\n /***/\n }, /* 57 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n var crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);\n /* harmony import */\n var crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n var crypto_js_build_enc_base64__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);\n /* harmony import */\n var crypto_js_build_enc_base64__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(crypto_js_build_enc_base64__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n var crypto_js_build__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21);\n /* harmony import */\n var crypto_js_build__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(crypto_js_build__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */\n var _common_platform__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);\n /* harmony import */\n var _common_platform__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_common_platform__WEBPACK_IMPORTED_MODULE_3__);\n /* harmony import */\n var _common_lib_util_logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3);\n /* harmony import */\n var _common_lib_util_logger__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_common_lib_util_logger__WEBPACK_IMPORTED_MODULE_4__);\n var Crypto = function () {\n var DEFAULT_ALGORITHM = 'aes';\n var DEFAULT_KEYLENGTH = 256; // bits\n var DEFAULT_MODE = 'cbc';\n var DEFAULT_BLOCKLENGTH = 16; // bytes\n var DEFAULT_BLOCKLENGTH_WORDS = 4; // 32-bit words\n var UINT32_SUP = 0x100000000;\n var INT32_SUP = 0x80000000;\n\n /**\n * Internal: generate an array of secure random words corresponding to the given length of bytes\n * @param bytes\n * @param callback\n */\n var generateRandom;\n if (_common_platform__WEBPACK_IMPORTED_MODULE_3___default.a.getRandomWordArray) {\n generateRandom = _common_platform__WEBPACK_IMPORTED_MODULE_3___default.a.getRandomWordArray;\n } else if (typeof Uint32Array !== 'undefined' && _common_platform__WEBPACK_IMPORTED_MODULE_3___default.a.getRandomValues) {\n var blockRandomArray = new Uint32Array(DEFAULT_BLOCKLENGTH_WORDS);\n generateRandom = function (bytes, callback) {\n var words = bytes / 4,\n nativeArray = words == DEFAULT_BLOCKLENGTH_WORDS ? blockRandomArray : new Uint32Array(words);\n _common_platform__WEBPACK_IMPORTED_MODULE_3___default.a.getRandomValues(nativeArray, function (err) {\n if (typeof callback !== 'undefined') {\n callback(err, _common_platform__WEBPACK_IMPORTED_MODULE_3___default.a.BufferUtils.toWordArray(nativeArray));\n }\n });\n };\n } else {\n generateRandom = function (bytes, callback) {\n _common_lib_util_logger__WEBPACK_IMPORTED_MODULE_4___default.a.logAction(_common_lib_util_logger__WEBPACK_IMPORTED_MODULE_4___default.a.LOG_MAJOR, 'Ably.Crypto.generateRandom()', 'Warning: the browser you are using does not support secure cryptographically secure randomness generation; falling back to insecure Math.random()');\n var words = bytes / 4,\n array = new Array(words);\n for (var i = 0; i < words; i++) {\n /* cryptojs wordarrays use signed ints. When WordArray.create is fed a\n * Uint32Array unsigned are converted to signed automatically, but when\n * fed a normal array they aren't, so need to do so ourselves by\n * subtracting INT32_SUP */\n array[i] = Math.floor(Math.random() * UINT32_SUP) - INT32_SUP;\n }\n callback(null, crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create(array));\n };\n }\n\n /**\n * Internal: calculate the padded length of a given plaintext\n * using PKCS5.\n * @param plaintextLength\n * @return\n */\n function getPaddedLength(plaintextLength) {\n return plaintextLength + DEFAULT_BLOCKLENGTH & -DEFAULT_BLOCKLENGTH;\n }\n\n /**\n * Internal: checks that the cipherParams are a valid combination. Currently\n * just checks that the calculated keyLength is a valid one for aes-cbc\n */\n function validateCipherParams(params) {\n if (params.algorithm === 'aes' && params.mode === 'cbc') {\n if (params.keyLength === 128 || params.keyLength === 256) {\n return;\n }\n throw new Error('Unsupported key length ' + params.keyLength + ' for aes-cbc encryption. Encryption key must be 128 or 256 bits (16 or 32 ASCII characters)');\n }\n }\n function normaliseBase64(string) {\n /* url-safe base64 strings use _ and - instread of / and + */\n return string.replace('_', '/').replace('-', '+');\n }\n\n /**\n * Internal: obtain the pkcs5 padding string for a given padded length;\n */\n var pkcs5Padding = [crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x10101010, 0x10101010, 0x10101010, 0x10101010], 16), crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x01000000], 1), crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x02020000], 2), crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x03030300], 3), crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x04040404], 4), crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x05050505, 0x05000000], 5), crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x06060606, 0x06060000], 6), crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x07070707, 0x07070700], 7), crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x08080808, 0x08080808], 8), crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x09090909, 0x09090909, 0x09000000], 9), crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0000], 10), crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x0b0b0b0b, 0x0b0b0b0b, 0x0b0b0b00], 11), crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c], 12), crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x0d0d0d0d, 0x0d0d0d0d, 0x0d0d0d0d, 0x0d000000], 13), crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x0e0e0e0e, 0x0e0e0e0e, 0x0e0e0e0e, 0x0e0e0000], 14), crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x0f0f0f0f, 0x0f0f0f0f, 0x0f0f0f0f, 0x0f0f0f0f], 15), crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x10101010, 0x10101010, 0x10101010, 0x10101010], 16)];\n\n /**\n * Utility classes and interfaces for message payload encryption.\n *\n * This class supports AES/CBC/PKCS5 with a default keylength of 128 bits\n * but supporting other keylengths. Other algorithms and chaining modes are\n * not supported directly, but supportable by extending/implementing the base\n * classes and interfaces here.\n *-\n * Secure random data for creation of Initialization Vectors (IVs) and keys\n * is obtained from window.crypto.getRandomValues if available, or from\n * Math.random() if not. Clients who do not want to depend on Math.random()\n * should polyfill window.crypto.getRandomValues with a library that seeds\n * a PRNG with real entropy.\n *\n * Each message payload is encrypted with an IV in CBC mode, and the IV is\n * concatenated with the resulting raw ciphertext to construct the \"ciphertext\"\n * data passed to the recipient.\n */\n function Crypto() {}\n\n /**\n * A class encapsulating the client-specifiable parameters for\n * the cipher.\n *\n * algorithm is the name of the algorithm in the default system provider,\n * or the lower-cased version of it; eg \"aes\" or \"AES\".\n *\n * Clients are recommended to not call this directly, but instead to use the\n * Crypto.getDefaultParams helper, which will fill in any fields not supplied\n * with default values and validation the result.\n */\n function CipherParams() {\n this.algorithm = null;\n this.keyLength = null;\n this.mode = null;\n this.key = null;\n }\n Crypto.CipherParams = CipherParams;\n\n /**\n * Obtain a complete CipherParams instance from the provided params, filling\n * in any not provided with default values, calculating a keyLength from\n * the supplied key, and validating the result.\n * @param params an object containing at a minimum a `key` key with value the\n * key, as either a binary (ArrayBuffer, Array, WordArray) or a\n * base64-encoded string. May optionally also contain: algorithm (defaults to\n * AES), mode (defaults to 'cbc')\n */\n Crypto.getDefaultParams = function (params) {\n var key;\n /* Backward compatibility */\n if (typeof params === 'function' || typeof params === 'string') {\n _common_lib_util_logger__WEBPACK_IMPORTED_MODULE_4___default.a.deprecated('Crypto.getDefaultParams(key, callback)', 'Crypto.getDefaultParams({key: key})');\n if (typeof params === 'function') {\n Crypto.generateRandomKey(function (key) {\n params(null, Crypto.getDefaultParams({\n key: key\n }));\n });\n } else if (typeof arguments[1] === 'function') {\n arguments[1](null, Crypto.getDefaultParams({\n key: params\n }));\n } else {\n throw new Error('Invalid arguments for Crypto.getDefaultParams');\n }\n return;\n }\n if (!params.key) {\n throw new Error('Crypto.getDefaultParams: a key is required');\n }\n if (typeof params.key === 'string') {\n key = Object(crypto_js_build_enc_base64__WEBPACK_IMPORTED_MODULE_1__[\"parse\"])(normaliseBase64(params.key));\n } else {\n key = _common_platform__WEBPACK_IMPORTED_MODULE_3___default.a.BufferUtils.toWordArray(params.key); // Expect key to be an Array, ArrayBuffer, or WordArray at this point\n }\n\n var cipherParams = new CipherParams();\n cipherParams.key = key;\n cipherParams.algorithm = params.algorithm || DEFAULT_ALGORITHM;\n cipherParams.keyLength = key.words.length * (4 * 8);\n cipherParams.mode = params.mode || DEFAULT_MODE;\n if (params.keyLength && params.keyLength !== cipherParams.keyLength) {\n throw new Error('Crypto.getDefaultParams: a keyLength of ' + params.keyLength + ' was specified, but the key actually has length ' + cipherParams.keyLength);\n }\n validateCipherParams(cipherParams);\n return cipherParams;\n };\n\n /**\n * Generate a random encryption key from the supplied keylength (or the\n * default keyLength if none supplied) as a CryptoJS WordArray\n * @param keyLength (optional) the required keyLength in bits\n * @param callback (optional) (err, key)\n */\n Crypto.generateRandomKey = function (keyLength, callback) {\n if (arguments.length == 1 && typeof keyLength == 'function') {\n callback = keyLength;\n keyLength = undefined;\n }\n generateRandom((keyLength || DEFAULT_KEYLENGTH) / 8, callback);\n };\n\n /**\n * Internal; get a ChannelCipher instance based on the given cipherParams\n * @param params either a CipherParams instance or some subset of its\n * fields that includes a key\n */\n Crypto.getCipher = function (params) {\n var cipherParams = params instanceof CipherParams ? params : Crypto.getDefaultParams(params);\n return {\n cipherParams: cipherParams,\n cipher: new CBCCipher(cipherParams, DEFAULT_BLOCKLENGTH_WORDS, params.iv)\n };\n };\n function CBCCipher(params, blockLengthWords, iv) {\n this.algorithm = params.algorithm + '-' + String(params.keyLength) + '-' + params.mode;\n this.cjsAlgorithm = params.algorithm.toUpperCase().replace(/-\\d+$/, '');\n this.key = _common_platform__WEBPACK_IMPORTED_MODULE_3___default.a.BufferUtils.toWordArray(params.key);\n if (iv) {\n this.iv = _common_platform__WEBPACK_IMPORTED_MODULE_3___default.a.BufferUtils.toWordArray(iv).clone();\n }\n this.blockLengthWords = blockLengthWords;\n }\n CBCCipher.prototype.encrypt = function (plaintext, callback) {\n _common_lib_util_logger__WEBPACK_IMPORTED_MODULE_4___default.a.logAction(_common_lib_util_logger__WEBPACK_IMPORTED_MODULE_4___default.a.LOG_MICRO, 'CBCCipher.encrypt()', '');\n plaintext = _common_platform__WEBPACK_IMPORTED_MODULE_3___default.a.BufferUtils.toWordArray(plaintext);\n var plaintextLength = plaintext.sigBytes,\n paddedLength = getPaddedLength(plaintextLength),\n self = this;\n var then = function () {\n self.getIv(function (err, iv) {\n if (err) {\n callback(err);\n return;\n }\n var cipherOut = self.encryptCipher.process(plaintext.concat(pkcs5Padding[paddedLength - plaintextLength]));\n var ciphertext = iv.concat(cipherOut);\n callback(null, ciphertext);\n });\n };\n if (!this.encryptCipher) {\n if (this.iv) {\n this.encryptCipher = crypto_js_build__WEBPACK_IMPORTED_MODULE_2___default.a.algo[this.cjsAlgorithm].createEncryptor(this.key, {\n iv: this.iv\n });\n then();\n } else {\n generateRandom(DEFAULT_BLOCKLENGTH, function (err, iv) {\n if (err) {\n callback(err);\n return;\n }\n self.encryptCipher = crypto_js_build__WEBPACK_IMPORTED_MODULE_2___default.a.algo[self.cjsAlgorithm].createEncryptor(self.key, {\n iv: iv\n });\n self.iv = iv;\n then();\n });\n }\n } else {\n then();\n }\n };\n CBCCipher.prototype.decrypt = function (ciphertext) {\n _common_lib_util_logger__WEBPACK_IMPORTED_MODULE_4___default.a.logAction(_common_lib_util_logger__WEBPACK_IMPORTED_MODULE_4___default.a.LOG_MICRO, 'CBCCipher.decrypt()', '');\n ciphertext = _common_platform__WEBPACK_IMPORTED_MODULE_3___default.a.BufferUtils.toWordArray(ciphertext);\n var blockLengthWords = this.blockLengthWords,\n ciphertextWords = ciphertext.words,\n iv = crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create(ciphertextWords.slice(0, blockLengthWords)),\n ciphertextBody = crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create(ciphertextWords.slice(blockLengthWords));\n var decryptCipher = crypto_js_build__WEBPACK_IMPORTED_MODULE_2___default.a.algo[this.cjsAlgorithm].createDecryptor(this.key, {\n iv: iv\n });\n var plaintext = decryptCipher.process(ciphertextBody);\n var epilogue = decryptCipher.finalize();\n decryptCipher.reset();\n if (epilogue && epilogue.sigBytes) plaintext.concat(epilogue);\n return plaintext;\n };\n CBCCipher.prototype.getIv = function (callback) {\n if (this.iv) {\n var iv = this.iv;\n this.iv = null;\n callback(null, iv);\n return;\n }\n\n /* Since the iv for a new block is the ciphertext of the last, this\n * sets a new iv (= aes(randomBlock XOR lastCipherText)) as well as\n * returning it */\n var self = this;\n generateRandom(DEFAULT_BLOCKLENGTH, function (err, randomBlock) {\n if (err) {\n callback(err);\n return;\n }\n callback(null, self.encryptCipher.process(randomBlock));\n });\n };\n return Crypto;\n }();\n\n /* harmony default export */\n __webpack_exports__[\"default\"] = Crypto;\n\n /***/\n }, /* 58 */\n /***/function (module, exports, __webpack_require__) {\n ;\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(6));\n } else {}\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n\n /**\n * UTF-16 BE encoding strategy.\n */\n var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n /**\n * Converts a word array to a UTF-16 BE string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-16 BE string.\n *\n * @static\n *\n * @example\n *\n * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n */\n stringify: function (wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n\n // Convert\n var utf16Chars = [];\n for (var i = 0; i < sigBytes; i += 2) {\n var codePoint = words[i >>> 2] >>> 16 - i % 4 * 8 & 0xffff;\n utf16Chars.push(String.fromCharCode(codePoint));\n }\n return utf16Chars.join('');\n },\n /**\n * Converts a UTF-16 BE string to a word array.\n *\n * @param {string} utf16Str The UTF-16 BE string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n */\n parse: function (utf16Str) {\n // Shortcut\n var utf16StrLength = utf16Str.length;\n\n // Convert\n var words = [];\n for (var i = 0; i < utf16StrLength; i++) {\n words[i >>> 1] |= utf16Str.charCodeAt(i) << 16 - i % 2 * 16;\n }\n return WordArray.create(words, utf16StrLength * 2);\n }\n };\n\n /**\n * UTF-16 LE encoding strategy.\n */\n C_enc.Utf16LE = {\n /**\n * Converts a word array to a UTF-16 LE string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-16 LE string.\n *\n * @static\n *\n * @example\n *\n * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n */\n stringify: function (wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n\n // Convert\n var utf16Chars = [];\n for (var i = 0; i < sigBytes; i += 2) {\n var codePoint = swapEndian(words[i >>> 2] >>> 16 - i % 4 * 8 & 0xffff);\n utf16Chars.push(String.fromCharCode(codePoint));\n }\n return utf16Chars.join('');\n },\n /**\n * Converts a UTF-16 LE string to a word array.\n *\n * @param {string} utf16Str The UTF-16 LE string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n */\n parse: function (utf16Str) {\n // Shortcut\n var utf16StrLength = utf16Str.length;\n\n // Convert\n var words = [];\n for (var i = 0; i < utf16StrLength; i++) {\n words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << 16 - i % 2 * 16);\n }\n return WordArray.create(words, utf16StrLength * 2);\n }\n };\n function swapEndian(word) {\n return word << 8 & 0xff00ff00 | word >>> 8 & 0x00ff00ff;\n }\n })();\n return CryptoJS.enc.Utf16;\n });\n\n /***/\n }, /* 59 */\n /***/function (module, exports, __webpack_require__) {\n ;\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(6), __webpack_require__(28));\n } else {}\n })(this, function (CryptoJS) {\n (function (undefined) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var CipherParams = C_lib.CipherParams;\n var C_enc = C.enc;\n var Hex = C_enc.Hex;\n var C_format = C.format;\n var HexFormatter = C_format.Hex = {\n /**\n * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n *\n * @param {CipherParams} cipherParams The cipher params object.\n *\n * @return {string} The hexadecimally encoded string.\n *\n * @static\n *\n * @example\n *\n * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n */\n stringify: function (cipherParams) {\n return cipherParams.ciphertext.toString(Hex);\n },\n /**\n * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n *\n * @param {string} input The hexadecimally encoded string.\n *\n * @return {CipherParams} The cipher params object.\n *\n * @static\n *\n * @example\n *\n * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n */\n parse: function (input) {\n var ciphertext = Hex.parse(input);\n return CipherParams.create({\n ciphertext: ciphertext\n });\n }\n };\n })();\n return CryptoJS.format.Hex;\n });\n\n /***/\n }, /* 60 */\n /***/function (module, exports, __webpack_require__) {\n ;\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(6), __webpack_require__(13), __webpack_require__(61), __webpack_require__(27), __webpack_require__(28));\n } else {}\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var BlockCipher = C_lib.BlockCipher;\n var C_algo = C.algo;\n\n // Lookup tables\n var SBOX = [];\n var INV_SBOX = [];\n var SUB_MIX_0 = [];\n var SUB_MIX_1 = [];\n var SUB_MIX_2 = [];\n var SUB_MIX_3 = [];\n var INV_SUB_MIX_0 = [];\n var INV_SUB_MIX_1 = [];\n var INV_SUB_MIX_2 = [];\n var INV_SUB_MIX_3 = [];\n\n // Compute lookup tables\n (function () {\n // Compute double table\n var d = [];\n for (var i = 0; i < 256; i++) {\n if (i < 128) {\n d[i] = i << 1;\n } else {\n d[i] = i << 1 ^ 0x11b;\n }\n }\n\n // Walk GF(2^8)\n var x = 0;\n var xi = 0;\n for (var i = 0; i < 256; i++) {\n // Compute sbox\n var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4;\n sx = sx >>> 8 ^ sx & 0xff ^ 0x63;\n SBOX[x] = sx;\n INV_SBOX[sx] = x;\n\n // Compute multiplication\n var x2 = d[x];\n var x4 = d[x2];\n var x8 = d[x4];\n\n // Compute sub bytes, mix columns tables\n var t = d[sx] * 0x101 ^ sx * 0x1010100;\n SUB_MIX_0[x] = t << 24 | t >>> 8;\n SUB_MIX_1[x] = t << 16 | t >>> 16;\n SUB_MIX_2[x] = t << 8 | t >>> 24;\n SUB_MIX_3[x] = t;\n\n // Compute inv sub bytes, inv mix columns tables\n var t = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100;\n INV_SUB_MIX_0[sx] = t << 24 | t >>> 8;\n INV_SUB_MIX_1[sx] = t << 16 | t >>> 16;\n INV_SUB_MIX_2[sx] = t << 8 | t >>> 24;\n INV_SUB_MIX_3[sx] = t;\n\n // Compute next counter\n if (!x) {\n x = xi = 1;\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]];\n xi ^= d[d[xi]];\n }\n }\n })();\n\n // Precomputed Rcon lookup\n var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n /**\n * AES block cipher algorithm.\n */\n var AES = C_algo.AES = BlockCipher.extend({\n _doReset: function () {\n var t;\n\n // Skip reset of nRounds has been set before and key did not change\n if (this._nRounds && this._keyPriorReset === this._key) {\n return;\n }\n\n // Shortcuts\n var key = this._keyPriorReset = this._key;\n var keyWords = key.words;\n var keySize = key.sigBytes / 4;\n\n // Compute number of rounds\n var nRounds = this._nRounds = keySize + 6;\n\n // Compute number of key schedule rows\n var ksRows = (nRounds + 1) * 4;\n\n // Compute key schedule\n var keySchedule = this._keySchedule = [];\n for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n if (ksRow < keySize) {\n keySchedule[ksRow] = keyWords[ksRow];\n } else {\n t = keySchedule[ksRow - 1];\n if (!(ksRow % keySize)) {\n // Rot word\n t = t << 8 | t >>> 24;\n\n // Sub word\n t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 0xff] << 16 | SBOX[t >>> 8 & 0xff] << 8 | SBOX[t & 0xff];\n\n // Mix Rcon\n t ^= RCON[ksRow / keySize | 0] << 24;\n } else if (keySize > 6 && ksRow % keySize == 4) {\n // Sub word\n t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 0xff] << 16 | SBOX[t >>> 8 & 0xff] << 8 | SBOX[t & 0xff];\n }\n keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n }\n }\n\n // Compute inv key schedule\n var invKeySchedule = this._invKeySchedule = [];\n for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n var ksRow = ksRows - invKsRow;\n if (invKsRow % 4) {\n var t = keySchedule[ksRow];\n } else {\n var t = keySchedule[ksRow - 4];\n }\n if (invKsRow < 4 || ksRow <= 4) {\n invKeySchedule[invKsRow] = t;\n } else {\n invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[t >>> 16 & 0xff]] ^ INV_SUB_MIX_2[SBOX[t >>> 8 & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n }\n }\n },\n encryptBlock: function (M, offset) {\n this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n },\n decryptBlock: function (M, offset) {\n // Swap 2nd and 4th rows\n var t = M[offset + 1];\n M[offset + 1] = M[offset + 3];\n M[offset + 3] = t;\n this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n // Inv swap 2nd and 4th rows\n var t = M[offset + 1];\n M[offset + 1] = M[offset + 3];\n M[offset + 3] = t;\n },\n _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n // Shortcut\n var nRounds = this._nRounds;\n\n // Get input, add round key\n var s0 = M[offset] ^ keySchedule[0];\n var s1 = M[offset + 1] ^ keySchedule[1];\n var s2 = M[offset + 2] ^ keySchedule[2];\n var s3 = M[offset + 3] ^ keySchedule[3];\n\n // Key schedule row counter\n var ksRow = 4;\n\n // Rounds\n for (var round = 1; round < nRounds; round++) {\n // Shift rows, sub bytes, mix columns, add round key\n var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[s1 >>> 16 & 0xff] ^ SUB_MIX_2[s2 >>> 8 & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[s2 >>> 16 & 0xff] ^ SUB_MIX_2[s3 >>> 8 & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[s3 >>> 16 & 0xff] ^ SUB_MIX_2[s0 >>> 8 & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[s0 >>> 16 & 0xff] ^ SUB_MIX_2[s1 >>> 8 & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n // Update state\n s0 = t0;\n s1 = t1;\n s2 = t2;\n s3 = t3;\n }\n\n // Shift rows, sub bytes, add round key\n var t0 = (SBOX[s0 >>> 24] << 24 | SBOX[s1 >>> 16 & 0xff] << 16 | SBOX[s2 >>> 8 & 0xff] << 8 | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n var t1 = (SBOX[s1 >>> 24] << 24 | SBOX[s2 >>> 16 & 0xff] << 16 | SBOX[s3 >>> 8 & 0xff] << 8 | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n var t2 = (SBOX[s2 >>> 24] << 24 | SBOX[s3 >>> 16 & 0xff] << 16 | SBOX[s0 >>> 8 & 0xff] << 8 | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n var t3 = (SBOX[s3 >>> 24] << 24 | SBOX[s0 >>> 16 & 0xff] << 16 | SBOX[s1 >>> 8 & 0xff] << 8 | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n // Set output\n M[offset] = t0;\n M[offset + 1] = t1;\n M[offset + 2] = t2;\n M[offset + 3] = t3;\n },\n keySize: 256 / 32\n });\n\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n */\n C.AES = BlockCipher._createHelper(AES);\n })();\n return CryptoJS.AES;\n });\n\n /***/\n }, /* 61 */\n /***/function (module, exports, __webpack_require__) {\n ;\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(6));\n } else {}\n })(this, function (CryptoJS) {\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n\n // Constants table\n var T = [];\n\n // Compute constants\n (function () {\n for (var i = 0; i < 64; i++) {\n T[i] = Math.abs(Math.sin(i + 1)) * 0x100000000 | 0;\n }\n })();\n\n /**\n * MD5 hash algorithm.\n */\n var MD5 = C_algo.MD5 = Hasher.extend({\n _doReset: function () {\n this._hash = new WordArray.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476]);\n },\n _doProcessBlock: function (M, offset) {\n // Swap endian\n for (var i = 0; i < 16; i++) {\n // Shortcuts\n var offset_i = offset + i;\n var M_offset_i = M[offset_i];\n M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 0x00ff00ff | (M_offset_i << 24 | M_offset_i >>> 8) & 0xff00ff00;\n }\n\n // Shortcuts\n var H = this._hash.words;\n var M_offset_0 = M[offset + 0];\n var M_offset_1 = M[offset + 1];\n var M_offset_2 = M[offset + 2];\n var M_offset_3 = M[offset + 3];\n var M_offset_4 = M[offset + 4];\n var M_offset_5 = M[offset + 5];\n var M_offset_6 = M[offset + 6];\n var M_offset_7 = M[offset + 7];\n var M_offset_8 = M[offset + 8];\n var M_offset_9 = M[offset + 9];\n var M_offset_10 = M[offset + 10];\n var M_offset_11 = M[offset + 11];\n var M_offset_12 = M[offset + 12];\n var M_offset_13 = M[offset + 13];\n var M_offset_14 = M[offset + 14];\n var M_offset_15 = M[offset + 15];\n\n // Working varialbes\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n\n // Computation\n a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n a = II(a, b, c, d, M_offset_0, 6, T[48]);\n d = II(d, a, b, c, M_offset_7, 10, T[49]);\n c = II(c, d, a, b, M_offset_14, 15, T[50]);\n b = II(b, c, d, a, M_offset_5, 21, T[51]);\n a = II(a, b, c, d, M_offset_12, 6, T[52]);\n d = II(d, a, b, c, M_offset_3, 10, T[53]);\n c = II(c, d, a, b, M_offset_10, 15, T[54]);\n b = II(b, c, d, a, M_offset_1, 21, T[55]);\n a = II(a, b, c, d, M_offset_8, 6, T[56]);\n d = II(d, a, b, c, M_offset_15, 10, T[57]);\n c = II(c, d, a, b, M_offset_6, 15, T[58]);\n b = II(b, c, d, a, M_offset_13, 21, T[59]);\n a = II(a, b, c, d, M_offset_4, 6, T[60]);\n d = II(d, a, b, c, M_offset_11, 10, T[61]);\n c = II(c, d, a, b, M_offset_2, 15, T[62]);\n b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n // Intermediate hash value\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n },\n _doFinalize: function () {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n\n // Add padding\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n var nBitsTotalL = nBitsTotal;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = (nBitsTotalH << 8 | nBitsTotalH >>> 24) & 0x00ff00ff | (nBitsTotalH << 24 | nBitsTotalH >>> 8) & 0xff00ff00;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotalL << 8 | nBitsTotalL >>> 24) & 0x00ff00ff | (nBitsTotalL << 24 | nBitsTotalL >>> 8) & 0xff00ff00;\n data.sigBytes = (dataWords.length + 1) * 4;\n\n // Hash final blocks\n this._process();\n\n // Shortcuts\n var hash = this._hash;\n var H = hash.words;\n\n // Swap endian\n for (var i = 0; i < 4; i++) {\n // Shortcut\n var H_i = H[i];\n H[i] = (H_i << 8 | H_i >>> 24) & 0x00ff00ff | (H_i << 24 | H_i >>> 8) & 0xff00ff00;\n }\n\n // Return final computed hash\n return hash;\n },\n clone: function () {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n function FF(a, b, c, d, x, s, t) {\n var n = a + (b & c | ~b & d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n function GG(a, b, c, d, x, s, t) {\n var n = a + (b & d | c & ~d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n function HH(a, b, c, d, x, s, t) {\n var n = a + (b ^ c ^ d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n function II(a, b, c, d, x, s, t) {\n var n = a + (c ^ (b | ~d)) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.MD5('message');\n * var hash = CryptoJS.MD5(wordArray);\n */\n C.MD5 = Hasher._createHelper(MD5);\n\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacMD5(message, key);\n */\n C.HmacMD5 = Hasher._createHmacHelper(MD5);\n })(Math);\n return CryptoJS.MD5;\n });\n\n /***/\n }, /* 62 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var _a;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var defaults_1 = tslib_1.__importDefault(__webpack_require__(8));\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var HttpMethods_1 = tslib_1.__importDefault(__webpack_require__(17));\n var xhrrequest_1 = tslib_1.__importDefault(__webpack_require__(15));\n var XHRStates_1 = tslib_1.__importDefault(__webpack_require__(20));\n var logger_1 = tslib_1.__importDefault(__webpack_require__(3));\n var jsonptransport_1 = __webpack_require__(29);\n var fetchrequest_1 = tslib_1.__importDefault(__webpack_require__(63));\n var HttpStatusCodes_1 = __webpack_require__(37);\n function shouldFallback(errorInfo) {\n var statusCode = errorInfo.statusCode;\n /* 400 + no code = a generic xhr onerror. Browser doesn't give us enough\n * detail to know whether it's fallback-fixable, but it may be (eg if a\n * network issue), so try just in case */\n return statusCode === 408 && !errorInfo.code || statusCode === 400 && !errorInfo.code || statusCode >= 500 && statusCode <= 504;\n }\n function getHosts(client) {\n /* If we're a connected realtime client, try the endpoint we're connected\n * to first -- but still have fallbacks, being connected is not an absolute\n * guarantee that a datacenter has free capacity to service REST requests. */\n var connection = client.connection,\n connectionHost = connection && connection.connectionManager.host;\n if (connectionHost) {\n return [connectionHost].concat(defaults_1.default.getFallbackHosts(client.options));\n }\n return defaults_1.default.getHosts(client.options);\n }\n var Http = (_a = /** @class */function () {\n function class_1(options) {\n this.checksInProgress = null;\n this.checkConnectivity = undefined;\n this.supportsAuthHeaders = false;\n this.supportsLinkHeaders = false;\n this._getHosts = getHosts;\n this.options = options || {};\n var connectivityCheckUrl = this.options.connectivityCheckUrl || defaults_1.default.connectivityCheckUrl;\n var connectivityCheckParams = this.options.connectivityCheckParams;\n var connectivityUrlIsDefault = !this.options.connectivityCheckUrl;\n if (platform_1.default.Config.xhrSupported) {\n this.supportsAuthHeaders = true;\n this.Request = function (method, rest, uri, headers, params, body, callback) {\n var req = xhrrequest_1.default.createRequest(uri, headers, params, body, XHRStates_1.default.REQ_SEND, rest && rest.options.timeouts, method);\n req.once('complete', callback);\n req.exec();\n return req;\n };\n if (this.options.disableConnectivityCheck) {\n this.checkConnectivity = function (callback) {\n callback(null, true);\n };\n } else {\n this.checkConnectivity = function (callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, '(XHRRequest)Http.checkConnectivity()', 'Sending; ' + connectivityCheckUrl);\n this.doUri(HttpMethods_1.default.Get, null, connectivityCheckUrl, null, null, connectivityCheckParams, function (err, responseText, headers, packed, statusCode) {\n var result = false;\n if (!connectivityUrlIsDefault) {\n result = !err && (0, HttpStatusCodes_1.isSuccessCode)(statusCode);\n } else {\n result = !err && (responseText === null || responseText === void 0 ? void 0 : responseText.replace(/\\n/, '')) == 'yes';\n }\n logger_1.default.logAction(logger_1.default.LOG_MICRO, '(XHRRequest)Http.checkConnectivity()', 'Result: ' + result);\n callback(null, result);\n });\n };\n }\n } else if (platform_1.default.Config.jsonpSupported) {\n this.Request = function (method, rest, uri, headers, params, body, callback) {\n var req = (0, jsonptransport_1.createRequest)(uri, headers, params, body, XHRStates_1.default.REQ_SEND, rest && rest.options.timeouts, method);\n req.once('complete', callback);\n platform_1.default.Config.nextTick(function () {\n req.exec();\n });\n return req;\n };\n if (this.options.disableConnectivityCheck) {\n this.checkConnectivity = function (callback) {\n callback(null, true);\n };\n } else {\n this.checkConnectivity = function (callback) {\n var _this = this;\n var upUrl = defaults_1.default.jsonpInternetUpUrl;\n if (this.checksInProgress) {\n this.checksInProgress.push(callback);\n return;\n }\n this.checksInProgress = [callback];\n logger_1.default.logAction(logger_1.default.LOG_MICRO, '(JSONP)Http.checkConnectivity()', 'Sending; ' + upUrl);\n var req = new jsonptransport_1.Request('isTheInternetUp', upUrl, null, null, null, XHRStates_1.default.REQ_SEND, defaults_1.default.TIMEOUTS);\n req.once('complete', function (err, response) {\n var result = !err && response;\n logger_1.default.logAction(logger_1.default.LOG_MICRO, '(JSONP)Http.checkConnectivity()', 'Result: ' + result);\n for (var i = 0; i < _this.checksInProgress.length; i++) _this.checksInProgress[i](null, result);\n _this.checksInProgress = null;\n });\n platform_1.default.Config.nextTick(function () {\n req.exec();\n });\n };\n }\n } else if (platform_1.default.Config.fetchSupported) {\n this.supportsAuthHeaders = true;\n this.Request = fetchrequest_1.default;\n this.checkConnectivity = function (callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, '(Fetch)Http.checkConnectivity()', 'Sending; ' + connectivityCheckUrl);\n this.doUri(HttpMethods_1.default.Get, null, connectivityCheckUrl, null, null, null, function (err, responseText) {\n var result = !err && (responseText === null || responseText === void 0 ? void 0 : responseText.replace(/\\n/, '')) == 'yes';\n logger_1.default.logAction(logger_1.default.LOG_MICRO, '(Fetch)Http.checkConnectivity()', 'Result: ' + result);\n callback(null, result);\n });\n };\n } else {\n this.Request = function (method, rest, uri, headers, params, body, callback) {\n callback(new errorinfo_1.default('no supported HTTP transports available', null, 400), null);\n };\n }\n }\n /* Unlike for doUri, the 'rest' param here is mandatory, as it's used to generate the hosts */\n class_1.prototype.do = function (method, rest, path, headers, body, params, callback) {\n var _this = this;\n var uriFromHost = typeof path == 'function' ? path : function (host) {\n return rest.baseUri(host) + path;\n };\n var currentFallback = rest._currentFallback;\n if (currentFallback) {\n if (currentFallback.validUntil > Utils.now()) {\n /* Use stored fallback */\n if (!this.Request) {\n callback === null || callback === void 0 ? void 0 : callback(new errorinfo_1.default('Request invoked before assigned to', null, 500));\n return;\n }\n this.Request(method, rest, uriFromHost(currentFallback.host), headers, params, body, function (err) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n // This typecast is safe because ErrnoExceptions are only thrown in NodeJS\n if (err && shouldFallback(err)) {\n /* unstore the fallback and start from the top with the default sequence */\n rest._currentFallback = null;\n _this.do(method, rest, path, headers, body, params, callback);\n return;\n }\n callback === null || callback === void 0 ? void 0 : callback.apply(void 0, tslib_1.__spreadArray([err], args, false));\n });\n return;\n } else {\n /* Fallback expired; remove it and fallthrough to normal sequence */\n rest._currentFallback = null;\n }\n }\n var hosts = getHosts(rest);\n /* if there is only one host do it */\n if (hosts.length === 1) {\n this.doUri(method, rest, uriFromHost(hosts[0]), headers, body, params, callback);\n return;\n }\n /* hosts is an array with preferred host plus at least one fallback */\n var tryAHost = function (candidateHosts, persistOnSuccess) {\n var host = candidateHosts.shift();\n _this.doUri(method, rest, uriFromHost(host), headers, body, params, function (err) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n // This typecast is safe because ErrnoExceptions are only thrown in NodeJS\n if (err && shouldFallback(err) && candidateHosts.length) {\n tryAHost(candidateHosts, true);\n return;\n }\n if (persistOnSuccess) {\n /* RSC15f */\n rest._currentFallback = {\n host: host,\n validUntil: Utils.now() + rest.options.timeouts.fallbackRetryTimeout\n };\n }\n callback === null || callback === void 0 ? void 0 : callback.apply(void 0, tslib_1.__spreadArray([err], args, false));\n });\n };\n tryAHost(hosts);\n };\n class_1.prototype.doUri = function (method, rest, uri, headers, body, params, callback) {\n if (!this.Request) {\n callback(new errorinfo_1.default('Request invoked before assigned to', null, 500));\n return;\n }\n this.Request(method, rest, uri, headers, params, body, callback);\n };\n return class_1;\n }(), _a.methods = [HttpMethods_1.default.Get, HttpMethods_1.default.Delete, HttpMethods_1.default.Post, HttpMethods_1.default.Put, HttpMethods_1.default.Patch], _a.methodsWithoutBody = [HttpMethods_1.default.Get, HttpMethods_1.default.Delete], _a.methodsWithBody = [HttpMethods_1.default.Post, HttpMethods_1.default.Put, HttpMethods_1.default.Patch], _a);\n exports.default = Http;\n\n /***/\n }, /* 63 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var errorinfo_1 = tslib_1.__importDefault(__webpack_require__(5));\n var platform_1 = tslib_1.__importDefault(__webpack_require__(0));\n var defaults_1 = tslib_1.__importDefault(__webpack_require__(8));\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var utils_1 = __webpack_require__(2);\n function isAblyError(responseBody, headers) {\n return !!headers.get('x-ably-errorcode');\n }\n function getAblyError(responseBody, headers) {\n if (isAblyError(responseBody, headers)) {\n return responseBody.error && errorinfo_1.default.fromValues(responseBody.error);\n }\n }\n function fetchRequest(method, rest, uri, headers, params, body, callback) {\n var fetchHeaders = new Headers(headers || {});\n var _method = method ? method.toUpperCase() : Utils.isEmptyArg(body) ? 'GET' : 'POST';\n var controller = new AbortController();\n var timeout = setTimeout(function () {\n controller.abort();\n callback(new errorinfo_1.default('Request timed out', null, 408));\n }, rest ? rest.options.timeouts.httpRequestTimeout : defaults_1.default.TIMEOUTS.httpRequestTimeout);\n (0, utils_1.getGlobalObject)().fetch(uri + '?' + new URLSearchParams(params || {}), {\n method: _method,\n headers: fetchHeaders,\n body: body,\n credentials: fetchHeaders.has('authorization') ? 'include' : 'same-origin'\n }).then(function (res) {\n clearTimeout(timeout);\n var contentType = res.headers.get('Content-Type');\n var prom;\n if (contentType && contentType.indexOf('application/x-msgpack') > -1) {\n prom = res.arrayBuffer();\n } else if (contentType && contentType.indexOf('application/json') > -1) {\n prom = res.json();\n } else {\n prom = res.text();\n }\n prom.then(function (body) {\n var packed = !!contentType && contentType.indexOf('application/x-msgpack') === -1;\n if (!res.ok) {\n var err = getAblyError(body, res.headers) || new errorinfo_1.default('Error response received from server: ' + res.status + ' body was: ' + platform_1.default.Config.inspect(body), null, res.status);\n callback(err, body, res.headers, packed, res.status);\n } else {\n callback(null, body, res.headers, packed, res.status);\n }\n });\n }).catch(function (err) {\n clearTimeout(timeout);\n callback(err);\n });\n }\n exports.default = fetchRequest;\n\n /***/\n }, /* 64 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var msgpack_1 = tslib_1.__importDefault(__webpack_require__(41));\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n // Workaround for salesforce lightning locker compat\n var globalObject = Utils.getGlobalObject();\n if (typeof Window === 'undefined' && typeof WorkerGlobalScope === 'undefined') {\n console.log(\"Warning: this distribution of Ably is intended for browsers. On nodejs, please use the 'ably' package on npm\");\n }\n function allowComet() {\n /* xhr requests from local files are unreliable in some browsers, such as Chrome 65 and higher -- see eg\n * https://stackoverflow.com/questions/49256429/chrome-65-unable-to-make-post-requests-from-local-files-to-flask\n * So if websockets are supported, then just forget about comet transports and use that */\n var loc = globalObject.location;\n return !globalObject.WebSocket || !loc || !loc.origin || loc.origin.indexOf('http') > -1;\n }\n var userAgent = globalObject.navigator && globalObject.navigator.userAgent.toString();\n var currentUrl = globalObject.location && globalObject.location.href;\n var Platform = {\n agent: 'browser',\n logTimestamps: true,\n userAgent: userAgent,\n currentUrl: currentUrl,\n noUpgrade: userAgent && !!userAgent.match(/MSIE\\s8\\.0/),\n binaryType: 'arraybuffer',\n WebSocket: globalObject.WebSocket,\n fetchSupported: !!globalObject.fetch,\n xhrSupported: globalObject.XMLHttpRequest && 'withCredentials' in new XMLHttpRequest(),\n jsonpSupported: typeof document !== 'undefined',\n allowComet: allowComet(),\n streamingSupported: true,\n useProtocolHeartbeats: true,\n createHmac: null,\n msgpack: msgpack_1.default,\n supportsBinary: !!globalObject.TextDecoder,\n preferBinary: false,\n ArrayBuffer: globalObject.ArrayBuffer,\n atob: globalObject.atob,\n nextTick: typeof globalObject.setImmediate !== 'undefined' ? globalObject.setImmediate.bind(globalObject) : function (f) {\n setTimeout(f, 0);\n },\n addEventListener: globalObject.addEventListener,\n inspect: JSON.stringify,\n stringByteSize: function (str) {\n /* str.length will be an underestimate for non-ascii strings. But if we're\n * in a browser too old to support TextDecoder, not much we can do. Better\n * to underestimate, so if we do go over-size, the server will reject the\n * message */\n return globalObject.TextDecoder && new globalObject.TextEncoder().encode(str).length || str.length;\n },\n TextEncoder: globalObject.TextEncoder,\n TextDecoder: globalObject.TextDecoder,\n Promise: globalObject.Promise,\n getRandomValues: function (crypto) {\n if (crypto === undefined) {\n return undefined;\n }\n return function (arr, callback) {\n crypto.getRandomValues(arr);\n if (callback) {\n callback(null);\n }\n };\n }(globalObject.crypto || msCrypto)\n };\n exports.default = Platform;\n\n /***/\n }, /* 65 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n /* WEBPACK VAR INJECTION */\n (function (global) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var Utils = tslib_1.__importStar(__webpack_require__(2));\n var test = 'ablyjs-storage-test';\n var Webstorage = /** @class */function () {\n function Webstorage() {\n /* Even just accessing the session/localStorage object can throw a\n * security exception in some circumstances with some browsers. In\n * others, calling setItem will throw. So have to check in this\n * somewhat roundabout way. (If unsupported or no global object,\n * will throw on accessing a property of undefined) */\n try {\n global.sessionStorage.setItem(test, test);\n global.sessionStorage.removeItem(test);\n this.sessionSupported = true;\n } catch (e) {\n this.sessionSupported = false;\n }\n try {\n global.localStorage.setItem(test, test);\n global.localStorage.removeItem(test);\n this.localSupported = true;\n } catch (e) {\n this.localSupported = false;\n }\n }\n Webstorage.prototype.get = function (name) {\n return this._get(name, false);\n };\n Webstorage.prototype.getSession = function (name) {\n return this._get(name, true);\n };\n Webstorage.prototype.remove = function (name) {\n return this._remove(name, false);\n };\n Webstorage.prototype.removeSession = function (name) {\n return this._remove(name, true);\n };\n Webstorage.prototype.set = function (name, value, ttl) {\n return this._set(name, value, ttl, false);\n };\n Webstorage.prototype.setSession = function (name, value, ttl) {\n return this._set(name, value, ttl, true);\n };\n Webstorage.prototype._set = function (name, value, ttl, session) {\n var wrappedValue = {\n value: value\n };\n if (ttl) {\n wrappedValue.expires = Utils.now() + ttl;\n }\n return this.storageInterface(session).setItem(name, JSON.stringify(wrappedValue));\n };\n Webstorage.prototype._get = function (name, session) {\n if (session && !this.sessionSupported) throw new Error('Session Storage not supported');\n if (!session && !this.localSupported) throw new Error('Local Storage not supported');\n var rawItem = this.storageInterface(session).getItem(name);\n if (!rawItem) return null;\n var wrappedValue = JSON.parse(rawItem);\n if (wrappedValue.expires && wrappedValue.expires < Utils.now()) {\n this.storageInterface(session).removeItem(name);\n return null;\n }\n return wrappedValue.value;\n };\n Webstorage.prototype._remove = function (name, session) {\n return this.storageInterface(session).removeItem(name);\n };\n Webstorage.prototype.storageInterface = function (session) {\n return session ? global.sessionStorage : global.localStorage;\n };\n return Webstorage;\n }();\n exports.default = new Webstorage();\n\n /* WEBPACK VAR INJECTION */\n }).call(this, __webpack_require__(12));\n\n /***/\n }, /* 66 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var tslib_1 = __webpack_require__(1);\n var TransportNames_1 = tslib_1.__importDefault(__webpack_require__(67));\n var Defaults = {\n connectivityCheckUrl: 'https://internet-up.ably-realtime.com/is-the-internet-up.txt',\n jsonpInternetUpUrl: 'https://internet-up.ably-realtime.com/is-the-internet-up-0-9.js',\n /* Order matters here: the base transport is the leftmost one in the\n * intersection of baseTransportOrder and the transports clientOption that's\n * supported. This is not quite the same as the preference order -- e.g.\n * xhr_polling is preferred to jsonp, but for browsers that support it we want\n * the base transport to be xhr_polling, not jsonp */\n defaultTransports: [TransportNames_1.default.XhrPolling, TransportNames_1.default.XhrStreaming, TransportNames_1.default.JsonP, TransportNames_1.default.WebSocket],\n baseTransportOrder: [TransportNames_1.default.XhrPolling, TransportNames_1.default.XhrStreaming, TransportNames_1.default.JsonP, TransportNames_1.default.WebSocket],\n transportPreferenceOrder: [TransportNames_1.default.JsonP, TransportNames_1.default.XhrPolling, TransportNames_1.default.XhrStreaming, TransportNames_1.default.WebSocket],\n upgradeTransports: [TransportNames_1.default.XhrStreaming, TransportNames_1.default.WebSocket]\n };\n exports.default = Defaults;\n\n /***/\n }, /* 67 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var TransportNames;\n (function (TransportNames) {\n TransportNames[\"WebSocket\"] = \"web_socket\";\n TransportNames[\"Comet\"] = \"comet\";\n TransportNames[\"XhrStreaming\"] = \"xhr_streaming\";\n TransportNames[\"XhrPolling\"] = \"xhr_polling\";\n TransportNames[\"JsonP\"] = \"jsonp\";\n })(TransportNames || (TransportNames = {}));\n exports.default = TransportNames;\n\n /***/\n }, /* 68 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n // ESM COMPAT FLAG\n __webpack_require__.r(__webpack_exports__);\n\n // EXTERNAL MODULE: ./src/platform/web/lib/transport/jsonptransport.ts\n var jsonptransport = __webpack_require__(29);\n var jsonptransport_default = /*#__PURE__*/__webpack_require__.n(jsonptransport);\n\n // EXTERNAL MODULE: ./src/common/lib/util/utils.ts\n var utils = __webpack_require__(2);\n\n // EXTERNAL MODULE: ./src/common/platform.ts\n var platform = __webpack_require__(0);\n var platform_default = /*#__PURE__*/__webpack_require__.n(platform);\n\n // EXTERNAL MODULE: ./src/common/lib/transport/comettransport.ts\n var comettransport = __webpack_require__(11);\n var comettransport_default = /*#__PURE__*/__webpack_require__.n(comettransport);\n\n // EXTERNAL MODULE: ./src/platform/web/lib/transport/xhrrequest.ts\n var xhrrequest = __webpack_require__(15);\n var xhrrequest_default = /*#__PURE__*/__webpack_require__.n(xhrrequest);\n\n // CONCATENATED MODULE: ./src/platform/web/lib/transport/xhrpollingtransport.js\n\n var xhrpollingtransport_XHRPollingTransport = function (connectionManager) {\n var shortName = 'xhr_polling';\n function XHRPollingTransport(connectionManager, auth, params) {\n params.stream = false;\n comettransport_default.a.call(this, connectionManager, auth, params);\n this.shortName = shortName;\n }\n utils[\"inherits\"](XHRPollingTransport, comettransport_default.a);\n XHRPollingTransport.isAvailable = function () {\n return platform_default.a.Config.xhrSupported && platform_default.a.Config.allowComet;\n };\n XHRPollingTransport.prototype.toString = function () {\n return 'XHRPollingTransport; uri=' + this.baseUri + '; isConnected=' + this.isConnected;\n };\n XHRPollingTransport.prototype.createRequest = function (uri, headers, params, body, requestMode) {\n return xhrrequest_default.a.createRequest(uri, headers, params, body, requestMode, this.timeouts);\n };\n if (typeof connectionManager !== 'undefined' && XHRPollingTransport.isAvailable()) {\n connectionManager.supportedTransports[shortName] = XHRPollingTransport;\n }\n return XHRPollingTransport;\n };\n\n /* harmony default export */\n var xhrpollingtransport = xhrpollingtransport_XHRPollingTransport;\n\n // CONCATENATED MODULE: ./src/platform/web/lib/transport/xhrstreamingtransport.js\n\n var xhrstreamingtransport_XHRStreamingTransport = function (connectionManager) {\n var shortName = 'xhr_streaming';\n\n /* public constructor */\n function XHRStreamingTransport(connectionManager, auth, params) {\n comettransport_default.a.call(this, connectionManager, auth, params);\n this.shortName = shortName;\n }\n utils[\"inherits\"](XHRStreamingTransport, comettransport_default.a);\n XHRStreamingTransport.isAvailable = function () {\n return platform_default.a.Config.xhrSupported && platform_default.a.Config.streamingSupported && platform_default.a.Config.allowComet;\n };\n XHRStreamingTransport.prototype.toString = function () {\n return 'XHRStreamingTransport; uri=' + this.baseUri + '; isConnected=' + this.isConnected;\n };\n XHRStreamingTransport.prototype.createRequest = function (uri, headers, params, body, requestMode) {\n return xhrrequest_default.a.createRequest(uri, headers, params, body, requestMode, this.timeouts);\n };\n if (typeof connectionManager !== 'undefined' && XHRStreamingTransport.isAvailable()) {\n connectionManager.supportedTransports[shortName] = XHRStreamingTransport;\n }\n return XHRStreamingTransport;\n };\n\n /* harmony default export */\n var xhrstreamingtransport = xhrstreamingtransport_XHRStreamingTransport;\n\n // CONCATENATED MODULE: ./src/platform/web/lib/transport/index.js\n\n /* harmony default export */\n var transport = __webpack_exports__[\"default\"] = [jsonptransport_default.a, xhrpollingtransport, xhrstreamingtransport];\n\n /***/\n }\n /******/])[\"default\"]\n );\n});","'use strict';\n\nfunction promisifyOptions(options) {\n if (typeof options == 'string') {\n options = options.indexOf(':') == -1 ? {\n token: options\n } : {\n key: options\n };\n }\n options.promises = true;\n return options;\n}\n\n/* Please note that the file imported below is only generated after running\n * the build task. */\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nvar Ably = require('./build/ably-node');\nvar RestPromise = function (options) {\n return new Ably.Rest(promisifyOptions(options));\n};\nObject.assign(RestPromise, Ably.Rest);\nvar RealtimePromise = function (options) {\n return new Ably.Realtime(promisifyOptions(options));\n};\nObject.assign(RealtimePromise, Ably.Realtime);\nmodule.exports = {\n Rest: RestPromise,\n Realtime: RealtimePromise\n};","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n var nativeCodeString = '[native code]';\n function classNames() {\n var classes = [];\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = typeof arg;\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n classes.push(arg.toString());\n continue;\n }\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n return classes.join(' ');\n }\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n};\nvar ReflectOwnKeys;\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n};\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function () {\n return defaultMaxListeners;\n },\n set: function (arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\nEventEmitter.init = function () {\n if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = type === 'error';\n var events = this._events;\n if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0) er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n if (handler === undefined) return false;\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i) ReflectApply(listeners[i], this, args);\n }\n return true;\n};\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type, listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\nEventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n};\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0) return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\nfunction _onceWrap(target, type, listener) {\n var state = {\n fired: false,\n wrapFn: undefined,\n target: target,\n type: type,\n listener: listener\n };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\nEventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n};\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === undefined) return this;\n list = events[type];\n if (list === undefined) return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else {\n delete events[type];\n if (events.removeListener) this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0) return this;\n if (position === 0) list.shift();else {\n spliceOne(list, position);\n }\n if (list.length === 1) events[type] = list[0];\n if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n }\n return this;\n};\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined) return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n};\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === undefined) return [];\n var evlistener = events[type];\n if (evlistener === undefined) return [];\n if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\nEventEmitter.listenerCount = function (emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n if (events !== undefined) {\n var evlistener = events[type];\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n return 0;\n}\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i) copy[i] = arr[i];\n return copy;\n}\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++) list[index] = list[index + 1];\n list.pop();\n}\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, {\n once: true\n });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, {\n once: true\n });\n }\n });\n}\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}","(function (name, definition) {\n if (typeof define === 'function' && define.amd) {\n // RequireJS / AMD\n define(definition);\n } else if (typeof module !== 'undefined' && module.exports) {\n // CommonJS / Node.js\n module.exports = definition();\n } else {\n // Direct include\n window.ysFixWebmDuration = definition();\n }\n})('fix-webm-duration', function () {\n /*\r\n * This is the list of possible WEBM file sections by their IDs.\r\n * Possible types: Container, Binary, Uint, Int, String, Float, Date\r\n */\n var sections = {\n 0xa45dfa3: {\n name: 'EBML',\n type: 'Container'\n },\n 0x286: {\n name: 'EBMLVersion',\n type: 'Uint'\n },\n 0x2f7: {\n name: 'EBMLReadVersion',\n type: 'Uint'\n },\n 0x2f2: {\n name: 'EBMLMaxIDLength',\n type: 'Uint'\n },\n 0x2f3: {\n name: 'EBMLMaxSizeLength',\n type: 'Uint'\n },\n 0x282: {\n name: 'DocType',\n type: 'String'\n },\n 0x287: {\n name: 'DocTypeVersion',\n type: 'Uint'\n },\n 0x285: {\n name: 'DocTypeReadVersion',\n type: 'Uint'\n },\n 0x6c: {\n name: 'Void',\n type: 'Binary'\n },\n 0x3f: {\n name: 'CRC-32',\n type: 'Binary'\n },\n 0xb538667: {\n name: 'SignatureSlot',\n type: 'Container'\n },\n 0x3e8a: {\n name: 'SignatureAlgo',\n type: 'Uint'\n },\n 0x3e9a: {\n name: 'SignatureHash',\n type: 'Uint'\n },\n 0x3ea5: {\n name: 'SignaturePublicKey',\n type: 'Binary'\n },\n 0x3eb5: {\n name: 'Signature',\n type: 'Binary'\n },\n 0x3e5b: {\n name: 'SignatureElements',\n type: 'Container'\n },\n 0x3e7b: {\n name: 'SignatureElementList',\n type: 'Container'\n },\n 0x2532: {\n name: 'SignedElement',\n type: 'Binary'\n },\n 0x8538067: {\n name: 'Segment',\n type: 'Container'\n },\n 0x14d9b74: {\n name: 'SeekHead',\n type: 'Container'\n },\n 0xdbb: {\n name: 'Seek',\n type: 'Container'\n },\n 0x13ab: {\n name: 'SeekID',\n type: 'Binary'\n },\n 0x13ac: {\n name: 'SeekPosition',\n type: 'Uint'\n },\n 0x549a966: {\n name: 'Info',\n type: 'Container'\n },\n 0x33a4: {\n name: 'SegmentUID',\n type: 'Binary'\n },\n 0x3384: {\n name: 'SegmentFilename',\n type: 'String'\n },\n 0x1cb923: {\n name: 'PrevUID',\n type: 'Binary'\n },\n 0x1c83ab: {\n name: 'PrevFilename',\n type: 'String'\n },\n 0x1eb923: {\n name: 'NextUID',\n type: 'Binary'\n },\n 0x1e83bb: {\n name: 'NextFilename',\n type: 'String'\n },\n 0x444: {\n name: 'SegmentFamily',\n type: 'Binary'\n },\n 0x2924: {\n name: 'ChapterTranslate',\n type: 'Container'\n },\n 0x29fc: {\n name: 'ChapterTranslateEditionUID',\n type: 'Uint'\n },\n 0x29bf: {\n name: 'ChapterTranslateCodec',\n type: 'Uint'\n },\n 0x29a5: {\n name: 'ChapterTranslateID',\n type: 'Binary'\n },\n 0xad7b1: {\n name: 'TimecodeScale',\n type: 'Uint'\n },\n 0x489: {\n name: 'Duration',\n type: 'Float'\n },\n 0x461: {\n name: 'DateUTC',\n type: 'Date'\n },\n 0x3ba9: {\n name: 'Title',\n type: 'String'\n },\n 0xd80: {\n name: 'MuxingApp',\n type: 'String'\n },\n 0x1741: {\n name: 'WritingApp',\n type: 'String'\n },\n // 0xf43b675: { name: 'Cluster', type: 'Container' },\n 0x67: {\n name: 'Timecode',\n type: 'Uint'\n },\n 0x1854: {\n name: 'SilentTracks',\n type: 'Container'\n },\n 0x18d7: {\n name: 'SilentTrackNumber',\n type: 'Uint'\n },\n 0x27: {\n name: 'Position',\n type: 'Uint'\n },\n 0x2b: {\n name: 'PrevSize',\n type: 'Uint'\n },\n 0x23: {\n name: 'SimpleBlock',\n type: 'Binary'\n },\n 0x20: {\n name: 'BlockGroup',\n type: 'Container'\n },\n 0x21: {\n name: 'Block',\n type: 'Binary'\n },\n 0x22: {\n name: 'BlockVirtual',\n type: 'Binary'\n },\n 0x35a1: {\n name: 'BlockAdditions',\n type: 'Container'\n },\n 0x26: {\n name: 'BlockMore',\n type: 'Container'\n },\n 0x6e: {\n name: 'BlockAddID',\n type: 'Uint'\n },\n 0x25: {\n name: 'BlockAdditional',\n type: 'Binary'\n },\n 0x1b: {\n name: 'BlockDuration',\n type: 'Uint'\n },\n 0x7a: {\n name: 'ReferencePriority',\n type: 'Uint'\n },\n 0x7b: {\n name: 'ReferenceBlock',\n type: 'Int'\n },\n 0x7d: {\n name: 'ReferenceVirtual',\n type: 'Int'\n },\n 0x24: {\n name: 'CodecState',\n type: 'Binary'\n },\n 0x35a2: {\n name: 'DiscardPadding',\n type: 'Int'\n },\n 0xe: {\n name: 'Slices',\n type: 'Container'\n },\n 0x68: {\n name: 'TimeSlice',\n type: 'Container'\n },\n 0x4c: {\n name: 'LaceNumber',\n type: 'Uint'\n },\n 0x4d: {\n name: 'FrameNumber',\n type: 'Uint'\n },\n 0x4b: {\n name: 'BlockAdditionID',\n type: 'Uint'\n },\n 0x4e: {\n name: 'Delay',\n type: 'Uint'\n },\n 0x4f: {\n name: 'SliceDuration',\n type: 'Uint'\n },\n 0x48: {\n name: 'ReferenceFrame',\n type: 'Container'\n },\n 0x49: {\n name: 'ReferenceOffset',\n type: 'Uint'\n },\n 0x4a: {\n name: 'ReferenceTimeCode',\n type: 'Uint'\n },\n 0x2f: {\n name: 'EncryptedBlock',\n type: 'Binary'\n },\n 0x654ae6b: {\n name: 'Tracks',\n type: 'Container'\n },\n 0x2e: {\n name: 'TrackEntry',\n type: 'Container'\n },\n 0x57: {\n name: 'TrackNumber',\n type: 'Uint'\n },\n 0x33c5: {\n name: 'TrackUID',\n type: 'Uint'\n },\n 0x3: {\n name: 'TrackType',\n type: 'Uint'\n },\n 0x39: {\n name: 'FlagEnabled',\n type: 'Uint'\n },\n 0x8: {\n name: 'FlagDefault',\n type: 'Uint'\n },\n 0x15aa: {\n name: 'FlagForced',\n type: 'Uint'\n },\n 0x1c: {\n name: 'FlagLacing',\n type: 'Uint'\n },\n 0x2de7: {\n name: 'MinCache',\n type: 'Uint'\n },\n 0x2df8: {\n name: 'MaxCache',\n type: 'Uint'\n },\n 0x3e383: {\n name: 'DefaultDuration',\n type: 'Uint'\n },\n 0x34e7a: {\n name: 'DefaultDecodedFieldDuration',\n type: 'Uint'\n },\n 0x3314f: {\n name: 'TrackTimecodeScale',\n type: 'Float'\n },\n 0x137f: {\n name: 'TrackOffset',\n type: 'Int'\n },\n 0x15ee: {\n name: 'MaxBlockAdditionID',\n type: 'Uint'\n },\n 0x136e: {\n name: 'Name',\n type: 'String'\n },\n 0x2b59c: {\n name: 'Language',\n type: 'String'\n },\n 0x6: {\n name: 'CodecID',\n type: 'String'\n },\n 0x23a2: {\n name: 'CodecPrivate',\n type: 'Binary'\n },\n 0x58688: {\n name: 'CodecName',\n type: 'String'\n },\n 0x3446: {\n name: 'AttachmentLink',\n type: 'Uint'\n },\n 0x1a9697: {\n name: 'CodecSettings',\n type: 'String'\n },\n 0x1b4040: {\n name: 'CodecInfoURL',\n type: 'String'\n },\n 0x6b240: {\n name: 'CodecDownloadURL',\n type: 'String'\n },\n 0x2a: {\n name: 'CodecDecodeAll',\n type: 'Uint'\n },\n 0x2fab: {\n name: 'TrackOverlay',\n type: 'Uint'\n },\n 0x16aa: {\n name: 'CodecDelay',\n type: 'Uint'\n },\n 0x16bb: {\n name: 'SeekPreRoll',\n type: 'Uint'\n },\n 0x2624: {\n name: 'TrackTranslate',\n type: 'Container'\n },\n 0x26fc: {\n name: 'TrackTranslateEditionUID',\n type: 'Uint'\n },\n 0x26bf: {\n name: 'TrackTranslateCodec',\n type: 'Uint'\n },\n 0x26a5: {\n name: 'TrackTranslateTrackID',\n type: 'Binary'\n },\n 0x60: {\n name: 'Video',\n type: 'Container'\n },\n 0x1a: {\n name: 'FlagInterlaced',\n type: 'Uint'\n },\n 0x13b8: {\n name: 'StereoMode',\n type: 'Uint'\n },\n 0x13c0: {\n name: 'AlphaMode',\n type: 'Uint'\n },\n 0x13b9: {\n name: 'OldStereoMode',\n type: 'Uint'\n },\n 0x30: {\n name: 'PixelWidth',\n type: 'Uint'\n },\n 0x3a: {\n name: 'PixelHeight',\n type: 'Uint'\n },\n 0x14aa: {\n name: 'PixelCropBottom',\n type: 'Uint'\n },\n 0x14bb: {\n name: 'PixelCropTop',\n type: 'Uint'\n },\n 0x14cc: {\n name: 'PixelCropLeft',\n type: 'Uint'\n },\n 0x14dd: {\n name: 'PixelCropRight',\n type: 'Uint'\n },\n 0x14b0: {\n name: 'DisplayWidth',\n type: 'Uint'\n },\n 0x14ba: {\n name: 'DisplayHeight',\n type: 'Uint'\n },\n 0x14b2: {\n name: 'DisplayUnit',\n type: 'Uint'\n },\n 0x14b3: {\n name: 'AspectRatioType',\n type: 'Uint'\n },\n 0xeb524: {\n name: 'ColourSpace',\n type: 'Binary'\n },\n 0xfb523: {\n name: 'GammaValue',\n type: 'Float'\n },\n 0x383e3: {\n name: 'FrameRate',\n type: 'Float'\n },\n 0x61: {\n name: 'Audio',\n type: 'Container'\n },\n 0x35: {\n name: 'SamplingFrequency',\n type: 'Float'\n },\n 0x38b5: {\n name: 'OutputSamplingFrequency',\n type: 'Float'\n },\n 0x1f: {\n name: 'Channels',\n type: 'Uint'\n },\n 0x3d7b: {\n name: 'ChannelPositions',\n type: 'Binary'\n },\n 0x2264: {\n name: 'BitDepth',\n type: 'Uint'\n },\n 0x62: {\n name: 'TrackOperation',\n type: 'Container'\n },\n 0x63: {\n name: 'TrackCombinePlanes',\n type: 'Container'\n },\n 0x64: {\n name: 'TrackPlane',\n type: 'Container'\n },\n 0x65: {\n name: 'TrackPlaneUID',\n type: 'Uint'\n },\n 0x66: {\n name: 'TrackPlaneType',\n type: 'Uint'\n },\n 0x69: {\n name: 'TrackJoinBlocks',\n type: 'Container'\n },\n 0x6d: {\n name: 'TrackJoinUID',\n type: 'Uint'\n },\n 0x40: {\n name: 'TrickTrackUID',\n type: 'Uint'\n },\n 0x41: {\n name: 'TrickTrackSegmentUID',\n type: 'Binary'\n },\n 0x46: {\n name: 'TrickTrackFlag',\n type: 'Uint'\n },\n 0x47: {\n name: 'TrickMasterTrackUID',\n type: 'Uint'\n },\n 0x44: {\n name: 'TrickMasterTrackSegmentUID',\n type: 'Binary'\n },\n 0x2d80: {\n name: 'ContentEncodings',\n type: 'Container'\n },\n 0x2240: {\n name: 'ContentEncoding',\n type: 'Container'\n },\n 0x1031: {\n name: 'ContentEncodingOrder',\n type: 'Uint'\n },\n 0x1032: {\n name: 'ContentEncodingScope',\n type: 'Uint'\n },\n 0x1033: {\n name: 'ContentEncodingType',\n type: 'Uint'\n },\n 0x1034: {\n name: 'ContentCompression',\n type: 'Container'\n },\n 0x254: {\n name: 'ContentCompAlgo',\n type: 'Uint'\n },\n 0x255: {\n name: 'ContentCompSettings',\n type: 'Binary'\n },\n 0x1035: {\n name: 'ContentEncryption',\n type: 'Container'\n },\n 0x7e1: {\n name: 'ContentEncAlgo',\n type: 'Uint'\n },\n 0x7e2: {\n name: 'ContentEncKeyID',\n type: 'Binary'\n },\n 0x7e3: {\n name: 'ContentSignature',\n type: 'Binary'\n },\n 0x7e4: {\n name: 'ContentSigKeyID',\n type: 'Binary'\n },\n 0x7e5: {\n name: 'ContentSigAlgo',\n type: 'Uint'\n },\n 0x7e6: {\n name: 'ContentSigHashAlgo',\n type: 'Uint'\n },\n 0xc53bb6b: {\n name: 'Cues',\n type: 'Container'\n },\n 0x3b: {\n name: 'CuePoint',\n type: 'Container'\n },\n 0x33: {\n name: 'CueTime',\n type: 'Uint'\n },\n 0x37: {\n name: 'CueTrackPositions',\n type: 'Container'\n },\n 0x77: {\n name: 'CueTrack',\n type: 'Uint'\n },\n 0x71: {\n name: 'CueClusterPosition',\n type: 'Uint'\n },\n 0x70: {\n name: 'CueRelativePosition',\n type: 'Uint'\n },\n 0x32: {\n name: 'CueDuration',\n type: 'Uint'\n },\n 0x1378: {\n name: 'CueBlockNumber',\n type: 'Uint'\n },\n 0x6a: {\n name: 'CueCodecState',\n type: 'Uint'\n },\n 0x5b: {\n name: 'CueReference',\n type: 'Container'\n },\n 0x16: {\n name: 'CueRefTime',\n type: 'Uint'\n },\n 0x17: {\n name: 'CueRefCluster',\n type: 'Uint'\n },\n 0x135f: {\n name: 'CueRefNumber',\n type: 'Uint'\n },\n 0x6b: {\n name: 'CueRefCodecState',\n type: 'Uint'\n },\n 0x941a469: {\n name: 'Attachments',\n type: 'Container'\n },\n 0x21a7: {\n name: 'AttachedFile',\n type: 'Container'\n },\n 0x67e: {\n name: 'FileDescription',\n type: 'String'\n },\n 0x66e: {\n name: 'FileName',\n type: 'String'\n },\n 0x660: {\n name: 'FileMimeType',\n type: 'String'\n },\n 0x65c: {\n name: 'FileData',\n type: 'Binary'\n },\n 0x6ae: {\n name: 'FileUID',\n type: 'Uint'\n },\n 0x675: {\n name: 'FileReferral',\n type: 'Binary'\n },\n 0x661: {\n name: 'FileUsedStartTime',\n type: 'Uint'\n },\n 0x662: {\n name: 'FileUsedEndTime',\n type: 'Uint'\n },\n 0x43a770: {\n name: 'Chapters',\n type: 'Container'\n },\n 0x5b9: {\n name: 'EditionEntry',\n type: 'Container'\n },\n 0x5bc: {\n name: 'EditionUID',\n type: 'Uint'\n },\n 0x5bd: {\n name: 'EditionFlagHidden',\n type: 'Uint'\n },\n 0x5db: {\n name: 'EditionFlagDefault',\n type: 'Uint'\n },\n 0x5dd: {\n name: 'EditionFlagOrdered',\n type: 'Uint'\n },\n 0x36: {\n name: 'ChapterAtom',\n type: 'Container'\n },\n 0x33c4: {\n name: 'ChapterUID',\n type: 'Uint'\n },\n 0x1654: {\n name: 'ChapterStringUID',\n type: 'String'\n },\n 0x11: {\n name: 'ChapterTimeStart',\n type: 'Uint'\n },\n 0x12: {\n name: 'ChapterTimeEnd',\n type: 'Uint'\n },\n 0x18: {\n name: 'ChapterFlagHidden',\n type: 'Uint'\n },\n 0x598: {\n name: 'ChapterFlagEnabled',\n type: 'Uint'\n },\n 0x2e67: {\n name: 'ChapterSegmentUID',\n type: 'Binary'\n },\n 0x2ebc: {\n name: 'ChapterSegmentEditionUID',\n type: 'Uint'\n },\n 0x23c3: {\n name: 'ChapterPhysicalEquiv',\n type: 'Uint'\n },\n 0xf: {\n name: 'ChapterTrack',\n type: 'Container'\n },\n 0x9: {\n name: 'ChapterTrackNumber',\n type: 'Uint'\n },\n 0x0: {\n name: 'ChapterDisplay',\n type: 'Container'\n },\n 0x5: {\n name: 'ChapString',\n type: 'String'\n },\n 0x37c: {\n name: 'ChapLanguage',\n type: 'String'\n },\n 0x37e: {\n name: 'ChapCountry',\n type: 'String'\n },\n 0x2944: {\n name: 'ChapProcess',\n type: 'Container'\n },\n 0x2955: {\n name: 'ChapProcessCodecID',\n type: 'Uint'\n },\n 0x50d: {\n name: 'ChapProcessPrivate',\n type: 'Binary'\n },\n 0x2911: {\n name: 'ChapProcessCommand',\n type: 'Container'\n },\n 0x2922: {\n name: 'ChapProcessTime',\n type: 'Uint'\n },\n 0x2933: {\n name: 'ChapProcessData',\n type: 'Binary'\n },\n 0x254c367: {\n name: 'Tags',\n type: 'Container'\n },\n 0x3373: {\n name: 'Tag',\n type: 'Container'\n },\n 0x23c0: {\n name: 'Targets',\n type: 'Container'\n },\n 0x28ca: {\n name: 'TargetTypeValue',\n type: 'Uint'\n },\n 0x23ca: {\n name: 'TargetType',\n type: 'String'\n },\n 0x23c5: {\n name: 'TagTrackUID',\n type: 'Uint'\n },\n 0x23c9: {\n name: 'TagEditionUID',\n type: 'Uint'\n },\n 0x23c4: {\n name: 'TagChapterUID',\n type: 'Uint'\n },\n 0x23c6: {\n name: 'TagAttachmentUID',\n type: 'Uint'\n },\n 0x27c8: {\n name: 'SimpleTag',\n type: 'Container'\n },\n 0x5a3: {\n name: 'TagName',\n type: 'String'\n },\n 0x47a: {\n name: 'TagLanguage',\n type: 'String'\n },\n 0x484: {\n name: 'TagDefault',\n type: 'Uint'\n },\n 0x487: {\n name: 'TagString',\n type: 'String'\n },\n 0x485: {\n name: 'TagBinary',\n type: 'Binary'\n }\n };\n function doInherit(newClass, baseClass) {\n newClass.prototype = Object.create(baseClass.prototype);\n newClass.prototype.constructor = newClass;\n }\n function WebmBase(name, type) {\n this.name = name || 'Unknown';\n this.type = type || 'Unknown';\n }\n WebmBase.prototype.updateBySource = function () {};\n WebmBase.prototype.setSource = function (source) {\n this.source = source;\n this.updateBySource();\n };\n WebmBase.prototype.updateByData = function () {};\n WebmBase.prototype.setData = function (data) {\n this.data = data;\n this.updateByData();\n };\n function WebmUint(name, type) {\n WebmBase.call(this, name, type || 'Uint');\n }\n doInherit(WebmUint, WebmBase);\n function padHex(hex) {\n return hex.length % 2 === 1 ? '0' + hex : hex;\n }\n WebmUint.prototype.updateBySource = function () {\n // use hex representation of a number instead of number value\n this.data = '';\n for (var i = 0; i < this.source.length; i++) {\n var hex = this.source[i].toString(16);\n this.data += padHex(hex);\n }\n };\n WebmUint.prototype.updateByData = function () {\n var length = this.data.length / 2;\n this.source = new Uint8Array(length);\n for (var i = 0; i < length; i++) {\n var hex = this.data.substr(i * 2, 2);\n this.source[i] = parseInt(hex, 16);\n }\n };\n WebmUint.prototype.getValue = function () {\n return parseInt(this.data, 16);\n };\n WebmUint.prototype.setValue = function (value) {\n this.setData(padHex(value.toString(16)));\n };\n function WebmFloat(name, type) {\n WebmBase.call(this, name, type || 'Float');\n }\n doInherit(WebmFloat, WebmBase);\n WebmFloat.prototype.getFloatArrayType = function () {\n return this.source && this.source.length === 4 ? Float32Array : Float64Array;\n };\n WebmFloat.prototype.updateBySource = function () {\n var byteArray = this.source.reverse();\n var floatArrayType = this.getFloatArrayType();\n var floatArray = new floatArrayType(byteArray.buffer);\n this.data = floatArray[0];\n };\n WebmFloat.prototype.updateByData = function () {\n var floatArrayType = this.getFloatArrayType();\n var floatArray = new floatArrayType([this.data]);\n var byteArray = new Uint8Array(floatArray.buffer);\n this.source = byteArray.reverse();\n };\n WebmFloat.prototype.getValue = function () {\n return this.data;\n };\n WebmFloat.prototype.setValue = function (value) {\n this.setData(value);\n };\n function WebmContainer(name, type) {\n WebmBase.call(this, name, type || 'Container');\n }\n doInherit(WebmContainer, WebmBase);\n WebmContainer.prototype.readByte = function () {\n return this.source[this.offset++];\n };\n WebmContainer.prototype.readUint = function () {\n var firstByte = this.readByte();\n var bytes = 8 - firstByte.toString(2).length;\n var value = firstByte - (1 << 7 - bytes);\n for (var i = 0; i < bytes; i++) {\n // don't use bit operators to support x86\n value *= 256;\n value += this.readByte();\n }\n return value;\n };\n WebmContainer.prototype.updateBySource = function () {\n this.data = [];\n for (this.offset = 0; this.offset < this.source.length; this.offset = end) {\n var id = this.readUint();\n var len = this.readUint();\n var end = Math.min(this.offset + len, this.source.length);\n var data = this.source.slice(this.offset, end);\n var info = sections[id] || {\n name: 'Unknown',\n type: 'Unknown'\n };\n var ctr = WebmBase;\n switch (info.type) {\n case 'Container':\n ctr = WebmContainer;\n break;\n case 'Uint':\n ctr = WebmUint;\n break;\n case 'Float':\n ctr = WebmFloat;\n break;\n }\n var section = new ctr(info.name, info.type);\n section.setSource(data);\n this.data.push({\n id: id,\n idHex: id.toString(16),\n data: section\n });\n }\n };\n WebmContainer.prototype.writeUint = function (x, draft) {\n for (var bytes = 1, flag = 0x80; x >= flag && bytes < 8; bytes++, flag *= 0x80) {}\n if (!draft) {\n var value = flag + x;\n for (var i = bytes - 1; i >= 0; i--) {\n // don't use bit operators to support x86\n var c = value % 256;\n this.source[this.offset + i] = c;\n value = (value - c) / 256;\n }\n }\n this.offset += bytes;\n };\n WebmContainer.prototype.writeSections = function (draft) {\n this.offset = 0;\n for (var i = 0; i < this.data.length; i++) {\n var section = this.data[i],\n content = section.data.source,\n contentLength = content.length;\n this.writeUint(section.id, draft);\n this.writeUint(contentLength, draft);\n if (!draft) {\n this.source.set(content, this.offset);\n }\n this.offset += contentLength;\n }\n return this.offset;\n };\n WebmContainer.prototype.updateByData = function () {\n // run without accessing this.source to determine total length - need to know it to create Uint8Array\n var length = this.writeSections('draft');\n this.source = new Uint8Array(length);\n // now really write data\n this.writeSections();\n };\n WebmContainer.prototype.getSectionById = function (id) {\n for (var i = 0; i < this.data.length; i++) {\n var section = this.data[i];\n if (section.id === id) {\n return section.data;\n }\n }\n return null;\n };\n function WebmFile(source) {\n WebmContainer.call(this, 'File', 'File');\n this.setSource(source);\n }\n doInherit(WebmFile, WebmContainer);\n WebmFile.prototype.fixDuration = function (duration, options) {\n var logger = options && options.logger;\n if (logger === undefined) {\n logger = function (message) {\n console.log(message);\n };\n } else if (!logger) {\n logger = function () {};\n }\n var segmentSection = this.getSectionById(0x8538067);\n if (!segmentSection) {\n logger('[fix-webm-duration] Segment section is missing');\n return false;\n }\n var infoSection = segmentSection.getSectionById(0x549a966);\n if (!infoSection) {\n logger('[fix-webm-duration] Info section is missing');\n return false;\n }\n var timeScaleSection = infoSection.getSectionById(0xad7b1);\n if (!timeScaleSection) {\n logger('[fix-webm-duration] TimecodeScale section is missing');\n return false;\n }\n var durationSection = infoSection.getSectionById(0x489);\n if (durationSection) {\n if (durationSection.getValue() <= 0) {\n logger('[fix-webm-duration] Duration section is present, but the value is empty');\n durationSection.setValue(duration);\n } else {\n logger('[fix-webm-duration] Duration section is present');\n return false;\n }\n } else {\n logger('[fix-webm-duration] Duration section is missing');\n // append Duration section\n durationSection = new WebmFloat('Duration', 'Float');\n durationSection.setValue(duration);\n infoSection.data.push({\n id: 0x489,\n data: durationSection\n });\n }\n\n // set default time scale to 1 millisecond (1000000 nanoseconds)\n timeScaleSection.setValue(1000000);\n infoSection.updateByData();\n segmentSection.updateByData();\n this.updateByData();\n return true;\n };\n WebmFile.prototype.toBlob = function (mimeType) {\n return new Blob([this.source.buffer], {\n type: mimeType || 'video/webm'\n });\n };\n function fixWebmDuration(blob, duration, callback, options) {\n // The callback may be omitted - then the third argument is options\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n if (!callback) {\n return new Promise(function (resolve) {\n fixWebmDuration(blob, duration, resolve, options);\n });\n }\n try {\n var reader = new FileReader();\n reader.onloadend = function () {\n try {\n var file = new WebmFile(new Uint8Array(reader.result));\n if (file.fixDuration(duration, options)) {\n blob = file.toBlob(blob.type);\n }\n } catch (ex) {\n // ignore\n }\n callback(blob);\n };\n reader.readAsArrayBuffer(blob);\n } catch (ex) {\n callback(blob);\n }\n }\n\n // Support AMD import default\n fixWebmDuration.default = fixWebmDuration;\n return fixWebmDuration;\n});","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n var keys = getOwnPropertyNames(sourceComponent);\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n return targetComponent;\n}\nmodule.exports = hoistNonReactStatics;","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n default:\n return u;\n }\n }\n case d:\n return u;\n }\n }\n}\nfunction A(a) {\n return z(a) === m;\n}\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\nexports.isConcurrentMode = A;\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\nexports.isFragment = function (a) {\n return z(a) === e;\n};\nexports.isLazy = function (a) {\n return z(a) === t;\n};\nexports.isMemo = function (a) {\n return z(a) === r;\n};\nexports.isPortal = function (a) {\n return z(a) === d;\n};\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\nexports.typeOf = z;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = function () {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}();\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0:\n return func.call(thisArg);\n case 1:\n return func.call(thisArg, args[0]);\n case 2:\n return func.call(thisArg, args[0], args[1]);\n case 3:\n return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function (value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = function () {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? 'Symbol(src)_1.' + uid : '';\n}();\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\nvar defineProperty = function () {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}();\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = function () {\n function object() {}\n return function (proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object();\n object.prototype = undefined;\n return result;\n };\n}();\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash(),\n 'map': new (Map || ListCache)(),\n 'string': new Hash()\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache();\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == 'offset' || key == 'parent') ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') ||\n // Skip index properties.\n isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if (value !== undefined && !eq(object[key], value) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function (srcValue, key) {\n stack || (stack = new Stack());\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n } else {\n var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + '', object, source, stack) : undefined;\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer ? customizer(objValue, srcValue, key + '', object, source, stack) : undefined;\n var isCommon = newValue === undefined;\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n } else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n } else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n } else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n } else {\n newValue = [];\n }\n } else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n } else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n } else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function (func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index = -1,\n length = props.length;\n while (++index < length) {\n var key = props[index];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function (object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n customizer = assigner.length > 3 && typeof customizer == 'function' ? (length--, customizer) : undefined;\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function (object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return typeof object.constructor == 'function' && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number' ? isArrayLike(object) && isIndex(index, object.length) : type == 'string' && index in object) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? func.length - 1 : start, 0);\n return function () {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n if (key == '__proto__') {\n return;\n }\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n return function () {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return func + '';\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || value !== value && other !== other;\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function () {\n return arguments;\n}()) ? baseIsArguments : function (value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function (object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function () {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\nmodule.exports = merge;","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));","//! moment-timezone.js\n//! version : 0.5.40\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n \"use strict\";\n\n /*global define*/\n if (typeof module === 'object' && module.exports) {\n module.exports = factory(require('moment')); // Node\n } else if (typeof define === 'function' && define.amd) {\n define(['moment'], factory); // AMD\n } else {\n factory(root.moment); // Browser\n }\n})(this, function (moment) {\n \"use strict\";\n\n // Resolves es6 module loading issue\n if (moment.version === undefined && moment.default) {\n moment = moment.default;\n }\n\n // Do not load moment-timezone a second time.\n // if (moment.tz !== undefined) {\n // \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n // \treturn moment;\n // }\n\n var VERSION = \"0.5.40\",\n zones = {},\n links = {},\n countries = {},\n names = {},\n guesses = {},\n cachedGuess;\n if (!moment || typeof moment.version !== 'string') {\n logError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n }\n var momentVersion = moment.version.split('.'),\n major = +momentVersion[0],\n minor = +momentVersion[1];\n\n // Moment.js version check\n if (major < 2 || major === 2 && minor < 6) {\n logError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n }\n\n /************************************\n \tUnpacking\n ************************************/\n\n function charCodeToInt(charCode) {\n if (charCode > 96) {\n return charCode - 87;\n } else if (charCode > 64) {\n return charCode - 29;\n }\n return charCode - 48;\n }\n function unpackBase60(string) {\n var i = 0,\n parts = string.split('.'),\n whole = parts[0],\n fractional = parts[1] || '',\n multiplier = 1,\n num,\n out = 0,\n sign = 1;\n\n // handle negative numbers\n if (string.charCodeAt(0) === 45) {\n i = 1;\n sign = -1;\n }\n\n // handle digits before the decimal\n for (i; i < whole.length; i++) {\n num = charCodeToInt(whole.charCodeAt(i));\n out = 60 * out + num;\n }\n\n // handle digits after the decimal\n for (i = 0; i < fractional.length; i++) {\n multiplier = multiplier / 60;\n num = charCodeToInt(fractional.charCodeAt(i));\n out += num * multiplier;\n }\n return out * sign;\n }\n function arrayToInt(array) {\n for (var i = 0; i < array.length; i++) {\n array[i] = unpackBase60(array[i]);\n }\n }\n function intToUntil(array, length) {\n for (var i = 0; i < length; i++) {\n array[i] = Math.round((array[i - 1] || 0) + array[i] * 60000); // minutes to milliseconds\n }\n\n array[length - 1] = Infinity;\n }\n function mapIndices(source, indices) {\n var out = [],\n i;\n for (i = 0; i < indices.length; i++) {\n out[i] = source[indices[i]];\n }\n return out;\n }\n function unpack(string) {\n var data = string.split('|'),\n offsets = data[2].split(' '),\n indices = data[3].split(''),\n untils = data[4].split(' ');\n arrayToInt(offsets);\n arrayToInt(indices);\n arrayToInt(untils);\n intToUntil(untils, indices.length);\n return {\n name: data[0],\n abbrs: mapIndices(data[1].split(' '), indices),\n offsets: mapIndices(offsets, indices),\n untils: untils,\n population: data[5] | 0\n };\n }\n\n /************************************\n \tZone object\n ************************************/\n\n function Zone(packedString) {\n if (packedString) {\n this._set(unpack(packedString));\n }\n }\n Zone.prototype = {\n _set: function (unpacked) {\n this.name = unpacked.name;\n this.abbrs = unpacked.abbrs;\n this.untils = unpacked.untils;\n this.offsets = unpacked.offsets;\n this.population = unpacked.population;\n },\n _index: function (timestamp) {\n var target = +timestamp,\n untils = this.untils,\n i;\n for (i = 0; i < untils.length; i++) {\n if (target < untils[i]) {\n return i;\n }\n }\n },\n countries: function () {\n var zone_name = this.name;\n return Object.keys(countries).filter(function (country_code) {\n return countries[country_code].zones.indexOf(zone_name) !== -1;\n });\n },\n parse: function (timestamp) {\n var target = +timestamp,\n offsets = this.offsets,\n untils = this.untils,\n max = untils.length - 1,\n offset,\n offsetNext,\n offsetPrev,\n i;\n for (i = 0; i < max; i++) {\n offset = offsets[i];\n offsetNext = offsets[i + 1];\n offsetPrev = offsets[i ? i - 1 : i];\n if (offset < offsetNext && tz.moveAmbiguousForward) {\n offset = offsetNext;\n } else if (offset > offsetPrev && tz.moveInvalidForward) {\n offset = offsetPrev;\n }\n if (target < untils[i] - offset * 60000) {\n return offsets[i];\n }\n }\n return offsets[max];\n },\n abbr: function (mom) {\n return this.abbrs[this._index(mom)];\n },\n offset: function (mom) {\n logError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n return this.offsets[this._index(mom)];\n },\n utcOffset: function (mom) {\n return this.offsets[this._index(mom)];\n }\n };\n\n /************************************\n \tCountry object\n ************************************/\n\n function Country(country_name, zone_names) {\n this.name = country_name;\n this.zones = zone_names;\n }\n\n /************************************\n \tCurrent Timezone\n ************************************/\n\n function OffsetAt(at) {\n var timeString = at.toTimeString();\n var abbr = timeString.match(/\\([a-z ]+\\)/i);\n if (abbr && abbr[0]) {\n // 17:56:31 GMT-0600 (CST)\n // 17:56:31 GMT-0600 (Central Standard Time)\n abbr = abbr[0].match(/[A-Z]/g);\n abbr = abbr ? abbr.join('') : undefined;\n } else {\n // 17:56:31 CST\n // 17:56:31 GMT+0800 (台北標準時間)\n abbr = timeString.match(/[A-Z]{3,5}/g);\n abbr = abbr ? abbr[0] : undefined;\n }\n if (abbr === 'GMT') {\n abbr = undefined;\n }\n this.at = +at;\n this.abbr = abbr;\n this.offset = at.getTimezoneOffset();\n }\n function ZoneScore(zone) {\n this.zone = zone;\n this.offsetScore = 0;\n this.abbrScore = 0;\n }\n ZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n this.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n if (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n this.abbrScore++;\n }\n };\n function findChange(low, high) {\n var mid, diff;\n while (diff = ((high.at - low.at) / 12e4 | 0) * 6e4) {\n mid = new OffsetAt(new Date(low.at + diff));\n if (mid.offset === low.offset) {\n low = mid;\n } else {\n high = mid;\n }\n }\n return low;\n }\n function userOffsets() {\n var startYear = new Date().getFullYear() - 2,\n last = new OffsetAt(new Date(startYear, 0, 1)),\n offsets = [last],\n change,\n next,\n i;\n for (i = 1; i < 48; i++) {\n next = new OffsetAt(new Date(startYear, i, 1));\n if (next.offset !== last.offset) {\n change = findChange(last, next);\n offsets.push(change);\n offsets.push(new OffsetAt(new Date(change.at + 6e4)));\n }\n last = next;\n }\n for (i = 0; i < 4; i++) {\n offsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n offsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n }\n return offsets;\n }\n function sortZoneScores(a, b) {\n if (a.offsetScore !== b.offsetScore) {\n return a.offsetScore - b.offsetScore;\n }\n if (a.abbrScore !== b.abbrScore) {\n return a.abbrScore - b.abbrScore;\n }\n if (a.zone.population !== b.zone.population) {\n return b.zone.population - a.zone.population;\n }\n return b.zone.name.localeCompare(a.zone.name);\n }\n function addToGuesses(name, offsets) {\n var i, offset;\n arrayToInt(offsets);\n for (i = 0; i < offsets.length; i++) {\n offset = offsets[i];\n guesses[offset] = guesses[offset] || {};\n guesses[offset][name] = true;\n }\n }\n function guessesForUserOffsets(offsets) {\n var offsetsLength = offsets.length,\n filteredGuesses = {},\n out = [],\n i,\n j,\n guessesOffset;\n for (i = 0; i < offsetsLength; i++) {\n guessesOffset = guesses[offsets[i].offset] || {};\n for (j in guessesOffset) {\n if (guessesOffset.hasOwnProperty(j)) {\n filteredGuesses[j] = true;\n }\n }\n }\n for (i in filteredGuesses) {\n if (filteredGuesses.hasOwnProperty(i)) {\n out.push(names[i]);\n }\n }\n return out;\n }\n function rebuildGuess() {\n // use Intl API when available and returning valid time zone\n try {\n var intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n if (intlName && intlName.length > 3) {\n var name = names[normalizeName(intlName)];\n if (name) {\n return name;\n }\n logError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n }\n } catch (e) {\n // Intl unavailable, fall back to manual guessing.\n }\n var offsets = userOffsets(),\n offsetsLength = offsets.length,\n guesses = guessesForUserOffsets(offsets),\n zoneScores = [],\n zoneScore,\n i,\n j;\n for (i = 0; i < guesses.length; i++) {\n zoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n for (j = 0; j < offsetsLength; j++) {\n zoneScore.scoreOffsetAt(offsets[j]);\n }\n zoneScores.push(zoneScore);\n }\n zoneScores.sort(sortZoneScores);\n return zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n }\n function guess(ignoreCache) {\n if (!cachedGuess || ignoreCache) {\n cachedGuess = rebuildGuess();\n }\n return cachedGuess;\n }\n\n /************************************\n \tGlobal Methods\n ************************************/\n\n function normalizeName(name) {\n return (name || '').toLowerCase().replace(/\\//g, '_');\n }\n function addZone(packed) {\n var i, name, split, normalized;\n if (typeof packed === \"string\") {\n packed = [packed];\n }\n for (i = 0; i < packed.length; i++) {\n split = packed[i].split('|');\n name = split[0];\n normalized = normalizeName(name);\n zones[normalized] = packed[i];\n names[normalized] = name;\n addToGuesses(normalized, split[2].split(' '));\n }\n }\n function getZone(name, caller) {\n name = normalizeName(name);\n var zone = zones[name];\n var link;\n if (zone instanceof Zone) {\n return zone;\n }\n if (typeof zone === 'string') {\n zone = new Zone(zone);\n zones[name] = zone;\n return zone;\n }\n\n // Pass getZone to prevent recursion more than 1 level deep\n if (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n zone = zones[name] = new Zone();\n zone._set(link);\n zone.name = names[name];\n return zone;\n }\n return null;\n }\n function getNames() {\n var i,\n out = [];\n for (i in names) {\n if (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n out.push(names[i]);\n }\n }\n return out.sort();\n }\n function getCountryNames() {\n return Object.keys(countries);\n }\n function addLink(aliases) {\n var i, alias, normal0, normal1;\n if (typeof aliases === \"string\") {\n aliases = [aliases];\n }\n for (i = 0; i < aliases.length; i++) {\n alias = aliases[i].split('|');\n normal0 = normalizeName(alias[0]);\n normal1 = normalizeName(alias[1]);\n links[normal0] = normal1;\n names[normal0] = alias[0];\n links[normal1] = normal0;\n names[normal1] = alias[1];\n }\n }\n function addCountries(data) {\n var i, country_code, country_zones, split;\n if (!data || !data.length) return;\n for (i = 0; i < data.length; i++) {\n split = data[i].split('|');\n country_code = split[0].toUpperCase();\n country_zones = split[1].split(' ');\n countries[country_code] = new Country(country_code, country_zones);\n }\n }\n function getCountry(name) {\n name = name.toUpperCase();\n return countries[name] || null;\n }\n function zonesForCountry(country, with_offset) {\n country = getCountry(country);\n if (!country) return null;\n var zones = country.zones.sort();\n if (with_offset) {\n return zones.map(function (zone_name) {\n var zone = getZone(zone_name);\n return {\n name: zone_name,\n offset: zone.utcOffset(new Date())\n };\n });\n }\n return zones;\n }\n function loadData(data) {\n addZone(data.zones);\n addLink(data.links);\n addCountries(data.countries);\n tz.dataVersion = data.version;\n }\n function zoneExists(name) {\n if (!zoneExists.didShowError) {\n zoneExists.didShowError = true;\n logError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n }\n return !!getZone(name);\n }\n function needsOffset(m) {\n var isUnixTimestamp = m._f === 'X' || m._f === 'x';\n return !!(m._a && m._tzm === undefined && !isUnixTimestamp);\n }\n function logError(message) {\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n }\n\n /************************************\n \tmoment.tz namespace\n ************************************/\n\n function tz(input) {\n var args = Array.prototype.slice.call(arguments, 0, -1),\n name = arguments[arguments.length - 1],\n zone = getZone(name),\n out = moment.utc.apply(null, args);\n if (zone && !moment.isMoment(input) && needsOffset(out)) {\n out.add(zone.parse(out), 'minutes');\n }\n out.tz(name);\n return out;\n }\n tz.version = VERSION;\n tz.dataVersion = '';\n tz._zones = zones;\n tz._links = links;\n tz._names = names;\n tz._countries = countries;\n tz.add = addZone;\n tz.link = addLink;\n tz.load = loadData;\n tz.zone = getZone;\n tz.zoneExists = zoneExists; // deprecated in 0.1.0\n tz.guess = guess;\n tz.names = getNames;\n tz.Zone = Zone;\n tz.unpack = unpack;\n tz.unpackBase60 = unpackBase60;\n tz.needsOffset = needsOffset;\n tz.moveInvalidForward = true;\n tz.moveAmbiguousForward = false;\n tz.countries = getCountryNames;\n tz.zonesForCountry = zonesForCountry;\n\n /************************************\n \tInterface with Moment.js\n ************************************/\n\n var fn = moment.fn;\n moment.tz = tz;\n moment.defaultZone = null;\n moment.updateOffset = function (mom, keepTime) {\n var zone = moment.defaultZone,\n offset;\n if (mom._z === undefined) {\n if (zone && needsOffset(mom) && !mom._isUTC) {\n mom._d = moment.utc(mom._a)._d;\n mom.utc().add(zone.parse(mom), 'minutes');\n }\n mom._z = zone;\n }\n if (mom._z) {\n offset = mom._z.utcOffset(mom);\n if (Math.abs(offset) < 16) {\n offset = offset / 60;\n }\n if (mom.utcOffset !== undefined) {\n var z = mom._z;\n mom.utcOffset(-offset, keepTime);\n mom._z = z;\n } else {\n mom.zone(offset, keepTime);\n }\n }\n };\n fn.tz = function (name, keepTime) {\n if (name) {\n if (typeof name !== 'string') {\n throw new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n }\n this._z = getZone(name);\n if (this._z) {\n moment.updateOffset(this, keepTime);\n } else {\n logError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n }\n return this;\n }\n if (this._z) {\n return this._z.name;\n }\n };\n function abbrWrap(old) {\n return function () {\n if (this._z) {\n return this._z.abbr(this);\n }\n return old.call(this);\n };\n }\n function resetZoneWrap(old) {\n return function () {\n this._z = null;\n return old.apply(this, arguments);\n };\n }\n function resetZoneWrap2(old) {\n return function () {\n if (arguments.length > 0) this._z = null;\n return old.apply(this, arguments);\n };\n }\n fn.zoneName = abbrWrap(fn.zoneName);\n fn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n fn.utc = resetZoneWrap(fn.utc);\n fn.local = resetZoneWrap(fn.local);\n fn.utcOffset = resetZoneWrap2(fn.utcOffset);\n moment.tz.setDefault = function (name) {\n if (major < 2 || major === 2 && minor < 9) {\n logError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n }\n moment.defaultZone = name ? getZone(name) : null;\n return moment;\n };\n\n // Cloning a moment should include the _z property.\n var momentProperties = moment.momentProperties;\n if (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n // moment 2.8.1+\n momentProperties.push('_z');\n momentProperties.push('_a');\n } else if (momentProperties) {\n // moment 2.7.0\n momentProperties._z = null;\n }\n\n // INJECT DATA\n\n return moment;\n});","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n\n week: {\n dow: 1,\n // Maandag is die eerste dag van die week.\n doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n }\n });\n\n return af;\n});","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n },\n plurals = {\n s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'];\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y')\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return arDz;\n});","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return arKw;\n});","//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0'\n },\n pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n },\n plurals = {\n s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'];\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return arLy;\n});","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return arMa;\n});","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠'\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n };\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return arSa;\n});","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return arTn;\n});","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠'\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n },\n pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n },\n plurals = {\n s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'];\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return ar;\n});","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı'\n };\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il'\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return az;\n});","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),\n standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')\n },\n monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),\n standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm'\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) && number % 100 !== 12 && number % 100 !== 13 ? number + '-і' : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return be;\n});","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return bg;\n});","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm'\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return bm;\n});","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০'\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n };\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),\n monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়'\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর'\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return bnBd;\n});","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০'\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n };\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),\n monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়'\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর'\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত' && hour >= 4 || meridiem === 'দুপুর' && hour < 5 || meridiem === 'বিকাল') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return bn;\n});","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠'\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0'\n };\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split('_'),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ'\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'མཚན་མོ' && hour >= 4 || meridiem === 'ཉིན་གུང' && hour < 5 || meridiem === 'དགོང་དག') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return bo;\n});","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh'\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z'\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n var monthsParse = [/^gen/i, /^c[ʼ\\']hwe/i, /^meu/i, /^ebr/i, /^mae/i, /^(mez|eve)/i, /^gou/i, /^eos/i, /^gwe/i, /^her/i, /^du/i, /^ker/i],\n monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [/^sul/i, /^lun/i, /^meurzh/i, /^merc[ʼ\\']her/i, /^yaou/i, /^gwener/i, /^sadorn/i],\n shortWeekdaysParse = [/^Sul/i, /^Lun/i, /^Meu/i, /^Mer/i, /^Yao/i, /^Gwe/i, /^Sad/i],\n minWeekdaysParse = [/^Su/i, /^Lu/i, /^Me([^r]|$)/i, /^Mer/i, /^Ya/i, /^Gw/i, /^Sa/i];\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n },\n\n meridiemParse: /a.m.|g.m./,\n // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n }\n });\n return br;\n});","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return bs;\n});","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ca = moment.defineLocale('ca', {\n months: {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split('_'),\n isFormat: /D[oD]?(\\s)+MMMM/\n },\n monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm'\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return '[el] dddd [passat a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ca;\n});","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = {\n format: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),\n standalone: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split('_')\n },\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [/^led/i, /^úno/i, /^bře/i, /^dub/i, /^kvě/i, /^(čvn|červen$|června)/i, /^(čvc|červenec|července)/i, /^srp/i, /^zář/i, /^říj/i, /^lis/i, /^pro/i],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss':\n // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm':\n // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm':\n // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h':\n // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh':\n // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd':\n // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd':\n // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M':\n // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM':\n // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y':\n // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy':\n // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY'\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return cs;\n});","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L'\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return cv;\n});","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = ['', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed',\n // 1af to 10fed\n 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed\n ];\n\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return cy;\n});","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return da;\n});","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return deAt;\n});","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return deCh;\n});","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return de;\n});","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = ['ޖެނުއަރީ', 'ފެބްރުއަރީ', 'މާރިޗު', 'އޭޕްރީލު', 'މޭ', 'ޖޫން', 'ޖުލައި', 'އޯގަސްޓު', 'ސެޕްޓެމްބަރު', 'އޮކްޓޯބަރު', 'ނޮވެމްބަރު', 'ޑިސެމްބަރު'],\n weekdays = ['އާދިއްތަ', 'ހޯމަ', 'އަންގާރަ', 'ބުދަ', 'ބުރާސްފަތި', 'ހުކުރު', 'ހޮނިހިރު'];\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d'\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7,\n // Sunday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return dv;\n});","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n var el = moment.defineLocale('el', {\n monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),\n monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L'\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4st is the first week of the year.\n }\n });\n\n return el;\n});","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enAu;\n});","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n });\n return enCa;\n});","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enGb;\n});","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enIe;\n});","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n });\n return enIl;\n});","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return enIn;\n});","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enNz;\n});","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enSg;\n});","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm'\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago',\n //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return eo;\n});","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return esDo;\n});","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n },\n\n invalidDate: 'Fecha inválida'\n });\n return esMx;\n});","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return esUs;\n});","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n },\n\n invalidDate: 'Fecha inválida'\n });\n return es;\n});","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat']\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),\n monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return et;\n});","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm'\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return eu;\n});","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰'\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0'\n };\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n weekdays: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n weekdaysShort: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال'\n },\n preparse: function (string) {\n return string.replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return fa;\n});","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = ['nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', numbersPast[7], numbersPast[8], numbersPast[9]];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10 ? isFuture ? numbersFuture[number] : numbersPast[number] : number;\n }\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm'\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fi;\n});","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm'\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fil;\n});","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fo;\n});","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n }\n });\n return frCa;\n});","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return frCh;\n});","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [/^janv/i, /^févr/i, /^mars/i, /^avr/i, /^mai/i, /^juin/i, /^juil/i, /^août/i, /^sept/i, /^oct/i, /^nov/i, /^déc/i];\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fr;\n});","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fy;\n});","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = ['Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Meitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deireadh Fómhair', 'Samhain', 'Nollaig'],\n monthsShort = ['Ean', 'Feabh', 'Márt', 'Aib', 'Beal', 'Meith', 'Iúil', 'Lún', 'M.F.', 'D.F.', 'Samh', 'Noll'],\n weekdays = ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Sathairn'],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ga;\n});","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = ['Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'],\n monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'],\n weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return gd;\n});","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return gl;\n});","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां']\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split('_'),\n isFormat: /MMMM(\\s)+D[oD]?/\n },\n monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]'\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week\n doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n }\n });\n return gomDeva;\n});","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam']\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split('_'),\n isFormat: /MMMM(\\s)+D[oD]?/\n },\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]'\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week\n doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n }\n });\n return gomLatn;\n});","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦'\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0'\n };\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'),\n monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે'\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ'\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return gu;\n});","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),\n monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n }\n },\n meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n }\n });\n return he;\n});","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n },\n monthsParse = [/^जन/i, /^फ़र|फर/i, /^मार्च/i, /^अप्रै/i, /^मई/i, /^जून/i, /^जुल/i, /^अग/i, /^सितं|सित/i, /^अक्टू/i, /^नव|नवं/i, /^दिसं|दिस/i],\n shortMonthsParse = [/^जन/i, /^फ़र/i, /^मार्च/i, /^अप्रै/i, /^मई/i, /^जून/i, /^जुल/i, /^अग/i, /^सित/i, /^अक्टू/i, /^नव/i, /^दिस/i];\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),\n standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split('_')\n },\n monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे'\n },\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n monthsRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n monthsShortRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n monthsShortStrictRegex: /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return hi;\n});","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),\n standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return hr;\n});","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix ? 'néhány másodperc' : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';\n }\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm'\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return hu;\n});","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),\n standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm'\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի'\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return hyAm;\n});","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun'\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return id;\n});","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm'\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return is;\n});","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return itCh;\n});","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: function () {\n return '[Oggi a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n nextDay: function () {\n return '[Domani a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n nextWeek: function () {\n return 'dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n lastDay: function () {\n return '[Ieri a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[La scorsa] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n default:\n return '[Lo scorso] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return it;\n});","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ja = moment.defineLocale('ja', {\n eras: [{\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R'\n }, {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H'\n }, {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S'\n }, {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T'\n }, {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M'\n }, {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC'\n }],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm'\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年'\n }\n });\n return ja;\n});","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return jv;\n});","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),\n isFormat: /(წინა|შემდეგ)/\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L'\n },\n relativeTime: {\n future: function (s) {\n return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n });\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი'\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (number < 20 || number <= 100 && number % 20 === 0 || number % 100 === 0) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7\n }\n });\n return ka;\n});","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші'\n };\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return kk;\n});","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០'\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0'\n };\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ'\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return km;\n});","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦'\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0'\n };\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'),\n monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ'\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return kn;\n});","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm'\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n }\n });\n return ko;\n});","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠'\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n },\n months = ['کانونی دووەم', 'شوبات', 'ئازار', 'نیسان', 'ئایار', 'حوزەیران', 'تەمموز', 'ئاب', 'ئەیلوول', 'تشرینی یەكەم', 'تشرینی دووەم', 'كانونی یەکەم'];\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ'\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return ku;\n});","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү'\n };\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ky;\n});","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n }\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lb;\n});","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ'\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n }\n });\n return lo;\n});","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus'\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix ? forms(key)[0] : isFuture ? forms(key)[1] : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || number > 10 && number < 20;\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return result + translateSingular(number, withoutSuffix, key[0], isFuture);\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),\n isFormat: /dddd HH:mm/\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lt;\n});","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_')\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm'\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lv;\n});","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : number >= 2 && number <= 4 ? wordKey[1] : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = ['[prošle] [nedjelje] [u] LT', '[prošlog] [ponedjeljka] [u] LT', '[prošlog] [utorka] [u] LT', '[prošle] [srijede] [u] LT', '[prošlog] [četvrtka] [u] LT', '[prošlog] [petka] [u] LT', '[prošle] [subote] [u] LT'];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return me;\n});","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm'\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return mi;\n});","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return mk;\n});","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),\n monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),\n monthsParseExact: true,\n weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു'\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം'\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'രാത്രി' && hour >= 4 || meridiem === 'ഉച്ച കഴിഞ്ഞ്' || meridiem === 'വൈകുന്നേരം') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n }\n });\n return ml;\n});","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'),\n monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm'\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n }\n });\n return mn;\n});","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),\n monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता'\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (meridiem === 'दुपारी' || meridiem === 'सायंकाळी' || meridiem === 'रात्री') {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return mr;\n});","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return msMy;\n});","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ms;\n});","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return mt;\n});","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀'\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0'\n };\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်'\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return my;\n});","//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n w: 'en uke',\n ww: '%d uker',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nb;\n});","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),\n monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष'\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return ne;\n});","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nlBe;\n});","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nl;\n});","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nn;\n});","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split('_'),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split('_'),\n isFormat: /D[oD]?(\\s)+MMMM/\n },\n monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split('_'),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm'\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4\n }\n });\n return ocLnc;\n});","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦'\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0'\n };\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ'\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return paIn;\n});","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_'),\n monthsParse = [/^sty/i, /^lut/i, /^mar/i, /^kwi/i, /^maj/i, /^cze/i, /^lip/i, /^sie/i, /^wrz/i, /^paź/i, /^lis/i, /^gru/i];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n case 2:\n return '[We wtorek o] LT';\n case 3:\n return '[W środę o] LT';\n case 6:\n return '[W sobotę o] LT';\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return pl;\n});","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6 ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n\n sameElse: 'L'\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida'\n });\n return ptBr;\n});","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6 ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n\n sameElse: 'L'\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return pt;\n});","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani'\n },\n separator = ' ';\n if (number % 100 >= 20 || number >= 100 && number % 100 === 0) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ro;\n});","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет'\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')\n },\n weekdays: {\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n // копия предыдущего\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n // полные названия с падежами\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm'\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ru;\n});","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = ['جنوري', 'فيبروري', 'مارچ', 'اپريل', 'مئي', 'جون', 'جولاءِ', 'آگسٽ', 'سيپٽمبر', 'آڪٽوبر', 'نومبر', 'ڊسمبر'],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال'\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sd;\n});","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),\n monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return se;\n});","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),\n weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n }\n });\n return si;\n});","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss':\n // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm':\n // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm':\n // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h':\n // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh':\n // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd':\n // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd':\n // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M':\n // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM':\n // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y':\n // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy':\n // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sk;\n});","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return sl;\n});","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sq;\n});","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година']\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n return number + ' ' + word;\n }\n };\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm'\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = ['[прошле] [недеље] [у] LT', '[прошлог] [понедељка] [у] LT', '[прошлог] [уторка] [у] LT', '[прошле] [среде] [у] LT', '[прошлог] [четвртка] [у] LT', '[прошлог] [петка] [у] LT', '[прошле] [суботе] [у] LT'];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return srCyrl;\n});","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n return number + ' ' + word;\n }\n };\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = ['[prošle] [nedelje] [u] LT', '[prošlog] [ponedeljka] [u] LT', '[prošlog] [utorka] [u] LT', '[prošle] [srede] [u] LT', '[prošlog] [četvrtka] [u] LT', '[prošlog] [petka] [u] LT', '[prošle] [subote] [u] LT'];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return sr;\n});","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split('_'),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka'\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ss;\n});","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? ':e' : b === 1 ? ':a' : b === 2 ? ':a' : b === 3 ? ':e' : ':e';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sv;\n});","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return sw;\n});","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦'\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0'\n };\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm'\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return ta;\n});","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),\n monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),\n monthsParseExact: true,\n weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return te;\n});","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tet;\n});","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум'\n };\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split('_'),\n standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_')\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол'\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1th is the first week of the year.\n }\n });\n\n return tg;\n});","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'),\n // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm'\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี'\n }\n });\n return th;\n});","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\"\n };\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split('_'),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split('_'),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl'\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return tk;\n});","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm'\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tlPh;\n});","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n function translateFuture(output) {\n var time = output;\n time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'leS' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'waQ' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'nem' : time + ' pIq';\n return time;\n }\n function translatePast(output) {\n var time = output;\n time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'Hu’' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'wen' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'ben' : time + ' ret';\n return time;\n }\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n function numberAsNoun(number) {\n var hundred = Math.floor(number % 1000 / 100),\n ten = Math.floor(number % 100 / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),\n monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L'\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tlh;\n});","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\"\n };\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl'\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return tr;\n});","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars']\n };\n return isFuture ? format[key][0] : withoutSuffix ? format[key][0] : format[key][1];\n }\n return tzl;\n});","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn'\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return tzmLatn;\n});","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ'\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return tzm;\n});","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split('_'),\n monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split('_'),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split('_'),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm'\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'يېرىم كېچە' || meridiem === 'سەھەر' || meridiem === 'چۈشتىن بۇرۇن') {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return ugCn;\n});","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),\n accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),\n genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')\n },\n nounCase;\n if (m === true) {\n return weekdays['nominative'].slice(1, 7).concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format) ? 'accusative' : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format) ? 'genitive' : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),\n standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm'\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return uk;\n});","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال'\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ur;\n});","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm'\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return uzLatn;\n});","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm'\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return uz;\n});","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split('_'),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return vi;\n});","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),\n monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),\n monthsParseExact: true,\n weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return xPseudo;\n});","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d'\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return yo;\n});","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年'\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return zhCn;\n});","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年'\n }\n });\n return zhHk;\n});","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年'\n }\n });\n return zhMo;\n});","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年'\n }\n });\n return zhTw;\n});","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.moment = factory();\n})(this, function () {\n 'use strict';\n\n var hookCallback;\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n function isUndefined(input) {\n return input === void 0;\n }\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n return a;\n }\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n }\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n return false;\n };\n }\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n if (m._strict) {\n isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = hooks.momentProperties = [],\n updateInProgress = false;\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n function isMoment(obj) {\n return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\n }\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n function deprecate(msg, fn) {\n var firstTime = true;\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + new Error().stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n var deprecations = {};\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n }\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n var keys;\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n };\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n return formatFunctions[format](m);\n }\n function expandFormat(format, locale) {\n var i = 5;\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n return format;\n }\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n };\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n if (format || !formatUpper) {\n return format;\n }\n this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) {\n if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') {\n return tok.slice(1);\n }\n return tok;\n }).join('');\n return this._longDateFormat[key];\n }\n var defaultInvalidDate = 'Invalid date';\n function invalidDate() {\n return this._invalidDate;\n }\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n };\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);\n }\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n var aliases = {};\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n return normalizedInput;\n }\n var priorities = {};\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({\n unit: u,\n priority: priorities[u]\n });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n }\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n return value;\n }\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n function get(mom, unit) {\n return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n var match1 = /\\d/,\n // 0 - 9\n match2 = /\\d\\d/,\n // 00 - 99\n match3 = /\\d{3}/,\n // 000 - 999\n match4 = /\\d{4}/,\n // 0000 - 9999\n match6 = /[+-]?\\d{6}/,\n // -999999 - 999999\n match1to2 = /\\d\\d?/,\n // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/,\n // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/,\n // 99999 - 999999\n match1to3 = /\\d{1,3}/,\n // 0 - 999\n match1to4 = /\\d{1,4}/,\n // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/,\n // -999999 - 999999\n matchUnsigned = /\\d+/,\n // 0 - inf\n matchSigned = /[+-]?\\d+/,\n // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi,\n // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi,\n // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/,\n // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n regexes = {};\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n var tokens = {};\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n function mod(n, x) {\n return (n % x + x) % x;\n }\n var indexOf;\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months) ? this._months : this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;\n }\n }\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n return date;\n }\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n return {\n week: resWeek,\n year: resYear\n };\n }\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n var defaultLocaleWeek = {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n return null;\n }\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n }\n function localeWeekdaysShort(m) {\n return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n function localeWeekdaysMin(m) {\n return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n function kFormat() {\n return this.hours() || 24;\n }\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && commonPrefix(split, next) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (locales[name] === undefined && typeof module !== 'undefined' && module && module.exports && isLocaleNameSane(name)) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n return globalLocale._abbr;\n }\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n if (!key) {\n return globalLocale;\n }\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n return chooseLocale(key);\n }\n function listLocales() {\n return keys(locales);\n }\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n if (a && getParsingFlags(m).overflow === -2) {\n overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n getParsingFlags(m).overflow = overflow;\n }\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/], ['YYYYMM', /\\d{6}/, false], ['YYYY', /\\d{4}/, false]],\n // iso time formats and regexes\n isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n return result;\n }\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^()]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n });\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n if (config._d) {\n return;\n }\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n curWeek = weekOfYear(createLocal(), dow, doy);\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n configFromArray(config);\n checkOverflow(config);\n }\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n getParsingFlags(tempConfig).score = currentScore;\n if (!bestFormatIsValid) {\n if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n extend(config, bestMoment || tempConfig);\n }\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n configFromArray(config);\n }\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n return res;\n }\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n config._locale = config._locale || getLocale(config._l);\n if (input === null || format === undefined && input === '') {\n return createInvalid({\n nullInput: true\n });\n }\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n if (!isValid(config)) {\n config._d = null;\n }\n return config;\n }\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n return createFromConfig(c);\n }\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }),\n prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n });\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isBefore', args);\n }\n function max() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isAfter', args);\n }\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n return true;\n }\n function isValid$1() {\n return this._isValid;\n }\n function createInvalid$1() {\n return createDuration(NaN);\n }\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds + seconds * 1e3 +\n // 1000\n minutes * 6e4 +\n // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n this._data = {};\n this._locale = getLocale();\n this._bubble();\n }\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n });\n }\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n if (matches === null) {\n return null;\n }\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n this.utcOffset(input, keepLocalTime);\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n return (this.utcOffset() - input) % 60 === 0;\n }\n function isDaylightSavingTime() {\n return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n }\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n var c = {},\n other;\n copyConfig(c, this);\n c = prepareConfig(c);\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n return this._isDSTShifted;\n }\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if (match = aspNetRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (match = isoRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign)\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n ret = new Duration(duration);\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n return ret;\n }\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n function positiveMomentsDifference(base, other) {\n var res = {};\n res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n return res;\n }\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {\n milliseconds: 0,\n months: 0\n };\n }\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val;\n val = period;\n period = tmp;\n }\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n if (!mom.isValid()) {\n // No op\n return;\n }\n updateOffset = updateOffset == null ? true : updateOffset;\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined;\n }\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'],\n i,\n property,\n propertyLen = properties.length;\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n return objectTest && propertyTest;\n }\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest = input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'],\n i,\n property;\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n return objectTest && propertyTest;\n }\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n }\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n function clone() {\n return new Moment(this);\n }\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n if (!this.isValid()) {\n return NaN;\n }\n that = cloneWithOffset(input, this);\n if (!that.isValid()) {\n return NaN;\n }\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n units = normalizeUnits(units);\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break;\n // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break;\n // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break;\n // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break;\n // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break;\n // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n return asFloat ? output : absFloor(output);\n }\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n return this.format(prefix + year + datetime + suffix);\n }\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n function from(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n to: this,\n from: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n function to(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n from: this,\n to: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n });\n function localeData() {\n return this._locale;\n }\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n function toDate() {\n return new Date(this.valueOf());\n }\n function toArray() {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n function isValid$2() {\n return isValid(this);\n }\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n return '';\n }\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n return '';\n }\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n return '';\n }\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {\n return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;\n }\n }\n return this.year();\n }\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy);\n }\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\n });\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n var proto = Moment.prototype;\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n function preParsePostFormat(string) {\n return string;\n }\n var proto$1 = Locale.prototype;\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n format = format || '';\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n format = format || '';\n }\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n getSetGlobalLocale('en', {\n eras: [{\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC'\n }],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n var mathAbs = Math.abs;\n function abs() {\n var data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n return this;\n }\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n data.days = days;\n data.months = months;\n data.years = years;\n return this;\n }\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n units = normalizeUnits(units);\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6;\n }\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n function clone$1() {\n return createDuration(this);\n }\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n function weeks() {\n return absFloor(this.days() / 7);\n }\n var round = Math.round,\n thresholds = {\n ss: 44,\n // a few seconds to seconds\n s: 45,\n // seconds to minute\n m: 45,\n // minutes to hour\n h: 22,\n // hours to day\n d: 26,\n // days to month/week\n w: null,\n // weeks to month\n M: 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days];\n if (thresholds.w != null) {\n a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks];\n }\n a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n return locale.postformat(output);\n }\n var abs$1 = Math.abs;\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : '');\n }\n var proto$2 = Duration.prototype;\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n setHookCallback(createLocal);\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',\n // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n // \n DATE: 'YYYY-MM-DD',\n // \n TIME: 'HH:mm',\n // \n TIME_SECONDS: 'HH:mm:ss',\n // \n TIME_MS: 'HH:mm:ss.SSS',\n // \n WEEK: 'GGGG-[W]WW',\n // \n MONTH: 'YYYY-MM' // \n };\n\n return hooks;\n});","import { Component as n, createElement as t, options as e, toChildArray as r, Fragment as u, render as o, hydrate as i, createContext as l, createRef as c, cloneElement as f } from \"preact\";\nexport { Component, Fragment, createContext, createElement, createRef } from \"preact\";\nimport { useState as a, useId as s, useReducer as h, useEffect as v, useLayoutEffect as d, useRef as p, useImperativeHandle as m, useMemo as y, useCallback as _, useContext as b, useDebugValue as S } from \"preact/hooks\";\nexport * from \"preact/hooks\";\nfunction g(n, t) {\n for (var e in t) n[e] = t[e];\n return n;\n}\nfunction C(n, t) {\n for (var e in n) if (\"__source\" !== e && !(e in t)) return !0;\n for (var r in t) if (\"__source\" !== r && n[r] !== t[r]) return !0;\n return !1;\n}\nfunction E(n, t) {\n return n === t && (0 !== n || 1 / n == 1 / t) || n != n && t != t;\n}\nfunction w(n) {\n this.props = n;\n}\nfunction x(n, e) {\n function r(n) {\n var t = this.props.ref,\n r = t == n.ref;\n return !r && t && (t.call ? t(null) : t.current = null), e ? !e(this.props, n) || !r : C(this.props, n);\n }\n function u(e) {\n return this.shouldComponentUpdate = r, t(n, e);\n }\n return u.displayName = \"Memo(\" + (n.displayName || n.name) + \")\", u.prototype.isReactComponent = !0, u.__f = !0, u;\n}\n(w.prototype = new n()).isPureReactComponent = !0, w.prototype.shouldComponentUpdate = function (n, t) {\n return C(this.props, n) || C(this.state, t);\n};\nvar R = e.__b;\ne.__b = function (n) {\n n.type && n.type.__f && n.ref && (n.props.ref = n.ref, n.ref = null), R && R(n);\n};\nvar N = \"undefined\" != typeof Symbol && Symbol.for && Symbol.for(\"react.forward_ref\") || 3911;\nfunction k(n) {\n function t(t) {\n var e = g({}, t);\n return delete e.ref, n(e, t.ref || null);\n }\n return t.$$typeof = N, t.render = t, t.prototype.isReactComponent = t.__f = !0, t.displayName = \"ForwardRef(\" + (n.displayName || n.name) + \")\", t;\n}\nvar A = function (n, t) {\n return null == n ? null : r(r(n).map(t));\n },\n O = {\n map: A,\n forEach: A,\n count: function (n) {\n return n ? r(n).length : 0;\n },\n only: function (n) {\n var t = r(n);\n if (1 !== t.length) throw \"Children.only\";\n return t[0];\n },\n toArray: r\n },\n T = e.__e;\ne.__e = function (n, t, e, r) {\n if (n.then) for (var u, o = t; o = o.__;) if ((u = o.__c) && u.__c) return null == t.__e && (t.__e = e.__e, t.__k = e.__k), u.__c(n, t);\n T(n, t, e, r);\n};\nvar I = e.unmount;\nfunction L(n, t, e) {\n return n && (n.__c && n.__c.__H && (n.__c.__H.__.forEach(function (n) {\n \"function\" == typeof n.__c && n.__c();\n }), n.__c.__H = null), null != (n = g({}, n)).__c && (n.__c.__P === e && (n.__c.__P = t), n.__c = null), n.__k = n.__k && n.__k.map(function (n) {\n return L(n, t, e);\n })), n;\n}\nfunction U(n, t, e) {\n return n && (n.__v = null, n.__k = n.__k && n.__k.map(function (n) {\n return U(n, t, e);\n }), n.__c && n.__c.__P === t && (n.__e && e.insertBefore(n.__e, n.__d), n.__c.__e = !0, n.__c.__P = e)), n;\n}\nfunction D() {\n this.__u = 0, this.t = null, this.__b = null;\n}\nfunction F(n) {\n var t = n.__.__c;\n return t && t.__a && t.__a(n);\n}\nfunction M(n) {\n var e, r, u;\n function o(o) {\n if (e || (e = n()).then(function (n) {\n r = n.default || n;\n }, function (n) {\n u = n;\n }), u) throw u;\n if (!r) throw e;\n return t(r, o);\n }\n return o.displayName = \"Lazy\", o.__f = !0, o;\n}\nfunction V() {\n this.u = null, this.o = null;\n}\ne.unmount = function (n) {\n var t = n.__c;\n t && t.__R && t.__R(), t && !0 === n.__h && (n.type = null), I && I(n);\n}, (D.prototype = new n()).__c = function (n, t) {\n var e = t.__c,\n r = this;\n null == r.t && (r.t = []), r.t.push(e);\n var u = F(r.__v),\n o = !1,\n i = function () {\n o || (o = !0, e.__R = null, u ? u(l) : l());\n };\n e.__R = i;\n var l = function () {\n if (! --r.__u) {\n if (r.state.__a) {\n var n = r.state.__a;\n r.__v.__k[0] = U(n, n.__c.__P, n.__c.__O);\n }\n var t;\n for (r.setState({\n __a: r.__b = null\n }); t = r.t.pop();) t.forceUpdate();\n }\n },\n c = !0 === t.__h;\n r.__u++ || c || r.setState({\n __a: r.__b = r.__v.__k[0]\n }), n.then(i, i);\n}, D.prototype.componentWillUnmount = function () {\n this.t = [];\n}, D.prototype.render = function (n, e) {\n if (this.__b) {\n if (this.__v.__k) {\n var r = document.createElement(\"div\"),\n o = this.__v.__k[0].__c;\n this.__v.__k[0] = L(this.__b, r, o.__O = o.__P);\n }\n this.__b = null;\n }\n var i = e.__a && t(u, null, n.fallback);\n return i && (i.__h = null), [t(u, null, e.__a ? null : n.children), i];\n};\nvar W = function (n, t, e) {\n if (++e[1] === e[0] && n.o.delete(t), n.props.revealOrder && (\"t\" !== n.props.revealOrder[0] || !n.o.size)) for (e = n.u; e;) {\n for (; e.length > 3;) e.pop()();\n if (e[1] < e[0]) break;\n n.u = e = e[2];\n }\n};\nfunction P(n) {\n return this.getChildContext = function () {\n return n.context;\n }, n.children;\n}\nfunction j(n) {\n var e = this,\n r = n.i;\n e.componentWillUnmount = function () {\n o(null, e.l), e.l = null, e.i = null;\n }, e.i && e.i !== r && e.componentWillUnmount(), n.__v ? (e.l || (e.i = r, e.l = {\n nodeType: 1,\n parentNode: r,\n childNodes: [],\n appendChild: function (n) {\n this.childNodes.push(n), e.i.appendChild(n);\n },\n insertBefore: function (n, t) {\n this.childNodes.push(n), e.i.appendChild(n);\n },\n removeChild: function (n) {\n this.childNodes.splice(this.childNodes.indexOf(n) >>> 1, 1), e.i.removeChild(n);\n }\n }), o(t(P, {\n context: e.context\n }, n.__v), e.l)) : e.l && e.componentWillUnmount();\n}\nfunction z(n, e) {\n var r = t(j, {\n __v: n,\n i: e\n });\n return r.containerInfo = e, r;\n}\n(V.prototype = new n()).__a = function (n) {\n var t = this,\n e = F(t.__v),\n r = t.o.get(n);\n return r[0]++, function (u) {\n var o = function () {\n t.props.revealOrder ? (r.push(u), W(t, n, r)) : u();\n };\n e ? e(o) : o();\n };\n}, V.prototype.render = function (n) {\n this.u = null, this.o = new Map();\n var t = r(n.children);\n n.revealOrder && \"b\" === n.revealOrder[0] && t.reverse();\n for (var e = t.length; e--;) this.o.set(t[e], this.u = [1, 0, this.u]);\n return n.children;\n}, V.prototype.componentDidUpdate = V.prototype.componentDidMount = function () {\n var n = this;\n this.o.forEach(function (t, e) {\n W(n, e, t);\n });\n};\nvar B = \"undefined\" != typeof Symbol && Symbol.for && Symbol.for(\"react.element\") || 60103,\n H = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,\n Z = /^on(Ani|Tra|Tou|BeforeInp|Compo)/,\n Y = /[A-Z0-9]/g,\n $ = \"undefined\" != typeof document,\n q = function (n) {\n return (\"undefined\" != typeof Symbol && \"symbol\" == typeof Symbol() ? /fil|che|rad/ : /fil|che|ra/).test(n);\n };\nfunction G(n, t, e) {\n return null == t.__k && (t.textContent = \"\"), o(n, t), \"function\" == typeof e && e(), n ? n.__c : null;\n}\nfunction J(n, t, e) {\n return i(n, t), \"function\" == typeof e && e(), n ? n.__c : null;\n}\nn.prototype.isReactComponent = {}, [\"componentWillMount\", \"componentWillReceiveProps\", \"componentWillUpdate\"].forEach(function (t) {\n Object.defineProperty(n.prototype, t, {\n configurable: !0,\n get: function () {\n return this[\"UNSAFE_\" + t];\n },\n set: function (n) {\n Object.defineProperty(this, t, {\n configurable: !0,\n writable: !0,\n value: n\n });\n }\n });\n});\nvar K = e.event;\nfunction Q() {}\nfunction X() {\n return this.cancelBubble;\n}\nfunction nn() {\n return this.defaultPrevented;\n}\ne.event = function (n) {\n return K && (n = K(n)), n.persist = Q, n.isPropagationStopped = X, n.isDefaultPrevented = nn, n.nativeEvent = n;\n};\nvar tn,\n en = {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return this.class;\n }\n },\n rn = e.vnode;\ne.vnode = function (n) {\n \"string\" == typeof n.type && function (n) {\n var t = n.props,\n e = n.type,\n u = {};\n for (var o in t) {\n var i = t[o];\n if (!(\"value\" === o && \"defaultValue\" in t && null == i || $ && \"children\" === o && \"noscript\" === e || \"class\" === o || \"className\" === o)) {\n var l = o.toLowerCase();\n \"defaultValue\" === o && \"value\" in t && null == t.value ? o = \"value\" : \"download\" === o && !0 === i ? i = \"\" : \"ondoubleclick\" === l ? o = \"ondblclick\" : \"onchange\" !== l || \"input\" !== e && \"textarea\" !== e || q(t.type) ? \"onfocus\" === l ? o = \"onfocusin\" : \"onblur\" === l ? o = \"onfocusout\" : Z.test(o) ? o = l : -1 === e.indexOf(\"-\") && H.test(o) ? o = o.replace(Y, \"-$&\").toLowerCase() : null === i && (i = void 0) : l = o = \"oninput\", \"oninput\" === l && u[o = l] && (o = \"oninputCapture\"), u[o] = i;\n }\n }\n \"select\" == e && u.multiple && Array.isArray(u.value) && (u.value = r(t.children).forEach(function (n) {\n n.props.selected = -1 != u.value.indexOf(n.props.value);\n })), \"select\" == e && null != u.defaultValue && (u.value = r(t.children).forEach(function (n) {\n n.props.selected = u.multiple ? -1 != u.defaultValue.indexOf(n.props.value) : u.defaultValue == n.props.value;\n })), t.class && !t.className ? (u.class = t.class, Object.defineProperty(u, \"className\", en)) : (t.className && !t.class || t.class && t.className) && (u.class = u.className = t.className), n.props = u;\n }(n), n.$$typeof = B, rn && rn(n);\n};\nvar un = e.__r;\ne.__r = function (n) {\n un && un(n), tn = n.__c;\n};\nvar on = e.diffed;\ne.diffed = function (n) {\n on && on(n);\n var t = n.props,\n e = n.__e;\n null != e && \"textarea\" === n.type && \"value\" in t && t.value !== e.value && (e.value = null == t.value ? \"\" : t.value), tn = null;\n};\nvar ln = {\n ReactCurrentDispatcher: {\n current: {\n readContext: function (n) {\n return tn.__n[n.__c].props.value;\n }\n }\n }\n },\n cn = \"17.0.2\";\nfunction fn(n) {\n return t.bind(null, n);\n}\nfunction an(n) {\n return !!n && n.$$typeof === B;\n}\nfunction sn(n) {\n return an(n) ? f.apply(null, arguments) : n;\n}\nfunction hn(n) {\n return !!n.__k && (o(null, n), !0);\n}\nfunction vn(n) {\n return n && (n.base || 1 === n.nodeType && n) || null;\n}\nvar dn = function (n, t) {\n return n(t);\n },\n pn = function (n, t) {\n return n(t);\n },\n mn = u;\nfunction yn(n) {\n n();\n}\nfunction _n(n) {\n return n;\n}\nfunction bn() {\n return [!1, yn];\n}\nvar Sn = d;\nfunction gn(n, t) {\n var e = t(),\n r = a({\n h: {\n __: e,\n v: t\n }\n }),\n u = r[0].h,\n o = r[1];\n return d(function () {\n u.__ = e, u.v = t, E(u.__, t()) || o({\n h: u\n });\n }, [n, e, t]), v(function () {\n return E(u.__, u.v()) || o({\n h: u\n }), n(function () {\n E(u.__, u.v()) || o({\n h: u\n });\n });\n }, [n]), e;\n}\nvar Cn = {\n useState: a,\n useId: s,\n useReducer: h,\n useEffect: v,\n useLayoutEffect: d,\n useInsertionEffect: Sn,\n useTransition: bn,\n useDeferredValue: _n,\n useSyncExternalStore: gn,\n startTransition: yn,\n useRef: p,\n useImperativeHandle: m,\n useMemo: y,\n useCallback: _,\n useContext: b,\n useDebugValue: S,\n version: \"17.0.2\",\n Children: O,\n render: G,\n hydrate: J,\n unmountComponentAtNode: hn,\n createPortal: z,\n createElement: t,\n createContext: l,\n createFactory: fn,\n cloneElement: sn,\n createRef: c,\n Fragment: u,\n isValidElement: an,\n findDOMNode: vn,\n Component: n,\n PureComponent: w,\n memo: x,\n forwardRef: k,\n flushSync: pn,\n unstable_batchedUpdates: dn,\n StrictMode: mn,\n Suspense: D,\n SuspenseList: V,\n lazy: M,\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: ln\n};\nexport { O as Children, w as PureComponent, mn as StrictMode, D as Suspense, V as SuspenseList, ln as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, sn as cloneElement, fn as createFactory, z as createPortal, Cn as default, vn as findDOMNode, pn as flushSync, k as forwardRef, J as hydrate, an as isValidElement, M as lazy, x as memo, G as render, yn as startTransition, hn as unmountComponentAtNode, dn as unstable_batchedUpdates, _n as useDeferredValue, Sn as useInsertionEffect, gn as useSyncExternalStore, bn as useTransition, cn as version };","import { options as e, h as t, Fragment as r } from \"preact\";\nvar o = /[\\s\\n\\\\/='\"\\0<>]/,\n a = /^xlink:?./,\n n = /[\"&<]/;\nfunction i(e) {\n if (0 === e.length || !1 === n.test(e)) return e;\n for (var t = 0, r = 0, o = \"\", a = \"\"; r < e.length; r++) {\n switch (e.charCodeAt(r)) {\n case 34:\n a = \""\";\n break;\n case 38:\n a = \"&\";\n break;\n case 60:\n a = \"<\";\n break;\n default:\n continue;\n }\n r !== t && (o += e.slice(t, r)), o += a, t = r + 1;\n }\n return r !== t && (o += e.slice(t, r)), o;\n}\nvar s = {},\n l = new Set([\"animation-iteration-count\", \"border-image-outset\", \"border-image-slice\", \"border-image-width\", \"box-flex\", \"box-flex-group\", \"box-ordinal-group\", \"column-count\", \"fill-opacity\", \"flex\", \"flex-grow\", \"flex-negative\", \"flex-order\", \"flex-positive\", \"flex-shrink\", \"flood-opacity\", \"font-weight\", \"grid-column\", \"grid-row\", \"line-clamp\", \"line-height\", \"opacity\", \"order\", \"orphans\", \"stop-opacity\", \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-miterlimit\", \"stroke-opacity\", \"stroke-width\", \"tab-size\", \"widows\", \"z-index\", \"zoom\"]),\n c = /[A-Z]/g;\nfunction u(e) {\n var t = \"\";\n for (var r in e) {\n var o = e[r];\n if (null != o && \"\" !== o) {\n var a = \"-\" == r[0] ? r : s[r] || (s[r] = r.replace(c, \"-$&\").toLowerCase()),\n n = \";\";\n \"number\" != typeof o || a.startsWith(\"--\") || l.has(a) || (n = \"px;\"), t = t + a + \":\" + o + n;\n }\n }\n return t || void 0;\n}\nvar f,\n _,\n p,\n d,\n v = [],\n h = Array.isArray,\n g = Object.assign;\nfunction y(o, a) {\n var n = e.__s;\n e.__s = !0, f = e.__b, _ = e.diffed, p = e.__r, d = e.unmount;\n var i = t(r, null);\n i.__k = [o];\n try {\n return x(o, a || b, !1, void 0, i);\n } finally {\n e.__c && e.__c(o, v), e.__s = n, v.length = 0;\n }\n}\nfunction m() {\n this.__d = !0;\n}\nvar b = {};\nfunction k(e, t) {\n var r = e.type,\n o = new r(e.props, t);\n return e.__c = o, o.__v = e, o.props = e.props, o.context = t, o.__d = !0, null == o.state && (o.state = b), null == o.__s && (o.__s = o.state), r.getDerivedStateFromProps ? o.state = g({}, o.state, r.getDerivedStateFromProps(o.props, o.state)) : o.componentWillMount && (o.componentWillMount(), o.state = o.__s !== o.state ? o.__s : o.state), p && p(e), o.render(o.props, o.state, t);\n}\nfunction x(e, t, n, s, l) {\n if (null == e || !0 === e || !1 === e || \"\" === e) return \"\";\n if (\"object\" != typeof e) return \"function\" == typeof e ? \"\" : i(e + \"\");\n if (h(e)) {\n var c = \"\";\n l.__k = e;\n for (var v = 0; v < e.length; v++) {\n var y = e[v];\n null != y && \"boolean\" != typeof y && (c += x(y, t, n, s, l));\n }\n return c;\n }\n if (void 0 !== e.constructor) return \"\";\n e.__ = l, f && f(e);\n var b,\n S,\n j,\n A = e.type,\n L = e.props,\n M = t;\n if (\"function\" == typeof A) {\n if (A === r) S = L.children;else {\n if (null != (b = A.contextType)) {\n var z = t[b.__c];\n M = z ? z.props.value : b.__;\n }\n if (A.prototype && \"function\" == typeof A.prototype.render) S = k(e, M), j = e.__c;else {\n e.__c = j = {\n __v: e,\n props: L,\n context: M,\n setState: m,\n forceUpdate: m,\n __d: !0,\n __h: []\n };\n for (var F = 0; j.__d && F++ < 25;) j.__d = !1, p && p(e), S = A.call(j, L, M);\n j.__d = !0;\n }\n null != j.getChildContext && (t = g({}, t, j.getChildContext()));\n }\n var T = x(S = null != S && S.type === r && null == S.key ? S.props.children : S, t, n, s, e);\n return _ && _(e), e.__ = void 0, d && d(e), T;\n }\n var W,\n D = \"<\" + A,\n H = \"\";\n for (var O in L) {\n var P = L[O];\n switch (O) {\n case \"children\":\n W = P;\n continue;\n case \"key\":\n case \"ref\":\n case \"__self\":\n case \"__source\":\n continue;\n case \"htmlFor\":\n if (\"for\" in L) continue;\n O = \"for\";\n break;\n case \"className\":\n if (\"class\" in L) continue;\n O = \"class\";\n break;\n case \"defaultChecked\":\n O = \"checked\";\n break;\n case \"defaultSelected\":\n O = \"selected\";\n break;\n case \"defaultValue\":\n case \"value\":\n switch (O = \"value\", A) {\n case \"textarea\":\n W = P;\n continue;\n case \"select\":\n s = P;\n continue;\n case \"option\":\n s != P || \"selected\" in L || (D += \" selected\");\n }\n break;\n case \"dangerouslySetInnerHTML\":\n H = P && P.__html;\n continue;\n case \"style\":\n \"object\" == typeof P && (P = u(P));\n break;\n default:\n if (n && a.test(O)) O = O.toLowerCase().replace(w, \"xlink:\");else {\n if (o.test(O)) continue;\n \"-\" !== O[4] && \"draggable\" !== O || null == P || (P += \"\");\n }\n }\n null != P && !1 !== P && \"function\" != typeof P && (D = !0 === P || \"\" === P ? D + \" \" + O : D + \" \" + O + '=\"' + i(P + \"\") + '\"');\n }\n if (o.test(A)) throw new Error(A + \" is not a valid HTML tag name in \" + D + \">\");\n return H || (\"string\" == typeof W ? H = i(W) : null != W && !1 !== W && !0 !== W && (H = x(W, t, \"svg\" === A || \"foreignObject\" !== A && n, s, e))), _ && _(e), e.__ = void 0, d && d(e), !H && C.has(A) ? D + \"/>\" : D + \">\" + H + \"\";\n}\nvar w = /^xlink:?/,\n C = new Set([\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"]),\n S = y,\n j = y;\nexport default y;\nexport { S as render, j as renderToStaticMarkup, y as renderToString };","var n,\n l,\n u,\n i,\n t,\n r,\n o,\n f,\n e,\n c = {},\n s = [],\n a = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\nfunction h(n, l) {\n for (var u in l) n[u] = l[u];\n return n;\n}\nfunction v(n) {\n var l = n.parentNode;\n l && l.removeChild(n);\n}\nfunction y(l, u, i) {\n var t,\n r,\n o,\n f = {};\n for (o in u) \"key\" == o ? t = u[o] : \"ref\" == o ? r = u[o] : f[o] = u[o];\n if (arguments.length > 2 && (f.children = arguments.length > 3 ? n.call(arguments, 2) : i), \"function\" == typeof l && null != l.defaultProps) for (o in l.defaultProps) void 0 === f[o] && (f[o] = l.defaultProps[o]);\n return p(l, f, t, r, null);\n}\nfunction p(n, i, t, r, o) {\n var f = {\n type: n,\n props: i,\n key: t,\n ref: r,\n __k: null,\n __: null,\n __b: 0,\n __e: null,\n __d: void 0,\n __c: null,\n __h: null,\n constructor: void 0,\n __v: null == o ? ++u : o\n };\n return null == o && null != l.vnode && l.vnode(f), f;\n}\nfunction d() {\n return {\n current: null\n };\n}\nfunction _(n) {\n return n.children;\n}\nfunction k(n, l) {\n this.props = n, this.context = l;\n}\nfunction b(n, l) {\n if (null == l) return n.__ ? b(n.__, n.__.__k.indexOf(n) + 1) : null;\n for (var u; l < n.__k.length; l++) if (null != (u = n.__k[l]) && null != u.__e) return u.__e;\n return \"function\" == typeof n.type ? b(n) : null;\n}\nfunction g(n) {\n var l, u;\n if (null != (n = n.__) && null != n.__c) {\n for (n.__e = n.__c.base = null, l = 0; l < n.__k.length; l++) if (null != (u = n.__k[l]) && null != u.__e) {\n n.__e = n.__c.base = u.__e;\n break;\n }\n return g(n);\n }\n}\nfunction m(n) {\n (!n.__d && (n.__d = !0) && t.push(n) && !w.__r++ || r !== l.debounceRendering) && ((r = l.debounceRendering) || o)(w);\n}\nfunction w() {\n var n, l, u, i, r, o, e, c;\n for (t.sort(f); n = t.shift();) n.__d && (l = t.length, i = void 0, r = void 0, e = (o = (u = n).__v).__e, (c = u.__P) && (i = [], (r = h({}, o)).__v = o.__v + 1, L(c, o, r, u.__n, void 0 !== c.ownerSVGElement, null != o.__h ? [e] : null, i, null == e ? b(o) : e, o.__h), M(i, o), o.__e != e && g(o)), t.length > l && t.sort(f));\n w.__r = 0;\n}\nfunction x(n, l, u, i, t, r, o, f, e, a) {\n var h,\n v,\n y,\n d,\n k,\n g,\n m,\n w = i && i.__k || s,\n x = w.length;\n for (u.__k = [], h = 0; h < l.length; h++) if (null != (d = u.__k[h] = null == (d = l[h]) || \"boolean\" == typeof d || \"function\" == typeof d ? null : \"string\" == typeof d || \"number\" == typeof d || \"bigint\" == typeof d ? p(null, d, null, null, d) : Array.isArray(d) ? p(_, {\n children: d\n }, null, null, null) : d.__b > 0 ? p(d.type, d.props, d.key, d.ref ? d.ref : null, d.__v) : d)) {\n if (d.__ = u, d.__b = u.__b + 1, null === (y = w[h]) || y && d.key == y.key && d.type === y.type) w[h] = void 0;else for (v = 0; v < x; v++) {\n if ((y = w[v]) && d.key == y.key && d.type === y.type) {\n w[v] = void 0;\n break;\n }\n y = null;\n }\n L(n, d, y = y || c, t, r, o, f, e, a), k = d.__e, (v = d.ref) && y.ref != v && (m || (m = []), y.ref && m.push(y.ref, null, d), m.push(v, d.__c || k, d)), null != k ? (null == g && (g = k), \"function\" == typeof d.type && d.__k === y.__k ? d.__d = e = A(d, e, n) : e = C(n, d, y, w, k, e), \"function\" == typeof u.type && (u.__d = e)) : e && y.__e == e && e.parentNode != n && (e = b(y));\n }\n for (u.__e = g, h = x; h--;) null != w[h] && (\"function\" == typeof u.type && null != w[h].__e && w[h].__e == u.__d && (u.__d = $(i).nextSibling), S(w[h], w[h]));\n if (m) for (h = 0; h < m.length; h++) O(m[h], m[++h], m[++h]);\n}\nfunction A(n, l, u) {\n for (var i, t = n.__k, r = 0; t && r < t.length; r++) (i = t[r]) && (i.__ = n, l = \"function\" == typeof i.type ? A(i, l, u) : C(u, i, i, t, i.__e, l));\n return l;\n}\nfunction P(n, l) {\n return l = l || [], null == n || \"boolean\" == typeof n || (Array.isArray(n) ? n.some(function (n) {\n P(n, l);\n }) : l.push(n)), l;\n}\nfunction C(n, l, u, i, t, r) {\n var o, f, e;\n if (void 0 !== l.__d) o = l.__d, l.__d = void 0;else if (null == u || t != r || null == t.parentNode) n: if (null == r || r.parentNode !== n) n.appendChild(t), o = null;else {\n for (f = r, e = 0; (f = f.nextSibling) && e < i.length; e += 1) if (f == t) break n;\n n.insertBefore(t, r), o = r;\n }\n return void 0 !== o ? o : t.nextSibling;\n}\nfunction $(n) {\n var l, u, i;\n if (null == n.type || \"string\" == typeof n.type) return n.__e;\n if (n.__k) for (l = n.__k.length - 1; l >= 0; l--) if ((u = n.__k[l]) && (i = $(u))) return i;\n return null;\n}\nfunction H(n, l, u, i, t) {\n var r;\n for (r in u) \"children\" === r || \"key\" === r || r in l || T(n, r, null, u[r], i);\n for (r in l) t && \"function\" != typeof l[r] || \"children\" === r || \"key\" === r || \"value\" === r || \"checked\" === r || u[r] === l[r] || T(n, r, l[r], u[r], i);\n}\nfunction I(n, l, u) {\n \"-\" === l[0] ? n.setProperty(l, null == u ? \"\" : u) : n[l] = null == u ? \"\" : \"number\" != typeof u || a.test(l) ? u : u + \"px\";\n}\nfunction T(n, l, u, i, t) {\n var r;\n n: if (\"style\" === l) {\n if (\"string\" == typeof u) n.style.cssText = u;else {\n if (\"string\" == typeof i && (n.style.cssText = i = \"\"), i) for (l in i) u && l in u || I(n.style, l, \"\");\n if (u) for (l in u) i && u[l] === i[l] || I(n.style, l, u[l]);\n }\n } else if (\"o\" === l[0] && \"n\" === l[1]) r = l !== (l = l.replace(/Capture$/, \"\")), l = l.toLowerCase() in n ? l.toLowerCase().slice(2) : l.slice(2), n.l || (n.l = {}), n.l[l + r] = u, u ? i || n.addEventListener(l, r ? z : j, r) : n.removeEventListener(l, r ? z : j, r);else if (\"dangerouslySetInnerHTML\" !== l) {\n if (t) l = l.replace(/xlink(H|:h)/, \"h\").replace(/sName$/, \"s\");else if (\"width\" !== l && \"height\" !== l && \"href\" !== l && \"list\" !== l && \"form\" !== l && \"tabIndex\" !== l && \"download\" !== l && l in n) try {\n n[l] = null == u ? \"\" : u;\n break n;\n } catch (n) {}\n \"function\" == typeof u || (null == u || !1 === u && \"-\" !== l[4] ? n.removeAttribute(l) : n.setAttribute(l, u));\n }\n}\nfunction j(n) {\n return this.l[n.type + !1](l.event ? l.event(n) : n);\n}\nfunction z(n) {\n return this.l[n.type + !0](l.event ? l.event(n) : n);\n}\nfunction L(n, u, i, t, r, o, f, e, c) {\n var s,\n a,\n v,\n y,\n p,\n d,\n b,\n g,\n m,\n w,\n A,\n P,\n C,\n $,\n H,\n I = u.type;\n if (void 0 !== u.constructor) return null;\n null != i.__h && (c = i.__h, e = u.__e = i.__e, u.__h = null, o = [e]), (s = l.__b) && s(u);\n try {\n n: if (\"function\" == typeof I) {\n if (g = u.props, m = (s = I.contextType) && t[s.__c], w = s ? m ? m.props.value : s.__ : t, i.__c ? b = (a = u.__c = i.__c).__ = a.__E : (\"prototype\" in I && I.prototype.render ? u.__c = a = new I(g, w) : (u.__c = a = new k(g, w), a.constructor = I, a.render = q), m && m.sub(a), a.props = g, a.state || (a.state = {}), a.context = w, a.__n = t, v = a.__d = !0, a.__h = [], a._sb = []), null == a.__s && (a.__s = a.state), null != I.getDerivedStateFromProps && (a.__s == a.state && (a.__s = h({}, a.__s)), h(a.__s, I.getDerivedStateFromProps(g, a.__s))), y = a.props, p = a.state, a.__v = u, v) null == I.getDerivedStateFromProps && null != a.componentWillMount && a.componentWillMount(), null != a.componentDidMount && a.__h.push(a.componentDidMount);else {\n if (null == I.getDerivedStateFromProps && g !== y && null != a.componentWillReceiveProps && a.componentWillReceiveProps(g, w), !a.__e && null != a.shouldComponentUpdate && !1 === a.shouldComponentUpdate(g, a.__s, w) || u.__v === i.__v) {\n for (u.__v !== i.__v && (a.props = g, a.state = a.__s, a.__d = !1), a.__e = !1, u.__e = i.__e, u.__k = i.__k, u.__k.forEach(function (n) {\n n && (n.__ = u);\n }), A = 0; A < a._sb.length; A++) a.__h.push(a._sb[A]);\n a._sb = [], a.__h.length && f.push(a);\n break n;\n }\n null != a.componentWillUpdate && a.componentWillUpdate(g, a.__s, w), null != a.componentDidUpdate && a.__h.push(function () {\n a.componentDidUpdate(y, p, d);\n });\n }\n if (a.context = w, a.props = g, a.__P = n, P = l.__r, C = 0, \"prototype\" in I && I.prototype.render) {\n for (a.state = a.__s, a.__d = !1, P && P(u), s = a.render(a.props, a.state, a.context), $ = 0; $ < a._sb.length; $++) a.__h.push(a._sb[$]);\n a._sb = [];\n } else do {\n a.__d = !1, P && P(u), s = a.render(a.props, a.state, a.context), a.state = a.__s;\n } while (a.__d && ++C < 25);\n a.state = a.__s, null != a.getChildContext && (t = h(h({}, t), a.getChildContext())), v || null == a.getSnapshotBeforeUpdate || (d = a.getSnapshotBeforeUpdate(y, p)), H = null != s && s.type === _ && null == s.key ? s.props.children : s, x(n, Array.isArray(H) ? H : [H], u, i, t, r, o, f, e, c), a.base = u.__e, u.__h = null, a.__h.length && f.push(a), b && (a.__E = a.__ = null), a.__e = !1;\n } else null == o && u.__v === i.__v ? (u.__k = i.__k, u.__e = i.__e) : u.__e = N(i.__e, u, i, t, r, o, f, c);\n (s = l.diffed) && s(u);\n } catch (n) {\n u.__v = null, (c || null != o) && (u.__e = e, u.__h = !!c, o[o.indexOf(e)] = null), l.__e(n, u, i);\n }\n}\nfunction M(n, u) {\n l.__c && l.__c(u, n), n.some(function (u) {\n try {\n n = u.__h, u.__h = [], n.some(function (n) {\n n.call(u);\n });\n } catch (n) {\n l.__e(n, u.__v);\n }\n });\n}\nfunction N(l, u, i, t, r, o, f, e) {\n var s,\n a,\n h,\n y = i.props,\n p = u.props,\n d = u.type,\n _ = 0;\n if (\"svg\" === d && (r = !0), null != o) for (; _ < o.length; _++) if ((s = o[_]) && \"setAttribute\" in s == !!d && (d ? s.localName === d : 3 === s.nodeType)) {\n l = s, o[_] = null;\n break;\n }\n if (null == l) {\n if (null === d) return document.createTextNode(p);\n l = r ? document.createElementNS(\"http://www.w3.org/2000/svg\", d) : document.createElement(d, p.is && p), o = null, e = !1;\n }\n if (null === d) y === p || e && l.data === p || (l.data = p);else {\n if (o = o && n.call(l.childNodes), a = (y = i.props || c).dangerouslySetInnerHTML, h = p.dangerouslySetInnerHTML, !e) {\n if (null != o) for (y = {}, _ = 0; _ < l.attributes.length; _++) y[l.attributes[_].name] = l.attributes[_].value;\n (h || a) && (h && (a && h.__html == a.__html || h.__html === l.innerHTML) || (l.innerHTML = h && h.__html || \"\"));\n }\n if (H(l, p, y, r, e), h) u.__k = [];else if (_ = u.props.children, x(l, Array.isArray(_) ? _ : [_], u, i, t, r && \"foreignObject\" !== d, o, f, o ? o[0] : i.__k && b(i, 0), e), null != o) for (_ = o.length; _--;) null != o[_] && v(o[_]);\n e || (\"value\" in p && void 0 !== (_ = p.value) && (_ !== l.value || \"progress\" === d && !_ || \"option\" === d && _ !== y.value) && T(l, \"value\", _, y.value, !1), \"checked\" in p && void 0 !== (_ = p.checked) && _ !== l.checked && T(l, \"checked\", _, y.checked, !1));\n }\n return l;\n}\nfunction O(n, u, i) {\n try {\n \"function\" == typeof n ? n(u) : n.current = u;\n } catch (n) {\n l.__e(n, i);\n }\n}\nfunction S(n, u, i) {\n var t, r;\n if (l.unmount && l.unmount(n), (t = n.ref) && (t.current && t.current !== n.__e || O(t, null, u)), null != (t = n.__c)) {\n if (t.componentWillUnmount) try {\n t.componentWillUnmount();\n } catch (n) {\n l.__e(n, u);\n }\n t.base = t.__P = null, n.__c = void 0;\n }\n if (t = n.__k) for (r = 0; r < t.length; r++) t[r] && S(t[r], u, i || \"function\" != typeof n.type);\n i || null == n.__e || v(n.__e), n.__ = n.__e = n.__d = void 0;\n}\nfunction q(n, l, u) {\n return this.constructor(n, u);\n}\nfunction B(u, i, t) {\n var r, o, f;\n l.__ && l.__(u, i), o = (r = \"function\" == typeof t) ? null : t && t.__k || i.__k, f = [], L(i, u = (!r && t || i).__k = y(_, null, [u]), o || c, c, void 0 !== i.ownerSVGElement, !r && t ? [t] : o ? null : i.firstChild ? n.call(i.childNodes) : null, f, !r && t ? t : o ? o.__e : i.firstChild, r), M(f, u);\n}\nfunction D(n, l) {\n B(n, l, D);\n}\nfunction E(l, u, i) {\n var t,\n r,\n o,\n f = h({}, l.props);\n for (o in u) \"key\" == o ? t = u[o] : \"ref\" == o ? r = u[o] : f[o] = u[o];\n return arguments.length > 2 && (f.children = arguments.length > 3 ? n.call(arguments, 2) : i), p(l.type, f, t || l.key, r || l.ref, null);\n}\nfunction F(n, l) {\n var u = {\n __c: l = \"__cC\" + e++,\n __: n,\n Consumer: function (n, l) {\n return n.children(l);\n },\n Provider: function (n) {\n var u, i;\n return this.getChildContext || (u = [], (i = {})[l] = this, this.getChildContext = function () {\n return i;\n }, this.shouldComponentUpdate = function (n) {\n this.props.value !== n.value && u.some(function (n) {\n n.__e = !0, m(n);\n });\n }, this.sub = function (n) {\n u.push(n);\n var l = n.componentWillUnmount;\n n.componentWillUnmount = function () {\n u.splice(u.indexOf(n), 1), l && l.call(n);\n };\n }), n.children;\n }\n };\n return u.Provider.__ = u.Consumer.contextType = u;\n}\nn = s.slice, l = {\n __e: function (n, l, u, i) {\n for (var t, r, o; l = l.__;) if ((t = l.__c) && !t.__) try {\n if ((r = t.constructor) && null != r.getDerivedStateFromError && (t.setState(r.getDerivedStateFromError(n)), o = t.__d), null != t.componentDidCatch && (t.componentDidCatch(n, i || {}), o = t.__d), o) return t.__E = t;\n } catch (l) {\n n = l;\n }\n throw n;\n }\n}, u = 0, i = function (n) {\n return null != n && void 0 === n.constructor;\n}, k.prototype.setState = function (n, l) {\n var u;\n u = null != this.__s && this.__s !== this.state ? this.__s : this.__s = h({}, this.state), \"function\" == typeof n && (n = n(h({}, u), this.props)), n && h(u, n), null != n && this.__v && (l && this._sb.push(l), m(this));\n}, k.prototype.forceUpdate = function (n) {\n this.__v && (this.__e = !0, n && this.__h.push(n), m(this));\n}, k.prototype.render = _, t = [], o = \"function\" == typeof Promise ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, f = function (n, l) {\n return n.__v.__b - l.__v.__b;\n}, w.__r = 0, e = 0;\nexport { k as Component, _ as Fragment, E as cloneElement, F as createContext, y as createElement, d as createRef, y as h, D as hydrate, i as isValidElement, l as options, B as render, P as toChildArray };","import { options as n } from \"preact\";\nvar t,\n r,\n u,\n i,\n o = 0,\n f = [],\n c = [],\n e = n.__b,\n a = n.__r,\n v = n.diffed,\n l = n.__c,\n m = n.unmount;\nfunction d(t, u) {\n n.__h && n.__h(r, t, o || u), o = 0;\n var i = r.__H || (r.__H = {\n __: [],\n __h: []\n });\n return t >= i.__.length && i.__.push({\n __V: c\n }), i.__[t];\n}\nfunction h(n) {\n return o = 1, s(B, n);\n}\nfunction s(n, u, i) {\n var o = d(t++, 2);\n if (o.t = n, !o.__c && (o.__ = [i ? i(u) : B(void 0, u), function (n) {\n var t = o.__N ? o.__N[0] : o.__[0],\n r = o.t(t, n);\n t !== r && (o.__N = [r, o.__[1]], o.__c.setState({}));\n }], o.__c = r, !r.u)) {\n var f = function (n, t, r) {\n if (!o.__c.__H) return !0;\n var u = o.__c.__H.__.filter(function (n) {\n return n.__c;\n });\n if (u.every(function (n) {\n return !n.__N;\n })) return !c || c.call(this, n, t, r);\n var i = !1;\n return u.forEach(function (n) {\n if (n.__N) {\n var t = n.__[0];\n n.__ = n.__N, n.__N = void 0, t !== n.__[0] && (i = !0);\n }\n }), !(!i && o.__c.props === n) && (!c || c.call(this, n, t, r));\n };\n r.u = !0;\n var c = r.shouldComponentUpdate,\n e = r.componentWillUpdate;\n r.componentWillUpdate = function (n, t, r) {\n if (this.__e) {\n var u = c;\n c = void 0, f(n, t, r), c = u;\n }\n e && e.call(this, n, t, r);\n }, r.shouldComponentUpdate = f;\n }\n return o.__N || o.__;\n}\nfunction p(u, i) {\n var o = d(t++, 3);\n !n.__s && z(o.__H, i) && (o.__ = u, o.i = i, r.__H.__h.push(o));\n}\nfunction y(u, i) {\n var o = d(t++, 4);\n !n.__s && z(o.__H, i) && (o.__ = u, o.i = i, r.__h.push(o));\n}\nfunction _(n) {\n return o = 5, F(function () {\n return {\n current: n\n };\n }, []);\n}\nfunction A(n, t, r) {\n o = 6, y(function () {\n return \"function\" == typeof n ? (n(t()), function () {\n return n(null);\n }) : n ? (n.current = t(), function () {\n return n.current = null;\n }) : void 0;\n }, null == r ? r : r.concat(n));\n}\nfunction F(n, r) {\n var u = d(t++, 7);\n return z(u.__H, r) ? (u.__V = n(), u.i = r, u.__h = n, u.__V) : u.__;\n}\nfunction T(n, t) {\n return o = 8, F(function () {\n return n;\n }, t);\n}\nfunction q(n) {\n var u = r.context[n.__c],\n i = d(t++, 9);\n return i.c = n, u ? (null == i.__ && (i.__ = !0, u.sub(r)), u.props.value) : n.__;\n}\nfunction x(t, r) {\n n.useDebugValue && n.useDebugValue(r ? r(t) : t);\n}\nfunction P(n) {\n var u = d(t++, 10),\n i = h();\n return u.__ = n, r.componentDidCatch || (r.componentDidCatch = function (n, t) {\n u.__ && u.__(n, t), i[1](n);\n }), [i[0], function () {\n i[1](void 0);\n }];\n}\nfunction V() {\n var n = d(t++, 11);\n if (!n.__) {\n for (var u = r.__v; null !== u && !u.__m && null !== u.__;) u = u.__;\n var i = u.__m || (u.__m = [0, 0]);\n n.__ = \"P\" + i[0] + \"-\" + i[1]++;\n }\n return n.__;\n}\nfunction b() {\n for (var t; t = f.shift();) if (t.__P && t.__H) try {\n t.__H.__h.forEach(k), t.__H.__h.forEach(w), t.__H.__h = [];\n } catch (r) {\n t.__H.__h = [], n.__e(r, t.__v);\n }\n}\nn.__b = function (n) {\n r = null, e && e(n);\n}, n.__r = function (n) {\n a && a(n), t = 0;\n var i = (r = n.__c).__H;\n i && (u === r ? (i.__h = [], r.__h = [], i.__.forEach(function (n) {\n n.__N && (n.__ = n.__N), n.__V = c, n.__N = n.i = void 0;\n })) : (i.__h.forEach(k), i.__h.forEach(w), i.__h = [])), u = r;\n}, n.diffed = function (t) {\n v && v(t);\n var o = t.__c;\n o && o.__H && (o.__H.__h.length && (1 !== f.push(o) && i === n.requestAnimationFrame || ((i = n.requestAnimationFrame) || j)(b)), o.__H.__.forEach(function (n) {\n n.i && (n.__H = n.i), n.__V !== c && (n.__ = n.__V), n.i = void 0, n.__V = c;\n })), u = r = null;\n}, n.__c = function (t, r) {\n r.some(function (t) {\n try {\n t.__h.forEach(k), t.__h = t.__h.filter(function (n) {\n return !n.__ || w(n);\n });\n } catch (u) {\n r.some(function (n) {\n n.__h && (n.__h = []);\n }), r = [], n.__e(u, t.__v);\n }\n }), l && l(t, r);\n}, n.unmount = function (t) {\n m && m(t);\n var r,\n u = t.__c;\n u && u.__H && (u.__H.__.forEach(function (n) {\n try {\n k(n);\n } catch (n) {\n r = n;\n }\n }), u.__H = void 0, r && n.__e(r, u.__v));\n};\nvar g = \"function\" == typeof requestAnimationFrame;\nfunction j(n) {\n var t,\n r = function () {\n clearTimeout(u), g && cancelAnimationFrame(t), setTimeout(n);\n },\n u = setTimeout(r, 100);\n g && (t = requestAnimationFrame(r));\n}\nfunction k(n) {\n var t = r,\n u = n.__c;\n \"function\" == typeof u && (n.__c = void 0, u()), r = t;\n}\nfunction w(n) {\n var t = r;\n n.__c = n.__(), r = t;\n}\nfunction z(n, t) {\n return !n || n.length !== t.length || t.some(function (t, r) {\n return t !== n[r];\n });\n}\nfunction B(n, t) {\n return \"function\" == typeof t ? t(n) : t;\n}\nexport { T as useCallback, q as useContext, x as useDebugValue, p as useEffect, P as useErrorBoundary, V as useId, A as useImperativeHandle, y as useLayoutEffect, F as useMemo, s as useReducer, _ as useRef, h as useState };","import { options as r } from \"preact\";\nexport { Fragment } from \"preact\";\nvar _ = 0;\nfunction o(o, e, n, t, f, l) {\n var s,\n u,\n a = {};\n for (u in e) \"ref\" == u ? s = e[u] : a[u] = e[u];\n var i = {\n type: o,\n props: a,\n key: n,\n ref: s,\n __k: null,\n __: null,\n __b: 0,\n __e: null,\n __d: void 0,\n __c: null,\n __h: null,\n constructor: void 0,\n __v: --_,\n __source: f,\n __self: l\n };\n if (\"function\" == typeof o && (s = o.defaultProps)) for (u in s) void 0 === a[u] && (a[u] = s[u]);\n return r.vnode && r.vnode(i), i;\n}\nexport { o as jsx, o as jsxDEV, o as jsxs };","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n ;\n shim.isRequired = shim;\n function getShim() {\n return shim;\n }\n ;\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar b = Symbol.for(\"react.element\"),\n c = Symbol.for(\"react.portal\"),\n d = Symbol.for(\"react.fragment\"),\n e = Symbol.for(\"react.strict_mode\"),\n f = Symbol.for(\"react.profiler\"),\n g = Symbol.for(\"react.provider\"),\n h = Symbol.for(\"react.context\"),\n k = Symbol.for(\"react.server_context\"),\n l = Symbol.for(\"react.forward_ref\"),\n m = Symbol.for(\"react.suspense\"),\n n = Symbol.for(\"react.suspense_list\"),\n p = Symbol.for(\"react.memo\"),\n q = Symbol.for(\"react.lazy\"),\n t = Symbol.for(\"react.offscreen\"),\n u;\nu = Symbol.for(\"react.module.reference\");\nfunction v(a) {\n if (\"object\" === typeof a && null !== a) {\n var r = a.$$typeof;\n switch (r) {\n case b:\n switch (a = a.type, a) {\n case d:\n case f:\n case e:\n case m:\n case n:\n return a;\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case h:\n case l:\n case q:\n case p:\n case g:\n return a;\n default:\n return r;\n }\n }\n case c:\n return r;\n }\n }\n}\nexports.ContextConsumer = h;\nexports.ContextProvider = g;\nexports.Element = b;\nexports.ForwardRef = l;\nexports.Fragment = d;\nexports.Lazy = q;\nexports.Memo = p;\nexports.Portal = c;\nexports.Profiler = f;\nexports.StrictMode = e;\nexports.Suspense = m;\nexports.SuspenseList = n;\nexports.isAsyncMode = function () {\n return !1;\n};\nexports.isConcurrentMode = function () {\n return !1;\n};\nexports.isContextConsumer = function (a) {\n return v(a) === h;\n};\nexports.isContextProvider = function (a) {\n return v(a) === g;\n};\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === b;\n};\nexports.isForwardRef = function (a) {\n return v(a) === l;\n};\nexports.isFragment = function (a) {\n return v(a) === d;\n};\nexports.isLazy = function (a) {\n return v(a) === q;\n};\nexports.isMemo = function (a) {\n return v(a) === p;\n};\nexports.isPortal = function (a) {\n return v(a) === c;\n};\nexports.isProfiler = function (a) {\n return v(a) === f;\n};\nexports.isStrictMode = function (a) {\n return v(a) === e;\n};\nexports.isSuspense = function (a) {\n return v(a) === m;\n};\nexports.isSuspenseList = function (a) {\n return v(a) === n;\n};\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === d || a === f || a === e || a === m || a === n || a === t || \"object\" === typeof a && null !== a && (a.$$typeof === q || a.$$typeof === p || a.$$typeof === g || a.$$typeof === h || a.$$typeof === l || a.$$typeof === u || void 0 !== a.getModuleId) ? !0 : !1;\n};\nexports.typeOf = v;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","module.exports = function (e) {\n var t = {};\n function r(n) {\n if (t[n]) return t[n].exports;\n var o = t[n] = {\n i: n,\n l: !1,\n exports: {}\n };\n return e[n].call(o.exports, o, o.exports, r), o.l = !0, o.exports;\n }\n return r.m = e, r.c = t, r.d = function (e, t, n) {\n r.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: n\n });\n }, r.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, r.t = function (e, t) {\n if (1 & t && (e = r(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var n = Object.create(null);\n if (r.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var o in e) r.d(n, o, function (t) {\n return e[t];\n }.bind(null, o));\n return n;\n }, r.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return r.d(t, \"a\", t), t;\n }, r.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, r.p = \"\", r(r.s = 0);\n}([function (e, t, r) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n var n = r(1);\n Object.defineProperty(t, \"default\", {\n enumerable: !0,\n get: function () {\n return (e = n, e && e.__esModule ? e : {\n default: e\n }).default;\n var e;\n }\n });\n}, function (e, t, r) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n var n = a(r(2)),\n o = a(r(3)),\n u = r(6);\n function a(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var l = function (e) {\n var t = e.className,\n r = e.style,\n o = function (e, t) {\n var r = {};\n for (var n in e) t.indexOf(n) >= 0 || Object.prototype.hasOwnProperty.call(e, n) && (r[n] = e[n]);\n return r;\n }(e, [\"className\", \"style\"]);\n return n.default.createElement(\"span\", {\n className: t,\n style: r\n }, (0, u.pluralize)(o));\n };\n l.propTypes = {\n singular: o.default.string.isRequired,\n plural: o.default.string,\n count: o.default.number,\n showCount: o.default.bool,\n className: o.default.string,\n style: o.default.object,\n zero: o.default.string\n }, l.defaultProps = {\n count: 1,\n showCount: !0,\n className: null,\n style: {},\n zero: null\n }, t.default = l;\n}, function (e, t) {\n e.exports = require(\"react\");\n}, function (e, t, r) {\n e.exports = r(4)();\n}, function (e, t, r) {\n \"use strict\";\n\n var n = r(5);\n function o() {}\n function u() {}\n u.resetWarningCache = o, e.exports = function () {\n function e(e, t, r, o, u, a) {\n if (a !== n) {\n var l = new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");\n throw l.name = \"Invariant Violation\", l;\n }\n }\n function t() {\n return e;\n }\n e.isRequired = e;\n var r = {\n array: e,\n bool: e,\n func: e,\n number: e,\n object: e,\n string: e,\n symbol: e,\n any: e,\n arrayOf: t,\n element: e,\n elementType: e,\n instanceOf: t,\n node: e,\n objectOf: t,\n oneOf: t,\n oneOfType: t,\n shape: t,\n exact: t,\n checkPropTypes: u,\n resetWarningCache: o\n };\n return r.PropTypes = r, r;\n };\n}, function (e, t, r) {\n \"use strict\";\n\n e.exports = \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";\n}, function (e, t, r) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.pluralize = void 0;\n var n = r(7);\n t.pluralize = n.pluralize;\n}, function (e, t, r) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n t.pluralize = function (e) {\n var t = e.singular,\n r = e.plural,\n n = e.count,\n o = e.showCount,\n u = e.zero;\n if (0 === n && u) return u;\n var a = t;\n return 1 !== n && (a = r || t + \"s\"), o ? n + \" \" + a : a;\n };\n}]);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = 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 Object.defineProperty(target, descriptor.key, descriptor);\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}();\nvar _react = require(\"react\");\nvar _react2 = _interopRequireDefault(_react);\nvar _propTypes = require(\"prop-types\");\nvar _propTypes2 = _interopRequireDefault(_propTypes);\nvar _classnames = require(\"classnames\");\nvar _classnames2 = _interopRequireDefault(_classnames);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n return target;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(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);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// import styles from \"./styles\"\n\nvar cleanups = {\n // some useless stuff for us\n // that svgo doesn't remove\n title: /.*<\\/title>/gi,\n desc: /<desc>.*<\\/desc>/gi,\n comment: /<!--.*-->/gi,\n defs: /<defs>.*<\\/defs>/gi,\n // remove hardcoded dimensions\n width: / +width=\"\\d+(\\.\\d+)?(px)?\"/gi,\n height: / +height=\"\\d+(\\.\\d+)?(px)?\"/gi,\n // remove fill\n fill: / +fill=\"(none|#[0-9a-f]+)\"/gi,\n // Sketch.app shit\n sketchMSShapeGroup: / +sketch:type=\"MSShapeGroup\"/gi,\n sketchMSPage: / +sketch:type=\"MSPage\"/gi,\n sketchMSLayerGroup: / +sketch:type=\"MSLayerGroup\"/gi\n};\n\n// @styled(styles)\n\nvar SVGInline = function (_Component) {\n _inherits(SVGInline, _Component);\n function SVGInline() {\n _classCallCheck(this, SVGInline);\n return _possibleConstructorReturn(this, (SVGInline.__proto__ || Object.getPrototypeOf(SVGInline)).apply(this, arguments));\n }\n _createClass(SVGInline, [{\n key: \"render\",\n value: function render() {\n var _props = this.props,\n className = _props.className,\n component = _props.component,\n svg = _props.svg,\n fill = _props.fill,\n width = _props.width,\n accessibilityLabel = _props.accessibilityLabel,\n accessibilityDesc = _props.accessibilityDesc,\n classSuffix = _props.classSuffix,\n cleanupExceptions = _props.cleanupExceptions,\n componentProps = _objectWithoutProperties(_props, [\"className\", \"component\", \"svg\", \"fill\", \"width\", \"accessibilityLabel\", \"accessibilityDesc\", \"classSuffix\", \"cleanupExceptions\"]);\n var _props2 = this.props,\n cleanup = _props2.cleanup,\n height = _props2.height;\n if (\n // simple way to enable entire cleanup\n cleanup === true ||\n // passing cleanupExceptions enable cleanup as well\n cleanup.length === 0 && cleanupExceptions.length > 0) {\n cleanup = Object.keys(cleanups);\n }\n cleanup = cleanup.filter(function (key) {\n return !(cleanupExceptions.indexOf(key) > -1);\n });\n if (width && height === undefined) {\n height = width;\n }\n\n // remove useless props for wrapper\n delete componentProps.cleanup;\n delete componentProps.height;\n var classes = (0, _classnames2.default)(_defineProperty({\n SVGInline: true,\n \"SVGInline--cleaned\": cleanup.length\n }, className, className));\n var svgClasses = classes.split(\" \").join(classSuffix + \" \") + classSuffix;\n var svgStr = SVGInline.cleanupSvg(svg, cleanup).replace(/<svg/, \"<svg class=\\\"\" + svgClasses + \"\\\"\" + (fill ? \" fill=\\\"\" + fill + \"\\\"\" : \"\") + (width || height ? ' style=\"' + (width ? \"width: \" + width + \";\" : \"\") + (height ? \"height: \" + height + \";\" : \"\") + '\"' : \"\"));\n var match = void 0;\n if (accessibilityDesc) {\n match = /<svg(.|\\n|\\r\\n)*?>/.exec(svgStr);\n var pos = match.index + match[0].length;\n svgStr = svgStr.substr(0, pos) + (\"<desc>\" + accessibilityDesc + \"</desc>\") + svgStr.substr(pos);\n }\n if (accessibilityLabel) {\n match = match || /<svg(.|\\n|\\r\\n)*?>/.exec(svgStr);\n var _pos = match.index + match[0].length - 1;\n var id = \"SVGInline-\" + SVGInline.idCount++ + \"-title\";\n svgStr = svgStr.substr(0, _pos) + (\" role=\\\"img\\\" aria-labelledby=\\\"\" + id + \"\\\"\") + svgStr.substr(_pos, 1) + (\"<title id=\\\"\" + id + \"\\\">\" + accessibilityLabel + \"\") + svgStr.substr(_pos + 1);\n }\n return _react2.default.createElement(component, _extends({}, componentProps, {\n // take most props\n className: classes,\n dangerouslySetInnerHTML: {\n __html: svgStr\n }\n }));\n }\n }]);\n return SVGInline;\n}(_react.Component);\nSVGInline.propTypes = {\n className: _propTypes2.default.string,\n classSuffix: _propTypes2.default.string,\n component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),\n svg: _propTypes2.default.string.isRequired,\n fill: _propTypes2.default.string,\n cleanup: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.array]),\n cleanupExceptions: _propTypes2.default.array,\n width: _propTypes2.default.string,\n height: _propTypes2.default.string,\n accessibilityLabel: _propTypes2.default.string,\n accessibilityDesc: _propTypes2.default.string\n};\nSVGInline.defaultProps = {\n component: \"span\",\n classSuffix: \"-svg\",\n cleanup: [],\n cleanupExceptions: []\n};\nSVGInline.idCount = 0;\nSVGInline.cleanupSvg = function (svg) {\n var cleanup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return Object.keys(cleanups).filter(function (key) {\n return cleanup.indexOf(key) > -1;\n }).reduce(function (acc, key) {\n return acc.replace(cleanups[key], \"\");\n }, svg).trim();\n};\nexports.default = SVGInline;","function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nexport default function dateParser(date) {\n const parsed = new Date(date);\n if (!Number.isNaN(parsed.valueOf())) {\n return parsed;\n }\n const parts = String(date).match(/\\d+/g);\n if (parts == null || parts.length <= 2) {\n return parsed;\n } else {\n const _parts$map = parts.map(x => parseInt(x)),\n _parts$map2 = _toArray(_parts$map),\n firstP = _parts$map2[0],\n secondP = _parts$map2[1],\n restPs = _parts$map2.slice(2);\n const correctedParts = [firstP, secondP - 1, ...restPs];\n const isoDate = new Date(Date.UTC(...correctedParts));\n return isoDate;\n }\n}","export default function defaultFormatter(value, _unit, suffix) {\n const unit = value !== 1 ? _unit + 's' : _unit;\n return value + ' ' + unit + ' ' + suffix;\n}","const _excluded = [\"date\", \"formatter\", \"component\", \"live\", \"minPeriod\", \"maxPeriod\", \"title\", \"now\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport dateParser from './dateParser';\nimport defaultFormatter from './defaultFormatter';\n// Just some simple constants for readability\nconst MINUTE = 60;\nconst HOUR = MINUTE * 60;\nconst DAY = HOUR * 24;\nconst WEEK = DAY * 7;\nconst MONTH = DAY * 30;\nconst YEAR = DAY * 365;\nexport default function TimeAgo(_ref) {\n let date = _ref.date,\n _ref$formatter = _ref.formatter,\n formatter = _ref$formatter === void 0 ? defaultFormatter : _ref$formatter,\n _ref$component = _ref.component,\n component = _ref$component === void 0 ? 'time' : _ref$component,\n _ref$live = _ref.live,\n live = _ref$live === void 0 ? true : _ref$live,\n _ref$minPeriod = _ref.minPeriod,\n minPeriod = _ref$minPeriod === void 0 ? 0 : _ref$minPeriod,\n _ref$maxPeriod = _ref.maxPeriod,\n maxPeriod = _ref$maxPeriod === void 0 ? WEEK : _ref$maxPeriod,\n title = _ref.title,\n _ref$now = _ref.now,\n now = _ref$now === void 0 ? () => Date.now() : _ref$now,\n passDownProps = _objectWithoutProperties(_ref, _excluded);\n const _useState = useState(now()),\n _useState2 = _slicedToArray(_useState, 2),\n timeNow = _useState2[0],\n setTimeNow = _useState2[1];\n useEffect(() => {\n if (!live) {\n return;\n }\n const tick = () => {\n const then = dateParser(date).valueOf();\n if (!then) {\n console.warn('[react-timeago] Invalid Date provided');\n return 0;\n }\n const seconds = Math.round(Math.abs(timeNow - then) / 1000);\n const unboundPeriod = seconds < MINUTE ? 1000 : seconds < HOUR ? 1000 * MINUTE : seconds < DAY ? 1000 * HOUR : 1000 * WEEK;\n const period = Math.min(Math.max(unboundPeriod, minPeriod * 1000), maxPeriod * 1000);\n if (period) {\n return setTimeout(() => {\n setTimeNow(now());\n }, period);\n }\n return 0;\n };\n const timeoutId = tick();\n return () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n }, [date, live, maxPeriod, minPeriod, now, timeNow]);\n const Komponent = component;\n const then = dateParser(date).valueOf();\n if (!then) {\n return null;\n }\n const seconds = Math.round(Math.abs(timeNow - then) / 1000);\n const suffix = then < timeNow ? 'ago' : 'from now';\n const _ref2 = seconds < MINUTE ? [Math.round(seconds), 'second'] : seconds < HOUR ? [Math.round(seconds / MINUTE), 'minute'] : seconds < DAY ? [Math.round(seconds / HOUR), 'hour'] : seconds < WEEK ? [Math.round(seconds / DAY), 'day'] : seconds < MONTH ? [Math.round(seconds / WEEK), 'week'] : seconds < YEAR ? [Math.round(seconds / MONTH), 'month'] : [Math.round(seconds / YEAR), 'year'],\n _ref3 = _slicedToArray(_ref2, 2),\n value = _ref3[0],\n unit = _ref3[1];\n const passDownTitle = typeof title === 'undefined' ? typeof date === 'string' ? date : dateParser(date).toISOString().substr(0, 16).replace('T', ' ') : title;\n const spreadProps = Komponent === 'time' ? _objectSpread(_objectSpread({}, passDownProps), {}, {\n dateTime: dateParser(date).toISOString()\n }) : passDownProps;\n const nextFormatter = defaultFormatter.bind(null, value, unit, suffix);\n return /*#__PURE__*/React.createElement(Komponent, _extends({}, spreadProps, {\n title: passDownTitle\n }), formatter(value, unit, suffix, then, nextFormatter, now));\n}","\"use strict\";\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = buildFormatter;\nvar React = _interopRequireWildcard(require(\"react\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj[\"default\"] = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\n\n// If the numbers array is present, format numbers with it,\n// otherwise just cast the number to a string and return it\nvar normalizeNumber = function normalizeNumber(numbers, value) {\n return numbers && numbers.length === 10 ? String(value).split('').map(function (digit) {\n return digit.match(/^[0-9]$/) ? numbers[parseInt(digit)] : digit;\n }).join('') : String(value);\n}; // Take a string or a function that takes number of days and returns a string\n// and provide a uniform API to create string parts\n\nvar normalizeFn = function normalizeFn(value, distanceMillis, numbers) {\n return function (stringOrFn) {\n return typeof stringOrFn === 'function' ? stringOrFn(value, distanceMillis).replace(/%d/g, normalizeNumber(numbers, value)) : stringOrFn.replace(/%d/g, normalizeNumber(numbers, value));\n };\n};\nfunction buildFormatter(strings) {\n return function formatter(_value, _unit, suffix, epochMilliseconds, _nextFormmater, now) {\n var current = now();\n var value = _value;\n var unit = _unit; // convert weeks to days if strings don't handle weeks\n\n if (unit === 'week' && !strings.week && !strings.weeks) {\n var days = Math.round(Math.abs(epochMilliseconds - current) / (1000 * 60 * 60 * 24));\n value = days;\n unit = 'day';\n } // create a normalize function for given value\n\n var normalize = normalizeFn(value, current - epochMilliseconds, strings.numbers != null ? strings.numbers : undefined); // The eventual return value stored in an array so that the wordSeparator can be used\n\n var dateString = []; // handle prefixes\n\n if (suffix === 'ago' && strings.prefixAgo) {\n dateString.push(normalize(strings.prefixAgo));\n }\n if (suffix === 'from now' && strings.prefixFromNow) {\n dateString.push(normalize(strings.prefixFromNow));\n } // Handle Main number and unit\n\n var isPlural = value > 1;\n if (isPlural) {\n var stringFn = strings[unit + 's'] || strings[unit] || '%d ' + unit;\n dateString.push(normalize(stringFn));\n } else {\n var _stringFn = strings[unit] || strings[unit + 's'] || '%d ' + unit;\n dateString.push(normalize(_stringFn));\n } // Handle Suffixes\n\n if (suffix === 'ago' && strings.suffixAgo) {\n dateString.push(normalize(strings.suffixAgo));\n }\n if (suffix === 'from now' && strings.suffixFromNow) {\n dateString.push(normalize(strings.suffixFromNow));\n } // join the array into a string and return it\n\n var wordSeparator = typeof strings.wordSeparator === 'string' ? strings.wordSeparator : ' ';\n return dateString.join(wordSeparator);\n };\n}","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nexport default function rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n return getRandomValues(rnds8);\n}","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\nexport default bytesToUuid;","import rng from './rng.js';\nimport bytesToUuid from './bytesToUuid.js';\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n return buf || bytesToUuid(rnds);\n}\nexport default v4;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { v4 } from 'uuid';\nfunction ownKeys$2(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _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 Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function () {};\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = it.call(o);\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nvar check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global$a =\n// eslint-disable-next-line es/no-global-this -- safe\ncheck(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) ||\n// eslint-disable-next-line no-restricted-globals -- safe\ncheck(typeof self == 'object' && self) || check(typeof commonjsGlobal == 'object' && commonjsGlobal) ||\n// eslint-disable-next-line no-new-func -- fallback\nfunction () {\n return this;\n}() || Function('return this')();\nvar objectGetOwnPropertyDescriptor = {};\nvar fails$9 = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\nvar fails$8 = fails$9;\n\n// Detect IE8's incomplete defineProperty implementation\nvar descriptors = !fails$8(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, {\n get: function () {\n return 7;\n }\n })[1] != 7;\n});\nvar fails$7 = fails$9;\nvar functionBindNative = !fails$7(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = function () {/* empty */}.bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\nvar NATIVE_BIND$2 = functionBindNative;\nvar call$4 = Function.prototype.call;\nvar functionCall = NATIVE_BIND$2 ? call$4.bind(call$4) : function () {\n return call$4.apply(call$4, arguments);\n};\nvar objectPropertyIsEnumerable = {};\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor$1 && !$propertyIsEnumerable.call({\n 1: 2\n}, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nobjectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor$1(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\nvar createPropertyDescriptor$2 = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\nvar NATIVE_BIND$1 = functionBindNative;\nvar FunctionPrototype$1 = Function.prototype;\nvar call$3 = FunctionPrototype$1.call;\nvar uncurryThisWithBind = NATIVE_BIND$1 && FunctionPrototype$1.bind.bind(call$3, call$3);\nvar functionUncurryThisRaw = function (fn) {\n return NATIVE_BIND$1 ? uncurryThisWithBind(fn) : function () {\n return call$3.apply(fn, arguments);\n };\n};\nvar uncurryThisRaw$1 = functionUncurryThisRaw;\nvar toString$1 = uncurryThisRaw$1({}.toString);\nvar stringSlice = uncurryThisRaw$1(''.slice);\nvar classofRaw$2 = function (it) {\n return stringSlice(toString$1(it), 8, -1);\n};\nvar classofRaw$1 = classofRaw$2;\nvar uncurryThisRaw = functionUncurryThisRaw;\nvar functionUncurryThis = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw$1(fn) === 'Function') return uncurryThisRaw(fn);\n};\nvar uncurryThis$9 = functionUncurryThis;\nvar fails$6 = fails$9;\nvar classof$3 = classofRaw$2;\nvar $Object$3 = Object;\nvar split = uncurryThis$9(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar indexedObject = fails$6(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object$3('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof$3(it) == 'String' ? split(it, '') : $Object$3(it);\n} : $Object$3;\n\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nvar isNullOrUndefined$2 = function (it) {\n return it === null || it === undefined;\n};\nvar isNullOrUndefined$1 = isNullOrUndefined$2;\nvar $TypeError$5 = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nvar requireObjectCoercible$2 = function (it) {\n if (isNullOrUndefined$1(it)) throw $TypeError$5(\"Can't call method on \" + it);\n return it;\n};\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject$1 = indexedObject;\nvar requireObjectCoercible$1 = requireObjectCoercible$2;\nvar toIndexedObject$4 = function (it) {\n return IndexedObject$1(requireObjectCoercible$1(it));\n};\nvar documentAll$2 = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar IS_HTMLDDA = typeof documentAll$2 == 'undefined' && documentAll$2 !== undefined;\nvar documentAll_1 = {\n all: documentAll$2,\n IS_HTMLDDA: IS_HTMLDDA\n};\nvar $documentAll$1 = documentAll_1;\nvar documentAll$1 = $documentAll$1.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nvar isCallable$c = $documentAll$1.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll$1;\n} : function (argument) {\n return typeof argument == 'function';\n};\nvar isCallable$b = isCallable$c;\nvar $documentAll = documentAll_1;\nvar documentAll = $documentAll.all;\nvar isObject$6 = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable$b(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable$b(it);\n};\nvar global$9 = global$a;\nvar isCallable$a = isCallable$c;\nvar aFunction = function (argument) {\n return isCallable$a(argument) ? argument : undefined;\n};\nvar getBuiltIn$5 = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global$9[namespace]) : global$9[namespace] && global$9[namespace][method];\n};\nvar uncurryThis$8 = functionUncurryThis;\nvar objectIsPrototypeOf = uncurryThis$8({}.isPrototypeOf);\nvar getBuiltIn$4 = getBuiltIn$5;\nvar engineUserAgent = getBuiltIn$4('navigator', 'userAgent') || '';\nvar global$8 = global$a;\nvar userAgent = engineUserAgent;\nvar process = global$8.process;\nvar Deno = global$8.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\nvar engineV8Version = version;\n\n/* eslint-disable es/no-symbol -- required for testing */\n\nvar V8_VERSION = engineV8Version;\nvar fails$5 = fails$9;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nvar symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$5(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n\n/* eslint-disable es/no-symbol -- required for testing */\n\nvar NATIVE_SYMBOL$1 = symbolConstructorDetection;\nvar useSymbolAsUid = NATIVE_SYMBOL$1 && !Symbol.sham && typeof Symbol.iterator == 'symbol';\nvar getBuiltIn$3 = getBuiltIn$5;\nvar isCallable$9 = isCallable$c;\nvar isPrototypeOf = objectIsPrototypeOf;\nvar USE_SYMBOL_AS_UID$1 = useSymbolAsUid;\nvar $Object$2 = Object;\nvar isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn$3('Symbol');\n return isCallable$9($Symbol) && isPrototypeOf($Symbol.prototype, $Object$2(it));\n};\nvar $String$1 = String;\nvar tryToString$1 = function (argument) {\n try {\n return $String$1(argument);\n } catch (error) {\n return 'Object';\n }\n};\nvar isCallable$8 = isCallable$c;\nvar tryToString = tryToString$1;\nvar $TypeError$4 = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nvar aCallable$2 = function (argument) {\n if (isCallable$8(argument)) return argument;\n throw $TypeError$4(tryToString(argument) + ' is not a function');\n};\nvar aCallable$1 = aCallable$2;\nvar isNullOrUndefined = isNullOrUndefined$2;\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nvar getMethod$1 = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable$1(func);\n};\nvar call$2 = functionCall;\nvar isCallable$7 = isCallable$c;\nvar isObject$5 = isObject$6;\nvar $TypeError$3 = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nvar ordinaryToPrimitive$1 = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable$7(fn = input.toString) && !isObject$5(val = call$2(fn, input))) return val;\n if (isCallable$7(fn = input.valueOf) && !isObject$5(val = call$2(fn, input))) return val;\n if (pref !== 'string' && isCallable$7(fn = input.toString) && !isObject$5(val = call$2(fn, input))) return val;\n throw $TypeError$3(\"Can't convert object to primitive value\");\n};\nvar shared$3 = {\n exports: {}\n};\nvar global$7 = global$a;\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty$2 = Object.defineProperty;\nvar defineGlobalProperty$3 = function (key, value) {\n try {\n defineProperty$2(global$7, key, {\n value: value,\n configurable: true,\n writable: true\n });\n } catch (error) {\n global$7[key] = value;\n }\n return value;\n};\nvar global$6 = global$a;\nvar defineGlobalProperty$2 = defineGlobalProperty$3;\nvar SHARED = '__core-js_shared__';\nvar store$3 = global$6[SHARED] || defineGlobalProperty$2(SHARED, {});\nvar sharedStore = store$3;\nvar store$2 = sharedStore;\n(shared$3.exports = function (key, value) {\n return store$2[key] || (store$2[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.25.5',\n mode: 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.25.5/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\nvar requireObjectCoercible = requireObjectCoercible$2;\nvar $Object$1 = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nvar toObject$2 = function (argument) {\n return $Object$1(requireObjectCoercible(argument));\n};\nvar uncurryThis$7 = functionUncurryThis;\nvar toObject$1 = toObject$2;\nvar hasOwnProperty = uncurryThis$7({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nvar hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject$1(it), key);\n};\nvar uncurryThis$6 = functionUncurryThis;\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis$6(1.0.toString);\nvar uid$2 = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\nvar global$5 = global$a;\nvar shared$2 = shared$3.exports;\nvar hasOwn$6 = hasOwnProperty_1;\nvar uid$1 = uid$2;\nvar NATIVE_SYMBOL = symbolConstructorDetection;\nvar USE_SYMBOL_AS_UID = useSymbolAsUid;\nvar WellKnownSymbolsStore = shared$2('wks');\nvar Symbol$1 = global$5.Symbol;\nvar symbolFor = Symbol$1 && Symbol$1['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1;\nvar wellKnownSymbol$5 = function (name) {\n if (!hasOwn$6(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn$6(Symbol$1, name)) {\n WellKnownSymbolsStore[name] = Symbol$1[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n }\n return WellKnownSymbolsStore[name];\n};\nvar call$1 = functionCall;\nvar isObject$4 = isObject$6;\nvar isSymbol$1 = isSymbol$2;\nvar getMethod = getMethod$1;\nvar ordinaryToPrimitive = ordinaryToPrimitive$1;\nvar wellKnownSymbol$4 = wellKnownSymbol$5;\nvar $TypeError$2 = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol$4('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nvar toPrimitive$1 = function (input, pref) {\n if (!isObject$4(input) || isSymbol$1(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call$1(exoticToPrim, input, pref);\n if (!isObject$4(result) || isSymbol$1(result)) return result;\n throw $TypeError$2(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\nvar toPrimitive = toPrimitive$1;\nvar isSymbol = isSymbol$2;\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nvar toPropertyKey$2 = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\nvar global$4 = global$a;\nvar isObject$3 = isObject$6;\nvar document$1 = global$4.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS$1 = isObject$3(document$1) && isObject$3(document$1.createElement);\nvar documentCreateElement$1 = function (it) {\n return EXISTS$1 ? document$1.createElement(it) : {};\n};\nvar DESCRIPTORS$7 = descriptors;\nvar fails$4 = fails$9;\nvar createElement = documentCreateElement$1;\n\n// Thanks to IE8 for its funny defineProperty\nvar ie8DomDefine = !DESCRIPTORS$7 && !fails$4(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () {\n return 7;\n }\n }).a != 7;\n});\nvar DESCRIPTORS$6 = descriptors;\nvar call = functionCall;\nvar propertyIsEnumerableModule = objectPropertyIsEnumerable;\nvar createPropertyDescriptor$1 = createPropertyDescriptor$2;\nvar toIndexedObject$3 = toIndexedObject$4;\nvar toPropertyKey$1 = toPropertyKey$2;\nvar hasOwn$5 = hasOwnProperty_1;\nvar IE8_DOM_DEFINE$1 = ie8DomDefine;\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nobjectGetOwnPropertyDescriptor.f = DESCRIPTORS$6 ? $getOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject$3(O);\n P = toPropertyKey$1(P);\n if (IE8_DOM_DEFINE$1) try {\n return $getOwnPropertyDescriptor$1(O, P);\n } catch (error) {/* empty */}\n if (hasOwn$5(O, P)) return createPropertyDescriptor$1(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\nvar objectDefineProperty = {};\nvar DESCRIPTORS$5 = descriptors;\nvar fails$3 = fails$9;\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nvar v8PrototypeDefineBug = DESCRIPTORS$5 && fails$3(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () {/* empty */}, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\nvar isObject$2 = isObject$6;\nvar $String = String;\nvar $TypeError$1 = TypeError;\n\n// `Assert: Type(argument) is Object`\nvar anObject$4 = function (argument) {\n if (isObject$2(argument)) return argument;\n throw $TypeError$1($String(argument) + ' is not an object');\n};\nvar DESCRIPTORS$4 = descriptors;\nvar IE8_DOM_DEFINE = ie8DomDefine;\nvar V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug;\nvar anObject$3 = anObject$4;\nvar toPropertyKey = toPropertyKey$2;\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE$1 = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nobjectDefineProperty.f = DESCRIPTORS$4 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) {\n anObject$3(O);\n P = toPropertyKey(P);\n anObject$3(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n }\n return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject$3(O);\n P = toPropertyKey(P);\n anObject$3(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) {/* 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};\nvar DESCRIPTORS$3 = descriptors;\nvar definePropertyModule$3 = objectDefineProperty;\nvar createPropertyDescriptor = createPropertyDescriptor$2;\nvar createNonEnumerableProperty$2 = DESCRIPTORS$3 ? function (object, key, value) {\n return definePropertyModule$3.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\nvar makeBuiltIn$2 = {\n exports: {}\n};\nvar DESCRIPTORS$2 = descriptors;\nvar hasOwn$4 = hasOwnProperty_1;\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS$2 && Object.getOwnPropertyDescriptor;\nvar EXISTS = hasOwn$4(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && function something() {/* empty */}.name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS$2 || DESCRIPTORS$2 && getDescriptor(FunctionPrototype, 'name').configurable);\nvar functionName = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\nvar uncurryThis$5 = functionUncurryThis;\nvar isCallable$6 = isCallable$c;\nvar store$1 = sharedStore;\nvar functionToString = uncurryThis$5(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable$6(store$1.inspectSource)) {\n store$1.inspectSource = function (it) {\n return functionToString(it);\n };\n}\nvar inspectSource$2 = store$1.inspectSource;\nvar global$3 = global$a;\nvar isCallable$5 = isCallable$c;\nvar WeakMap$1 = global$3.WeakMap;\nvar weakMapBasicDetection = isCallable$5(WeakMap$1) && /native code/.test(String(WeakMap$1));\nvar shared$1 = shared$3.exports;\nvar uid = uid$2;\nvar keys = shared$1('keys');\nvar sharedKey$2 = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\nvar hiddenKeys$4 = {};\nvar NATIVE_WEAK_MAP = weakMapBasicDetection;\nvar global$2 = global$a;\nvar isObject$1 = isObject$6;\nvar createNonEnumerableProperty$1 = createNonEnumerableProperty$2;\nvar hasOwn$3 = hasOwnProperty_1;\nvar shared = sharedStore;\nvar sharedKey$1 = sharedKey$2;\nvar hiddenKeys$3 = hiddenKeys$4;\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError$1 = global$2.TypeError;\nvar WeakMap = global$2.WeakMap;\nvar set, get, has;\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject$1(it) || (state = get(it)).type !== TYPE) {\n throw TypeError$1('Incompatible receiver, ' + TYPE + ' required');\n }\n return state;\n };\n};\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError$1(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey$1('state');\n hiddenKeys$3[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn$3(it, STATE)) throw TypeError$1(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty$1(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn$3(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn$3(it, STATE);\n };\n}\nvar internalState = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\nvar fails$2 = fails$9;\nvar isCallable$4 = isCallable$c;\nvar hasOwn$2 = hasOwnProperty_1;\nvar DESCRIPTORS$1 = descriptors;\nvar CONFIGURABLE_FUNCTION_NAME = functionName.CONFIGURABLE;\nvar inspectSource$1 = inspectSource$2;\nvar InternalStateModule = internalState;\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty$1 = Object.defineProperty;\nvar CONFIGURABLE_LENGTH = DESCRIPTORS$1 && !fails$2(function () {\n return defineProperty$1(function () {/* empty */}, 'length', {\n value: 8\n }).length !== 8;\n});\nvar TEMPLATE = String(String).split('String');\nvar makeBuiltIn$1 = makeBuiltIn$2.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn$2(value, 'name') || CONFIGURABLE_FUNCTION_NAME && value.name !== name) {\n if (DESCRIPTORS$1) defineProperty$1(value, 'name', {\n value: name,\n configurable: true\n });else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn$2(options, 'arity') && value.length !== options.arity) {\n defineProperty$1(value, 'length', {\n value: options.arity\n });\n }\n try {\n if (options && hasOwn$2(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS$1) defineProperty$1(value, 'prototype', {\n writable: false\n });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) {/* empty */}\n var state = enforceInternalState(value);\n if (!hasOwn$2(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn$1(function toString() {\n return isCallable$4(this) && getInternalState(this).source || inspectSource$1(this);\n}, 'toString');\nvar isCallable$3 = isCallable$c;\nvar definePropertyModule$2 = objectDefineProperty;\nvar makeBuiltIn = makeBuiltIn$2.exports;\nvar defineGlobalProperty$1 = defineGlobalProperty$3;\nvar defineBuiltIn$1 = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable$3(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;else defineGlobalProperty$1(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];else if (O[key]) simple = true;\n } catch (error) {/* empty */}\n if (simple) O[key] = value;else definePropertyModule$2.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n }\n return O;\n};\nvar objectGetOwnPropertyNames = {};\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nvar mathTrunc = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\nvar trunc = mathTrunc;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nvar toIntegerOrInfinity$2 = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\nvar toIntegerOrInfinity$1 = toIntegerOrInfinity$2;\nvar max = Math.max;\nvar min$1 = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nvar toAbsoluteIndex$1 = function (index, length) {\n var integer = toIntegerOrInfinity$1(index);\n return integer < 0 ? max(integer + length, 0) : min$1(integer, length);\n};\nvar toIntegerOrInfinity = toIntegerOrInfinity$2;\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nvar toLength$1 = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\nvar toLength = toLength$1;\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nvar lengthOfArrayLike$2 = function (obj) {\n return toLength(obj.length);\n};\nvar toIndexedObject$2 = toIndexedObject$4;\nvar toAbsoluteIndex = toAbsoluteIndex$1;\nvar lengthOfArrayLike$1 = lengthOfArrayLike$2;\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod$1 = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject$2($this);\n var length = lengthOfArrayLike$1(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (; length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n }\n return !IS_INCLUDES && -1;\n };\n};\nvar arrayIncludes = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod$1(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod$1(false)\n};\nvar uncurryThis$4 = functionUncurryThis;\nvar hasOwn$1 = hasOwnProperty_1;\nvar toIndexedObject$1 = toIndexedObject$4;\nvar indexOf = arrayIncludes.indexOf;\nvar hiddenKeys$2 = hiddenKeys$4;\nvar push$1 = uncurryThis$4([].push);\nvar objectKeysInternal = function (object, names) {\n var O = toIndexedObject$1(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn$1(hiddenKeys$2, key) && hasOwn$1(O, key) && push$1(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn$1(O, key = names[i++])) {\n ~indexOf(result, key) || push$1(result, key);\n }\n return result;\n};\n\n// IE8- don't enum bug keys\nvar enumBugKeys$3 = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf'];\nvar internalObjectKeys$1 = objectKeysInternal;\nvar enumBugKeys$2 = enumBugKeys$3;\nvar hiddenKeys$1 = enumBugKeys$2.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nobjectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys$1(O, hiddenKeys$1);\n};\nvar objectGetOwnPropertySymbols = {};\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nobjectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols;\nvar getBuiltIn$2 = getBuiltIn$5;\nvar uncurryThis$3 = functionUncurryThis;\nvar getOwnPropertyNamesModule = objectGetOwnPropertyNames;\nvar getOwnPropertySymbolsModule = objectGetOwnPropertySymbols;\nvar anObject$2 = anObject$4;\nvar concat = uncurryThis$3([].concat);\n\n// all object keys, includes non-enumerable and symbols\nvar ownKeys$1 = getBuiltIn$2('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject$2(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\nvar hasOwn = hasOwnProperty_1;\nvar ownKeys = ownKeys$1;\nvar getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor;\nvar definePropertyModule$1 = objectDefineProperty;\nvar copyConstructorProperties$1 = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule$1.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\nvar fails$1 = fails$9;\nvar isCallable$2 = isCallable$c;\nvar replacement = /#|\\.prototype\\./;\nvar isForced$1 = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true : value == NATIVE ? false : isCallable$2(detection) ? fails$1(detection) : !!detection;\n};\nvar normalize = isForced$1.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\nvar data = isForced$1.data = {};\nvar NATIVE = isForced$1.NATIVE = 'N';\nvar POLYFILL = isForced$1.POLYFILL = 'P';\nvar isForced_1 = isForced$1;\nvar global$1 = global$a;\nvar getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;\nvar createNonEnumerableProperty = createNonEnumerableProperty$2;\nvar defineBuiltIn = defineBuiltIn$1;\nvar defineGlobalProperty = defineGlobalProperty$3;\nvar copyConstructorProperties = copyConstructorProperties$1;\nvar isForced = isForced_1;\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nvar _export = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global$1;\n } else if (STATIC) {\n target = global$1[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global$1[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || targetProperty && targetProperty.sham) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\nvar uncurryThis$2 = functionUncurryThis;\nvar aCallable = aCallable$2;\nvar NATIVE_BIND = functionBindNative;\nvar bind$1 = uncurryThis$2(uncurryThis$2.bind);\n\n// optional / simple context binding\nvar functionBindContext = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind$1(fn, that) : function /* ...args */\n () {\n return fn.apply(that, arguments);\n };\n};\nvar classof$2 = classofRaw$2;\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nvar isArray$1 = Array.isArray || function isArray(argument) {\n return classof$2(argument) == 'Array';\n};\nvar wellKnownSymbol$3 = wellKnownSymbol$5;\nvar TO_STRING_TAG$1 = wellKnownSymbol$3('toStringTag');\nvar test = {};\ntest[TO_STRING_TAG$1] = 'z';\nvar toStringTagSupport = String(test) === '[object z]';\nvar TO_STRING_TAG_SUPPORT = toStringTagSupport;\nvar isCallable$1 = isCallable$c;\nvar classofRaw = classofRaw$2;\nvar wellKnownSymbol$2 = wellKnownSymbol$5;\nvar TO_STRING_TAG = wellKnownSymbol$2('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () {\n return arguments;\n}()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) {/* empty */}\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nvar classof$1 = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable$1(O.callee) ? 'Arguments' : result;\n};\nvar uncurryThis$1 = functionUncurryThis;\nvar fails = fails$9;\nvar isCallable = isCallable$c;\nvar classof = classof$1;\nvar getBuiltIn$1 = getBuiltIn$5;\nvar inspectSource = inspectSource$2;\nvar noop = function () {/* empty */};\nvar empty = [];\nvar construct = getBuiltIn$1('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis$1(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction':\n return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nvar isConstructor$1 = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function () {\n called = true;\n }) || called;\n}) ? isConstructorLegacy : isConstructorModern;\nvar isArray = isArray$1;\nvar isConstructor = isConstructor$1;\nvar isObject = isObject$6;\nvar wellKnownSymbol$1 = wellKnownSymbol$5;\nvar SPECIES = wellKnownSymbol$1('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nvar arraySpeciesConstructor$1 = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n }\n return C === undefined ? $Array : C;\n};\nvar arraySpeciesConstructor = arraySpeciesConstructor$1;\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nvar arraySpeciesCreate$1 = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\nvar bind = functionBindContext;\nvar uncurryThis = functionUncurryThis;\nvar IndexedObject = indexedObject;\nvar toObject = toObject$2;\nvar lengthOfArrayLike = lengthOfArrayLike$2;\nvar arraySpeciesCreate = arraySpeciesCreate$1;\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (; length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3:\n return true;\n // some\n case 5:\n return value;\n // find\n case 6:\n return index;\n // findIndex\n case 2:\n push(target, value);\n // filter\n } else switch (TYPE) {\n case 4:\n return false;\n // every\n case 7:\n push(target, value);\n // filterReject\n }\n }\n }\n\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\nvar arrayIteration = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\nvar objectDefineProperties = {};\nvar internalObjectKeys = objectKeysInternal;\nvar enumBugKeys$1 = enumBugKeys$3;\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nvar objectKeys$1 = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys$1);\n};\nvar DESCRIPTORS = descriptors;\nvar V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug;\nvar definePropertyModule = objectDefineProperty;\nvar anObject$1 = anObject$4;\nvar toIndexedObject = toIndexedObject$4;\nvar objectKeys = objectKeys$1;\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nobjectDefineProperties.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject$1(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\nvar getBuiltIn = getBuiltIn$5;\nvar html$1 = getBuiltIn('document', 'documentElement');\n\n/* global ActiveXObject -- old IE, WSH */\n\nvar anObject = anObject$4;\nvar definePropertiesModule = objectDefineProperties;\nvar enumBugKeys = enumBugKeys$3;\nvar hiddenKeys = hiddenKeys$4;\nvar html = html$1;\nvar documentCreateElement = documentCreateElement$1;\nvar sharedKey = sharedKey$2;\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar EmptyConstructor = function () {/* empty */};\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) {/* ignore */}\n NullProtoObject = typeof document != 'undefined' ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nvar objectCreate = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\nvar wellKnownSymbol = wellKnownSymbol$5;\nvar create = objectCreate;\nvar defineProperty = objectDefineProperty.f;\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nvar addToUnscopables$1 = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\nvar $ = _export;\nvar $find = arrayIteration.find;\nvar addToUnscopables = addToUnscopables$1;\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () {\n SKIPS_HOLES = false;\n});\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({\n target: 'Array',\n proto: true,\n forced: SKIPS_HOLES\n}, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\nvar CONSTANT = {\n GLOBAL: {\n HIDE: '__react_tooltip_hide_event',\n REBUILD: '__react_tooltip_rebuild_event',\n SHOW: '__react_tooltip_show_event'\n }\n};\n\n/**\n * Static methods for react-tooltip\n */\nvar dispatchGlobalEvent = function dispatchGlobalEvent(eventName, opts) {\n // Compatible with IE\n // @see http://stackoverflow.com/questions/26596123/internet-explorer-9-10-11-event-constructor-doesnt-work\n // @see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\n var event;\n if (typeof window.CustomEvent === 'function') {\n event = new window.CustomEvent(eventName, {\n detail: opts\n });\n } else {\n event = document.createEvent('Event');\n event.initEvent(eventName, false, true, opts);\n }\n window.dispatchEvent(event);\n};\nfunction staticMethods(target) {\n /**\n * Hide all tooltip\n * @trigger ReactTooltip.hide()\n */\n target.hide = function (target) {\n dispatchGlobalEvent(CONSTANT.GLOBAL.HIDE, {\n target: target\n });\n };\n\n /**\n * Rebuild all tooltip\n * @trigger ReactTooltip.rebuild()\n */\n target.rebuild = function () {\n dispatchGlobalEvent(CONSTANT.GLOBAL.REBUILD);\n };\n\n /**\n * Show specific tooltip\n * @trigger ReactTooltip.show()\n */\n target.show = function (target) {\n dispatchGlobalEvent(CONSTANT.GLOBAL.SHOW, {\n target: target\n });\n };\n target.prototype.globalRebuild = function () {\n if (this.mount) {\n this.unbindListener();\n this.bindListener();\n }\n };\n target.prototype.globalShow = function (event) {\n if (this.mount) {\n var hasTarget = event && event.detail && event.detail.target && true || false;\n // Create a fake event, specific show will limit the type to `solid`\n // only `float` type cares e.clientX e.clientY\n this.showTooltip({\n currentTarget: hasTarget && event.detail.target\n }, true);\n }\n };\n target.prototype.globalHide = function (event) {\n if (this.mount) {\n var hasTarget = event && event.detail && event.detail.target && true || false;\n this.hideTooltip({\n currentTarget: hasTarget && event.detail.target\n }, hasTarget);\n }\n };\n}\n\n/**\n * Events that should be bound to the window\n */\nfunction windowListener(target) {\n target.prototype.bindWindowEvents = function (resizeHide) {\n // ReactTooltip.hide\n window.removeEventListener(CONSTANT.GLOBAL.HIDE, this.globalHide);\n window.addEventListener(CONSTANT.GLOBAL.HIDE, this.globalHide, false);\n\n // ReactTooltip.rebuild\n window.removeEventListener(CONSTANT.GLOBAL.REBUILD, this.globalRebuild);\n window.addEventListener(CONSTANT.GLOBAL.REBUILD, this.globalRebuild, false);\n\n // ReactTooltip.show\n window.removeEventListener(CONSTANT.GLOBAL.SHOW, this.globalShow);\n window.addEventListener(CONSTANT.GLOBAL.SHOW, this.globalShow, false);\n\n // Resize\n if (resizeHide) {\n window.removeEventListener('resize', this.onWindowResize);\n window.addEventListener('resize', this.onWindowResize, false);\n }\n };\n target.prototype.unbindWindowEvents = function () {\n window.removeEventListener(CONSTANT.GLOBAL.HIDE, this.globalHide);\n window.removeEventListener(CONSTANT.GLOBAL.REBUILD, this.globalRebuild);\n window.removeEventListener(CONSTANT.GLOBAL.SHOW, this.globalShow);\n window.removeEventListener('resize', this.onWindowResize);\n };\n\n /**\n * invoked by resize event of window\n */\n target.prototype.onWindowResize = function () {\n if (!this.mount) return;\n this.hideTooltip();\n };\n}\n\n/**\n * Custom events to control showing and hiding of tooltip\n *\n * @attributes\n * - `event` {String}\n * - `eventOff` {String}\n */\n\nvar checkStatus = function checkStatus(dataEventOff, e) {\n var show = this.state.show;\n var id = this.props.id;\n var isCapture = this.isCapture(e.currentTarget);\n var currentItem = e.currentTarget.getAttribute('currentItem');\n if (!isCapture) e.stopPropagation();\n if (show && currentItem === 'true') {\n if (!dataEventOff) this.hideTooltip(e);\n } else {\n e.currentTarget.setAttribute('currentItem', 'true');\n setUntargetItems(e.currentTarget, this.getTargetArray(id));\n this.showTooltip(e);\n }\n};\nvar setUntargetItems = function setUntargetItems(currentTarget, targetArray) {\n for (var i = 0; i < targetArray.length; i++) {\n if (currentTarget !== targetArray[i]) {\n targetArray[i].setAttribute('currentItem', 'false');\n } else {\n targetArray[i].setAttribute('currentItem', 'true');\n }\n }\n};\nvar customListeners = {\n id: '9b69f92e-d3fe-498b-b1b4-c5e63a51b0cf',\n set: function set(target, event, listener) {\n if (this.id in target) {\n var map = target[this.id];\n map[event] = listener;\n } else {\n // this is workaround for WeakMap, which is not supported in older browsers, such as IE\n Object.defineProperty(target, this.id, {\n configurable: true,\n value: _defineProperty({}, event, listener)\n });\n }\n },\n get: function get(target, event) {\n var map = target[this.id];\n if (map !== undefined) {\n return map[event];\n }\n }\n};\nfunction customEvent(target) {\n target.prototype.isCustomEvent = function (ele) {\n var event = this.state.event;\n return event || !!ele.getAttribute('data-event');\n };\n\n /* Bind listener for custom event */\n target.prototype.customBindListener = function (ele) {\n var _this = this;\n var _this$state = this.state,\n event = _this$state.event,\n eventOff = _this$state.eventOff;\n var dataEvent = ele.getAttribute('data-event') || event;\n var dataEventOff = ele.getAttribute('data-event-off') || eventOff;\n dataEvent.split(' ').forEach(function (event) {\n ele.removeEventListener(event, customListeners.get(ele, event));\n var customListener = checkStatus.bind(_this, dataEventOff);\n customListeners.set(ele, event, customListener);\n ele.addEventListener(event, customListener, false);\n });\n if (dataEventOff) {\n dataEventOff.split(' ').forEach(function (event) {\n ele.removeEventListener(event, _this.hideTooltip);\n ele.addEventListener(event, _this.hideTooltip, false);\n });\n }\n };\n\n /* Unbind listener for custom event */\n target.prototype.customUnbindListener = function (ele) {\n var _this$state2 = this.state,\n event = _this$state2.event,\n eventOff = _this$state2.eventOff;\n var dataEvent = event || ele.getAttribute('data-event');\n var dataEventOff = eventOff || ele.getAttribute('data-event-off');\n ele.removeEventListener(dataEvent, customListeners.get(ele, event));\n if (dataEventOff) ele.removeEventListener(dataEventOff, this.hideTooltip);\n };\n}\n\n/**\n * Util method to judge if it should follow capture model\n */\n\nfunction isCapture(target) {\n target.prototype.isCapture = function (currentTarget) {\n return currentTarget && currentTarget.getAttribute('data-iscapture') === 'true' || this.props.isCapture || false;\n };\n}\n\n/**\n * Util method to get effect\n */\n\nfunction getEffect(target) {\n target.prototype.getEffect = function (currentTarget) {\n var dataEffect = currentTarget.getAttribute('data-effect');\n return dataEffect || this.props.effect || 'float';\n };\n}\n\n/**\n * Util method to get effect\n */\nvar makeProxy = function makeProxy(e) {\n var proxy = {};\n for (var key in e) {\n if (typeof e[key] === 'function') {\n proxy[key] = e[key].bind(e);\n } else {\n proxy[key] = e[key];\n }\n }\n return proxy;\n};\nvar bodyListener = function bodyListener(callback, options, e) {\n var _options$respectEffec = options.respectEffect,\n respectEffect = _options$respectEffec === void 0 ? false : _options$respectEffec,\n _options$customEvent = options.customEvent,\n customEvent = _options$customEvent === void 0 ? false : _options$customEvent;\n var id = this.props.id;\n var tip = null;\n var forId;\n var target = e.target;\n var lastTarget;\n // walk up parent chain until tip is found\n // there is no match if parent visible area is matched by mouse position, so some corner cases might not work as expected\n while (tip === null && target !== null) {\n lastTarget = target;\n tip = target.getAttribute('data-tip') || null;\n forId = target.getAttribute('data-for') || null;\n target = target.parentElement;\n }\n target = lastTarget || e.target;\n if (this.isCustomEvent(target) && !customEvent) {\n return;\n }\n var isTargetBelongsToTooltip = id == null && forId == null || forId === id;\n if (tip != null && (!respectEffect || this.getEffect(target) === 'float') && isTargetBelongsToTooltip) {\n var proxy = makeProxy(e);\n proxy.currentTarget = target;\n callback(proxy);\n }\n};\nvar findCustomEvents = function findCustomEvents(targetArray, dataAttribute) {\n var events = {};\n targetArray.forEach(function (target) {\n var event = target.getAttribute(dataAttribute);\n if (event) event.split(' ').forEach(function (event) {\n return events[event] = true;\n });\n });\n return events;\n};\nvar getBody = function getBody() {\n return document.getElementsByTagName('body')[0];\n};\nfunction bodyMode(target) {\n target.prototype.isBodyMode = function () {\n return !!this.props.bodyMode;\n };\n target.prototype.bindBodyListener = function (targetArray) {\n var _this = this;\n var _this$state = this.state,\n event = _this$state.event,\n eventOff = _this$state.eventOff,\n possibleCustomEvents = _this$state.possibleCustomEvents,\n possibleCustomEventsOff = _this$state.possibleCustomEventsOff;\n var body = getBody();\n var customEvents = findCustomEvents(targetArray, 'data-event');\n var customEventsOff = findCustomEvents(targetArray, 'data-event-off');\n if (event != null) customEvents[event] = true;\n if (eventOff != null) customEventsOff[eventOff] = true;\n possibleCustomEvents.split(' ').forEach(function (event) {\n return customEvents[event] = true;\n });\n possibleCustomEventsOff.split(' ').forEach(function (event) {\n return customEventsOff[event] = true;\n });\n this.unbindBodyListener(body);\n var listeners = this.bodyModeListeners = {};\n if (event == null) {\n listeners.mouseover = bodyListener.bind(this, this.showTooltip, {});\n listeners.mousemove = bodyListener.bind(this, this.updateTooltip, {\n respectEffect: true\n });\n listeners.mouseout = bodyListener.bind(this, this.hideTooltip, {});\n }\n for (var _event in customEvents) {\n listeners[_event] = bodyListener.bind(this, function (e) {\n var targetEventOff = e.currentTarget.getAttribute('data-event-off') || eventOff;\n checkStatus.call(_this, targetEventOff, e);\n }, {\n customEvent: true\n });\n }\n for (var _event2 in customEventsOff) {\n listeners[_event2] = bodyListener.bind(this, this.hideTooltip, {\n customEvent: true\n });\n }\n for (var _event3 in listeners) {\n body.addEventListener(_event3, listeners[_event3]);\n }\n };\n target.prototype.unbindBodyListener = function (body) {\n body = body || getBody();\n var listeners = this.bodyModeListeners;\n for (var event in listeners) {\n body.removeEventListener(event, listeners[event]);\n }\n };\n}\n\n/**\n * Tracking target removing from DOM.\n * It's necessary to hide tooltip when it's target disappears.\n * Otherwise, the tooltip would be shown forever until another target\n * is triggered.\n *\n * If MutationObserver is not available, this feature just doesn't work.\n */\n\n// https://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/\nvar getMutationObserverClass = function getMutationObserverClass() {\n return window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n};\nfunction trackRemoval(target) {\n target.prototype.bindRemovalTracker = function () {\n var _this = this;\n var MutationObserver = getMutationObserverClass();\n if (MutationObserver == null) return;\n var observer = new MutationObserver(function (mutations) {\n for (var m1 = 0; m1 < mutations.length; m1++) {\n var mutation = mutations[m1];\n for (var m2 = 0; m2 < mutation.removedNodes.length; m2++) {\n var element = mutation.removedNodes[m2];\n if (element === _this.state.currentTarget) {\n _this.hideTooltip();\n return;\n }\n }\n }\n });\n observer.observe(window.document, {\n childList: true,\n subtree: true\n });\n this.removalTracker = observer;\n };\n target.prototype.unbindRemovalTracker = function () {\n if (this.removalTracker) {\n this.removalTracker.disconnect();\n this.removalTracker = null;\n }\n };\n}\n\n/**\n * Calculate the position of tooltip\n *\n * @params\n * - `e` {Event} the event of current mouse\n * - `target` {Element} the currentTarget of the event\n * - `node` {DOM} the react-tooltip object\n * - `place` {String} top / right / bottom / left\n * - `effect` {String} float / solid\n * - `offset` {Object} the offset to default position\n *\n * @return {Object}\n * - `isNewState` {Bool} required\n * - `newState` {Object}\n * - `position` {Object} {left: {Number}, top: {Number}}\n */\nfunction getPosition(e, target, node, place, desiredPlace, effect, offset) {\n var _getDimensions = getDimensions(node),\n tipWidth = _getDimensions.width,\n tipHeight = _getDimensions.height;\n var _getDimensions2 = getDimensions(target),\n targetWidth = _getDimensions2.width,\n targetHeight = _getDimensions2.height;\n var _getCurrentOffset = getCurrentOffset(e, target, effect),\n mouseX = _getCurrentOffset.mouseX,\n mouseY = _getCurrentOffset.mouseY;\n var defaultOffset = getDefaultPosition(effect, targetWidth, targetHeight, tipWidth, tipHeight);\n var _calculateOffset = calculateOffset(offset),\n extraOffsetX = _calculateOffset.extraOffsetX,\n extraOffsetY = _calculateOffset.extraOffsetY;\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var _getParent = getParent(node),\n parentTop = _getParent.parentTop,\n parentLeft = _getParent.parentLeft;\n\n // Get the edge offset of the tooltip\n var getTipOffsetLeft = function getTipOffsetLeft(place) {\n var offsetX = defaultOffset[place].l;\n return mouseX + offsetX + extraOffsetX;\n };\n var getTipOffsetRight = function getTipOffsetRight(place) {\n var offsetX = defaultOffset[place].r;\n return mouseX + offsetX + extraOffsetX;\n };\n var getTipOffsetTop = function getTipOffsetTop(place) {\n var offsetY = defaultOffset[place].t;\n return mouseY + offsetY + extraOffsetY;\n };\n var getTipOffsetBottom = function getTipOffsetBottom(place) {\n var offsetY = defaultOffset[place].b;\n return mouseY + offsetY + extraOffsetY;\n };\n\n //\n // Functions to test whether the tooltip's sides are inside\n // the client window for a given orientation p\n //\n // _____________\n // | | <-- Right side\n // | p = 'left' |\\\n // | |/ |\\\n // |_____________| |_\\ <-- Mouse\n // / \\ |\n // |\n // |\n // Bottom side\n //\n var outsideLeft = function outsideLeft(p) {\n return getTipOffsetLeft(p) < 0;\n };\n var outsideRight = function outsideRight(p) {\n return getTipOffsetRight(p) > windowWidth;\n };\n var outsideTop = function outsideTop(p) {\n return getTipOffsetTop(p) < 0;\n };\n var outsideBottom = function outsideBottom(p) {\n return getTipOffsetBottom(p) > windowHeight;\n };\n\n // Check whether the tooltip with orientation p is completely inside the client window\n var outside = function outside(p) {\n return outsideLeft(p) || outsideRight(p) || outsideTop(p) || outsideBottom(p);\n };\n var inside = function inside(p) {\n return !outside(p);\n };\n var placeIsInside = {\n top: inside('top'),\n bottom: inside('bottom'),\n left: inside('left'),\n right: inside('right')\n };\n function choose() {\n var allPlaces = desiredPlace.split(',').concat(place, ['top', 'bottom', 'left', 'right']);\n var _iterator = _createForOfIteratorHelper(allPlaces),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var d = _step.value;\n if (placeIsInside[d]) return d;\n }\n // if nothing is inside, just use the old place.\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return place;\n }\n var chosen = choose();\n var isNewState = false;\n var newPlace;\n if (chosen && chosen !== place) {\n isNewState = true;\n newPlace = chosen;\n }\n if (isNewState) {\n return {\n isNewState: true,\n newState: {\n place: newPlace\n }\n };\n }\n return {\n isNewState: false,\n position: {\n left: parseInt(getTipOffsetLeft(place) - parentLeft, 10),\n top: parseInt(getTipOffsetTop(place) - parentTop, 10)\n }\n };\n}\nvar getDimensions = function getDimensions(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n height = _node$getBoundingClie.height,\n width = _node$getBoundingClie.width;\n return {\n height: parseInt(height, 10),\n width: parseInt(width, 10)\n };\n};\n\n// Get current mouse offset\nvar getCurrentOffset = function getCurrentOffset(e, currentTarget, effect) {\n var boundingClientRect = currentTarget.getBoundingClientRect();\n var targetTop = boundingClientRect.top;\n var targetLeft = boundingClientRect.left;\n var _getDimensions3 = getDimensions(currentTarget),\n targetWidth = _getDimensions3.width,\n targetHeight = _getDimensions3.height;\n if (effect === 'float') {\n return {\n mouseX: e.clientX,\n mouseY: e.clientY\n };\n }\n return {\n mouseX: targetLeft + targetWidth / 2,\n mouseY: targetTop + targetHeight / 2\n };\n};\n\n// List all possibility of tooltip final offset\n// This is useful in judging if it is necessary for tooltip to switch position when out of window\nvar getDefaultPosition = function getDefaultPosition(effect, targetWidth, targetHeight, tipWidth, tipHeight) {\n var top;\n var right;\n var bottom;\n var left;\n var disToMouse = 3;\n var triangleHeight = 2;\n var cursorHeight = 12; // Optimize for float bottom only, cause the cursor will hide the tooltip\n\n if (effect === 'float') {\n top = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: -(tipHeight + disToMouse + triangleHeight),\n b: -disToMouse\n };\n bottom = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: disToMouse + cursorHeight,\n b: tipHeight + disToMouse + triangleHeight + cursorHeight\n };\n left = {\n l: -(tipWidth + disToMouse + triangleHeight),\n r: -disToMouse,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n right = {\n l: disToMouse,\n r: tipWidth + disToMouse + triangleHeight,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n } else if (effect === 'solid') {\n top = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: -(targetHeight / 2 + tipHeight + triangleHeight),\n b: -(targetHeight / 2)\n };\n bottom = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: targetHeight / 2,\n b: targetHeight / 2 + tipHeight + triangleHeight\n };\n left = {\n l: -(tipWidth + targetWidth / 2 + triangleHeight),\n r: -(targetWidth / 2),\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n right = {\n l: targetWidth / 2,\n r: tipWidth + targetWidth / 2 + triangleHeight,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n }\n return {\n top: top,\n bottom: bottom,\n left: left,\n right: right\n };\n};\n\n// Consider additional offset into position calculation\nvar calculateOffset = function calculateOffset(offset) {\n var extraOffsetX = 0;\n var extraOffsetY = 0;\n if (Object.prototype.toString.apply(offset) === '[object String]') {\n offset = JSON.parse(offset.toString().replace(/'/g, '\"'));\n }\n for (var key in offset) {\n if (key === 'top') {\n extraOffsetY -= parseInt(offset[key], 10);\n } else if (key === 'bottom') {\n extraOffsetY += parseInt(offset[key], 10);\n } else if (key === 'left') {\n extraOffsetX -= parseInt(offset[key], 10);\n } else if (key === 'right') {\n extraOffsetX += parseInt(offset[key], 10);\n }\n }\n return {\n extraOffsetX: extraOffsetX,\n extraOffsetY: extraOffsetY\n };\n};\n\n// Get the offset of the parent elements\nvar getParent = function getParent(currentTarget) {\n var currentParent = currentTarget;\n while (currentParent) {\n var computedStyle = window.getComputedStyle(currentParent);\n // transform and will-change: transform change the containing block\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_Block\n if (computedStyle.getPropertyValue('transform') !== 'none' || computedStyle.getPropertyValue('will-change') === 'transform') break;\n currentParent = currentParent.parentElement;\n }\n var parentTop = currentParent && currentParent.getBoundingClientRect().top || 0;\n var parentLeft = currentParent && currentParent.getBoundingClientRect().left || 0;\n return {\n parentTop: parentTop,\n parentLeft: parentLeft\n };\n};\n\n/**\n * To get the tooltip content\n * it may comes from data-tip or this.props.children\n * it should support multiline\n *\n * @params\n * - `tip` {String} value of data-tip\n * - `children` {ReactElement} this.props.children\n * - `multiline` {Any} could be Bool(true/false) or String('true'/'false')\n *\n * @return\n * - String or react component\n */\nfunction TipContent(tip, children, getContent, multiline) {\n if (children) return children;\n if (getContent !== undefined && getContent !== null) return getContent; // getContent can be 0, '', etc.\n if (getContent === null) return null; // Tip not exist and children is null or undefined\n\n var regexp = //;\n if (!multiline || multiline === 'false' || !regexp.test(tip)) {\n // No trim(), so that user can keep their input\n return tip;\n }\n\n // Multiline tooltip content\n return tip.split(regexp).map(function (d, i) {\n return /*#__PURE__*/React.createElement(\"span\", {\n key: i,\n className: \"multi-line\"\n }, d);\n });\n}\n\n/**\n * Support aria- and role in ReactTooltip\n *\n * @params props {Object}\n * @return {Object}\n */\nfunction parseAria(props) {\n var ariaObj = {};\n Object.keys(props).filter(function (prop) {\n // aria-xxx and role is acceptable\n return /(^aria-\\w+$|^role$)/.test(prop);\n }).forEach(function (prop) {\n ariaObj[prop] = props[prop];\n });\n return ariaObj;\n}\n\n/**\n * Convert nodelist to array\n * @see https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/core/createArrayFromMixed.js#L24\n * NodeLists are functions in Safari\n */\n\nfunction nodeListToArray(nodeList) {\n var length = nodeList.length;\n if (nodeList.hasOwnProperty) {\n return Array.prototype.slice.call(nodeList);\n }\n return new Array(length).fill().map(function (index) {\n return nodeList[index];\n });\n}\nfunction generateUUID() {\n return 't' + v4();\n}\nvar baseCss = \".__react_component_tooltip {\\n border-radius: 3px;\\n display: inline-block;\\n font-size: 13px;\\n left: -999em;\\n opacity: 0;\\n position: fixed;\\n pointer-events: none;\\n transition: opacity 0.3s ease-out;\\n top: -999em;\\n visibility: hidden;\\n z-index: 999;\\n}\\n.__react_component_tooltip.allow_hover, .__react_component_tooltip.allow_click {\\n pointer-events: auto;\\n}\\n.__react_component_tooltip::before, .__react_component_tooltip::after {\\n content: \\\"\\\";\\n width: 0;\\n height: 0;\\n position: absolute;\\n}\\n.__react_component_tooltip.show {\\n opacity: 0.9;\\n margin-top: 0;\\n margin-left: 0;\\n visibility: visible;\\n}\\n.__react_component_tooltip.place-top::before {\\n bottom: 0;\\n left: 50%;\\n margin-left: -11px;\\n}\\n.__react_component_tooltip.place-bottom::before {\\n top: 0;\\n left: 50%;\\n margin-left: -11px;\\n}\\n.__react_component_tooltip.place-left::before {\\n right: 0;\\n top: 50%;\\n margin-top: -9px;\\n}\\n.__react_component_tooltip.place-right::before {\\n left: 0;\\n top: 50%;\\n margin-top: -9px;\\n}\\n.__react_component_tooltip .multi-line {\\n display: block;\\n padding: 2px 0;\\n text-align: center;\\n}\";\n\n/**\n * Default pop-up style values (text color, background color).\n */\nvar defaultColors = {\n dark: {\n text: '#fff',\n background: '#222',\n border: 'transparent',\n arrow: '#222'\n },\n success: {\n text: '#fff',\n background: '#8DC572',\n border: 'transparent',\n arrow: '#8DC572'\n },\n warning: {\n text: '#fff',\n background: '#F0AD4E',\n border: 'transparent',\n arrow: '#F0AD4E'\n },\n error: {\n text: '#fff',\n background: '#BE6464',\n border: 'transparent',\n arrow: '#BE6464'\n },\n info: {\n text: '#fff',\n background: '#337AB7',\n border: 'transparent',\n arrow: '#337AB7'\n },\n light: {\n text: '#222',\n background: '#fff',\n border: 'transparent',\n arrow: '#fff'\n }\n};\nfunction getDefaultPopupColors(type) {\n return defaultColors[type] ? _objectSpread2({}, defaultColors[type]) : undefined;\n}\nvar DEFAULT_PADDING = '8px 21px';\nvar DEFAULT_RADIUS = {\n tooltip: 3,\n arrow: 0\n};\n\n/**\n * Generates the specific tooltip style for use on render.\n */\nfunction generateTooltipStyle(uuid, customColors, type, hasBorder, padding, radius) {\n return generateStyle(uuid, getPopupColors(customColors, type, hasBorder), padding, radius);\n}\n\n/**\n * Generates the tooltip style rules based on the element-specified \"data-type\" property.\n */\nfunction generateStyle(uuid, colors) {\n var padding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_PADDING;\n var radius = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : DEFAULT_RADIUS;\n var textColor = colors.text;\n var backgroundColor = colors.background;\n var borderColor = colors.border;\n var arrowColor = colors.arrow;\n var arrowRadius = radius.arrow;\n var tooltipRadius = radius.tooltip;\n return \"\\n \\t.\".concat(uuid, \" {\\n\\t color: \").concat(textColor, \";\\n\\t background: \").concat(backgroundColor, \";\\n\\t border: 1px solid \").concat(borderColor, \";\\n\\t border-radius: \").concat(tooltipRadius, \"px;\\n\\t padding: \").concat(padding, \";\\n \\t}\\n\\n \\t.\").concat(uuid, \".place-top {\\n margin-top: -10px;\\n }\\n .\").concat(uuid, \".place-top::before {\\n content: \\\"\\\";\\n background-color: inherit;\\n position: absolute;\\n z-index: 2;\\n width: 20px;\\n height: 12px;\\n }\\n .\").concat(uuid, \".place-top::after {\\n content: \\\"\\\";\\n position: absolute;\\n width: 10px;\\n height: 10px;\\n border-top-right-radius: \").concat(arrowRadius, \"px;\\n border: 1px solid \").concat(borderColor, \";\\n background-color: \").concat(arrowColor, \";\\n z-index: -2;\\n bottom: -6px;\\n left: 50%;\\n margin-left: -6px;\\n transform: rotate(135deg);\\n }\\n\\n .\").concat(uuid, \".place-bottom {\\n margin-top: 10px;\\n }\\n .\").concat(uuid, \".place-bottom::before {\\n content: \\\"\\\";\\n background-color: inherit;\\n position: absolute;\\n z-index: -1;\\n width: 18px;\\n height: 10px;\\n }\\n .\").concat(uuid, \".place-bottom::after {\\n content: \\\"\\\";\\n position: absolute;\\n width: 10px;\\n height: 10px;\\n border-top-right-radius: \").concat(arrowRadius, \"px;\\n border: 1px solid \").concat(borderColor, \";\\n background-color: \").concat(arrowColor, \";\\n z-index: -2;\\n top: -6px;\\n left: 50%;\\n margin-left: -6px;\\n transform: rotate(45deg);\\n }\\n\\n .\").concat(uuid, \".place-left {\\n margin-left: -10px;\\n }\\n .\").concat(uuid, \".place-left::before {\\n content: \\\"\\\";\\n background-color: inherit;\\n position: absolute;\\n z-index: -1;\\n width: 10px;\\n height: 18px;\\n }\\n .\").concat(uuid, \".place-left::after {\\n content: \\\"\\\";\\n position: absolute;\\n width: 10px;\\n height: 10px;\\n border-top-right-radius: \").concat(arrowRadius, \"px;\\n border: 1px solid \").concat(borderColor, \";\\n background-color: \").concat(arrowColor, \";\\n z-index: -2;\\n right: -6px;\\n top: 50%;\\n margin-top: -6px;\\n transform: rotate(45deg);\\n }\\n\\n .\").concat(uuid, \".place-right {\\n margin-left: 10px;\\n }\\n .\").concat(uuid, \".place-right::before {\\n content: \\\"\\\";\\n background-color: inherit;\\n position: absolute;\\n z-index: -1;\\n width: 10px;\\n height: 18px;\\n }\\n .\").concat(uuid, \".place-right::after {\\n content: \\\"\\\";\\n position: absolute;\\n width: 10px;\\n height: 10px;\\n border-top-right-radius: \").concat(arrowRadius, \"px;\\n border: 1px solid \").concat(borderColor, \";\\n background-color: \").concat(arrowColor, \";\\n z-index: -2;\\n left: -6px;\\n top: 50%;\\n margin-top: -6px;\\n transform: rotate(-135deg);\\n }\\n \");\n}\nfunction getPopupColors(customColors, type, hasBorder) {\n var textColor = customColors.text;\n var backgroundColor = customColors.background;\n var borderColor = customColors.border;\n var arrowColor = customColors.arrow ? customColors.arrow : customColors.background;\n var colors = getDefaultPopupColors(type);\n if (textColor) {\n colors.text = textColor;\n }\n if (backgroundColor) {\n colors.background = backgroundColor;\n }\n if (hasBorder) {\n if (borderColor) {\n colors.border = borderColor;\n } else {\n colors.border = type === 'light' ? 'black' : 'white';\n }\n }\n if (arrowColor) {\n colors.arrow = arrowColor;\n }\n return colors;\n}\nvar _class, _class2;\n\n/* Polyfill */\nvar ReactTooltip = staticMethods(_class = windowListener(_class = customEvent(_class = isCapture(_class = getEffect(_class = bodyMode(_class = trackRemoval(_class = (_class2 = /*#__PURE__*/function (_React$Component) {\n _inherits(ReactTooltip, _React$Component);\n var _super = _createSuper(ReactTooltip);\n function ReactTooltip(props) {\n var _this;\n _classCallCheck(this, ReactTooltip);\n _this = _super.call(this, props);\n _this.state = {\n uuid: props.uuid || generateUUID(),\n place: props.place || 'top',\n // Direction of tooltip\n desiredPlace: props.place || 'top',\n type: props.type || 'dark',\n // Color theme of tooltip\n effect: props.effect || 'float',\n // float or fixed\n show: false,\n border: false,\n borderClass: 'border',\n customColors: {},\n customRadius: {},\n offset: {},\n padding: props.padding,\n extraClass: '',\n html: false,\n delayHide: 0,\n delayShow: 0,\n event: props.event || null,\n eventOff: props.eventOff || null,\n currentEvent: null,\n // Current mouse event\n currentTarget: null,\n // Current target of mouse event\n ariaProps: parseAria(props),\n // aria- and role attributes\n isEmptyTip: false,\n disable: false,\n possibleCustomEvents: props.possibleCustomEvents || '',\n possibleCustomEventsOff: props.possibleCustomEventsOff || '',\n originTooltip: null,\n isMultiline: false\n };\n _this.bind(['showTooltip', 'updateTooltip', 'hideTooltip', 'hideTooltipOnScroll', 'getTooltipContent', 'globalRebuild', 'globalShow', 'globalHide', 'onWindowResize', 'mouseOnToolTip']);\n _this.mount = true;\n _this.delayShowLoop = null;\n _this.delayHideLoop = null;\n _this.delayReshow = null;\n _this.intervalUpdateContent = null;\n return _this;\n }\n\n /**\n * For unify the bind and unbind listener\n */\n _createClass(ReactTooltip, [{\n key: \"bind\",\n value: function bind(methodArray) {\n var _this2 = this;\n methodArray.forEach(function (method) {\n _this2[method] = _this2[method].bind(_this2);\n });\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props = this.props;\n _this$props.insecure;\n var resizeHide = _this$props.resizeHide,\n disableInternalStyle = _this$props.disableInternalStyle;\n this.mount = true;\n this.bindListener(); // Bind listener for tooltip\n this.bindWindowEvents(resizeHide); // Bind global event for static method\n\n if (!disableInternalStyle) {\n this.injectStyles(); // Inject styles for each DOM root having tooltip.\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mount = false;\n this.clearTimer();\n this.unbindListener();\n this.removeScrollListener(this.state.currentTarget);\n this.unbindWindowEvents();\n }\n\n /* Look for the closest DOM root having tooltip and inject styles. */\n }, {\n key: \"injectStyles\",\n value: function injectStyles() {\n var tooltipRef = this.tooltipRef;\n if (!tooltipRef) {\n return;\n }\n var parentNode = tooltipRef.parentNode;\n while (parentNode.parentNode) {\n parentNode = parentNode.parentNode;\n }\n var domRoot;\n switch (parentNode.constructor.name) {\n case 'Document':\n case 'HTMLDocument':\n case undefined:\n domRoot = parentNode.head;\n break;\n case 'ShadowRoot':\n default:\n domRoot = parentNode;\n break;\n }\n\n // Prevent styles duplication.\n if (!domRoot.querySelector('style[data-react-tooltip]')) {\n var style = document.createElement('style');\n style.textContent = baseCss;\n style.setAttribute('data-react-tooltip', 'true');\n domRoot.appendChild(style);\n }\n }\n\n /**\n * Return if the mouse is on the tooltip.\n * @returns {boolean} true - mouse is on the tooltip\n */\n }, {\n key: \"mouseOnToolTip\",\n value: function mouseOnToolTip() {\n var show = this.state.show;\n if (show && this.tooltipRef) {\n /* old IE or Firefox work around */\n if (!this.tooltipRef.matches) {\n /* old IE work around */\n if (this.tooltipRef.msMatchesSelector) {\n this.tooltipRef.matches = this.tooltipRef.msMatchesSelector;\n } else {\n /* old Firefox work around */\n this.tooltipRef.matches = this.tooltipRef.mozMatchesSelector;\n }\n }\n return this.tooltipRef.matches(':hover');\n }\n return false;\n }\n\n /**\n * Pick out corresponded target elements\n */\n }, {\n key: \"getTargetArray\",\n value: function getTargetArray(id) {\n var targetArray = [];\n var selector;\n if (!id) {\n selector = '[data-tip]:not([data-for])';\n } else {\n var escaped = id.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n selector = \"[data-tip][data-for=\\\"\".concat(escaped, \"\\\"]\");\n }\n\n // Scan document for shadow DOM elements\n nodeListToArray(document.getElementsByTagName('*')).filter(function (element) {\n return element.shadowRoot;\n }).forEach(function (element) {\n targetArray = targetArray.concat(nodeListToArray(element.shadowRoot.querySelectorAll(selector)));\n });\n return targetArray.concat(nodeListToArray(document.querySelectorAll(selector)));\n }\n\n /**\n * Bind listener to the target elements\n * These listeners used to trigger showing or hiding the tooltip\n */\n }, {\n key: \"bindListener\",\n value: function bindListener() {\n var _this3 = this;\n var _this$props2 = this.props,\n id = _this$props2.id,\n globalEventOff = _this$props2.globalEventOff,\n isCapture = _this$props2.isCapture;\n var targetArray = this.getTargetArray(id);\n targetArray.forEach(function (target) {\n if (target.getAttribute('currentItem') === null) {\n target.setAttribute('currentItem', 'false');\n }\n _this3.unbindBasicListener(target);\n if (_this3.isCustomEvent(target)) {\n _this3.customUnbindListener(target);\n }\n });\n if (this.isBodyMode()) {\n this.bindBodyListener(targetArray);\n } else {\n targetArray.forEach(function (target) {\n var isCaptureMode = _this3.isCapture(target);\n var effect = _this3.getEffect(target);\n if (_this3.isCustomEvent(target)) {\n _this3.customBindListener(target);\n return;\n }\n target.addEventListener('mouseenter', _this3.showTooltip, isCaptureMode);\n target.addEventListener('focus', _this3.showTooltip, isCaptureMode);\n if (effect === 'float') {\n target.addEventListener('mousemove', _this3.updateTooltip, isCaptureMode);\n }\n target.addEventListener('mouseleave', _this3.hideTooltip, isCaptureMode);\n target.addEventListener('blur', _this3.hideTooltip, isCaptureMode);\n });\n }\n\n // Global event to hide tooltip\n if (globalEventOff) {\n window.removeEventListener(globalEventOff, this.hideTooltip);\n window.addEventListener(globalEventOff, this.hideTooltip, isCapture);\n }\n\n // Track removal of targetArray elements from DOM\n this.bindRemovalTracker();\n }\n\n /**\n * Unbind listeners on target elements\n */\n }, {\n key: \"unbindListener\",\n value: function unbindListener() {\n var _this4 = this;\n var _this$props3 = this.props,\n id = _this$props3.id,\n globalEventOff = _this$props3.globalEventOff;\n if (this.isBodyMode()) {\n this.unbindBodyListener();\n } else {\n var targetArray = this.getTargetArray(id);\n targetArray.forEach(function (target) {\n _this4.unbindBasicListener(target);\n if (_this4.isCustomEvent(target)) _this4.customUnbindListener(target);\n });\n }\n if (globalEventOff) window.removeEventListener(globalEventOff, this.hideTooltip);\n this.unbindRemovalTracker();\n }\n\n /**\n * Invoke this before bind listener and unmount the component\n * it is necessary to invoke this even when binding custom event\n * so that the tooltip can switch between custom and default listener\n */\n }, {\n key: \"unbindBasicListener\",\n value: function unbindBasicListener(target) {\n var isCaptureMode = this.isCapture(target);\n target.removeEventListener('mouseenter', this.showTooltip, isCaptureMode);\n target.removeEventListener('mousemove', this.updateTooltip, isCaptureMode);\n target.removeEventListener('mouseleave', this.hideTooltip, isCaptureMode);\n }\n }, {\n key: \"getTooltipContent\",\n value: function getTooltipContent() {\n var _this$props4 = this.props,\n getContent = _this$props4.getContent,\n children = _this$props4.children;\n\n // Generate tooltip content\n var content;\n if (getContent) {\n if (Array.isArray(getContent)) {\n content = getContent[0] && getContent[0](this.state.originTooltip);\n } else {\n content = getContent(this.state.originTooltip);\n }\n }\n return TipContent(this.state.originTooltip, children, content, this.state.isMultiline);\n }\n }, {\n key: \"isEmptyTip\",\n value: function isEmptyTip(placeholder) {\n return typeof placeholder === 'string' && placeholder === '' || placeholder === null;\n }\n\n /**\n * When mouse enter, show the tooltip\n */\n }, {\n key: \"showTooltip\",\n value: function showTooltip(e, isGlobalCall) {\n if (!this.tooltipRef) {\n return;\n }\n if (isGlobalCall) {\n // Don't trigger other elements belongs to other ReactTooltip\n var targetArray = this.getTargetArray(this.props.id);\n var isMyElement = targetArray.some(function (ele) {\n return ele === e.currentTarget;\n });\n if (!isMyElement) return;\n }\n // Get the tooltip content\n // calculate in this phrase so that tip width height can be detected\n var _this$props5 = this.props,\n multiline = _this$props5.multiline,\n getContent = _this$props5.getContent;\n var originTooltip = e.currentTarget.getAttribute('data-tip');\n var isMultiline = e.currentTarget.getAttribute('data-multiline') || multiline || false;\n\n // If it is focus event or called by ReactTooltip.show, switch to `solid` effect\n var switchToSolid = e instanceof window.FocusEvent || isGlobalCall;\n\n // if it needs to skip adding hide listener to scroll\n var scrollHide = true;\n if (e.currentTarget.getAttribute('data-scroll-hide')) {\n scrollHide = e.currentTarget.getAttribute('data-scroll-hide') === 'true';\n } else if (this.props.scrollHide != null) {\n scrollHide = this.props.scrollHide;\n }\n\n // adding aria-describedby to target to make tooltips read by screen readers\n if (e && e.currentTarget && e.currentTarget.setAttribute) {\n e.currentTarget.setAttribute('aria-describedby', this.props.id || this.state.uuid);\n }\n\n // Make sure the correct place is set\n var desiredPlace = e.currentTarget.getAttribute('data-place') || this.props.place || 'top';\n var effect = switchToSolid && 'solid' || this.getEffect(e.currentTarget);\n var offset = e.currentTarget.getAttribute('data-offset') || this.props.offset || {};\n var result = getPosition(e, e.currentTarget, this.tooltipRef, desiredPlace.split(',')[0], desiredPlace, effect, offset);\n if (result.position && this.props.overridePosition) {\n result.position = this.props.overridePosition(result.position, e, e.currentTarget, this.tooltipRef, desiredPlace, desiredPlace, effect, offset);\n }\n var place = result.isNewState ? result.newState.place : desiredPlace.split(',')[0];\n\n // To prevent previously created timers from triggering\n this.clearTimer();\n var target = e.currentTarget;\n var reshowDelay = this.state.show ? target.getAttribute('data-delay-update') || this.props.delayUpdate : 0;\n var self = this;\n var updateState = function updateState() {\n self.setState({\n originTooltip: originTooltip,\n isMultiline: isMultiline,\n desiredPlace: desiredPlace,\n place: place,\n type: target.getAttribute('data-type') || self.props.type || 'dark',\n customColors: {\n text: target.getAttribute('data-text-color') || self.props.textColor || null,\n background: target.getAttribute('data-background-color') || self.props.backgroundColor || null,\n border: target.getAttribute('data-border-color') || self.props.borderColor || null,\n arrow: target.getAttribute('data-arrow-color') || self.props.arrowColor || null\n },\n customRadius: {\n tooltip: target.getAttribute('data-tooltip-radius') || self.props.tooltipRadius || '3',\n arrow: target.getAttribute('data-arrow-radius') || self.props.arrowRadius || '0'\n },\n effect: effect,\n offset: offset,\n padding: target.getAttribute('data-padding') || self.props.padding,\n html: (target.getAttribute('data-html') ? target.getAttribute('data-html') === 'true' : self.props.html) || false,\n delayShow: target.getAttribute('data-delay-show') || self.props.delayShow || 0,\n delayHide: target.getAttribute('data-delay-hide') || self.props.delayHide || 0,\n delayUpdate: target.getAttribute('data-delay-update') || self.props.delayUpdate || 0,\n border: (target.getAttribute('data-border') ? target.getAttribute('data-border') === 'true' : self.props.border) || false,\n borderClass: target.getAttribute('data-border-class') || self.props.borderClass || 'border',\n extraClass: target.getAttribute('data-class') || self.props[\"class\"] || self.props.className || '',\n disable: (target.getAttribute('data-tip-disable') ? target.getAttribute('data-tip-disable') === 'true' : self.props.disable) || false,\n currentTarget: target\n }, function () {\n if (scrollHide) {\n self.addScrollListener(self.state.currentTarget);\n }\n self.updateTooltip(e);\n if (getContent && Array.isArray(getContent)) {\n self.intervalUpdateContent = setInterval(function () {\n if (self.mount) {\n var _getContent = self.props.getContent;\n var placeholder = TipContent(originTooltip, '', _getContent[0](), isMultiline);\n var isEmptyTip = self.isEmptyTip(placeholder);\n self.setState({\n isEmptyTip: isEmptyTip\n });\n self.updatePosition();\n }\n }, getContent[1]);\n }\n });\n };\n\n // If there is no delay call immediately, don't allow events to get in first.\n if (reshowDelay) {\n this.delayReshow = setTimeout(updateState, reshowDelay);\n } else {\n updateState();\n }\n }\n\n /**\n * When mouse hover, update tool tip\n */\n }, {\n key: \"updateTooltip\",\n value: function updateTooltip(e) {\n var _this5 = this;\n var _this$state = this.state,\n delayShow = _this$state.delayShow,\n disable = _this$state.disable;\n var _this$props6 = this.props,\n afterShow = _this$props6.afterShow,\n disableProp = _this$props6.disable;\n var placeholder = this.getTooltipContent();\n var eventTarget = e.currentTarget || e.target;\n\n // Check if the mouse is actually over the tooltip, if so don't hide the tooltip\n if (this.mouseOnToolTip()) {\n return;\n }\n\n // if the tooltip is empty, disable the tooltip\n if (this.isEmptyTip(placeholder) || disable || disableProp) {\n return;\n }\n var delayTime = !this.state.show ? parseInt(delayShow, 10) : 0;\n var updateState = function updateState() {\n if (Array.isArray(placeholder) && placeholder.length > 0 || placeholder) {\n var isInvisible = !_this5.state.show;\n _this5.setState({\n currentEvent: e,\n currentTarget: eventTarget,\n show: true\n }, function () {\n _this5.updatePosition(function () {\n if (isInvisible && afterShow) {\n afterShow(e);\n }\n });\n });\n }\n };\n if (this.delayShowLoop) {\n clearTimeout(this.delayShowLoop);\n }\n if (delayTime) {\n this.delayShowLoop = setTimeout(updateState, delayTime);\n } else {\n this.delayShowLoop = null;\n updateState();\n }\n }\n\n /*\n * If we're mousing over the tooltip remove it when we leave.\n */\n }, {\n key: \"listenForTooltipExit\",\n value: function listenForTooltipExit() {\n var show = this.state.show;\n if (show && this.tooltipRef) {\n this.tooltipRef.addEventListener('mouseleave', this.hideTooltip);\n }\n }\n }, {\n key: \"removeListenerForTooltipExit\",\n value: function removeListenerForTooltipExit() {\n var show = this.state.show;\n if (show && this.tooltipRef) {\n this.tooltipRef.removeEventListener('mouseleave', this.hideTooltip);\n }\n }\n\n /**\n * When mouse leave, hide tooltip\n */\n }, {\n key: \"hideTooltip\",\n value: function hideTooltip(e, hasTarget) {\n var _this6 = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n isScroll: false\n };\n var disable = this.state.disable;\n var isScroll = options.isScroll;\n var delayHide = isScroll ? 0 : this.state.delayHide;\n var _this$props7 = this.props,\n afterHide = _this$props7.afterHide,\n disableProp = _this$props7.disable;\n var placeholder = this.getTooltipContent();\n if (!this.mount) return;\n if (this.isEmptyTip(placeholder) || disable || disableProp) return; // if the tooltip is empty, disable the tooltip\n if (hasTarget) {\n // Don't trigger other elements belongs to other ReactTooltip\n var targetArray = this.getTargetArray(this.props.id);\n var isMyElement = targetArray.some(function (ele) {\n return ele === e.currentTarget;\n });\n if (!isMyElement || !this.state.show) return;\n }\n\n // clean up aria-describedby when hiding tooltip\n if (e && e.currentTarget && e.currentTarget.removeAttribute) {\n e.currentTarget.removeAttribute('aria-describedby');\n }\n var resetState = function resetState() {\n var isVisible = _this6.state.show;\n // Check if the mouse is actually over the tooltip, if so don't hide the tooltip\n if (_this6.mouseOnToolTip()) {\n _this6.listenForTooltipExit();\n return;\n }\n _this6.removeListenerForTooltipExit();\n _this6.setState({\n show: false\n }, function () {\n _this6.removeScrollListener(_this6.state.currentTarget);\n if (isVisible && afterHide) {\n afterHide(e);\n }\n });\n };\n this.clearTimer();\n if (delayHide) {\n this.delayHideLoop = setTimeout(resetState, parseInt(delayHide, 10));\n } else {\n resetState();\n }\n }\n\n /**\n * When scroll, hide tooltip\n */\n }, {\n key: \"hideTooltipOnScroll\",\n value: function hideTooltipOnScroll(event, hasTarget) {\n this.hideTooltip(event, hasTarget, {\n isScroll: true\n });\n }\n\n /**\n * Add scroll event listener when tooltip show\n * automatically hide the tooltip when scrolling\n */\n }, {\n key: \"addScrollListener\",\n value: function addScrollListener(currentTarget) {\n var isCaptureMode = this.isCapture(currentTarget);\n window.addEventListener('scroll', this.hideTooltipOnScroll, isCaptureMode);\n }\n }, {\n key: \"removeScrollListener\",\n value: function removeScrollListener(currentTarget) {\n var isCaptureMode = this.isCapture(currentTarget);\n window.removeEventListener('scroll', this.hideTooltipOnScroll, isCaptureMode);\n }\n\n // Calculation the position\n }, {\n key: \"updatePosition\",\n value: function updatePosition(callbackAfter) {\n var _this7 = this;\n var _this$state2 = this.state,\n currentEvent = _this$state2.currentEvent,\n currentTarget = _this$state2.currentTarget,\n place = _this$state2.place,\n desiredPlace = _this$state2.desiredPlace,\n effect = _this$state2.effect,\n offset = _this$state2.offset;\n var node = this.tooltipRef;\n var result = getPosition(currentEvent, currentTarget, node, place, desiredPlace, effect, offset);\n if (result.position && this.props.overridePosition) {\n result.position = this.props.overridePosition(result.position, currentEvent, currentTarget, node, place, desiredPlace, effect, offset);\n }\n if (result.isNewState) {\n // Switch to reverse placement\n return this.setState(result.newState, function () {\n _this7.updatePosition(callbackAfter);\n });\n }\n if (callbackAfter && typeof callbackAfter === 'function') {\n callbackAfter();\n }\n\n // Set tooltip position\n node.style.left = result.position.left + 'px';\n node.style.top = result.position.top + 'px';\n }\n\n /**\n * CLear all kinds of timeout of interval\n */\n }, {\n key: \"clearTimer\",\n value: function clearTimer() {\n if (this.delayShowLoop) {\n clearTimeout(this.delayShowLoop);\n this.delayShowLoop = null;\n }\n if (this.delayHideLoop) {\n clearTimeout(this.delayHideLoop);\n this.delayHideLoop = null;\n }\n if (this.delayReshow) {\n clearTimeout(this.delayReshow);\n this.delayReshow = null;\n }\n if (this.intervalUpdateContent) {\n clearInterval(this.intervalUpdateContent);\n this.intervalUpdateContent = null;\n }\n }\n }, {\n key: \"hasCustomColors\",\n value: function hasCustomColors() {\n var _this8 = this;\n return Boolean(Object.keys(this.state.customColors).find(function (color) {\n return color !== 'border' && _this8.state.customColors[color];\n }) || this.state.border && this.state.customColors['border']);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this9 = this;\n var _this$state3 = this.state,\n extraClass = _this$state3.extraClass,\n html = _this$state3.html,\n ariaProps = _this$state3.ariaProps,\n disable = _this$state3.disable,\n uuid = _this$state3.uuid;\n var content = this.getTooltipContent();\n var isEmptyTip = this.isEmptyTip(content);\n var style = this.props.disableInternalStyle ? '' : generateTooltipStyle(this.state.uuid, this.state.customColors, this.state.type, this.state.border, this.state.padding, this.state.customRadius);\n var tooltipClass = '__react_component_tooltip' + \" \".concat(this.state.uuid) + (this.state.show && !disable && !isEmptyTip ? ' show' : '') + (this.state.border ? ' ' + this.state.borderClass : '') + \" place-\".concat(this.state.place) +\n // top, bottom, left, right\n \" type-\".concat(this.hasCustomColors() ? 'custom' : this.state.type) + (\n // dark, success, warning, error, info, light, custom\n this.props.delayUpdate ? ' allow_hover' : '') + (this.props.clickable ? ' allow_click' : '');\n var Wrapper = this.props.wrapper;\n if (ReactTooltip.supportedWrappers.indexOf(Wrapper) < 0) {\n Wrapper = ReactTooltip.defaultProps.wrapper;\n }\n var wrapperClassName = [tooltipClass, extraClass].filter(Boolean).join(' ');\n if (html) {\n var htmlContent = \"\".concat(content).concat(style ? \"\\n\") : '');\n return /*#__PURE__*/React.createElement(Wrapper, _extends({\n className: \"\".concat(wrapperClassName),\n id: this.props.id || uuid,\n ref: function ref(_ref) {\n return _this9.tooltipRef = _ref;\n }\n }, ariaProps, {\n \"data-id\": \"tooltip\",\n dangerouslySetInnerHTML: {\n __html: htmlContent\n }\n }));\n } else {\n return /*#__PURE__*/React.createElement(Wrapper, _extends({\n className: \"\".concat(wrapperClassName),\n id: this.props.id || uuid\n }, ariaProps, {\n ref: function ref(_ref2) {\n return _this9.tooltipRef = _ref2;\n },\n \"data-id\": \"tooltip\"\n }), style && /*#__PURE__*/React.createElement(\"style\", {\n dangerouslySetInnerHTML: {\n __html: style\n },\n \"aria-hidden\": \"true\"\n }), content);\n }\n }\n }], [{\n key: \"propTypes\",\n get: function get() {\n return {\n uuid: PropTypes.string,\n children: PropTypes.any,\n place: PropTypes.string,\n type: PropTypes.string,\n effect: PropTypes.string,\n offset: PropTypes.object,\n padding: PropTypes.string,\n multiline: PropTypes.bool,\n border: PropTypes.bool,\n borderClass: PropTypes.string,\n textColor: PropTypes.string,\n backgroundColor: PropTypes.string,\n borderColor: PropTypes.string,\n arrowColor: PropTypes.string,\n arrowRadius: PropTypes.string,\n tooltipRadius: PropTypes.string,\n insecure: PropTypes.bool,\n \"class\": PropTypes.string,\n className: PropTypes.string,\n id: PropTypes.string,\n html: PropTypes.bool,\n delayHide: PropTypes.number,\n delayUpdate: PropTypes.number,\n delayShow: PropTypes.number,\n event: PropTypes.string,\n eventOff: PropTypes.string,\n isCapture: PropTypes.bool,\n globalEventOff: PropTypes.string,\n getContent: PropTypes.any,\n afterShow: PropTypes.func,\n afterHide: PropTypes.func,\n overridePosition: PropTypes.func,\n disable: PropTypes.bool,\n scrollHide: PropTypes.bool,\n resizeHide: PropTypes.bool,\n wrapper: PropTypes.string,\n bodyMode: PropTypes.bool,\n possibleCustomEvents: PropTypes.string,\n possibleCustomEventsOff: PropTypes.string,\n clickable: PropTypes.bool,\n disableInternalStyle: PropTypes.bool\n };\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var ariaProps = prevState.ariaProps;\n var newAriaProps = parseAria(nextProps);\n var isChanged = Object.keys(newAriaProps).some(function (props) {\n return newAriaProps[props] !== ariaProps[props];\n });\n if (!isChanged) {\n return null;\n }\n return _objectSpread2(_objectSpread2({}, prevState), {}, {\n ariaProps: newAriaProps\n });\n }\n }]);\n return ReactTooltip;\n}(React.Component), _defineProperty(_class2, \"defaultProps\", {\n insecure: true,\n resizeHide: true,\n wrapper: 'div',\n clickable: false\n}), _defineProperty(_class2, \"supportedWrappers\", ['div', 'span']), _defineProperty(_class2, \"displayName\", 'ReactTooltip'), _class2)) || _class) || _class) || _class) || _class) || _class) || _class) || _class;\nexport { ReactTooltip as default };","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactVideoRecorderDeviceUnavailableError = exports.ReactVideoRecorderMediaRecorderUnavailableError = exports.ReactVideoRecorderDataAvailableTimeoutError = exports.ReactVideoRecorderRecordedBlobsUnavailableError = exports.ReactVideoRecorderDataIssueError = void 0;\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n return _assertThisInitialized(self);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nvar ReactVideoRecorderDataIssueError = /*#__PURE__*/function (_Error) {\n _inherits(ReactVideoRecorderDataIssueError, _Error);\n var _super = _createSuper(ReactVideoRecorderDataIssueError);\n function ReactVideoRecorderDataIssueError(event) {\n var _this;\n _classCallCheck(this, ReactVideoRecorderDataIssueError);\n _this = _super.call(this, \"Couldn't get data from event\");\n _this.name = 'ReactVideoRecorderDataIssueError';\n _this.event = event;\n return _this;\n }\n return ReactVideoRecorderDataIssueError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nexports.ReactVideoRecorderDataIssueError = ReactVideoRecorderDataIssueError;\nvar ReactVideoRecorderRecordedBlobsUnavailableError = /*#__PURE__*/function (_Error2) {\n _inherits(ReactVideoRecorderRecordedBlobsUnavailableError, _Error2);\n var _super2 = _createSuper(ReactVideoRecorderRecordedBlobsUnavailableError);\n function ReactVideoRecorderRecordedBlobsUnavailableError(event) {\n var _this2;\n _classCallCheck(this, ReactVideoRecorderRecordedBlobsUnavailableError);\n _this2 = _super2.call(this, \"Couldn't get recordedBlobs\");\n _this2.name = 'ReactVideoRecorderRecordedBlobsUnavailableError';\n _this2.event = event;\n return _this2;\n }\n return ReactVideoRecorderRecordedBlobsUnavailableError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nexports.ReactVideoRecorderRecordedBlobsUnavailableError = ReactVideoRecorderRecordedBlobsUnavailableError;\nvar ReactVideoRecorderDataAvailableTimeoutError = /*#__PURE__*/function (_Error3) {\n _inherits(ReactVideoRecorderDataAvailableTimeoutError, _Error3);\n var _super3 = _createSuper(ReactVideoRecorderDataAvailableTimeoutError);\n function ReactVideoRecorderDataAvailableTimeoutError(dataAvailableTimeout) {\n var _this3;\n _classCallCheck(this, ReactVideoRecorderDataAvailableTimeoutError);\n _this3 = _super3.call(this, \"Method mediaRecorder.ondataavailable wasn't called after \".concat(dataAvailableTimeout, \"ms\"));\n _this3.name = 'ReactVideoRecorderDataAvailableTimeoutError';\n _this3.dataAvailableTimeout = dataAvailableTimeout;\n return _this3;\n }\n return ReactVideoRecorderDataAvailableTimeoutError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nexports.ReactVideoRecorderDataAvailableTimeoutError = ReactVideoRecorderDataAvailableTimeoutError;\nvar ReactVideoRecorderMediaRecorderUnavailableError = /*#__PURE__*/function (_Error4) {\n _inherits(ReactVideoRecorderMediaRecorderUnavailableError, _Error4);\n var _super4 = _createSuper(ReactVideoRecorderMediaRecorderUnavailableError);\n function ReactVideoRecorderMediaRecorderUnavailableError() {\n var _this4;\n _classCallCheck(this, ReactVideoRecorderMediaRecorderUnavailableError);\n _this4 = _super4.call(this, \"Couldn't get mediaRecorder\");\n _this4.name = 'ReactVideoRecorderMediaRecorderUnavailableError';\n return _this4;\n }\n return ReactVideoRecorderMediaRecorderUnavailableError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nexports.ReactVideoRecorderMediaRecorderUnavailableError = ReactVideoRecorderMediaRecorderUnavailableError;\nvar ReactVideoRecorderDeviceUnavailableError = /*#__PURE__*/function (_Error5) {\n _inherits(ReactVideoRecorderDeviceUnavailableError, _Error5);\n var _super5 = _createSuper(ReactVideoRecorderDeviceUnavailableError);\n function ReactVideoRecorderDeviceUnavailableError() {\n var _this5;\n _classCallCheck(this, ReactVideoRecorderDeviceUnavailableError);\n _this5 = _super5.call(this, \"Couldn't get selected device\");\n _this5.name = 'ReactVideoRecorderDeviceUnavailableError';\n return _this5;\n }\n return ReactVideoRecorderDeviceUnavailableError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nexports.ReactVideoRecorderDeviceUnavailableError = ReactVideoRecorderDeviceUnavailableError;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar Button = _styledComponents[\"default\"].button.withConfig({\n displayName: \"button__Button\",\n componentId: \"hkteey-0\"\n})([\"background:\", \";color:\", \";border-radius:4px;height:40px;padding:0px 18px;border:none;margin:-8px;font-size:14px;font-weight:bold;outline:none;cursor:pointer;:hover{background:#eee;}\"], function (props) {\n return props.backgroundColor;\n}, function (props) {\n return props.color;\n});\nButton.defaultProps = {\n color: 'black',\n backgroundColor: 'white'\n};\nvar _default = Button;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n return cache;\n}\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n var cache = _getRequireWildcardCache();\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj[\"default\"] = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _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 Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n return _assertThisInitialized(self);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nvar Root = _styledComponents[\"default\"].div.withConfig({\n displayName: \"countdown__Root\",\n componentId: \"sc-19d3j7o-0\"\n})([\"position:absolute;top:0;bottom:0;left:0;right:0;display:flex;justify-content:center;align-items:center;font-family:Menlo,monospace;font-size:100px;text-shadow:1px 2px rgba(0,0,0,0.5);\"]);\nvar Countdown = /*#__PURE__*/function (_Component) {\n _inherits(Countdown, _Component);\n var _super = _createSuper(Countdown);\n function Countdown(props) {\n var _this;\n _classCallCheck(this, Countdown);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"updateNumber\", function () {\n var nextNumber = _this.state.number - 1;\n _this.setState({\n number: nextNumber\n });\n if (nextNumber !== 0) {\n _this.timeout = setTimeout(_this.updateNumber, 1000);\n }\n });\n _this.state = {\n number: props.countdownTime / 1000\n };\n return _this;\n }\n _createClass(Countdown, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.timeout = setTimeout(this.updateNumber, 1000);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearInterval(this.timeout);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/_react[\"default\"].createElement(Root, null, this.state.number !== 0 ? this.state.number : null);\n }\n }]);\n return Countdown;\n}(_react.Component);\nexports[\"default\"] = Countdown;\n_defineProperty(Countdown, \"propTypes\", {\n countdownTime: _propTypes[\"default\"].number\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _reactSvgInline = _interopRequireDefault(require(\"react-svg-inline\"));\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar SVGWrapper = _styledComponents[\"default\"].div.withConfig({\n displayName: \"disconnected-view__SVGWrapper\",\n componentId: \"sc-1hdjm8z-0\"\n})([\"max-height:100%;max-width:100%;margin-bottom:140px;\"]);\nvar icon = \"\\n\\n \\n \\n \\n \\n \\n\\n\";\nvar DisconnectedView = function DisconnectedView() {\n return /*#__PURE__*/_react[\"default\"].createElement(SVGWrapper, null, /*#__PURE__*/_react[\"default\"].createElement(_reactSvgInline[\"default\"], {\n svg: icon\n }));\n};\nvar _default = DisconnectedView;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar ErrorView = function ErrorView() {\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", null, \"Oh snap! Your browser failed to record your video.\", /*#__PURE__*/_react[\"default\"].createElement(\"br\", null), /*#__PURE__*/_react[\"default\"].createElement(\"br\", null), \"Please restart it and try again \\uD83D\\uDC4D\");\n};\nvar _default = ErrorView;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar LoadingMessage = _styledComponents[\"default\"].div.withConfig({\n displayName: \"loading-view__LoadingMessage\",\n componentId: \"uxy82i-0\"\n})([\"font-family:Arial;\"]);\nvar LoadingView = function LoadingView() {\n return /*#__PURE__*/_react[\"default\"].createElement(LoadingMessage, null, \"Loading...\");\n};\nvar _default = LoadingView;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nvar Button = _styledComponents[\"default\"].button.withConfig({\n displayName: \"record-button__Button\",\n componentId: \"sc-1n5amwk-0\"\n})([\"background:\", \";color:\", \";border-radius:50%;width:64px;height:64px;background:rgba(227,73,28,0.8);outline:none;border:none;cursor:pointer;z-index:5;:hover{background:#fb6d42;}\"], function (props) {\n return props.backgroundColor;\n}, function (props) {\n return props.color;\n});\nvar RecWrapper = _styledComponents[\"default\"].div.withConfig({\n displayName: \"record-button__RecWrapper\",\n componentId: \"sc-1n5amwk-1\"\n})([\"display:flex;flex-direction:column;align-items:center;\"]);\nvar ButtonBorder = _styledComponents[\"default\"].div.withConfig({\n displayName: \"record-button__ButtonBorder\",\n componentId: \"sc-1n5amwk-2\"\n})([\"border:8px solid rgba(255,255,255,0.4);height:80px;width:80px;border-radius:50%;\"]);\nvar Instructions = _styledComponents[\"default\"].div.withConfig({\n displayName: \"record-button__Instructions\",\n componentId: \"sc-1n5amwk-3\"\n})([\"font-family:Arial;font-size:14px;color:#ffffff;letter-spacing:1.75px;display:flex;margin-bottom:20px;\"]);\nvar InstuctionsHighlight = _styledComponents[\"default\"].div.withConfig({\n displayName: \"record-button__InstuctionsHighlight\",\n componentId: \"sc-1n5amwk-4\"\n})([\"font-weight:700;color:#dc6547;padding:0 5px;\"]);\nButton.defaultProps = {\n color: 'black',\n backgroundColor: 'white'\n};\nvar RecordButton = function RecordButton(_ref) {\n var t = _ref.t,\n props = _objectWithoutProperties(_ref, [\"t\"]);\n return /*#__PURE__*/_react[\"default\"].createElement(RecWrapper, null, /*#__PURE__*/_react[\"default\"].createElement(Instructions, null, /*#__PURE__*/_react[\"default\"].createElement(\"div\", null, t('PRESS'), \" \"), /*#__PURE__*/_react[\"default\"].createElement(InstuctionsHighlight, null, \" \", t('REC'), \" \"), t('WHEN READY')), /*#__PURE__*/_react[\"default\"].createElement(ButtonBorder, null, /*#__PURE__*/_react[\"default\"].createElement(Button, props)));\n};\nRecordButton.propTypes = {\n t: _propTypes[\"default\"].func\n};\nvar _default = RecordButton;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\nvar _button = _interopRequireDefault(require(\"./button\"));\nvar _recordButton = _interopRequireDefault(require(\"./record-button\"));\nvar _stopButton = _interopRequireDefault(require(\"./stop-button\"));\nvar _timer = _interopRequireDefault(require(\"./timer\"));\nvar _countdown = _interopRequireDefault(require(\"./countdown\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar ActionsWrapper = _styledComponents[\"default\"].div.withConfig({\n displayName: \"render-actions__ActionsWrapper\",\n componentId: \"dp6lnv-0\"\n})([\"position:absolute;left:0;right:0;top:50%;display:flex;align-items:center;justify-content:center;\"]);\nvar Actions = function Actions(_ref) {\n var t = _ref.t,\n isVideoInputSupported = _ref.isVideoInputSupported,\n isInlineRecordingSupported = _ref.isInlineRecordingSupported,\n thereWasAnError = _ref.thereWasAnError,\n isRecording = _ref.isRecording,\n isCameraOn = _ref.isCameraOn,\n streamIsReady = _ref.streamIsReady,\n isConnecting = _ref.isConnecting,\n isRunningCountdown = _ref.isRunningCountdown,\n isReplayingVideo = _ref.isReplayingVideo,\n countdownTime = _ref.countdownTime,\n timeLimit = _ref.timeLimit,\n showReplayControls = _ref.showReplayControls,\n replayVideoAutoplayAndLoopOff = _ref.replayVideoAutoplayAndLoopOff,\n useVideoInput = _ref.useVideoInput,\n onTurnOnCamera = _ref.onTurnOnCamera,\n onTurnOffCamera = _ref.onTurnOffCamera,\n onOpenVideoInput = _ref.onOpenVideoInput,\n onStartRecording = _ref.onStartRecording,\n onStopRecording = _ref.onStopRecording,\n onPauseRecording = _ref.onPauseRecording,\n onResumeRecording = _ref.onResumeRecording,\n onStopReplaying = _ref.onStopReplaying,\n onConfirm = _ref.onConfirm;\n var renderContent = function renderContent() {\n var shouldUseVideoInput = !isInlineRecordingSupported && isVideoInputSupported;\n if (!isInlineRecordingSupported && !isVideoInputSupported || thereWasAnError || isConnecting || isRunningCountdown) {\n return null;\n }\n if (isReplayingVideo) {\n return /*#__PURE__*/_react[\"default\"].createElement(_button[\"default\"], {\n type: \"button\",\n onClick: onStopReplaying,\n \"data-qa\": \"start-replaying\"\n }, t('Use another video'));\n }\n if (isRecording) {\n return /*#__PURE__*/_react[\"default\"].createElement(_stopButton[\"default\"], {\n type: \"button\",\n onClick: onStopRecording,\n \"data-qa\": \"stop-recording\"\n });\n }\n if (isCameraOn && streamIsReady) {\n return /*#__PURE__*/_react[\"default\"].createElement(_recordButton[\"default\"], {\n t: t,\n type: \"button\",\n onClick: onStartRecording,\n \"data-qa\": \"start-recording\"\n });\n }\n if (useVideoInput) {\n return /*#__PURE__*/_react[\"default\"].createElement(_button[\"default\"], {\n type: \"button\",\n onClick: onOpenVideoInput,\n \"data-qa\": \"open-input\"\n }, t('Upload a video'));\n }\n return shouldUseVideoInput ? /*#__PURE__*/_react[\"default\"].createElement(_button[\"default\"], {\n type: \"button\",\n onClick: onOpenVideoInput,\n \"data-qa\": \"open-input\"\n }, t('Record a video')) : /*#__PURE__*/_react[\"default\"].createElement(_button[\"default\"], {\n type: \"button\",\n onClick: onTurnOnCamera,\n \"data-qa\": \"turn-on-camera\"\n }, t('Turn my camera ON'));\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", null, isRecording && /*#__PURE__*/_react[\"default\"].createElement(_timer[\"default\"], {\n timeLimit: timeLimit\n }), isRunningCountdown && /*#__PURE__*/_react[\"default\"].createElement(_countdown[\"default\"], {\n countdownTime: countdownTime\n }), /*#__PURE__*/_react[\"default\"].createElement(ActionsWrapper, null, renderContent()));\n};\nActions.propTypes = {\n t: _propTypes[\"default\"].func,\n isVideoInputSupported: _propTypes[\"default\"].bool,\n isInlineRecordingSupported: _propTypes[\"default\"].bool,\n thereWasAnError: _propTypes[\"default\"].bool,\n isRecording: _propTypes[\"default\"].bool,\n isCameraOn: _propTypes[\"default\"].bool,\n streamIsReady: _propTypes[\"default\"].bool,\n isConnecting: _propTypes[\"default\"].bool,\n isRunningCountdown: _propTypes[\"default\"].bool,\n countdownTime: _propTypes[\"default\"].number,\n timeLimit: _propTypes[\"default\"].number,\n showReplayControls: _propTypes[\"default\"].bool,\n replayVideoAutoplayAndLoopOff: _propTypes[\"default\"].bool,\n isReplayingVideo: _propTypes[\"default\"].bool,\n useVideoInput: _propTypes[\"default\"].bool,\n onTurnOnCamera: _propTypes[\"default\"].func,\n onTurnOffCamera: _propTypes[\"default\"].func,\n onOpenVideoInput: _propTypes[\"default\"].func,\n onStartRecording: _propTypes[\"default\"].func,\n onStopRecording: _propTypes[\"default\"].func,\n onPauseRecording: _propTypes[\"default\"].func,\n onResumeRecording: _propTypes[\"default\"].func,\n onStopReplaying: _propTypes[\"default\"].func,\n onConfirm: _propTypes[\"default\"].func\n};\nvar _default = Actions;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar Button = _styledComponents[\"default\"].button.withConfig({\n displayName: \"stop-button__Button\",\n componentId: \"sc-1h536gx-0\"\n})([\"background:\", \";color:\", \";border-radius:4px;width:40px;height:40px;background:rgba(227,73,28,0.8);outline:none;border:none;cursor:pointer;margin:20px;:hover{background:#fb6d42;}\"], function (props) {\n return props.backgroundColor;\n}, function (props) {\n return props.color;\n});\nvar Border = _styledComponents[\"default\"].div.withConfig({\n displayName: \"stop-button__Border\",\n componentId: \"sc-1h536gx-1\"\n})([\"background:rgba(255,255,255,0.4);height:80px;width:80px;border-radius:50%;\"]);\nButton.defaultProps = {\n color: 'black',\n backgroundColor: 'white'\n};\nvar _default = function _default(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(Border, null, /*#__PURE__*/_react[\"default\"].createElement(Button, props));\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _reactSvgInline = _interopRequireDefault(require(\"react-svg-inline\"));\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar SVGWrapper = _styledComponents[\"default\"].div.withConfig({\n displayName: \"switch-camera-view__SVGWrapper\",\n componentId: \"sc-13l3hbu-0\"\n})([\"width:80px;height:80px;bottom:4px;right:4px;z-index:10;background-color:rgba(0,0,0,0.3);border-radius:50%;padding-left:8px;padding-top:10px;position:absolute;cursor:pointer;\"]);\nvar icon = \"\\n\\n \\n \\n\\n\";\nvar SwitchCameraView = function SwitchCameraView(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(SVGWrapper, props, /*#__PURE__*/_react[\"default\"].createElement(_reactSvgInline[\"default\"], {\n svg: icon,\n fill: \"white\"\n }));\n};\nvar _default = SwitchCameraView;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n return cache;\n}\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n var cache = _getRequireWildcardCache();\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj[\"default\"] = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _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 Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n return _assertThisInitialized(self);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nvar Text = _styledComponents[\"default\"].div.withConfig({\n displayName: \"timer__Text\",\n componentId: \"avqbub-0\"\n})([\"position:absolute;top:50px;right:50px;font-family:Menlo,monospace;font-size:28px;text-shadow:1px 2px rgba(0,0,0,0.5);\"]);\nvar RecIcon = _styledComponents[\"default\"].div.withConfig({\n displayName: \"timer__RecIcon\",\n componentId: \"avqbub-1\"\n})([\"width:16px;height:16px;background:#e55226;border-radius:50%;float:left;margin:2px 8px;margin-left:0;\"]);\nvar Timer = /*#__PURE__*/function (_Component) {\n _inherits(Timer, _Component);\n var _super = _createSuper(Timer);\n function Timer(props) {\n var _this;\n _classCallCheck(this, Timer);\n _this = _super.call(this, props);\n var nextSeconds = props.timeLimit ? props.timeLimit / 1000 : 0;\n _this.state = _this.getState(nextSeconds);\n return _this;\n }\n _createClass(Timer, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearInterval(this.timer);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n var timeLimit = this.props.timeLimit;\n this.timer = setInterval(function () {\n var seconds = _this2.state.seconds;\n var nextSeconds = timeLimit ? seconds - 1 : seconds + 1;\n var nextState = _this2.getState(nextSeconds);\n _this2.setState(nextState);\n }, 1000);\n }\n }, {\n key: \"pad\",\n value: function pad(unit) {\n var str = '' + unit;\n var pad = '00';\n return pad.substring(0, pad.length - str.length) + str;\n }\n }, {\n key: \"getState\",\n value: function getState(seconds) {\n var minutes = Math.floor(seconds / 60);\n var humanTime = minutes !== 0 ? \"\".concat(minutes, \":\").concat(this.pad(seconds - minutes * 60)) : \"\".concat(seconds - minutes * 60, \"s\");\n return {\n seconds: seconds,\n human: humanTime\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var defaultText = this.props.defaultText || '0:00';\n return /*#__PURE__*/_react[\"default\"].createElement(Text, this.props, /*#__PURE__*/_react[\"default\"].createElement(RecIcon, null), this.state.human || defaultText);\n }\n }]);\n return Timer;\n}(_react.Component);\n_defineProperty(Timer, \"propTypes\", {\n timeLimit: _propTypes[\"default\"].number,\n defaultText: _propTypes[\"default\"].string\n});\nvar _default = Timer;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar UnsupportedView = function UnsupportedView() {\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", null, \"This browser is uncapable of recording video\");\n};\nvar _default = UnsupportedView;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.captureThumb = void 0;\nvar captureThumb = function captureThumb(videoTag) {\n return new Promise(function (resolve, reject) {\n var canvas = document.createElement('canvas');\n canvas.width = videoTag.videoWidth;\n canvas.height = videoTag.videoHeight;\n canvas.getContext('2d').drawImage(videoTag, 0,\n // top\n 0,\n // left\n videoTag.videoWidth, videoTag.videoHeight);\n canvas.toBlob(function (thumbnail) {\n resolve(thumbnail);\n }, 'image/jpeg');\n });\n};\nexports.captureThumb = captureThumb;\nvar getVideoInfo = function getVideoInfo(videoBlob) {\n return new Promise(function (resolve, reject) {\n var videoTag = document.createElement('video');\n videoTag.preload = 'metadata';\n videoTag.muted = true;\n videoTag.defaultMuted = true;\n videoTag.playsInline = true;\n videoTag.autoplay = true;\n var resolved = false;\n var handleTimeout = function handleTimeout() {\n resolved = true;\n resolve({\n duration: null,\n thumbnail: null\n });\n videoTag.removeEventListener && videoTag.removeEventListener('loadeddata', handleLoadedData);\n window.URL.revokeObjectURL(videoTag.src);\n };\n var timeout = setTimeout(handleTimeout, 1000);\n var handleVideoTag = function handleVideoTag(duration) {\n captureThumb(videoTag).then(function (thumbnail) {\n videoTag.pause();\n if (!resolved) {\n clearTimeout(timeout);\n resolved = true;\n resolve({\n duration: duration,\n thumbnail: thumbnail\n });\n }\n window.URL.revokeObjectURL(videoTag.src);\n })[\"catch\"](function (err) {\n if (!resolved) {\n clearTimeout(timeout);\n resolved = true;\n reject(err);\n }\n });\n };\n var handleLoadedData = function handleLoadedData() {\n var duration = videoTag.duration * 1000;\n if (videoTag.duration === Infinity) {\n videoTag.currentTime = Number.MAX_SAFE_INTEGER;\n videoTag.ontimeupdate = function () {\n videoTag.ontimeupdate = null;\n duration = videoTag.duration * 1000;\n videoTag.currentTime = 0;\n handleVideoTag(duration);\n };\n } else {\n handleVideoTag(duration);\n }\n };\n videoTag.addEventListener('loadeddata', handleLoadedData);\n videoTag.src = window.URL.createObjectURL(videoBlob);\n });\n};\nvar _default = getVideoInfo;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _videoRecorder[\"default\"];\n }\n});\nvar _videoRecorder = _interopRequireDefault(require(\"./video-recorder\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _lodash = _interopRequireDefault(require(\"lodash.merge\"));\nvar _styledComponents = _interopRequireWildcard(require(\"styled-components\"));\nvar _fixWebmDuration = _interopRequireDefault(require(\"fix-webm-duration\"));\nvar _unsupportedView = _interopRequireDefault(require(\"./defaults/unsupported-view\"));\nvar _errorView = _interopRequireDefault(require(\"./defaults/error-view\"));\nvar _disconnectedView = _interopRequireDefault(require(\"./defaults/disconnected-view\"));\nvar _loadingView = _interopRequireDefault(require(\"./defaults/loading-view\"));\nvar _switchCameraView = _interopRequireDefault(require(\"./defaults/switch-camera-view\"));\nvar _renderActions = _interopRequireDefault(require(\"./defaults/render-actions\"));\nvar _getVideoInfo = _interopRequireWildcard(require(\"./get-video-info\"));\nvar _customErrors = require(\"./custom-errors\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n return cache;\n}\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n var cache = _getRequireWildcardCache();\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj[\"default\"] = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _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 Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n return _assertThisInitialized(self);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nvar MIME_TYPES = ['video/webm;codecs=\"vp8,opus\"', 'video/webm;codecs=h264', 'video/webm;codecs=vp9', 'video/webm', 'video/mp4'];\nvar CONSTRAINTS = {\n audio: true,\n video: true\n};\nvar Wrapper = _styledComponents[\"default\"].div.withConfig({\n displayName: \"video-recorder__Wrapper\",\n componentId: \"sc-7k20rv-0\"\n})([\"position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;min-height:300px;background-color:#000;color:white;box-sizing:border-box;*{box-sizing:inherit;}\"]);\nvar CameraView = _styledComponents[\"default\"].div.withConfig({\n displayName: \"video-recorder__CameraView\",\n componentId: \"sc-7k20rv-1\"\n})([\"width:100%;height:100%;\"]);\nvar Video = _styledComponents[\"default\"].video.withConfig({\n displayName: \"video-recorder__Video\",\n componentId: \"sc-7k20rv-2\"\n})([\"position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-height:100%;min-width:100%;width:100%;height:100%;object-fit:cover;\", \";\", \";\"], function (props) {\n return props.isFlipped && (0, _styledComponents.css)([\"transform:translate(-50%,-50%) scaleX(-1);\"]);\n}, function (props) {\n return props.onClick && (0, _styledComponents.css)([\"cursor:pointer;\"]);\n});\nvar VideoRecorder = /*#__PURE__*/function (_Component) {\n _inherits(VideoRecorder, _Component);\n var _super = _createSuper(VideoRecorder);\n function VideoRecorder() {\n var _this;\n _classCallCheck(this, VideoRecorder);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"videoInput\", /*#__PURE__*/_react[\"default\"].createRef());\n _defineProperty(_assertThisInitialized(_this), \"isComponentUnmounted\", false);\n _defineProperty(_assertThisInitialized(_this), \"timeSinceInactivity\", 0);\n _defineProperty(_assertThisInitialized(_this), \"lastRecordingTimestamp\", 0);\n _defineProperty(_assertThisInitialized(_this), \"recordingDuration\", 0);\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isRecording: false,\n isCameraOn: false,\n isConnecting: false,\n isReplayingVideo: false,\n isReplayVideoMuted: true,\n thereWasAnError: false,\n error: null,\n streamIsReady: false,\n isInlineRecordingSupported: null,\n isVideoInputSupported: null,\n stream: undefined,\n currentDeviceId: null,\n availableDeviceIds: []\n });\n _defineProperty(_assertThisInitialized(_this), \"turnOnCamera\", function () {\n var deviceId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n if (_this.props.onTurnOnCamera) {\n _this.props.onTurnOnCamera();\n }\n navigator.mediaDevices.enumerateDevices().then(function (mediaDevices) {\n var videoDevices = mediaDevices.filter(function (x) {\n return x.kind === 'videoinput';\n });\n if (deviceId && videoDevices[0] && videoDevices.find(function (x) {\n return x.deviceId;\n }) === undefined) {\n return _this.handleError(new _customErrors.ReactVideoRecorderDeviceUnavailableError());\n }\n var currentDeviceId = typeof deviceId === 'string' ? deviceId : videoDevices[0].deviceId;\n _this.setState({\n isConnecting: true,\n isReplayingVideo: false,\n thereWasAnError: false,\n currentDeviceId: currentDeviceId,\n availableDeviceIds: videoDevices.map(function (x) {\n return x.deviceId;\n }),\n error: null\n });\n var fallbackContraints = {\n audio: true,\n video: true\n };\n var currentConstraints = (0, _lodash[\"default\"])({\n video: {\n deviceId: {\n exact: currentDeviceId\n }\n }\n }, _this.props.constraints);\n navigator.mediaDevices.getUserMedia(currentConstraints)[\"catch\"](function (err) {\n // there's a bug in chrome in some windows computers where using `ideal` in the constraints throws a NotReadableError\n if (err.name === 'NotReadableError' || err.name === 'OverconstrainedError') {\n console.warn(\"Got \".concat(err.name, \", trying getUserMedia again with fallback constraints\"));\n return navigator.mediaDevices.getUserMedia(fallbackContraints);\n }\n throw err;\n }).then(_this.handleSuccess)[\"catch\"](_this.handleError);\n })[\"catch\"](_this.handleError);\n });\n _defineProperty(_assertThisInitialized(_this), \"handleSwitchCamera\", function () {\n if (_this.props.onSwitchCamera) {\n _this.props.onSwitchCamera();\n }\n var _this$state = _this.state,\n currentDeviceId = _this$state.currentDeviceId,\n availableDeviceIds = _this$state.availableDeviceIds; // Stop media tracks\n\n _this.stream && _this.stream.getTracks().forEach(function (stream) {\n return stream.stop();\n });\n var index = availableDeviceIds.findIndex(function (x) {\n return x === currentDeviceId;\n });\n var maxIndex = availableDeviceIds.length - 1;\n if (index < 0) {\n return _this.handleError(new _customErrors.ReactVideoRecorderDeviceUnavailableError());\n }\n if (index + 1 > maxIndex) return _this.turnOnCamera(availableDeviceIds[0]);\n return _this.turnOnCamera(availableDeviceIds[index + 1]);\n });\n _defineProperty(_assertThisInitialized(_this), \"turnOffCamera\", function () {\n if (_this.props.onTurnOffCamera) {\n _this.props.onTurnOffCamera();\n }\n _this.stream && _this.stream.getTracks().forEach(function (stream) {\n return stream.stop();\n });\n _this.setState({\n isCameraOn: false\n });\n clearInterval(_this.inactivityTimer);\n });\n _defineProperty(_assertThisInitialized(_this), \"handleSuccess\", function (stream) {\n // Since handleSuccess is an async function, we may be in a situation where this was called after the\n // component was unmounted\n if (_this.isComponentUnmounted) {\n return;\n }\n _this.stream = stream;\n _this.setState({\n isCameraOn: true,\n stream: stream\n });\n if (_this.props.onCameraOn) {\n _this.props.onCameraOn();\n } // there is probably a better way\n // but this makes sure the start recording button\n // gives the stream a couple miliseconds to be ready\n\n setTimeout(function () {\n _this.setState({\n isConnecting: false,\n streamIsReady: true\n });\n }, 200);\n });\n _defineProperty(_assertThisInitialized(_this), \"handleError\", function (err) {\n var onError = _this.props.onError;\n if (onError) {\n onError(err);\n }\n if (_this.isComponentUnmounted) {\n return;\n }\n console.error('Captured error', err);\n clearTimeout(_this.timeLimitTimeout);\n _this.setState({\n isConnecting: _this.state.isConnecting && false,\n isRecording: false,\n thereWasAnError: true,\n error: err\n });\n if (_this.state.isCameraOn) {\n _this.turnOffCamera();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleDataIssue\", function (event) {\n var error = new _customErrors.ReactVideoRecorderDataIssueError(event);\n console.error(error.message, event);\n _this.handleError(error);\n return false;\n });\n _defineProperty(_assertThisInitialized(_this), \"getMimeType\", function () {\n if (_this.props.mimeType) {\n return _this.props.mimeType;\n }\n var mimeType = window.MediaRecorder.isTypeSupported ? MIME_TYPES.find(window.MediaRecorder.isTypeSupported) : 'video/webm';\n return _this.mediaRecorder && _this.mediaRecorder.mimeType || mimeType || '';\n });\n _defineProperty(_assertThisInitialized(_this), \"isDataHealthOK\", function (event) {\n if (!event.data) return _this.handleDataIssue(event);\n var chunkSize = _this.props.chunkSize;\n var dataCheckInterval = 2000 / chunkSize; // in some browsers (FF/S), data only shows up\n // after a certain amount of time ~everyt 2 seconds\n\n var blobCount = _this.recordedBlobs.length;\n if (blobCount > dataCheckInterval && blobCount % dataCheckInterval === 0) {\n var blob = new window.Blob(_this.recordedBlobs, {\n type: _this.getMimeType()\n });\n if (blob.size <= 0) return _this.handleDataIssue(event);\n }\n return true;\n });\n _defineProperty(_assertThisInitialized(_this), \"tryToUnmuteReplayVideo\", function () {\n var video = _this.replayVideo;\n video.muted = false;\n var playPromise = video.play();\n if (!playPromise) {\n video.muted = true;\n return;\n }\n playPromise.then(function () {\n _this.setState({\n isReplayVideoMuted: false\n }); // fixes bug where seeking control during autoplay is not available until the video is almost completely played through\n\n if (_this.props.replayVideoAutoplayAndLoopOff) {\n video.pause();\n video.loop = false;\n }\n })[\"catch\"](function (err) {\n console.warn('Could not autoplay replay video', err);\n video.muted = true;\n return video.play();\n })[\"catch\"](function (err) {\n console.warn('Could play muted replay video after failed autoplay', err);\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleDataAvailable\", function (event) {\n if (_this.isDataHealthOK(event)) {\n _this.recordedBlobs.push(event.data);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"getTotalEllapsedTimeInMs\", function () {\n return Date.now() - _this.lastRecordingTimestamp + _this.recordingDuration;\n });\n _defineProperty(_assertThisInitialized(_this), \"handleStopRecording\", function () {\n if (_this.props.onStopRecording) {\n _this.props.onStopRecording();\n }\n if (!_this.mediaRecorder) {\n _this.handleError(new _customErrors.ReactVideoRecorderMediaRecorderUnavailableError());\n return;\n }\n _this.mediaRecorder.stop();\n _this.recordingDuration = _this.getTotalEllapsedTimeInMs();\n });\n _defineProperty(_assertThisInitialized(_this), \"handlePauseRecording\", function () {\n if (_this.props.onPauseRecording) {\n _this.props.onPauseRecording();\n }\n if (!_this.mediaRecorder) {\n _this.handleError(new _customErrors.ReactVideoRecorderMediaRecorderUnavailableError());\n return;\n }\n _this.mediaRecorder.pause();\n _this.recordingDuration = _this.getTotalEllapsedTimeInMs();\n });\n _defineProperty(_assertThisInitialized(_this), \"handleResumeRecording\", function () {\n if (_this.props.onResumeRecording) {\n _this.props.onResumeRecording();\n }\n if (!_this.mediaRecorder) {\n _this.handleError(new _customErrors.ReactVideoRecorderMediaRecorderUnavailableError());\n return;\n }\n _this.mediaRecorder.resume();\n _this.lastRecordingTimestamp = Date.now();\n });\n _defineProperty(_assertThisInitialized(_this), \"handleStartRecording\", function () {\n if (_this.props.onStartRecording) {\n _this.props.onStartRecording();\n }\n _this.setState({\n isRunningCountdown: true,\n isReplayingVideo: false\n });\n setTimeout(function () {\n return _this.startRecording();\n }, _this.props.countdownTime);\n });\n _defineProperty(_assertThisInitialized(_this), \"startRecording\", function () {\n (0, _getVideoInfo.captureThumb)(_this.cameraVideo).then(function (thumbnail) {\n _this.thumbnail = thumbnail;\n _this.recordedBlobs = [];\n var options = {\n mimeType: _this.getMimeType()\n };\n try {\n _this.setState({\n isRunningCountdown: false,\n isRecording: true\n });\n _this.startedAt = new Date().getTime();\n _this.mediaRecorder = new window.MediaRecorder(_this.stream, options);\n _this.mediaRecorder.addEventListener('stop', _this.handleStop);\n _this.mediaRecorder.addEventListener('error', _this.handleError);\n _this.mediaRecorder.addEventListener('dataavailable', _this.handleDataAvailable);\n var _this$props = _this.props,\n timeLimit = _this$props.timeLimit,\n chunkSize = _this$props.chunkSize,\n dataAvailableTimeout = _this$props.dataAvailableTimeout;\n _this.mediaRecorder.start(chunkSize); // collect 10ms of data\n\n _this.lastRecordingTimestamp = Date.now();\n _this.recordingDuration = 0;\n if (timeLimit) {\n _this.timeLimitTimeout = setTimeout(function () {\n _this.handleStopRecording();\n }, timeLimit);\n } // mediaRecorder.ondataavailable should be called every 10ms,\n // as that's what we're passing to mediaRecorder.start() above\n\n if (Number.isInteger(dataAvailableTimeout)) {\n setTimeout(function () {\n if (_this.recordedBlobs.length === 0) {\n _this.handleError(new _customErrors.ReactVideoRecorderDataAvailableTimeoutError(dataAvailableTimeout));\n }\n }, dataAvailableTimeout);\n }\n } catch (err) {\n console.error(\"Couldn't create MediaRecorder\", err, options);\n _this.handleError(err);\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleStop\", function (event) {\n var endedAt = new Date().getTime();\n if (!_this.recordedBlobs || _this.recordedBlobs.length <= 0) {\n var error = new _customErrors.ReactVideoRecorderRecordedBlobsUnavailableError(event);\n console.error(error.message, event);\n _this.handleError(error);\n return;\n }\n clearTimeout(_this.timeLimitTimeout);\n var videoBlob = _this.recordedBlobs.length === 1 ? _this.recordedBlobs[0] : new window.Blob(_this.recordedBlobs, {\n type: _this.getMimeType()\n });\n var thumbnailBlob = _this.thumbnail;\n var startedAt = _this.startedAt;\n var duration = endedAt - startedAt; // if this gets executed too soon, the last chunk of data is lost on FF\n\n _this.mediaRecorder.ondataavailable = null;\n _this.fixVideoMetadata(videoBlob).then(function (fixedVideoBlob) {\n _this.setState({\n isRecording: false,\n isReplayingVideo: true,\n isReplayVideoMuted: true,\n fixedVideoBlob: fixedVideoBlob,\n videoUrl: window.URL.createObjectURL(fixedVideoBlob)\n });\n _this.turnOffCamera();\n _this.props.onRecordingComplete(fixedVideoBlob, startedAt, thumbnailBlob, duration);\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"fixVideoMetadata\", function (rawVideoBlob) {\n var _Blob$prototype, _Blob$prototype$array;\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (isSafari) {\n return Promise.resolve(rawVideoBlob);\n } // see https://stackoverflow.com/a/63568311\n\n (_Blob$prototype$array = (_Blob$prototype = Blob.prototype).arrayBuffer) !== null && _Blob$prototype$array !== void 0 ? _Blob$prototype$array : _Blob$prototype.arrayBuffer = function () {\n return new Response(this).arrayBuffer();\n };\n return (0, _fixWebmDuration[\"default\"])(rawVideoBlob, _this.recordingDuration);\n });\n _defineProperty(_assertThisInitialized(_this), \"handleVideoSelected\", function (e) {\n if (_this.state.isReplayingVideo) {\n _this.setState({\n isReplayingVideo: false\n });\n }\n var files = e.target.files || e.dataTransfer.files;\n if (files.length === 0) return;\n var startedAt = new Date().getTime();\n var video = files[0];\n e.target.value = null;\n var extension = video.type === 'video/quicktime' ? 'mov' : undefined;\n (0, _getVideoInfo[\"default\"])(video).then(function (_ref) {\n var duration = _ref.duration,\n thumbnail = _ref.thumbnail;\n _this.setState({\n isRecording: false,\n isReplayingVideo: true,\n isReplayVideoMuted: true,\n videoBlob: video,\n videoUrl: window.URL.createObjectURL(video)\n });\n _this.props.onRecordingComplete(video, startedAt, thumbnail, duration, extension);\n })[\"catch\"](function (err) {\n _this.handleError(err);\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleOpenVideoInput\", function () {\n if (_this.props.onOpenVideoInput) {\n _this.props.onOpenVideoInput();\n }\n _this.videoInput.current.value = null;\n _this.videoInput.current.click(); // fixes a bug on iPhone where it doesn't save the recorded video on the second time (if you press the 'Use another video' button)\n\n _this.videoInput.current.addEventListener('change', _this.handleVideoSelected);\n });\n _defineProperty(_assertThisInitialized(_this), \"handleStopReplaying\", function () {\n if (_this.props.onStopReplaying) {\n _this.props.onStopReplaying();\n }\n if (_this.props.useVideoInput && _this.props.isOnInitially) {\n return _this.handleOpenVideoInput();\n }\n _this.setState({\n isReplayingVideo: false\n });\n if (_this.state.isInlineRecordingSupported && _this.props.isOnInitially) {\n _this.turnOnCamera();\n } else if (_this.state.isVideoInputSupported && _this.props.isOnInitially) {\n _this.handleOpenVideoInput();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleReplayVideoClick\", function () {\n if (_this.replayVideo.paused && !_this.props.showReplayControls) {\n _this.replayVideo.play();\n } // fixes bug where seeking control during autoplay is not available until the video is almost completely played through\n\n if (!_this.props.replayVideoAutoplayAndLoopOff) {\n _this.setState({\n isReplayVideoMuted: !_this.state.isReplayVideoMuted\n });\n }\n });\n return _this;\n }\n _createClass(VideoRecorder, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n var isInlineRecordingSupported = !!window.MediaRecorder && !!navigator.mediaDevices;\n var isVideoInputSupported = document.createElement('input').capture !== undefined;\n this.setState({\n isInlineRecordingSupported: isInlineRecordingSupported,\n isVideoInputSupported: isVideoInputSupported\n }, function () {\n if (_this2.props.useVideoInput && _this2.props.isOnInitially) {\n _this2.handleOpenVideoInput();\n } else if (_this2.state.isInlineRecordingSupported && _this2.props.isOnInitially) {\n _this2.turnOnCamera();\n } else if (_this2.state.isVideoInputSupported && _this2.props.isOnInitially) {\n _this2.handleOpenVideoInput();\n }\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.replayVideo && this.state.isReplayingVideo && !prevState.isReplayingVideo) {\n this.tryToUnmuteReplayVideo();\n }\n if (this.state.isCameraOn !== prevState.isCameraOn && this.state.isCameraOn) {\n // Only if the cameraVideo ref is available\n if (window.URL && this.cameraVideo) {\n this.cameraVideo.srcObject = this.state.stream;\n } else {\n this.cameraVideo.src = this.state.stream;\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.turnOffCamera();\n this.isComponentUnmounted = true;\n }\n }, {\n key: \"renderCameraView\",\n value: function renderCameraView() {\n var _this3 = this;\n var _this$props2 = this.props,\n cameraViewClassName = _this$props2.cameraViewClassName,\n showReplayControls = _this$props2.showReplayControls,\n videoControlsList = _this$props2.videoControlsList,\n disablePictureInPicture = _this$props2.disablePictureInPicture,\n replayVideoAutoplayAndLoopOff = _this$props2.replayVideoAutoplayAndLoopOff,\n renderDisconnectedView = _this$props2.renderDisconnectedView,\n renderVideoInputView = _this$props2.renderVideoInputView,\n renderUnsupportedView = _this$props2.renderUnsupportedView,\n renderErrorView = _this$props2.renderErrorView,\n renderLoadingView = _this$props2.renderLoadingView,\n useVideoInput = _this$props2.useVideoInput,\n videoClassName = _this$props2.videoClassName;\n var _this$state2 = this.state,\n isVideoInputSupported = _this$state2.isVideoInputSupported,\n isReplayingVideo = _this$state2.isReplayingVideo,\n isInlineRecordingSupported = _this$state2.isInlineRecordingSupported,\n thereWasAnError = _this$state2.thereWasAnError,\n error = _this$state2.error,\n isCameraOn = _this$state2.isCameraOn,\n isConnecting = _this$state2.isConnecting,\n isReplayVideoMuted = _this$state2.isReplayVideoMuted,\n isRecording = _this$state2.isRecording,\n availableDeviceIds = _this$state2.availableDeviceIds;\n var shouldUseVideoInput = useVideoInput || !isInlineRecordingSupported && isVideoInputSupported;\n var videoInput = shouldUseVideoInput ? /*#__PURE__*/_react[\"default\"].createElement(\"input\", {\n ref: this.videoInput,\n key: \"videoInput\",\n type: \"file\",\n accept: \"video/*\",\n capture: useVideoInput ? undefined : 'user',\n style: {\n display: 'none'\n },\n onChange: this.handleVideoSelected\n }) : null;\n if (isReplayingVideo) {\n return /*#__PURE__*/_react[\"default\"].createElement(CameraView, {\n key: \"replay\",\n className: cameraViewClassName\n }, /*#__PURE__*/_react[\"default\"].createElement(Video, {\n ref: function ref(el) {\n return _this3.replayVideo = el;\n },\n className: videoClassName,\n src: this.state.videoUrl,\n loop: true,\n muted: isReplayVideoMuted,\n playsInline: true,\n autoPlay: !replayVideoAutoplayAndLoopOff,\n controls: showReplayControls,\n onClick: this.handleReplayVideoClick,\n onDurationChange: this.handleDurationChange,\n controlsList: videoControlsList,\n disablePictureInPicture: disablePictureInPicture\n }), videoInput);\n }\n if (shouldUseVideoInput) {\n return renderVideoInputView({\n videoInput: videoInput\n });\n }\n if (!isInlineRecordingSupported) {\n return renderUnsupportedView();\n }\n if (thereWasAnError) {\n return renderErrorView({\n error: error\n });\n }\n if (isCameraOn) {\n // Enable switch camera button, only if not recording and multiple video sources available\n var switchCameraControl = availableDeviceIds && availableDeviceIds.length >= 2 && !isRecording ? /*#__PURE__*/_react[\"default\"].createElement(_switchCameraView[\"default\"], {\n onClick: this.handleSwitchCamera\n }) : null;\n return /*#__PURE__*/_react[\"default\"].createElement(CameraView, {\n key: \"camera\"\n }, /*#__PURE__*/_react[\"default\"].createElement(Video, {\n isFlipped: this.props.isFlipped,\n ref: function ref(el) {\n return _this3.cameraVideo = el;\n },\n autoPlay: true,\n muted: true,\n playsInline: true\n }), switchCameraControl);\n }\n if (isConnecting) {\n return renderLoadingView();\n }\n return renderDisconnectedView();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n var _this$state3 = this.state,\n isVideoInputSupported = _this$state3.isVideoInputSupported,\n isInlineRecordingSupported = _this$state3.isInlineRecordingSupported,\n thereWasAnError = _this$state3.thereWasAnError,\n isRecording = _this$state3.isRecording,\n isCameraOn = _this$state3.isCameraOn,\n streamIsReady = _this$state3.streamIsReady,\n isConnecting = _this$state3.isConnecting,\n isRunningCountdown = _this$state3.isRunningCountdown,\n isReplayingVideo = _this$state3.isReplayingVideo,\n isReplayVideoMuted = _this$state3.isReplayVideoMuted;\n var _this$props3 = this.props,\n countdownTime = _this$props3.countdownTime,\n timeLimit = _this$props3.timeLimit,\n showReplayControls = _this$props3.showReplayControls,\n replayVideoAutoplayAndLoopOff = _this$props3.replayVideoAutoplayAndLoopOff,\n renderActions = _this$props3.renderActions,\n t = _this$props3.t,\n useVideoInput = _this$props3.useVideoInput,\n wrapperClassName = _this$props3.wrapperClassName;\n return /*#__PURE__*/_react[\"default\"].createElement(Wrapper, {\n className: wrapperClassName\n }, this.renderCameraView(), renderActions({\n t: t,\n isVideoInputSupported: isVideoInputSupported,\n isInlineRecordingSupported: isInlineRecordingSupported,\n thereWasAnError: thereWasAnError,\n isRecording: isRecording,\n isCameraOn: isCameraOn,\n streamIsReady: streamIsReady,\n isConnecting: isConnecting,\n isRunningCountdown: isRunningCountdown,\n isReplayingVideo: isReplayingVideo,\n isReplayVideoMuted: isReplayVideoMuted,\n countdownTime: countdownTime,\n timeLimit: timeLimit,\n showReplayControls: showReplayControls,\n replayVideoAutoplayAndLoopOff: replayVideoAutoplayAndLoopOff,\n useVideoInput: useVideoInput,\n onTurnOnCamera: function onTurnOnCamera() {\n return _this4.turnOnCamera();\n },\n onSwitchCamera: this.handleSwitchCamera,\n onTurnOffCamera: this.turnOffCamera,\n onOpenVideoInput: this.handleOpenVideoInput,\n onStartRecording: this.handleStartRecording,\n onStopRecording: this.handleStopRecording,\n onPauseRecording: this.handlePauseRecording,\n onResumeRecording: this.handleResumeRecording,\n onStopReplaying: this.handleStopReplaying\n }));\n }\n }]);\n return VideoRecorder;\n}(_react.Component);\nexports[\"default\"] = VideoRecorder;\n_defineProperty(VideoRecorder, \"propTypes\", {\n /** Whether or not to start the camera initially */\n isOnInitially: _propTypes[\"default\"].bool,\n /** Whether or not to display the video flipped (makes sense for user facing camera) */\n isFlipped: _propTypes[\"default\"].bool,\n /** Pass this if you want to force a specific mime-type for the video */\n mimeType: _propTypes[\"default\"].string,\n /** How much time to wait until it starts recording (in ms) */\n countdownTime: _propTypes[\"default\"].number,\n /** Use this if you want to set a time limit for the video (in ms) */\n timeLimit: _propTypes[\"default\"].number,\n /** Use this if you want to show play/pause/etc. controls on the replay video */\n showReplayControls: _propTypes[\"default\"].bool,\n /** Use this to turn off autoplay and looping of the replay video. It is recommended to also showReplayControls in order to play */\n replayVideoAutoplayAndLoopOff: _propTypes[\"default\"].bool,\n /** Use this if you want to customize the constraints passed to getUserMedia() */\n constraints: _propTypes[\"default\"].shape({\n audio: _propTypes[\"default\"].any,\n video: _propTypes[\"default\"].any\n }),\n chunkSize: _propTypes[\"default\"].number,\n dataAvailableTimeout: _propTypes[\"default\"].number,\n useVideoInput: _propTypes[\"default\"].bool,\n /** Use this to configure the replaying video element's controlslist attribute */\n videoControlsList: _propTypes[\"default\"].string,\n /** Use this to disable picture in picture mode on the replaying video element */\n disablePictureInPicture: _propTypes[\"default\"].bool,\n renderDisconnectedView: _propTypes[\"default\"].func,\n renderLoadingView: _propTypes[\"default\"].func,\n renderVideoInputView: _propTypes[\"default\"].func,\n renderUnsupportedView: _propTypes[\"default\"].func,\n renderErrorView: _propTypes[\"default\"].func,\n renderActions: _propTypes[\"default\"].func,\n cameraViewClassName: _propTypes[\"default\"].string,\n videoClassName: _propTypes[\"default\"].string,\n wrapperClassName: _propTypes[\"default\"].string,\n /** Use this to localize the texts */\n t: _propTypes[\"default\"].func,\n onCameraOn: _propTypes[\"default\"].func,\n onTurnOnCamera: _propTypes[\"default\"].func,\n onSwitchCamera: _propTypes[\"default\"].func,\n onTurnOffCamera: _propTypes[\"default\"].func,\n onStartRecording: _propTypes[\"default\"].func,\n onStopRecording: _propTypes[\"default\"].func,\n onPauseRecording: _propTypes[\"default\"].func,\n onResumeRecording: _propTypes[\"default\"].func,\n onRecordingComplete: _propTypes[\"default\"].func,\n onOpenVideoInput: _propTypes[\"default\"].func,\n onStopReplaying: _propTypes[\"default\"].func,\n onError: _propTypes[\"default\"].func\n});\n_defineProperty(VideoRecorder, \"defaultProps\", {\n renderUnsupportedView: function renderUnsupportedView() {\n return /*#__PURE__*/_react[\"default\"].createElement(_unsupportedView[\"default\"], null);\n },\n renderErrorView: function renderErrorView() {\n return /*#__PURE__*/_react[\"default\"].createElement(_errorView[\"default\"], null);\n },\n renderVideoInputView: function renderVideoInputView(_ref2) {\n var videoInput = _ref2.videoInput;\n return /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, videoInput);\n },\n renderDisconnectedView: function renderDisconnectedView() {\n return /*#__PURE__*/_react[\"default\"].createElement(_disconnectedView[\"default\"], null);\n },\n renderLoadingView: function renderLoadingView() {\n return /*#__PURE__*/_react[\"default\"].createElement(_loadingView[\"default\"], null);\n },\n t: function t(x) {\n return x;\n },\n renderActions: _renderActions[\"default\"],\n isFlipped: true,\n countdownTime: 3000,\n constraints: CONSTRAINTS,\n chunkSize: 250,\n dataAvailableTimeout: 500\n});","var React = require(\"react\");\nvar ReactDOM = require(\"react-dom\");\nvar ReactDOMServer = require(\"react-dom/server\");\nvar detectEvents = require(\"./src/events/detect\");\nvar constructorFromGlobal = require(\"./src/getConstructor/fromGlobal\");\nvar constructorFromRequireContextWithGlobalFallback = require(\"./src/getConstructor/fromRequireContextWithGlobalFallback\");\nconst _require = require(\"./src/renderHelpers\"),\n supportsHydration = _require.supportsHydration,\n reactHydrate = _require.reactHydrate,\n createReactRootLike = _require.createReactRootLike;\nvar ReactRailsUJS = {\n // This attribute holds the name of component which should be mounted\n // example: `data-react-class=\"MyApp.Items.EditForm\"`\n CLASS_NAME_ATTR: 'data-react-class',\n // This attribute holds JSON stringified props for initializing the component\n // example: `data-react-props=\"{\\\"item\\\": { \\\"id\\\": 1, \\\"name\\\": \\\"My Item\\\"} }\"`\n PROPS_ATTR: 'data-react-props',\n // This attribute holds which method to use between: ReactDOM.hydrate, ReactDOM.render\n RENDER_ATTR: 'data-hydrate',\n // A unique identifier to identify a node\n CACHE_ID_ATTR: \"data-react-cache-id\",\n TURBOLINKS_PERMANENT_ATTR: \"data-turbolinks-permanent\",\n // If jQuery is detected, save a reference to it for event handlers\n jQuery: typeof window !== 'undefined' && typeof window.jQuery !== 'undefined' && window.jQuery,\n components: {},\n // helper method for the mount and unmount methods to find the\n // `data-react-class` DOM elements\n findDOMNodes: function (searchSelector) {\n var classNameAttr = ReactRailsUJS.CLASS_NAME_ATTR;\n // we will use fully qualified paths as we do not bind the callbacks\n var selector, parent;\n switch (typeof searchSelector) {\n case 'undefined':\n selector = '[' + classNameAttr + ']';\n parent = document;\n break;\n case 'object':\n selector = '[' + classNameAttr + ']';\n parent = searchSelector;\n break;\n case 'string':\n selector = searchSelector + '[' + classNameAttr + '], ' + searchSelector + ' [' + classNameAttr + ']';\n parent = document;\n break;\n default:\n break;\n }\n if (ReactRailsUJS.jQuery) {\n return ReactRailsUJS.jQuery(selector, parent);\n } else {\n return parent.querySelectorAll(selector);\n }\n },\n // Get the constructor for a className (returns a React class)\n // Override this function to lookup classes in a custom way,\n // the default is ReactRailsUJS.ComponentGlobal\n getConstructor: constructorFromGlobal,\n // Given a Webpack `require.context`,\n // try finding components with `require`,\n // then falling back to global lookup.\n useContext: function (requireContext) {\n this.getConstructor = constructorFromRequireContextWithGlobalFallback(requireContext);\n },\n // Render `componentName` with `props` to a string,\n // using the specified `renderFunction` from `react-dom/server`.\n serverRender: function (renderFunction, componentName, props) {\n var componentClass = this.getConstructor(componentName);\n var element = React.createElement(componentClass, props);\n return ReactDOMServer[renderFunction](element);\n },\n // Within `searchSelector`, find nodes which should have React components\n // inside them, and mount them with their props.\n mountComponents: function (searchSelector) {\n var ujs = ReactRailsUJS;\n var nodes = ujs.findDOMNodes(searchSelector);\n for (var i = 0; i < nodes.length; ++i) {\n var node = nodes[i];\n var className = node.getAttribute(ujs.CLASS_NAME_ATTR);\n var constructor = ujs.getConstructor(className);\n var propsJson = node.getAttribute(ujs.PROPS_ATTR);\n var props = propsJson && JSON.parse(propsJson);\n var hydrate = node.getAttribute(ujs.RENDER_ATTR);\n var cacheId = node.getAttribute(ujs.CACHE_ID_ATTR);\n var turbolinksPermanent = node.hasAttribute(ujs.TURBOLINKS_PERMANENT_ATTR);\n if (!constructor) {\n var message = \"Cannot find component: '\" + className + \"'\";\n if (console && console.log) {\n console.log(\"%c[react-rails] %c\" + message + \" for element\", \"font-weight: bold\", \"\", node);\n }\n throw new Error(message + \". Make sure your component is available to render.\");\n } else {\n var component = this.components[cacheId];\n if (component === undefined) {\n component = React.createElement(constructor, props);\n if (turbolinksPermanent) {\n this.components[cacheId] = component;\n }\n }\n if (hydrate && supportsHydration()) {\n component = reactHydrate(node, component);\n } else {\n const root = createReactRootLike(node);\n component = root.render(component);\n }\n }\n }\n },\n // Within `searchSelector`, find nodes which have React components\n // inside them, and unmount those components.\n unmountComponents: function (searchSelector) {\n var nodes = ReactRailsUJS.findDOMNodes(searchSelector);\n for (var i = 0; i < nodes.length; ++i) {\n var node = nodes[i];\n ReactDOM.unmountComponentAtNode(node);\n }\n },\n // Check the global context for installed libraries\n // and figure out which library to hook up to (pjax, Turbolinks, jQuery)\n // This is called on load, but you can call it again if needed\n // (It will unmount itself)\n detectEvents: function () {\n detectEvents(this);\n }\n};\n\n// These stable references are so that handlers can be added and removed:\nReactRailsUJS.handleMount = function (e) {\n var target = undefined;\n if (e && e.target) {\n target = e.target;\n }\n ReactRailsUJS.mountComponents(target);\n};\nReactRailsUJS.handleUnmount = function (e) {\n var target = undefined;\n if (e && e.target) {\n target = e.target;\n }\n ReactRailsUJS.unmountComponents(target);\n};\nif (typeof window !== \"undefined\") {\n // Only setup events for browser (not server-rendering)\n ReactRailsUJS.detectEvents();\n}\n\n// It's a bit of a no-no to populate the global namespace,\n// but we really need it!\n// We need access to this object for server rendering, and\n// we can't do a dynamic `require`, so we'll grab it from here:\nself.ReactRailsUJS = ReactRailsUJS;\nmodule.exports = ReactRailsUJS;","var nativeEvents = require(\"./native\");\nvar pjaxEvents = require(\"./pjax\");\nvar turbolinksEvents = require(\"./turbolinks\");\nvar turbolinksClassicDeprecatedEvents = require(\"./turbolinksClassicDeprecated\");\nvar turbolinksClassicEvents = require(\"./turbolinksClassic\");\n\n// see what things are globally available\n// and setup event handlers to those things\nmodule.exports = function (ujs) {\n if (ujs.handleEvent) {\n // We're calling this a second time -- remove previous handlers\n if (typeof Turbolinks !== \"undefined\" && typeof Turbolinks.EVENTS !== \"undefined\") {\n turbolinksClassicEvents.teardown(ujs);\n }\n turbolinksEvents.teardown(ujs);\n turbolinksClassicDeprecatedEvents.teardown(ujs);\n pjaxEvents.teardown(ujs);\n nativeEvents.teardown(ujs);\n }\n if ('addEventListener' in window) {\n ujs.handleEvent = function (eventName, callback) {\n document.addEventListener(eventName, callback);\n };\n ujs.removeEvent = function (eventName, callback) {\n document.removeEventListener(eventName, callback);\n };\n } else {\n ujs.handleEvent = function (eventName, callback) {\n window.attachEvent(eventName, callback);\n };\n ujs.removeEvent = function (eventName, callback) {\n window.detachEvent(eventName, callback);\n };\n }\n\n // Detect which kind of events to set up:\n if (typeof Turbolinks !== 'undefined' && Turbolinks.supported) {\n if (typeof Turbolinks.EVENTS !== 'undefined') {\n // Turbolinks.EVENTS is in classic version 2.4.0+\n turbolinksClassicEvents.setup(ujs);\n } else if (typeof Turbolinks.controller !== \"undefined\") {\n // Turbolinks.controller is in version 5+\n turbolinksEvents.setup(ujs);\n } else {\n turbolinksClassicDeprecatedEvents.setup(ujs);\n }\n } else if (typeof $ !== \"undefined\" && typeof $.pjax === 'function') {\n pjaxEvents.setup(ujs);\n } else {\n nativeEvents.setup(ujs);\n }\n};","module.exports = {\n // Attach handlers to browser events to mount\n // (There are no unmount handlers since the page is destroyed on navigation)\n setup: function (ujs) {\n if ('addEventListener' in window) {\n ujs.handleEvent('DOMContentLoaded', ujs.handleMount);\n } else {\n // add support to IE8 without jQuery\n ujs.handleEvent('onload', ujs.handleMount);\n }\n },\n teardown: function (ujs) {\n ujs.removeEvent('DOMContentLoaded', ujs.handleMount);\n ujs.removeEvent('onload', ujs.handleMount);\n }\n};","module.exports = {\n // pjax support\n setup: function (ujs) {\n ujs.handleEvent('ready', ujs.handleMount);\n ujs.handleEvent('pjax:end', ujs.handleMount);\n ujs.handleEvent('pjax:beforeReplace', ujs.handleUnmount);\n },\n teardown: function (ujs) {\n ujs.removeEvent('ready', ujs.handleMount);\n ujs.removeEvent('pjax:end', ujs.handleMount);\n ujs.removeEvent('pjax:beforeReplace', ujs.handleUnmount);\n }\n};","module.exports = {\n // Turbolinks 5+ got rid of named events (?!)\n setup: function (ujs) {\n ujs.handleEvent('turbolinks:load', ujs.handleMount);\n },\n teardown: function (ujs) {\n ujs.removeEvent('turbolinks:load', ujs.handleMount);\n }\n};","module.exports = {\n // Attach handlers to Turbolinks-Classic events\n // for mounting and unmounting components\n setup: function (ujs) {\n ujs.handleEvent(Turbolinks.EVENTS.CHANGE, ujs.handleMount);\n ujs.handleEvent(Turbolinks.EVENTS.BEFORE_UNLOAD, ujs.handleUnmount);\n },\n teardown: function (ujs) {\n ujs.removeEvent(Turbolinks.EVENTS.CHANGE, ujs.handleMount);\n ujs.removeEvent(Turbolinks.EVENTS.BEFORE_UNLOAD, ujs.handleUnmount);\n }\n};","module.exports = {\n // Before Turbolinks 2.4.0, Turbolinks didn't\n // have named events and didn't have a before-unload event.\n // Also, it didn't work with the Turbolinks cache, see\n // https://github.com/reactjs/react-rails/issues/87\n setup: function (ujs) {\n Turbolinks.pagesCached(0);\n ujs.handleEvent('page:change', ujs.handleMount);\n ujs.handleEvent('page:receive', ujs.handleUnmount);\n },\n teardown: function (ujs) {\n ujs.removeEvent('page:change', ujs.handleMount);\n ujs.removeEvent('page:receive', ujs.handleUnmount);\n }\n};","// Assume className is simple and can be found at top-level (window).\n// Fallback to eval to handle cases like 'My.React.ComponentName'.\n// Also, try to gracefully import Babel 6 style default exports\nvar topLevel = typeof window === \"undefined\" ? this : window;\nmodule.exports = function (className) {\n var constructor;\n // Try to access the class globally first\n constructor = topLevel[className];\n\n // If that didn't work, try eval\n if (!constructor) {\n constructor = eval(className);\n }\n\n // Lastly, if there is a default attribute try that\n if (constructor && constructor['default']) {\n constructor = constructor['default'];\n }\n return constructor;\n};","// Load React components by requiring them from \"components/\", for example:\n//\n// - \"pages/index\" -> `require(\"components/pages/index\")`\n// - \"pages/show.Header\" -> `require(\"components/pages/show\").Header`\n// - \"pages/show.Body.Content\" -> `require(\"components/pages/show\").Body.Content`\n//\nmodule.exports = function (reqctx) {\n return function (className) {\n var parts = className.split(\".\");\n var filename = parts.shift();\n var keys = parts;\n // Load the module:\n var component = reqctx(\"./\" + filename);\n // Then access each key:\n keys.forEach(function (k) {\n component = component[k];\n });\n // support `export default`\n if (component.__esModule) {\n component = component[\"default\"];\n }\n return component;\n };\n};","// Make a function which:\n// - First tries to require the name\n// - Then falls back to global lookup\nvar fromGlobal = require(\"./fromGlobal\");\nvar fromRequireContext = require(\"./fromRequireContext\");\nmodule.exports = function (reqctx) {\n var fromCtx = fromRequireContext(reqctx);\n return function (className) {\n var component;\n try {\n // `require` will raise an error if this className isn't found:\n component = fromCtx(className);\n } catch (firstErr) {\n // fallback to global:\n try {\n component = fromGlobal(className);\n } catch (secondErr) {\n console.error(firstErr);\n console.error(secondErr);\n }\n }\n return component;\n };\n};","const ReactDOM = require(\"react-dom\");\nexport function supportsHydration() {\n return typeof ReactDOM.hydrate === \"function\" || typeof ReactDOM.hydrateRoot === \"function\";\n}\nexport function reactHydrate(node, component) {\n if (typeof ReactDOM.hydrateRoot === \"function\") {\n return ReactDOM.hydrateRoot(node, component);\n } else {\n return ReactDOM.hydrate(component, node);\n }\n}\nexport function createReactRootLike(node) {\n return ReactDOM.createRoot ? ReactDOM.createRoot(node) : legacyReactRootLike(node);\n}\nfunction legacyReactRootLike(node) {\n const root = {\n render(component) {\n return ReactDOM.render(component, node);\n }\n };\n return root;\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nfunction __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nfunction __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n}\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport { __assign, __read, __rest, __spreadArray, __values };","var NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\n})(NodeType || (NodeType = {}));\nfunction isElement(n) {\n return n.nodeType === n.ELEMENT_NODE;\n}\nfunction isShadowRoot(n) {\n var _a;\n var host = (_a = n) === null || _a === void 0 ? void 0 : _a.host;\n return Boolean(host && host.shadowRoot && host.shadowRoot === n);\n}\nfunction maskInputValue(_a) {\n var maskInputOptions = _a.maskInputOptions,\n tagName = _a.tagName,\n type = _a.type,\n value = _a.value,\n maskInputFn = _a.maskInputFn;\n var text = value || '';\n if (maskInputOptions[tagName.toLowerCase()] || maskInputOptions[type]) {\n if (maskInputFn) {\n text = maskInputFn(text);\n } else {\n text = '*'.repeat(text.length);\n }\n }\n return text;\n}\nvar ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\nfunction is2DCanvasBlank(canvas) {\n var ctx = canvas.getContext('2d');\n if (!ctx) return true;\n var chunkSize = 50;\n for (var x = 0; x < canvas.width; x += chunkSize) {\n for (var y = 0; y < canvas.height; y += chunkSize) {\n var getImageData = ctx.getImageData;\n var originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData ? getImageData[ORIGINAL_ATTRIBUTE_NAME] : getImageData;\n var pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\n if (pixelBuffer.some(function (pixel) {\n return pixel !== 0;\n })) return false;\n }\n }\n return true;\n}\nvar _id = 1;\nvar tagNameRegex = new RegExp('[^a-z0-9-_:]');\nvar IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName(element) {\n if (element instanceof HTMLFormElement) {\n return 'form';\n }\n var processedTagName = element.tagName.toLowerCase().trim();\n if (tagNameRegex.test(processedTagName)) {\n return 'div';\n }\n return processedTagName;\n}\nfunction getCssRulesString(s) {\n try {\n var rules = s.rules || s.cssRules;\n return rules ? Array.from(rules).map(getCssRuleString).join('') : null;\n } catch (error) {\n return null;\n }\n}\nfunction getCssRuleString(rule) {\n var cssStringified = rule.cssText;\n if (isCSSImportRule(rule)) {\n try {\n cssStringified = getCssRulesString(rule.styleSheet) || cssStringified;\n } catch (_a) {}\n }\n return cssStringified;\n}\nfunction isCSSImportRule(rule) {\n return 'styleSheet' in rule;\n}\nfunction stringifyStyleSheet(sheet) {\n return sheet.cssRules ? Array.from(sheet.cssRules).map(function (rule) {\n return rule.cssText || '';\n }).join('') : '';\n}\nfunction extractOrigin(url) {\n var origin = '';\n if (url.indexOf('//') > -1) {\n origin = url.split('/').slice(0, 3).join('/');\n } else {\n origin = url.split('/')[0];\n }\n origin = origin.split('?')[0];\n return origin;\n}\nvar canvasService;\nvar canvasCtx;\nvar URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nvar RELATIVE_PATH = /^(?!www\\.|(?:http|ftp)s?:\\/\\/|[A-Za-z]:\\\\|\\/\\/|#).*/;\nvar DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absoluteToStylesheet(cssText, href) {\n return (cssText || '').replace(URL_IN_CSS_REF, function (origin, quote1, path1, quote2, path2, path3) {\n var filePath = path1 || path2 || path3;\n var maybeQuote = quote1 || quote2 || '';\n if (!filePath) {\n return origin;\n }\n if (!RELATIVE_PATH.test(filePath)) {\n return \"url(\" + maybeQuote + filePath + maybeQuote + \")\";\n }\n if (DATA_URI.test(filePath)) {\n return \"url(\" + maybeQuote + filePath + maybeQuote + \")\";\n }\n if (filePath[0] === '/') {\n return \"url(\" + maybeQuote + (extractOrigin(href) + filePath) + maybeQuote + \")\";\n }\n var stack = href.split('/');\n var parts = filePath.split('/');\n stack.pop();\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n if (part === '.') {\n continue;\n } else if (part === '..') {\n stack.pop();\n } else {\n stack.push(part);\n }\n }\n return \"url(\" + maybeQuote + stack.join('/') + maybeQuote + \")\";\n });\n}\nvar SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nvar SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === '') {\n return attributeValue;\n }\n var pos = 0;\n function collectCharacters(regEx) {\n var chars;\n var match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars = match[0];\n pos += chars.length;\n return chars;\n }\n return '';\n }\n var output = [];\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n var url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === ',') {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n } else {\n var descriptorsStr = '';\n url = absoluteToDoc(doc, url);\n var inParens = false;\n while (true) {\n var c = attributeValue.charAt(pos);\n if (c === '') {\n output.push((url + descriptorsStr).trim());\n break;\n } else if (!inParens) {\n if (c === ',') {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n } else if (c === '(') {\n inParens = true;\n }\n } else {\n if (c === ')') {\n inParens = false;\n }\n }\n descriptorsStr += c;\n pos += 1;\n }\n }\n }\n return output.join(', ');\n}\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === '') {\n return attributeValue;\n }\n var a = doc.createElement('a');\n a.href = attributeValue;\n return a.href;\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\n}\nfunction getHref() {\n var a = document.createElement('a');\n a.href = '';\n return a.href;\n}\nfunction transformAttribute(doc, tagName, name, value) {\n if (name === 'src' || name === 'href' && value) {\n return absoluteToDoc(doc, value);\n } else if (name === 'xlink:href' && value && value[0] !== '#') {\n return absoluteToDoc(doc, value);\n } else if (name === 'background' && value && (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\n return absoluteToDoc(doc, value);\n } else if (name === 'srcset' && value) {\n return getAbsoluteSrcsetString(doc, value);\n } else if (name === 'style' && value) {\n return absoluteToStylesheet(value, getHref());\n } else if (tagName === 'object' && name === 'data' && value) {\n return absoluteToDoc(doc, value);\n } else {\n return value;\n }\n}\nfunction _isBlockedElement(element, blockClass, blockSelector) {\n if (typeof blockClass === 'string') {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n } else {\n for (var eIndex = 0; eIndex < element.classList.length; eIndex++) {\n var className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n return false;\n}\nfunction needMaskingText(node, maskTextClass, maskTextSelector) {\n if (!node) {\n return false;\n }\n if (node.nodeType === node.ELEMENT_NODE) {\n if (typeof maskTextClass === 'string') {\n if (node.classList.contains(maskTextClass)) {\n return true;\n }\n } else {\n for (var eIndex = 0; eIndex < node.classList.length; eIndex++) {\n var className = node.classList[eIndex];\n if (maskTextClass.test(className)) {\n return true;\n }\n }\n }\n if (maskTextSelector) {\n if (node.matches(maskTextSelector)) {\n return true;\n }\n }\n return needMaskingText(node.parentNode, maskTextClass, maskTextSelector);\n }\n if (node.nodeType === node.TEXT_NODE) {\n return needMaskingText(node.parentNode, maskTextClass, maskTextSelector);\n }\n return needMaskingText(node.parentNode, maskTextClass, maskTextSelector);\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n var win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n var fired = false;\n var readyState;\n try {\n readyState = win.document.readyState;\n } catch (error) {\n return;\n }\n if (readyState !== 'complete') {\n var timer_1 = setTimeout(function () {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener('load', function () {\n clearTimeout(timer_1);\n fired = true;\n listener();\n });\n return;\n }\n var blankUrl = 'about:blank';\n if (win.location.href !== blankUrl || iframeEl.src === blankUrl || iframeEl.src === '') {\n setTimeout(listener, 0);\n return;\n }\n iframeEl.addEventListener('load', listener);\n}\nfunction serializeNode(n, options) {\n var _a;\n var doc = options.doc,\n blockClass = options.blockClass,\n blockSelector = options.blockSelector,\n maskTextClass = options.maskTextClass,\n maskTextSelector = options.maskTextSelector,\n inlineStylesheet = options.inlineStylesheet,\n _b = options.maskInputOptions,\n maskInputOptions = _b === void 0 ? {} : _b,\n maskTextFn = options.maskTextFn,\n maskInputFn = options.maskInputFn,\n _c = options.dataURLOptions,\n dataURLOptions = _c === void 0 ? {} : _c,\n inlineImages = options.inlineImages,\n recordCanvas = options.recordCanvas,\n keepIframeSrcFn = options.keepIframeSrcFn;\n var rootId;\n if (doc.__sn) {\n var docId = doc.__sn.id;\n rootId = docId === 1 ? undefined : docId;\n }\n switch (n.nodeType) {\n case n.DOCUMENT_NODE:\n if (n.compatMode !== 'CSS1Compat') {\n return {\n type: NodeType.Document,\n childNodes: [],\n compatMode: n.compatMode,\n rootId: rootId\n };\n } else {\n return {\n type: NodeType.Document,\n childNodes: [],\n rootId: rootId\n };\n }\n case n.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType.DocumentType,\n name: n.name,\n publicId: n.publicId,\n systemId: n.systemId,\n rootId: rootId\n };\n case n.ELEMENT_NODE:\n var needBlock = _isBlockedElement(n, blockClass, blockSelector);\n var tagName = getValidTagName(n);\n var attributes_1 = {};\n for (var _i = 0, _d = Array.from(n.attributes); _i < _d.length; _i++) {\n var _e = _d[_i],\n name_1 = _e.name,\n value = _e.value;\n attributes_1[name_1] = transformAttribute(doc, tagName, name_1, value);\n }\n if (tagName === 'link' && inlineStylesheet) {\n var stylesheet = Array.from(doc.styleSheets).find(function (s) {\n return s.href === n.href;\n });\n var cssText = null;\n if (stylesheet) {\n cssText = getCssRulesString(stylesheet);\n }\n if (cssText) {\n delete attributes_1.rel;\n delete attributes_1.href;\n attributes_1._cssText = absoluteToStylesheet(cssText, stylesheet.href);\n }\n }\n if (tagName === 'style' && n.sheet && !(n.innerText || n.textContent || '').trim().length) {\n var cssText = getCssRulesString(n.sheet);\n if (cssText) {\n attributes_1._cssText = absoluteToStylesheet(cssText, getHref());\n }\n }\n if (tagName === 'input' || tagName === 'textarea' || tagName === 'select') {\n var value = n.value;\n if (attributes_1.type !== 'radio' && attributes_1.type !== 'checkbox' && attributes_1.type !== 'submit' && attributes_1.type !== 'button' && value) {\n attributes_1.value = maskInputValue({\n type: attributes_1.type,\n tagName: tagName,\n value: value,\n maskInputOptions: maskInputOptions,\n maskInputFn: maskInputFn\n });\n } else if (n.checked) {\n attributes_1.checked = n.checked;\n }\n }\n if (tagName === 'option') {\n if (n.selected && !maskInputOptions['select']) {\n attributes_1.selected = true;\n } else {\n delete attributes_1.selected;\n }\n }\n if (tagName === 'canvas' && recordCanvas) {\n if (n.__context === '2d') {\n if (!is2DCanvasBlank(n)) {\n attributes_1.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n }\n } else if (!('__context' in n)) {\n var canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n var blankCanvas = document.createElement('canvas');\n blankCanvas.width = n.width;\n blankCanvas.height = n.height;\n var blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes_1.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === 'img' && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement('canvas');\n canvasCtx = canvasService.getContext('2d');\n }\n var image_1 = n;\n var oldValue_1 = image_1.crossOrigin;\n image_1.crossOrigin = 'anonymous';\n var recordInlineImage = function () {\n try {\n canvasService.width = image_1.naturalWidth;\n canvasService.height = image_1.naturalHeight;\n canvasCtx.drawImage(image_1, 0, 0);\n attributes_1.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n } catch (err) {\n console.warn(\"Cannot inline img src=\" + image_1.currentSrc + \"! Error: \" + err);\n }\n oldValue_1 ? attributes_1.crossOrigin = oldValue_1 : delete attributes_1.crossOrigin;\n };\n if (image_1.complete && image_1.naturalWidth !== 0) recordInlineImage();else image_1.onload = recordInlineImage;\n }\n if (tagName === 'audio' || tagName === 'video') {\n attributes_1.rr_mediaState = n.paused ? 'paused' : 'played';\n attributes_1.rr_mediaCurrentTime = n.currentTime;\n }\n if (n.scrollLeft) {\n attributes_1.rr_scrollLeft = n.scrollLeft;\n }\n if (n.scrollTop) {\n attributes_1.rr_scrollTop = n.scrollTop;\n }\n if (needBlock) {\n var _f = n.getBoundingClientRect(),\n width = _f.width,\n height = _f.height;\n attributes_1 = {\n \"class\": attributes_1[\"class\"],\n rr_width: width + \"px\",\n rr_height: height + \"px\"\n };\n }\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes_1.src)) {\n if (!n.contentDocument) {\n attributes_1.rr_src = attributes_1.src;\n }\n delete attributes_1.src;\n }\n return {\n type: NodeType.Element,\n tagName: tagName,\n attributes: attributes_1,\n childNodes: [],\n isSVG: isSVGElement(n) || undefined,\n needBlock: needBlock,\n rootId: rootId\n };\n case n.TEXT_NODE:\n var parentTagName = n.parentNode && n.parentNode.tagName;\n var textContent = n.textContent;\n var isStyle = parentTagName === 'STYLE' ? true : undefined;\n var isScript = parentTagName === 'SCRIPT' ? true : undefined;\n if (isStyle && textContent) {\n try {\n if (n.nextSibling || n.previousSibling) {} else if ((_a = n.parentNode.sheet) === null || _a === void 0 ? void 0 : _a.cssRules) {\n textContent = stringifyStyleSheet(n.parentNode.sheet);\n }\n } catch (err) {\n console.warn(\"Cannot get CSS styles from text's parentNode. Error: \" + err, n);\n }\n textContent = absoluteToStylesheet(textContent, getHref());\n }\n if (isScript) {\n textContent = 'SCRIPT_PLACEHOLDER';\n }\n if (!isStyle && !isScript && needMaskingText(n, maskTextClass, maskTextSelector) && textContent) {\n textContent = maskTextFn ? maskTextFn(textContent) : textContent.replace(/[\\S]/g, '*');\n }\n return {\n type: NodeType.Text,\n textContent: textContent || '',\n isStyle: isStyle,\n rootId: rootId\n };\n case n.CDATA_SECTION_NODE:\n return {\n type: NodeType.CDATA,\n textContent: '',\n rootId: rootId\n };\n case n.COMMENT_NODE:\n return {\n type: NodeType.Comment,\n textContent: n.textContent || '',\n rootId: rootId\n };\n default:\n return false;\n }\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === undefined) {\n return '';\n } else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\n return true;\n } else if (sn.type === NodeType.Element) {\n if (slimDOMOptions.script && (sn.tagName === 'script' || sn.tagName === 'link' && sn.attributes.rel === 'preload' && sn.attributes.as === 'script' || sn.tagName === 'link' && sn.attributes.rel === 'prefetch' && typeof sn.attributes.href === 'string' && sn.attributes.href.endsWith('.js'))) {\n return true;\n } else if (slimDOMOptions.headFavicon && (sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon' || sn.tagName === 'meta' && (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) || lowerIfExists(sn.attributes.name) === 'application-name' || lowerIfExists(sn.attributes.rel) === 'icon' || lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' || lowerIfExists(sn.attributes.rel) === 'shortcut icon'))) {\n return true;\n } else if (sn.tagName === 'meta') {\n if (slimDOMOptions.headMetaDescKeywords && lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n } else if (slimDOMOptions.headMetaSocial && (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) || lowerIfExists(sn.attributes.name) === 'pinterest')) {\n return true;\n } else if (slimDOMOptions.headMetaRobots && (lowerIfExists(sn.attributes.name) === 'robots' || lowerIfExists(sn.attributes.name) === 'googlebot' || lowerIfExists(sn.attributes.name) === 'bingbot')) {\n return true;\n } else if (slimDOMOptions.headMetaHttpEquiv && sn.attributes['http-equiv'] !== undefined) {\n return true;\n } else if (slimDOMOptions.headMetaAuthorship && (lowerIfExists(sn.attributes.name) === 'author' || lowerIfExists(sn.attributes.name) === 'generator' || lowerIfExists(sn.attributes.name) === 'framework' || lowerIfExists(sn.attributes.name) === 'publisher' || lowerIfExists(sn.attributes.name) === 'progid' || lowerIfExists(sn.attributes.property).match(/^article:/) || lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n } else if (slimDOMOptions.headMetaVerification && (lowerIfExists(sn.attributes.name) === 'google-site-verification' || lowerIfExists(sn.attributes.name) === 'yandex-verification' || lowerIfExists(sn.attributes.name) === 'csrf-token' || lowerIfExists(sn.attributes.name) === 'p:domain_verify' || lowerIfExists(sn.attributes.name) === 'verify-v1' || lowerIfExists(sn.attributes.name) === 'verification' || lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeNodeWithId(n, options) {\n var doc = options.doc,\n map = options.map,\n blockClass = options.blockClass,\n blockSelector = options.blockSelector,\n maskTextClass = options.maskTextClass,\n maskTextSelector = options.maskTextSelector,\n _a = options.skipChild,\n skipChild = _a === void 0 ? false : _a,\n _b = options.inlineStylesheet,\n inlineStylesheet = _b === void 0 ? true : _b,\n _c = options.maskInputOptions,\n maskInputOptions = _c === void 0 ? {} : _c,\n maskTextFn = options.maskTextFn,\n maskInputFn = options.maskInputFn,\n slimDOMOptions = options.slimDOMOptions,\n _d = options.dataURLOptions,\n dataURLOptions = _d === void 0 ? {} : _d,\n _e = options.inlineImages,\n inlineImages = _e === void 0 ? false : _e,\n _f = options.recordCanvas,\n recordCanvas = _f === void 0 ? false : _f,\n onSerialize = options.onSerialize,\n onIframeLoad = options.onIframeLoad,\n _g = options.iframeLoadTimeout,\n iframeLoadTimeout = _g === void 0 ? 5000 : _g,\n _h = options.keepIframeSrcFn,\n keepIframeSrcFn = _h === void 0 ? function () {\n return false;\n } : _h;\n var _j = options.preserveWhiteSpace,\n preserveWhiteSpace = _j === void 0 ? true : _j;\n var _serializedNode = serializeNode(n, {\n doc: doc,\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n keepIframeSrcFn: keepIframeSrcFn\n });\n if (!_serializedNode) {\n console.warn(n, 'not serialized');\n return null;\n }\n var id;\n if ('__sn' in n) {\n id = n.__sn.id;\n } else if (slimDOMExcluded(_serializedNode, slimDOMOptions) || !preserveWhiteSpace && _serializedNode.type === NodeType.Text && !_serializedNode.isStyle && !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length) {\n id = IGNORED_NODE;\n } else {\n id = genId();\n }\n var serializedNode = Object.assign(_serializedNode, {\n id: id\n });\n n.__sn = serializedNode;\n if (id === IGNORED_NODE) {\n return null;\n }\n map[id] = n;\n if (onSerialize) {\n onSerialize(n);\n }\n var recordChild = !skipChild;\n if (serializedNode.type === NodeType.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n if (n.shadowRoot) serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType.Document || serializedNode.type === NodeType.Element) && recordChild) {\n if (slimDOMOptions.headWhitespace && _serializedNode.type === NodeType.Element && _serializedNode.tagName === 'head') {\n preserveWhiteSpace = false;\n }\n var bypassOptions = {\n doc: doc,\n map: map,\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n skipChild: skipChild,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n slimDOMOptions: slimDOMOptions,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n preserveWhiteSpace: preserveWhiteSpace,\n onSerialize: onSerialize,\n onIframeLoad: onIframeLoad,\n iframeLoadTimeout: iframeLoadTimeout,\n keepIframeSrcFn: keepIframeSrcFn\n };\n for (var _i = 0, _k = Array.from(n.childNodes); _i < _k.length; _i++) {\n var childN = _k[_i];\n var serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n if (isElement(n) && n.shadowRoot) {\n for (var _l = 0, _m = Array.from(n.shadowRoot.childNodes); _l < _m.length; _l++) {\n var childN = _m[_l];\n var serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedChildNode.isShadow = true;\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n if (n.parentNode && isShadowRoot(n.parentNode)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType.Element && serializedNode.tagName === 'iframe') {\n onceIframeLoaded(n, function () {\n var iframeDoc = n.contentDocument;\n if (iframeDoc && onIframeLoad) {\n var serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n map: map,\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n skipChild: false,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n slimDOMOptions: slimDOMOptions,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n preserveWhiteSpace: preserveWhiteSpace,\n onSerialize: onSerialize,\n onIframeLoad: onIframeLoad,\n iframeLoadTimeout: iframeLoadTimeout,\n keepIframeSrcFn: keepIframeSrcFn\n });\n if (serializedIframeNode) {\n onIframeLoad(n, serializedIframeNode);\n }\n }\n }, iframeLoadTimeout);\n }\n return serializedNode;\n}\nfunction snapshot(n, options) {\n var _a = options || {},\n _b = _a.blockClass,\n blockClass = _b === void 0 ? 'rr-block' : _b,\n _c = _a.blockSelector,\n blockSelector = _c === void 0 ? null : _c,\n _d = _a.maskTextClass,\n maskTextClass = _d === void 0 ? 'rr-mask' : _d,\n _e = _a.maskTextSelector,\n maskTextSelector = _e === void 0 ? null : _e,\n _f = _a.inlineStylesheet,\n inlineStylesheet = _f === void 0 ? true : _f,\n _g = _a.inlineImages,\n inlineImages = _g === void 0 ? false : _g,\n _h = _a.recordCanvas,\n recordCanvas = _h === void 0 ? false : _h,\n _j = _a.maskAllInputs,\n maskAllInputs = _j === void 0 ? false : _j,\n maskTextFn = _a.maskTextFn,\n maskInputFn = _a.maskInputFn,\n _k = _a.slimDOM,\n slimDOM = _k === void 0 ? false : _k,\n dataURLOptions = _a.dataURLOptions,\n preserveWhiteSpace = _a.preserveWhiteSpace,\n onSerialize = _a.onSerialize,\n onIframeLoad = _a.onIframeLoad,\n iframeLoadTimeout = _a.iframeLoadTimeout,\n _l = _a.keepIframeSrcFn,\n keepIframeSrcFn = _l === void 0 ? function () {\n return false;\n } : _l;\n var idNodeMap = {};\n var maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : maskAllInputs === false ? {\n password: true\n } : maskAllInputs;\n var slimDOMOptions = slimDOM === true || slimDOM === 'all' ? {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === 'all',\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true\n } : slimDOM === false ? {} : slimDOM;\n return [serializeNodeWithId(n, {\n doc: n,\n map: idNodeMap,\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n skipChild: false,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n slimDOMOptions: slimDOMOptions,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n preserveWhiteSpace: preserveWhiteSpace,\n onSerialize: onSerialize,\n onIframeLoad: onIframeLoad,\n iframeLoadTimeout: iframeLoadTimeout,\n keepIframeSrcFn: keepIframeSrcFn\n }), idNodeMap];\n}\nvar commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\nfunction parse(css, options) {\n if (options === void 0) {\n options = {};\n }\n var lineno = 1;\n var column = 1;\n function updatePosition(str) {\n var lines = str.match(/\\n/g);\n if (lines) {\n lineno += lines.length;\n }\n var i = str.lastIndexOf('\\n');\n column = i === -1 ? column + str.length : str.length - i;\n }\n function position() {\n var start = {\n line: lineno,\n column: column\n };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n var Position = function () {\n function Position(start) {\n this.start = start;\n this.end = {\n line: lineno,\n column: column\n };\n this.source = options.source;\n }\n return Position;\n }();\n Position.prototype.content = css;\n var errorsList = [];\n function error(msg) {\n var err = new Error(options.source + ':' + lineno + ':' + column + ': ' + msg);\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = css;\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n function stylesheet() {\n var rulesList = rules();\n return {\n type: 'stylesheet',\n stylesheet: {\n source: options.source,\n rules: rulesList,\n parsingErrors: errorsList\n }\n };\n }\n function open() {\n return match(/^{\\s*/);\n }\n function close() {\n return match(/^}/);\n }\n function rules() {\n var node;\n var rules = [];\n whitespace();\n comments(rules);\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\n if (node !== false) {\n rules.push(node);\n comments(rules);\n }\n }\n return rules;\n }\n function match(re) {\n var m = re.exec(css);\n if (!m) {\n return;\n }\n var str = m[0];\n updatePosition(str);\n css = css.slice(str.length);\n return m;\n }\n function whitespace() {\n match(/^\\s*/);\n }\n function comments(rules) {\n if (rules === void 0) {\n rules = [];\n }\n var c;\n while (c = comment()) {\n if (c !== false) {\n rules.push(c);\n }\n c = comment();\n }\n return rules;\n }\n function comment() {\n var pos = position();\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\n return;\n }\n var i = 2;\n while ('' !== css.charAt(i) && ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\n ++i;\n }\n i += 2;\n if ('' === css.charAt(i - 1)) {\n return error('End of comment missing');\n }\n var str = css.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n css = css.slice(i);\n column += 2;\n return pos({\n type: 'comment',\n comment: str\n });\n }\n function selector() {\n var m = match(/^([^{]+)/);\n if (!m) {\n return;\n }\n return trim(m[0]).replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '').replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, function (m) {\n return m.replace(/,/g, '\\u200C');\n }).split(/\\s*(?![^(]*\\)),\\s*/).map(function (s) {\n return s.replace(/\\u200C/g, ',');\n });\n }\n function declaration() {\n var pos = position();\n var propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\n if (!propMatch) {\n return;\n }\n var prop = trim(propMatch[0]);\n if (!match(/^:\\s*/)) {\n return error(\"property missing ':'\");\n }\n var val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\n var ret = pos({\n type: 'declaration',\n property: prop.replace(commentre, ''),\n value: val ? trim(val[0]).replace(commentre, '') : ''\n });\n match(/^[;\\s]*/);\n return ret;\n }\n function declarations() {\n var decls = [];\n if (!open()) {\n return error(\"missing '{'\");\n }\n comments(decls);\n var decl;\n while (decl = declaration()) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n decl = declaration();\n }\n if (!close()) {\n return error(\"missing '}'\");\n }\n return decls;\n }\n function keyframe() {\n var m;\n var vals = [];\n var pos = position();\n while (m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/)) {\n vals.push(m[1]);\n match(/^,\\s*/);\n }\n if (!vals.length) {\n return;\n }\n return pos({\n type: 'keyframe',\n values: vals,\n declarations: declarations()\n });\n }\n function atkeyframes() {\n var pos = position();\n var m = match(/^@([-\\w]+)?keyframes\\s*/);\n if (!m) {\n return;\n }\n var vendor = m[1];\n m = match(/^([-\\w]+)\\s*/);\n if (!m) {\n return error('@keyframes missing name');\n }\n var name = m[1];\n if (!open()) {\n return error(\"@keyframes missing '{'\");\n }\n var frame;\n var frames = comments();\n while (frame = keyframe()) {\n frames.push(frame);\n frames = frames.concat(comments());\n }\n if (!close()) {\n return error(\"@keyframes missing '}'\");\n }\n return pos({\n type: 'keyframes',\n name: name,\n vendor: vendor,\n keyframes: frames\n });\n }\n function atsupports() {\n var pos = position();\n var m = match(/^@supports *([^{]+)/);\n if (!m) {\n return;\n }\n var supports = trim(m[1]);\n if (!open()) {\n return error(\"@supports missing '{'\");\n }\n var style = comments().concat(rules());\n if (!close()) {\n return error(\"@supports missing '}'\");\n }\n return pos({\n type: 'supports',\n supports: supports,\n rules: style\n });\n }\n function athost() {\n var pos = position();\n var m = match(/^@host\\s*/);\n if (!m) {\n return;\n }\n if (!open()) {\n return error(\"@host missing '{'\");\n }\n var style = comments().concat(rules());\n if (!close()) {\n return error(\"@host missing '}'\");\n }\n return pos({\n type: 'host',\n rules: style\n });\n }\n function atmedia() {\n var pos = position();\n var m = match(/^@media *([^{]+)/);\n if (!m) {\n return;\n }\n var media = trim(m[1]);\n if (!open()) {\n return error(\"@media missing '{'\");\n }\n var style = comments().concat(rules());\n if (!close()) {\n return error(\"@media missing '}'\");\n }\n return pos({\n type: 'media',\n media: media,\n rules: style\n });\n }\n function atcustommedia() {\n var pos = position();\n var m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\n if (!m) {\n return;\n }\n return pos({\n type: 'custom-media',\n name: trim(m[1]),\n media: trim(m[2])\n });\n }\n function atpage() {\n var pos = position();\n var m = match(/^@page */);\n if (!m) {\n return;\n }\n var sel = selector() || [];\n if (!open()) {\n return error(\"@page missing '{'\");\n }\n var decls = comments();\n var decl;\n while (decl = declaration()) {\n decls.push(decl);\n decls = decls.concat(comments());\n }\n if (!close()) {\n return error(\"@page missing '}'\");\n }\n return pos({\n type: 'page',\n selectors: sel,\n declarations: decls\n });\n }\n function atdocument() {\n var pos = position();\n var m = match(/^@([-\\w]+)?document *([^{]+)/);\n if (!m) {\n return;\n }\n var vendor = trim(m[1]);\n var doc = trim(m[2]);\n if (!open()) {\n return error(\"@document missing '{'\");\n }\n var style = comments().concat(rules());\n if (!close()) {\n return error(\"@document missing '}'\");\n }\n return pos({\n type: 'document',\n document: doc,\n vendor: vendor,\n rules: style\n });\n }\n function atfontface() {\n var pos = position();\n var m = match(/^@font-face\\s*/);\n if (!m) {\n return;\n }\n if (!open()) {\n return error(\"@font-face missing '{'\");\n }\n var decls = comments();\n var decl;\n while (decl = declaration()) {\n decls.push(decl);\n decls = decls.concat(comments());\n }\n if (!close()) {\n return error(\"@font-face missing '}'\");\n }\n return pos({\n type: 'font-face',\n declarations: decls\n });\n }\n var atimport = _compileAtrule('import');\n var atcharset = _compileAtrule('charset');\n var atnamespace = _compileAtrule('namespace');\n function _compileAtrule(name) {\n var re = new RegExp('^@' + name + '\\\\s*([^;]+);');\n return function () {\n var pos = position();\n var m = match(re);\n if (!m) {\n return;\n }\n var ret = {\n type: name\n };\n ret[name] = m[1].trim();\n return pos(ret);\n };\n }\n function atrule() {\n if (css[0] !== '@') {\n return;\n }\n return atkeyframes() || atmedia() || atcustommedia() || atsupports() || atimport() || atcharset() || atnamespace() || atdocument() || atpage() || athost() || atfontface();\n }\n function rule() {\n var pos = position();\n var sel = selector();\n if (!sel) {\n return error('selector missing');\n }\n comments();\n return pos({\n type: 'rule',\n selectors: sel,\n declarations: declarations()\n });\n }\n return addParent(stylesheet());\n}\nfunction trim(str) {\n return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\n}\nfunction addParent(obj, parent) {\n var isNode = obj && typeof obj.type === 'string';\n var childParent = isNode ? obj : parent;\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var k = _a[_i];\n var value = obj[k];\n if (Array.isArray(value)) {\n value.forEach(function (v) {\n addParent(v, childParent);\n });\n } else if (value && typeof value === 'object') {\n addParent(value, childParent);\n }\n }\n if (isNode) {\n Object.defineProperty(obj, 'parent', {\n configurable: true,\n writable: true,\n enumerable: false,\n value: parent || null\n });\n }\n return obj;\n}\nvar tagMap = {\n script: 'noscript',\n altglyph: 'altGlyph',\n altglyphdef: 'altGlyphDef',\n altglyphitem: 'altGlyphItem',\n animatecolor: 'animateColor',\n animatemotion: 'animateMotion',\n animatetransform: 'animateTransform',\n clippath: 'clipPath',\n feblend: 'feBlend',\n fecolormatrix: 'feColorMatrix',\n fecomponenttransfer: 'feComponentTransfer',\n fecomposite: 'feComposite',\n feconvolvematrix: 'feConvolveMatrix',\n fediffuselighting: 'feDiffuseLighting',\n fedisplacementmap: 'feDisplacementMap',\n fedistantlight: 'feDistantLight',\n fedropshadow: 'feDropShadow',\n feflood: 'feFlood',\n fefunca: 'feFuncA',\n fefuncb: 'feFuncB',\n fefuncg: 'feFuncG',\n fefuncr: 'feFuncR',\n fegaussianblur: 'feGaussianBlur',\n feimage: 'feImage',\n femerge: 'feMerge',\n femergenode: 'feMergeNode',\n femorphology: 'feMorphology',\n feoffset: 'feOffset',\n fepointlight: 'fePointLight',\n fespecularlighting: 'feSpecularLighting',\n fespotlight: 'feSpotLight',\n fetile: 'feTile',\n feturbulence: 'feTurbulence',\n foreignobject: 'foreignObject',\n glyphref: 'glyphRef',\n lineargradient: 'linearGradient',\n radialgradient: 'radialGradient'\n};\nfunction getTagName(n) {\n var tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\n if (tagName === 'link' && n.attributes._cssText) {\n tagName = 'style';\n }\n return tagName;\n}\nfunction escapeRegExp(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\nvar HOVER_SELECTOR = /([^\\\\]):hover/;\nvar HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\nfunction addHoverClass(cssText, cache) {\n var cachedStyle = cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.get(cssText);\n if (cachedStyle) return cachedStyle;\n var ast = parse(cssText, {\n silent: true\n });\n if (!ast.stylesheet) {\n return cssText;\n }\n var selectors = [];\n ast.stylesheet.rules.forEach(function (rule) {\n if ('selectors' in rule) {\n (rule.selectors || []).forEach(function (selector) {\n if (HOVER_SELECTOR.test(selector)) {\n selectors.push(selector);\n }\n });\n }\n });\n if (selectors.length === 0) {\n return cssText;\n }\n var selectorMatcher = new RegExp(selectors.filter(function (selector, index) {\n return selectors.indexOf(selector) === index;\n }).sort(function (a, b) {\n return b.length - a.length;\n }).map(function (selector) {\n return escapeRegExp(selector);\n }).join('|'), 'g');\n var result = cssText.replace(selectorMatcher, function (selector) {\n var newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\n return selector + \", \" + newSelector;\n });\n cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.set(cssText, result);\n return result;\n}\nfunction createCache() {\n var stylesWithHoverClass = new Map();\n return {\n stylesWithHoverClass: stylesWithHoverClass\n };\n}\nfunction buildNode(n, options) {\n var doc = options.doc,\n hackCss = options.hackCss,\n cache = options.cache;\n switch (n.type) {\n case NodeType.Document:\n return doc.implementation.createDocument(null, '', null);\n case NodeType.DocumentType:\n return doc.implementation.createDocumentType(n.name || 'html', n.publicId, n.systemId);\n case NodeType.Element:\n var tagName = getTagName(n);\n var node_1;\n if (n.isSVG) {\n node_1 = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\n } else {\n node_1 = doc.createElement(tagName);\n }\n var _loop_1 = function (name_1) {\n if (!n.attributes.hasOwnProperty(name_1)) {\n return \"continue\";\n }\n var value = n.attributes[name_1];\n if (tagName === 'option' && name_1 === 'selected' && value === false) {\n return \"continue\";\n }\n value = typeof value === 'boolean' || typeof value === 'number' ? '' : value;\n if (!name_1.startsWith('rr_')) {\n var isTextarea = tagName === 'textarea' && name_1 === 'value';\n var isRemoteOrDynamicCss = tagName === 'style' && name_1 === '_cssText';\n if (isRemoteOrDynamicCss && hackCss) {\n value = addHoverClass(value, cache);\n }\n if (isTextarea || isRemoteOrDynamicCss) {\n var child = doc.createTextNode(value);\n for (var _i = 0, _a = Array.from(node_1.childNodes); _i < _a.length; _i++) {\n var c = _a[_i];\n if (c.nodeType === node_1.TEXT_NODE) {\n node_1.removeChild(c);\n }\n }\n node_1.appendChild(child);\n return \"continue\";\n }\n try {\n if (n.isSVG && name_1 === 'xlink:href') {\n node_1.setAttributeNS('http://www.w3.org/1999/xlink', name_1, value);\n } else if (name_1 === 'onload' || name_1 === 'onclick' || name_1.substring(0, 7) === 'onmouse') {\n node_1.setAttribute('_' + name_1, value);\n } else if (tagName === 'meta' && n.attributes['http-equiv'] === 'Content-Security-Policy' && name_1 === 'content') {\n node_1.setAttribute('csp-content', value);\n return \"continue\";\n } else if (tagName === 'link' && n.attributes.rel === 'preload' && n.attributes.as === 'script') {} else if (tagName === 'link' && n.attributes.rel === 'prefetch' && typeof n.attributes.href === 'string' && n.attributes.href.endsWith('.js')) {} else if (tagName === 'img' && n.attributes.srcset && n.attributes.rr_dataURL) {\n node_1.setAttribute('rrweb-original-srcset', n.attributes.srcset);\n } else {\n node_1.setAttribute(name_1, value);\n }\n } catch (error) {}\n } else {\n if (tagName === 'canvas' && name_1 === 'rr_dataURL') {\n var image_1 = document.createElement('img');\n image_1.src = value;\n image_1.onload = function () {\n var ctx = node_1.getContext('2d');\n if (ctx) {\n ctx.drawImage(image_1, 0, 0, image_1.width, image_1.height);\n }\n };\n } else if (tagName === 'img' && name_1 === 'rr_dataURL') {\n var image = node_1;\n if (!image.currentSrc.startsWith('data:')) {\n image.setAttribute('rrweb-original-src', n.attributes.src);\n image.src = value;\n }\n }\n if (name_1 === 'rr_width') {\n node_1.style.width = value;\n } else if (name_1 === 'rr_height') {\n node_1.style.height = value;\n } else if (name_1 === 'rr_mediaCurrentTime') {\n node_1.currentTime = n.attributes.rr_mediaCurrentTime;\n } else if (name_1 === 'rr_mediaState') {\n switch (value) {\n case 'played':\n node_1.play()[\"catch\"](function (e) {\n return console.warn('media playback error', e);\n });\n break;\n case 'paused':\n node_1.pause();\n break;\n }\n }\n }\n };\n for (var name_1 in n.attributes) {\n _loop_1(name_1);\n }\n if (n.isShadowHost) {\n if (!node_1.shadowRoot) {\n node_1.attachShadow({\n mode: 'open'\n });\n } else {\n while (node_1.shadowRoot.firstChild) {\n node_1.shadowRoot.removeChild(node_1.shadowRoot.firstChild);\n }\n }\n }\n return node_1;\n case NodeType.Text:\n return doc.createTextNode(n.isStyle && hackCss ? addHoverClass(n.textContent, cache) : n.textContent);\n case NodeType.CDATA:\n return doc.createCDATASection(n.textContent);\n case NodeType.Comment:\n return doc.createComment(n.textContent);\n default:\n return null;\n }\n}\nfunction buildNodeWithSN(n, options) {\n var doc = options.doc,\n map = options.map,\n _a = options.skipChild,\n skipChild = _a === void 0 ? false : _a,\n _b = options.hackCss,\n hackCss = _b === void 0 ? true : _b,\n afterAppend = options.afterAppend,\n cache = options.cache;\n var node = buildNode(n, {\n doc: doc,\n hackCss: hackCss,\n cache: cache\n });\n if (!node) {\n return null;\n }\n if (n.rootId) {\n console.assert(map[n.rootId] === doc, 'Target document should has the same root id.');\n }\n if (n.type === NodeType.Document) {\n doc.close();\n doc.open();\n if (n.compatMode === 'BackCompat' && n.childNodes && n.childNodes[0].type !== NodeType.DocumentType) {\n if (n.childNodes[0].type === NodeType.Element && 'xmlns' in n.childNodes[0].attributes && n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml') {\n doc.write('');\n } else {\n doc.write('');\n }\n }\n node = doc;\n }\n node.__sn = n;\n map[n.id] = node;\n if ((n.type === NodeType.Document || n.type === NodeType.Element) && !skipChild) {\n for (var _i = 0, _c = n.childNodes; _i < _c.length; _i++) {\n var childN = _c[_i];\n var childNode = buildNodeWithSN(childN, {\n doc: doc,\n map: map,\n skipChild: false,\n hackCss: hackCss,\n afterAppend: afterAppend,\n cache: cache\n });\n if (!childNode) {\n console.warn('Failed to rebuild', childN);\n continue;\n }\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\n node.shadowRoot.appendChild(childNode);\n } else {\n node.appendChild(childNode);\n }\n if (afterAppend) {\n afterAppend(childNode);\n }\n }\n }\n return node;\n}\nfunction visit(idNodeMap, onVisit) {\n function walk(node) {\n onVisit(node);\n }\n for (var key in idNodeMap) {\n if (idNodeMap[key]) {\n walk(idNodeMap[key]);\n }\n }\n}\nfunction handleScroll(node) {\n var n = node.__sn;\n if (n.type !== NodeType.Element) {\n return;\n }\n var el = node;\n for (var name_2 in n.attributes) {\n if (!(n.attributes.hasOwnProperty(name_2) && name_2.startsWith('rr_'))) {\n continue;\n }\n var value = n.attributes[name_2];\n if (name_2 === 'rr_scrollLeft') {\n el.scrollLeft = value;\n }\n if (name_2 === 'rr_scrollTop') {\n el.scrollTop = value;\n }\n }\n}\nfunction rebuild(n, options) {\n var doc = options.doc,\n onVisit = options.onVisit,\n _a = options.hackCss,\n hackCss = _a === void 0 ? true : _a,\n afterAppend = options.afterAppend,\n cache = options.cache;\n var idNodeMap = {};\n var node = buildNodeWithSN(n, {\n doc: doc,\n map: idNodeMap,\n skipChild: false,\n hackCss: hackCss,\n afterAppend: afterAppend,\n cache: cache\n });\n visit(idNodeMap, function (visitedNode) {\n if (onVisit) {\n onVisit(visitedNode);\n }\n handleScroll(visitedNode);\n });\n return [node, idNodeMap];\n}\nexport { IGNORED_NODE, NodeType, addHoverClass, buildNodeWithSN, createCache, is2DCanvasBlank, isElement, isShadowRoot, maskInputValue, needMaskingText, rebuild, serializeNodeWithId, snapshot, transformAttribute };","// \n// An event handler can take an optional event argument\n// and should not return a value\n\n// An array of all currently registered event handlers for a type\n\n// A map of event types and their corresponding event handlers.\n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all) {\n all = all || Object.create(null);\n return {\n /**\n * Register an event handler for the given type.\n *\n * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n * @param {Function} handler Function to call in response to given event\n * @memberOf mitt\n */\n on: function on(type, handler) {\n (all[type] || (all[type] = [])).push(handler);\n },\n /**\n * Remove an event handler for the given type.\n *\n * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n * @param {Function} handler Handler function to remove\n * @memberOf mitt\n */\n off: function off(type, handler) {\n if (all[type]) {\n all[type].splice(all[type].indexOf(handler) >>> 0, 1);\n }\n },\n /**\n * Invoke all handlers for the given type.\n * If present, `\"*\"` handlers are invoked after type-matched handlers.\n *\n * @param {String} type The event type to invoke\n * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n * @memberOf mitt\n */\n emit: function emit(type, evt) {\n (all[type] || []).slice().map(function (handler) {\n handler(evt);\n });\n (all['*'] || []).slice().map(function (handler) {\n handler(type, evt);\n });\n }\n };\n}\nexport default mitt;","var EventType;\n(function (EventType) {\n EventType[EventType[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType[EventType[\"Load\"] = 1] = \"Load\";\n EventType[EventType[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType[EventType[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType[EventType[\"Meta\"] = 4] = \"Meta\";\n EventType[EventType[\"Custom\"] = 5] = \"Custom\";\n EventType[EventType[\"Plugin\"] = 6] = \"Plugin\";\n})(EventType || (EventType = {}));\nvar IncrementalSource;\n(function (IncrementalSource) {\n IncrementalSource[IncrementalSource[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource[IncrementalSource[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource[IncrementalSource[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource[IncrementalSource[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource[IncrementalSource[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource[IncrementalSource[\"Input\"] = 5] = \"Input\";\n IncrementalSource[IncrementalSource[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource[IncrementalSource[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource[IncrementalSource[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource[IncrementalSource[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource[IncrementalSource[\"Font\"] = 10] = \"Font\";\n IncrementalSource[IncrementalSource[\"Log\"] = 11] = \"Log\";\n IncrementalSource[IncrementalSource[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource[IncrementalSource[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n})(IncrementalSource || (IncrementalSource = {}));\nvar MouseInteractions;\n(function (MouseInteractions) {\n MouseInteractions[MouseInteractions[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions[MouseInteractions[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions[MouseInteractions[\"Click\"] = 2] = \"Click\";\n MouseInteractions[MouseInteractions[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions[MouseInteractions[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions[MouseInteractions[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions[MouseInteractions[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions[MouseInteractions[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions[MouseInteractions[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions[MouseInteractions[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions[MouseInteractions[\"TouchCancel\"] = 10] = \"TouchCancel\";\n})(MouseInteractions || (MouseInteractions = {}));\nvar CanvasContext;\n(function (CanvasContext) {\n CanvasContext[CanvasContext[\"2D\"] = 0] = \"2D\";\n CanvasContext[CanvasContext[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext[CanvasContext[\"WebGL2\"] = 2] = \"WebGL2\";\n})(CanvasContext || (CanvasContext = {}));\nvar MediaInteractions;\n(function (MediaInteractions) {\n MediaInteractions[MediaInteractions[\"Play\"] = 0] = \"Play\";\n MediaInteractions[MediaInteractions[\"Pause\"] = 1] = \"Pause\";\n MediaInteractions[MediaInteractions[\"Seeked\"] = 2] = \"Seeked\";\n MediaInteractions[MediaInteractions[\"VolumeChange\"] = 3] = \"VolumeChange\";\n})(MediaInteractions || (MediaInteractions = {}));\nvar ReplayerEvents;\n(function (ReplayerEvents) {\n ReplayerEvents[\"Start\"] = \"start\";\n ReplayerEvents[\"Pause\"] = \"pause\";\n ReplayerEvents[\"Resume\"] = \"resume\";\n ReplayerEvents[\"Resize\"] = \"resize\";\n ReplayerEvents[\"Finish\"] = \"finish\";\n ReplayerEvents[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents[\"EventCast\"] = \"event-cast\";\n ReplayerEvents[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents[\"Flush\"] = \"flush\";\n ReplayerEvents[\"StateChange\"] = \"state-change\";\n ReplayerEvents[\"PlayBack\"] = \"play-back\";\n})(ReplayerEvents || (ReplayerEvents = {}));\nexport { CanvasContext, EventType, IncrementalSource, MediaInteractions, MouseInteractions, ReplayerEvents };","function polyfill(w, d) {\n if (w === void 0) {\n w = window;\n }\n if (d === void 0) {\n d = document;\n }\n if ('scrollBehavior' in d.documentElement.style && w.__forceSmoothScrollPolyfill__ !== true) {\n return;\n }\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n var now = w.performance && w.performance.now ? w.performance.now.bind(w.performance) : Date.now;\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n function shouldBailOut(firstArg) {\n if (firstArg === null || typeof firstArg !== 'object' || firstArg.behavior === undefined || firstArg.behavior === 'auto' || firstArg.behavior === 'instant') {\n return true;\n }\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n return false;\n }\n throw new TypeError('behavior member of ScrollOptions ' + firstArg.behavior + ' is not a valid value for enumeration ScrollBehavior.');\n }\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n return isScrollableY || isScrollableX;\n }\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n return el;\n }\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n elapsed = elapsed > 1 ? 1 : elapsed;\n value = ease(elapsed);\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n context.method.call(context.scrollable, currentX, currentY);\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n w.scroll = w.scrollTo = function () {\n if (arguments[0] === undefined) {\n return;\n }\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(w, arguments[0].left !== undefined ? arguments[0].left : typeof arguments[0] !== 'object' ? arguments[0] : w.scrollX || w.pageXOffset, arguments[0].top !== undefined ? arguments[0].top : arguments[1] !== undefined ? arguments[1] : w.scrollY || w.pageYOffset);\n return;\n }\n smoothScroll.call(w, d.body, arguments[0].left !== undefined ? ~~arguments[0].left : w.scrollX || w.pageXOffset, arguments[0].top !== undefined ? ~~arguments[0].top : w.scrollY || w.pageYOffset);\n };\n w.scrollBy = function () {\n if (arguments[0] === undefined) {\n return;\n }\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(w, arguments[0].left !== undefined ? arguments[0].left : typeof arguments[0] !== 'object' ? arguments[0] : 0, arguments[0].top !== undefined ? arguments[0].top : arguments[1] !== undefined ? arguments[1] : 0);\n return;\n }\n smoothScroll.call(w, d.body, ~~arguments[0].left + (w.scrollX || w.pageXOffset), ~~arguments[0].top + (w.scrollY || w.pageYOffset));\n };\n Element.prototype.scroll = Element.prototype.scrollTo = function () {\n if (arguments[0] === undefined) {\n return;\n }\n if (shouldBailOut(arguments[0]) === true) {\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n original.elementScroll.call(this, arguments[0].left !== undefined ? ~~arguments[0].left : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft, arguments[0].top !== undefined ? ~~arguments[0].top : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop);\n return;\n }\n var left = arguments[0].left;\n var top = arguments[0].top;\n smoothScroll.call(this, this, typeof left === 'undefined' ? this.scrollLeft : ~~left, typeof top === 'undefined' ? this.scrollTop : ~~top);\n };\n Element.prototype.scrollBy = function () {\n if (arguments[0] === undefined) {\n return;\n }\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(this, arguments[0].left !== undefined ? ~~arguments[0].left + this.scrollLeft : ~~arguments[0] + this.scrollLeft, arguments[0].top !== undefined ? ~~arguments[0].top + this.scrollTop : ~~arguments[1] + this.scrollTop);\n return;\n }\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n Element.prototype.scrollIntoView = function () {\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(this, arguments[0] === undefined ? true : arguments[0]);\n return;\n }\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n if (scrollableParent !== d.body) {\n smoothScroll.call(this, scrollableParent, scrollableParent.scrollLeft + clientRects.left - parentRects.left, scrollableParent.scrollTop + clientRects.top - parentRects.top);\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n}\nexport { polyfill };","import { EventType, IncrementalSource } from '../types.js';\nvar Timer = function () {\n function Timer(actions, speed) {\n if (actions === void 0) {\n actions = [];\n }\n this.timeOffset = 0;\n this.raf = null;\n this.actions = actions;\n this.speed = speed;\n }\n Timer.prototype.addAction = function (action) {\n var index = this.findActionIndex(action);\n this.actions.splice(index, 0, action);\n };\n Timer.prototype.addActions = function (actions) {\n this.actions = this.actions.concat(actions);\n };\n Timer.prototype.start = function () {\n this.timeOffset = 0;\n var lastTimestamp = performance.now();\n var actions = this.actions;\n var self = this;\n function check() {\n var time = performance.now();\n self.timeOffset += (time - lastTimestamp) * self.speed;\n lastTimestamp = time;\n while (actions.length) {\n var action = actions[0];\n if (self.timeOffset >= action.delay) {\n actions.shift();\n action.doAction();\n } else {\n break;\n }\n }\n if (actions.length > 0 || self.liveMode) {\n self.raf = requestAnimationFrame(check);\n }\n }\n this.raf = requestAnimationFrame(check);\n };\n Timer.prototype.clear = function () {\n if (this.raf) {\n cancelAnimationFrame(this.raf);\n this.raf = null;\n }\n this.actions.length = 0;\n };\n Timer.prototype.setSpeed = function (speed) {\n this.speed = speed;\n };\n Timer.prototype.toggleLiveMode = function (mode) {\n this.liveMode = mode;\n };\n Timer.prototype.isActive = function () {\n return this.raf !== null;\n };\n Timer.prototype.findActionIndex = function (action) {\n var start = 0;\n var end = this.actions.length - 1;\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n if (this.actions[mid].delay < action.delay) {\n start = mid + 1;\n } else if (this.actions[mid].delay > action.delay) {\n end = mid - 1;\n } else {\n return mid + 1;\n }\n }\n return start;\n };\n return Timer;\n}();\nfunction addDelay(event, baselineTime) {\n if (event.type === EventType.IncrementalSnapshot && event.data.source === IncrementalSource.MouseMove) {\n var firstOffset = event.data.positions[0].timeOffset;\n var firstTimestamp = event.timestamp + firstOffset;\n event.delay = firstTimestamp - baselineTime;\n return firstTimestamp - baselineTime;\n }\n event.delay = event.timestamp - baselineTime;\n return event.delay;\n}\nexport { Timer, addDelay };","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction t(t, n) {\n var e = \"function\" == typeof Symbol && t[Symbol.iterator];\n if (!e) return t;\n var r,\n o,\n i = e.call(t),\n a = [];\n try {\n for (; (void 0 === n || n-- > 0) && !(r = i.next()).done;) a.push(r.value);\n } catch (t) {\n o = {\n error: t\n };\n } finally {\n try {\n r && !r.done && (e = i.return) && e.call(i);\n } finally {\n if (o) throw o.error;\n }\n }\n return a;\n}\nvar n;\n!function (t) {\n t[t.NotStarted = 0] = \"NotStarted\", t[t.Running = 1] = \"Running\", t[t.Stopped = 2] = \"Stopped\";\n}(n || (n = {}));\nvar e = {\n type: \"xstate.init\"\n};\nfunction r(t) {\n return void 0 === t ? [] : [].concat(t);\n}\nfunction o(t) {\n return {\n type: \"xstate.assign\",\n assignment: t\n };\n}\nfunction i(t, n) {\n return \"string\" == typeof (t = \"string\" == typeof t && n && n[t] ? n[t] : t) ? {\n type: t\n } : \"function\" == typeof t ? {\n type: t.name,\n exec: t\n } : t;\n}\nfunction a(t) {\n return function (n) {\n return t === n;\n };\n}\nfunction u(t) {\n return \"string\" == typeof t ? {\n type: t\n } : t;\n}\nfunction c(t, n) {\n return {\n value: t,\n context: n,\n actions: [],\n changed: !1,\n matches: a(t)\n };\n}\nfunction f(t, n, e) {\n var r = n,\n o = !1;\n return [t.filter(function (t) {\n if (\"xstate.assign\" === t.type) {\n o = !0;\n var n = Object.assign({}, r);\n return \"function\" == typeof t.assignment ? n = t.assignment(r, e) : Object.keys(t.assignment).forEach(function (o) {\n n[o] = \"function\" == typeof t.assignment[o] ? t.assignment[o](r, e) : t.assignment[o];\n }), r = n, !1;\n }\n return !0;\n }), r, o];\n}\nfunction s(n, o) {\n void 0 === o && (o = {});\n var s = t(f(r(n.states[n.initial].entry).map(function (t) {\n return i(t, o.actions);\n }), n.context, e), 2),\n l = s[0],\n v = s[1],\n y = {\n config: n,\n _options: o,\n initialState: {\n value: n.initial,\n actions: l,\n context: v,\n matches: a(n.initial)\n },\n transition: function (e, o) {\n var s,\n l,\n v = \"string\" == typeof e ? {\n value: e,\n context: n.context\n } : e,\n p = v.value,\n g = v.context,\n d = u(o),\n x = n.states[p];\n if (x.on) {\n var m = r(x.on[d.type]);\n try {\n for (var h = function (t) {\n var n = \"function\" == typeof Symbol && Symbol.iterator,\n e = n && t[n],\n r = 0;\n if (e) return e.call(t);\n if (t && \"number\" == typeof t.length) return {\n next: function () {\n return t && r >= t.length && (t = void 0), {\n value: t && t[r++],\n done: !t\n };\n }\n };\n throw new TypeError(n ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n }(m), b = h.next(); !b.done; b = h.next()) {\n var S = b.value;\n if (void 0 === S) return c(p, g);\n var w = \"string\" == typeof S ? {\n target: S\n } : S,\n j = w.target,\n E = w.actions,\n R = void 0 === E ? [] : E,\n N = w.cond,\n O = void 0 === N ? function () {\n return !0;\n } : N,\n _ = void 0 === j,\n k = null != j ? j : p,\n T = n.states[k];\n if (O(g, d)) {\n var q = t(f((_ ? r(R) : [].concat(x.exit, R, T.entry).filter(function (t) {\n return t;\n })).map(function (t) {\n return i(t, y._options.actions);\n }), g, d), 3),\n z = q[0],\n A = q[1],\n B = q[2],\n C = null != j ? j : p;\n return {\n value: C,\n context: A,\n actions: z,\n changed: j !== p || z.length > 0 || B,\n matches: a(C)\n };\n }\n }\n } catch (t) {\n s = {\n error: t\n };\n } finally {\n try {\n b && !b.done && (l = h.return) && l.call(h);\n } finally {\n if (s) throw s.error;\n }\n }\n }\n return c(p, g);\n }\n };\n return y;\n}\nvar l = function (t, n) {\n return t.actions.forEach(function (e) {\n var r = e.exec;\n return r && r(t.context, n);\n });\n};\nfunction v(t) {\n var r = t.initialState,\n o = n.NotStarted,\n i = new Set(),\n c = {\n _machine: t,\n send: function (e) {\n o === n.Running && (r = t.transition(r, e), l(r, u(e)), i.forEach(function (t) {\n return t(r);\n }));\n },\n subscribe: function (t) {\n return i.add(t), t(r), {\n unsubscribe: function () {\n return i.delete(t);\n }\n };\n },\n start: function (i) {\n if (i) {\n var u = \"object\" == typeof i ? i : {\n context: t.config.context,\n value: i\n };\n r = {\n value: u.value,\n actions: [],\n context: u.context,\n matches: a(u.value)\n };\n }\n return o = n.Running, l(r, e), c;\n },\n stop: function () {\n return o = n.Stopped, i.clear(), c;\n },\n get state() {\n return r;\n },\n get status() {\n return o;\n }\n };\n return c;\n}\nexport { n as InterpreterStatus, o as assign, s as createMachine, v as interpret };","import { __assign, __values } from '../../ext/tslib/tslib.es6.js';\nimport { interpret as v, createMachine as s, assign as o } from '../../../../ext/@xstate/fsm/es/index.js';\nimport { EventType, IncrementalSource, ReplayerEvents } from '../types.js';\nimport { addDelay } from './timer.js';\nfunction discardPriorSnapshots(events, baselineTime) {\n for (var idx = events.length - 1; idx >= 0; idx--) {\n var event_1 = events[idx];\n if (event_1.type === EventType.Meta) {\n if (event_1.timestamp <= baselineTime) {\n return events.slice(idx);\n }\n }\n }\n return events;\n}\nfunction createPlayerService(context, _a) {\n var getCastFn = _a.getCastFn,\n applyEventsSynchronously = _a.applyEventsSynchronously,\n emitter = _a.emitter;\n var playerMachine = s({\n id: 'player',\n context: context,\n initial: 'paused',\n states: {\n playing: {\n on: {\n PAUSE: {\n target: 'paused',\n actions: ['pause']\n },\n CAST_EVENT: {\n target: 'playing',\n actions: 'castEvent'\n },\n END: {\n target: 'paused',\n actions: ['resetLastPlayedEvent', 'pause']\n },\n ADD_EVENT: {\n target: 'playing',\n actions: ['addEvent']\n }\n }\n },\n paused: {\n on: {\n PLAY: {\n target: 'playing',\n actions: ['recordTimeOffset', 'play']\n },\n CAST_EVENT: {\n target: 'paused',\n actions: 'castEvent'\n },\n TO_LIVE: {\n target: 'live',\n actions: ['startLive']\n },\n ADD_EVENT: {\n target: 'paused',\n actions: ['addEvent']\n }\n }\n },\n live: {\n on: {\n ADD_EVENT: {\n target: 'live',\n actions: ['addEvent']\n },\n CAST_EVENT: {\n target: 'live',\n actions: ['castEvent']\n }\n }\n }\n }\n }, {\n actions: {\n castEvent: o({\n lastPlayedEvent: function (ctx, event) {\n if (event.type === 'CAST_EVENT') {\n return event.payload.event;\n }\n return ctx.lastPlayedEvent;\n }\n }),\n recordTimeOffset: o(function (ctx, event) {\n var timeOffset = ctx.timeOffset;\n if ('payload' in event && 'timeOffset' in event.payload) {\n timeOffset = event.payload.timeOffset;\n }\n return __assign(__assign({}, ctx), {\n timeOffset: timeOffset,\n baselineTime: ctx.events[0].timestamp + timeOffset\n });\n }),\n play: function (ctx) {\n var e_1, _a, e_2, _b;\n var _c;\n var timer = ctx.timer,\n events = ctx.events,\n baselineTime = ctx.baselineTime,\n lastPlayedEvent = ctx.lastPlayedEvent;\n timer.clear();\n try {\n for (var events_1 = __values(events), events_1_1 = events_1.next(); !events_1_1.done; events_1_1 = events_1.next()) {\n var event_2 = events_1_1.value;\n addDelay(event_2, baselineTime);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (events_1_1 && !events_1_1.done && (_a = events_1.return)) _a.call(events_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n var neededEvents = discardPriorSnapshots(events, baselineTime);\n var lastPlayedTimestamp = lastPlayedEvent === null || lastPlayedEvent === void 0 ? void 0 : lastPlayedEvent.timestamp;\n if ((lastPlayedEvent === null || lastPlayedEvent === void 0 ? void 0 : lastPlayedEvent.type) === EventType.IncrementalSnapshot && lastPlayedEvent.data.source === IncrementalSource.MouseMove) {\n lastPlayedTimestamp = lastPlayedEvent.timestamp + ((_c = lastPlayedEvent.data.positions[0]) === null || _c === void 0 ? void 0 : _c.timeOffset);\n }\n if (baselineTime < (lastPlayedTimestamp || 0)) {\n emitter.emit(ReplayerEvents.PlayBack);\n }\n var syncEvents = new Array();\n var actions = new Array();\n var _loop_1 = function (event_3) {\n if (lastPlayedTimestamp && lastPlayedTimestamp < baselineTime && (event_3.timestamp <= lastPlayedTimestamp || event_3 === lastPlayedEvent)) {\n return \"continue\";\n }\n if (event_3.timestamp < baselineTime) {\n syncEvents.push(event_3);\n } else {\n var castFn_1 = getCastFn(event_3, false);\n actions.push({\n doAction: function () {\n castFn_1();\n },\n delay: event_3.delay\n });\n }\n };\n try {\n for (var neededEvents_1 = __values(neededEvents), neededEvents_1_1 = neededEvents_1.next(); !neededEvents_1_1.done; neededEvents_1_1 = neededEvents_1.next()) {\n var event_3 = neededEvents_1_1.value;\n _loop_1(event_3);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (neededEvents_1_1 && !neededEvents_1_1.done && (_b = neededEvents_1.return)) _b.call(neededEvents_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n applyEventsSynchronously(syncEvents);\n emitter.emit(ReplayerEvents.Flush);\n timer.addActions(actions);\n timer.start();\n },\n pause: function (ctx) {\n ctx.timer.clear();\n },\n resetLastPlayedEvent: o(function (ctx) {\n return __assign(__assign({}, ctx), {\n lastPlayedEvent: null\n });\n }),\n startLive: o({\n baselineTime: function (ctx, event) {\n ctx.timer.toggleLiveMode(true);\n ctx.timer.start();\n if (event.type === 'TO_LIVE' && event.payload.baselineTime) {\n return event.payload.baselineTime;\n }\n return Date.now();\n }\n }),\n addEvent: o(function (ctx, machineEvent) {\n var baselineTime = ctx.baselineTime,\n timer = ctx.timer,\n events = ctx.events;\n if (machineEvent.type === 'ADD_EVENT') {\n var event_4 = machineEvent.payload.event;\n addDelay(event_4, baselineTime);\n var end = events.length - 1;\n if (!events[end] || events[end].timestamp <= event_4.timestamp) {\n events.push(event_4);\n } else {\n var insertionIndex = -1;\n var start = 0;\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n if (events[mid].timestamp <= event_4.timestamp) {\n start = mid + 1;\n } else {\n end = mid - 1;\n }\n }\n if (insertionIndex === -1) {\n insertionIndex = start;\n }\n events.splice(insertionIndex, 0, event_4);\n }\n var isSync = event_4.timestamp < baselineTime;\n var castFn_2 = getCastFn(event_4, isSync);\n if (isSync) {\n castFn_2();\n } else if (timer.isActive()) {\n timer.addAction({\n doAction: function () {\n castFn_2();\n },\n delay: event_4.delay\n });\n }\n }\n return __assign(__assign({}, ctx), {\n events: events\n });\n })\n }\n });\n return v(playerMachine);\n}\nfunction createSpeedService(context) {\n var speedMachine = s({\n id: 'speed',\n context: context,\n initial: 'normal',\n states: {\n normal: {\n on: {\n FAST_FORWARD: {\n target: 'skipping',\n actions: ['recordSpeed', 'setSpeed']\n },\n SET_SPEED: {\n target: 'normal',\n actions: ['setSpeed']\n }\n }\n },\n skipping: {\n on: {\n BACK_TO_NORMAL: {\n target: 'normal',\n actions: ['restoreSpeed']\n },\n SET_SPEED: {\n target: 'normal',\n actions: ['setSpeed']\n }\n }\n }\n }\n }, {\n actions: {\n setSpeed: function (ctx, event) {\n if ('payload' in event) {\n ctx.timer.setSpeed(event.payload.speed);\n }\n },\n recordSpeed: o({\n normalSpeed: function (ctx) {\n return ctx.timer.speed;\n }\n }),\n restoreSpeed: function (ctx) {\n ctx.timer.setSpeed(ctx.normalSpeed);\n }\n }\n });\n return v(speedMachine);\n}\nexport { createPlayerService, createSpeedService, discardPriorSnapshots };","import { __values } from '../ext/tslib/tslib.es6.js';\nimport { IncrementalSource } from './types.js';\nimport { IGNORED_NODE, isShadowRoot, NodeType } from '../../rrweb-snapshot/es/rrweb-snapshot.js';\nfunction on(type, fn, target) {\n if (target === void 0) {\n target = document;\n }\n var options = {\n capture: true,\n passive: true\n };\n target.addEventListener(type, fn, options);\n return function () {\n return target.removeEventListener(type, fn, options);\n };\n}\nfunction createMirror() {\n return {\n map: {},\n getId: function (n) {\n if (!n || !n.__sn) {\n return -1;\n }\n return n.__sn.id;\n },\n getNode: function (id) {\n return this.map[id] || null;\n },\n removeNodeFromMap: function (n) {\n var _this = this;\n var id = n.__sn && n.__sn.id;\n delete this.map[id];\n if (n.childNodes) {\n n.childNodes.forEach(function (child) {\n return _this.removeNodeFromMap(child);\n });\n }\n },\n has: function (id) {\n return this.map.hasOwnProperty(id);\n },\n reset: function () {\n this.map = {};\n }\n };\n}\nvar DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' + '\\r\\n' + 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' + '\\r\\n' + 'or you can use record.mirror to access the mirror instance during recording.';\nvar _mirror = {\n map: {},\n getId: function () {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode: function () {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap: function () {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has: function () {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset: function () {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n};\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get: function (target, prop, receiver) {\n if (prop === 'map') {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nfunction throttle(func, wait, options) {\n if (options === void 0) {\n options = {};\n }\n var timeout = null;\n var previous = 0;\n return function (arg) {\n var now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n var remaining = wait - (now - previous);\n var context = this;\n var args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(function () {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\nfunction hookSetter(target, key, d, isRevoked, win) {\n if (win === void 0) {\n win = window;\n }\n var original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(target, key, isRevoked ? d : {\n set: function (value) {\n var _this = this;\n setTimeout(function () {\n d.set.call(_this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n }\n });\n return function () {\n return hookSetter(target, key, original || {}, true);\n };\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return function () {};\n }\n var original_1 = source[name];\n var wrapped = replacement(original_1);\n if (typeof wrapped === 'function') {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original_1\n }\n });\n }\n source[name] = wrapped;\n return function () {\n source[name] = original_1;\n };\n } catch (_a) {\n return function () {};\n }\n}\nfunction getWindowHeight() {\n return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight;\n}\nfunction getWindowWidth() {\n return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth;\n}\nfunction isBlocked(node, blockClass) {\n if (!node) {\n return false;\n }\n if (node.nodeType === node.ELEMENT_NODE) {\n var needBlock_1 = false;\n if (typeof blockClass === 'string') {\n if (node.closest !== undefined) {\n return node.closest('.' + blockClass) !== null;\n } else {\n needBlock_1 = node.classList.contains(blockClass);\n }\n } else {\n node.classList.forEach(function (className) {\n if (blockClass.test(className)) {\n needBlock_1 = true;\n }\n });\n }\n return needBlock_1 || isBlocked(node.parentNode, blockClass);\n }\n if (node.nodeType === node.TEXT_NODE) {\n return isBlocked(node.parentNode, blockClass);\n }\n return isBlocked(node.parentNode, blockClass);\n}\nfunction isIgnored(n) {\n if ('__sn' in n) {\n return n.__sn.id === IGNORED_NODE;\n }\n return false;\n}\nfunction isAncestorRemoved(target, mirror) {\n if (isShadowRoot(target)) {\n return false;\n }\n var id = mirror.getId(target);\n if (!mirror.has(id)) {\n return true;\n }\n if (target.parentNode && target.parentNode.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n if (!target.parentNode) {\n return true;\n }\n return isAncestorRemoved(target.parentNode, mirror);\n}\nfunction isTouchEvent(event) {\n return Boolean(event.changedTouches);\n}\nfunction polyfill(win) {\n if (win === void 0) {\n win = window;\n }\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\n win.NodeList.prototype.forEach = Array.prototype.forEach;\n }\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\n win.DOMTokenList.prototype.forEach = Array.prototype.forEach;\n }\n if (!Node.prototype.contains) {\n Node.prototype.contains = function contains(node) {\n if (!(0 in arguments)) {\n throw new TypeError('1 argument is required');\n }\n do {\n if (this === node) {\n return true;\n }\n } while (node = node && node.parentNode);\n return false;\n };\n }\n}\nvar TreeIndex = function () {\n function TreeIndex() {\n this.reset();\n }\n TreeIndex.prototype.add = function (mutation) {\n var parentTreeNode = this.indexes.get(mutation.parentId);\n var treeNode = {\n id: mutation.node.id,\n mutation: mutation,\n children: [],\n texts: [],\n attributes: []\n };\n if (!parentTreeNode) {\n this.tree[treeNode.id] = treeNode;\n } else {\n treeNode.parent = parentTreeNode;\n parentTreeNode.children[treeNode.id] = treeNode;\n }\n this.indexes.set(treeNode.id, treeNode);\n };\n TreeIndex.prototype.remove = function (mutation, mirror) {\n var _this = this;\n var parentTreeNode = this.indexes.get(mutation.parentId);\n var treeNode = this.indexes.get(mutation.id);\n var deepRemoveFromMirror = function (id) {\n _this.removeIdSet.add(id);\n var node = mirror.getNode(id);\n node === null || node === void 0 ? void 0 : node.childNodes.forEach(function (childNode) {\n if ('__sn' in childNode) {\n deepRemoveFromMirror(childNode.__sn.id);\n }\n });\n };\n var deepRemoveFromTreeIndex = function (node) {\n _this.removeIdSet.add(node.id);\n Object.values(node.children).forEach(function (n) {\n return deepRemoveFromTreeIndex(n);\n });\n var _treeNode = _this.indexes.get(node.id);\n if (_treeNode) {\n var _parentTreeNode = _treeNode.parent;\n if (_parentTreeNode) {\n delete _treeNode.parent;\n delete _parentTreeNode.children[_treeNode.id];\n _this.indexes.delete(mutation.id);\n }\n }\n };\n if (!treeNode) {\n this.removeNodeMutations.push(mutation);\n deepRemoveFromMirror(mutation.id);\n } else if (!parentTreeNode) {\n delete this.tree[treeNode.id];\n this.indexes.delete(treeNode.id);\n deepRemoveFromTreeIndex(treeNode);\n } else {\n delete treeNode.parent;\n delete parentTreeNode.children[treeNode.id];\n this.indexes.delete(mutation.id);\n deepRemoveFromTreeIndex(treeNode);\n }\n };\n TreeIndex.prototype.text = function (mutation) {\n var treeNode = this.indexes.get(mutation.id);\n if (treeNode) {\n treeNode.texts.push(mutation);\n } else {\n this.textMutations.push(mutation);\n }\n };\n TreeIndex.prototype.attribute = function (mutation) {\n var treeNode = this.indexes.get(mutation.id);\n if (treeNode) {\n treeNode.attributes.push(mutation);\n } else {\n this.attributeMutations.push(mutation);\n }\n };\n TreeIndex.prototype.scroll = function (d) {\n this.scrollMap.set(d.id, d);\n };\n TreeIndex.prototype.input = function (d) {\n this.inputMap.set(d.id, d);\n };\n TreeIndex.prototype.flush = function () {\n var e_1, _a, e_2, _b;\n var _this = this;\n var _c = this,\n tree = _c.tree,\n removeNodeMutations = _c.removeNodeMutations,\n textMutations = _c.textMutations,\n attributeMutations = _c.attributeMutations;\n var batchMutationData = {\n source: IncrementalSource.Mutation,\n removes: removeNodeMutations,\n texts: textMutations,\n attributes: attributeMutations,\n adds: []\n };\n var walk = function (treeNode, removed) {\n if (removed) {\n _this.removeIdSet.add(treeNode.id);\n }\n batchMutationData.texts = batchMutationData.texts.concat(removed ? [] : treeNode.texts).filter(function (m) {\n return !_this.removeIdSet.has(m.id);\n });\n batchMutationData.attributes = batchMutationData.attributes.concat(removed ? [] : treeNode.attributes).filter(function (m) {\n return !_this.removeIdSet.has(m.id);\n });\n if (!_this.removeIdSet.has(treeNode.id) && !_this.removeIdSet.has(treeNode.mutation.parentId) && !removed) {\n batchMutationData.adds.push(treeNode.mutation);\n if (treeNode.children) {\n Object.values(treeNode.children).forEach(function (n) {\n return walk(n, false);\n });\n }\n } else {\n Object.values(treeNode.children).forEach(function (n) {\n return walk(n, true);\n });\n }\n };\n Object.values(tree).forEach(function (n) {\n return walk(n, false);\n });\n try {\n for (var _d = __values(this.scrollMap.keys()), _e = _d.next(); !_e.done; _e = _d.next()) {\n var id = _e.value;\n if (this.removeIdSet.has(id)) {\n this.scrollMap.delete(id);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n try {\n for (var _f = __values(this.inputMap.keys()), _g = _f.next(); !_g.done; _g = _f.next()) {\n var id = _g.value;\n if (this.removeIdSet.has(id)) {\n this.inputMap.delete(id);\n }\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_g && !_g.done && (_b = _f.return)) _b.call(_f);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n var scrollMap = new Map(this.scrollMap);\n var inputMap = new Map(this.inputMap);\n this.reset();\n return {\n mutationData: batchMutationData,\n scrollMap: scrollMap,\n inputMap: inputMap\n };\n };\n TreeIndex.prototype.reset = function () {\n this.tree = [];\n this.indexes = new Map();\n this.removeNodeMutations = [];\n this.textMutations = [];\n this.attributeMutations = [];\n this.removeIdSet = new Set();\n this.scrollMap = new Map();\n this.inputMap = new Map();\n };\n TreeIndex.prototype.idRemoved = function (id) {\n return this.removeIdSet.has(id);\n };\n return TreeIndex;\n}();\nfunction queueToResolveTrees(queue) {\n var e_3, _a;\n var queueNodeMap = {};\n var putIntoMap = function (m, parent) {\n var nodeInTree = {\n value: m,\n parent: parent,\n children: []\n };\n queueNodeMap[m.node.id] = nodeInTree;\n return nodeInTree;\n };\n var queueNodeTrees = [];\n try {\n for (var queue_1 = __values(queue), queue_1_1 = queue_1.next(); !queue_1_1.done; queue_1_1 = queue_1.next()) {\n var mutation = queue_1_1.value;\n var nextId = mutation.nextId,\n parentId = mutation.parentId;\n if (nextId && nextId in queueNodeMap) {\n var nextInTree = queueNodeMap[nextId];\n if (nextInTree.parent) {\n var idx = nextInTree.parent.children.indexOf(nextInTree);\n nextInTree.parent.children.splice(idx, 0, putIntoMap(mutation, nextInTree.parent));\n } else {\n var idx = queueNodeTrees.indexOf(nextInTree);\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\n }\n continue;\n }\n if (parentId in queueNodeMap) {\n var parentInTree = queueNodeMap[parentId];\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\n continue;\n }\n queueNodeTrees.push(putIntoMap(mutation, null));\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (queue_1_1 && !queue_1_1.done && (_a = queue_1.return)) _a.call(queue_1);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n return queueNodeTrees;\n}\nfunction iterateResolveTree(tree, cb) {\n cb(tree.value);\n for (var i = tree.children.length - 1; i >= 0; i--) {\n iterateResolveTree(tree.children[i], cb);\n }\n}\nfunction isIframeINode(node) {\n if ('__sn' in node) {\n return node.__sn.type === NodeType.Element && node.__sn.tagName === 'iframe';\n }\n return false;\n}\nfunction getBaseDimension(node, rootIframe) {\n var _a, _b;\n var frameElement = (_b = (_a = node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView) === null || _b === void 0 ? void 0 : _b.frameElement;\n if (!frameElement || frameElement === rootIframe) {\n return {\n x: 0,\n y: 0,\n relativeScale: 1,\n absoluteScale: 1\n };\n }\n var frameDimension = frameElement.getBoundingClientRect();\n var frameBaseDimension = getBaseDimension(frameElement, rootIframe);\n var relativeScale = frameDimension.height / frameElement.clientHeight;\n return {\n x: frameDimension.x * frameBaseDimension.relativeScale + frameBaseDimension.x,\n y: frameDimension.y * frameBaseDimension.relativeScale + frameBaseDimension.y,\n relativeScale: relativeScale,\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale\n };\n}\nfunction hasShadowRoot(n) {\n return Boolean(n === null || n === void 0 ? void 0 : n.shadowRoot);\n}\nexport { TreeIndex, _mirror, createMirror, getBaseDimension, getWindowHeight, getWindowWidth, hasShadowRoot, hookSetter, isAncestorRemoved, isBlocked, isIframeINode, isIgnored, isTouchEvent, iterateResolveTree, on, patch, polyfill, queueToResolveTrees, throttle };","var rules = function (blockClass) {\n return [\".\".concat(blockClass, \" { background: currentColor }\"), 'noscript { display: none !important; }'];\n};\nexport default rules;","import { __spreadArray, __read } from '../../ext/tslib/tslib.es6.js';\nvar StyleRuleType;\n(function (StyleRuleType) {\n StyleRuleType[StyleRuleType[\"Insert\"] = 0] = \"Insert\";\n StyleRuleType[StyleRuleType[\"Remove\"] = 1] = \"Remove\";\n StyleRuleType[StyleRuleType[\"Snapshot\"] = 2] = \"Snapshot\";\n StyleRuleType[StyleRuleType[\"SetProperty\"] = 3] = \"SetProperty\";\n StyleRuleType[StyleRuleType[\"RemoveProperty\"] = 4] = \"RemoveProperty\";\n})(StyleRuleType || (StyleRuleType = {}));\nfunction getNestedRule(rules, position) {\n var rule = rules[position[0]];\n if (position.length === 1) {\n return rule;\n } else {\n return getNestedRule(rule.cssRules[position[1]].cssRules, position.slice(2));\n }\n}\nfunction getPositionsAndIndex(nestedIndex) {\n var positions = __spreadArray([], __read(nestedIndex), false);\n var index = positions.pop();\n return {\n positions: positions,\n index: index\n };\n}\nfunction applyVirtualStyleRulesToNode(storedRules, styleNode) {\n var sheet = styleNode.sheet;\n if (!sheet) {\n return;\n }\n storedRules.forEach(function (rule) {\n if (rule.type === StyleRuleType.Insert) {\n try {\n if (Array.isArray(rule.index)) {\n var _a = getPositionsAndIndex(rule.index),\n positions = _a.positions,\n index = _a.index;\n var nestedRule = getNestedRule(sheet.cssRules, positions);\n nestedRule.insertRule(rule.cssText, index);\n } else {\n sheet.insertRule(rule.cssText, rule.index);\n }\n } catch (e) {}\n } else if (rule.type === StyleRuleType.Remove) {\n try {\n if (Array.isArray(rule.index)) {\n var _b = getPositionsAndIndex(rule.index),\n positions = _b.positions,\n index = _b.index;\n var nestedRule = getNestedRule(sheet.cssRules, positions);\n nestedRule.deleteRule(index || 0);\n } else {\n sheet.deleteRule(rule.index);\n }\n } catch (e) {}\n } else if (rule.type === StyleRuleType.Snapshot) {\n restoreSnapshotOfStyleRulesToNode(rule.cssTexts, styleNode);\n } else if (rule.type === StyleRuleType.SetProperty) {\n var nativeRule = getNestedRule(sheet.cssRules, rule.index);\n nativeRule.style.setProperty(rule.property, rule.value, rule.priority);\n } else if (rule.type === StyleRuleType.RemoveProperty) {\n var nativeRule = getNestedRule(sheet.cssRules, rule.index);\n nativeRule.style.removeProperty(rule.property);\n }\n });\n}\nfunction restoreSnapshotOfStyleRulesToNode(cssTexts, styleNode) {\n var _a;\n try {\n var existingRules = Array.from(((_a = styleNode.sheet) === null || _a === void 0 ? void 0 : _a.cssRules) || []).map(function (rule) {\n return rule.cssText;\n });\n var existingRulesReversed = Object.entries(existingRules).reverse();\n var lastMatch_1 = existingRules.length;\n existingRulesReversed.forEach(function (_a) {\n var _b;\n var _c = __read(_a, 2),\n index = _c[0],\n rule = _c[1];\n var indexOf = cssTexts.indexOf(rule);\n if (indexOf === -1 || indexOf > lastMatch_1) {\n try {\n (_b = styleNode.sheet) === null || _b === void 0 ? void 0 : _b.deleteRule(Number(index));\n } catch (e) {}\n }\n lastMatch_1 = indexOf;\n });\n cssTexts.forEach(function (cssText, index) {\n var _a, _b, _c;\n try {\n if (((_b = (_a = styleNode.sheet) === null || _a === void 0 ? void 0 : _a.cssRules[index]) === null || _b === void 0 ? void 0 : _b.cssText) !== cssText) {\n (_c = styleNode.sheet) === null || _c === void 0 ? void 0 : _c.insertRule(cssText, index);\n }\n } catch (e) {}\n });\n } catch (e) {}\n}\nfunction storeCSSRules(parentElement, virtualStyleRulesMap) {\n var _a;\n try {\n var cssTexts = Array.from(((_a = parentElement.sheet) === null || _a === void 0 ? void 0 : _a.cssRules) || []).map(function (rule) {\n return rule.cssText;\n });\n virtualStyleRulesMap.set(parentElement, [{\n type: StyleRuleType.Snapshot,\n cssTexts: cssTexts\n }]);\n } catch (e) {}\n}\nexport { StyleRuleType, applyVirtualStyleRulesToNode, getNestedRule, getPositionsAndIndex, storeCSSRules };","/*\n * base64-arraybuffer 1.0.1 \n * Copyright (c) 2021 Niklas von Hertzen \n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64 += chars[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return arraybuffer;\n};\nexport { decode, encode };","import { __spreadArray, __read } from '../../../ext/tslib/tslib.es6.js';\nimport { decode } from '../../../../../ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js';\nimport { CanvasContext } from '../../types.js';\nvar webGLVarMap = new Map();\nfunction variableListFor(ctx, ctor) {\n var contextMap = webGLVarMap.get(ctx);\n if (!contextMap) {\n contextMap = new Map();\n webGLVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nfunction getContext(target, type) {\n try {\n if (type === CanvasContext.WebGL) {\n return target.getContext('webgl') || target.getContext('experimental-webgl');\n }\n return target.getContext('webgl2');\n } catch (e) {\n return null;\n }\n}\nvar WebGLVariableConstructorsNames = ['WebGLActiveInfo', 'WebGLBuffer', 'WebGLFramebuffer', 'WebGLProgram', 'WebGLRenderbuffer', 'WebGLShader', 'WebGLShaderPrecisionFormat', 'WebGLTexture', 'WebGLUniformLocation', 'WebGLVertexArrayObject'];\nfunction saveToWebGLVarMap(ctx, result) {\n if (!(result === null || result === void 0 ? void 0 : result.constructor)) return;\n var name = result.constructor.name;\n if (!WebGLVariableConstructorsNames.includes(name)) return;\n var variables = variableListFor(ctx, name);\n if (!variables.includes(result)) variables.push(result);\n}\nfunction deserializeArg(imageMap, ctx) {\n return function (arg) {\n if (arg && typeof arg === 'object' && 'rr_type' in arg) {\n if ('index' in arg) {\n var name_1 = arg.rr_type,\n index = arg.index;\n return variableListFor(ctx, name_1)[index];\n } else if ('args' in arg) {\n var name_2 = arg.rr_type,\n args = arg.args;\n var ctor = window[name_2];\n return new (ctor.bind.apply(ctor, __spreadArray([void 0], __read(args.map(deserializeArg(imageMap, ctx))), false)))();\n } else if ('base64' in arg) {\n return decode(arg.base64);\n } else if ('src' in arg) {\n var image = imageMap.get(arg.src);\n if (image) {\n return image;\n } else {\n var image_1 = new Image();\n image_1.src = arg.src;\n imageMap.set(arg.src, image_1);\n return image_1;\n }\n }\n } else if (Array.isArray(arg)) {\n return arg.map(deserializeArg(imageMap, ctx));\n }\n return arg;\n };\n}\nfunction webglMutation(_a) {\n var mutation = _a.mutation,\n target = _a.target,\n type = _a.type,\n imageMap = _a.imageMap,\n errorHandler = _a.errorHandler;\n try {\n var ctx = getContext(target, type);\n if (!ctx) return;\n if (mutation.setter) {\n ctx[mutation.property] = mutation.args[0];\n return;\n }\n var original = ctx[mutation.property];\n var args = mutation.args.map(deserializeArg(imageMap, ctx));\n var result = original.apply(ctx, args);\n saveToWebGLVarMap(ctx, result);\n var debugMode = false;\n if (debugMode) {\n if (mutation.property === 'compileShader') {\n if (!ctx.getShaderParameter(args[0], ctx.COMPILE_STATUS)) console.warn('something went wrong in replay', ctx.getShaderInfoLog(args[0]));\n } else if (mutation.property === 'linkProgram') {\n ctx.validateProgram(args[0]);\n if (!ctx.getProgramParameter(args[0], ctx.LINK_STATUS)) console.warn('something went wrong in replay', ctx.getProgramInfoLog(args[0]));\n }\n var webglError = ctx.getError();\n if (webglError !== ctx.NO_ERROR) {\n console.warn.apply(console, __spreadArray(['WEBGL ERROR', webglError, 'on command:', mutation.property], __read(args), false));\n }\n }\n } catch (error) {\n errorHandler(mutation, error);\n }\n}\nexport default webglMutation;\nexport { deserializeArg, variableListFor };","function canvasMutation(_a) {\n var event = _a.event,\n mutation = _a.mutation,\n target = _a.target,\n imageMap = _a.imageMap,\n errorHandler = _a.errorHandler;\n try {\n var ctx = target.getContext('2d');\n if (mutation.setter) {\n ctx[mutation.property] = mutation.args[0];\n return;\n }\n var original = ctx[mutation.property];\n if (mutation.property === 'drawImage' && typeof mutation.args[0] === 'string') {\n var image = imageMap.get(event);\n mutation.args[0] = image;\n original.apply(ctx, mutation.args);\n } else {\n original.apply(ctx, mutation.args);\n }\n } catch (error) {\n errorHandler(mutation, error);\n }\n}\nexport default canvasMutation;","import { CanvasContext } from '../../types.js';\nimport webglMutation from './webgl.js';\nimport canvasMutation$1 from './2d.js';\nfunction canvasMutation(_a) {\n var event = _a.event,\n mutation = _a.mutation,\n target = _a.target,\n imageMap = _a.imageMap,\n errorHandler = _a.errorHandler;\n try {\n var mutations = 'commands' in mutation ? mutation.commands : [mutation];\n if ([CanvasContext.WebGL, CanvasContext.WebGL2].includes(mutation.type)) {\n return mutations.forEach(function (command) {\n webglMutation({\n mutation: command,\n type: mutation.type,\n target: target,\n imageMap: imageMap,\n errorHandler: errorHandler\n });\n });\n }\n return mutations.forEach(function (command) {\n canvasMutation$1({\n event: event,\n mutation: command,\n target: target,\n imageMap: imageMap,\n errorHandler: errorHandler\n });\n });\n } catch (error) {\n errorHandler(mutation, error);\n }\n}\nexport default canvasMutation;","import { __values, __spreadArray, __read, __assign } from '../../ext/tslib/tslib.es6.js';\nimport { createCache, rebuild, buildNodeWithSN, NodeType } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport * as mitt_es from '../../../../ext/mitt/dist/mitt.es.js';\nimport mitt$1 from '../../../../ext/mitt/dist/mitt.es.js';\nimport { polyfill } from './smoothscroll.js';\nimport { Timer } from './timer.js';\nimport { createPlayerService, createSpeedService } from './machine.js';\nimport { ReplayerEvents, EventType, IncrementalSource, MouseInteractions } from '../types.js';\nimport { polyfill as polyfill$1, isIframeINode, hasShadowRoot, queueToResolveTrees, iterateResolveTree, getBaseDimension, createMirror, TreeIndex } from '../utils.js';\nimport rules from './styles/inject-style.js';\nimport { getNestedRule, StyleRuleType, getPositionsAndIndex, storeCSSRules, applyVirtualStyleRulesToNode } from './virtual-styles.js';\nimport canvasMutation from './canvas/index.js';\nvar SKIP_TIME_THRESHOLD = 10 * 1000;\nvar SKIP_TIME_INTERVAL = 5 * 1000;\nvar mitt = mitt$1 || mitt_es;\nvar REPLAY_CONSOLE_PREFIX = '[replayer]';\nvar defaultMouseTailConfig = {\n duration: 500,\n lineCap: 'round',\n lineWidth: 3,\n strokeStyle: 'red'\n};\nfunction indicatesTouchDevice(e) {\n return e.type == EventType.IncrementalSnapshot && (e.data.source == IncrementalSource.TouchMove || e.data.source == IncrementalSource.MouseInteraction && e.data.type == MouseInteractions.TouchStart);\n}\nvar Replayer = function () {\n function Replayer(events, config) {\n var _this = this;\n this.mouseTail = null;\n this.tailPositions = [];\n this.emitter = mitt();\n this.legacy_missingNodeRetryMap = {};\n this.cache = createCache();\n this.imageMap = new Map();\n this.mirror = createMirror();\n this.firstFullSnapshot = null;\n this.newDocumentQueue = [];\n this.mousePos = null;\n this.touchActive = null;\n if (!(config === null || config === void 0 ? void 0 : config.liveMode) && events.length < 2) {\n throw new Error('Replayer need at least 2 events.');\n }\n var defaultConfig = {\n speed: 1,\n maxSpeed: 360,\n root: document.body,\n loadTimeout: 0,\n skipInactive: false,\n showWarning: true,\n showDebug: false,\n blockClass: 'rr-block',\n liveMode: false,\n insertStyleRules: [],\n triggerFocus: true,\n UNSAFE_replayCanvas: false,\n pauseAnimation: true,\n mouseTail: defaultMouseTailConfig\n };\n this.config = Object.assign({}, defaultConfig, config);\n this.handleResize = this.handleResize.bind(this);\n this.getCastFn = this.getCastFn.bind(this);\n this.applyEventsSynchronously = this.applyEventsSynchronously.bind(this);\n this.emitter.on(ReplayerEvents.Resize, this.handleResize);\n this.setupDom();\n this.treeIndex = new TreeIndex();\n this.fragmentParentMap = new Map();\n this.elementStateMap = new Map();\n this.virtualStyleRulesMap = new Map();\n this.emitter.on(ReplayerEvents.Flush, function () {\n var e_1, _a, e_2, _b, e_3, _c, e_4, _d;\n var _e = _this.treeIndex.flush(),\n scrollMap = _e.scrollMap,\n inputMap = _e.inputMap,\n mutationData = _e.mutationData;\n _this.fragmentParentMap.forEach(function (parent, frag) {\n return _this.restoreRealParent(frag, parent);\n });\n try {\n for (var _f = __values(mutationData.texts), _g = _f.next(); !_g.done; _g = _f.next()) {\n var d = _g.value;\n _this.applyText(d, mutationData);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_g && !_g.done && (_a = _f.return)) _a.call(_f);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n try {\n for (var _h = __values(_this.virtualStyleRulesMap.keys()), _j = _h.next(); !_j.done; _j = _h.next()) {\n var node = _j.value;\n _this.restoreNodeSheet(node);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_j && !_j.done && (_b = _h.return)) _b.call(_h);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n _this.fragmentParentMap.clear();\n _this.elementStateMap.clear();\n _this.virtualStyleRulesMap.clear();\n try {\n for (var _k = __values(scrollMap.values()), _l = _k.next(); !_l.done; _l = _k.next()) {\n var d = _l.value;\n _this.applyScroll(d, true);\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_l && !_l.done && (_c = _k.return)) _c.call(_k);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n try {\n for (var _m = __values(inputMap.values()), _o = _m.next(); !_o.done; _o = _m.next()) {\n var d = _o.value;\n _this.applyInput(d);\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (_o && !_o.done && (_d = _m.return)) _d.call(_m);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n });\n this.emitter.on(ReplayerEvents.PlayBack, function () {\n _this.firstFullSnapshot = null;\n _this.mirror.reset();\n });\n var timer = new Timer([], (config === null || config === void 0 ? void 0 : config.speed) || defaultConfig.speed);\n this.service = createPlayerService({\n events: events.map(function (e) {\n if (config && config.unpackFn) {\n return config.unpackFn(e);\n }\n return e;\n }).sort(function (a1, a2) {\n return a1.timestamp - a2.timestamp;\n }),\n timer: timer,\n timeOffset: 0,\n baselineTime: 0,\n lastPlayedEvent: null\n }, {\n getCastFn: this.getCastFn,\n applyEventsSynchronously: this.applyEventsSynchronously,\n emitter: this.emitter\n });\n this.service.start();\n this.service.subscribe(function (state) {\n _this.emitter.emit(ReplayerEvents.StateChange, {\n player: state\n });\n });\n this.speedService = createSpeedService({\n normalSpeed: -1,\n timer: timer\n });\n this.speedService.start();\n this.speedService.subscribe(function (state) {\n _this.emitter.emit(ReplayerEvents.StateChange, {\n speed: state\n });\n });\n var firstMeta = this.service.state.context.events.find(function (e) {\n return e.type === EventType.Meta;\n });\n var firstFullsnapshot = this.service.state.context.events.find(function (e) {\n return e.type === EventType.FullSnapshot;\n });\n if (firstMeta) {\n var _a = firstMeta.data,\n width_1 = _a.width,\n height_1 = _a.height;\n setTimeout(function () {\n _this.emitter.emit(ReplayerEvents.Resize, {\n width: width_1,\n height: height_1\n });\n }, 0);\n }\n if (firstFullsnapshot) {\n setTimeout(function () {\n if (_this.firstFullSnapshot) {\n return;\n }\n _this.firstFullSnapshot = firstFullsnapshot;\n _this.rebuildFullSnapshot(firstFullsnapshot);\n _this.iframe.contentWindow.scrollTo(firstFullsnapshot.data.initialOffset);\n }, 1);\n }\n if (this.service.state.context.events.find(indicatesTouchDevice)) {\n this.mouse.classList.add('touch-device');\n }\n }\n Object.defineProperty(Replayer.prototype, \"timer\", {\n get: function () {\n return this.service.state.context.timer;\n },\n enumerable: false,\n configurable: true\n });\n Replayer.prototype.on = function (event, handler) {\n this.emitter.on(event, handler);\n return this;\n };\n Replayer.prototype.off = function (event, handler) {\n this.emitter.off(event, handler);\n return this;\n };\n Replayer.prototype.setConfig = function (config) {\n var _this = this;\n Object.keys(config).forEach(function (key) {\n _this.config[key] = config[key];\n });\n if (!this.config.skipInactive) {\n this.backToNormal();\n }\n if (typeof config.speed !== 'undefined') {\n this.speedService.send({\n type: 'SET_SPEED',\n payload: {\n speed: config.speed\n }\n });\n }\n if (typeof config.mouseTail !== 'undefined') {\n if (config.mouseTail === false) {\n if (this.mouseTail) {\n this.mouseTail.style.display = 'none';\n }\n } else {\n if (!this.mouseTail) {\n this.mouseTail = document.createElement('canvas');\n this.mouseTail.width = Number.parseFloat(this.iframe.width);\n this.mouseTail.height = Number.parseFloat(this.iframe.height);\n this.mouseTail.classList.add('replayer-mouse-tail');\n this.wrapper.insertBefore(this.mouseTail, this.iframe);\n }\n this.mouseTail.style.display = 'inherit';\n }\n }\n };\n Replayer.prototype.getMetaData = function () {\n var firstEvent = this.service.state.context.events[0];\n var lastEvent = this.service.state.context.events[this.service.state.context.events.length - 1];\n return {\n startTime: firstEvent.timestamp,\n endTime: lastEvent.timestamp,\n totalTime: lastEvent.timestamp - firstEvent.timestamp\n };\n };\n Replayer.prototype.getCurrentTime = function () {\n return this.timer.timeOffset + this.getTimeOffset();\n };\n Replayer.prototype.getTimeOffset = function () {\n var _a = this.service.state.context,\n baselineTime = _a.baselineTime,\n events = _a.events;\n return baselineTime - events[0].timestamp;\n };\n Replayer.prototype.getMirror = function () {\n return this.mirror;\n };\n Replayer.prototype.play = function (timeOffset) {\n var _a;\n if (timeOffset === void 0) {\n timeOffset = 0;\n }\n if (this.service.state.matches('paused')) {\n this.service.send({\n type: 'PLAY',\n payload: {\n timeOffset: timeOffset\n }\n });\n } else {\n this.service.send({\n type: 'PAUSE'\n });\n this.service.send({\n type: 'PLAY',\n payload: {\n timeOffset: timeOffset\n }\n });\n }\n (_a = this.iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.getElementsByTagName('html')[0].classList.remove('rrweb-paused');\n this.emitter.emit(ReplayerEvents.Start);\n };\n Replayer.prototype.pause = function (timeOffset) {\n var _a;\n if (timeOffset === undefined && this.service.state.matches('playing')) {\n this.service.send({\n type: 'PAUSE'\n });\n }\n if (typeof timeOffset === 'number') {\n this.play(timeOffset);\n this.service.send({\n type: 'PAUSE'\n });\n }\n (_a = this.iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.getElementsByTagName('html')[0].classList.add('rrweb-paused');\n this.emitter.emit(ReplayerEvents.Pause);\n };\n Replayer.prototype.resume = function (timeOffset) {\n if (timeOffset === void 0) {\n timeOffset = 0;\n }\n console.warn(\"The 'resume' will be departed in 1.0. Please use 'play' method which has the same interface.\");\n this.play(timeOffset);\n this.emitter.emit(ReplayerEvents.Resume);\n };\n Replayer.prototype.startLive = function (baselineTime) {\n this.service.send({\n type: 'TO_LIVE',\n payload: {\n baselineTime: baselineTime\n }\n });\n };\n Replayer.prototype.addEvent = function (rawEvent) {\n var _this = this;\n var event = this.config.unpackFn ? this.config.unpackFn(rawEvent) : rawEvent;\n if (indicatesTouchDevice(event)) {\n this.mouse.classList.add('touch-device');\n }\n Promise.resolve().then(function () {\n return _this.service.send({\n type: 'ADD_EVENT',\n payload: {\n event: event\n }\n });\n });\n };\n Replayer.prototype.enableInteract = function () {\n this.iframe.setAttribute('scrolling', 'auto');\n this.iframe.style.pointerEvents = 'auto';\n };\n Replayer.prototype.disableInteract = function () {\n this.iframe.setAttribute('scrolling', 'no');\n this.iframe.style.pointerEvents = 'none';\n };\n Replayer.prototype.resetCache = function () {\n this.cache = createCache();\n };\n Replayer.prototype.setupDom = function () {\n this.wrapper = document.createElement('div');\n this.wrapper.classList.add('replayer-wrapper');\n this.config.root.appendChild(this.wrapper);\n this.mouse = document.createElement('div');\n this.mouse.classList.add('replayer-mouse');\n this.wrapper.appendChild(this.mouse);\n if (this.config.mouseTail !== false) {\n this.mouseTail = document.createElement('canvas');\n this.mouseTail.classList.add('replayer-mouse-tail');\n this.mouseTail.style.display = 'inherit';\n this.wrapper.appendChild(this.mouseTail);\n }\n this.iframe = document.createElement('iframe');\n var attributes = ['allow-same-origin'];\n if (this.config.UNSAFE_replayCanvas) {\n attributes.push('allow-scripts');\n }\n this.iframe.style.display = 'none';\n this.iframe.setAttribute('sandbox', attributes.join(' '));\n this.disableInteract();\n this.wrapper.appendChild(this.iframe);\n if (this.iframe.contentWindow && this.iframe.contentDocument) {\n polyfill(this.iframe.contentWindow, this.iframe.contentDocument);\n polyfill$1(this.iframe.contentWindow);\n }\n };\n Replayer.prototype.handleResize = function (dimension) {\n var e_5, _a;\n this.iframe.style.display = 'inherit';\n try {\n for (var _b = __values([this.mouseTail, this.iframe]), _c = _b.next(); !_c.done; _c = _b.next()) {\n var el = _c.value;\n if (!el) {\n continue;\n }\n el.setAttribute('width', String(dimension.width));\n el.setAttribute('height', String(dimension.height));\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n };\n Replayer.prototype.applyEventsSynchronously = function (events) {\n var e_6, _a;\n try {\n for (var events_1 = __values(events), events_1_1 = events_1.next(); !events_1_1.done; events_1_1 = events_1.next()) {\n var event_1 = events_1_1.value;\n switch (event_1.type) {\n case EventType.DomContentLoaded:\n case EventType.Load:\n case EventType.Custom:\n continue;\n case EventType.FullSnapshot:\n case EventType.Meta:\n case EventType.Plugin:\n break;\n case EventType.IncrementalSnapshot:\n switch (event_1.data.source) {\n case IncrementalSource.MediaInteraction:\n continue;\n default:\n break;\n }\n break;\n default:\n break;\n }\n var castFn = this.getCastFn(event_1, true);\n castFn();\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (events_1_1 && !events_1_1.done && (_a = events_1.return)) _a.call(events_1);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n if (this.mousePos) {\n this.moveAndHover(this.mousePos.x, this.mousePos.y, this.mousePos.id, true, this.mousePos.debugData);\n }\n this.mousePos = null;\n if (this.touchActive === true) {\n this.mouse.classList.add('touch-active');\n } else if (this.touchActive === false) {\n this.mouse.classList.remove('touch-active');\n }\n this.touchActive = null;\n };\n Replayer.prototype.getCastFn = function (event, isSync) {\n var _this = this;\n if (isSync === void 0) {\n isSync = false;\n }\n var castFn;\n switch (event.type) {\n case EventType.DomContentLoaded:\n case EventType.Load:\n break;\n case EventType.Custom:\n castFn = function () {\n _this.emitter.emit(ReplayerEvents.CustomEvent, event);\n };\n break;\n case EventType.Meta:\n castFn = function () {\n return _this.emitter.emit(ReplayerEvents.Resize, {\n width: event.data.width,\n height: event.data.height\n });\n };\n break;\n case EventType.FullSnapshot:\n castFn = function () {\n if (_this.firstFullSnapshot) {\n if (_this.firstFullSnapshot === event) {\n _this.firstFullSnapshot = true;\n return;\n }\n } else {\n _this.firstFullSnapshot = true;\n }\n _this.rebuildFullSnapshot(event, isSync);\n _this.iframe.contentWindow.scrollTo(event.data.initialOffset);\n };\n break;\n case EventType.IncrementalSnapshot:\n castFn = function () {\n var e_7, _a;\n _this.applyIncremental(event, isSync);\n if (isSync) {\n return;\n }\n if (event === _this.nextUserInteractionEvent) {\n _this.nextUserInteractionEvent = null;\n _this.backToNormal();\n }\n if (_this.config.skipInactive && !_this.nextUserInteractionEvent) {\n try {\n for (var _b = __values(_this.service.state.context.events), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _event = _c.value;\n if (_event.timestamp <= event.timestamp) {\n continue;\n }\n if (_this.isUserInteraction(_event)) {\n if (_event.delay - event.delay > SKIP_TIME_THRESHOLD * _this.speedService.state.context.timer.speed) {\n _this.nextUserInteractionEvent = _event;\n }\n break;\n }\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n if (_this.nextUserInteractionEvent) {\n var skipTime = _this.nextUserInteractionEvent.delay - event.delay;\n var payload = {\n speed: Math.min(Math.round(skipTime / SKIP_TIME_INTERVAL), _this.config.maxSpeed)\n };\n _this.speedService.send({\n type: 'FAST_FORWARD',\n payload: payload\n });\n _this.emitter.emit(ReplayerEvents.SkipStart, payload);\n }\n }\n };\n break;\n }\n var wrappedCastFn = function () {\n var e_8, _a;\n if (castFn) {\n castFn();\n }\n try {\n for (var _b = __values(_this.config.plugins || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var plugin = _c.value;\n plugin.handler(event, isSync, {\n replayer: _this\n });\n }\n } catch (e_8_1) {\n e_8 = {\n error: e_8_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_8) throw e_8.error;\n }\n }\n _this.service.send({\n type: 'CAST_EVENT',\n payload: {\n event: event\n }\n });\n var last_index = _this.service.state.context.events.length - 1;\n if (event === _this.service.state.context.events[last_index]) {\n var finish_1 = function () {\n if (last_index < _this.service.state.context.events.length - 1) {\n return;\n }\n _this.backToNormal();\n _this.service.send('END');\n _this.emitter.emit(ReplayerEvents.Finish);\n };\n if (event.type === EventType.IncrementalSnapshot && event.data.source === IncrementalSource.MouseMove && event.data.positions.length) {\n setTimeout(function () {\n finish_1();\n }, Math.max(0, -event.data.positions[0].timeOffset + 50));\n } else {\n finish_1();\n }\n }\n _this.emitter.emit(ReplayerEvents.EventCast, event);\n };\n return wrappedCastFn;\n };\n Replayer.prototype.rebuildFullSnapshot = function (event, isSync) {\n var e_9, _a;\n var _this = this;\n if (isSync === void 0) {\n isSync = false;\n }\n if (!this.iframe.contentDocument) {\n return console.warn('Looks like your replayer has been destroyed.');\n }\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n console.warn('Found unresolved missing node map', this.legacy_missingNodeRetryMap);\n }\n this.legacy_missingNodeRetryMap = {};\n var collected = [];\n this.mirror.map = rebuild(event.data.node, {\n doc: this.iframe.contentDocument,\n afterAppend: function (builtNode) {\n _this.collectIframeAndAttachDocument(collected, builtNode);\n },\n cache: this.cache\n })[1];\n var _loop_1 = function (mutationInQueue, builtNode) {\n this_1.attachDocumentToIframe(mutationInQueue, builtNode);\n this_1.newDocumentQueue = this_1.newDocumentQueue.filter(function (m) {\n return m !== mutationInQueue;\n });\n };\n var this_1 = this;\n try {\n for (var collected_1 = __values(collected), collected_1_1 = collected_1.next(); !collected_1_1.done; collected_1_1 = collected_1.next()) {\n var _b = collected_1_1.value,\n mutationInQueue = _b.mutationInQueue,\n builtNode = _b.builtNode;\n _loop_1(mutationInQueue, builtNode);\n }\n } catch (e_9_1) {\n e_9 = {\n error: e_9_1\n };\n } finally {\n try {\n if (collected_1_1 && !collected_1_1.done && (_a = collected_1.return)) _a.call(collected_1);\n } finally {\n if (e_9) throw e_9.error;\n }\n }\n var _c = this.iframe.contentDocument,\n documentElement = _c.documentElement,\n head = _c.head;\n this.insertStyleRules(documentElement, head);\n if (!this.service.state.matches('playing')) {\n this.iframe.contentDocument.getElementsByTagName('html')[0].classList.add('rrweb-paused');\n }\n this.emitter.emit(ReplayerEvents.FullsnapshotRebuilded, event);\n if (!isSync) {\n this.waitForStylesheetLoad();\n }\n if (this.config.UNSAFE_replayCanvas) {\n this.preloadAllImages();\n }\n };\n Replayer.prototype.insertStyleRules = function (documentElement, head) {\n var styleEl = document.createElement('style');\n documentElement.insertBefore(styleEl, head);\n var injectStylesRules = rules(this.config.blockClass).concat(this.config.insertStyleRules);\n if (this.config.pauseAnimation) {\n injectStylesRules.push('html.rrweb-paused *, html.rrweb-paused *:before, html.rrweb-paused *:after { animation-play-state: paused !important; }');\n }\n for (var idx = 0; idx < injectStylesRules.length; idx++) {\n styleEl.sheet.insertRule(injectStylesRules[idx], idx);\n }\n };\n Replayer.prototype.attachDocumentToIframe = function (mutation, iframeEl) {\n var e_10, _a;\n var _this = this;\n var collected = [];\n if (!iframeEl.contentDocument) {\n var parent_1 = iframeEl.parentNode;\n while (parent_1) {\n if (this.fragmentParentMap.has(parent_1)) {\n var frag = parent_1;\n var realParent = this.fragmentParentMap.get(frag);\n this.restoreRealParent(frag, realParent);\n break;\n }\n parent_1 = parent_1.parentNode;\n }\n }\n buildNodeWithSN(mutation.node, {\n doc: iframeEl.contentDocument,\n map: this.mirror.map,\n hackCss: true,\n skipChild: false,\n afterAppend: function (builtNode) {\n _this.collectIframeAndAttachDocument(collected, builtNode);\n if (builtNode.__sn.type === NodeType.Element && builtNode.__sn.tagName.toUpperCase() === 'HTML') {\n var _a = iframeEl.contentDocument,\n documentElement = _a.documentElement,\n head = _a.head;\n _this.insertStyleRules(documentElement, head);\n }\n },\n cache: this.cache\n });\n var _loop_2 = function (mutationInQueue, builtNode) {\n this_2.attachDocumentToIframe(mutationInQueue, builtNode);\n this_2.newDocumentQueue = this_2.newDocumentQueue.filter(function (m) {\n return m !== mutationInQueue;\n });\n };\n var this_2 = this;\n try {\n for (var collected_2 = __values(collected), collected_2_1 = collected_2.next(); !collected_2_1.done; collected_2_1 = collected_2.next()) {\n var _b = collected_2_1.value,\n mutationInQueue = _b.mutationInQueue,\n builtNode = _b.builtNode;\n _loop_2(mutationInQueue, builtNode);\n }\n } catch (e_10_1) {\n e_10 = {\n error: e_10_1\n };\n } finally {\n try {\n if (collected_2_1 && !collected_2_1.done && (_a = collected_2.return)) _a.call(collected_2);\n } finally {\n if (e_10) throw e_10.error;\n }\n }\n };\n Replayer.prototype.collectIframeAndAttachDocument = function (collected, builtNode) {\n if (isIframeINode(builtNode)) {\n var mutationInQueue = this.newDocumentQueue.find(function (m) {\n return m.parentId === builtNode.__sn.id;\n });\n if (mutationInQueue) {\n collected.push({\n mutationInQueue: mutationInQueue,\n builtNode: builtNode\n });\n }\n }\n };\n Replayer.prototype.waitForStylesheetLoad = function () {\n var _this = this;\n var _a;\n var head = (_a = this.iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.head;\n if (head) {\n var unloadSheets_1 = new Set();\n var timer_1;\n var beforeLoadState_1 = this.service.state;\n var stateHandler_1 = function () {\n beforeLoadState_1 = _this.service.state;\n };\n this.emitter.on(ReplayerEvents.Start, stateHandler_1);\n this.emitter.on(ReplayerEvents.Pause, stateHandler_1);\n var unsubscribe_1 = function () {\n _this.emitter.off(ReplayerEvents.Start, stateHandler_1);\n _this.emitter.off(ReplayerEvents.Pause, stateHandler_1);\n };\n head.querySelectorAll('link[rel=\"stylesheet\"]').forEach(function (css) {\n if (!css.sheet) {\n unloadSheets_1.add(css);\n css.addEventListener('load', function () {\n unloadSheets_1.delete(css);\n if (unloadSheets_1.size === 0 && timer_1 !== -1) {\n if (beforeLoadState_1.matches('playing')) {\n _this.play(_this.getCurrentTime());\n }\n _this.emitter.emit(ReplayerEvents.LoadStylesheetEnd);\n if (timer_1) {\n clearTimeout(timer_1);\n }\n unsubscribe_1();\n }\n });\n }\n });\n if (unloadSheets_1.size > 0) {\n this.service.send({\n type: 'PAUSE'\n });\n this.emitter.emit(ReplayerEvents.LoadStylesheetStart);\n timer_1 = setTimeout(function () {\n if (beforeLoadState_1.matches('playing')) {\n _this.play(_this.getCurrentTime());\n }\n timer_1 = -1;\n unsubscribe_1();\n }, this.config.loadTimeout);\n }\n }\n };\n Replayer.prototype.hasImageArg = function (args) {\n var e_11, _a;\n try {\n for (var args_1 = __values(args), args_1_1 = args_1.next(); !args_1_1.done; args_1_1 = args_1.next()) {\n var arg = args_1_1.value;\n if (!arg || typeof arg !== 'object') {} else if ('rr_type' in arg && 'args' in arg) {\n if (this.hasImageArg(arg.args)) return true;\n } else if ('rr_type' in arg && arg.rr_type === 'HTMLImageElement') {\n return true;\n } else if (arg instanceof Array) {\n if (this.hasImageArg(arg)) return true;\n }\n }\n } catch (e_11_1) {\n e_11 = {\n error: e_11_1\n };\n } finally {\n try {\n if (args_1_1 && !args_1_1.done && (_a = args_1.return)) _a.call(args_1);\n } finally {\n if (e_11) throw e_11.error;\n }\n }\n return false;\n };\n Replayer.prototype.getImageArgs = function (args) {\n var e_12, _a;\n var images = [];\n try {\n for (var args_2 = __values(args), args_2_1 = args_2.next(); !args_2_1.done; args_2_1 = args_2.next()) {\n var arg = args_2_1.value;\n if (!arg || typeof arg !== 'object') {} else if ('rr_type' in arg && 'args' in arg) {\n images.push.apply(images, __spreadArray([], __read(this.getImageArgs(arg.args)), false));\n } else if ('rr_type' in arg && arg.rr_type === 'HTMLImageElement') {\n images.push(arg.src);\n } else if (arg instanceof Array) {\n images.push.apply(images, __spreadArray([], __read(this.getImageArgs(arg)), false));\n }\n }\n } catch (e_12_1) {\n e_12 = {\n error: e_12_1\n };\n } finally {\n try {\n if (args_2_1 && !args_2_1.done && (_a = args_2.return)) _a.call(args_2);\n } finally {\n if (e_12) throw e_12.error;\n }\n }\n return images;\n };\n Replayer.prototype.preloadAllImages = function () {\n var e_13, _a;\n var _this = this;\n this.service.state;\n var stateHandler = function () {\n _this.service.state;\n };\n this.emitter.on(ReplayerEvents.Start, stateHandler);\n this.emitter.on(ReplayerEvents.Pause, stateHandler);\n var _loop_3 = function (event_2) {\n if (event_2.type === EventType.IncrementalSnapshot && event_2.data.source === IncrementalSource.CanvasMutation) if ('commands' in event_2.data) {\n event_2.data.commands.forEach(function (c) {\n return _this.preloadImages(c, event_2);\n });\n } else {\n this_3.preloadImages(event_2.data, event_2);\n }\n };\n var this_3 = this;\n try {\n for (var _b = __values(this.service.state.context.events), _c = _b.next(); !_c.done; _c = _b.next()) {\n var event_2 = _c.value;\n _loop_3(event_2);\n }\n } catch (e_13_1) {\n e_13 = {\n error: e_13_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_13) throw e_13.error;\n }\n }\n };\n Replayer.prototype.preloadImages = function (data, event) {\n var _this = this;\n if (data.property === 'drawImage' && typeof data.args[0] === 'string' && !this.imageMap.has(event)) {\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n var imgd = ctx === null || ctx === void 0 ? void 0 : ctx.createImageData(canvas.width, canvas.height);\n imgd === null || imgd === void 0 ? void 0 : imgd.data;\n JSON.parse(data.args[0]);\n ctx === null || ctx === void 0 ? void 0 : ctx.putImageData(imgd, 0, 0);\n } else if (this.hasImageArg(data.args)) {\n this.getImageArgs(data.args).forEach(function (url) {\n var image = new Image();\n image.src = url;\n _this.imageMap.set(url, image);\n });\n }\n };\n Replayer.prototype.applyIncremental = function (e, isSync) {\n var _this = this;\n var _a, _b;\n var d = e.data;\n switch (d.source) {\n case IncrementalSource.Mutation:\n {\n if (isSync) {\n d.adds.forEach(function (m) {\n return _this.treeIndex.add(m);\n });\n d.texts.forEach(function (m) {\n var target = _this.mirror.getNode(m.id);\n var parent = target === null || target === void 0 ? void 0 : target.parentNode;\n if (parent && _this.virtualStyleRulesMap.has(parent)) _this.virtualStyleRulesMap.delete(parent);\n _this.treeIndex.text(m);\n });\n d.attributes.forEach(function (m) {\n return _this.treeIndex.attribute(m);\n });\n d.removes.forEach(function (m) {\n return _this.treeIndex.remove(m, _this.mirror);\n });\n }\n try {\n this.applyMutation(d, isSync);\n } catch (error) {\n this.warn(\"Exception in mutation \".concat(error.message || error), d);\n }\n break;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove:\n if (isSync) {\n var lastPosition = d.positions[d.positions.length - 1];\n this.mousePos = {\n x: lastPosition.x,\n y: lastPosition.y,\n id: lastPosition.id,\n debugData: d\n };\n } else {\n d.positions.forEach(function (p) {\n var action = {\n doAction: function () {\n _this.moveAndHover(p.x, p.y, p.id, isSync, d);\n },\n delay: p.timeOffset + e.timestamp - _this.service.state.context.baselineTime\n };\n _this.timer.addAction(action);\n });\n this.timer.addAction({\n doAction: function () {},\n delay: e.delay - ((_a = d.positions[0]) === null || _a === void 0 ? void 0 : _a.timeOffset)\n });\n }\n break;\n case IncrementalSource.MouseInteraction:\n {\n if (d.id === -1) {\n break;\n }\n var event_3 = new Event(MouseInteractions[d.type].toLowerCase());\n var target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n this.emitter.emit(ReplayerEvents.MouseInteraction, {\n type: d.type,\n target: target\n });\n var triggerFocus = this.config.triggerFocus;\n switch (d.type) {\n case MouseInteractions.Blur:\n if ('blur' in target) {\n target.blur();\n }\n break;\n case MouseInteractions.Focus:\n if (triggerFocus && target.focus) {\n target.focus({\n preventScroll: true\n });\n }\n break;\n case MouseInteractions.Click:\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n if (isSync) {\n if (d.type === MouseInteractions.TouchStart) {\n this.touchActive = true;\n } else if (d.type === MouseInteractions.TouchEnd) {\n this.touchActive = false;\n }\n this.mousePos = {\n x: d.x,\n y: d.y,\n id: d.id,\n debugData: d\n };\n } else {\n if (d.type === MouseInteractions.TouchStart) {\n this.tailPositions.length = 0;\n }\n this.moveAndHover(d.x, d.y, d.id, isSync, d);\n if (d.type === MouseInteractions.Click) {\n this.mouse.classList.remove('active');\n void this.mouse.offsetWidth;\n this.mouse.classList.add('active');\n } else if (d.type === MouseInteractions.TouchStart) {\n void this.mouse.offsetWidth;\n this.mouse.classList.add('touch-active');\n } else if (d.type === MouseInteractions.TouchEnd) {\n this.mouse.classList.remove('touch-active');\n }\n }\n break;\n case MouseInteractions.TouchCancel:\n if (isSync) {\n this.touchActive = false;\n } else {\n this.mouse.classList.remove('touch-active');\n }\n break;\n default:\n target.dispatchEvent(event_3);\n }\n break;\n }\n case IncrementalSource.Scroll:\n {\n if (d.id === -1) {\n break;\n }\n if (isSync) {\n this.treeIndex.scroll(d);\n break;\n }\n this.applyScroll(d, false);\n break;\n }\n case IncrementalSource.ViewportResize:\n this.emitter.emit(ReplayerEvents.Resize, {\n width: d.width,\n height: d.height\n });\n break;\n case IncrementalSource.Input:\n {\n if (d.id === -1) {\n break;\n }\n if (isSync) {\n this.treeIndex.input(d);\n break;\n }\n this.applyInput(d);\n break;\n }\n case IncrementalSource.MediaInteraction:\n {\n var target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n var mediaEl = target;\n try {\n if (d.currentTime) {\n mediaEl.currentTime = d.currentTime;\n }\n if (d.volume) {\n mediaEl.volume = d.volume;\n }\n if (d.muted) {\n mediaEl.muted = d.muted;\n }\n if (d.type === 1) {\n mediaEl.pause();\n }\n if (d.type === 0) {\n mediaEl.play();\n }\n } catch (error) {\n if (this.config.showWarning) {\n console.warn(\"Failed to replay media interactions: \".concat(error.message || error));\n }\n }\n break;\n }\n case IncrementalSource.StyleSheetRule:\n {\n var target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n var styleEl = target;\n var parent_2 = target.parentNode;\n var usingVirtualParent_1 = this.fragmentParentMap.has(parent_2);\n var styleSheet_1 = usingVirtualParent_1 ? null : styleEl.sheet;\n var rules_1;\n if (!styleSheet_1) {\n if (this.virtualStyleRulesMap.has(target)) {\n rules_1 = this.virtualStyleRulesMap.get(target);\n } else {\n rules_1 = [];\n this.virtualStyleRulesMap.set(target, rules_1);\n }\n }\n if (d.adds) {\n d.adds.forEach(function (_a) {\n var rule = _a.rule,\n nestedIndex = _a.index;\n if (styleSheet_1) {\n try {\n if (Array.isArray(nestedIndex)) {\n var _b = getPositionsAndIndex(nestedIndex),\n positions = _b.positions,\n index = _b.index;\n var nestedRule = getNestedRule(styleSheet_1.cssRules, positions);\n nestedRule.insertRule(rule, index);\n } else {\n var index = nestedIndex === undefined ? undefined : Math.min(nestedIndex, styleSheet_1.cssRules.length);\n styleSheet_1.insertRule(rule, index);\n }\n } catch (e) {}\n } else {\n rules_1 === null || rules_1 === void 0 ? void 0 : rules_1.push({\n cssText: rule,\n index: nestedIndex,\n type: StyleRuleType.Insert\n });\n }\n });\n }\n if (d.removes) {\n d.removes.forEach(function (_a) {\n var nestedIndex = _a.index;\n if (usingVirtualParent_1) {\n rules_1 === null || rules_1 === void 0 ? void 0 : rules_1.push({\n index: nestedIndex,\n type: StyleRuleType.Remove\n });\n } else {\n try {\n if (Array.isArray(nestedIndex)) {\n var _b = getPositionsAndIndex(nestedIndex),\n positions = _b.positions,\n index = _b.index;\n var nestedRule = getNestedRule(styleSheet_1.cssRules, positions);\n nestedRule.deleteRule(index || 0);\n } else {\n styleSheet_1 === null || styleSheet_1 === void 0 ? void 0 : styleSheet_1.deleteRule(nestedIndex);\n }\n } catch (e) {}\n }\n });\n }\n break;\n }\n case IncrementalSource.StyleDeclaration:\n {\n var target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n var styleEl = target;\n var parent_3 = target.parentNode;\n var usingVirtualParent = this.fragmentParentMap.has(parent_3);\n var styleSheet = usingVirtualParent ? null : styleEl.sheet;\n var rules = [];\n if (!styleSheet) {\n if (this.virtualStyleRulesMap.has(target)) {\n rules = this.virtualStyleRulesMap.get(target);\n } else {\n rules = [];\n this.virtualStyleRulesMap.set(target, rules);\n }\n }\n if (d.set) {\n if (styleSheet) {\n var rule = getNestedRule(styleSheet.rules, d.index);\n rule.style.setProperty(d.set.property, d.set.value, d.set.priority);\n } else {\n rules.push(__assign({\n type: StyleRuleType.SetProperty,\n index: d.index\n }, d.set));\n }\n }\n if (d.remove) {\n if (styleSheet) {\n var rule = getNestedRule(styleSheet.rules, d.index);\n rule.style.removeProperty(d.remove.property);\n } else {\n rules.push(__assign({\n type: StyleRuleType.RemoveProperty,\n index: d.index\n }, d.remove));\n }\n }\n break;\n }\n case IncrementalSource.CanvasMutation:\n {\n if (!this.config.UNSAFE_replayCanvas) {\n return;\n }\n var target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n canvasMutation({\n event: e,\n mutation: d,\n target: target,\n imageMap: this.imageMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this)\n });\n break;\n }\n case IncrementalSource.Font:\n {\n try {\n var fontFace = new FontFace(d.family, d.buffer ? new Uint8Array(JSON.parse(d.fontSource)) : d.fontSource, d.descriptors);\n (_b = this.iframe.contentDocument) === null || _b === void 0 ? void 0 : _b.fonts.add(fontFace);\n } catch (error) {\n if (this.config.showWarning) {\n console.warn(error);\n }\n }\n break;\n }\n }\n };\n Replayer.prototype.applyMutation = function (d, useVirtualParent) {\n var e_14, _a;\n var _this = this;\n d.removes.forEach(function (mutation) {\n var target = _this.mirror.getNode(mutation.id);\n if (!target) {\n if (d.removes.find(function (r) {\n return r.id === mutation.parentId;\n })) {\n return;\n }\n return _this.warnNodeNotFound(d, mutation.id);\n }\n if (_this.virtualStyleRulesMap.has(target)) {\n _this.virtualStyleRulesMap.delete(target);\n }\n var parent = _this.mirror.getNode(mutation.parentId);\n if (!parent) {\n return _this.warnNodeNotFound(d, mutation.parentId);\n }\n if (mutation.isShadow && hasShadowRoot(parent)) {\n parent = parent.shadowRoot;\n }\n _this.mirror.removeNodeFromMap(target);\n if (parent) {\n var realTarget = null;\n var realParent = '__sn' in parent ? _this.fragmentParentMap.get(parent) : undefined;\n if (realParent && realParent.contains(target)) {\n parent = realParent;\n } else if (_this.fragmentParentMap.has(target)) {\n realTarget = _this.fragmentParentMap.get(target);\n _this.fragmentParentMap.delete(target);\n target = realTarget;\n }\n try {\n parent.removeChild(target);\n } catch (error) {\n if (error instanceof DOMException) {\n _this.warn('parent could not remove child in mutation', parent, realParent, target, realTarget, d);\n } else {\n throw error;\n }\n }\n }\n });\n var legacy_missingNodeMap = __assign({}, this.legacy_missingNodeRetryMap);\n var queue = [];\n var nextNotInDOM = function (mutation) {\n var next = null;\n if (mutation.nextId) {\n next = _this.mirror.getNode(mutation.nextId);\n }\n if (mutation.nextId !== null && mutation.nextId !== undefined && mutation.nextId !== -1 && !next) {\n return true;\n }\n return false;\n };\n var appendNode = function (mutation) {\n var e_15, _a;\n var _b, _c;\n if (!_this.iframe.contentDocument) {\n return console.warn('Looks like your replayer has been destroyed.');\n }\n var parent = _this.mirror.getNode(mutation.parentId);\n if (!parent) {\n if (mutation.node.type === NodeType.Document) {\n return _this.newDocumentQueue.push(mutation);\n }\n return queue.push(mutation);\n }\n var parentInDocument = null;\n if (_this.iframe.contentDocument.contains) {\n parentInDocument = _this.iframe.contentDocument.contains(parent);\n } else if (_this.iframe.contentDocument.body.contains) {\n parentInDocument = _this.iframe.contentDocument.body.contains(parent);\n }\n var hasIframeChild = ((_c = (_b = parent).getElementsByTagName) === null || _c === void 0 ? void 0 : _c.call(_b, 'iframe').length) > 0;\n if (useVirtualParent && parentInDocument && !isIframeINode(parent) && !hasIframeChild) {\n var virtualParent = document.createDocumentFragment();\n _this.mirror.map[mutation.parentId] = virtualParent;\n _this.fragmentParentMap.set(virtualParent, parent);\n _this.storeState(parent);\n while (parent.firstChild) {\n virtualParent.appendChild(parent.firstChild);\n }\n parent = virtualParent;\n }\n if (mutation.node.isShadow) {\n if (!hasShadowRoot(parent)) {\n parent.attachShadow({\n mode: 'open'\n });\n parent = parent.shadowRoot;\n } else parent = parent.shadowRoot;\n }\n var previous = null;\n var next = null;\n if (mutation.previousId) {\n previous = _this.mirror.getNode(mutation.previousId);\n }\n if (mutation.nextId) {\n next = _this.mirror.getNode(mutation.nextId);\n }\n if (nextNotInDOM(mutation)) {\n return queue.push(mutation);\n }\n if (mutation.node.rootId && !_this.mirror.getNode(mutation.node.rootId)) {\n return;\n }\n var targetDoc = mutation.node.rootId ? _this.mirror.getNode(mutation.node.rootId) : _this.iframe.contentDocument;\n if (isIframeINode(parent)) {\n _this.attachDocumentToIframe(mutation, parent);\n return;\n }\n var target = buildNodeWithSN(mutation.node, {\n doc: targetDoc,\n map: _this.mirror.map,\n skipChild: true,\n hackCss: true,\n cache: _this.cache\n });\n if (mutation.previousId === -1 || mutation.nextId === -1) {\n legacy_missingNodeMap[mutation.node.id] = {\n node: target,\n mutation: mutation\n };\n return;\n }\n if ('__sn' in parent && parent.__sn.type === NodeType.Element && parent.__sn.tagName === 'textarea' && mutation.node.type === NodeType.Text) {\n try {\n for (var _d = __values(Array.from(parent.childNodes)), _e = _d.next(); !_e.done; _e = _d.next()) {\n var c = _e.value;\n if (c.nodeType === parent.TEXT_NODE) {\n parent.removeChild(c);\n }\n }\n } catch (e_15_1) {\n e_15 = {\n error: e_15_1\n };\n } finally {\n try {\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\n } finally {\n if (e_15) throw e_15.error;\n }\n }\n }\n if (previous && previous.nextSibling && previous.nextSibling.parentNode) {\n parent.insertBefore(target, previous.nextSibling);\n } else if (next && next.parentNode) {\n parent.contains(next) ? parent.insertBefore(target, next) : parent.insertBefore(target, null);\n } else {\n if (parent === targetDoc) {\n while (targetDoc.firstChild) {\n targetDoc.removeChild(targetDoc.firstChild);\n }\n }\n parent.appendChild(target);\n }\n if (isIframeINode(target)) {\n var mutationInQueue_1 = _this.newDocumentQueue.find(function (m) {\n return m.parentId === target.__sn.id;\n });\n if (mutationInQueue_1) {\n _this.attachDocumentToIframe(mutationInQueue_1, target);\n _this.newDocumentQueue = _this.newDocumentQueue.filter(function (m) {\n return m !== mutationInQueue_1;\n });\n }\n }\n if (mutation.previousId || mutation.nextId) {\n _this.legacy_resolveMissingNode(legacy_missingNodeMap, parent, target, mutation);\n }\n };\n d.adds.forEach(function (mutation) {\n appendNode(mutation);\n });\n var startTime = Date.now();\n while (queue.length) {\n var resolveTrees = queueToResolveTrees(queue);\n queue.length = 0;\n if (Date.now() - startTime > 500) {\n this.warn('Timeout in the loop, please check the resolve tree data:', resolveTrees);\n break;\n }\n try {\n for (var resolveTrees_1 = (e_14 = void 0, __values(resolveTrees)), resolveTrees_1_1 = resolveTrees_1.next(); !resolveTrees_1_1.done; resolveTrees_1_1 = resolveTrees_1.next()) {\n var tree = resolveTrees_1_1.value;\n var parent_4 = this.mirror.getNode(tree.value.parentId);\n if (!parent_4) {\n this.debug('Drop resolve tree since there is no parent for the root node.', tree);\n } else {\n iterateResolveTree(tree, function (mutation) {\n appendNode(mutation);\n });\n }\n }\n } catch (e_14_1) {\n e_14 = {\n error: e_14_1\n };\n } finally {\n try {\n if (resolveTrees_1_1 && !resolveTrees_1_1.done && (_a = resolveTrees_1.return)) _a.call(resolveTrees_1);\n } finally {\n if (e_14) throw e_14.error;\n }\n }\n }\n if (Object.keys(legacy_missingNodeMap).length) {\n Object.assign(this.legacy_missingNodeRetryMap, legacy_missingNodeMap);\n }\n d.texts.forEach(function (mutation) {\n var target = _this.mirror.getNode(mutation.id);\n if (!target) {\n if (d.removes.find(function (r) {\n return r.id === mutation.id;\n })) {\n return;\n }\n return _this.warnNodeNotFound(d, mutation.id);\n }\n if (_this.fragmentParentMap.has(target)) {\n target = _this.fragmentParentMap.get(target);\n }\n target.textContent = mutation.value;\n });\n d.attributes.forEach(function (mutation) {\n var target = _this.mirror.getNode(mutation.id);\n if (!target) {\n if (d.removes.find(function (r) {\n return r.id === mutation.id;\n })) {\n return;\n }\n return _this.warnNodeNotFound(d, mutation.id);\n }\n if (_this.fragmentParentMap.has(target)) {\n target = _this.fragmentParentMap.get(target);\n }\n for (var attributeName in mutation.attributes) {\n if (typeof attributeName === 'string') {\n var value = mutation.attributes[attributeName];\n if (value === null) {\n target.removeAttribute(attributeName);\n } else if (typeof value === 'string') {\n try {\n target.setAttribute(attributeName, value);\n } catch (error) {\n if (_this.config.showWarning) {\n console.warn('An error occurred may due to the checkout feature.', error);\n }\n }\n } else if (attributeName === 'style') {\n var styleValues = value;\n var targetEl = target;\n for (var s in styleValues) {\n if (styleValues[s] === false) {\n targetEl.style.removeProperty(s);\n } else if (styleValues[s] instanceof Array) {\n var svp = styleValues[s];\n targetEl.style.setProperty(s, svp[0], svp[1]);\n } else {\n var svs = styleValues[s];\n targetEl.style.setProperty(s, svs);\n }\n }\n }\n }\n }\n });\n };\n Replayer.prototype.applyScroll = function (d, isSync) {\n var target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n if (target === this.iframe.contentDocument) {\n this.iframe.contentWindow.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? 'auto' : 'smooth'\n });\n } else if (target.__sn.type === NodeType.Document) {\n target.defaultView.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? 'auto' : 'smooth'\n });\n } else {\n try {\n target.scrollTop = d.y;\n target.scrollLeft = d.x;\n } catch (error) {}\n }\n };\n Replayer.prototype.applyInput = function (d) {\n var target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n try {\n target.checked = d.isChecked;\n target.value = d.text;\n } catch (error) {}\n };\n Replayer.prototype.applyText = function (d, mutation) {\n var target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(mutation, d.id);\n }\n try {\n target.textContent = d.value;\n } catch (error) {}\n };\n Replayer.prototype.legacy_resolveMissingNode = function (map, parent, target, targetMutation) {\n var previousId = targetMutation.previousId,\n nextId = targetMutation.nextId;\n var previousInMap = previousId && map[previousId];\n var nextInMap = nextId && map[nextId];\n if (previousInMap) {\n var _a = previousInMap,\n node = _a.node,\n mutation = _a.mutation;\n parent.insertBefore(node, target);\n delete map[mutation.node.id];\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(map, parent, node, mutation);\n }\n }\n if (nextInMap) {\n var _b = nextInMap,\n node = _b.node,\n mutation = _b.mutation;\n parent.insertBefore(node, target.nextSibling);\n delete map[mutation.node.id];\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(map, parent, node, mutation);\n }\n }\n };\n Replayer.prototype.moveAndHover = function (x, y, id, isSync, debugData) {\n var target = this.mirror.getNode(id);\n if (!target) {\n return this.debugNodeNotFound(debugData, id);\n }\n var base = getBaseDimension(target, this.iframe);\n var _x = x * base.absoluteScale + base.x;\n var _y = y * base.absoluteScale + base.y;\n this.mouse.style.left = \"\".concat(_x, \"px\");\n this.mouse.style.top = \"\".concat(_y, \"px\");\n if (!isSync) {\n this.drawMouseTail({\n x: _x,\n y: _y\n });\n }\n this.hoverElements(target);\n };\n Replayer.prototype.drawMouseTail = function (position) {\n var _this = this;\n if (!this.mouseTail) {\n return;\n }\n var _a = this.config.mouseTail === true ? defaultMouseTailConfig : Object.assign({}, defaultMouseTailConfig, this.config.mouseTail),\n lineCap = _a.lineCap,\n lineWidth = _a.lineWidth,\n strokeStyle = _a.strokeStyle,\n duration = _a.duration;\n var draw = function () {\n if (!_this.mouseTail) {\n return;\n }\n var ctx = _this.mouseTail.getContext('2d');\n if (!ctx || !_this.tailPositions.length) {\n return;\n }\n ctx.clearRect(0, 0, _this.mouseTail.width, _this.mouseTail.height);\n ctx.beginPath();\n ctx.lineWidth = lineWidth;\n ctx.lineCap = lineCap;\n ctx.strokeStyle = strokeStyle;\n ctx.moveTo(_this.tailPositions[0].x, _this.tailPositions[0].y);\n _this.tailPositions.forEach(function (p) {\n return ctx.lineTo(p.x, p.y);\n });\n ctx.stroke();\n };\n this.tailPositions.push(position);\n draw();\n setTimeout(function () {\n _this.tailPositions = _this.tailPositions.filter(function (p) {\n return p !== position;\n });\n draw();\n }, duration / this.speedService.state.context.timer.speed);\n };\n Replayer.prototype.hoverElements = function (el) {\n var _a;\n (_a = this.iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.\\\\:hover').forEach(function (hoveredEl) {\n hoveredEl.classList.remove(':hover');\n });\n var currentEl = el;\n while (currentEl) {\n if (currentEl.classList) {\n currentEl.classList.add(':hover');\n }\n currentEl = currentEl.parentElement;\n }\n };\n Replayer.prototype.isUserInteraction = function (event) {\n if (event.type !== EventType.IncrementalSnapshot) {\n return false;\n }\n return event.data.source > IncrementalSource.Mutation && event.data.source <= IncrementalSource.Input;\n };\n Replayer.prototype.backToNormal = function () {\n this.nextUserInteractionEvent = null;\n if (this.speedService.state.matches('normal')) {\n return;\n }\n this.speedService.send({\n type: 'BACK_TO_NORMAL'\n });\n this.emitter.emit(ReplayerEvents.SkipEnd, {\n speed: this.speedService.state.context.normalSpeed\n });\n };\n Replayer.prototype.restoreRealParent = function (frag, parent) {\n this.mirror.map[parent.__sn.id] = parent;\n if (parent.__sn.type === NodeType.Element && parent.__sn.tagName === 'textarea' && frag.textContent) {\n parent.value = frag.textContent;\n }\n parent.appendChild(frag);\n this.restoreState(parent);\n };\n Replayer.prototype.storeState = function (parent) {\n var e_16, _a;\n if (parent) {\n if (parent.nodeType === parent.ELEMENT_NODE) {\n var parentElement = parent;\n if (parentElement.scrollLeft || parentElement.scrollTop) {\n this.elementStateMap.set(parent, {\n scroll: [parentElement.scrollLeft, parentElement.scrollTop]\n });\n }\n if (parentElement.tagName === 'STYLE') storeCSSRules(parentElement, this.virtualStyleRulesMap);\n var children = parentElement.children;\n try {\n for (var _b = __values(Array.from(children)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n this.storeState(child);\n }\n } catch (e_16_1) {\n e_16 = {\n error: e_16_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_16) throw e_16.error;\n }\n }\n }\n }\n };\n Replayer.prototype.restoreState = function (parent) {\n var e_17, _a;\n if (parent.nodeType === parent.ELEMENT_NODE) {\n var parentElement = parent;\n if (this.elementStateMap.has(parent)) {\n var storedState = this.elementStateMap.get(parent);\n if (storedState.scroll) {\n parentElement.scrollLeft = storedState.scroll[0];\n parentElement.scrollTop = storedState.scroll[1];\n }\n this.elementStateMap.delete(parent);\n }\n var children = parentElement.children;\n try {\n for (var _b = __values(Array.from(children)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n this.restoreState(child);\n }\n } catch (e_17_1) {\n e_17 = {\n error: e_17_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_17) throw e_17.error;\n }\n }\n }\n };\n Replayer.prototype.restoreNodeSheet = function (node) {\n var storedRules = this.virtualStyleRulesMap.get(node);\n if (node.nodeName !== 'STYLE') {\n return;\n }\n if (!storedRules) {\n return;\n }\n var styleNode = node;\n applyVirtualStyleRulesToNode(storedRules, styleNode);\n };\n Replayer.prototype.warnNodeNotFound = function (d, id) {\n if (this.treeIndex.idRemoved(id)) {\n this.warn(\"Node with id '\".concat(id, \"' was previously removed. \"), d);\n } else {\n this.warn(\"Node with id '\".concat(id, \"' not found. \"), d);\n }\n };\n Replayer.prototype.warnCanvasMutationFailed = function (d, error) {\n this.warn(\"Has error on canvas update\", error, 'canvas mutation:', d);\n };\n Replayer.prototype.debugNodeNotFound = function (d, id) {\n if (this.treeIndex.idRemoved(id)) {\n this.debug(REPLAY_CONSOLE_PREFIX, \"Node with id '\".concat(id, \"' was previously removed. \"), d);\n } else {\n this.debug(REPLAY_CONSOLE_PREFIX, \"Node with id '\".concat(id, \"' not found. \"), d);\n }\n };\n Replayer.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this.config.showWarning) {\n return;\n }\n console.warn.apply(console, __spreadArray([REPLAY_CONSOLE_PREFIX], __read(args), false));\n };\n Replayer.prototype.debug = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this.config.showDebug) {\n return;\n }\n console.log.apply(console, __spreadArray([REPLAY_CONSOLE_PREFIX], __read(args), false));\n };\n return Replayer;\n}();\nexport { Replayer };","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n if (ret !== void 0) {\n return !!ret;\n }\n if (objA === objB) {\n return true;\n }\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) {\n return false;\n }\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n if (!bHasOwnProperty(key)) {\n return false;\n }\n var valueA = objA[key];\n var valueB = objB[key];\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n if (ret === false || ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n return true;\n};","function stylis_min(W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n default:\n f += e.charAt(l);\n }\n g = 59;\n }\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n case 125:\n k--;\n break;\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n break;\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n }\n }\n l = u;\n }\n }\n break;\n case 91:\n g++;\n case 40:\n g++;\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {}\n }\n if (0 === k) break;\n l++;\n }\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n default:\n r = O;\n }\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n default:\n z++;\n y = e.charAt(l);\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n default:\n 32 !== g && (y = ' ');\n }\n break;\n case 0:\n y = '\\\\0';\n break;\n case 12:\n y = '\\\\f';\n break;\n case 11:\n y = '\\\\v';\n break;\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n case 8:\n 111 === K && (E = K);\n }\n break;\n case 58:\n 0 === n + b + m && (u = l);\n break;\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n case 91:\n 0 === n + b + v && m++;\n break;\n case 93:\n 0 === n + b + v && m--;\n break;\n case 41:\n 0 === n + b + m && v--;\n break;\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n default:\n q = 1;\n }\n v++;\n }\n break;\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n case 220:\n t = l, b = 42;\n }\n break;\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n 0 === b && (f += y);\n }\n K = x;\n x = g;\n l++;\n }\n t = p.length;\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n E = 0;\n }\n }\n return G + p + F;\n }\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n break;\n default:\n var v = b = 0;\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n }\n return c;\n }\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n return d + c;\n }\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n if (0 === w || 2 === w && !L(a, 1)) return a;\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n case 969:\n case 942:\n return '-webkit-' + a + a;\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n case 220:\n b = a.replace(G, 'lr');\n break;\n default:\n return a;\n }\n return '-webkit-' + a + '-ms-' + b + a;\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n return a + ';';\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n return a;\n }\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n default:\n x = w;\n }\n }\n if (x !== c) return x;\n }\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n return T;\n }\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\nexport default stylis_min;","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\nexport default unitlessKeys;","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\nexport default memoize;","import memoize from '@emotion/memoize';\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */ && prop.charCodeAt(1) === 110\n /* n */ && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */);\n\nexport default isPropValid;","import { typeOf as e, isElement as t, isValidElementType as n } from \"react-is\";\nimport r, { useState as o, useContext as s, useMemo as i, useEffect as a, useRef as c, createElement as u, useDebugValue as l, useLayoutEffect as d } from \"react\";\nimport h from \"shallowequal\";\nimport p from \"@emotion/stylis\";\nimport f from \"@emotion/unitless\";\nimport m from \"@emotion/is-prop-valid\";\nimport y from \"hoist-non-react-statics\";\nfunction v() {\n return (v = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]);\n }\n return e;\n }).apply(this, arguments);\n}\nvar g = function (e, t) {\n for (var n = [e[0]], r = 0, o = t.length; r < o; r += 1) n.push(t[r], e[r + 1]);\n return n;\n },\n S = function (t) {\n return null !== t && \"object\" == typeof t && \"[object Object]\" === (t.toString ? t.toString() : Object.prototype.toString.call(t)) && !e(t);\n },\n w = Object.freeze([]),\n E = Object.freeze({});\nfunction b(e) {\n return \"function\" == typeof e;\n}\nfunction _(e) {\n return \"production\" !== process.env.NODE_ENV && \"string\" == typeof e && e || e.displayName || e.name || \"Component\";\n}\nfunction N(e) {\n return e && \"string\" == typeof e.styledComponentId;\n}\nvar A = \"undefined\" != typeof process && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || \"data-styled\",\n C = \"5.3.6\",\n I = \"undefined\" != typeof window && \"HTMLElement\" in window,\n P = Boolean(\"boolean\" == typeof SC_DISABLE_SPEEDY ? SC_DISABLE_SPEEDY : \"undefined\" != typeof process && void 0 !== process.env.REACT_APP_SC_DISABLE_SPEEDY && \"\" !== process.env.REACT_APP_SC_DISABLE_SPEEDY ? \"false\" !== process.env.REACT_APP_SC_DISABLE_SPEEDY && process.env.REACT_APP_SC_DISABLE_SPEEDY : \"undefined\" != typeof process && void 0 !== process.env.SC_DISABLE_SPEEDY && \"\" !== process.env.SC_DISABLE_SPEEDY ? \"false\" !== process.env.SC_DISABLE_SPEEDY && process.env.SC_DISABLE_SPEEDY : \"production\" !== process.env.NODE_ENV),\n O = {},\n R = \"production\" !== process.env.NODE_ENV ? {\n 1: \"Cannot create styled-component for component: %s.\\n\\n\",\n 2: \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n 3: \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n 4: \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n 5: \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n 6: \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n 7: 'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',\n 8: 'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',\n 9: \"Missing document ``\\n\\n\",\n 10: \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n 11: \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n 12: \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n 13: \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",\n 14: 'ThemeProvider: \"theme\" prop is required.\\n\\n',\n 15: \"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to ``, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",\n 16: \"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",\n 17: \"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\"\n } : {};\nfunction D() {\n for (var e = arguments.length <= 0 ? void 0 : arguments[0], t = [], n = 1, r = arguments.length; n < r; n += 1) t.push(n < 0 || arguments.length <= n ? void 0 : arguments[n]);\n return t.forEach(function (t) {\n e = e.replace(/%[a-z]/, t);\n }), e;\n}\nfunction j(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n throw \"production\" === process.env.NODE_ENV ? new Error(\"An error occurred. See https://git.io/JUIaE#\" + e + \" for more information.\" + (n.length > 0 ? \" Args: \" + n.join(\", \") : \"\")) : new Error(D.apply(void 0, [R[e]].concat(n)).trim());\n}\nvar T = function () {\n function e(e) {\n this.groupSizes = new Uint32Array(512), this.length = 512, this.tag = e;\n }\n var t = e.prototype;\n return t.indexOfGroup = function (e) {\n for (var t = 0, n = 0; n < e; n++) t += this.groupSizes[n];\n return t;\n }, t.insertRules = function (e, t) {\n if (e >= this.groupSizes.length) {\n for (var n = this.groupSizes, r = n.length, o = r; e >= o;) (o <<= 1) < 0 && j(16, \"\" + e);\n this.groupSizes = new Uint32Array(o), this.groupSizes.set(n), this.length = o;\n for (var s = r; s < o; s++) this.groupSizes[s] = 0;\n }\n for (var i = this.indexOfGroup(e + 1), a = 0, c = t.length; a < c; a++) this.tag.insertRule(i, t[a]) && (this.groupSizes[e]++, i++);\n }, t.clearGroup = function (e) {\n if (e < this.length) {\n var t = this.groupSizes[e],\n n = this.indexOfGroup(e),\n r = n + t;\n this.groupSizes[e] = 0;\n for (var o = n; o < r; o++) this.tag.deleteRule(n);\n }\n }, t.getGroup = function (e) {\n var t = \"\";\n if (e >= this.length || 0 === this.groupSizes[e]) return t;\n for (var n = this.groupSizes[e], r = this.indexOfGroup(e), o = r + n, s = r; s < o; s++) t += this.tag.getRule(s) + \"/*!sc*/\\n\";\n return t;\n }, e;\n }(),\n x = new Map(),\n k = new Map(),\n V = 1,\n B = function (e) {\n if (x.has(e)) return x.get(e);\n for (; k.has(V);) V++;\n var t = V++;\n return \"production\" !== process.env.NODE_ENV && ((0 | t) < 0 || t > 1 << 30) && j(16, \"\" + t), x.set(e, t), k.set(t, e), t;\n },\n z = function (e) {\n return k.get(e);\n },\n M = function (e, t) {\n t >= V && (V = t + 1), x.set(e, t), k.set(t, e);\n },\n G = \"style[\" + A + '][data-styled-version=\"5.3.6\"]',\n L = new RegExp(\"^\" + A + '\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)'),\n F = function (e, t, n) {\n for (var r, o = n.split(\",\"), s = 0, i = o.length; s < i; s++) (r = o[s]) && e.registerName(t, r);\n },\n Y = function (e, t) {\n for (var n = (t.textContent || \"\").split(\"/*!sc*/\\n\"), r = [], o = 0, s = n.length; o < s; o++) {\n var i = n[o].trim();\n if (i) {\n var a = i.match(L);\n if (a) {\n var c = 0 | parseInt(a[1], 10),\n u = a[2];\n 0 !== c && (M(u, c), F(e, u, a[3]), e.getTag().insertRules(c, r)), r.length = 0;\n } else r.push(i);\n }\n }\n },\n q = function () {\n return \"undefined\" != typeof __webpack_nonce__ ? __webpack_nonce__ : null;\n },\n H = function (e) {\n var t = document.head,\n n = e || t,\n r = document.createElement(\"style\"),\n o = function (e) {\n for (var t = e.childNodes, n = t.length; n >= 0; n--) {\n var r = t[n];\n if (r && 1 === r.nodeType && r.hasAttribute(A)) return r;\n }\n }(n),\n s = void 0 !== o ? o.nextSibling : null;\n r.setAttribute(A, \"active\"), r.setAttribute(\"data-styled-version\", \"5.3.6\");\n var i = q();\n return i && r.setAttribute(\"nonce\", i), n.insertBefore(r, s), r;\n },\n $ = function () {\n function e(e) {\n var t = this.element = H(e);\n t.appendChild(document.createTextNode(\"\")), this.sheet = function (e) {\n if (e.sheet) return e.sheet;\n for (var t = document.styleSheets, n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n if (o.ownerNode === e) return o;\n }\n j(17);\n }(t), this.length = 0;\n }\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n try {\n return this.sheet.insertRule(t, e), this.length++, !0;\n } catch (e) {\n return !1;\n }\n }, t.deleteRule = function (e) {\n this.sheet.deleteRule(e), this.length--;\n }, t.getRule = function (e) {\n var t = this.sheet.cssRules[e];\n return void 0 !== t && \"string\" == typeof t.cssText ? t.cssText : \"\";\n }, e;\n }(),\n W = function () {\n function e(e) {\n var t = this.element = H(e);\n this.nodes = t.childNodes, this.length = 0;\n }\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n if (e <= this.length && e >= 0) {\n var n = document.createTextNode(t),\n r = this.nodes[e];\n return this.element.insertBefore(n, r || null), this.length++, !0;\n }\n return !1;\n }, t.deleteRule = function (e) {\n this.element.removeChild(this.nodes[e]), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.nodes[e].textContent : \"\";\n }, e;\n }(),\n U = function () {\n function e(e) {\n this.rules = [], this.length = 0;\n }\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n return e <= this.length && (this.rules.splice(e, 0, t), this.length++, !0);\n }, t.deleteRule = function (e) {\n this.rules.splice(e, 1), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.rules[e] : \"\";\n }, e;\n }(),\n J = I,\n X = {\n isServer: !I,\n useCSSOMInjection: !P\n },\n Z = function () {\n function e(e, t, n) {\n void 0 === e && (e = E), void 0 === t && (t = {}), this.options = v({}, X, {}, e), this.gs = t, this.names = new Map(n), this.server = !!e.isServer, !this.server && I && J && (J = !1, function (e) {\n for (var t = document.querySelectorAll(G), n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n o && \"active\" !== o.getAttribute(A) && (Y(e, o), o.parentNode && o.parentNode.removeChild(o));\n }\n }(this));\n }\n e.registerId = function (e) {\n return B(e);\n };\n var t = e.prototype;\n return t.reconstructWithOptions = function (t, n) {\n return void 0 === n && (n = !0), new e(v({}, this.options, {}, t), this.gs, n && this.names || void 0);\n }, t.allocateGSInstance = function (e) {\n return this.gs[e] = (this.gs[e] || 0) + 1;\n }, t.getTag = function () {\n return this.tag || (this.tag = (n = (t = this.options).isServer, r = t.useCSSOMInjection, o = t.target, e = n ? new U(o) : r ? new $(o) : new W(o), new T(e)));\n var e, t, n, r, o;\n }, t.hasNameForId = function (e, t) {\n return this.names.has(e) && this.names.get(e).has(t);\n }, t.registerName = function (e, t) {\n if (B(e), this.names.has(e)) this.names.get(e).add(t);else {\n var n = new Set();\n n.add(t), this.names.set(e, n);\n }\n }, t.insertRules = function (e, t, n) {\n this.registerName(e, t), this.getTag().insertRules(B(e), n);\n }, t.clearNames = function (e) {\n this.names.has(e) && this.names.get(e).clear();\n }, t.clearRules = function (e) {\n this.getTag().clearGroup(B(e)), this.clearNames(e);\n }, t.clearTag = function () {\n this.tag = void 0;\n }, t.toString = function () {\n return function (e) {\n for (var t = e.getTag(), n = t.length, r = \"\", o = 0; o < n; o++) {\n var s = z(o);\n if (void 0 !== s) {\n var i = e.names.get(s),\n a = t.getGroup(o);\n if (i && a && i.size) {\n var c = A + \".g\" + o + '[id=\"' + s + '\"]',\n u = \"\";\n void 0 !== i && i.forEach(function (e) {\n e.length > 0 && (u += e + \",\");\n }), r += \"\" + a + c + '{content:\"' + u + '\"}/*!sc*/\\n';\n }\n }\n }\n return r;\n }(this);\n }, e;\n }(),\n K = /(a)(d)/gi,\n Q = function (e) {\n return String.fromCharCode(e + (e > 25 ? 39 : 97));\n };\nfunction ee(e) {\n var t,\n n = \"\";\n for (t = Math.abs(e); t > 52; t = t / 52 | 0) n = Q(t % 52) + n;\n return (Q(t % 52) + n).replace(K, \"$1-$2\");\n}\nvar te = function (e, t) {\n for (var n = t.length; n;) e = 33 * e ^ t.charCodeAt(--n);\n return e;\n },\n ne = function (e) {\n return te(5381, e);\n };\nfunction re(e) {\n for (var t = 0; t < e.length; t += 1) {\n var n = e[t];\n if (b(n) && !N(n)) return !1;\n }\n return !0;\n}\nvar oe = ne(\"5.3.6\"),\n se = function () {\n function e(e, t, n) {\n this.rules = e, this.staticRulesId = \"\", this.isStatic = \"production\" === process.env.NODE_ENV && (void 0 === n || n.isStatic) && re(e), this.componentId = t, this.baseHash = te(oe, t), this.baseStyle = n, Z.registerId(t);\n }\n return e.prototype.generateAndInjectStyles = function (e, t, n) {\n var r = this.componentId,\n o = [];\n if (this.baseStyle && o.push(this.baseStyle.generateAndInjectStyles(e, t, n)), this.isStatic && !n.hash) {\n if (this.staticRulesId && t.hasNameForId(r, this.staticRulesId)) o.push(this.staticRulesId);else {\n var s = Ne(this.rules, e, t, n).join(\"\"),\n i = ee(te(this.baseHash, s) >>> 0);\n if (!t.hasNameForId(r, i)) {\n var a = n(s, \".\" + i, void 0, r);\n t.insertRules(r, i, a);\n }\n o.push(i), this.staticRulesId = i;\n }\n } else {\n for (var c = this.rules.length, u = te(this.baseHash, n.hash), l = \"\", d = 0; d < c; d++) {\n var h = this.rules[d];\n if (\"string\" == typeof h) l += h, \"production\" !== process.env.NODE_ENV && (u = te(u, h + d));else if (h) {\n var p = Ne(h, e, t, n),\n f = Array.isArray(p) ? p.join(\"\") : p;\n u = te(u, f + d), l += f;\n }\n }\n if (l) {\n var m = ee(u >>> 0);\n if (!t.hasNameForId(r, m)) {\n var y = n(l, \".\" + m, void 0, r);\n t.insertRules(r, m, y);\n }\n o.push(m);\n }\n }\n return o.join(\" \");\n }, e;\n }(),\n ie = /^\\s*\\/\\/.*$/gm,\n ae = [\":\", \"[\", \".\", \"#\"];\nfunction ce(e) {\n var t,\n n,\n r,\n o,\n s = void 0 === e ? E : e,\n i = s.options,\n a = void 0 === i ? E : i,\n c = s.plugins,\n u = void 0 === c ? w : c,\n l = new p(a),\n d = [],\n h = function (e) {\n function t(t) {\n if (t) try {\n e(t + \"}\");\n } catch (e) {}\n }\n return function (n, r, o, s, i, a, c, u, l, d) {\n switch (n) {\n case 1:\n if (0 === l && 64 === r.charCodeAt(0)) return e(r + \";\"), \"\";\n break;\n case 2:\n if (0 === u) return r + \"/*|*/\";\n break;\n case 3:\n switch (u) {\n case 102:\n case 112:\n return e(o[0] + r), \"\";\n default:\n return r + (0 === d ? \"/*|*/\" : \"\");\n }\n case -2:\n r.split(\"/*|*/}\").forEach(t);\n }\n };\n }(function (e) {\n d.push(e);\n }),\n f = function (e, r, s) {\n return 0 === r && -1 !== ae.indexOf(s[n.length]) || s.match(o) ? e : \".\" + t;\n };\n function m(e, s, i, a) {\n void 0 === a && (a = \"&\");\n var c = e.replace(ie, \"\"),\n u = s && i ? i + \" \" + s + \" { \" + c + \" }\" : c;\n return t = a, n = s, r = new RegExp(\"\\\\\" + n + \"\\\\b\", \"g\"), o = new RegExp(\"(\\\\\" + n + \"\\\\b){2,}\"), l(i || !s ? \"\" : s, u);\n }\n return l.use([].concat(u, [function (e, t, o) {\n 2 === e && o.length && o[0].lastIndexOf(n) > 0 && (o[0] = o[0].replace(r, f));\n }, h, function (e) {\n if (-2 === e) {\n var t = d;\n return d = [], t;\n }\n }])), m.hash = u.length ? u.reduce(function (e, t) {\n return t.name || j(15), te(e, t.name);\n }, 5381).toString() : \"\", m;\n}\nvar ue = /*#__PURE__*/r.createContext(),\n le = ue.Consumer,\n de = /*#__PURE__*/r.createContext(),\n he = (de.Consumer, new Z()),\n pe = ce();\nfunction fe() {\n return s(ue) || he;\n}\nfunction me() {\n return s(de) || pe;\n}\nfunction ye(e) {\n var t = o(e.stylisPlugins),\n n = t[0],\n s = t[1],\n c = fe(),\n u = i(function () {\n var t = c;\n return e.sheet ? t = e.sheet : e.target && (t = t.reconstructWithOptions({\n target: e.target\n }, !1)), e.disableCSSOMInjection && (t = t.reconstructWithOptions({\n useCSSOMInjection: !1\n })), t;\n }, [e.disableCSSOMInjection, e.sheet, e.target]),\n l = i(function () {\n return ce({\n options: {\n prefix: !e.disableVendorPrefixes\n },\n plugins: n\n });\n }, [e.disableVendorPrefixes, n]);\n return a(function () {\n h(n, e.stylisPlugins) || s(e.stylisPlugins);\n }, [e.stylisPlugins]), /*#__PURE__*/r.createElement(ue.Provider, {\n value: u\n }, /*#__PURE__*/r.createElement(de.Provider, {\n value: l\n }, \"production\" !== process.env.NODE_ENV ? r.Children.only(e.children) : e.children));\n}\nvar ve = function () {\n function e(e, t) {\n var n = this;\n this.inject = function (e, t) {\n void 0 === t && (t = pe);\n var r = n.name + t.hash;\n e.hasNameForId(n.id, r) || e.insertRules(n.id, r, t(n.rules, r, \"@keyframes\"));\n }, this.toString = function () {\n return j(12, String(n.name));\n }, this.name = e, this.id = \"sc-keyframes-\" + e, this.rules = t;\n }\n return e.prototype.getName = function (e) {\n return void 0 === e && (e = pe), this.name + e.hash;\n }, e;\n }(),\n ge = /([A-Z])/,\n Se = /([A-Z])/g,\n we = /^ms-/,\n Ee = function (e) {\n return \"-\" + e.toLowerCase();\n };\nfunction be(e) {\n return ge.test(e) ? e.replace(Se, Ee).replace(we, \"-ms-\") : e;\n}\nvar _e = function (e) {\n return null == e || !1 === e || \"\" === e;\n};\nfunction Ne(e, n, r, o) {\n if (Array.isArray(e)) {\n for (var s, i = [], a = 0, c = e.length; a < c; a += 1) \"\" !== (s = Ne(e[a], n, r, o)) && (Array.isArray(s) ? i.push.apply(i, s) : i.push(s));\n return i;\n }\n if (_e(e)) return \"\";\n if (N(e)) return \".\" + e.styledComponentId;\n if (b(e)) {\n if (\"function\" != typeof (l = e) || l.prototype && l.prototype.isReactComponent || !n) return e;\n var u = e(n);\n return \"production\" !== process.env.NODE_ENV && t(u) && console.warn(_(e) + \" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\"), Ne(u, n, r, o);\n }\n var l;\n return e instanceof ve ? r ? (e.inject(r, o), e.getName(o)) : e : S(e) ? function e(t, n) {\n var r,\n o,\n s = [];\n for (var i in t) t.hasOwnProperty(i) && !_e(t[i]) && (Array.isArray(t[i]) && t[i].isCss || b(t[i]) ? s.push(be(i) + \":\", t[i], \";\") : S(t[i]) ? s.push.apply(s, e(t[i], i)) : s.push(be(i) + \": \" + (r = i, null == (o = t[i]) || \"boolean\" == typeof o || \"\" === o ? \"\" : \"number\" != typeof o || 0 === o || r in f ? String(o).trim() : o + \"px\") + \";\"));\n return n ? [n + \" {\"].concat(s, [\"}\"]) : s;\n }(e) : e.toString();\n}\nvar Ae = function (e) {\n return Array.isArray(e) && (e.isCss = !0), e;\n};\nfunction Ce(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n return b(e) || S(e) ? Ae(Ne(g(w, [e].concat(n)))) : 0 === n.length && 1 === e.length && \"string\" == typeof e[0] ? e : Ae(Ne(g(e, n)));\n}\nvar Ie = /invalid hook call/i,\n Pe = new Set(),\n Oe = function (e, t) {\n if (\"production\" !== process.env.NODE_ENV) {\n var n = \"The component \" + e + (t ? ' with the id of \"' + t + '\"' : \"\") + \" has been created dynamically.\\nYou may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\",\n r = console.error;\n try {\n var o = !0;\n console.error = function (e) {\n if (Ie.test(e)) o = !1, Pe.delete(n);else {\n for (var t = arguments.length, s = new Array(t > 1 ? t - 1 : 0), i = 1; i < t; i++) s[i - 1] = arguments[i];\n r.apply(void 0, [e].concat(s));\n }\n }, c(), o && !Pe.has(n) && (console.warn(n), Pe.add(n));\n } catch (e) {\n Ie.test(e.message) && Pe.delete(n);\n } finally {\n console.error = r;\n }\n }\n },\n Re = function (e, t, n) {\n return void 0 === n && (n = E), e.theme !== n.theme && e.theme || t || n.theme;\n },\n De = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,\n je = /(^-|-$)/g;\nfunction Te(e) {\n return e.replace(De, \"-\").replace(je, \"\");\n}\nvar xe = function (e) {\n return ee(ne(e) >>> 0);\n};\nfunction ke(e) {\n return \"string\" == typeof e && (\"production\" === process.env.NODE_ENV || e.charAt(0) === e.charAt(0).toLowerCase());\n}\nvar Ve = function (e) {\n return \"function\" == typeof e || \"object\" == typeof e && null !== e && !Array.isArray(e);\n },\n Be = function (e) {\n return \"__proto__\" !== e && \"constructor\" !== e && \"prototype\" !== e;\n };\nfunction ze(e, t, n) {\n var r = e[n];\n Ve(t) && Ve(r) ? Me(r, t) : e[n] = t;\n}\nfunction Me(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n for (var o = 0, s = n; o < s.length; o++) {\n var i = s[o];\n if (Ve(i)) for (var a in i) Be(a) && ze(e, i[a], a);\n }\n return e;\n}\nvar Ge = /*#__PURE__*/r.createContext(),\n Le = Ge.Consumer;\nfunction Fe(e) {\n var t = s(Ge),\n n = i(function () {\n return function (e, t) {\n if (!e) return j(14);\n if (b(e)) {\n var n = e(t);\n return \"production\" === process.env.NODE_ENV || null !== n && !Array.isArray(n) && \"object\" == typeof n ? n : j(7);\n }\n return Array.isArray(e) || \"object\" != typeof e ? j(8) : t ? v({}, t, {}, e) : e;\n }(e.theme, t);\n }, [e.theme, t]);\n return e.children ? /*#__PURE__*/r.createElement(Ge.Provider, {\n value: n\n }, e.children) : null;\n}\nvar Ye = {};\nfunction qe(e, t, n) {\n var o = N(e),\n i = !ke(e),\n a = t.attrs,\n c = void 0 === a ? w : a,\n d = t.componentId,\n h = void 0 === d ? function (e, t) {\n var n = \"string\" != typeof e ? \"sc\" : Te(e);\n Ye[n] = (Ye[n] || 0) + 1;\n var r = n + \"-\" + xe(\"5.3.6\" + n + Ye[n]);\n return t ? t + \"-\" + r : r;\n }(t.displayName, t.parentComponentId) : d,\n p = t.displayName,\n f = void 0 === p ? function (e) {\n return ke(e) ? \"styled.\" + e : \"Styled(\" + _(e) + \")\";\n }(e) : p,\n g = t.displayName && t.componentId ? Te(t.displayName) + \"-\" + t.componentId : t.componentId || h,\n S = o && e.attrs ? Array.prototype.concat(e.attrs, c).filter(Boolean) : c,\n A = t.shouldForwardProp;\n o && e.shouldForwardProp && (A = t.shouldForwardProp ? function (n, r, o) {\n return e.shouldForwardProp(n, r, o) && t.shouldForwardProp(n, r, o);\n } : e.shouldForwardProp);\n var C,\n I = new se(n, g, o ? e.componentStyle : void 0),\n P = I.isStatic && 0 === c.length,\n O = function (e, t) {\n return function (e, t, n, r) {\n var o = e.attrs,\n i = e.componentStyle,\n a = e.defaultProps,\n c = e.foldedComponentIds,\n d = e.shouldForwardProp,\n h = e.styledComponentId,\n p = e.target;\n \"production\" !== process.env.NODE_ENV && l(h);\n var f = function (e, t, n) {\n void 0 === e && (e = E);\n var r = v({}, t, {\n theme: e\n }),\n o = {};\n return n.forEach(function (e) {\n var t,\n n,\n s,\n i = e;\n for (t in b(i) && (i = i(r)), i) r[t] = o[t] = \"className\" === t ? (n = o[t], s = i[t], n && s ? n + \" \" + s : n || s) : i[t];\n }), [r, o];\n }(Re(t, s(Ge), a) || E, t, o),\n y = f[0],\n g = f[1],\n S = function (e, t, n, r) {\n var o = fe(),\n s = me(),\n i = t ? e.generateAndInjectStyles(E, o, s) : e.generateAndInjectStyles(n, o, s);\n return \"production\" !== process.env.NODE_ENV && l(i), \"production\" !== process.env.NODE_ENV && !t && r && r(i), i;\n }(i, r, y, \"production\" !== process.env.NODE_ENV ? e.warnTooManyClasses : void 0),\n w = n,\n _ = g.$as || t.$as || g.as || t.as || p,\n N = ke(_),\n A = g !== t ? v({}, t, {}, g) : t,\n C = {};\n for (var I in A) \"$\" !== I[0] && \"as\" !== I && (\"forwardedAs\" === I ? C.as = A[I] : (d ? d(I, m, _) : !N || m(I)) && (C[I] = A[I]));\n return t.style && g.style !== t.style && (C.style = v({}, t.style, {}, g.style)), C.className = Array.prototype.concat(c, h, S !== h ? S : null, t.className, g.className).filter(Boolean).join(\" \"), C.ref = w, /*#__PURE__*/u(_, C);\n }(C, e, t, P);\n };\n return O.displayName = f, (C = /*#__PURE__*/r.forwardRef(O)).attrs = S, C.componentStyle = I, C.displayName = f, C.shouldForwardProp = A, C.foldedComponentIds = o ? Array.prototype.concat(e.foldedComponentIds, e.styledComponentId) : w, C.styledComponentId = g, C.target = o ? e.target : e, C.withComponent = function (e) {\n var r = t.componentId,\n o = function (e, t) {\n if (null == e) return {};\n var n,\n r,\n o = {},\n s = Object.keys(e);\n for (r = 0; r < s.length; r++) n = s[r], t.indexOf(n) >= 0 || (o[n] = e[n]);\n return o;\n }(t, [\"componentId\"]),\n s = r && r + \"-\" + (ke(e) ? e : Te(_(e)));\n return qe(e, v({}, o, {\n attrs: S,\n componentId: s\n }), n);\n }, Object.defineProperty(C, \"defaultProps\", {\n get: function () {\n return this._foldedDefaultProps;\n },\n set: function (t) {\n this._foldedDefaultProps = o ? Me({}, e.defaultProps, t) : t;\n }\n }), \"production\" !== process.env.NODE_ENV && (Oe(f, g), C.warnTooManyClasses = function (e, t) {\n var n = {},\n r = !1;\n return function (o) {\n if (!r && (n[o] = !0, Object.keys(n).length >= 200)) {\n var s = t ? ' with the id of \"' + t + '\"' : \"\";\n console.warn(\"Over 200 classes were generated for component \" + e + s + \".\\nConsider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n \"), r = !0, n = {};\n }\n };\n }(f, g)), C.toString = function () {\n return \".\" + C.styledComponentId;\n }, i && y(C, e, {\n attrs: !0,\n componentStyle: !0,\n displayName: !0,\n foldedComponentIds: !0,\n shouldForwardProp: !0,\n styledComponentId: !0,\n target: !0,\n withComponent: !0\n }), C;\n}\nvar He = function (e) {\n return function e(t, r, o) {\n if (void 0 === o && (o = E), !n(r)) return j(1, String(r));\n var s = function () {\n return t(r, o, Ce.apply(void 0, arguments));\n };\n return s.withConfig = function (n) {\n return e(t, r, v({}, o, {}, n));\n }, s.attrs = function (n) {\n return e(t, r, v({}, o, {\n attrs: Array.prototype.concat(o.attrs, n).filter(Boolean)\n }));\n }, s;\n }(qe, e);\n};\n[\"a\", \"abbr\", \"address\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"base\", \"bdi\", \"bdo\", \"big\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"cite\", \"code\", \"col\", \"colgroup\", \"data\", \"datalist\", \"dd\", \"del\", \"details\", \"dfn\", \"dialog\", \"div\", \"dl\", \"dt\", \"em\", \"embed\", \"fieldset\", \"figcaption\", \"figure\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"iframe\", \"img\", \"input\", \"ins\", \"kbd\", \"keygen\", \"label\", \"legend\", \"li\", \"link\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meta\", \"meter\", \"nav\", \"noscript\", \"object\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"param\", \"picture\", \"pre\", \"progress\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"script\", \"section\", \"select\", \"small\", \"source\", \"span\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"title\", \"tr\", \"track\", \"u\", \"ul\", \"var\", \"video\", \"wbr\", \"circle\", \"clipPath\", \"defs\", \"ellipse\", \"foreignObject\", \"g\", \"image\", \"line\", \"linearGradient\", \"marker\", \"mask\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialGradient\", \"rect\", \"stop\", \"svg\", \"text\", \"textPath\", \"tspan\"].forEach(function (e) {\n He[e] = He(e);\n});\nvar $e = function () {\n function e(e, t) {\n this.rules = e, this.componentId = t, this.isStatic = re(e), Z.registerId(this.componentId + 1);\n }\n var t = e.prototype;\n return t.createStyles = function (e, t, n, r) {\n var o = r(Ne(this.rules, t, n, r).join(\"\"), \"\"),\n s = this.componentId + e;\n n.insertRules(s, s, o);\n }, t.removeStyles = function (e, t) {\n t.clearRules(this.componentId + e);\n }, t.renderStyles = function (e, t, n, r) {\n e > 2 && Z.registerId(this.componentId + e), this.removeStyles(e, n), this.createStyles(e, t, n, r);\n }, e;\n}();\nfunction We(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), o = 1; o < t; o++) n[o - 1] = arguments[o];\n var i = Ce.apply(void 0, [e].concat(n)),\n a = \"sc-global-\" + xe(JSON.stringify(i)),\n u = new $e(i, a);\n function l(e) {\n var t = fe(),\n n = me(),\n o = s(Ge),\n l = c(t.allocateGSInstance(a)).current;\n return \"production\" !== process.env.NODE_ENV && r.Children.count(e.children) && console.warn(\"The global style component \" + a + \" was given child JSX. createGlobalStyle does not render children.\"), \"production\" !== process.env.NODE_ENV && i.some(function (e) {\n return \"string\" == typeof e && -1 !== e.indexOf(\"@import\");\n }) && console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.\"), t.server && h(l, e, t, o, n), d(function () {\n if (!t.server) return h(l, e, t, o, n), function () {\n return u.removeStyles(l, t);\n };\n }, [l, e, t, o, n]), null;\n }\n function h(e, t, n, r, o) {\n if (u.isStatic) u.renderStyles(e, O, n, o);else {\n var s = v({}, t, {\n theme: Re(t, r, l.defaultProps)\n });\n u.renderStyles(e, s, n, o);\n }\n }\n return \"production\" !== process.env.NODE_ENV && Oe(a), /*#__PURE__*/r.memo(l);\n}\nfunction Ue(e) {\n \"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n var o = Ce.apply(void 0, [e].concat(n)).join(\"\"),\n s = xe(o);\n return new ve(s, o);\n}\nvar Je = function () {\n function e() {\n var e = this;\n this._emitSheetCSS = function () {\n var t = e.instance.toString();\n if (!t) return \"\";\n var n = q();\n return \"\";\n }, this.getStyleTags = function () {\n return e.sealed ? j(2) : e._emitSheetCSS();\n }, this.getStyleElement = function () {\n var t;\n if (e.sealed) return j(2);\n var n = ((t = {})[A] = \"\", t[\"data-styled-version\"] = \"5.3.6\", t.dangerouslySetInnerHTML = {\n __html: e.instance.toString()\n }, t),\n o = q();\n return o && (n.nonce = o), [/*#__PURE__*/r.createElement(\"style\", v({}, n, {\n key: \"sc-0-0\"\n }))];\n }, this.seal = function () {\n e.sealed = !0;\n }, this.instance = new Z({\n isServer: !0\n }), this.sealed = !1;\n }\n var t = e.prototype;\n return t.collectStyles = function (e) {\n return this.sealed ? j(2) : /*#__PURE__*/r.createElement(ye, {\n sheet: this.instance\n }, e);\n }, t.interleaveWithNodeStream = function (e) {\n return j(3);\n }, e;\n }(),\n Xe = function (e) {\n var t = /*#__PURE__*/r.forwardRef(function (t, n) {\n var o = s(Ge),\n i = e.defaultProps,\n a = Re(t, o, i);\n return \"production\" !== process.env.NODE_ENV && void 0 === a && console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + _(e) + '\"'), /*#__PURE__*/r.createElement(e, v({}, t, {\n theme: a,\n ref: n\n }));\n });\n return y(t, e), t.displayName = \"WithTheme(\" + _(e) + \")\", t;\n },\n Ze = function () {\n return s(Ge);\n },\n Ke = {\n StyleSheet: Z,\n masterSheet: he\n };\n\"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"), \"production\" !== process.env.NODE_ENV && \"test\" !== process.env.NODE_ENV && \"undefined\" != typeof window && (window[\"__styled-components-init__\"] = window[\"__styled-components-init__\"] || 0, 1 === window[\"__styled-components-init__\"] && console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"), window[\"__styled-components-init__\"] += 1);\nexport default He;\nexport { Je as ServerStyleSheet, le as StyleSheetConsumer, ue as StyleSheetContext, ye as StyleSheetManager, Le as ThemeConsumer, Ge as ThemeContext, Fe as ThemeProvider, Ke as __PRIVATE__, We as createGlobalStyle, Ce as css, N as isStyledComponent, Ue as keyframes, Ze as useTheme, C as version, Xe as withTheme };","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar react_1 = require(\"react\");\n/**\n * Determines if the given param is an object. {}\n * @param obj\n */\nexports.isObject = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}; // eslint-disable-line\nvar useMounted = function () {\n var mounted = react_1.useRef(false);\n react_1.useEffect(function () {\n mounted.current = true;\n return function () {\n mounted.current = false;\n };\n }, []);\n return mounted;\n};\nfunction useRefState(initialState, blockIfUnmounted) {\n if (blockIfUnmounted === void 0) {\n blockIfUnmounted = true;\n }\n var mounted = useMounted();\n var _a = react_1.useState(initialState),\n reactState = _a[0],\n setReactState = _a[1];\n var state = react_1.useRef(reactState);\n var setState = react_1.useCallback(function (arg) {\n if (!mounted.current && blockIfUnmounted) return;\n state.current = typeof arg === 'function' ? arg(state.current) : arg;\n setReactState(state.current);\n }, []);\n return [state, setState];\n}\nexports.useRefState = useRefState;\nexports.default = useRefState;","export var HTTPMethod;\n(function (HTTPMethod) {\n HTTPMethod[\"DELETE\"] = \"DELETE\";\n HTTPMethod[\"GET\"] = \"GET\";\n HTTPMethod[\"HEAD\"] = \"HEAD\";\n HTTPMethod[\"OPTIONS\"] = \"OPTIONS\";\n HTTPMethod[\"PATCH\"] = \"PATCH\";\n HTTPMethod[\"POST\"] = \"POST\";\n HTTPMethod[\"PUT\"] = \"PUT\";\n HTTPMethod[\"CONNECT\"] = \"CONNECT\";\n HTTPMethod[\"TRACE\"] = \"TRACE\";\n})(HTTPMethod || (HTTPMethod = {}));\n// https://www.apollographql.com/docs/react/api/react/hoc/#optionsfetchpolicy\nexport var CachePolicies;\n(function (CachePolicies) {\n /**\n * This is the default value where we always try reading data\n * from your cache first. If all the data needed to fulfill\n * your query is in the cache then that data will be returned.\n * useFetch will only fetch from the network if a cached result\n * is not available. This fetch policy aims to minimize the number\n * of network requests sent when rendering your component.\n */\n CachePolicies[\"CACHE_FIRST\"] = \"cache-first\";\n /**\n * This fetch policy will have useFetch first trying to read data\n * from your cache. If all the data needed to fulfill your query\n * is in the cache then that data will be returned. However,\n * regardless of whether or not the full data is in your cache\n * this fetchPolicy will always execute query with the network\n * interface unlike cache-first which will only execute your query\n * if the query data is not in your cache. This fetch policy optimizes\n * for users getting a quick response while also trying to keep\n * cached data consistent with your server data at the cost of extra\n * network requests.\n */\n CachePolicies[\"CACHE_AND_NETWORK\"] = \"cache-and-network\";\n /**\n * This fetch policy will never return your initial data from the\n * cache. Instead it will always make a request using your network\n * interface to the server. This fetch policy optimizes for data\n * consistency with the server, but at the cost of an instant response\n * to the user when one is available.\n */\n CachePolicies[\"NETWORK_ONLY\"] = \"network-only\";\n /**\n * This fetch policy will never execute a query using your network\n * interface. Instead it will always try reading from the cache. If the\n * data for your query does not exist in the cache then an error will be\n * thrown. This fetch policy allows you to only interact with data in\n * your local client cache without making any network requests which\n * keeps your component fast, but means your local data might not be\n * consistent with what is on the server.\n */\n CachePolicies[\"CACHE_ONLY\"] = \"cache-only\";\n /**\n * This fetch policy will never return your initial data from the cache.\n * Instead it will always make a request using your network interface to\n * the server. Unlike the network-only policy, it also will not write\n * any data to the cache after the query completes.\n */\n CachePolicies[\"NO_CACHE\"] = \"no-cache\";\n CachePolicies[\"EXACT_CACHE_AND_NETWORK\"] = \"exact-cache-and-network\";\n})(CachePolicies || (CachePolicies = {}));","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nimport { useMemo, useEffect, useRef, useCallback } from 'react';\nimport useSSR from 'use-ssr';\n/**\n * Used for error checking. If the condition is false, throw an error\n */\nexport function invariant(condition, format, a, b, c, d, e, f) {\n if (a === void 0) {\n a = '';\n }\n if (b === void 0) {\n b = '';\n }\n if (c === void 0) {\n c = '';\n }\n if (d === void 0) {\n d = '';\n }\n if (e === void 0) {\n e = '';\n }\n if (f === void 0) {\n f = '';\n }\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n if (!condition) {\n var error = void 0;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args_1 = [a, b, c, d, e, f];\n var argIndex_1 = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args_1[argIndex_1++];\n }));\n error.name = 'Invariant Violation';\n }\n throw error;\n }\n}\nexport var useExampleURL = function () {\n var isBrowser = useSSR().isBrowser;\n return useMemo(function () {\n return isBrowser ? window.location.origin : 'https://example.com';\n }, [isBrowser]);\n};\nexport function useURLRequiredInvariant(condition, method, optionalMessage) {\n var exampleURL = useExampleURL();\n useEffect(function () {\n invariant(condition, method + \" requires a URL to be set as the 1st argument,\\n\\n unless you wrap your app like:\\n\\n \\n\\n \" + optionalMessage);\n }, [condition, exampleURL, method, optionalMessage]);\n}\nexport var isString = function (x) {\n return typeof x === 'string';\n}; // eslint-disable-line\n/**\n * Determines if the given param is an object. {}\n * @param obj\n */\nexport var isObject = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}; // eslint-disable-line\n/**\n * Determines if the given param is an object that can be used as a request body.\n * Returns true for native objects or arrays.\n * @param obj\n */\nexport var isBodyObject = function (obj) {\n return isObject(obj) || Array.isArray(obj);\n};\nexport var isFunction = function (v) {\n return typeof v === 'function';\n};\nexport var isNumber = function (v) {\n return Object.prototype.toString.call(v) === '[object Number]';\n};\n// const requestFields = Object.getOwnPropertyNames(Object.getPrototypeOf(new Request('')))\n// const responseFields = Object.getOwnPropertyNames(Object.getPrototypeOf(new Response()))\n// export const customResponseFields = [...responseFields, 'data']\n// TODO: come back and fix the \"anys\" in this http://bit.ly/2Lm3OLi\n/**\n * Makes an object that will match the standards of a normal fetch's options\n * aka: pulls out all useFetch's special options like \"onMount\"\n */\nexport var pullOutRequestInit = function (options) {\n if (!options) return {};\n var requestInitFields = ['body', 'cache', 'credentials', 'headers', 'integrity', 'keepalive', 'method', 'mode', 'redirect', 'referrer', 'referrerPolicy', 'signal', 'window'];\n return requestInitFields.reduce(function (acc, key) {\n if (key in options) acc[key] = options[key];\n return acc;\n }, {});\n};\nexport var isEmpty = function (x) {\n return x === undefined || x === null;\n};\nexport var Device;\n(function (Device) {\n Device[\"Browser\"] = \"browser\";\n Device[\"Server\"] = \"server\";\n Device[\"Native\"] = \"native\";\n})(Device || (Device = {}));\nvar Browser = Device.Browser,\n Server = Device.Server,\n Native = Device.Native;\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar canUseNative = typeof navigator !== 'undefined' && navigator.product === 'ReactNative';\nvar device = canUseNative ? Native : canUseDOM ? Browser : Server;\nexport var isBrowser = device === Browser;\nexport var isServer = device === Server;\nexport var isNative = device === Native;\nexport var tryGetData = function (res, defaultData, responseType) {\n return __awaiter(void 0, void 0, void 0, function () {\n var types, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (typeof res === 'undefined') throw Error('Response cannot be undefined... 😵');\n if (typeof responseType === 'undefined') throw Error('responseType cannot be undefined... 😵');\n types = Array.isArray(responseType) ? responseType : [responseType];\n if (types[0] == null) throw Error('could not parse data from response 😵');\n return [4 /*yield*/, tryRetry(res, types)];\n case 1:\n data = _a.sent();\n return [2 /*return*/, !isEmpty(defaultData) && isEmpty(data) ? defaultData : data];\n }\n });\n });\n};\nvar tryRetry = function (res, types, i) {\n if (i === void 0) {\n i = 0;\n }\n return __awaiter(void 0, void 0, void 0, function () {\n var error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2,, 3]);\n return [4 /*yield*/, res.clone()[types[i]]()];\n case 1:\n return [2 /*return*/, _a.sent()];\n case 2:\n error_1 = _a.sent();\n if (types.length - 1 === i) throw error_1;\n return [2 /*return*/, tryRetry(res.clone(), types, ++i)];\n case 3:\n return [2 /*return*/];\n }\n });\n });\n};\n\nexport var responseFields = ['headers', 'ok', 'redirected', 'trailer', 'status', 'statusText', 'type', 'url', 'body', 'bodyUsed', 'data'];\nexport var responseMethods = ['clone', 'arrayBuffer', 'blob', 'formData', 'json', 'text'];\nexport var responseKeys = __spreadArrays(responseFields, responseMethods);\nexport var toResponseObject = function (res, data) {\n return Object.defineProperties({}, responseKeys.reduce(function (acc, field) {\n if (responseFields.includes(field)) {\n acc[field] = {\n get: function () {\n var response = res instanceof Response ? res : res && res.current;\n if (!response) return;\n if (field === 'data') return data.current;\n var clonedResponse = 'clone' in response ? response.clone() : {};\n return clonedResponse[field];\n },\n enumerable: true\n };\n } else if (responseMethods.includes(field)) {\n acc[field] = {\n value: function () {\n var response = res instanceof Response ? res : res && res.current;\n if (!response) return;\n var clonedResponse = 'clone' in response ? response.clone() : {};\n return clonedResponse[field]();\n },\n enumerable: true\n };\n }\n return acc;\n }, {}));\n};\nexport var emptyCustomResponse = toResponseObject();\n// TODO: switch this to .reduce()\nvar headersAsObject = function (headers) {\n var obj = {};\n headers.forEach(function (value, key) {\n obj[key] = value;\n });\n return obj;\n};\nexport var serializeResponse = function (response) {\n return __awaiter(void 0, void 0, void 0, function () {\n var body, status, statusText, headers;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, response.text()];\n case 1:\n body = _a.sent();\n status = response.status, statusText = response.statusText;\n headers = headersAsObject(response.headers);\n return [2 /*return*/, {\n body: body,\n status: status,\n statusText: statusText,\n headers: headers\n }];\n }\n });\n });\n};\nfunction useDeepCompareMemoize(value) {\n var ref = useRef();\n if (JSON.stringify(value) !== JSON.stringify(ref.current)) ref.current = value;\n return ref.current;\n}\nexport var useDeepCallback = function (cb, deps) {\n return useCallback(cb, useDeepCompareMemoize(deps));\n};\nexport var sleep = function (ms) {\n return new Promise(function (resolve) {\n return setTimeout(resolve, ms);\n });\n};\nexport var isPositiveNumber = function (n) {\n return Number.isInteger(n) && n > 0;\n};\nexport var makeError = function (name, message) {\n var error = new Error(message);\n error.name = name + '';\n return error;\n};\n/**\n * Determines if we need to add a slash to front\n * of a path, and adds it if we do.\n * Cases:\n * (path = '', url = '' || null | undefined) => ''\n * (path = '?foo=bar', url = 'a.com') => '?foo=bar'\n * (path = '?foo=bar', url = 'a.com/') => '?foo=bar'\n * (path = 'bar', url = 'a.com/?foo=') => 'bar'\n * (path = 'foo', url = 'a.com') => '/foo'\n * (path = 'foo', url = 'a.com/') => 'foo'\n * (path = '/foo', url = 'a.com') => '/foo'\n * (path = '/foo', url = 'a.com/') => 'foo'\n * (path = '?foo=bar') => '?foo=bar'\n * (path = 'foo') => '/foo'\n * (path = '/foo') => '/foo'\n * (path = '&foo=bar', url = 'a.com?b=k') => '&foo=bar'\n * (path = '&foo=bar') => '&foo=bar'\n */\nexport var addSlash = function (input, url) {\n if (!input) return '';\n if (!url) {\n if (input.startsWith('?') || input.startsWith('&') || input.startsWith('/')) return input;\n return \"/\" + input;\n }\n if (url.endsWith('/') && input.startsWith('/')) return input.substr(1);\n if (!url.endsWith('/') && !input.startsWith('/') && !input.startsWith('?') && !input.startsWith('&') && !url.includes('?')) return \"/\" + input;\n return input;\n};","import { createContext } from 'react';\nexport var FetchContext = /*#__PURE__*/createContext({\n url: '',\n options: {},\n graphql: false // TODO: this will make it so useFetch(QUERY || MUTATION) will work\n});\n\nexport default FetchContext;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { CachePolicies } from './types';\nimport { isObject } from './utils';\nexport var useFetchArgsDefaults = {\n host: '',\n path: undefined,\n customOptions: {\n cacheLife: 0,\n cachePolicy: CachePolicies.CACHE_FIRST,\n interceptors: {},\n onAbort: function () {},\n onError: function () {},\n onNewData: function (currData, newData) {\n return newData;\n },\n onTimeout: function () {},\n perPage: 0,\n persist: false,\n responseType: ['json', 'text', 'blob', 'arrayBuffer'],\n retries: 0,\n retryDelay: 1000,\n retryOn: [],\n suspense: false,\n timeout: 0,\n // defaults\n data: undefined,\n loading: false\n },\n requestInit: {\n headers: {\n Accept: 'application/json, text/plain, */*'\n }\n },\n dependencies: undefined\n};\nexport default Object.entries(useFetchArgsDefaults).reduce(function (acc, _a) {\n var _b;\n var key = _a[0],\n value = _a[1];\n if (isObject(value)) return __assign(__assign({}, acc), value);\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n}, {});","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { isString, isObject, invariant, pullOutRequestInit, isFunction, isPositiveNumber } from './utils';\nimport { useContext, useMemo } from 'react';\nimport FetchContext from './FetchContext';\nimport defaults, { useFetchArgsDefaults } from './defaults';\nexport default function useFetchArgs(urlOrPathOrOptionsOrOverwriteGlobalOptions, optionsOrOverwriteGlobalOrDeps, deps) {\n invariant(!(isObject(urlOrPathOrOptionsOrOverwriteGlobalOptions) && isObject(optionsOrOverwriteGlobalOrDeps)), 'You cannot have a 2nd parameter of useFetch as object when your first argument is an object.');\n var context = useContext(FetchContext);\n var host = useMemo(function () {\n var maybeHost = urlOrPathOrOptionsOrOverwriteGlobalOptions;\n if (isString(maybeHost) && maybeHost.includes('://')) return maybeHost;\n if (context.url) return context.url;\n return defaults.host;\n }, [context.url, urlOrPathOrOptionsOrOverwriteGlobalOptions]);\n var path = useMemo(function () {\n var maybePath = urlOrPathOrOptionsOrOverwriteGlobalOptions;\n if (isString(maybePath) && !maybePath.includes('://')) return maybePath;\n }, [urlOrPathOrOptionsOrOverwriteGlobalOptions]);\n var overwriteGlobalOptions = useMemo(function () {\n if (isFunction(urlOrPathOrOptionsOrOverwriteGlobalOptions)) return urlOrPathOrOptionsOrOverwriteGlobalOptions;\n if (isFunction(optionsOrOverwriteGlobalOrDeps)) return optionsOrOverwriteGlobalOrDeps;\n }, []);\n var options = useMemo(function () {\n var localOptions = {\n headers: {}\n };\n if (isObject(urlOrPathOrOptionsOrOverwriteGlobalOptions)) {\n localOptions = urlOrPathOrOptionsOrOverwriteGlobalOptions;\n } else if (isObject(optionsOrOverwriteGlobalOrDeps)) {\n localOptions = optionsOrOverwriteGlobalOrDeps;\n }\n var globalOptions = context.options;\n var finalOptions = __assign(__assign(__assign(__assign({}, defaults), globalOptions), localOptions), {\n headers: __assign(__assign(__assign({}, defaults.headers), globalOptions.headers), localOptions.headers),\n interceptors: __assign(__assign(__assign({}, defaults.interceptors), globalOptions.interceptors), localOptions.interceptors)\n });\n if (overwriteGlobalOptions) return overwriteGlobalOptions(finalOptions);\n return finalOptions;\n }, [urlOrPathOrOptionsOrOverwriteGlobalOptions, overwriteGlobalOptions, context.options]);\n var requestInit = useMemo(function () {\n return pullOutRequestInit(options);\n }, [options]);\n var dependencies = useMemo(function () {\n if (Array.isArray(optionsOrOverwriteGlobalOrDeps)) return optionsOrOverwriteGlobalOrDeps;\n if (Array.isArray(deps)) return deps;\n return defaults.dependencies;\n }, [optionsOrOverwriteGlobalOrDeps, deps]);\n var cacheLife = options.cacheLife,\n retries = options.retries,\n retryDelay = options.retryDelay,\n retryOn = options.retryOn;\n invariant(Number.isInteger(cacheLife) && cacheLife >= 0, '`cacheLife` must be a number >= 0');\n invariant(Number.isInteger(retries) && retries >= 0, '`retries` must be a number >= 0');\n invariant(isFunction(retryDelay) || Number.isInteger(retryDelay) && retryDelay >= 0, '`retryDelay` must be a positive number or a function returning a positive number.');\n var isValidRetryOn = isFunction(retryOn) || Array.isArray(retryOn) && retryOn.every(isPositiveNumber);\n invariant(isValidRetryOn, '`retryOn` must be an array of positive numbers or a function returning a boolean.');\n var loading = options.loading || Array.isArray(dependencies);\n var interceptors = useMemo(function () {\n var final = {};\n if ('request' in options.interceptors) final.request = options.interceptors.request;\n if ('response' in options.interceptors) final.response = options.interceptors.response;\n return final;\n }, [options]);\n var customOptions = useMemo(function () {\n var customOptionKeys = Object.keys(useFetchArgsDefaults.customOptions); // Array\n var customOptions = customOptionKeys.reduce(function (opts, key) {\n opts[key] = options[key];\n return opts;\n }, {});\n return __assign(__assign({}, customOptions), {\n interceptors: interceptors,\n loading: loading\n });\n }, [interceptors, loading]);\n return {\n host: host,\n path: path,\n customOptions: customOptions,\n requestInit: requestInit,\n dependencies: dependencies\n };\n}","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\nimport { HTTPMethod } from './types';\nimport { invariant, isServer, isString, isBodyObject, addSlash } from './utils';\nvar GET = HTTPMethod.GET;\nexport default function doFetchArgs(initialOptions, method, controller, cacheLife, cache, host, path, routeOrBody, bodyAs2ndParam, requestInterceptor) {\n return __awaiter(this, void 0, void 0, function () {\n var route, url, body, headers, options, responseID, _a, _b;\n var _this = this;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n invariant(!(isBodyObject(routeOrBody) && isBodyObject(bodyAs2ndParam)), \"If first argument of \" + method.toLowerCase() + \"() is an object, you cannot have a 2nd argument. \\uD83D\\uDE1C\");\n invariant(!(method === GET && isBodyObject(routeOrBody)), 'You can only have query params as 1st argument of request.get()');\n invariant(!(method === GET && bodyAs2ndParam !== undefined), 'You can only have query params as 1st argument of request.get()');\n route = function () {\n if (!isServer && routeOrBody instanceof URLSearchParams) return \"?\" + routeOrBody;\n if (isString(routeOrBody)) return routeOrBody;\n return '';\n }();\n url = \"\" + host + addSlash(path, host) + addSlash(route);\n body = function () {\n // FormData instanceof check should go first, because React Native's FormData implementation\n // is indistinguishable from plain object when using isBodyObject check\n if (routeOrBody instanceof FormData) return routeOrBody;\n if (isBodyObject(routeOrBody)) return JSON.stringify(routeOrBody);\n if (!isServer && (bodyAs2ndParam instanceof FormData || bodyAs2ndParam instanceof URLSearchParams)) return bodyAs2ndParam;\n if (isBodyObject(bodyAs2ndParam) || isString(bodyAs2ndParam)) return JSON.stringify(bodyAs2ndParam);\n if (isBodyObject(initialOptions.body) || isString(bodyAs2ndParam)) return JSON.stringify(initialOptions.body);\n return null;\n }();\n headers = function () {\n var contentType = (initialOptions.headers || {})['Content-Type'];\n var shouldAddContentType = !!contentType || [HTTPMethod.POST, HTTPMethod.PUT, HTTPMethod.PATCH].includes(method) && !(body instanceof FormData);\n var headers = __assign({}, initialOptions.headers);\n if (shouldAddContentType) {\n // default content types http://bit.ly/2N2ovOZ\n // Accept: 'application/json',\n // roughly, should only add for POST and PUT http://bit.ly/2NJNt3N\n // unless specified by the user\n headers['Content-Type'] = contentType || 'application/json';\n } else if (Object.keys(headers).length === 0) {\n return null;\n }\n return headers;\n }();\n return [4 /*yield*/, function () {\n return __awaiter(_this, void 0, void 0, function () {\n var opts, interceptor;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n opts = __assign(__assign({}, initialOptions), {\n method: method,\n signal: controller.signal\n });\n if (headers !== null) {\n opts.headers = headers;\n } else {\n delete opts.headers;\n }\n if (body !== null) opts.body = body;\n if (!requestInterceptor) return [3 /*break*/, 2];\n return [4 /*yield*/, requestInterceptor({\n options: opts,\n url: host,\n path: path,\n route: route\n })];\n case 1:\n interceptor = _a.sent();\n return [2 /*return*/, interceptor];\n case 2:\n return [2 /*return*/, opts];\n }\n });\n });\n }()\n // TODO: if the body is a file, and this is a large file, it might exceed the size\n // limit of the key size. Potential solution: base64 the body\n // used to tell if a request has already been made\n ];\n\n case 1:\n options = _c.sent();\n responseID = Object.entries({\n url: url,\n method: method,\n body: options.body || ''\n }).map(function (_a) {\n var key = _a[0],\n value = _a[1];\n return key + \":\" + value;\n }).join('||');\n _a = {\n url: url,\n options: options\n };\n _b = {};\n return [4 /*yield*/, cache.has(responseID)];\n case 2:\n _b.isCached = _c.sent(), _b.id = responseID;\n return [4 /*yield*/, cache.get(responseID)];\n case 3:\n return [2 /*return*/, (_a.response = (_b.cached = _c.sent(), _b), _a)];\n }\n });\n });\n}","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\nimport { serializeResponse } from '../utils';\nvar cacheName = 'useHTTPcache';\nvar getCache = function () {\n try {\n return JSON.parse(localStorage.getItem(cacheName) || '{}');\n } catch (err) {\n localStorage.removeItem(cacheName);\n return {};\n }\n};\nvar getLocalStorage = function (_a) {\n var cacheLife = _a.cacheLife;\n var remove = function () {\n var responseIDs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n responseIDs[_i] = arguments[_i];\n }\n return __awaiter(void 0, void 0, void 0, function () {\n var cache;\n return __generator(this, function (_a) {\n cache = getCache();\n responseIDs.forEach(function (id) {\n return delete cache[id];\n });\n localStorage.setItem(cacheName, JSON.stringify(cache));\n return [2 /*return*/];\n });\n });\n };\n\n var isExpired = function (responseID) {\n var cache = getCache();\n var _a = cache[responseID] || {},\n expiration = _a.expiration,\n response = _a.response;\n var expired = expiration > 0 && expiration < Date.now();\n if (expired) remove(responseID);\n return expired || !response;\n };\n var has = function (responseID) {\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, !isExpired(responseID)];\n });\n });\n };\n var get = function (responseID) {\n return __awaiter(void 0, void 0, void 0, function () {\n var cache, _a, body, headers, status, statusText;\n return __generator(this, function (_b) {\n if (isExpired(responseID)) return [2 /*return*/];\n cache = getCache();\n _a = cache[responseID].response, body = _a.body, headers = _a.headers, status = _a.status, statusText = _a.statusText;\n return [2 /*return*/, new Response(body, {\n status: status,\n statusText: statusText,\n headers: new Headers(headers || {})\n })];\n });\n });\n };\n var set = function (responseID, response) {\n return __awaiter(void 0, void 0, void 0, function () {\n var cache, _a, _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n cache = getCache();\n _a = cache;\n _b = responseID;\n _c = {};\n return [4 /*yield*/, serializeResponse(response)];\n case 1:\n _a[_b] = (_c.response = _d.sent(), _c.expiration = Date.now() + cacheLife, _c);\n localStorage.setItem(cacheName, JSON.stringify(cache));\n return [2 /*return*/];\n }\n });\n });\n };\n\n var clear = function () {\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n localStorage.setItem(cacheName, JSON.stringify({}));\n return [2 /*return*/];\n });\n });\n };\n\n return Object.defineProperties(getCache(), {\n get: {\n value: get,\n writable: false\n },\n set: {\n value: set,\n writable: false\n },\n has: {\n value: has,\n writable: false\n },\n delete: {\n value: remove,\n writable: false\n },\n clear: {\n value: clear,\n writable: false\n }\n });\n};\nexport default getLocalStorage;","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\nvar inMemoryStorage = {};\nvar getMemoryStorage = function (_a) {\n var cacheLife = _a.cacheLife;\n var remove = function () {\n var responseIDs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n responseIDs[_i] = arguments[_i];\n }\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, responseIDs_1, responseID;\n return __generator(this, function (_b) {\n for (_a = 0, responseIDs_1 = responseIDs; _a < responseIDs_1.length; _a++) {\n responseID = responseIDs_1[_a];\n delete inMemoryStorage[responseID];\n delete inMemoryStorage[responseID + \":ts\"];\n }\n return [2 /*return*/];\n });\n });\n };\n\n var isExpired = function (responseID) {\n var expiration = inMemoryStorage[responseID + \":ts\"];\n var expired = expiration > 0 && expiration < Date.now();\n if (expired) remove(responseID);\n return expired || !inMemoryStorage[responseID];\n };\n var get = function (responseID) {\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (isExpired(responseID)) return [2 /*return*/];\n return [2 /*return*/, inMemoryStorage[responseID]];\n });\n });\n };\n var set = function (responseID, res) {\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n inMemoryStorage[responseID] = res;\n inMemoryStorage[responseID + \":ts\"] = cacheLife > 0 ? Date.now() + cacheLife : 0;\n return [2 /*return*/];\n });\n });\n };\n\n var has = function (responseID) {\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, !isExpired(responseID)];\n });\n });\n };\n var clear = function () {\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n inMemoryStorage = {};\n return [2 /*return*/];\n });\n });\n };\n\n return Object.defineProperties(inMemoryStorage, {\n get: {\n value: get,\n writable: false,\n configurable: true\n },\n set: {\n value: set,\n writable: false,\n configurable: true\n },\n has: {\n value: has,\n writable: false,\n configurable: true\n },\n delete: {\n value: remove,\n writable: false,\n configurable: true\n },\n clear: {\n value: clear,\n writable: false,\n configurable: true\n }\n });\n};\nexport default getMemoryStorage;","import useSSR from 'use-ssr';\nimport { invariant } from './utils';\nimport { CachePolicies } from './types';\nimport getLocalStorage from './storage/localStorage';\nimport getMemoryStorage from './storage/memoryStorage';\nvar NETWORK_ONLY = CachePolicies.NETWORK_ONLY,\n NO_CACHE = CachePolicies.NO_CACHE;\nvar useCache = function (_a) {\n var persist = _a.persist,\n cacheLife = _a.cacheLife,\n cachePolicy = _a.cachePolicy;\n var _b = useSSR(),\n isNative = _b.isNative,\n isServer = _b.isServer;\n invariant(!(isServer && persist), 'There is no persistent storage on the Server currently! 🙅‍♂️');\n invariant(!(isNative && persist), 'React Native support for persistent cache is not yet implemented. 🙅‍♂️');\n invariant(!(persist && [NO_CACHE, NETWORK_ONLY].includes(cachePolicy)), \"You cannot use option 'persist' with cachePolicy: \" + cachePolicy + \" \\uD83D\\uDE45\\u200D\\u2642\\uFE0F\");\n // right now we're not worrying about react-native\n if (persist) return getLocalStorage({\n cacheLife: cacheLife || 24 * 3600000\n });\n return getMemoryStorage({\n cacheLife: cacheLife\n });\n};\nexport default useCache;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { useEffect, useCallback, useRef, useReducer, useMemo } from 'react';\nimport useSSR from 'use-ssr';\nimport useRefState from 'urs';\nimport { HTTPMethod, CachePolicies } from './types';\nimport useFetchArgs from './useFetchArgs';\nimport doFetchArgs from './doFetchArgs';\nimport { invariant, tryGetData, toResponseObject, useDeepCallback, isFunction, sleep, makeError } from './utils';\nimport useCache from './useCache';\nvar CACHE_FIRST = CachePolicies.CACHE_FIRST;\nfunction useFetch() {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _a = useFetchArgs.apply(void 0, args),\n host = _a.host,\n path = _a.path,\n customOptions = _a.customOptions,\n requestInit = _a.requestInit,\n dependencies = _a.dependencies;\n var cacheLife = customOptions.cacheLife,\n cachePolicy = customOptions.cachePolicy,\n // 'cache-first' by default\n interceptors = customOptions.interceptors,\n onAbort = customOptions.onAbort,\n onError = customOptions.onError,\n onNewData = customOptions.onNewData,\n onTimeout = customOptions.onTimeout,\n perPage = customOptions.perPage,\n persist = customOptions.persist,\n responseType = customOptions.responseType,\n retries = customOptions.retries,\n retryDelay = customOptions.retryDelay,\n retryOn = customOptions.retryOn,\n suspense = customOptions.suspense,\n timeout = customOptions.timeout,\n defaults = __rest(customOptions, [\"cacheLife\", \"cachePolicy\", \"interceptors\", \"onAbort\", \"onError\", \"onNewData\", \"onTimeout\", \"perPage\", \"persist\", \"responseType\", \"retries\", \"retryDelay\", \"retryOn\", \"suspense\", \"timeout\"]);\n var cache = useCache({\n persist: persist,\n cacheLife: cacheLife,\n cachePolicy: cachePolicy\n });\n var isServer = useSSR().isServer;\n var controller = useRef();\n var res = useRef({});\n var data = useRef(defaults.data);\n var timedout = useRef(false);\n var attempt = useRef(0);\n var error = useRef();\n var hasMore = useRef(true);\n var suspenseStatus = useRef('pending');\n var suspender = useRef();\n var mounted = useRef(false);\n var _b = useRefState(defaults.loading),\n loading = _b[0],\n setLoading = _b[1];\n var forceUpdate = useReducer(function () {\n return {};\n }, [])[1];\n var makeFetch = useDeepCallback(function (method) {\n var doFetch = function (routeOrBody, body) {\n return __awaiter(_this, void 0, void 0, function () {\n var theController, _a, url, options, response, timer, newData, newRes, _b, _c, opts, shouldRetry, _d, _e, theData, err_1, opts, shouldRetry, _f, _g, theData;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n if (isServer) return [2 /*return*/]; // for now, we don't do anything on the server\n controller.current = new AbortController();\n controller.current.signal.onabort = onAbort;\n theController = controller.current;\n return [4 /*yield*/, doFetchArgs(requestInit, method, theController, cacheLife, cache, host, path, routeOrBody, body, interceptors.request)];\n case 1:\n _a = _h.sent(), url = _a.url, options = _a.options, response = _a.response;\n error.current = undefined;\n // don't perform the request if there is no more data to fetch (pagination)\n if (perPage > 0 && !hasMore.current && !error.current) return [2 /*return*/, data.current];\n if (!suspense) setLoading(true);\n timer = timeout && setTimeout(function () {\n timedout.current = true;\n theController.abort();\n if (onTimeout) onTimeout();\n }, timeout);\n _h.label = 2;\n case 2:\n _h.trys.push([2, 17, 23, 24]);\n if (!(response.isCached && cachePolicy === CACHE_FIRST)) return [3 /*break*/, 3];\n newRes = response.cached;\n return [3 /*break*/, 5];\n case 3:\n return [4 /*yield*/, fetch(url, options)];\n case 4:\n newRes = _h.sent().clone();\n _h.label = 5;\n case 5:\n res.current = newRes.clone();\n return [4 /*yield*/, tryGetData(newRes, defaults.data, responseType)];\n case 6:\n newData = _h.sent();\n res.current.data = onNewData(data.current, newData);\n _b = res;\n if (!interceptors.response) return [3 /*break*/, 8];\n return [4 /*yield*/, interceptors.response({\n response: res.current,\n request: requestInit\n })];\n case 7:\n _c = _h.sent();\n return [3 /*break*/, 9];\n case 8:\n _c = res.current;\n _h.label = 9;\n case 9:\n _b.current = _c;\n invariant('data' in res.current, 'You must have `data` field on the Response returned from your `interceptors.response`');\n data.current = res.current.data;\n opts = {\n attempt: attempt.current,\n response: newRes\n };\n // if we just have `retries` set with NO `retryOn` then\n // automatically retry on fail until attempts run out\n _d = !isFunction(retryOn) && Array.isArray(retryOn) && retryOn.length < 1 && (newRes === null || newRes === void 0 ? void 0 : newRes.ok) === false\n // otherwise only retry when is specified\n || Array.isArray(retryOn) && retryOn.includes(newRes.status);\n if (_d)\n // if we just have `retries` set with NO `retryOn` then\n // automatically retry on fail until attempts run out\n return [3 /*break*/, 12];\n _e = isFunction(retryOn);\n if (!_e) return [3 /*break*/, 11];\n return [4 /*yield*/, retryOn(opts)];\n case 10:\n _e = _h.sent();\n _h.label = 11;\n case 11:\n _d = _e;\n _h.label = 12;\n case 12:\n shouldRetry = _d && retries > 0 && retries > attempt.current;\n if (!shouldRetry) return [3 /*break*/, 14];\n return [4 /*yield*/, retry(opts, routeOrBody, body)];\n case 13:\n theData = _h.sent();\n return [2 /*return*/, theData];\n case 14:\n if (!(cachePolicy === CACHE_FIRST && !response.isCached)) return [3 /*break*/, 16];\n return [4 /*yield*/, cache.set(response.id, newRes.clone())];\n case 15:\n _h.sent();\n _h.label = 16;\n case 16:\n if (Array.isArray(data.current) && !!(data.current.length % perPage)) hasMore.current = false;\n return [3 /*break*/, 24];\n case 17:\n err_1 = _h.sent();\n if (attempt.current >= retries && timedout.current) error.current = makeError('AbortError', 'Timeout Error');\n opts = {\n attempt: attempt.current,\n error: err_1\n };\n // if we just have `retries` set with NO `retryOn` then\n // automatically retry on fail until attempts run out\n _f = !isFunction(retryOn) && Array.isArray(retryOn) && retryOn.length < 1;\n if (_f)\n // if we just have `retries` set with NO `retryOn` then\n // automatically retry on fail until attempts run out\n return [3 /*break*/, 20];\n _g = isFunction(retryOn);\n if (!_g) return [3 /*break*/, 19];\n return [4 /*yield*/, retryOn(opts)];\n case 18:\n _g = _h.sent();\n _h.label = 19;\n case 19:\n _f = _g;\n _h.label = 20;\n case 20:\n shouldRetry = _f && retries > 0 && retries > attempt.current;\n if (!shouldRetry) return [3 /*break*/, 22];\n return [4 /*yield*/, retry(opts, routeOrBody, body)];\n case 21:\n theData = _h.sent();\n return [2 /*return*/, theData];\n case 22:\n if (err_1.name !== 'AbortError') {\n error.current = err_1;\n }\n return [3 /*break*/, 24];\n case 23:\n timedout.current = false;\n if (timer) clearTimeout(timer);\n controller.current = undefined;\n return [7 /*endfinally*/];\n case 24:\n if (newRes && !newRes.ok && !error.current) error.current = makeError(newRes.status, newRes.statusText);\n if (!suspense) setLoading(false);\n if (attempt.current === retries) attempt.current = 0;\n if (error.current) onError({\n error: error.current\n });\n return [2 /*return*/, data.current];\n }\n });\n });\n }; // end of doFetch()\n var retry = function (opts, routeOrBody, body) {\n return __awaiter(_this, void 0, void 0, function () {\n var delay, d;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n delay = isFunction(retryDelay) ? retryDelay(opts) : retryDelay;\n if (!(Number.isInteger(delay) && delay >= 0)) {\n console.error('retryDelay must be a number >= 0! If you\\'re using it as a function, it must also return a number >= 0.');\n }\n attempt.current++;\n if (!delay) return [3 /*break*/, 2];\n return [4 /*yield*/, sleep(delay)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n return [4 /*yield*/, doFetch(routeOrBody, body)];\n case 3:\n d = _a.sent();\n return [2 /*return*/, d];\n }\n });\n });\n };\n if (suspense) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(_this, void 0, void 0, function () {\n var newData;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n suspender.current = doFetch.apply(void 0, args).then(function (newData) {\n suspenseStatus.current = 'success';\n return newData;\n }, function () {\n suspenseStatus.current = 'error';\n });\n forceUpdate();\n return [4 /*yield*/, suspender.current];\n case 1:\n newData = _a.sent();\n return [2 /*return*/, newData];\n }\n });\n });\n };\n }\n return doFetch;\n }, [isServer, onAbort, requestInit, host, path, interceptors, cachePolicy, perPage, timeout, persist, cacheLife, onTimeout, defaults.data, onNewData, forceUpdate, suspense]);\n var post = useCallback(makeFetch(HTTPMethod.POST), [makeFetch]);\n var del = useCallback(makeFetch(HTTPMethod.DELETE), [makeFetch]);\n var request = useMemo(function () {\n return Object.defineProperties({\n get: makeFetch(HTTPMethod.GET),\n post: post,\n patch: makeFetch(HTTPMethod.PATCH),\n put: makeFetch(HTTPMethod.PUT),\n options: makeFetch(HTTPMethod.OPTIONS),\n head: makeFetch(HTTPMethod.HEAD),\n connect: makeFetch(HTTPMethod.CONNECT),\n trace: makeFetch(HTTPMethod.TRACE),\n del: del,\n delete: del,\n abort: function () {\n return controller.current && controller.current.abort();\n },\n query: function (query, variables) {\n return post({\n query: query,\n variables: variables\n });\n },\n mutate: function (mutation, variables) {\n return post({\n mutation: mutation,\n variables: variables\n });\n },\n cache: cache\n }, {\n loading: {\n get: function () {\n return loading.current;\n }\n },\n error: {\n get: function () {\n return error.current;\n }\n },\n data: {\n get: function () {\n return data.current;\n }\n }\n });\n }, [makeFetch]);\n var response = useMemo(function () {\n return toResponseObject(res, data);\n }, []);\n // onMount/onUpdate\n useEffect(function () {\n mounted.current = true;\n if (Array.isArray(dependencies)) {\n var methodName = requestInit.method || HTTPMethod.GET;\n var methodLower = methodName.toLowerCase();\n var req = request[methodLower];\n req();\n }\n return function () {\n return mounted.current = false;\n };\n }, dependencies);\n // Cancel any running request when unmounting to avoid updating state after component has unmounted\n // This can happen if a request's promise resolves after component unmounts\n useEffect(function () {\n return request.abort;\n }, []);\n if (suspense && suspender.current) {\n if (isServer) throw new Error('Suspense on server side is not yet supported! 🙅‍♂️');\n switch (suspenseStatus.current) {\n case 'pending':\n throw suspender.current;\n case 'error':\n throw error.current;\n }\n }\n return Object.assign([request, response, loading.current, error.current], __assign(__assign({\n request: request,\n response: response\n }, request), {\n loading: loading.current,\n data: data.current,\n error: error.current\n }));\n}\nexport { useFetch };\nexport default useFetch;","\"use strict\";\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Device;\n(function (Device) {\n Device[\"Browser\"] = \"browser\";\n Device[\"Server\"] = \"server\";\n Device[\"Native\"] = \"native\";\n})(Device = exports.Device || (exports.Device = {}));\nvar Browser = Device.Browser,\n Server = Device.Server,\n Native = Device.Native;\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar canUseNative = typeof navigator != 'undefined' && navigator.product == 'ReactNative';\nvar device = canUseNative ? Native : canUseDOM ? Browser : Server;\nvar SSRObject = {\n isBrowser: device === Browser,\n isServer: device === Server,\n isNative: device === Native,\n device: device,\n canUseWorkers: typeof Worker !== 'undefined',\n canUseEventListeners: device === Browser && !!window.addEventListener,\n canUseViewport: device === Browser && !!window.screen\n};\n// TODO: instead of this, do a polyfill for `Object.assign` https://www.npmjs.com/package/es6-object-assign\nvar assign = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args.reduce(function (acc, obj) {\n return __assign(__assign({}, acc), obj);\n }, {});\n};\nvar values = function (obj) {\n return Object.keys(obj).map(function (key) {\n return obj[key];\n });\n};\nvar toArrayObject = function () {\n return assign((values(SSRObject), SSRObject));\n};\nvar useSSRObject = toArrayObject();\nexports.weAreServer = function () {\n SSRObject.isServer = true;\n useSSRObject = toArrayObject();\n};\nexports.useSSR = function () {\n return useSSRObject;\n};\nexports.default = exports.useSSR;","import React, { useEffect, useState, useRef } from 'react';\nimport Ably from 'ably/promises';\nimport { InformationCircleIcon } from '@heroicons/react/solid';\nimport ScreenView from './ScreenView';\nimport PreRenderPlaceholder from './PreRenderPlaceholder';\nimport Expire from './Expire';\n\n/*\n * People aren't shown if they aren't active in the last X ms.\n */\nconst RECENTLY_ACTIVE_THRESHOLD = 5 * 60 * 1000;\n\n/*\n * This is mostly based on the LiveReplayer component and is used on the\n * single person live view. Lots of not DRY work here.\n */\nconst ActivePeople = (props) => {\n // the ably connection\n const [ably, setAbly] = useState();\n const [siteChannel, setSiteChannel] = useState();\n\n /*\n * Connect to ably on initial rendering and attach to the site channel.\n * Detach the channel and close the connection when unmounting.\n */\n useEffect(() => {\n setAbly(\n new Ably.Realtime({\n key: props.ablyApiKey,\n clientId: `operator:${props.operator.id}`,\n transports: ['web_socket'],\n }),\n );\n }, []);\n\n /*\n * Set the site channel when ably connection reaches the 'connected' state for the first time.\n * Close the connection when unmounted.\n */\n useEffect(() => {\n if (!ably) {\n return;\n }\n ably.connection.once('connected', function () {\n console.debug('Ably connected.');\n setSiteChannel(ably.channels.get(props.apiKey));\n });\n\n return function cleanup() {\n console.debug('Cleaup - closing ably connection.');\n ably.close();\n };\n }, [ably]);\n\n // An array of session objects {clientId, delay (in seconds to expire)}\n const [activeSessions, setActiveSessions] = useState([]);\n // Ref to the state so callbacks can reference the current value. Otherwise, they\n // only reference the original value.\n // https://stackoverflow.com/questions/57847594/react-hooks-accessing-up-to-date-state-from-within-a-callback\n const activeSessionsRef = useRef();\n activeSessionsRef.current = activeSessions;\n\n // Sets active people to the list of channel members.\n // Limited to 4 for frontend performance reasons.\n const getChannelMembers = () => {\n if (!siteChannel) {\n return;\n }\n siteChannel.presence.get(function (err, members) {\n if (err) {\n return console.error('Error fetching presence data');\n }\n // filter out operators\n members = members.filter((member) => member.data.userType != 'operator');\n // filter to specific people\n if (props.people_ids.length) {\n members = members.filter((member) => props.people_ids.includes(member.data.personId));\n } else {\n console.debug(`There are ${members.length} total members on the channel. Members=${members}`);\n // filter to those where the document is visible\n members = members.filter((member) => member.data.document_visible !== false);\n console.debug(`There are ${members.length} members with visible screens on the channel. Members=${members}`);\n // filter to those that have a last active value\n members = members.filter((member) => member.data.last_active_at);\n console.debug(`There are ${members.length} members with a non-null last_active_at value. Members=${members}`);\n // filter to those that have been active in the last five minutes\n members = members.filter((member) => member.data.last_active_at >= new Date() - RECENTLY_ACTIVE_THRESHOLD);\n console.debug(`There are ${members.length} members that are recently active. Members=${members}`);\n }\n // Sort by last_active_at\n members = members.sort((a, b) => ((a.data.last_active_at || 0) < (b.data.last_active_at || 0) ? 1 : -1));\n members = members.slice(0, 1);\n setActiveSessions(members.map((member) => ({ ...member.data, clientId: member.clientId })));\n });\n };\n\n /*\n * Get channel members when the siteChannel is set.\n * When unmounted detach the channel.\n */\n useEffect(() => {\n if (!siteChannel) {\n return;\n }\n getChannelMembers();\n\n return () => {\n console.debug('Cleaup - detaching from site channel.');\n siteChannel.detach();\n siteChannel.on('detached', function (stateChange) {\n console.debug('Releasing siteChannel');\n // enable garbage collection\n props.ably.channels.release(props.apiKey);\n });\n };\n }, [siteChannel]);\n\n /*\n * Join the site channel as an operator.\n */\n const joinChannel = () => {\n if (!siteChannel) {\n return;\n }\n siteChannel.presence.enter({ userType: 'operator', userId: props.operator.id }, function (err) {\n if (err) {\n return console.error(err);\n }\n console.debug(\n '[Glass.io] Successfully joined site channel as an operator. channel=',\n siteChannel.name,\n 'operator id=',\n props.operator.id,\n );\n });\n };\n useEffect(joinChannel, [siteChannel]);\n\n const handleSessionExpire = (clientId) => {\n console.debug('Handling expire. clientId=', clientId);\n setActiveSessions((previousSessions) => previousSessions.filter((session) => session.clientId !== clientId));\n };\n\n const handleInitReplayer = (clientId) => {\n console.debug('handleInitReplayer - clientId=', clientId);\n };\n\n const handleLiveReplayerComponentCleanup = (clientId) => {};\n\n const renderedSessionsCount = () => {\n return document.getElementsByClassName('gridContainer').length;\n };\n\n console.debug('Rendering LiveReplayer for activeSessions=', activeSessions);\n\n if (activeSessions.length > 0) {\n return (\n
\n {activeSessions.map((session) => {\n return (\n \n );\n })}\n
\n );\n } else {\n return (\n
\n \n \n \n

Waiting for an active person...

\n
\n );\n }\n};\n\nActivePeople.defaultProps = {\n people_ids: [],\n expireDelay: 3 * 60,\n};\n\nexport default ActivePeople;\n","import React from 'react';\nimport Firefox from 'images/device_icons/browser/firefox.svg';\nimport Chrome from 'images/device_icons/browser/chrome.svg';\nimport Safari from 'images/device_icons/browser/safari.svg';\nimport Edge from 'images/device_icons/browser/edge.svg';\n\nexport default function BrowserIcon(props) {\n const iconSrc = (name) => {\n let res = null;\n switch (name) {\n case 'firefox':\n res = Firefox;\n break;\n case 'chrome':\n res = Chrome;\n break;\n case 'safari':\n res = Safari;\n break;\n case 'edge':\n res = Edge;\n break;\n }\n return res;\n };\n\n if (props.name) {\n return ;\n } else {\n return null;\n }\n}\n","import React, { useEffect, useRef } from 'react';\nimport DailyIframe from '@daily-co/daily-js';\n\nconst Call = (props) => {\n // Daily IFrame Object.\n // A ref so callbacks can refer to the mutable callFrame object.\n // See https://stackoverflow.com/questions/57847594/react-hooks-accessing-up-to-date-state-from-within-a-callback\n const callFrameRef = useRef();\n\n const callAttemptRef = useRef();\n\n const createCallAttemptPath = `/sites/${props.siteId}/call_attempts`;\n\n const openModalWindow = () => {\n props.sessionChannel.publish('modal', {\n action: 'open',\n roomId: props.callRoomId,\n operatorName: props.operatorName,\n siteName: props.siteName,\n avatarUrl: props.avatarUrl,\n calendarUrl: props.calendarUrl,\n message: props.message,\n buttonColor: props.buttonColor,\n });\n\n // open a video call UI for an operator in Glass\n startVideoCall(props.callRoomId);\n };\n\n const startVideoCall = (callRoomId) => {\n // https://docs.daily.co/reference/daily-js/daily-iframe-class/properties\n const newCallFrame = DailyIframe.createFrame({\n iframeStyle: {\n position: 'fixed',\n width: '375px',\n height: '450px',\n right: '1em',\n bottom: '1em',\n },\n showLeaveButton: true,\n showFullscreenButton: true,\n });\n\n /*\n * Destroys the callframe iframe.\n */\n const handleLeftMeeting = (msg) => {\n console.debug('left meeting!', 'msg=', msg);\n // null if callFrameRef was destroyed by the prompt timer.\n if (callFrameRef.current) {\n trackCallAttemptUpdate({ left_at: new Date() });\n callFrameRef.current.destroy();\n callFrameRef.current = null;\n callAttemptRef.current = null;\n }\n };\n\n newCallFrame.on('left-meeting', handleLeftMeeting);\n newCallFrame.on('participant-joined', handleParticipantJoined);\n newCallFrame.on('participant-left', handleParticipantLeft);\n newCallFrame.join({ url: `${props.dailyUrl}/${props.callRoomId}` });\n callFrameRef.current = newCallFrame;\n\n trackCallAttempt();\n };\n\n const handleParticipantJoined = (event) => {\n console.log('Call participant joined=', event);\n trackCallAttemptUpdate({ joined_at: new Date() });\n };\n\n const handleParticipantLeft = (event) => {\n console.log('Call participant left=', event);\n trackCallAttemptUpdate({ left_at: new Date() });\n };\n\n const trackCallAttempt = () => {\n const payload = {\n session_id: props.sessionId,\n };\n const response = fetch(createCallAttemptPath, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ call_attempt: payload }),\n })\n .then((response) => response.json())\n .then((data) => {\n console.debug('trackCallAttempt Success:', data);\n callAttemptRef.current = data;\n })\n .catch((error) => {\n console.debug('trackCallAttempt Error:', error);\n });\n };\n\n const updateCallAttemptPath = () => {\n if (callAttemptRef.current == null) {\n throw 'callAttemptRef is null. Unable to generate update URL.';\n }\n return `${createCallAttemptPath}/${callAttemptRef.current.id}`;\n };\n\n const trackCallAttemptUpdate = (attributes) => {\n const response = fetch(updateCallAttemptPath(), {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ call_attempt: attributes }),\n })\n .then((response) => response.json())\n .then((data) => {\n console.debug('trackCallAttemptUpdate Success:', data);\n callAttemptRef.current = data;\n })\n .catch((error) => {\n console.debug('trackCallAttemptUpdate Error:', error);\n });\n };\n\n // Messages posted when the prompt is auto-dismissed after the timer expires.\n const subscribeToMessages = () => {\n props.sessionChannel.subscribe('prompt-closed-by-timer', function (msg) {\n console.debug('Received message=', 'prompt-closed-by-timer', msg, 'Destroying callframe.');\n // Calling leave() throws an error. Probably because the operator may not have joined yet.\n // Seen cases of duplicate connections, which prompts duplicate messages.\n // Check if callFrameRef exists first.\n if (callFrameRef.current) {\n trackCallAttemptUpdate({ auto_dismissed_at: new Date() });\n callFrameRef.current.destroy();\n callFrameRef.current = null;\n callAttemptRef.current = null;\n }\n });\n\n props.sessionChannel.subscribe('prompt-mouseenter', function (msg) {\n console.debug('prompt-mouseenter', msg);\n trackCallAttemptUpdate({ seen_at: new Date() });\n });\n\n props.sessionChannel.subscribe('prompt-snooze', function (msg) {\n console.debug('prompt-snooze', msg);\n trackCallAttemptUpdate({ snoozed_at: new Date() });\n });\n };\n\n // Runs when initially loaded.\n useEffect(() => {\n subscribeToMessages();\n // TODO - add cleanup and unsub?\n }, []);\n\n return (\n \n \n \n \n Call\n \n );\n};\n\nexport default Call;\n","import React from 'preact/compat';\n\nexport const ChatCommandButton: React.FC<{ src: string }> = ({ src }) => (\n \n);\n","import React from 'react';\n\nexport default function DeviceIcon(props) {\n switch (props.name) {\n // https://heroicons.com/\n case 'tablet':\n return (\n \n \n \n );\n case 'phone':\n return (\n \n \n \n );\n case 'desktop':\n return (\n \n \n \n );\n default:\n return null;\n }\n}\n","/**\n * Removes child elements after a given delay (seconds).\n * Based on https://stackoverflow.com/a/64365185.\n */\nimport React, { useEffect, useState } from 'react';\n\nconst Expire = (props) => {\n const [timer, setTimer] = useState();\n\n const resetTimer = () => {\n if (timer) {\n console.debug('reset timer for id=', props.id);\n clearTimeout(timer);\n setTimer(null);\n }\n };\n\n useEffect(() => {\n // reset the timer if props.delay changes.\n resetTimer();\n // don't set a new timer if the delay is null\n if (props.delay == null) {\n return;\n }\n // set a timer to call `props.onExpire`\n const newTimer = setTimeout(() => {\n props.onExpire(props.id);\n }, props.delay * 1000);\n setTimer(newTimer);\n console.debug('setting timer for id=', props.id, 'delay=', props.delay);\n // cleanup\n return () => resetTimer();\n }, [props.delay]);\n\n return
{props.children}
;\n};\n\nexport default Expire;\n","import React, { useEffect } from 'react';\nimport IndiciaToggle from './IndiciaToggle';\nimport FireFoxLogo from 'images/device_icons/browser/firefox.svg';\nimport OSIcon from './OSIcon';\nimport BrowserIcon from './BrowserIcon';\nimport UTMIcon from './UTMIcon';\nimport ReactTooltip from 'react-tooltip';\nimport DeviceTypeIcon from './DeviceTypeIcon';\n\nexport default function IndiciaHeader(props) {\n const personUrlPath = (indicia) => {\n return `/sites/${props.siteId}/live_view/${props.indicia.attributes.id}/person`;\n };\n\n useEffect(() => {\n ReactTooltip.rebuild();\n });\n\n const avatarImage = () => {\n return (\n \n \n \n );\n };\n\n if (props.indicia) {\n return (\n
\n \n {avatarImage()}\n \n {props.indicia.attributes.label}\n \n
\n \n
{props.indicia.attributes.location_to_s}
\n \n \n \n \n \n \n \n \n );\n } else {\n return null;\n }\n}\n","import React from 'react';\n\nexport default function IndiciaPanel(props) {\n return (\n \n
\n
\n
Location
\n
Earth
\n
\n
\n
First Seen
\n
ago
\n
\n
\n
Device
\n
Desktop • Apple • Firefox
\n
\n
\n
Visits
\n
3
\n
\n
\n
Total time on site
\n
3:02:03
\n
\n
\n
Referrer
\n
\n \"https://www.learnenough.com/course/ruby_on_rails_tutorial_7th_edition/password_reset/password_reset_emails/password_reset_mailer\n
\n
\n
\n
Campaign Info
\n
\n \n
\n
\n
\n
\n \n );\n}\n","import React, { useEffect } from 'react';\nimport DeviceTypeIcon from './DeviceTypeIcon';\n\nconst IndiciaToggle = (props) => {\n return (\n \n \n \n \n \n Indicia\n \n \n \n \n \n );\n};\n\nexport default IndiciaToggle;\n","import React, { useEffect, useState, useRef } from 'react';\nimport Ably from 'ably/promises';\nimport { InformationCircleIcon } from '@heroicons/react/solid';\nimport LiveReplayerComponent from './LiveReplayerComponent';\nimport PreRenderPlaceholder from './PreRenderPlaceholder';\nimport Expire from './Expire';\n\n/*\n * People aren't shown if they aren't active in the last X ms.\n */\nconst RECENTLY_ACTIVE_THRESHOLD = 5 * 60 * 1000;\n\n/*\n * Renders a grid of LiveReplayerComponent objects, one for each active person.\n */\nconst LiveReplayer = (props) => {\n // the ably connection\n const [ably, setAbly] = useState();\n const [siteChannel, setSiteChannel] = useState();\n\n /*\n * Connect to ably on initial rendering and attach to the site channel.\n * Detach the channel and close the connection when unmounting.\n */\n useEffect(() => {\n setAbly(\n new Ably.Realtime({\n key: props.ablyApiKey,\n clientId: `operator:${props.operator.id}`,\n transports: ['web_socket'],\n }),\n );\n }, []);\n\n /*\n * Set the site channel when ably connection reaches the 'connected' state for the first time.\n * Close the connection when unmounted.\n */\n useEffect(() => {\n if (!ably) {\n return;\n }\n ably.connection.once('connected', function () {\n console.debug('Ably connected.');\n setSiteChannel(ably.channels.get(props.apiKey));\n });\n\n return function cleanup() {\n console.debug('Cleaup - closing ably connection.');\n ably.close();\n };\n }, [ably]);\n\n // An array of session objects {clientId, delay (in seconds to expire)}\n const [activeSessions, setActiveSessions] = useState([]);\n // Ref to the state so callbacks can reference the current value. Otherwise, they\n // only reference the original value.\n // https://stackoverflow.com/questions/57847594/react-hooks-accessing-up-to-date-state-from-within-a-callback\n const activeSessionsRef = useRef();\n activeSessionsRef.current = activeSessions;\n\n // Update the page title to include the count of rendered active sessions.\n const updatePageTitle = (count) => {\n const base = 'Glass';\n const title = `${base} (${count})`;\n document.title = title;\n };\n\n // Sets active people to the list of channel members.\n // Limited to 4 for frontend performance reasons.\n const getChannelMembers = () => {\n if (!siteChannel) {\n return;\n }\n siteChannel.presence.get(function (err, members) {\n if (err) {\n return console.error('Error fetching presence data');\n }\n // filter out operators\n members = members.filter((member) => member.data.userType != 'operator');\n // filter to specific people\n if (props.people_ids.length) {\n members = members.filter((member) => props.people_ids.includes(member.data.personId));\n } else {\n console.debug(`There are ${members.length} total members on the channel. Members=${members}`);\n // filter to those where the document is visible\n members = members.filter((member) => member.data.document_visible !== false);\n console.debug(`There are ${members.length} members with visible screens on the channel. Members=${members}`);\n // filter to those that have a last active value\n members = members.filter((member) => member.data.last_active_at);\n console.debug(`There are ${members.length} members with a non-null last_active_at value. Members=${members}`);\n // filter to those that have been active in the last five minutes\n members = members.filter((member) => member.data.last_active_at >= new Date() - RECENTLY_ACTIVE_THRESHOLD);\n console.debug(`There are ${members.length} members that are recently active. Members=${members}`);\n }\n // Sort by last_active_at, reverse, then grab first 4. Want most recently active.\n members = members.sort((a, b) => ((a.data.last_active_at || 0) < (b.data.last_active_at || 0) ? 1 : -1));\n // limit for performance reasons - reverse back to show most recently active last as that is more consistent\n // with showing new screens at the bottom of the live view grid vs. adding to the front.\n members = members.slice(0, 4).reverse();\n setActiveSessions(members.map((member) => ({ ...member.data, clientId: member.clientId })));\n });\n };\n\n /*\n * Get channel members when the siteChannel is set.\n * When unmounted detach the channel.\n */\n useEffect(() => {\n if (!siteChannel) {\n return;\n }\n getChannelMembers();\n\n return () => {\n console.debug('Cleaup - detaching from site channel.');\n siteChannel.detach();\n siteChannel.on('detached', function (stateChange) {\n console.debug('Releasing siteChannel');\n // enable garbage collection\n props.ably.channels.release(props.apiKey);\n });\n };\n }, [siteChannel]);\n\n /*\n * Subscribe to the site channel presence when the site channel changes.\n * Should only be invoked once as the site channel is set once.\n */\n useEffect(() => {\n const subscribe = () => {\n if (!siteChannel) {\n console.debug('siteChannel not set. Unable to get subscribe to presence.');\n return;\n }\n console.debug('subscribing to site channel presence.');\n // Subscribe\n siteChannel.presence.subscribe(function (presenceMsg) {\n const { action, clientId, data } = presenceMsg;\n console.debug('received message=', presenceMsg);\n // Also includes `update` as this message is generated when a connection is recovered.\n // https://ably.com/docs/realtime/connection#connection-state-recovery\n // data.type:\n // * 'person_entered': sent when entering or re-entering\n // * 'person_updated': sent when updating presence info\n if (\n ['enter', 'update'].includes(action) &&\n (data.type === 'person_entered' || data.type === 'person_updated')\n ) {\n // null-op if the person isn't recently active\n if (!data.last_active_at) {\n return;\n }\n if (data.last_active_at < new Date() - RECENTLY_ACTIVE_THRESHOLD) {\n return;\n }\n\n if (clientId && !activeSessionsRef.current.includes(clientId)) {\n // filter to specific people\n if (props.people_ids.length && !props.people_ids.includes(data.personId)) {\n // do nothing ... person not in the restricted list.\n console.debug(\n 'personId=',\n data.personId,\n ' is not included in the array of filtered people_id. Not rendering.',\n );\n } else {\n if (action == 'enter') {\n console.debug(\n 'A person has entered the channel. clientId=',\n clientId,\n 'user_info=',\n data.user_info,\n 'document_visible=',\n data.document_visible,\n );\n } else if (action == 'update') {\n console.debug(\n 'A person has updated presence info. clientId=',\n clientId,\n 'user_info=',\n data.user_info,\n 'document_visible=',\n data.document_visible,\n );\n }\n\n // Ensure activepeople is unique.\n // Unique objects:\n // https://yagisanatode.com/2021/07/03/get-a-unique-list-of-objects-in-an-array-of-object-in-javascript/\n setActiveSessions((previousSessions) => [\n ...new Map([...previousSessions, { ...data, clientId }].map((item) => [item.clientId, item])).values(),\n ]);\n }\n } else if (clientId) {\n console.debug(\n 'Person is already in the channel. clientId=',\n clientId,\n 'user_info=',\n data.user_info,\n 'action=',\n action,\n );\n }\n }\n\n if (action === 'leave') {\n console.debug('A person has left the channel. clientId=', clientId, 'user_info=', data.user_info);\n // disabling audio for now - annoying on more active sites\n // const audio = new Audio('/exit-aim.mp3');\n // audio.play();\n\n // Rather that immediately removing a session from the live view, set a timeout (in seconds)\n // and wait a bit in case they come back. This reduces distracting churn.\n // https://stackoverflow.com/questions/35206125/how-can-i-find-and-update-values-in-an-array-of-objects\n // const updatedData = originalData.map(x => (x.id === id ? { ...x, updatedField: 1 } : x));\n setActiveSessions((previousSessions) =>\n previousSessions.map((session) =>\n session.clientId === clientId ? { ...session, delay: props.expireDelay } : session,\n ),\n );\n }\n });\n };\n\n subscribe();\n }, [siteChannel]);\n\n /*\n * Join the site channel as an operator.\n */\n const joinChannel = () => {\n if (!siteChannel) {\n return;\n }\n siteChannel.presence.enter({ userType: 'operator', userId: props.operator.id }, function (err) {\n if (err) {\n return console.error(err);\n }\n console.debug(\n '[Glass.io] Successfully joined site channel as an operator. channel=',\n siteChannel.name,\n 'operator id=',\n props.operator.id,\n );\n });\n };\n useEffect(joinChannel, [siteChannel]);\n\n console.debug('Rendering LiveReplayer for activeSessions=', activeSessions);\n\n const handleSessionExpire = (clientId) => {\n console.debug('Handling expire. clientId=', clientId);\n setActiveSessions((previousSessions) => previousSessions.filter((session) => session.clientId !== clientId));\n };\n\n const handleInitReplayer = (clientId) => {\n console.debug('handleInitReplayer - clientId=', clientId);\n updatePageTitle(renderedSessionsCount());\n };\n\n const handleLiveReplayerComponentCleanup = (clientId) => {\n updatePageTitle(renderedSessionsCount());\n };\n\n const handleComponentClick = (personId) => {\n window.location = `/sites/${props.siteId}/live_view/${personId}/person`;\n };\n\n const renderedSessionsCount = () => {\n return document.getElementsByClassName('gridContainer').length;\n };\n\n if (activeSessions.length > 0) {\n return (\n
\n \n {activeSessions.map((session) => {\n return (\n \n \n \n );\n })}\n
\n );\n } else {\n return (\n
\n \n \n \n

Waiting for an active person...

\n
\n );\n }\n};\n\nLiveReplayer.defaultProps = {\n people_ids: [],\n expireDelay: 3 * 60,\n};\n\nexport default LiveReplayer;\n","import React, { useEffect, useRef, useState } from 'react';\nimport useFetch from 'use-http';\nimport { Replayer } from 'rrweb';\nimport Spinner from './LiveReplayerSpinner';\nimport DocVisible from './LiveReplayerDocumentVisibility';\nimport LastActive from './LiveReplayerLastActive';\nimport Call from './Call';\nimport IndiciaHeader from './IndiciaHeader';\n\n/*\n * React function compontent to render a live view for a particular person.\n */\n\nfunction LiveReplayerComponent(props) {\n const [replayer, initReplayer] = useState();\n const [activePerson, setActivePerson] = useState(false);\n const [events, setEvents] = useState([]);\n // Indicia is an Object with information about the person associated\n // w/the session (email, ip address, device, etc).\n const [indicia, setIndicia] = useState({ attributes: {}, device_icons: {}, utm_params: {} });\n const { cache, get, response } = useFetch();\n const [initialWidth, setInitialWidth] = useState();\n const [initialHeight, setInitialHeight] = useState();\n const [iFrameSize, setIframeSize] = useState({ width: null, height: null });\n const [documentVisible, setDocumentVisible] = useState();\n const [activePanel, setActivePanel] = useState('screen');\n const [sessionChannel, setSessionChannel] = useState();\n const [hasEvents, setHasEvents] = useState(props.hasEvents);\n\n const refTimestamp = useRef(null);\n\n const screenContainerEl = useRef(null); // .livePersonContainer\n\n /*\n * Given `width` and `height` params:\n * 1. resizes the .replayer_wrapper div (parent to the iframe) so its aspect\n * ratio matches the width x height of the event.\n * 2. scales the content of the iframe so the entire window fits within the iframe.\n */\n const scaleIframeSize = (width, height) => {\n // Need to find this element in the DOM as it is added when the rrweb player is\n // initialized.\n if (!replayer || !replayer.wrapper) {\n return;\n }\n const replayerWrapper = replayer.wrapper;\n\n const screenRatio = (width, height) => {\n // calculate the screen width and height ratios to the the containers they need to fit.\n const widthRatio = parseFloat((1 / (width / initialWidth)).toFixed(2));\n const heightRatio = parseFloat((1 / (height / initialHeight)).toFixed(2));\n // determine the scaling ratio to use when displaying the user's screen.\n // use the smallest scale ratio btw the width height. for example, if on a very wide screen,\n // the width ratio will be the smallest as it has to shrink the most.\n return Math.min(widthRatio, heightRatio).toFixed(2);\n };\n const scaleValue = screenRatio(width, height);\n console.debug(\n `Screen width=${width} height=${height} scaleValue=${scaleValue}, initialWidth=${initialWidth}, initialHeight=${initialHeight}`,\n );\n // Set the styles\n replayerWrapper.style.width = `${width * scaleValue}px`;\n replayerWrapper.style.height = `${height * scaleValue}px`;\n replayerWrapper.style.transform = `scale(${scaleValue})`;\n };\n\n useEffect(() => {\n scaleIframeSize(iFrameSize.width, iFrameSize.height);\n }, [iFrameSize]);\n\n useEffect(() => {\n setSessionChannel(props.ably.channels.get(props.channelName));\n }, []);\n\n const setupChannel = () => {\n if (!sessionChannel) {\n return;\n }\n sessionChannel.presence.enter({ userType: 'operator' }, function (err) {\n if (err) {\n return console.error(err);\n }\n console.debug('[Glass.io] Successfully present on the session channel=', sessionChannel.name);\n });\n };\n useEffect(setupChannel, [sessionChannel]);\n\n // Init Replayer instance\n useEffect(() => {\n if (!hasEvents) {\n return;\n }\n const newReplayer = new Replayer([], {\n liveMode: true,\n root: screenContainerEl.current,\n mouseTail: false,\n });\n initReplayer(newReplayer);\n props.onInitReplayer(props.sessionId);\n // See https://github.com/rrweb-io/rrweb/blob/de755ae577ac361dd1883a89d2597712b6a9cf93/guide.md\n // for events.\n }, [hasEvents]);\n\n useEffect(() => {\n if (!screenContainerEl.current) {\n return;\n }\n console.debug(\n 'Setting initial width and height from screenContainerEl=',\n screenContainerEl,\n 'width:',\n screenContainerEl.current.clientWidth,\n 'height=',\n screenContainerEl.current.clientHeight,\n );\n setInitialWidth(screenContainerEl.current.clientWidth);\n setInitialHeight(screenContainerEl.current.clientHeight);\n }, [hasEvents]);\n\n useEffect(() => {\n if (hasEvents) {\n console.debug('Received first event. sessionId=', props.sessionId);\n }\n }, [hasEvents]);\n\n /*\n * Fetch indicia about the person associated with the session id.\n * Update the `indicia` state with the result.\n */\n const getIndica = async () => {\n if (props.disableFetch) {\n return;\n }\n const newIndicia = await get(`/sites/${props.siteId}/people/${props.sessionId}/indicia_old`);\n if (response.ok) {\n console.debug('indicia=', newIndicia);\n // Record when last rendered to help identify users that are not\n // interacting w/the site.\n newIndicia.rendered_at = new Date();\n newIndicia.first_seen_at = new Date(newIndicia.first_seen_at);\n setIndicia(newIndicia);\n }\n };\n\n const getNewEvents = async () => {\n cache.clear();\n if (props.disableFetch) {\n // still want to render the component.\n if (!activePerson) {\n setActivePerson(true);\n setHasEvents(true);\n }\n return;\n }\n const newEvents = await get(`/api/events/${props.sessionId}/${refTimestamp.current || ''}`);\n if (response.ok && newEvents.length) {\n if (!hasEvents) {\n setHasEvents(true);\n }\n refTimestamp.current = newEvents[newEvents.length - 1].timestamp;\n console.debug('Set new refTimestamp=', new Date(refTimestamp.current));\n setEvents(newEvents);\n }\n };\n\n // Add events to the replayer when they change.\n useEffect(() => {\n if (events.length > 0) {\n if (!activePerson) {\n console.debug(\n 'Starting replayer at timestamp=',\n new Date(events[0].timestamp),\n 'refTimestamp=',\n new Date(refTimestamp.current),\n );\n replayer.startLive(events[0].timestamp - 200);\n setActivePerson(true);\n }\n\n for (const event of events) {\n // Scale iframe size to fit in the parent container\n if (event.data && event.data.width && event.data.height) {\n // extract just width and height into a new object\n const newSize = (({ width, height }) => ({ width, height }))(event.data);\n setIframeSize(newSize);\n }\n if (event.type === 5 && event.data.tag === 'document-visible') {\n setDocumentVisible(event.data.payload.visible);\n }\n if (props.disableReplay) {\n // Testing not rendering events to see impact on performance\n console.debug('[IGNORE]. props.disableReplay=TRUE event=', event);\n } else {\n // console.debug(`Adding event to replayer. Age=${(new Date() - new Date(event.timestamp))/1000} seconds`, {session_id: props.sessionId, type: event.type, timestamp: event.timestamp})\n replayer.addEvent(event);\n }\n }\n }\n }, [events]);\n\n useEffect(() => {\n getNewEvents();\n getIndica();\n }, []);\n\n const subscribe = () => {\n console.debug('Subscribing to sessionChannel new-events=', props.clientId);\n // When a new-events message is received, update the displayed indicia and\n // fetch new events to play in the live replayer.\n sessionChannel.subscribe('new-events', async function (msg) {\n // console.debug(\"new-events message received from channel=\", sessionChannel)\n await getIndica();\n await getNewEvents();\n });\n };\n\n useEffect(() => {\n if (!sessionChannel) {\n return;\n }\n subscribe();\n\n return function cleanup() {\n console.debug('LiveReplayerComponent cleanup. sessionId=', props.sessionId);\n sessionChannel.detach();\n sessionChannel.on('detached', function (stateChange) {\n console.debug('Releasing channel=', props.sessionId);\n // enable garbage collection\n props.ably.channels.release(props.sessionId);\n props.onCleanup(props.sessionId);\n });\n };\n }, [sessionChannel]);\n\n const handleToggleClick = (event) => {\n const panel = event.target.closest('button').name;\n setActivePanel(panel);\n };\n\n const onClick = (event) => {\n props.onClick(props.personId);\n };\n\n if (hasEvents) {\n return (\n \n \n\n \n {!activePerson && }\n \n\n {/* Footer */}\n
\n
\n \n {indicia.attributes.visits_count} {`${indicia.attributes.visits_count == 1 ? 'visit' : 'visits'}`}\n \n  • \n {indicia.attributes.last_messaged_at_to_s}\n  • \n {indicia.attributes.last_responded_at_to_s}\n  • \n \n
\n\n \n
\n \n );\n } else {\n return null;\n }\n}\n\nLiveReplayerComponent.defaultProps = {\n showHeader: true,\n showFooter: true,\n};\n\nexport default LiveReplayerComponent;\n","import React from 'react';\n\nconst LiveReplayerDocumentVisibility = (props) => {\n if (props.isVisible == null) {\n return null;\n } else if (props.isVisible) {\n return (\n \n \n \n \n \n \n );\n } else {\n return (\n \n \n \n \n \n );\n }\n};\n\nexport default LiveReplayerDocumentVisibility;\n","import React from 'react';\nimport TimeAgo from 'react-timeago';\n\nconst LiveReplayerLastActive = (props) => {\n if (props.date) {\n return (\n \n Active \n \n );\n } else {\n return null;\n }\n};\n\nexport default LiveReplayerLastActive;\n","import React from 'react';\n\nconst LiveReplayerSpinner = (props) => {\n return (\n
\n \n \n \n \n {`sessionId=${props.sessionId} has started a session...waiting for events.`}\n
\n );\n};\n\nexport default LiveReplayerSpinner;\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport DailyIframe, { type DailyCall, type DailyMeetingState } from '@daily-co/daily-js';\nimport pipIcon from '../../../assets/images/icons/video-arrow-up-right-light.svg';\n\nconst LiveStream: React.FC<{ operator: GlassUserInfo }> = (props) => {\n const videoRef = useRef(null);\n const [callObject, setCallObject] = useState(null);\n const [meetingState, setMeetingState] = useState(null);\n const [videoTrack, setVideoTrack] = useState(null);\n\n const join = useCallback(async () => {\n if (callObject) {\n const participants = await callObject.join({\n url: props.operator.live_stream_room_url,\n userName: props.operator.label,\n userData: props.operator,\n });\n\n if (participants?.local.videoTrack) {\n setVideoTrack(participants.local.videoTrack);\n }\n\n return;\n }\n\n console.warn(\"LiveStrean: can't join callObject is null\");\n }, [callObject]);\n\n const leave = useCallback(async () => {\n if (callObject) {\n await callObject.leave();\n }\n }, [callObject]);\n\n const enablePip = async () => {\n if (!('pictureInPictureEnabled' in document)) {\n alert(\n 'Picture-in-Picture API is not supported in this browser. You can try to do manually by clicking on the video and then clicking on the \"Enter/Watch Picture-in-Picture\" button.',\n );\n return;\n }\n\n if (videoRef.current) {\n try {\n await videoRef.current.requestPictureInPicture();\n } catch (error) {\n console.error('Failed to enter Picture-in-Picture mode:', error);\n }\n }\n };\n\n const exitPip = () => {\n if (document.pictureInPictureElement) {\n document.exitPictureInPicture().catch(() => {});\n }\n };\n\n const joinElement = useMemo(() => {\n return (\n \n \n \n \n Start live streaming camera\n \n );\n }, [join]);\n\n const leaveElement = useMemo(() => {\n return (\n <>\n
\n
\n
\n \n \n \n \n Stop live streaming camera\n \n \n \n Picture-In-Picture\n \n
\n \n );\n }, [leave, videoTrack]);\n\n useEffect(() => {\n const obj = DailyIframe.createCallObject({ startAudioOff: true, startVideoOff: false });\n\n obj.on('joined-meeting', () => {\n setMeetingState(obj.meetingState());\n });\n\n obj.on('left-meeting', () => {\n setMeetingState(obj.meetingState());\n });\n\n setCallObject(obj);\n }, []);\n\n useEffect(() => {\n if (videoRef.current && videoTrack) {\n videoRef.current.srcObject = new MediaStream([videoTrack]);\n\n // enablePip();\n }\n\n return () => {\n exitPip();\n };\n }, [videoTrack]);\n\n if (meetingState !== 'joined-meeting') {\n return joinElement;\n } else {\n return leaveElement;\n }\n};\n\nexport default LiveStream;\n","import Apple from '../../assets/images/device_icons/os/apple.svg';\nimport Windows from '../../assets/images/device_icons/os/windows.svg';\nimport Linux from '../../assets/images/device_icons/os/linux.svg';\nimport Android from '../../assets/images/device_icons/os/android.svg';\n\nexport default function OSIcon({ name }: { name: string }) {\n const iconSrc = (name: string) => {\n let res = null;\n switch (name) {\n case 'apple':\n res = Apple;\n break;\n case 'windows':\n res = Windows;\n break;\n case 'linux':\n res = Linux;\n break;\n case 'Android':\n res = Android;\n break;\n }\n return res;\n };\n\n const icon = iconSrc(name);\n\n if (icon) {\n return (\n <>\n \n \n );\n } else {\n return null;\n }\n}\n","import { type OperatorChatMacroT } from './types';\n\nexport const operatorChatMacros: OperatorChatMacroT[] = [\n {\n name: 'Schedule a meeting',\n requires: ['calendar_url'],\n value: (operator: GlassUserInfo) =>\n `Would you like to schedule a meeting?`,\n },\n];\n","import React, { useCallback, useMemo, useState } from 'react';\nimport { render } from 'react-dom';\nimport { operatorChatMacros } from './constants';\nimport { type OperatorChatMacroT } from './types';\nimport { macroAvailable } from './utils';\nimport bolt from '../../../assets/images/icons/bolt-light.svg';\nimport { ChatCommandButton } from '../ChatCommandButton';\n\nexport const OperatorChatMacros: React.FC<{ node: HTMLElement; operator: GlassUserInfo }> = ({ node, operator }) => {\n const [macroListOpen, setMacroListOpen] = useState(false);\n\n const toggleMacroList = () => {\n setMacroListOpen(!macroListOpen);\n };\n\n const selectMacro = useCallback(\n (macro: OperatorChatMacroT) => {\n setMacroListOpen(false);\n\n const messageBox = node.shadowRoot?.querySelector('.message-box');\n\n if (messageBox == null) {\n return;\n }\n\n messageBox.innerHTML += macro.value(operator);\n messageBox.focus();\n },\n [operator],\n );\n\n const macroList = useMemo(() => {\n const availableMacros = operatorChatMacros\n .map(\n (macro) =>\n macroAvailable(macro, operator) && (\n {\n selectMacro(macro);\n }}\n className=\"macro\"\n >\n {macro.name}\n \n ),\n )\n .filter((element) => element);\n\n return availableMacros.length > 0 ? availableMacros :
No macros available
;\n }, [operatorChatMacros, operator]);\n\n return (\n
\n {macroListOpen &&
{macroList}
}\n
\n \n
\n
\n );\n};\n\nexport const registerOperatorChatMacros = () => {\n window.addEventListener('glass-chat:render', ({ detail: { node, operator } }) => {\n const commandsContainer = node.shadowRoot?.querySelector('.chat-commands-container');\n const container = commandsContainer?.insertAdjacentElement('afterbegin', document.createElement('div'));\n\n if (container != null) {\n render(, container);\n }\n });\n};\n","import { type OperatorChatMacroT } from './types';\n\nexport const macroAvailable = (macro: OperatorChatMacroT, operator: GlassUserInfo) => {\n if (!macro.requires) {\n return true;\n }\n\n return macro.requires.every((key) => operator[key]);\n};\n","import React from 'react';\nimport Pluralize from 'react-pluralize';\n\nconst PreRenderPlaceholder = (props) => {\n if (!props.renderedSessionsCount) {\n return (\n
\n \n \n \n

\n on the site.\n Attempting to connect...\n

\n
\n );\n } else {\n return null;\n }\n};\n\nexport default PreRenderPlaceholder;\n","import React, { useRef } from 'react';\n\n/*\n * Used to preview the prompt display.\n * Requires glass client js to be loaded.\n */\nconst PreviewPrompt = (props) => {\n const button = useRef(null);\n\n const openPrompt = () => {\n Glass.openPrompt(props.operatorName, props.siteName, props.avatarUrl, message(), props.calendarUrl);\n };\n\n const message = () => {\n let m = null;\n if (props.messageElement) {\n m = document.getElementById(props.messageElement).value;\n } else {\n m = props.message;\n }\n return m;\n };\n\n return (\n \n Preview Call Greeting\n \n );\n};\n\nexport default PreviewPrompt;\n","import React, { useEffect, useRef, useState } from 'react';\nimport useFetch from 'use-http';\nimport { Replayer } from 'rrweb';\nimport Spinner from './LiveReplayerSpinner';\nimport DocVisible from './LiveReplayerDocumentVisibility';\nimport LastActive from './LiveReplayerLastActive';\nimport Call from './Call';\nimport IndiciaHeader from './IndiciaHeader';\n\n// Max height (in px) to use for screen.\nconst INITIAL_HEIGHT = 600;\n\n/*\n * React function compontent to render a live view for a particular person.\n * This is based on LiveReplayerComponent and is very non-DRY.\n */\n\nfunction ScreenView(props) {\n const [replayer, initReplayer] = useState();\n const [activePerson, setActivePerson] = useState(false);\n const [events, setEvents] = useState([]);\n // Indicia is an Object with information about the person associated\n // w/the session (email, ip address, device, etc).\n const [indicia, setIndicia] = useState({ attributes: {}, device_icons: {}, utm_params: {} });\n const { cache, get, response } = useFetch();\n const [initialWidth, setInitialWidth] = useState();\n const [initialHeight, setInitialHeight] = useState();\n const [iFrameSize, setIframeSize] = useState({ width: null, height: null });\n const [documentVisible, setDocumentVisible] = useState();\n const [activePanel, setActivePanel] = useState('screen');\n const [sessionChannel, setSessionChannel] = useState();\n const [hasEvents, setHasEvents] = useState(props.hasEvents);\n\n const refTimestamp = useRef(null);\n\n const screenContainerEl = useRef(null); // .livePersonContainer\n\n /*\n * Given `width` and `height` params:\n * 1. resizes the .replayer_wrapper div (parent to the iframe) so its aspect\n * ratio matches the width x height of the event.\n * 2. scales the content of the iframe so the entire window fits within the iframe.\n */\n const scaleIframeSize = (width, height) => {\n // Need to find this element in the DOM as it is added when the rrweb player is\n // initialized.\n if (!replayer || !replayer.wrapper) {\n return;\n }\n const replayerWrapper = replayer.wrapper;\n\n const screenRatio = (width, height) => {\n // calculate the screen width and height ratios to the the containers they need to fit.\n const widthRatio = parseFloat((1 / (width / initialWidth)).toFixed(2));\n const heightRatio = parseFloat((1 / (height / initialHeight)).toFixed(2));\n // determine the scaling ratio to use when displaying the user's screen.\n // use the smallest scale ratio btw the width height. for example, if on a very wide screen,\n // the width ratio will be the smallest as it has to shrink the most.\n return Math.min(widthRatio, heightRatio).toFixed(2);\n };\n const scaleValue = screenRatio(width, height);\n console.debug(\n `Screen width=${width} height=${height} scaleValue=${scaleValue}, initialWidth=${initialWidth}, initialHeight=${initialHeight}`,\n );\n // Set the styles\n replayerWrapper.style.width = `${width * scaleValue}px`;\n replayerWrapper.style.height = `${height * scaleValue}px`;\n replayerWrapper.style.transform = `scale(${scaleValue})`;\n };\n\n useEffect(() => {\n scaleIframeSize(iFrameSize.width, iFrameSize.height);\n }, [iFrameSize]);\n\n useEffect(() => {\n setSessionChannel(props.ably.channels.get(props.channelName));\n }, []);\n\n const setupChannel = () => {\n if (!sessionChannel) {\n return;\n }\n sessionChannel.presence.enter({ userType: 'operator' }, function (err) {\n if (err) {\n return console.error(err);\n }\n console.debug('[Glass.io] Successfully present on the channel=', sessionChannel.name);\n });\n };\n useEffect(setupChannel, [sessionChannel]);\n\n // Init Replayer instance\n useEffect(() => {\n if (!hasEvents) {\n return;\n }\n const newReplayer = new Replayer([], {\n liveMode: true,\n root: screenContainerEl.current,\n // otherwise the iframe will steak focus from outside page elements (like the chat form)\n mouseTail: false,\n triggerFocus: false,\n });\n initReplayer(newReplayer);\n props.onInitReplayer(props.sessionId);\n // See https://github.com/rrweb-io/rrweb/blob/de755ae577ac361dd1883a89d2597712b6a9cf93/guide.md\n // for events.\n }, [hasEvents]);\n\n useEffect(() => {\n if (!screenContainerEl.current) {\n return;\n }\n console.debug(\n 'Setting initial width and height from screenContainerEl=',\n screenContainerEl,\n 'width:',\n screenContainerEl.current.clientWidth,\n 'height=',\n screenContainerEl.current.clientHeight,\n );\n setInitialWidth(screenContainerEl.current.clientWidth);\n setInitialHeight(INITIAL_HEIGHT);\n }, [hasEvents]);\n\n useEffect(() => {\n if (hasEvents) {\n console.debug('Received first event. sessionId=', props.sessionId);\n }\n }, [hasEvents]);\n\n /*\n * Fetch indicia about the person associated with the session id.\n * Update the `indicia` state with the result.\n */\n const getIndica = async () => {\n if (props.disableFetch) {\n return;\n }\n const newIndicia = await get(`/sites/${props.siteId}/people/${props.sessionId}/indicia`);\n if (response.ok) {\n console.debug('indicia=', newIndicia);\n // Record when last rendered to help identify users that are not\n // interacting w/the site.\n newIndicia.rendered_at = new Date();\n newIndicia.first_seen_at = new Date(newIndicia.first_seen_at);\n setIndicia(newIndicia);\n }\n };\n\n const getNewEvents = async () => {\n cache.clear();\n if (props.disableFetch) {\n // still want to render the component.\n if (!activePerson) {\n setActivePerson(true);\n setHasEvents(true);\n }\n return;\n }\n const newEvents = await get(`/api/events/${props.sessionId}/${refTimestamp.current || ''}`);\n if (response.ok && newEvents.length) {\n if (!hasEvents) {\n setHasEvents(true);\n }\n refTimestamp.current = newEvents[newEvents.length - 1].timestamp;\n console.debug('Set new refTimestamp=', new Date(refTimestamp.current));\n setEvents(newEvents);\n }\n };\n\n // Add events to the replayer when they change.\n useEffect(() => {\n if (events.length > 0) {\n if (!activePerson) {\n console.debug(\n 'Starting replayer at timestamp=',\n new Date(events[0].timestamp),\n 'refTimestamp=',\n new Date(refTimestamp.current),\n );\n replayer.startLive(events[0].timestamp - 200);\n setActivePerson(true);\n }\n\n for (const event of events) {\n // Scale iframe size to fit in the parent container\n if (event.data && event.data.width && event.data.height) {\n // extract just width and height into a new object\n const newSize = (({ width, height }) => ({ width, height }))(event.data);\n setIframeSize(newSize);\n }\n if (event.type === 5 && event.data.tag === 'document-visible') {\n setDocumentVisible(event.data.payload.visible);\n }\n if (props.disableReplay) {\n // Testing not rendering events to see impact on performance\n console.debug('[IGNORE]. props.disableReplay=TRUE event=', event);\n } else {\n // console.debug(`Adding event to replayer. Age=${(new Date() - new Date(event.timestamp))/1000} seconds`, {session_id: props.sessionId, type: event.type, timestamp: event.timestamp})\n replayer.addEvent(event);\n }\n }\n }\n }, [events]);\n\n useEffect(() => {\n getNewEvents();\n getIndica();\n }, []);\n\n const subscribe = () => {\n console.debug('Subscribing to sessionChannel new-events=', props.sessionId);\n // When a new-events message is received, update the displayed indicia and\n // fetch new events to play in the live replayer.\n sessionChannel.subscribe('new-events', async function (msg) {\n // console.debug(\"new-events message received from channel=\", sessionChannel)\n await getIndica();\n await getNewEvents();\n });\n };\n\n useEffect(() => {\n if (!sessionChannel) {\n return;\n }\n subscribe();\n\n return function cleanup() {\n console.debug('LiveReplayerComponent cleanup. sessionId=', props.sessionId);\n sessionChannel.detach();\n sessionChannel.on('detached', function (stateChange) {\n console.debug('Releasing channel=', props.sessionId);\n // enable garbage collection\n props.ably.channels.release(props.sessionId);\n props.onCleanup(props.sessionId);\n });\n };\n }, [sessionChannel]);\n\n const handleToggleClick = (event) => {\n const panel = event.target.closest('button').name;\n setActivePanel(panel);\n };\n\n if (hasEvents) {\n return (\n \n \n {!activePerson && }\n \n \n );\n } else {\n return null;\n }\n}\n\nScreenView.defaultProps = {\n showHeader: true,\n showFooter: true,\n};\n\nexport default ScreenView;\n","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction e() {}\nfunction t(e, t) {\n for (const n in t) e[n] = t[n];\n return e;\n}\nfunction n(e) {\n return e();\n}\nfunction r() {\n return Object.create(null);\n}\nfunction i(e) {\n e.forEach(n);\n}\nfunction o(e) {\n return \"function\" == typeof e;\n}\nfunction a(e, t) {\n return e != e ? t == t : e !== t || e && \"object\" == typeof e || \"function\" == typeof e;\n}\nfunction s(e) {\n const t = {};\n for (const n in e) \"$\" !== n[0] && (t[n] = e[n]);\n return t;\n}\nfunction l(e, t) {\n e.appendChild(t);\n}\nfunction c(e, t, n) {\n e.insertBefore(t, n || null);\n}\nfunction u(e) {\n e.parentNode.removeChild(e);\n}\nfunction d(e, t) {\n for (let n = 0; n < e.length; n += 1) e[n] && e[n].d(t);\n}\nfunction f(e) {\n return document.createElement(e);\n}\nfunction p(e) {\n return document.createElementNS(\"http://www.w3.org/2000/svg\", e);\n}\nfunction h(e) {\n return document.createTextNode(e);\n}\nfunction m() {\n return h(\" \");\n}\nfunction v(e, t, n, r) {\n return e.addEventListener(t, n, r), () => e.removeEventListener(t, n, r);\n}\nfunction y(e, t, n) {\n null == n ? e.removeAttribute(t) : e.getAttribute(t) !== n && e.setAttribute(t, n);\n}\nfunction g(e, t) {\n t = \"\" + t, e.wholeText !== t && (e.data = t);\n}\nfunction b(e, t, n, r) {\n e.style.setProperty(t, n, r ? \"important\" : \"\");\n}\nfunction w(e, t, n) {\n e.classList[n ? \"add\" : \"remove\"](t);\n}\nlet x;\nfunction S(e) {\n x = e;\n}\nfunction E() {\n if (!x) throw new Error(\"Function called outside component initialization\");\n return x;\n}\nfunction T(e) {\n E().$$.on_mount.push(e);\n}\nfunction M(e) {\n E().$$.on_destroy.push(e);\n}\nfunction k() {\n const e = E();\n return (t, n) => {\n const r = e.$$.callbacks[t];\n if (r) {\n const i = function (e, t) {\n let n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : !1;\n const r = document.createEvent(\"CustomEvent\");\n return r.initCustomEvent(e, n, !1, t), r;\n }(t, n);\n r.slice().forEach(t => {\n t.call(e, i);\n });\n }\n };\n}\nconst C = [],\n I = [],\n N = [],\n A = [],\n _ = Promise.resolve();\nlet $ = !1;\nfunction D(e) {\n N.push(e);\n}\nlet R = !1;\nconst L = new Set();\nfunction F() {\n if (!R) {\n R = !0;\n do {\n for (let e = 0; e < C.length; e += 1) {\n const t = C[e];\n S(t), P(t.$$);\n }\n for (S(null), C.length = 0; I.length;) I.pop()();\n for (let e = 0; e < N.length; e += 1) {\n const t = N[e];\n L.has(t) || (L.add(t), t());\n }\n N.length = 0;\n } while (C.length);\n for (; A.length;) A.pop()();\n $ = !1, R = !1, L.clear();\n }\n}\nfunction P(e) {\n if (null !== e.fragment) {\n e.update(), i(e.before_update);\n const t = e.dirty;\n e.dirty = [-1], e.fragment && e.fragment.p(e.ctx, t), e.after_update.forEach(D);\n }\n}\nconst O = new Set();\nlet j;\nfunction W() {\n j = {\n r: 0,\n c: [],\n p: j\n };\n}\nfunction B() {\n j.r || i(j.c), j = j.p;\n}\nfunction z(e, t) {\n e && e.i && (O.delete(e), e.i(t));\n}\nfunction U(e, t, n, r) {\n if (e && e.o) {\n if (O.has(e)) return;\n O.add(e), j.c.push(() => {\n O.delete(e), r && (n && e.d(1), r());\n }), e.o(t);\n }\n}\nfunction q(e) {\n e && e.c();\n}\nfunction H(e, t, r, a) {\n const _e$$$ = e.$$,\n s = _e$$$.fragment,\n l = _e$$$.on_mount,\n c = _e$$$.on_destroy,\n u = _e$$$.after_update;\n s && s.m(t, r), a || D(() => {\n const t = l.map(n).filter(o);\n c ? c.push(...t) : i(t), e.$$.on_mount = [];\n }), u.forEach(D);\n}\nfunction V(e, t) {\n const n = e.$$;\n null !== n.fragment && (i(n.on_destroy), n.fragment && n.fragment.d(t), n.on_destroy = n.fragment = null, n.ctx = []);\n}\nfunction G(e, t) {\n -1 === e.$$.dirty[0] && (C.push(e), $ || ($ = !0, _.then(F)), e.$$.dirty.fill(0)), e.$$.dirty[t / 31 | 0] |= 1 << t % 31;\n}\nfunction Y(t, n, o, a, s, l, c) {\n let d = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : [-1];\n const f = x;\n S(t);\n const p = t.$$ = {\n fragment: null,\n ctx: null,\n props: l,\n update: e,\n not_equal: s,\n bound: r(),\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(f ? f.$$.context : n.context || []),\n callbacks: r(),\n dirty: d,\n skip_bound: !1,\n root: n.target || f.$$.root\n };\n c && c(p.root);\n let h = !1;\n if (p.ctx = o ? o(t, n.props || {}, function (e, n) {\n const i = (arguments.length <= 2 ? 0 : arguments.length - 2) ? arguments.length <= 2 ? undefined : arguments[2] : n;\n return p.ctx && s(p.ctx[e], p.ctx[e] = i) && (!p.skip_bound && p.bound[e] && p.bound[e](i), h && G(t, e)), n;\n }) : [], p.update(), h = !0, i(p.before_update), p.fragment = !!a && a(p.ctx), n.target) {\n if (n.hydrate) {\n const e = function (e) {\n return Array.from(e.childNodes);\n }(n.target);\n p.fragment && p.fragment.l(e), e.forEach(u);\n } else p.fragment && p.fragment.c();\n n.intro && z(t.$$.fragment), H(t, n.target, n.anchor, n.customElement), F();\n }\n S(f);\n}\nclass X {\n $destroy() {\n V(this, 1), this.$destroy = e;\n }\n $on(e, t) {\n const n = this.$$.callbacks[e] || (this.$$.callbacks[e] = []);\n return n.push(t), () => {\n const e = n.indexOf(t);\n -1 !== e && n.splice(e, 1);\n };\n }\n $set(e) {\n var t;\n this.$$set && (t = e, 0 !== Object.keys(t).length) && (this.$$.skip_bound = !0, this.$$set(e), this.$$.skip_bound = !1);\n }\n}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar Q,\n J = function () {\n return (J = Object.assign || function (e) {\n for (var t, n = 1, r = arguments.length; n < r; n++) for (var i in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);\n return e;\n }).apply(this, arguments);\n };\nfunction K(e) {\n var t = \"function\" == typeof Symbol && Symbol.iterator,\n n = t && e[t],\n r = 0;\n if (n) return n.call(e);\n if (e && \"number\" == typeof e.length) return {\n next: function () {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n throw new TypeError(t ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nfunction Z(e, t) {\n var n = \"function\" == typeof Symbol && e[Symbol.iterator];\n if (!n) return e;\n var r,\n i,\n o = n.call(e),\n a = [];\n try {\n for (; (void 0 === t || t-- > 0) && !(r = o.next()).done;) a.push(r.value);\n } catch (e) {\n i = {\n error: e\n };\n } finally {\n try {\n r && !r.done && (n = o.return) && n.call(o);\n } finally {\n if (i) throw i.error;\n }\n }\n return a;\n}\nfunction ee(e, t, n) {\n if (n || 2 === arguments.length) for (var r, i = 0, o = t.length; i < o; i++) !r && i in t || (r || (r = Array.prototype.slice.call(t, 0, i)), r[i] = t[i]);\n return e.concat(r || Array.prototype.slice.call(t));\n}\nfunction te(e) {\n return e.nodeType === e.ELEMENT_NODE;\n}\n!function (e) {\n e[e.Document = 0] = \"Document\", e[e.DocumentType = 1] = \"DocumentType\", e[e.Element = 2] = \"Element\", e[e.Text = 3] = \"Text\", e[e.CDATA = 4] = \"CDATA\", e[e.Comment = 5] = \"Comment\";\n}(Q || (Q = {}));\nvar ne = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\nfunction re(e, t) {\n void 0 === t && (t = {});\n var n = 1,\n r = 1;\n function i(e) {\n var t = e.match(/\\n/g);\n t && (n += t.length);\n var i = e.lastIndexOf(\"\\n\");\n r = -1 === i ? r + e.length : e.length - i;\n }\n function o() {\n var e = {\n line: n,\n column: r\n };\n return function (t) {\n return t.position = new a(e), p(), t;\n };\n }\n var a = function (e) {\n this.start = e, this.end = {\n line: n,\n column: r\n }, this.source = t.source;\n };\n a.prototype.content = e;\n var s = [];\n function l(i) {\n var o = new Error(t.source + \":\" + n + \":\" + r + \": \" + i);\n if (o.reason = i, o.filename = t.source, o.line = n, o.column = r, o.source = e, !t.silent) throw o;\n s.push(o);\n }\n function c() {\n return f(/^{\\s*/);\n }\n function u() {\n return f(/^}/);\n }\n function d() {\n var t,\n n = [];\n for (p(), h(n); e.length && \"}\" !== e.charAt(0) && (t = M() || k());) !1 !== t && (n.push(t), h(n));\n return n;\n }\n function f(t) {\n var n = t.exec(e);\n if (n) {\n var r = n[0];\n return i(r), e = e.slice(r.length), n;\n }\n }\n function p() {\n f(/^\\s*/);\n }\n function h(e) {\n var t;\n for (void 0 === e && (e = []); t = m();) !1 !== t && e.push(t), t = m();\n return e;\n }\n function m() {\n var t = o();\n if (\"/\" === e.charAt(0) && \"*\" === e.charAt(1)) {\n for (var n = 2; \"\" !== e.charAt(n) && (\"*\" !== e.charAt(n) || \"/\" !== e.charAt(n + 1));) ++n;\n if (n += 2, \"\" === e.charAt(n - 1)) return l(\"End of comment missing\");\n var a = e.slice(2, n - 2);\n return r += 2, i(a), e = e.slice(n), r += 2, t({\n type: \"comment\",\n comment: a\n });\n }\n }\n function v() {\n var e = f(/^([^{]+)/);\n if (e) return ie(e[0]).replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, \"\").replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, function (e) {\n return e.replace(/,/g, \"‌\");\n }).split(/\\s*(?![^(]*\\)),\\s*/).map(function (e) {\n return e.replace(/\\u200C/g, \",\");\n });\n }\n function y() {\n var e = o(),\n t = f(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\n if (t) {\n var n = ie(t[0]);\n if (!f(/^:\\s*/)) return l(\"property missing ':'\");\n var r = f(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/),\n i = e({\n type: \"declaration\",\n property: n.replace(ne, \"\"),\n value: r ? ie(r[0]).replace(ne, \"\") : \"\"\n });\n return f(/^[;\\s]*/), i;\n }\n }\n function g() {\n var e,\n t = [];\n if (!c()) return l(\"missing '{'\");\n for (h(t); e = y();) !1 !== e && (t.push(e), h(t)), e = y();\n return u() ? t : l(\"missing '}'\");\n }\n function b() {\n for (var e, t = [], n = o(); e = f(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/);) t.push(e[1]), f(/^,\\s*/);\n if (t.length) return n({\n type: \"keyframe\",\n values: t,\n declarations: g()\n });\n }\n var w,\n x = T(\"import\"),\n S = T(\"charset\"),\n E = T(\"namespace\");\n function T(e) {\n var t = new RegExp(\"^@\" + e + \"\\\\s*([^;]+);\");\n return function () {\n var n = o(),\n r = f(t);\n if (r) {\n var i = {\n type: e\n };\n return i[e] = r[1].trim(), n(i);\n }\n };\n }\n function M() {\n if (\"@\" === e[0]) return function () {\n var e = o(),\n t = f(/^@([-\\w]+)?keyframes\\s*/);\n if (t) {\n var n = t[1];\n if (!(t = f(/^([-\\w]+)\\s*/))) return l(\"@keyframes missing name\");\n var r,\n i = t[1];\n if (!c()) return l(\"@keyframes missing '{'\");\n for (var a = h(); r = b();) a.push(r), a = a.concat(h());\n return u() ? e({\n type: \"keyframes\",\n name: i,\n vendor: n,\n keyframes: a\n }) : l(\"@keyframes missing '}'\");\n }\n }() || function () {\n var e = o(),\n t = f(/^@media *([^{]+)/);\n if (t) {\n var n = ie(t[1]);\n if (!c()) return l(\"@media missing '{'\");\n var r = h().concat(d());\n return u() ? e({\n type: \"media\",\n media: n,\n rules: r\n }) : l(\"@media missing '}'\");\n }\n }() || function () {\n var e = o(),\n t = f(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\n if (t) return e({\n type: \"custom-media\",\n name: ie(t[1]),\n media: ie(t[2])\n });\n }() || function () {\n var e = o(),\n t = f(/^@supports *([^{]+)/);\n if (t) {\n var n = ie(t[1]);\n if (!c()) return l(\"@supports missing '{'\");\n var r = h().concat(d());\n return u() ? e({\n type: \"supports\",\n supports: n,\n rules: r\n }) : l(\"@supports missing '}'\");\n }\n }() || x() || S() || E() || function () {\n var e = o(),\n t = f(/^@([-\\w]+)?document *([^{]+)/);\n if (t) {\n var n = ie(t[1]),\n r = ie(t[2]);\n if (!c()) return l(\"@document missing '{'\");\n var i = h().concat(d());\n return u() ? e({\n type: \"document\",\n document: r,\n vendor: n,\n rules: i\n }) : l(\"@document missing '}'\");\n }\n }() || function () {\n var e = o();\n if (f(/^@page */)) {\n var t = v() || [];\n if (!c()) return l(\"@page missing '{'\");\n for (var n, r = h(); n = y();) r.push(n), r = r.concat(h());\n return u() ? e({\n type: \"page\",\n selectors: t,\n declarations: r\n }) : l(\"@page missing '}'\");\n }\n }() || function () {\n var e = o();\n if (f(/^@host\\s*/)) {\n if (!c()) return l(\"@host missing '{'\");\n var t = h().concat(d());\n return u() ? e({\n type: \"host\",\n rules: t\n }) : l(\"@host missing '}'\");\n }\n }() || function () {\n var e = o();\n if (f(/^@font-face\\s*/)) {\n if (!c()) return l(\"@font-face missing '{'\");\n for (var t, n = h(); t = y();) n.push(t), n = n.concat(h());\n return u() ? e({\n type: \"font-face\",\n declarations: n\n }) : l(\"@font-face missing '}'\");\n }\n }();\n }\n function k() {\n var e = o(),\n t = v();\n return t ? (h(), e({\n type: \"rule\",\n selectors: t,\n declarations: g()\n })) : l(\"selector missing\");\n }\n return oe((w = d(), {\n type: \"stylesheet\",\n stylesheet: {\n source: t.source,\n rules: w,\n parsingErrors: s\n }\n }));\n}\nfunction ie(e) {\n return e ? e.replace(/^\\s+|\\s+$/g, \"\") : \"\";\n}\nfunction oe(e, t) {\n for (var n = e && \"string\" == typeof e.type, r = n ? e : t, i = 0, o = Object.keys(e); i < o.length; i++) {\n var a = e[o[i]];\n Array.isArray(a) ? a.forEach(function (e) {\n oe(e, r);\n }) : a && \"object\" == typeof a && oe(a, r);\n }\n return n && Object.defineProperty(e, \"parent\", {\n configurable: !0,\n writable: !0,\n enumerable: !1,\n value: t || null\n }), e;\n}\nvar ae = {\n script: \"noscript\",\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nvar se,\n le,\n ce,\n ue,\n de,\n fe,\n pe = /([^\\\\]):hover/,\n he = new RegExp(pe.source, \"g\");\nfunction me(e, t) {\n var n = null == t ? void 0 : t.stylesWithHoverClass.get(e);\n if (n) return n;\n var r = re(e, {\n silent: !0\n });\n if (!r.stylesheet) return e;\n var i = [];\n if (r.stylesheet.rules.forEach(function (e) {\n \"selectors\" in e && (e.selectors || []).forEach(function (e) {\n pe.test(e) && i.push(e);\n });\n }), 0 === i.length) return e;\n var o = new RegExp(i.filter(function (e, t) {\n return i.indexOf(e) === t;\n }).sort(function (e, t) {\n return t.length - e.length;\n }).map(function (e) {\n return e.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n }).join(\"|\"), \"g\"),\n a = e.replace(o, function (e) {\n var t = e.replace(he, \"$1.\\\\:hover\");\n return e + \", \" + t;\n });\n return null == t || t.stylesWithHoverClass.set(e, a), a;\n}\nfunction ve() {\n return {\n stylesWithHoverClass: new Map()\n };\n}\nfunction ye(e, t) {\n var n = t.doc,\n r = t.hackCss,\n i = t.cache;\n switch (e.type) {\n case Q.Document:\n return n.implementation.createDocument(null, \"\", null);\n case Q.DocumentType:\n return n.implementation.createDocumentType(e.name || \"html\", e.publicId, e.systemId);\n case Q.Element:\n var o,\n a = function (e) {\n var t = ae[e.tagName] ? ae[e.tagName] : e.tagName;\n return \"link\" === t && e.attributes._cssText && (t = \"style\"), t;\n }(e);\n o = e.isSVG ? n.createElementNS(\"http://www.w3.org/2000/svg\", a) : n.createElement(a);\n var s = function (t) {\n if (!e.attributes.hasOwnProperty(t)) return \"continue\";\n var s = e.attributes[t];\n if (\"option\" === a && \"selected\" === t && !1 === s) return \"continue\";\n if (s = \"boolean\" == typeof s || \"number\" == typeof s ? \"\" : s, t.startsWith(\"rr_\")) {\n if (\"canvas\" === a && \"rr_dataURL\" === t) {\n var l = document.createElement(\"img\");\n l.src = s, l.onload = function () {\n var e = o.getContext(\"2d\");\n e && e.drawImage(l, 0, 0, l.width, l.height);\n };\n } else if (\"img\" === a && \"rr_dataURL\" === t) {\n var c = o;\n c.currentSrc.startsWith(\"data:\") || (c.setAttribute(\"rrweb-original-src\", e.attributes.src), c.src = s);\n }\n if (\"rr_width\" === t) o.style.width = s;else if (\"rr_height\" === t) o.style.height = s;else if (\"rr_mediaCurrentTime\" === t) o.currentTime = e.attributes.rr_mediaCurrentTime;else if (\"rr_mediaState\" === t) switch (s) {\n case \"played\":\n o.play().catch(function (e) {\n return console.warn(\"media playback error\", e);\n });\n break;\n case \"paused\":\n o.pause();\n }\n } else {\n var u = \"textarea\" === a && \"value\" === t,\n d = \"style\" === a && \"_cssText\" === t;\n if (d && r && (s = me(s, i)), u || d) {\n for (var f = n.createTextNode(s), p = 0, h = Array.from(o.childNodes); p < h.length; p++) {\n var m = h[p];\n m.nodeType === o.TEXT_NODE && o.removeChild(m);\n }\n return o.appendChild(f), \"continue\";\n }\n try {\n if (e.isSVG && \"xlink:href\" === t) o.setAttributeNS(\"http://www.w3.org/1999/xlink\", t, s);else if (\"onload\" === t || \"onclick\" === t || \"onmouse\" === t.substring(0, 7)) o.setAttribute(\"_\" + t, s);else {\n if (\"meta\" === a && \"Content-Security-Policy\" === e.attributes[\"http-equiv\"] && \"content\" === t) return o.setAttribute(\"csp-content\", s), \"continue\";\n \"link\" === a && \"preload\" === e.attributes.rel && \"script\" === e.attributes.as || \"link\" === a && \"prefetch\" === e.attributes.rel && \"string\" == typeof e.attributes.href && e.attributes.href.endsWith(\".js\") || (\"img\" === a && e.attributes.srcset && e.attributes.rr_dataURL ? o.setAttribute(\"rrweb-original-srcset\", e.attributes.srcset) : o.setAttribute(t, s));\n }\n } catch (e) {}\n }\n };\n for (var l in e.attributes) s(l);\n if (e.isShadowHost) if (o.shadowRoot) for (; o.shadowRoot.firstChild;) o.shadowRoot.removeChild(o.shadowRoot.firstChild);else o.attachShadow({\n mode: \"open\"\n });\n return o;\n case Q.Text:\n return n.createTextNode(e.isStyle && r ? me(e.textContent, i) : e.textContent);\n case Q.CDATA:\n return n.createCDATASection(e.textContent);\n case Q.Comment:\n return n.createComment(e.textContent);\n default:\n return null;\n }\n}\nfunction ge(e, t) {\n var n = t.doc,\n r = t.map,\n i = t.skipChild,\n o = void 0 !== i && i,\n a = t.hackCss,\n s = void 0 === a || a,\n l = t.afterAppend,\n c = t.cache,\n u = ye(e, {\n doc: n,\n hackCss: s,\n cache: c\n });\n if (!u) return null;\n if (e.rootId && console.assert(r[e.rootId] === n, \"Target document should has the same root id.\"), e.type === Q.Document && (n.close(), n.open(), \"BackCompat\" === e.compatMode && e.childNodes && e.childNodes[0].type !== Q.DocumentType && (e.childNodes[0].type === Q.Element && \"xmlns\" in e.childNodes[0].attributes && \"http://www.w3.org/1999/xhtml\" === e.childNodes[0].attributes.xmlns ? n.write('') : n.write('')), u = n), u.__sn = e, r[e.id] = u, (e.type === Q.Document || e.type === Q.Element) && !o) for (var d = 0, f = e.childNodes; d < f.length; d++) {\n var p = f[d],\n h = ge(p, {\n doc: n,\n map: r,\n skipChild: !1,\n hackCss: s,\n afterAppend: l,\n cache: c\n });\n h ? (p.isShadow && te(u) && u.shadowRoot ? u.shadowRoot.appendChild(h) : u.appendChild(h), l && l(h)) : console.warn(\"Failed to rebuild\", p);\n }\n return u;\n}\nfunction be(e, t) {\n var n = t.doc,\n r = t.onVisit,\n i = t.hackCss,\n o = {},\n a = ge(e, {\n doc: n,\n map: o,\n skipChild: !1,\n hackCss: void 0 === i || i,\n afterAppend: t.afterAppend,\n cache: t.cache\n });\n return function (e, t) {\n for (var n in e) e[n] && (r = e[n], t(r));\n var r;\n }(o, function (e) {\n r && r(e), function (e) {\n var t = e.__sn;\n if (t.type === Q.Element) {\n var n = e;\n for (var r in t.attributes) if (t.attributes.hasOwnProperty(r) && r.startsWith(\"rr_\")) {\n var i = t.attributes[r];\n \"rr_scrollLeft\" === r && (n.scrollLeft = i), \"rr_scrollTop\" === r && (n.scrollTop = i);\n }\n }\n }(e);\n }), [a, o];\n}\n!function (e) {\n e[e.DomContentLoaded = 0] = \"DomContentLoaded\", e[e.Load = 1] = \"Load\", e[e.FullSnapshot = 2] = \"FullSnapshot\", e[e.IncrementalSnapshot = 3] = \"IncrementalSnapshot\", e[e.Meta = 4] = \"Meta\", e[e.Custom = 5] = \"Custom\", e[e.Plugin = 6] = \"Plugin\";\n}(se || (se = {})), function (e) {\n e[e.Mutation = 0] = \"Mutation\", e[e.MouseMove = 1] = \"MouseMove\", e[e.MouseInteraction = 2] = \"MouseInteraction\", e[e.Scroll = 3] = \"Scroll\", e[e.ViewportResize = 4] = \"ViewportResize\", e[e.Input = 5] = \"Input\", e[e.TouchMove = 6] = \"TouchMove\", e[e.MediaInteraction = 7] = \"MediaInteraction\", e[e.StyleSheetRule = 8] = \"StyleSheetRule\", e[e.CanvasMutation = 9] = \"CanvasMutation\", e[e.Font = 10] = \"Font\", e[e.Log = 11] = \"Log\", e[e.Drag = 12] = \"Drag\", e[e.StyleDeclaration = 13] = \"StyleDeclaration\";\n}(le || (le = {})), function (e) {\n e[e.MouseUp = 0] = \"MouseUp\", e[e.MouseDown = 1] = \"MouseDown\", e[e.Click = 2] = \"Click\", e[e.ContextMenu = 3] = \"ContextMenu\", e[e.DblClick = 4] = \"DblClick\", e[e.Focus = 5] = \"Focus\", e[e.Blur = 6] = \"Blur\", e[e.TouchStart = 7] = \"TouchStart\", e[e.TouchMove_Departed = 8] = \"TouchMove_Departed\", e[e.TouchEnd = 9] = \"TouchEnd\", e[e.TouchCancel = 10] = \"TouchCancel\";\n}(ce || (ce = {})), function (e) {\n e[e[\"2D\"] = 0] = \"2D\", e[e.WebGL = 1] = \"WebGL\", e[e.WebGL2 = 2] = \"WebGL2\";\n}(ue || (ue = {})), function (e) {\n e[e.Play = 0] = \"Play\", e[e.Pause = 1] = \"Pause\", e[e.Seeked = 2] = \"Seeked\", e[e.VolumeChange = 3] = \"VolumeChange\";\n}(de || (de = {})), function (e) {\n e.Start = \"start\", e.Pause = \"pause\", e.Resume = \"resume\", e.Resize = \"resize\", e.Finish = \"finish\", e.FullsnapshotRebuilded = \"fullsnapshot-rebuilded\", e.LoadStylesheetStart = \"load-stylesheet-start\", e.LoadStylesheetEnd = \"load-stylesheet-end\", e.SkipStart = \"skip-start\", e.SkipEnd = \"skip-end\", e.MouseInteraction = \"mouse-interaction\", e.EventCast = \"event-cast\", e.CustomEvent = \"custom-event\", e.Flush = \"flush\", e.StateChange = \"state-change\", e.PlayBack = \"play-back\";\n}(fe || (fe = {}));\nvar we = \"Please stop import mirror directly. Instead of that,\\r\\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\\r\\nor you can use record.mirror to access the mirror instance during recording.\",\n xe = {\n map: {},\n getId: function () {\n return console.error(we), -1;\n },\n getNode: function () {\n return console.error(we), null;\n },\n removeNodeFromMap: function () {\n console.error(we);\n },\n has: function () {\n return console.error(we), !1;\n },\n reset: function () {\n console.error(we);\n }\n };\n\"undefined\" != typeof window && window.Proxy && window.Reflect && (xe = new Proxy(xe, {\n get: function (e, t, n) {\n return \"map\" === t && console.error(we), Reflect.get(e, t, n);\n }\n}));\nvar Se = function () {\n function e() {\n this.reset();\n }\n return e.prototype.add = function (e) {\n var t = this.indexes.get(e.parentId),\n n = {\n id: e.node.id,\n mutation: e,\n children: [],\n texts: [],\n attributes: []\n };\n t ? (n.parent = t, t.children[n.id] = n) : this.tree[n.id] = n, this.indexes.set(n.id, n);\n }, e.prototype.remove = function (e, t) {\n var n = this,\n r = this.indexes.get(e.parentId),\n i = this.indexes.get(e.id),\n o = function (e) {\n n.removeIdSet.add(e);\n var r = t.getNode(e);\n null == r || r.childNodes.forEach(function (e) {\n \"__sn\" in e && o(e.__sn.id);\n });\n },\n a = function (t) {\n n.removeIdSet.add(t.id), Object.values(t.children).forEach(function (e) {\n return a(e);\n });\n var r = n.indexes.get(t.id);\n if (r) {\n var i = r.parent;\n i && (delete r.parent, delete i.children[r.id], n.indexes.delete(e.id));\n }\n };\n i ? r ? (delete i.parent, delete r.children[i.id], this.indexes.delete(e.id), a(i)) : (delete this.tree[i.id], this.indexes.delete(i.id), a(i)) : (this.removeNodeMutations.push(e), o(e.id));\n }, e.prototype.text = function (e) {\n var t = this.indexes.get(e.id);\n t ? t.texts.push(e) : this.textMutations.push(e);\n }, e.prototype.attribute = function (e) {\n var t = this.indexes.get(e.id);\n t ? t.attributes.push(e) : this.attributeMutations.push(e);\n }, e.prototype.scroll = function (e) {\n this.scrollMap.set(e.id, e);\n }, e.prototype.input = function (e) {\n this.inputMap.set(e.id, e);\n }, e.prototype.flush = function () {\n var e,\n t,\n n,\n r,\n i = this,\n o = this,\n a = o.tree,\n s = o.removeNodeMutations,\n l = o.textMutations,\n c = o.attributeMutations,\n u = {\n source: le.Mutation,\n removes: s,\n texts: l,\n attributes: c,\n adds: []\n },\n d = function (e, t) {\n t && i.removeIdSet.add(e.id), u.texts = u.texts.concat(t ? [] : e.texts).filter(function (e) {\n return !i.removeIdSet.has(e.id);\n }), u.attributes = u.attributes.concat(t ? [] : e.attributes).filter(function (e) {\n return !i.removeIdSet.has(e.id);\n }), i.removeIdSet.has(e.id) || i.removeIdSet.has(e.mutation.parentId) || t ? Object.values(e.children).forEach(function (e) {\n return d(e, !0);\n }) : (u.adds.push(e.mutation), e.children && Object.values(e.children).forEach(function (e) {\n return d(e, !1);\n }));\n };\n Object.values(a).forEach(function (e) {\n return d(e, !1);\n });\n try {\n for (var f = K(this.scrollMap.keys()), p = f.next(); !p.done; p = f.next()) {\n var h = p.value;\n this.removeIdSet.has(h) && this.scrollMap.delete(h);\n }\n } catch (t) {\n e = {\n error: t\n };\n } finally {\n try {\n p && !p.done && (t = f.return) && t.call(f);\n } finally {\n if (e) throw e.error;\n }\n }\n try {\n for (var m = K(this.inputMap.keys()), v = m.next(); !v.done; v = m.next()) {\n h = v.value;\n this.removeIdSet.has(h) && this.inputMap.delete(h);\n }\n } catch (e) {\n n = {\n error: e\n };\n } finally {\n try {\n v && !v.done && (r = m.return) && r.call(m);\n } finally {\n if (n) throw n.error;\n }\n }\n var y = new Map(this.scrollMap),\n g = new Map(this.inputMap);\n return this.reset(), {\n mutationData: u,\n scrollMap: y,\n inputMap: g\n };\n }, e.prototype.reset = function () {\n this.tree = [], this.indexes = new Map(), this.removeNodeMutations = [], this.textMutations = [], this.attributeMutations = [], this.removeIdSet = new Set(), this.scrollMap = new Map(), this.inputMap = new Map();\n }, e.prototype.idRemoved = function (e) {\n return this.removeIdSet.has(e);\n }, e;\n}();\nfunction Ee(e) {\n var t,\n n,\n r = {},\n i = function (e, t) {\n var n = {\n value: e,\n parent: t,\n children: []\n };\n return r[e.node.id] = n, n;\n },\n o = [];\n try {\n for (var a = K(e), s = a.next(); !s.done; s = a.next()) {\n var l = s.value,\n c = l.nextId,\n u = l.parentId;\n if (c && c in r) {\n var d = r[c];\n if (d.parent) {\n var f = d.parent.children.indexOf(d);\n d.parent.children.splice(f, 0, i(l, d.parent));\n } else {\n f = o.indexOf(d);\n o.splice(f, 0, i(l, null));\n }\n } else if (u in r) {\n var p = r[u];\n p.children.push(i(l, p));\n } else o.push(i(l, null));\n }\n } catch (e) {\n t = {\n error: e\n };\n } finally {\n try {\n s && !s.done && (n = a.return) && n.call(a);\n } finally {\n if (t) throw t.error;\n }\n }\n return o;\n}\nfunction Te(e, t) {\n t(e.value);\n for (var n = e.children.length - 1; n >= 0; n--) Te(e.children[n], t);\n}\nfunction Me(e) {\n return \"__sn\" in e && e.__sn.type === Q.Element && \"iframe\" === e.__sn.tagName;\n}\nfunction ke(e, t) {\n var n,\n r,\n i = null === (r = null === (n = e.ownerDocument) || void 0 === n ? void 0 : n.defaultView) || void 0 === r ? void 0 : r.frameElement;\n if (!i || i === t) return {\n x: 0,\n y: 0,\n relativeScale: 1,\n absoluteScale: 1\n };\n var o = i.getBoundingClientRect(),\n a = ke(i, t),\n s = o.height / i.clientHeight;\n return {\n x: o.x * a.relativeScale + a.x,\n y: o.y * a.relativeScale + a.y,\n relativeScale: s,\n absoluteScale: a.absoluteScale * s\n };\n}\nfunction Ce(e) {\n return Boolean(null == e ? void 0 : e.shadowRoot);\n}\nfor (var Ie = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\", Ne = \"undefined\" == typeof Uint8Array ? [] : new Uint8Array(256), Ae = 0; Ae < Ie.length; Ae++) Ne[Ie.charCodeAt(Ae)] = Ae;\nfunction _e(e) {\n return e = e || Object.create(null), {\n on: function (t, n) {\n (e[t] || (e[t] = [])).push(n);\n },\n off: function (t, n) {\n e[t] && e[t].splice(e[t].indexOf(n) >>> 0, 1);\n },\n emit: function (t, n) {\n (e[t] || []).slice().map(function (e) {\n e(n);\n }), (e[\"*\"] || []).slice().map(function (e) {\n e(t, n);\n });\n }\n };\n}\nvar $e = Object.freeze({\n __proto__: null,\n default: _e\n});\nfunction De(e, t) {\n if (void 0 === e && (e = window), void 0 === t && (t = document), !(\"scrollBehavior\" in t.documentElement.style) || !0 === e.__forceSmoothScrollPolyfill__) {\n var n,\n r = e.HTMLElement || e.Element,\n i = {\n scroll: e.scroll || e.scrollTo,\n scrollBy: e.scrollBy,\n elementScroll: r.prototype.scroll || s,\n scrollIntoView: r.prototype.scrollIntoView\n },\n o = e.performance && e.performance.now ? e.performance.now.bind(e.performance) : Date.now,\n a = (n = e.navigator.userAgent, new RegExp([\"MSIE \", \"Trident/\", \"Edge/\"].join(\"|\")).test(n) ? 1 : 0);\n e.scroll = e.scrollTo = function () {\n void 0 !== arguments[0] && (!0 !== l(arguments[0]) ? h.call(e, t.body, void 0 !== arguments[0].left ? ~~arguments[0].left : e.scrollX || e.pageXOffset, void 0 !== arguments[0].top ? ~~arguments[0].top : e.scrollY || e.pageYOffset) : i.scroll.call(e, void 0 !== arguments[0].left ? arguments[0].left : \"object\" != typeof arguments[0] ? arguments[0] : e.scrollX || e.pageXOffset, void 0 !== arguments[0].top ? arguments[0].top : void 0 !== arguments[1] ? arguments[1] : e.scrollY || e.pageYOffset));\n }, e.scrollBy = function () {\n void 0 !== arguments[0] && (l(arguments[0]) ? i.scrollBy.call(e, void 0 !== arguments[0].left ? arguments[0].left : \"object\" != typeof arguments[0] ? arguments[0] : 0, void 0 !== arguments[0].top ? arguments[0].top : void 0 !== arguments[1] ? arguments[1] : 0) : h.call(e, t.body, ~~arguments[0].left + (e.scrollX || e.pageXOffset), ~~arguments[0].top + (e.scrollY || e.pageYOffset)));\n }, r.prototype.scroll = r.prototype.scrollTo = function () {\n if (void 0 !== arguments[0]) if (!0 !== l(arguments[0])) {\n var e = arguments[0].left,\n t = arguments[0].top;\n h.call(this, this, void 0 === e ? this.scrollLeft : ~~e, void 0 === t ? this.scrollTop : ~~t);\n } else {\n if (\"number\" == typeof arguments[0] && void 0 === arguments[1]) throw new SyntaxError(\"Value could not be converted\");\n i.elementScroll.call(this, void 0 !== arguments[0].left ? ~~arguments[0].left : \"object\" != typeof arguments[0] ? ~~arguments[0] : this.scrollLeft, void 0 !== arguments[0].top ? ~~arguments[0].top : void 0 !== arguments[1] ? ~~arguments[1] : this.scrollTop);\n }\n }, r.prototype.scrollBy = function () {\n void 0 !== arguments[0] && (!0 !== l(arguments[0]) ? this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n }) : i.elementScroll.call(this, void 0 !== arguments[0].left ? ~~arguments[0].left + this.scrollLeft : ~~arguments[0] + this.scrollLeft, void 0 !== arguments[0].top ? ~~arguments[0].top + this.scrollTop : ~~arguments[1] + this.scrollTop));\n }, r.prototype.scrollIntoView = function () {\n if (!0 !== l(arguments[0])) {\n var n = f(this),\n r = n.getBoundingClientRect(),\n o = this.getBoundingClientRect();\n n !== t.body ? (h.call(this, n, n.scrollLeft + o.left - r.left, n.scrollTop + o.top - r.top), \"fixed\" !== e.getComputedStyle(n).position && e.scrollBy({\n left: r.left,\n top: r.top,\n behavior: \"smooth\"\n })) : e.scrollBy({\n left: o.left,\n top: o.top,\n behavior: \"smooth\"\n });\n } else i.scrollIntoView.call(this, void 0 === arguments[0] || arguments[0]);\n };\n }\n function s(e, t) {\n this.scrollLeft = e, this.scrollTop = t;\n }\n function l(e) {\n if (null === e || \"object\" != typeof e || void 0 === e.behavior || \"auto\" === e.behavior || \"instant\" === e.behavior) return !0;\n if (\"object\" == typeof e && \"smooth\" === e.behavior) return !1;\n throw new TypeError(\"behavior member of ScrollOptions \" + e.behavior + \" is not a valid value for enumeration ScrollBehavior.\");\n }\n function c(e, t) {\n return \"Y\" === t ? e.clientHeight + a < e.scrollHeight : \"X\" === t ? e.clientWidth + a < e.scrollWidth : void 0;\n }\n function u(t, n) {\n var r = e.getComputedStyle(t, null)[\"overflow\" + n];\n return \"auto\" === r || \"scroll\" === r;\n }\n function d(e) {\n var t = c(e, \"Y\") && u(e, \"Y\"),\n n = c(e, \"X\") && u(e, \"X\");\n return t || n;\n }\n function f(e) {\n for (; e !== t.body && !1 === d(e);) e = e.parentNode || e.host;\n return e;\n }\n function p(t) {\n var n,\n r,\n i,\n a,\n s = (o() - t.startTime) / 468;\n a = s = s > 1 ? 1 : s, n = .5 * (1 - Math.cos(Math.PI * a)), r = t.startX + (t.x - t.startX) * n, i = t.startY + (t.y - t.startY) * n, t.method.call(t.scrollable, r, i), r === t.x && i === t.y || e.requestAnimationFrame(p.bind(e, t));\n }\n function h(n, r, a) {\n var l,\n c,\n u,\n d,\n f = o();\n n === t.body ? (l = e, c = e.scrollX || e.pageXOffset, u = e.scrollY || e.pageYOffset, d = i.scroll) : (l = n, c = n.scrollLeft, u = n.scrollTop, d = s), p({\n scrollable: l,\n method: d,\n startTime: f,\n startX: c,\n startY: u,\n x: r,\n y: a\n });\n }\n}\nvar Re,\n Le = function () {\n function e(e, t) {\n void 0 === e && (e = []), this.timeOffset = 0, this.raf = null, this.actions = e, this.speed = t;\n }\n return e.prototype.addAction = function (e) {\n var t = this.findActionIndex(e);\n this.actions.splice(t, 0, e);\n }, e.prototype.addActions = function (e) {\n this.actions = this.actions.concat(e);\n }, e.prototype.start = function () {\n this.timeOffset = 0;\n var e = performance.now(),\n t = this.actions,\n n = this;\n this.raf = requestAnimationFrame(function r() {\n var i = performance.now();\n for (n.timeOffset += (i - e) * n.speed, e = i; t.length;) {\n var o = t[0];\n if (!(n.timeOffset >= o.delay)) break;\n t.shift(), o.doAction();\n }\n (t.length > 0 || n.liveMode) && (n.raf = requestAnimationFrame(r));\n });\n }, e.prototype.clear = function () {\n this.raf && (cancelAnimationFrame(this.raf), this.raf = null), this.actions.length = 0;\n }, e.prototype.setSpeed = function (e) {\n this.speed = e;\n }, e.prototype.toggleLiveMode = function (e) {\n this.liveMode = e;\n }, e.prototype.isActive = function () {\n return null !== this.raf;\n }, e.prototype.findActionIndex = function (e) {\n for (var t = 0, n = this.actions.length - 1; t <= n;) {\n var r = Math.floor((t + n) / 2);\n if (this.actions[r].delay < e.delay) t = r + 1;else {\n if (!(this.actions[r].delay > e.delay)) return r + 1;\n n = r - 1;\n }\n }\n return t;\n }, e;\n }();\nfunction Fe(e, t) {\n if (e.type === se.IncrementalSnapshot && e.data.source === le.MouseMove) {\n var n = e.data.positions[0].timeOffset,\n r = e.timestamp + n;\n return e.delay = r - t, r - t;\n }\n return e.delay = e.timestamp - t, e.delay;\n}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction Pe(e, t) {\n var n = \"function\" == typeof Symbol && e[Symbol.iterator];\n if (!n) return e;\n var r,\n i,\n o = n.call(e),\n a = [];\n try {\n for (; (void 0 === t || t-- > 0) && !(r = o.next()).done;) a.push(r.value);\n } catch (e) {\n i = {\n error: e\n };\n } finally {\n try {\n r && !r.done && (n = o.return) && n.call(o);\n } finally {\n if (i) throw i.error;\n }\n }\n return a;\n}\n!function (e) {\n e[e.NotStarted = 0] = \"NotStarted\", e[e.Running = 1] = \"Running\", e[e.Stopped = 2] = \"Stopped\";\n}(Re || (Re = {}));\nvar Oe = {\n type: \"xstate.init\"\n};\nfunction je(e) {\n return void 0 === e ? [] : [].concat(e);\n}\nfunction We(e) {\n return {\n type: \"xstate.assign\",\n assignment: e\n };\n}\nfunction Be(e, t) {\n return \"string\" == typeof (e = \"string\" == typeof e && t && t[e] ? t[e] : e) ? {\n type: e\n } : \"function\" == typeof e ? {\n type: e.name,\n exec: e\n } : e;\n}\nfunction ze(e) {\n return function (t) {\n return e === t;\n };\n}\nfunction Ue(e) {\n return \"string\" == typeof e ? {\n type: e\n } : e;\n}\nfunction qe(e, t) {\n return {\n value: e,\n context: t,\n actions: [],\n changed: !1,\n matches: ze(e)\n };\n}\nfunction He(e, t, n) {\n var r = t,\n i = !1;\n return [e.filter(function (e) {\n if (\"xstate.assign\" === e.type) {\n i = !0;\n var t = Object.assign({}, r);\n return \"function\" == typeof e.assignment ? t = e.assignment(r, n) : Object.keys(e.assignment).forEach(function (i) {\n t[i] = \"function\" == typeof e.assignment[i] ? e.assignment[i](r, n) : e.assignment[i];\n }), r = t, !1;\n }\n return !0;\n }), r, i];\n}\nfunction Ve(e, t) {\n void 0 === t && (t = {});\n var n = Pe(He(je(e.states[e.initial].entry).map(function (e) {\n return Be(e, t.actions);\n }), e.context, Oe), 2),\n r = n[0],\n i = n[1],\n o = {\n config: e,\n _options: t,\n initialState: {\n value: e.initial,\n actions: r,\n context: i,\n matches: ze(e.initial)\n },\n transition: function (t, n) {\n var r,\n i,\n a = \"string\" == typeof t ? {\n value: t,\n context: e.context\n } : t,\n s = a.value,\n l = a.context,\n c = Ue(n),\n u = e.states[s];\n if (u.on) {\n var d = je(u.on[c.type]);\n try {\n for (var f = function (e) {\n var t = \"function\" == typeof Symbol && Symbol.iterator,\n n = t && e[t],\n r = 0;\n if (n) return n.call(e);\n if (e && \"number\" == typeof e.length) return {\n next: function () {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n throw new TypeError(t ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n }(d), p = f.next(); !p.done; p = f.next()) {\n var h = p.value;\n if (void 0 === h) return qe(s, l);\n var m = \"string\" == typeof h ? {\n target: h\n } : h,\n v = m.target,\n y = m.actions,\n g = void 0 === y ? [] : y,\n b = m.cond,\n w = void 0 === b ? function () {\n return !0;\n } : b,\n x = void 0 === v,\n S = null != v ? v : s,\n E = e.states[S];\n if (w(l, c)) {\n var T = Pe(He((x ? je(g) : [].concat(u.exit, g, E.entry).filter(function (e) {\n return e;\n })).map(function (e) {\n return Be(e, o._options.actions);\n }), l, c), 3),\n M = T[0],\n k = T[1],\n C = T[2],\n I = null != v ? v : s;\n return {\n value: I,\n context: k,\n actions: M,\n changed: v !== s || M.length > 0 || C,\n matches: ze(I)\n };\n }\n }\n } catch (e) {\n r = {\n error: e\n };\n } finally {\n try {\n p && !p.done && (i = f.return) && i.call(f);\n } finally {\n if (r) throw r.error;\n }\n }\n }\n return qe(s, l);\n }\n };\n return o;\n}\nvar Ge = function (e, t) {\n return e.actions.forEach(function (n) {\n var r = n.exec;\n return r && r(e.context, t);\n });\n};\nfunction Ye(e) {\n var t = e.initialState,\n n = Re.NotStarted,\n r = new Set(),\n i = {\n _machine: e,\n send: function (i) {\n n === Re.Running && (t = e.transition(t, i), Ge(t, Ue(i)), r.forEach(function (e) {\n return e(t);\n }));\n },\n subscribe: function (e) {\n return r.add(e), e(t), {\n unsubscribe: function () {\n return r.delete(e);\n }\n };\n },\n start: function (r) {\n if (r) {\n var o = \"object\" == typeof r ? r : {\n context: e.config.context,\n value: r\n };\n t = {\n value: o.value,\n actions: [],\n context: o.context,\n matches: ze(o.value)\n };\n }\n return n = Re.Running, Ge(t, Oe), i;\n },\n stop: function () {\n return n = Re.Stopped, r.clear(), i;\n },\n get state() {\n return t;\n },\n get status() {\n return n;\n }\n };\n return i;\n}\nfunction Xe(e, t) {\n var n = t.getCastFn,\n r = t.applyEventsSynchronously,\n i = t.emitter;\n return Ye(Ve({\n id: \"player\",\n context: e,\n initial: \"paused\",\n states: {\n playing: {\n on: {\n PAUSE: {\n target: \"paused\",\n actions: [\"pause\"]\n },\n CAST_EVENT: {\n target: \"playing\",\n actions: \"castEvent\"\n },\n END: {\n target: \"paused\",\n actions: [\"resetLastPlayedEvent\", \"pause\"]\n },\n ADD_EVENT: {\n target: \"playing\",\n actions: [\"addEvent\"]\n }\n }\n },\n paused: {\n on: {\n PLAY: {\n target: \"playing\",\n actions: [\"recordTimeOffset\", \"play\"]\n },\n CAST_EVENT: {\n target: \"paused\",\n actions: \"castEvent\"\n },\n TO_LIVE: {\n target: \"live\",\n actions: [\"startLive\"]\n },\n ADD_EVENT: {\n target: \"paused\",\n actions: [\"addEvent\"]\n }\n }\n },\n live: {\n on: {\n ADD_EVENT: {\n target: \"live\",\n actions: [\"addEvent\"]\n },\n CAST_EVENT: {\n target: \"live\",\n actions: [\"castEvent\"]\n }\n }\n }\n }\n }, {\n actions: {\n castEvent: We({\n lastPlayedEvent: function (e, t) {\n return \"CAST_EVENT\" === t.type ? t.payload.event : e.lastPlayedEvent;\n }\n }),\n recordTimeOffset: We(function (e, t) {\n var n = e.timeOffset;\n return \"payload\" in t && \"timeOffset\" in t.payload && (n = t.payload.timeOffset), J(J({}, e), {\n timeOffset: n,\n baselineTime: e.events[0].timestamp + n\n });\n }),\n play: function (e) {\n var t,\n o,\n a,\n s,\n l,\n c = e.timer,\n u = e.events,\n d = e.baselineTime,\n f = e.lastPlayedEvent;\n c.clear();\n try {\n for (var p = K(u), h = p.next(); !h.done; h = p.next()) {\n Fe(h.value, d);\n }\n } catch (e) {\n t = {\n error: e\n };\n } finally {\n try {\n h && !h.done && (o = p.return) && o.call(p);\n } finally {\n if (t) throw t.error;\n }\n }\n var m = function (e, t) {\n for (var n = e.length - 1; n >= 0; n--) {\n var r = e[n];\n if (r.type === se.Meta && r.timestamp <= t) return e.slice(n);\n }\n return e;\n }(u, d),\n v = null == f ? void 0 : f.timestamp;\n (null == f ? void 0 : f.type) === se.IncrementalSnapshot && f.data.source === le.MouseMove && (v = f.timestamp + (null === (l = f.data.positions[0]) || void 0 === l ? void 0 : l.timeOffset)), d < (v || 0) && i.emit(fe.PlayBack);\n var y = new Array(),\n g = new Array(),\n b = function (e) {\n if (v && v < d && (e.timestamp <= v || e === f)) return \"continue\";\n if (e.timestamp < d) y.push(e);else {\n var t = n(e, !1);\n g.push({\n doAction: function () {\n t();\n },\n delay: e.delay\n });\n }\n };\n try {\n for (var w = K(m), x = w.next(); !x.done; x = w.next()) {\n b(x.value);\n }\n } catch (e) {\n a = {\n error: e\n };\n } finally {\n try {\n x && !x.done && (s = w.return) && s.call(w);\n } finally {\n if (a) throw a.error;\n }\n }\n r(y), i.emit(fe.Flush), c.addActions(g), c.start();\n },\n pause: function (e) {\n e.timer.clear();\n },\n resetLastPlayedEvent: We(function (e) {\n return J(J({}, e), {\n lastPlayedEvent: null\n });\n }),\n startLive: We({\n baselineTime: function (e, t) {\n return e.timer.toggleLiveMode(!0), e.timer.start(), \"TO_LIVE\" === t.type && t.payload.baselineTime ? t.payload.baselineTime : Date.now();\n }\n }),\n addEvent: We(function (e, t) {\n var r = e.baselineTime,\n i = e.timer,\n o = e.events;\n if (\"ADD_EVENT\" === t.type) {\n var a = t.payload.event;\n Fe(a, r);\n var s = o.length - 1;\n if (!o[s] || o[s].timestamp <= a.timestamp) o.push(a);else {\n for (var l = -1, c = 0; c <= s;) {\n var u = Math.floor((c + s) / 2);\n o[u].timestamp <= a.timestamp ? c = u + 1 : s = u - 1;\n }\n -1 === l && (l = c), o.splice(l, 0, a);\n }\n var d = a.timestamp < r,\n f = n(a, d);\n d ? f() : i.isActive() && i.addAction({\n doAction: function () {\n f();\n },\n delay: a.delay\n });\n }\n return J(J({}, e), {\n events: o\n });\n })\n }\n }));\n}\nvar Qe;\nfunction Je(e, t) {\n var n = e[t[0]];\n return 1 === t.length ? n : Je(n.cssRules[t[1]].cssRules, t.slice(2));\n}\nfunction Ke(e) {\n var t = ee([], Z(e), !1),\n n = t.pop();\n return {\n positions: t,\n index: n\n };\n}\nfunction Ze(e, t) {\n var n = t.sheet;\n n && e.forEach(function (e) {\n if (e.type === Qe.Insert) try {\n if (Array.isArray(e.index)) {\n var r = Ke(e.index),\n i = r.positions,\n o = r.index;\n Je(n.cssRules, i).insertRule(e.cssText, o);\n } else n.insertRule(e.cssText, e.index);\n } catch (e) {} else if (e.type === Qe.Remove) try {\n if (Array.isArray(e.index)) {\n var a = Ke(e.index);\n i = a.positions, o = a.index;\n Je(n.cssRules, i).deleteRule(o || 0);\n } else n.deleteRule(e.index);\n } catch (e) {} else if (e.type === Qe.Snapshot) !function (e, t) {\n var n;\n try {\n var r = Array.from((null === (n = t.sheet) || void 0 === n ? void 0 : n.cssRules) || []).map(function (e) {\n return e.cssText;\n }),\n i = Object.entries(r).reverse(),\n o = r.length;\n i.forEach(function (n) {\n var r,\n i = Z(n, 2),\n a = i[0],\n s = i[1],\n l = e.indexOf(s);\n if (-1 === l || l > o) try {\n null === (r = t.sheet) || void 0 === r || r.deleteRule(Number(a));\n } catch (e) {}\n o = l;\n }), e.forEach(function (e, n) {\n var r, i, o;\n try {\n (null === (i = null === (r = t.sheet) || void 0 === r ? void 0 : r.cssRules[n]) || void 0 === i ? void 0 : i.cssText) !== e && (null === (o = t.sheet) || void 0 === o || o.insertRule(e, n));\n } catch (e) {}\n });\n } catch (e) {}\n }(e.cssTexts, t);else if (e.type === Qe.SetProperty) {\n Je(n.cssRules, e.index).style.setProperty(e.property, e.value, e.priority);\n } else if (e.type === Qe.RemoveProperty) {\n Je(n.cssRules, e.index).style.removeProperty(e.property);\n }\n });\n}\n!function (e) {\n e[e.Insert = 0] = \"Insert\", e[e.Remove = 1] = \"Remove\", e[e.Snapshot = 2] = \"Snapshot\", e[e.SetProperty = 3] = \"SetProperty\", e[e.RemoveProperty = 4] = \"RemoveProperty\";\n}(Qe || (Qe = {}));\nvar et = new Map();\nfunction tt(e, t) {\n var n = et.get(e);\n return n || (n = new Map(), et.set(e, n)), n.has(t) || n.set(t, []), n.get(t);\n}\nvar nt = [\"WebGLActiveInfo\", \"WebGLBuffer\", \"WebGLFramebuffer\", \"WebGLProgram\", \"WebGLRenderbuffer\", \"WebGLShader\", \"WebGLShaderPrecisionFormat\", \"WebGLTexture\", \"WebGLUniformLocation\", \"WebGLVertexArrayObject\"];\nfunction rt(e, t) {\n return function (n) {\n if (n && \"object\" == typeof n && \"rr_type\" in n) {\n if (\"index\" in n) {\n var r = n.rr_type,\n i = n.index;\n return tt(t, r)[i];\n }\n if (\"args\" in n) {\n var o = n.rr_type,\n a = n.args,\n s = window[o];\n return new (s.bind.apply(s, ee([void 0], Z(a.map(rt(e, t))), !1)))();\n }\n if (\"base64\" in n) return function (e) {\n var t,\n n,\n r,\n i,\n o,\n a = .75 * e.length,\n s = e.length,\n l = 0;\n \"=\" === e[e.length - 1] && (a--, \"=\" === e[e.length - 2] && a--);\n var c = new ArrayBuffer(a),\n u = new Uint8Array(c);\n for (t = 0; t < s; t += 4) n = Ne[e.charCodeAt(t)], r = Ne[e.charCodeAt(t + 1)], i = Ne[e.charCodeAt(t + 2)], o = Ne[e.charCodeAt(t + 3)], u[l++] = n << 2 | r >> 4, u[l++] = (15 & r) << 4 | i >> 2, u[l++] = (3 & i) << 6 | 63 & o;\n return c;\n }(n.base64);\n if (\"src\" in n) {\n var l = e.get(n.src);\n if (l) return l;\n var c = new Image();\n return c.src = n.src, e.set(n.src, c), c;\n }\n } else if (Array.isArray(n)) return n.map(rt(e, t));\n return n;\n };\n}\nfunction it(e) {\n var t = e.mutation,\n n = e.target,\n r = e.type,\n i = e.imageMap,\n o = e.errorHandler;\n try {\n var a = function (e, t) {\n try {\n return t === ue.WebGL ? e.getContext(\"webgl\") || e.getContext(\"experimental-webgl\") : e.getContext(\"webgl2\");\n } catch (e) {\n return null;\n }\n }(n, r);\n if (!a) return;\n if (t.setter) return void (a[t.property] = t.args[0]);\n var s = a[t.property],\n l = t.args.map(rt(i, a));\n !function (e, t) {\n if (null == t ? void 0 : t.constructor) {\n var n = t.constructor.name;\n if (nt.includes(n)) {\n var r = tt(e, n);\n r.includes(t) || r.push(t);\n }\n }\n }(a, s.apply(a, l));\n } catch (e) {\n o(t, e);\n }\n}\nvar ot = _e || $e,\n at = {\n duration: 500,\n lineCap: \"round\",\n lineWidth: 3,\n strokeStyle: \"red\"\n };\nfunction st(e) {\n return e.type == se.IncrementalSnapshot && (e.data.source == le.TouchMove || e.data.source == le.MouseInteraction && e.data.type == ce.TouchStart);\n}\nvar lt = function () {\n function e(e, t) {\n var n = this;\n if (this.mouseTail = null, this.tailPositions = [], this.emitter = ot(), this.legacy_missingNodeRetryMap = {}, this.cache = ve(), this.imageMap = new Map(), this.mirror = {\n map: {},\n getId: function (e) {\n return e && e.__sn ? e.__sn.id : -1;\n },\n getNode: function (e) {\n return this.map[e] || null;\n },\n removeNodeFromMap: function (e) {\n var t = this,\n n = e.__sn && e.__sn.id;\n delete this.map[n], e.childNodes && e.childNodes.forEach(function (e) {\n return t.removeNodeFromMap(e);\n });\n },\n has: function (e) {\n return this.map.hasOwnProperty(e);\n },\n reset: function () {\n this.map = {};\n }\n }, this.firstFullSnapshot = null, this.newDocumentQueue = [], this.mousePos = null, this.touchActive = null, !(null == t ? void 0 : t.liveMode) && e.length < 2) throw new Error(\"Replayer need at least 2 events.\");\n var r = {\n speed: 1,\n maxSpeed: 360,\n root: document.body,\n loadTimeout: 0,\n skipInactive: !1,\n showWarning: !0,\n showDebug: !1,\n blockClass: \"rr-block\",\n liveMode: !1,\n insertStyleRules: [],\n triggerFocus: !0,\n UNSAFE_replayCanvas: !1,\n pauseAnimation: !0,\n mouseTail: at\n };\n this.config = Object.assign({}, r, t), this.handleResize = this.handleResize.bind(this), this.getCastFn = this.getCastFn.bind(this), this.applyEventsSynchronously = this.applyEventsSynchronously.bind(this), this.emitter.on(fe.Resize, this.handleResize), this.setupDom(), this.treeIndex = new Se(), this.fragmentParentMap = new Map(), this.elementStateMap = new Map(), this.virtualStyleRulesMap = new Map(), this.emitter.on(fe.Flush, function () {\n var e,\n t,\n r,\n i,\n o,\n a,\n s,\n l,\n c = n.treeIndex.flush(),\n u = c.scrollMap,\n d = c.inputMap,\n f = c.mutationData;\n n.fragmentParentMap.forEach(function (e, t) {\n return n.restoreRealParent(t, e);\n });\n try {\n for (var p = K(f.texts), h = p.next(); !h.done; h = p.next()) {\n var m = h.value;\n n.applyText(m, f);\n }\n } catch (t) {\n e = {\n error: t\n };\n } finally {\n try {\n h && !h.done && (t = p.return) && t.call(p);\n } finally {\n if (e) throw e.error;\n }\n }\n try {\n for (var v = K(n.virtualStyleRulesMap.keys()), y = v.next(); !y.done; y = v.next()) {\n var g = y.value;\n n.restoreNodeSheet(g);\n }\n } catch (e) {\n r = {\n error: e\n };\n } finally {\n try {\n y && !y.done && (i = v.return) && i.call(v);\n } finally {\n if (r) throw r.error;\n }\n }\n n.fragmentParentMap.clear(), n.elementStateMap.clear(), n.virtualStyleRulesMap.clear();\n try {\n for (var b = K(u.values()), w = b.next(); !w.done; w = b.next()) {\n m = w.value;\n n.applyScroll(m, !0);\n }\n } catch (e) {\n o = {\n error: e\n };\n } finally {\n try {\n w && !w.done && (a = b.return) && a.call(b);\n } finally {\n if (o) throw o.error;\n }\n }\n try {\n for (var x = K(d.values()), S = x.next(); !S.done; S = x.next()) {\n m = S.value;\n n.applyInput(m);\n }\n } catch (e) {\n s = {\n error: e\n };\n } finally {\n try {\n S && !S.done && (l = x.return) && l.call(x);\n } finally {\n if (s) throw s.error;\n }\n }\n }), this.emitter.on(fe.PlayBack, function () {\n n.firstFullSnapshot = null, n.mirror.reset();\n });\n var i = new Le([], (null == t ? void 0 : t.speed) || r.speed);\n this.service = Xe({\n events: e.map(function (e) {\n return t && t.unpackFn ? t.unpackFn(e) : e;\n }).sort(function (e, t) {\n return e.timestamp - t.timestamp;\n }),\n timer: i,\n timeOffset: 0,\n baselineTime: 0,\n lastPlayedEvent: null\n }, {\n getCastFn: this.getCastFn,\n applyEventsSynchronously: this.applyEventsSynchronously,\n emitter: this.emitter\n }), this.service.start(), this.service.subscribe(function (e) {\n n.emitter.emit(fe.StateChange, {\n player: e\n });\n }), this.speedService = Ye(Ve({\n id: \"speed\",\n context: {\n normalSpeed: -1,\n timer: i\n },\n initial: \"normal\",\n states: {\n normal: {\n on: {\n FAST_FORWARD: {\n target: \"skipping\",\n actions: [\"recordSpeed\", \"setSpeed\"]\n },\n SET_SPEED: {\n target: \"normal\",\n actions: [\"setSpeed\"]\n }\n }\n },\n skipping: {\n on: {\n BACK_TO_NORMAL: {\n target: \"normal\",\n actions: [\"restoreSpeed\"]\n },\n SET_SPEED: {\n target: \"normal\",\n actions: [\"setSpeed\"]\n }\n }\n }\n }\n }, {\n actions: {\n setSpeed: function (e, t) {\n \"payload\" in t && e.timer.setSpeed(t.payload.speed);\n },\n recordSpeed: We({\n normalSpeed: function (e) {\n return e.timer.speed;\n }\n }),\n restoreSpeed: function (e) {\n e.timer.setSpeed(e.normalSpeed);\n }\n }\n })), this.speedService.start(), this.speedService.subscribe(function (e) {\n n.emitter.emit(fe.StateChange, {\n speed: e\n });\n });\n var o = this.service.state.context.events.find(function (e) {\n return e.type === se.Meta;\n }),\n a = this.service.state.context.events.find(function (e) {\n return e.type === se.FullSnapshot;\n });\n if (o) {\n var s = o.data,\n l = s.width,\n c = s.height;\n setTimeout(function () {\n n.emitter.emit(fe.Resize, {\n width: l,\n height: c\n });\n }, 0);\n }\n a && setTimeout(function () {\n n.firstFullSnapshot || (n.firstFullSnapshot = a, n.rebuildFullSnapshot(a), n.iframe.contentWindow.scrollTo(a.data.initialOffset));\n }, 1), this.service.state.context.events.find(st) && this.mouse.classList.add(\"touch-device\");\n }\n return Object.defineProperty(e.prototype, \"timer\", {\n get: function () {\n return this.service.state.context.timer;\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype.on = function (e, t) {\n return this.emitter.on(e, t), this;\n }, e.prototype.off = function (e, t) {\n return this.emitter.off(e, t), this;\n }, e.prototype.setConfig = function (e) {\n var t = this;\n Object.keys(e).forEach(function (n) {\n t.config[n] = e[n];\n }), this.config.skipInactive || this.backToNormal(), void 0 !== e.speed && this.speedService.send({\n type: \"SET_SPEED\",\n payload: {\n speed: e.speed\n }\n }), void 0 !== e.mouseTail && (!1 === e.mouseTail ? this.mouseTail && (this.mouseTail.style.display = \"none\") : (this.mouseTail || (this.mouseTail = document.createElement(\"canvas\"), this.mouseTail.width = Number.parseFloat(this.iframe.width), this.mouseTail.height = Number.parseFloat(this.iframe.height), this.mouseTail.classList.add(\"replayer-mouse-tail\"), this.wrapper.insertBefore(this.mouseTail, this.iframe)), this.mouseTail.style.display = \"inherit\"));\n }, e.prototype.getMetaData = function () {\n var e = this.service.state.context.events[0],\n t = this.service.state.context.events[this.service.state.context.events.length - 1];\n return {\n startTime: e.timestamp,\n endTime: t.timestamp,\n totalTime: t.timestamp - e.timestamp\n };\n }, e.prototype.getCurrentTime = function () {\n return this.timer.timeOffset + this.getTimeOffset();\n }, e.prototype.getTimeOffset = function () {\n var e = this.service.state.context;\n return e.baselineTime - e.events[0].timestamp;\n }, e.prototype.getMirror = function () {\n return this.mirror;\n }, e.prototype.play = function (e) {\n var t;\n void 0 === e && (e = 0), this.service.state.matches(\"paused\") || this.service.send({\n type: \"PAUSE\"\n }), this.service.send({\n type: \"PLAY\",\n payload: {\n timeOffset: e\n }\n }), null === (t = this.iframe.contentDocument) || void 0 === t || t.getElementsByTagName(\"html\")[0].classList.remove(\"rrweb-paused\"), this.emitter.emit(fe.Start);\n }, e.prototype.pause = function (e) {\n var t;\n void 0 === e && this.service.state.matches(\"playing\") && this.service.send({\n type: \"PAUSE\"\n }), \"number\" == typeof e && (this.play(e), this.service.send({\n type: \"PAUSE\"\n })), null === (t = this.iframe.contentDocument) || void 0 === t || t.getElementsByTagName(\"html\")[0].classList.add(\"rrweb-paused\"), this.emitter.emit(fe.Pause);\n }, e.prototype.resume = function (e) {\n void 0 === e && (e = 0), console.warn(\"The 'resume' will be departed in 1.0. Please use 'play' method which has the same interface.\"), this.play(e), this.emitter.emit(fe.Resume);\n }, e.prototype.startLive = function (e) {\n this.service.send({\n type: \"TO_LIVE\",\n payload: {\n baselineTime: e\n }\n });\n }, e.prototype.addEvent = function (e) {\n var t = this,\n n = this.config.unpackFn ? this.config.unpackFn(e) : e;\n st(n) && this.mouse.classList.add(\"touch-device\"), Promise.resolve().then(function () {\n return t.service.send({\n type: \"ADD_EVENT\",\n payload: {\n event: n\n }\n });\n });\n }, e.prototype.enableInteract = function () {\n this.iframe.setAttribute(\"scrolling\", \"auto\"), this.iframe.style.pointerEvents = \"auto\";\n }, e.prototype.disableInteract = function () {\n this.iframe.setAttribute(\"scrolling\", \"no\"), this.iframe.style.pointerEvents = \"none\";\n }, e.prototype.resetCache = function () {\n this.cache = ve();\n }, e.prototype.setupDom = function () {\n this.wrapper = document.createElement(\"div\"), this.wrapper.classList.add(\"replayer-wrapper\"), this.config.root.appendChild(this.wrapper), this.mouse = document.createElement(\"div\"), this.mouse.classList.add(\"replayer-mouse\"), this.wrapper.appendChild(this.mouse), !1 !== this.config.mouseTail && (this.mouseTail = document.createElement(\"canvas\"), this.mouseTail.classList.add(\"replayer-mouse-tail\"), this.mouseTail.style.display = \"inherit\", this.wrapper.appendChild(this.mouseTail)), this.iframe = document.createElement(\"iframe\");\n var e,\n t = [\"allow-same-origin\"];\n this.config.UNSAFE_replayCanvas && t.push(\"allow-scripts\"), this.iframe.style.display = \"none\", this.iframe.setAttribute(\"sandbox\", t.join(\" \")), this.disableInteract(), this.wrapper.appendChild(this.iframe), this.iframe.contentWindow && this.iframe.contentDocument && (De(this.iframe.contentWindow, this.iframe.contentDocument), void 0 === (e = this.iframe.contentWindow) && (e = window), \"NodeList\" in e && !e.NodeList.prototype.forEach && (e.NodeList.prototype.forEach = Array.prototype.forEach), \"DOMTokenList\" in e && !e.DOMTokenList.prototype.forEach && (e.DOMTokenList.prototype.forEach = Array.prototype.forEach), Node.prototype.contains || (Node.prototype.contains = function (e) {\n if (!(0 in arguments)) throw new TypeError(\"1 argument is required\");\n do {\n if (this === e) return !0;\n } while (e = e && e.parentNode);\n return !1;\n }));\n }, e.prototype.handleResize = function (e) {\n var t, n;\n this.iframe.style.display = \"inherit\";\n try {\n for (var r = K([this.mouseTail, this.iframe]), i = r.next(); !i.done; i = r.next()) {\n var o = i.value;\n o && (o.setAttribute(\"width\", String(e.width)), o.setAttribute(\"height\", String(e.height)));\n }\n } catch (e) {\n t = {\n error: e\n };\n } finally {\n try {\n i && !i.done && (n = r.return) && n.call(r);\n } finally {\n if (t) throw t.error;\n }\n }\n }, e.prototype.applyEventsSynchronously = function (e) {\n var t, n;\n try {\n for (var r = K(e), i = r.next(); !i.done; i = r.next()) {\n var o = i.value;\n switch (o.type) {\n case se.DomContentLoaded:\n case se.Load:\n case se.Custom:\n continue;\n case se.FullSnapshot:\n case se.Meta:\n case se.Plugin:\n break;\n case se.IncrementalSnapshot:\n switch (o.data.source) {\n case le.MediaInteraction:\n continue;\n }\n }\n this.getCastFn(o, !0)();\n }\n } catch (e) {\n t = {\n error: e\n };\n } finally {\n try {\n i && !i.done && (n = r.return) && n.call(r);\n } finally {\n if (t) throw t.error;\n }\n }\n this.mousePos && this.moveAndHover(this.mousePos.x, this.mousePos.y, this.mousePos.id, !0, this.mousePos.debugData), this.mousePos = null, !0 === this.touchActive ? this.mouse.classList.add(\"touch-active\") : !1 === this.touchActive && this.mouse.classList.remove(\"touch-active\"), this.touchActive = null;\n }, e.prototype.getCastFn = function (e, t) {\n var n,\n r = this;\n switch (void 0 === t && (t = !1), e.type) {\n case se.DomContentLoaded:\n case se.Load:\n break;\n case se.Custom:\n n = function () {\n r.emitter.emit(fe.CustomEvent, e);\n };\n break;\n case se.Meta:\n n = function () {\n return r.emitter.emit(fe.Resize, {\n width: e.data.width,\n height: e.data.height\n });\n };\n break;\n case se.FullSnapshot:\n n = function () {\n if (r.firstFullSnapshot) {\n if (r.firstFullSnapshot === e) return void (r.firstFullSnapshot = !0);\n } else r.firstFullSnapshot = !0;\n r.rebuildFullSnapshot(e, t), r.iframe.contentWindow.scrollTo(e.data.initialOffset);\n };\n break;\n case se.IncrementalSnapshot:\n n = function () {\n var n, i;\n if (r.applyIncremental(e, t), !t && (e === r.nextUserInteractionEvent && (r.nextUserInteractionEvent = null, r.backToNormal()), r.config.skipInactive && !r.nextUserInteractionEvent)) {\n try {\n for (var o = K(r.service.state.context.events), a = o.next(); !a.done; a = o.next()) {\n var s = a.value;\n if (!(s.timestamp <= e.timestamp) && r.isUserInteraction(s)) {\n s.delay - e.delay > 1e4 * r.speedService.state.context.timer.speed && (r.nextUserInteractionEvent = s);\n break;\n }\n }\n } catch (e) {\n n = {\n error: e\n };\n } finally {\n try {\n a && !a.done && (i = o.return) && i.call(o);\n } finally {\n if (n) throw n.error;\n }\n }\n if (r.nextUserInteractionEvent) {\n var l = r.nextUserInteractionEvent.delay - e.delay,\n c = {\n speed: Math.min(Math.round(l / 5e3), r.config.maxSpeed)\n };\n r.speedService.send({\n type: \"FAST_FORWARD\",\n payload: c\n }), r.emitter.emit(fe.SkipStart, c);\n }\n }\n };\n }\n return function () {\n var i, o;\n n && n();\n try {\n for (var a = K(r.config.plugins || []), s = a.next(); !s.done; s = a.next()) {\n s.value.handler(e, t, {\n replayer: r\n });\n }\n } catch (e) {\n i = {\n error: e\n };\n } finally {\n try {\n s && !s.done && (o = a.return) && o.call(a);\n } finally {\n if (i) throw i.error;\n }\n }\n r.service.send({\n type: \"CAST_EVENT\",\n payload: {\n event: e\n }\n });\n var l = r.service.state.context.events.length - 1;\n if (e === r.service.state.context.events[l]) {\n var c = function () {\n l < r.service.state.context.events.length - 1 || (r.backToNormal(), r.service.send(\"END\"), r.emitter.emit(fe.Finish));\n };\n e.type === se.IncrementalSnapshot && e.data.source === le.MouseMove && e.data.positions.length ? setTimeout(function () {\n c();\n }, Math.max(0, 50 - e.data.positions[0].timeOffset)) : c();\n }\n r.emitter.emit(fe.EventCast, e);\n };\n }, e.prototype.rebuildFullSnapshot = function (e, t) {\n var n,\n r,\n i = this;\n if (void 0 === t && (t = !1), !this.iframe.contentDocument) return console.warn(\"Looks like your replayer has been destroyed.\");\n Object.keys(this.legacy_missingNodeRetryMap).length && console.warn(\"Found unresolved missing node map\", this.legacy_missingNodeRetryMap), this.legacy_missingNodeRetryMap = {};\n var o = [];\n this.mirror.map = be(e.data.node, {\n doc: this.iframe.contentDocument,\n afterAppend: function (e) {\n i.collectIframeAndAttachDocument(o, e);\n },\n cache: this.cache\n })[1];\n var a = function (e, t) {\n s.attachDocumentToIframe(e, t), s.newDocumentQueue = s.newDocumentQueue.filter(function (t) {\n return t !== e;\n });\n },\n s = this;\n try {\n for (var l = K(o), c = l.next(); !c.done; c = l.next()) {\n var u = c.value;\n a(u.mutationInQueue, u.builtNode);\n }\n } catch (e) {\n n = {\n error: e\n };\n } finally {\n try {\n c && !c.done && (r = l.return) && r.call(l);\n } finally {\n if (n) throw n.error;\n }\n }\n var d = this.iframe.contentDocument,\n f = d.documentElement,\n p = d.head;\n this.insertStyleRules(f, p), this.service.state.matches(\"playing\") || this.iframe.contentDocument.getElementsByTagName(\"html\")[0].classList.add(\"rrweb-paused\"), this.emitter.emit(fe.FullsnapshotRebuilded, e), t || this.waitForStylesheetLoad(), this.config.UNSAFE_replayCanvas && this.preloadAllImages();\n }, e.prototype.insertStyleRules = function (e, t) {\n var n = document.createElement(\"style\");\n e.insertBefore(n, t);\n var r,\n i = (r = this.config.blockClass, [\".\".concat(r, \" { background: currentColor }\"), \"noscript { display: none !important; }\"]).concat(this.config.insertStyleRules);\n this.config.pauseAnimation && i.push(\"html.rrweb-paused *, html.rrweb-paused *:before, html.rrweb-paused *:after { animation-play-state: paused !important; }\");\n for (var o = 0; o < i.length; o++) n.sheet.insertRule(i[o], o);\n }, e.prototype.attachDocumentToIframe = function (e, t) {\n var n,\n r,\n i = this,\n o = [];\n if (!t.contentDocument) for (var a = t.parentNode; a;) {\n if (this.fragmentParentMap.has(a)) {\n var s = a,\n l = this.fragmentParentMap.get(s);\n this.restoreRealParent(s, l);\n break;\n }\n a = a.parentNode;\n }\n ge(e.node, {\n doc: t.contentDocument,\n map: this.mirror.map,\n hackCss: !0,\n skipChild: !1,\n afterAppend: function (e) {\n if (i.collectIframeAndAttachDocument(o, e), e.__sn.type === Q.Element && \"HTML\" === e.__sn.tagName.toUpperCase()) {\n var n = t.contentDocument,\n r = n.documentElement,\n a = n.head;\n i.insertStyleRules(r, a);\n }\n },\n cache: this.cache\n });\n var c = function (e, t) {\n u.attachDocumentToIframe(e, t), u.newDocumentQueue = u.newDocumentQueue.filter(function (t) {\n return t !== e;\n });\n },\n u = this;\n try {\n for (var d = K(o), f = d.next(); !f.done; f = d.next()) {\n var p = f.value;\n c(p.mutationInQueue, p.builtNode);\n }\n } catch (e) {\n n = {\n error: e\n };\n } finally {\n try {\n f && !f.done && (r = d.return) && r.call(d);\n } finally {\n if (n) throw n.error;\n }\n }\n }, e.prototype.collectIframeAndAttachDocument = function (e, t) {\n if (Me(t)) {\n var n = this.newDocumentQueue.find(function (e) {\n return e.parentId === t.__sn.id;\n });\n n && e.push({\n mutationInQueue: n,\n builtNode: t\n });\n }\n }, e.prototype.waitForStylesheetLoad = function () {\n var e,\n t = this,\n n = null === (e = this.iframe.contentDocument) || void 0 === e ? void 0 : e.head;\n if (n) {\n var r,\n i = new Set(),\n o = this.service.state,\n a = function () {\n o = t.service.state;\n };\n this.emitter.on(fe.Start, a), this.emitter.on(fe.Pause, a);\n var s = function () {\n t.emitter.off(fe.Start, a), t.emitter.off(fe.Pause, a);\n };\n n.querySelectorAll('link[rel=\"stylesheet\"]').forEach(function (e) {\n e.sheet || (i.add(e), e.addEventListener(\"load\", function () {\n i.delete(e), 0 === i.size && -1 !== r && (o.matches(\"playing\") && t.play(t.getCurrentTime()), t.emitter.emit(fe.LoadStylesheetEnd), r && clearTimeout(r), s());\n }));\n }), i.size > 0 && (this.service.send({\n type: \"PAUSE\"\n }), this.emitter.emit(fe.LoadStylesheetStart), r = setTimeout(function () {\n o.matches(\"playing\") && t.play(t.getCurrentTime()), r = -1, s();\n }, this.config.loadTimeout));\n }\n }, e.prototype.hasImageArg = function (e) {\n var t, n;\n try {\n for (var r = K(e), i = r.next(); !i.done; i = r.next()) {\n var o = i.value;\n if (o && \"object\" == typeof o) {\n if (\"rr_type\" in o && \"args\" in o) {\n if (this.hasImageArg(o.args)) return !0;\n } else {\n if (\"rr_type\" in o && \"HTMLImageElement\" === o.rr_type) return !0;\n if (o instanceof Array && this.hasImageArg(o)) return !0;\n }\n } else ;\n }\n } catch (e) {\n t = {\n error: e\n };\n } finally {\n try {\n i && !i.done && (n = r.return) && n.call(r);\n } finally {\n if (t) throw t.error;\n }\n }\n return !1;\n }, e.prototype.getImageArgs = function (e) {\n var t,\n n,\n r = [];\n try {\n for (var i = K(e), o = i.next(); !o.done; o = i.next()) {\n var a = o.value;\n a && \"object\" == typeof a && (\"rr_type\" in a && \"args\" in a ? r.push.apply(r, ee([], Z(this.getImageArgs(a.args)), !1)) : \"rr_type\" in a && \"HTMLImageElement\" === a.rr_type ? r.push(a.src) : a instanceof Array && r.push.apply(r, ee([], Z(this.getImageArgs(a)), !1)));\n }\n } catch (e) {\n t = {\n error: e\n };\n } finally {\n try {\n o && !o.done && (n = i.return) && n.call(i);\n } finally {\n if (t) throw t.error;\n }\n }\n return r;\n }, e.prototype.preloadAllImages = function () {\n var e,\n t,\n n = this;\n this.service.state;\n var r = function () {\n n.service.state;\n };\n this.emitter.on(fe.Start, r), this.emitter.on(fe.Pause, r);\n var i = function (e) {\n e.type === se.IncrementalSnapshot && e.data.source === le.CanvasMutation && (\"commands\" in e.data ? e.data.commands.forEach(function (t) {\n return n.preloadImages(t, e);\n }) : o.preloadImages(e.data, e));\n },\n o = this;\n try {\n for (var a = K(this.service.state.context.events), s = a.next(); !s.done; s = a.next()) {\n i(s.value);\n }\n } catch (t) {\n e = {\n error: t\n };\n } finally {\n try {\n s && !s.done && (t = a.return) && t.call(a);\n } finally {\n if (e) throw e.error;\n }\n }\n }, e.prototype.preloadImages = function (e, t) {\n var n = this;\n if (\"drawImage\" !== e.property || \"string\" != typeof e.args[0] || this.imageMap.has(t)) this.hasImageArg(e.args) && this.getImageArgs(e.args).forEach(function (e) {\n var t = new Image();\n t.src = e, n.imageMap.set(e, t);\n });else {\n var r = document.createElement(\"canvas\"),\n i = r.getContext(\"2d\"),\n o = null == i ? void 0 : i.createImageData(r.width, r.height);\n null == o || o.data, JSON.parse(e.args[0]), null == i || i.putImageData(o, 0, 0);\n }\n }, e.prototype.applyIncremental = function (e, t) {\n var n,\n r,\n i = this,\n o = e.data;\n switch (o.source) {\n case le.Mutation:\n t && (o.adds.forEach(function (e) {\n return i.treeIndex.add(e);\n }), o.texts.forEach(function (e) {\n var t = i.mirror.getNode(e.id),\n n = null == t ? void 0 : t.parentNode;\n n && i.virtualStyleRulesMap.has(n) && i.virtualStyleRulesMap.delete(n), i.treeIndex.text(e);\n }), o.attributes.forEach(function (e) {\n return i.treeIndex.attribute(e);\n }), o.removes.forEach(function (e) {\n return i.treeIndex.remove(e, i.mirror);\n }));\n try {\n this.applyMutation(o, t);\n } catch (e) {\n this.warn(\"Exception in mutation \".concat(e.message || e), o);\n }\n break;\n case le.Drag:\n case le.TouchMove:\n case le.MouseMove:\n if (t) {\n var a = o.positions[o.positions.length - 1];\n this.mousePos = {\n x: a.x,\n y: a.y,\n id: a.id,\n debugData: o\n };\n } else o.positions.forEach(function (n) {\n var r = {\n doAction: function () {\n i.moveAndHover(n.x, n.y, n.id, t, o);\n },\n delay: n.timeOffset + e.timestamp - i.service.state.context.baselineTime\n };\n i.timer.addAction(r);\n }), this.timer.addAction({\n doAction: function () {},\n delay: e.delay - (null === (n = o.positions[0]) || void 0 === n ? void 0 : n.timeOffset)\n });\n break;\n case le.MouseInteraction:\n if (-1 === o.id) break;\n var s = new Event(ce[o.type].toLowerCase());\n if (!(g = this.mirror.getNode(o.id))) return this.debugNodeNotFound(o, o.id);\n this.emitter.emit(fe.MouseInteraction, {\n type: o.type,\n target: g\n });\n var l = this.config.triggerFocus;\n switch (o.type) {\n case ce.Blur:\n \"blur\" in g && g.blur();\n break;\n case ce.Focus:\n l && g.focus && g.focus({\n preventScroll: !0\n });\n break;\n case ce.Click:\n case ce.TouchStart:\n case ce.TouchEnd:\n t ? (o.type === ce.TouchStart ? this.touchActive = !0 : o.type === ce.TouchEnd && (this.touchActive = !1), this.mousePos = {\n x: o.x,\n y: o.y,\n id: o.id,\n debugData: o\n }) : (o.type === ce.TouchStart && (this.tailPositions.length = 0), this.moveAndHover(o.x, o.y, o.id, t, o), o.type === ce.Click ? (this.mouse.classList.remove(\"active\"), this.mouse.offsetWidth, this.mouse.classList.add(\"active\")) : o.type === ce.TouchStart ? (this.mouse.offsetWidth, this.mouse.classList.add(\"touch-active\")) : o.type === ce.TouchEnd && this.mouse.classList.remove(\"touch-active\"));\n break;\n case ce.TouchCancel:\n t ? this.touchActive = !1 : this.mouse.classList.remove(\"touch-active\");\n break;\n default:\n g.dispatchEvent(s);\n }\n break;\n case le.Scroll:\n if (-1 === o.id) break;\n if (t) {\n this.treeIndex.scroll(o);\n break;\n }\n this.applyScroll(o, !1);\n break;\n case le.ViewportResize:\n this.emitter.emit(fe.Resize, {\n width: o.width,\n height: o.height\n });\n break;\n case le.Input:\n if (-1 === o.id) break;\n if (t) {\n this.treeIndex.input(o);\n break;\n }\n this.applyInput(o);\n break;\n case le.MediaInteraction:\n if (!(g = this.mirror.getNode(o.id))) return this.debugNodeNotFound(o, o.id);\n var c = g;\n try {\n o.currentTime && (c.currentTime = o.currentTime), o.volume && (c.volume = o.volume), o.muted && (c.muted = o.muted), 1 === o.type && c.pause(), 0 === o.type && c.play();\n } catch (e) {\n this.config.showWarning && console.warn(\"Failed to replay media interactions: \".concat(e.message || e));\n }\n break;\n case le.StyleSheetRule:\n if (!(g = this.mirror.getNode(o.id))) return this.debugNodeNotFound(o, o.id);\n var u,\n d = g,\n f = g.parentNode,\n p = this.fragmentParentMap.has(f),\n h = p ? null : d.sheet;\n h || (this.virtualStyleRulesMap.has(g) ? u = this.virtualStyleRulesMap.get(g) : (u = [], this.virtualStyleRulesMap.set(g, u))), o.adds && o.adds.forEach(function (e) {\n var t = e.rule,\n n = e.index;\n if (h) try {\n if (Array.isArray(n)) {\n var r = Ke(n),\n i = r.positions,\n o = r.index;\n Je(h.cssRules, i).insertRule(t, o);\n } else {\n o = void 0 === n ? void 0 : Math.min(n, h.cssRules.length);\n h.insertRule(t, o);\n }\n } catch (e) {} else null == u || u.push({\n cssText: t,\n index: n,\n type: Qe.Insert\n });\n }), o.removes && o.removes.forEach(function (e) {\n var t = e.index;\n if (p) null == u || u.push({\n index: t,\n type: Qe.Remove\n });else try {\n if (Array.isArray(t)) {\n var n = Ke(t),\n r = n.positions,\n i = n.index;\n Je(h.cssRules, r).deleteRule(i || 0);\n } else null == h || h.deleteRule(t);\n } catch (e) {}\n });\n break;\n case le.StyleDeclaration:\n if (!(g = this.mirror.getNode(o.id))) return this.debugNodeNotFound(o, o.id);\n d = g;\n var m = g.parentNode,\n v = this.fragmentParentMap.has(m) ? null : d.sheet,\n y = [];\n if (v || (this.virtualStyleRulesMap.has(g) ? y = this.virtualStyleRulesMap.get(g) : (y = [], this.virtualStyleRulesMap.set(g, y))), o.set) if (v) Je(v.rules, o.index).style.setProperty(o.set.property, o.set.value, o.set.priority);else y.push(J({\n type: Qe.SetProperty,\n index: o.index\n }, o.set));\n if (o.remove) if (v) Je(v.rules, o.index).style.removeProperty(o.remove.property);else y.push(J({\n type: Qe.RemoveProperty,\n index: o.index\n }, o.remove));\n break;\n case le.CanvasMutation:\n if (!this.config.UNSAFE_replayCanvas) return;\n var g;\n if (!(g = this.mirror.getNode(o.id))) return this.debugNodeNotFound(o, o.id);\n !function (e) {\n var t = e.event,\n n = e.mutation,\n r = e.target,\n i = e.imageMap,\n o = e.errorHandler;\n try {\n var a = \"commands\" in n ? n.commands : [n];\n [ue.WebGL, ue.WebGL2].includes(n.type) ? a.forEach(function (e) {\n it({\n mutation: e,\n type: n.type,\n target: r,\n imageMap: i,\n errorHandler: o\n });\n }) : a.forEach(function (e) {\n !function (e) {\n var t = e.event,\n n = e.mutation,\n r = e.target,\n i = e.imageMap,\n o = e.errorHandler;\n try {\n var a = r.getContext(\"2d\");\n if (n.setter) return void (a[n.property] = n.args[0]);\n var s = a[n.property];\n if (\"drawImage\" === n.property && \"string\" == typeof n.args[0]) {\n var l = i.get(t);\n n.args[0] = l, s.apply(a, n.args);\n } else s.apply(a, n.args);\n } catch (e) {\n o(n, e);\n }\n }({\n event: t,\n mutation: e,\n target: r,\n imageMap: i,\n errorHandler: o\n });\n });\n } catch (e) {\n o(n, e);\n }\n }({\n event: e,\n mutation: o,\n target: g,\n imageMap: this.imageMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this)\n });\n break;\n case le.Font:\n try {\n var b = new FontFace(o.family, o.buffer ? new Uint8Array(JSON.parse(o.fontSource)) : o.fontSource, o.descriptors);\n null === (r = this.iframe.contentDocument) || void 0 === r || r.fonts.add(b);\n } catch (e) {\n this.config.showWarning && console.warn(e);\n }\n }\n }, e.prototype.applyMutation = function (e, t) {\n var n,\n r,\n i = this;\n e.removes.forEach(function (t) {\n var n = i.mirror.getNode(t.id);\n if (!n) {\n if (e.removes.find(function (e) {\n return e.id === t.parentId;\n })) return;\n return i.warnNodeNotFound(e, t.id);\n }\n i.virtualStyleRulesMap.has(n) && i.virtualStyleRulesMap.delete(n);\n var r = i.mirror.getNode(t.parentId);\n if (!r) return i.warnNodeNotFound(e, t.parentId);\n if (t.isShadow && Ce(r) && (r = r.shadowRoot), i.mirror.removeNodeFromMap(n), r) {\n var o = null,\n a = \"__sn\" in r ? i.fragmentParentMap.get(r) : void 0;\n a && a.contains(n) ? r = a : i.fragmentParentMap.has(n) && (o = i.fragmentParentMap.get(n), i.fragmentParentMap.delete(n), n = o);\n try {\n r.removeChild(n);\n } catch (t) {\n if (!(t instanceof DOMException)) throw t;\n i.warn(\"parent could not remove child in mutation\", r, a, n, o, e);\n }\n }\n });\n var o = J({}, this.legacy_missingNodeRetryMap),\n a = [],\n s = function (e) {\n var n, r, s, l;\n if (!i.iframe.contentDocument) return console.warn(\"Looks like your replayer has been destroyed.\");\n var c = i.mirror.getNode(e.parentId);\n if (!c) return e.node.type === Q.Document ? i.newDocumentQueue.push(e) : a.push(e);\n var u = null;\n i.iframe.contentDocument.contains ? u = i.iframe.contentDocument.contains(c) : i.iframe.contentDocument.body.contains && (u = i.iframe.contentDocument.body.contains(c));\n var d = (null === (l = (s = c).getElementsByTagName) || void 0 === l ? void 0 : l.call(s, \"iframe\").length) > 0;\n if (t && u && !Me(c) && !d) {\n var f = document.createDocumentFragment();\n for (i.mirror.map[e.parentId] = f, i.fragmentParentMap.set(f, c), i.storeState(c); c.firstChild;) f.appendChild(c.firstChild);\n c = f;\n }\n e.node.isShadow && (Ce(c) || c.attachShadow({\n mode: \"open\"\n }), c = c.shadowRoot);\n var p = null,\n h = null;\n if (e.previousId && (p = i.mirror.getNode(e.previousId)), e.nextId && (h = i.mirror.getNode(e.nextId)), function (e) {\n var t = null;\n return e.nextId && (t = i.mirror.getNode(e.nextId)), null !== e.nextId && void 0 !== e.nextId && -1 !== e.nextId && !t;\n }(e)) return a.push(e);\n if (!e.node.rootId || i.mirror.getNode(e.node.rootId)) {\n var m = e.node.rootId ? i.mirror.getNode(e.node.rootId) : i.iframe.contentDocument;\n if (Me(c)) i.attachDocumentToIframe(e, c);else {\n var v = ge(e.node, {\n doc: m,\n map: i.mirror.map,\n skipChild: !0,\n hackCss: !0,\n cache: i.cache\n });\n if (-1 !== e.previousId && -1 !== e.nextId) {\n if (\"__sn\" in c && c.__sn.type === Q.Element && \"textarea\" === c.__sn.tagName && e.node.type === Q.Text) try {\n for (var y = K(Array.from(c.childNodes)), g = y.next(); !g.done; g = y.next()) {\n var b = g.value;\n b.nodeType === c.TEXT_NODE && c.removeChild(b);\n }\n } catch (e) {\n n = {\n error: e\n };\n } finally {\n try {\n g && !g.done && (r = y.return) && r.call(y);\n } finally {\n if (n) throw n.error;\n }\n }\n if (p && p.nextSibling && p.nextSibling.parentNode) c.insertBefore(v, p.nextSibling);else if (h && h.parentNode) c.contains(h) ? c.insertBefore(v, h) : c.insertBefore(v, null);else {\n if (c === m) for (; m.firstChild;) m.removeChild(m.firstChild);\n c.appendChild(v);\n }\n if (Me(v)) {\n var w = i.newDocumentQueue.find(function (e) {\n return e.parentId === v.__sn.id;\n });\n w && (i.attachDocumentToIframe(w, v), i.newDocumentQueue = i.newDocumentQueue.filter(function (e) {\n return e !== w;\n }));\n }\n (e.previousId || e.nextId) && i.legacy_resolveMissingNode(o, c, v, e);\n } else o[e.node.id] = {\n node: v,\n mutation: e\n };\n }\n }\n };\n e.adds.forEach(function (e) {\n s(e);\n });\n for (var l = Date.now(); a.length;) {\n var c = Ee(a);\n if (a.length = 0, Date.now() - l > 500) {\n this.warn(\"Timeout in the loop, please check the resolve tree data:\", c);\n break;\n }\n try {\n for (var u = (n = void 0, K(c)), d = u.next(); !d.done; d = u.next()) {\n var f = d.value;\n this.mirror.getNode(f.value.parentId) ? Te(f, function (e) {\n s(e);\n }) : this.debug(\"Drop resolve tree since there is no parent for the root node.\", f);\n }\n } catch (e) {\n n = {\n error: e\n };\n } finally {\n try {\n d && !d.done && (r = u.return) && r.call(u);\n } finally {\n if (n) throw n.error;\n }\n }\n }\n Object.keys(o).length && Object.assign(this.legacy_missingNodeRetryMap, o), e.texts.forEach(function (t) {\n var n = i.mirror.getNode(t.id);\n if (!n) {\n if (e.removes.find(function (e) {\n return e.id === t.id;\n })) return;\n return i.warnNodeNotFound(e, t.id);\n }\n i.fragmentParentMap.has(n) && (n = i.fragmentParentMap.get(n)), n.textContent = t.value;\n }), e.attributes.forEach(function (t) {\n var n = i.mirror.getNode(t.id);\n if (!n) {\n if (e.removes.find(function (e) {\n return e.id === t.id;\n })) return;\n return i.warnNodeNotFound(e, t.id);\n }\n for (var r in i.fragmentParentMap.has(n) && (n = i.fragmentParentMap.get(n)), t.attributes) if (\"string\" == typeof r) {\n var o = t.attributes[r];\n if (null === o) n.removeAttribute(r);else if (\"string\" == typeof o) try {\n n.setAttribute(r, o);\n } catch (e) {\n i.config.showWarning && console.warn(\"An error occurred may due to the checkout feature.\", e);\n } else if (\"style\" === r) {\n var a = o,\n s = n;\n for (var l in a) if (!1 === a[l]) s.style.removeProperty(l);else if (a[l] instanceof Array) {\n var c = a[l];\n s.style.setProperty(l, c[0], c[1]);\n } else {\n var u = a[l];\n s.style.setProperty(l, u);\n }\n }\n }\n });\n }, e.prototype.applyScroll = function (e, t) {\n var n = this.mirror.getNode(e.id);\n if (!n) return this.debugNodeNotFound(e, e.id);\n if (n === this.iframe.contentDocument) this.iframe.contentWindow.scrollTo({\n top: e.y,\n left: e.x,\n behavior: t ? \"auto\" : \"smooth\"\n });else if (n.__sn.type === Q.Document) n.defaultView.scrollTo({\n top: e.y,\n left: e.x,\n behavior: t ? \"auto\" : \"smooth\"\n });else try {\n n.scrollTop = e.y, n.scrollLeft = e.x;\n } catch (e) {}\n }, e.prototype.applyInput = function (e) {\n var t = this.mirror.getNode(e.id);\n if (!t) return this.debugNodeNotFound(e, e.id);\n try {\n t.checked = e.isChecked, t.value = e.text;\n } catch (e) {}\n }, e.prototype.applyText = function (e, t) {\n var n = this.mirror.getNode(e.id);\n if (!n) return this.debugNodeNotFound(t, e.id);\n try {\n n.textContent = e.value;\n } catch (e) {}\n }, e.prototype.legacy_resolveMissingNode = function (e, t, n, r) {\n var i = r.previousId,\n o = r.nextId,\n a = i && e[i],\n s = o && e[o];\n if (a) {\n var l = a,\n c = l.node,\n u = l.mutation;\n t.insertBefore(c, n), delete e[u.node.id], delete this.legacy_missingNodeRetryMap[u.node.id], (u.previousId || u.nextId) && this.legacy_resolveMissingNode(e, t, c, u);\n }\n if (s) {\n var d = s;\n c = d.node, u = d.mutation;\n t.insertBefore(c, n.nextSibling), delete e[u.node.id], delete this.legacy_missingNodeRetryMap[u.node.id], (u.previousId || u.nextId) && this.legacy_resolveMissingNode(e, t, c, u);\n }\n }, e.prototype.moveAndHover = function (e, t, n, r, i) {\n var o = this.mirror.getNode(n);\n if (!o) return this.debugNodeNotFound(i, n);\n var a = ke(o, this.iframe),\n s = e * a.absoluteScale + a.x,\n l = t * a.absoluteScale + a.y;\n this.mouse.style.left = \"\".concat(s, \"px\"), this.mouse.style.top = \"\".concat(l, \"px\"), r || this.drawMouseTail({\n x: s,\n y: l\n }), this.hoverElements(o);\n }, e.prototype.drawMouseTail = function (e) {\n var t = this;\n if (this.mouseTail) {\n var n = !0 === this.config.mouseTail ? at : Object.assign({}, at, this.config.mouseTail),\n r = n.lineCap,\n i = n.lineWidth,\n o = n.strokeStyle,\n a = n.duration,\n s = function () {\n if (t.mouseTail) {\n var e = t.mouseTail.getContext(\"2d\");\n e && t.tailPositions.length && (e.clearRect(0, 0, t.mouseTail.width, t.mouseTail.height), e.beginPath(), e.lineWidth = i, e.lineCap = r, e.strokeStyle = o, e.moveTo(t.tailPositions[0].x, t.tailPositions[0].y), t.tailPositions.forEach(function (t) {\n return e.lineTo(t.x, t.y);\n }), e.stroke());\n }\n };\n this.tailPositions.push(e), s(), setTimeout(function () {\n t.tailPositions = t.tailPositions.filter(function (t) {\n return t !== e;\n }), s();\n }, a / this.speedService.state.context.timer.speed);\n }\n }, e.prototype.hoverElements = function (e) {\n var t;\n null === (t = this.iframe.contentDocument) || void 0 === t || t.querySelectorAll(\".\\\\:hover\").forEach(function (e) {\n e.classList.remove(\":hover\");\n });\n for (var n = e; n;) n.classList && n.classList.add(\":hover\"), n = n.parentElement;\n }, e.prototype.isUserInteraction = function (e) {\n return e.type === se.IncrementalSnapshot && e.data.source > le.Mutation && e.data.source <= le.Input;\n }, e.prototype.backToNormal = function () {\n this.nextUserInteractionEvent = null, this.speedService.state.matches(\"normal\") || (this.speedService.send({\n type: \"BACK_TO_NORMAL\"\n }), this.emitter.emit(fe.SkipEnd, {\n speed: this.speedService.state.context.normalSpeed\n }));\n }, e.prototype.restoreRealParent = function (e, t) {\n this.mirror.map[t.__sn.id] = t, t.__sn.type === Q.Element && \"textarea\" === t.__sn.tagName && e.textContent && (t.value = e.textContent), t.appendChild(e), this.restoreState(t);\n }, e.prototype.storeState = function (e) {\n var t, n;\n if (e && e.nodeType === e.ELEMENT_NODE) {\n var r = e;\n (r.scrollLeft || r.scrollTop) && this.elementStateMap.set(e, {\n scroll: [r.scrollLeft, r.scrollTop]\n }), \"STYLE\" === r.tagName && function (e, t) {\n var n;\n try {\n var r = Array.from((null === (n = e.sheet) || void 0 === n ? void 0 : n.cssRules) || []).map(function (e) {\n return e.cssText;\n });\n t.set(e, [{\n type: Qe.Snapshot,\n cssTexts: r\n }]);\n } catch (e) {}\n }(r, this.virtualStyleRulesMap);\n var i = r.children;\n try {\n for (var o = K(Array.from(i)), a = o.next(); !a.done; a = o.next()) {\n var s = a.value;\n this.storeState(s);\n }\n } catch (e) {\n t = {\n error: e\n };\n } finally {\n try {\n a && !a.done && (n = o.return) && n.call(o);\n } finally {\n if (t) throw t.error;\n }\n }\n }\n }, e.prototype.restoreState = function (e) {\n var t, n;\n if (e.nodeType === e.ELEMENT_NODE) {\n var r = e;\n if (this.elementStateMap.has(e)) {\n var i = this.elementStateMap.get(e);\n i.scroll && (r.scrollLeft = i.scroll[0], r.scrollTop = i.scroll[1]), this.elementStateMap.delete(e);\n }\n var o = r.children;\n try {\n for (var a = K(Array.from(o)), s = a.next(); !s.done; s = a.next()) {\n var l = s.value;\n this.restoreState(l);\n }\n } catch (e) {\n t = {\n error: e\n };\n } finally {\n try {\n s && !s.done && (n = a.return) && n.call(a);\n } finally {\n if (t) throw t.error;\n }\n }\n }\n }, e.prototype.restoreNodeSheet = function (e) {\n var t = this.virtualStyleRulesMap.get(e);\n \"STYLE\" === e.nodeName && t && Ze(t, e);\n }, e.prototype.warnNodeNotFound = function (e, t) {\n this.treeIndex.idRemoved(t) ? this.warn(\"Node with id '\".concat(t, \"' was previously removed. \"), e) : this.warn(\"Node with id '\".concat(t, \"' not found. \"), e);\n }, e.prototype.warnCanvasMutationFailed = function (e, t) {\n this.warn(\"Has error on canvas update\", t, \"canvas mutation:\", e);\n }, e.prototype.debugNodeNotFound = function (e, t) {\n this.treeIndex.idRemoved(t) ? this.debug(\"[replayer]\", \"Node with id '\".concat(t, \"' was previously removed. \"), e) : this.debug(\"[replayer]\", \"Node with id '\".concat(t, \"' not found. \"), e);\n }, e.prototype.warn = function () {\n for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];\n this.config.showWarning && console.warn.apply(console, ee([\"[replayer]\"], Z(e), !1));\n }, e.prototype.debug = function () {\n for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];\n this.config.showDebug && console.log.apply(console, ee([\"[replayer]\"], Z(e), !1));\n }, e;\n }(),\n ct = Uint8Array,\n ut = Uint16Array,\n dt = Uint32Array,\n ft = new ct([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0, 0]),\n pt = new ct([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 0, 0]),\n ht = new ct([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]),\n mt = function (e, t) {\n for (var n = new ut(31), r = 0; r < 31; ++r) n[r] = t += 1 << e[r - 1];\n var i = new dt(n[30]);\n for (r = 1; r < 30; ++r) for (var o = n[r]; o < n[r + 1]; ++o) i[o] = o - n[r] << 5 | r;\n return [n, i];\n },\n vt = mt(ft, 2),\n yt = vt[0],\n gt = vt[1];\nyt[28] = 258, gt[258] = 28;\nfor (var bt = mt(pt, 0)[0], wt = new ut(32768), xt = 0; xt < 32768; ++xt) {\n var St = (43690 & xt) >>> 1 | (21845 & xt) << 1;\n St = (61680 & (St = (52428 & St) >>> 2 | (13107 & St) << 2)) >>> 4 | (3855 & St) << 4, wt[xt] = ((65280 & St) >>> 8 | (255 & St) << 8) >>> 1;\n}\nvar Et = function (e, t, n) {\n for (var r = e.length, i = 0, o = new ut(t); i < r; ++i) ++o[e[i] - 1];\n var a,\n s = new ut(t);\n for (i = 0; i < t; ++i) s[i] = s[i - 1] + o[i - 1] << 1;\n if (n) {\n a = new ut(1 << t);\n var l = 15 - t;\n for (i = 0; i < r; ++i) if (e[i]) for (var c = i << 4 | e[i], u = t - e[i], d = s[e[i] - 1]++ << u, f = d | (1 << u) - 1; d <= f; ++d) a[wt[d] >>> l] = c;\n } else for (a = new ut(r), i = 0; i < r; ++i) a[i] = wt[s[e[i] - 1]++] >>> 15 - e[i];\n return a;\n },\n Tt = new ct(288);\nfor (xt = 0; xt < 144; ++xt) Tt[xt] = 8;\nfor (xt = 144; xt < 256; ++xt) Tt[xt] = 9;\nfor (xt = 256; xt < 280; ++xt) Tt[xt] = 7;\nfor (xt = 280; xt < 288; ++xt) Tt[xt] = 8;\nvar Mt = new ct(32);\nfor (xt = 0; xt < 32; ++xt) Mt[xt] = 5;\nvar kt = Et(Tt, 9, 1),\n Ct = Et(Mt, 5, 1),\n It = function (e) {\n for (var t = e[0], n = 1; n < e.length; ++n) e[n] > t && (t = e[n]);\n return t;\n },\n Nt = function (e, t, n) {\n var r = t / 8 >> 0;\n return (e[r] | e[r + 1] << 8) >>> (7 & t) & n;\n },\n At = function (e, t) {\n var n = t / 8 >> 0;\n return (e[n] | e[n + 1] << 8 | e[n + 2] << 16) >>> (7 & t);\n },\n _t = function (e, t, n) {\n (null == t || t < 0) && (t = 0), (null == n || n > e.length) && (n = e.length);\n var r = new (e instanceof ut ? ut : e instanceof dt ? dt : ct)(n - t);\n return r.set(e.subarray(t, n)), r;\n };\nfunction $t(e, t) {\n return function (e, t, n) {\n var r = e.length,\n i = !t || n,\n o = !n || n.i;\n n || (n = {}), t || (t = new ct(3 * r));\n var a,\n s = function (e) {\n var n = t.length;\n if (e > n) {\n var r = new ct(Math.max(2 * n, e));\n r.set(t), t = r;\n }\n },\n l = n.f || 0,\n c = n.p || 0,\n u = n.b || 0,\n d = n.l,\n f = n.d,\n p = n.m,\n h = n.n,\n m = 8 * r;\n do {\n if (!d) {\n n.f = l = Nt(e, c, 1);\n var v = Nt(e, c + 1, 3);\n if (c += 3, !v) {\n var y = e[(I = ((a = c) / 8 >> 0) + (7 & a && 1) + 4) - 4] | e[I - 3] << 8,\n g = I + y;\n if (g > r) {\n if (o) throw \"unexpected EOF\";\n break;\n }\n i && s(u + y), t.set(e.subarray(I, g), u), n.b = u += y, n.p = c = 8 * g;\n continue;\n }\n if (1 == v) d = kt, f = Ct, p = 9, h = 5;else {\n if (2 != v) throw \"invalid block type\";\n var b = Nt(e, c, 31) + 257,\n w = Nt(e, c + 10, 15) + 4,\n x = b + Nt(e, c + 5, 31) + 1;\n c += 14;\n for (var S = new ct(x), E = new ct(19), T = 0; T < w; ++T) E[ht[T]] = Nt(e, c + 3 * T, 7);\n c += 3 * w;\n var M = It(E),\n k = (1 << M) - 1;\n if (!o && c + x * (M + 7) > m) break;\n var C = Et(E, M, 1);\n for (T = 0; T < x;) {\n var I,\n N = C[Nt(e, c, k)];\n if (c += 15 & N, (I = N >>> 4) < 16) S[T++] = I;else {\n var A = 0,\n _ = 0;\n for (16 == I ? (_ = 3 + Nt(e, c, 3), c += 2, A = S[T - 1]) : 17 == I ? (_ = 3 + Nt(e, c, 7), c += 3) : 18 == I && (_ = 11 + Nt(e, c, 127), c += 7); _--;) S[T++] = A;\n }\n }\n var $ = S.subarray(0, b),\n D = S.subarray(b);\n p = It($), h = It(D), d = Et($, p, 1), f = Et(D, h, 1);\n }\n if (c > m) throw \"unexpected EOF\";\n }\n i && s(u + 131072);\n for (var R = (1 << p) - 1, L = (1 << h) - 1, F = p + h + 18; o || c + F < m;) {\n var P = (A = d[At(e, c) & R]) >>> 4;\n if ((c += 15 & A) > m) throw \"unexpected EOF\";\n if (!A) throw \"invalid length/literal\";\n if (P < 256) t[u++] = P;else {\n if (256 == P) {\n d = null;\n break;\n }\n var O = P - 254;\n if (P > 264) {\n var j = ft[T = P - 257];\n O = Nt(e, c, (1 << j) - 1) + yt[T], c += j;\n }\n var W = f[At(e, c) & L],\n B = W >>> 4;\n if (!W) throw \"invalid distance\";\n if (c += 15 & W, D = bt[B], B > 3 && (j = pt[B], D += At(e, c) & (1 << j) - 1, c += j), c > m) throw \"unexpected EOF\";\n i && s(u + 131072);\n for (var z = u + O; u < z; u += 4) t[u] = t[u - D], t[u + 1] = t[u + 1 - D], t[u + 2] = t[u + 2 - D], t[u + 3] = t[u + 3 - D];\n u = z;\n }\n }\n n.l = d, n.p = c, n.b = u, d && (l = 1, n.m = p, n.d = f, n.n = h);\n } while (!l);\n return u == t.length ? t : _t(t, 0, u);\n }((function (e) {\n if (8 != (15 & e[0]) || e[0] >>> 4 > 7 || (e[0] << 8 | e[1]) % 31) throw \"invalid zlib data\";\n if (32 & e[1]) throw \"invalid zlib data: preset dictionaries not supported\";\n }(e), e.subarray(2, -4)), t);\n}\nvar Dt = function (e) {\n if (\"string\" != typeof e) return e;\n try {\n if ((t = JSON.parse(e)).timestamp) return t;\n } catch (e) {}\n try {\n var t;\n if (\"v1\" === (t = JSON.parse(function (e, t) {\n var n = \"\";\n if (!t && \"undefined\" != typeof TextDecoder) return new TextDecoder().decode(e);\n for (var r = 0; r < e.length;) {\n var i = e[r++];\n i < 128 || t ? n += String.fromCharCode(i) : i < 224 ? n += String.fromCharCode((31 & i) << 6 | 63 & e[r++]) : i < 240 ? n += String.fromCharCode((15 & i) << 12 | (63 & e[r++]) << 6 | 63 & e[r++]) : (i = ((15 & i) << 18 | (63 & e[r++]) << 12 | (63 & e[r++]) << 6 | 63 & e[r++]) - 65536, n += String.fromCharCode(55296 | i >> 10, 56320 | 1023 & i));\n }\n return n;\n }($t(function (e, t) {\n var n = e.length;\n if (!t && \"undefined\" != typeof TextEncoder) return new TextEncoder().encode(e);\n for (var r = new ct(e.length + (e.length >>> 1)), i = 0, o = function (e) {\n r[i++] = e;\n }, a = 0; a < n; ++a) {\n if (i + 5 > r.length) {\n var s = new ct(i + 8 + (n - a << 1));\n s.set(r), r = s;\n }\n var l = e.charCodeAt(a);\n l < 128 || t ? o(l) : l < 2048 ? (o(192 | l >>> 6), o(128 | 63 & l)) : l > 55295 && l < 57344 ? (o(240 | (l = 65536 + (1047552 & l) | 1023 & e.charCodeAt(++a)) >>> 18), o(128 | l >>> 12 & 63), o(128 | l >>> 6 & 63), o(128 | 63 & l)) : (o(224 | l >>> 12), o(128 | l >>> 6 & 63), o(128 | 63 & l));\n }\n return _t(r, 0, i);\n }(e, !0))))).v) return t;\n throw new Error(\"These events were packed with packer \".concat(t.v, \" which is incompatible with current packer \").concat(\"v1\", \".\"));\n } catch (e) {\n throw console.error(e), new Error(\"Unknown data format.\");\n }\n};\nfunction Rt(e) {\n let t = \"\";\n return Object.keys(e).forEach(n => {\n t += `${n}: ${e[n]};`;\n }), t;\n}\nfunction Lt(e) {\n let t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n let n = String(e);\n const r = Math.pow(10, t - 1);\n if (e < r) for (; String(r).length > n.length;) n = \"0\" + e;\n return n;\n}\nfunction Ft(e) {\n if (e <= 0) return \"00:00\";\n const t = Math.floor(e / 36e5);\n e %= 36e5;\n const n = Math.floor(e / 6e4);\n e %= 6e4;\n const r = Math.floor(e / 1e3);\n return t ? `${Lt(t)}:${Lt(n)}:${Lt(r)}` : `${Lt(n)}:${Lt(r)}`;\n}\nfunction Pt() {\n return document.fullscreen || document.webkitIsFullScreen || document.mozFullScreen || document.msFullscreenElement;\n}\nfunction Ot(e) {\n return {\n \"[object Boolean]\": \"boolean\",\n \"[object Number]\": \"number\",\n \"[object String]\": \"string\",\n \"[object Function]\": \"function\",\n \"[object Array]\": \"array\",\n \"[object Date]\": \"date\",\n \"[object RegExp]\": \"regExp\",\n \"[object Undefined]\": \"undefined\",\n \"[object Null]\": \"null\",\n \"[object Object]\": \"object\"\n }[Object.prototype.toString.call(e)];\n}\nfunction jt(t) {\n let n, r, i, o, a, s, d, p, b;\n return {\n c() {\n n = f(\"div\"), r = f(\"input\"), i = m(), o = f(\"label\"), a = m(), s = f(\"span\"), d = h(t[3]), y(r, \"type\", \"checkbox\"), y(r, \"id\", t[2]), r.disabled = t[1], y(r, \"class\", \"svelte-9brlez\"), y(o, \"for\", t[2]), y(o, \"class\", \"svelte-9brlez\"), y(s, \"class\", \"label svelte-9brlez\"), y(n, \"class\", \"switch svelte-9brlez\"), w(n, \"disabled\", t[1]);\n },\n m(e, u) {\n c(e, n, u), l(n, r), r.checked = t[0], l(n, i), l(n, o), l(n, a), l(n, s), l(s, d), p || (b = v(r, \"change\", t[4]), p = !0);\n },\n p(e, _ref) {\n let _ref2 = _slicedToArray(_ref, 1),\n t = _ref2[0];\n 4 & t && y(r, \"id\", e[2]), 2 & t && (r.disabled = e[1]), 1 & t && (r.checked = e[0]), 4 & t && y(o, \"for\", e[2]), 8 & t && g(d, e[3]), 2 & t && w(n, \"disabled\", e[1]);\n },\n i: e,\n o: e,\n d(e) {\n e && u(n), p = !1, b();\n }\n };\n}\nfunction Wt(e, t, n) {\n let r = t.disabled,\n i = t.checked,\n o = t.id,\n a = t.label;\n return e.$$set = e => {\n \"disabled\" in e && n(1, r = e.disabled), \"checked\" in e && n(0, i = e.checked), \"id\" in e && n(2, o = e.id), \"label\" in e && n(3, a = e.label);\n }, [i, r, o, a, function () {\n i = this.checked, n(0, i);\n }];\n}\nclass Bt extends X {\n constructor(e) {\n super(), Y(this, e, Wt, jt, a, {\n disabled: 1,\n checked: 0,\n id: 2,\n label: 3\n });\n }\n}\nfunction zt(e, t, n) {\n const r = e.slice();\n return r[34] = t[n], r;\n}\nfunction Ut(e, t, n) {\n const r = e.slice();\n return r[37] = t[n], r;\n}\nfunction qt(e) {\n let t,\n n,\n r,\n o,\n a,\n s,\n p,\n x,\n S,\n E,\n T,\n M,\n k,\n C,\n N,\n _,\n $,\n D,\n R,\n L,\n F,\n P,\n O,\n j,\n W,\n B = Ft(e[6]) + \"\",\n G = Ft(e[8].totalTime) + \"\",\n Y = e[9],\n X = [];\n for (let t = 0; t < Y.length; t += 1) X[t] = Ht(Ut(e, Y, t));\n function Q(e, t) {\n return \"playing\" === e[7] ? Gt : Vt;\n }\n let J = Q(e),\n K = J(e),\n Z = e[3],\n ee = [];\n for (let t = 0; t < Z.length; t += 1) ee[t] = Yt(zt(e, Z, t));\n function te(t) {\n e[28](t);\n }\n let ne = {\n id: \"skip\",\n disabled: \"skipping\" === e[10],\n label: \"skip inactive\"\n };\n return void 0 !== e[0] && (ne.checked = e[0]), R = new Bt({\n props: ne\n }), I.push(() => function (e, t, n) {\n const r = e.$$.props[t];\n void 0 !== r && (e.$$.bound[r] = n, n(e.$$.ctx[r]));\n }(R, \"checked\", te)), {\n c() {\n t = f(\"div\"), n = f(\"div\"), r = f(\"span\"), o = h(B), a = m(), s = f(\"div\"), p = f(\"div\"), x = m();\n for (let e = 0; e < X.length; e += 1) X[e].c();\n S = m(), E = f(\"div\"), T = m(), M = f(\"span\"), k = h(G), C = m(), N = f(\"div\"), _ = f(\"button\"), K.c(), $ = m();\n for (let e = 0; e < ee.length; e += 1) ee[e].c();\n D = m(), q(R.$$.fragment), F = m(), P = f(\"button\"), P.innerHTML = '', y(r, \"class\", \"rr-timeline__time svelte-19ke1iv\"), y(p, \"class\", \"rr-progress__step svelte-19ke1iv\"), b(p, \"width\", e[13]), y(E, \"class\", \"rr-progress__handler svelte-19ke1iv\"), b(E, \"left\", e[13]), y(s, \"class\", \"rr-progress svelte-19ke1iv\"), w(s, \"disabled\", \"skipping\" === e[10]), y(M, \"class\", \"rr-timeline__time svelte-19ke1iv\"), y(n, \"class\", \"rr-timeline svelte-19ke1iv\"), y(_, \"class\", \"svelte-19ke1iv\"), y(P, \"class\", \"svelte-19ke1iv\"), y(N, \"class\", \"rr-controller__btns svelte-19ke1iv\"), y(t, \"class\", \"rr-controller svelte-19ke1iv\");\n },\n m(i, u) {\n c(i, t, u), l(t, n), l(n, r), l(r, o), l(n, a), l(n, s), l(s, p), e[24](p), l(s, x);\n for (let e = 0; e < X.length; e += 1) X[e].m(s, null);\n l(s, S), l(s, E), e[25](s), l(n, T), l(n, M), l(M, k), l(t, C), l(t, N), l(N, _), K.m(_, null), l(N, $);\n for (let e = 0; e < ee.length; e += 1) ee[e].m(N, null);\n l(N, D), H(R, N, null), l(N, F), l(N, P), O = !0, j || (W = [v(s, \"click\", e[26]), v(_, \"click\", e[4]), v(P, \"click\", e[29])], j = !0);\n },\n p(e, t) {\n if ((!O || 64 & t[0]) && B !== (B = Ft(e[6]) + \"\") && g(o, B), (!O || 8192 & t[0]) && b(p, \"width\", e[13]), 512 & t[0]) {\n let n;\n for (Y = e[9], n = 0; n < Y.length; n += 1) {\n const r = Ut(e, Y, n);\n X[n] ? X[n].p(r, t) : (X[n] = Ht(r), X[n].c(), X[n].m(s, S));\n }\n for (; n < X.length; n += 1) X[n].d(1);\n X.length = Y.length;\n }\n if ((!O || 8192 & t[0]) && b(E, \"left\", e[13]), 1024 & t[0] && w(s, \"disabled\", \"skipping\" === e[10]), (!O || 256 & t[0]) && G !== (G = Ft(e[8].totalTime) + \"\") && g(k, G), J !== (J = Q(e)) && (K.d(1), K = J(e), K && (K.c(), K.m(_, null))), 1066 & t[0]) {\n let n;\n for (Z = e[3], n = 0; n < Z.length; n += 1) {\n const r = zt(e, Z, n);\n ee[n] ? ee[n].p(r, t) : (ee[n] = Yt(r), ee[n].c(), ee[n].m(N, D));\n }\n for (; n < ee.length; n += 1) ee[n].d(1);\n ee.length = Z.length;\n }\n const n = {};\n var r;\n 1024 & t[0] && (n.disabled = \"skipping\" === e[10]), !L && 1 & t[0] && (L = !0, n.checked = e[0], r = () => L = !1, A.push(r)), R.$set(n);\n },\n i(e) {\n O || (z(R.$$.fragment, e), O = !0);\n },\n o(e) {\n U(R.$$.fragment, e), O = !1;\n },\n d(n) {\n n && u(t), e[24](null), d(X, n), e[25](null), K.d(), d(ee, n), V(R), j = !1, i(W);\n }\n };\n}\nfunction Ht(e) {\n let t, n;\n return {\n c() {\n t = f(\"div\"), y(t, \"title\", n = e[37].name), b(t, \"width\", \"10px\"), b(t, \"height\", \"5px\"), b(t, \"position\", \"absolute\"), b(t, \"top\", \"2px\"), b(t, \"transform\", \"translate(-50%, -50%)\"), b(t, \"background\", e[37].background), b(t, \"left\", e[37].position);\n },\n m(e, n) {\n c(e, t, n);\n },\n p(e, r) {\n 512 & r[0] && n !== (n = e[37].name) && y(t, \"title\", n), 512 & r[0] && b(t, \"background\", e[37].background), 512 & r[0] && b(t, \"left\", e[37].position);\n },\n d(e) {\n e && u(t);\n }\n };\n}\nfunction Vt(e) {\n let t, n;\n return {\n c() {\n t = p(\"svg\"), n = p(\"path\"), y(n, \"d\", \"M170.65984 896l0-768 640 384zM644.66944\\n 512l-388.66944-233.32864 0 466.65728z\"), y(t, \"class\", \"icon\"), y(t, \"viewBox\", \"0 0 1024 1024\"), y(t, \"version\", \"1.1\"), y(t, \"xmlns\", \"http://www.w3.org/2000/svg\"), y(t, \"xmlns:xlink\", \"http://www.w3.org/1999/xlink\"), y(t, \"width\", \"16\"), y(t, \"height\", \"16\");\n },\n m(e, r) {\n c(e, t, r), l(t, n);\n },\n d(e) {\n e && u(t);\n }\n };\n}\nfunction Gt(e) {\n let t, n;\n return {\n c() {\n t = p(\"svg\"), n = p(\"path\"), y(n, \"d\", \"M682.65984 128q53.00224 0 90.50112 37.49888t37.49888 90.50112l0\\n 512q0 53.00224-37.49888 90.50112t-90.50112\\n 37.49888-90.50112-37.49888-37.49888-90.50112l0-512q0-53.00224\\n 37.49888-90.50112t90.50112-37.49888zM341.34016 128q53.00224 0\\n 90.50112 37.49888t37.49888 90.50112l0 512q0 53.00224-37.49888\\n 90.50112t-90.50112\\n 37.49888-90.50112-37.49888-37.49888-90.50112l0-512q0-53.00224\\n 37.49888-90.50112t90.50112-37.49888zM341.34016 213.34016q-17.67424\\n 0-30.16704 12.4928t-12.4928 30.16704l0 512q0 17.67424 12.4928\\n 30.16704t30.16704 12.4928 30.16704-12.4928\\n 12.4928-30.16704l0-512q0-17.67424-12.4928-30.16704t-30.16704-12.4928zM682.65984\\n 213.34016q-17.67424 0-30.16704 12.4928t-12.4928 30.16704l0 512q0\\n 17.67424 12.4928 30.16704t30.16704 12.4928 30.16704-12.4928\\n 12.4928-30.16704l0-512q0-17.67424-12.4928-30.16704t-30.16704-12.4928z\"), y(t, \"class\", \"icon\"), y(t, \"viewBox\", \"0 0 1024 1024\"), y(t, \"version\", \"1.1\"), y(t, \"xmlns\", \"http://www.w3.org/2000/svg\"), y(t, \"xmlns:xlink\", \"http://www.w3.org/1999/xlink\"), y(t, \"width\", \"16\"), y(t, \"height\", \"16\");\n },\n m(e, r) {\n c(e, t, r), l(t, n);\n },\n d(e) {\n e && u(t);\n }\n };\n}\nfunction Yt(e) {\n let t,\n n,\n r,\n i,\n o,\n a,\n s = e[34] + \"\";\n function d() {\n return e[27](e[34]);\n }\n return {\n c() {\n t = f(\"button\"), n = h(s), r = h(\"x\"), t.disabled = i = \"skipping\" === e[10], y(t, \"class\", \"svelte-19ke1iv\"), w(t, \"active\", e[34] === e[1] && \"skipping\" !== e[10]);\n },\n m(e, i) {\n c(e, t, i), l(t, n), l(t, r), o || (a = v(t, \"click\", d), o = !0);\n },\n p(r, o) {\n e = r, 8 & o[0] && s !== (s = e[34] + \"\") && g(n, s), 1024 & o[0] && i !== (i = \"skipping\" === e[10]) && (t.disabled = i), 1034 & o[0] && w(t, \"active\", e[34] === e[1] && \"skipping\" !== e[10]);\n },\n d(e) {\n e && u(t), o = !1, a();\n }\n };\n}\nfunction Xt(e) {\n let t,\n n,\n r = e[2] && qt(e);\n return {\n c() {\n r && r.c(), t = h(\"\");\n },\n m(e, i) {\n r && r.m(e, i), c(e, t, i), n = !0;\n },\n p(e, n) {\n e[2] ? r ? (r.p(e, n), 4 & n[0] && z(r, 1)) : (r = qt(e), r.c(), z(r, 1), r.m(t.parentNode, t)) : r && (W(), U(r, 1, 1, () => {\n r = null;\n }), B());\n },\n i(e) {\n n || (z(r), n = !0);\n },\n o(e) {\n U(r), n = !1;\n },\n d(e) {\n r && r.d(e), e && u(t);\n }\n };\n}\nfunction Qt(e, t, n) {\n const r = k();\n let i,\n o,\n a,\n s,\n l,\n c,\n u,\n d,\n f = t.replayer,\n p = t.showController,\n h = t.autoPlay,\n m = t.skipInactive,\n v = t.speedOption,\n _t$speed = t.speed,\n y = _t$speed === void 0 ? v.length ? v[0] : 1 : _t$speed,\n _t$tags = t.tags,\n g = _t$tags === void 0 ? {} : _t$tags,\n b = 0,\n w = null;\n const x = () => {\n w && (cancelAnimationFrame(w), w = null);\n },\n S = () => {\n \"paused\" === i && (l ? (f.play(), l = !1) : f.play(b));\n },\n C = () => {\n \"playing\" === i && f.pause();\n },\n N = (e, t) => {\n n(6, b = e);\n (\"boolean\" == typeof t ? t : \"playing\" === i) ? f.play(e) : f.pause(e);\n },\n A = e => {\n if (\"skipping\" === o) return;\n const t = a.getBoundingClientRect();\n let n = (e.clientX - t.left) / t.width;\n n < 0 ? n = 0 : n > 1 && (n = 1);\n const r = c.totalTime * n;\n l = !1, N(r);\n },\n _ = e => {\n let t = \"playing\" === i;\n n(1, y = e), t && f.pause(), f.setConfig({\n speed: y\n }), t && f.play(b);\n };\n var $;\n T(() => {\n n(7, i = f.service.state.value), n(10, o = f.speedService.state.value), f.on(\"state-change\", e => {\n const t = e.player,\n r = e.speed;\n if ((null == t ? void 0 : t.value) && i !== t.value) switch (n(7, i = t.value), i) {\n case \"playing\":\n x(), w = requestAnimationFrame(function e() {\n n(6, b = f.getCurrentTime()), b < c.totalTime && (w = requestAnimationFrame(e));\n });\n break;\n case \"paused\":\n x();\n }\n (null == r ? void 0 : r.value) && o !== r.value && n(10, o = r.value);\n }), f.on(\"finish\", () => {\n l = !0;\n }), h && f.play();\n }), $ = () => {\n m !== f.config.skipInactive && f.setConfig({\n skipInactive: m\n });\n }, E().$$.after_update.push($), M(() => {\n f.pause(), x();\n });\n return e.$$set = e => {\n \"replayer\" in e && n(16, f = e.replayer), \"showController\" in e && n(2, p = e.showController), \"autoPlay\" in e && n(17, h = e.autoPlay), \"skipInactive\" in e && n(0, m = e.skipInactive), \"speedOption\" in e && n(3, v = e.speedOption), \"speed\" in e && n(1, y = e.speed), \"tags\" in e && n(18, g = e.tags);\n }, e.$$.update = () => {\n if (64 & e.$$.dirty[0] && r(\"ui-update-current-time\", {\n payload: b\n }), 128 & e.$$.dirty[0] && r(\"ui-update-player-state\", {\n payload: i\n }), 65536 & e.$$.dirty[0] && n(8, c = f.getMetaData()), 320 & e.$$.dirty[0]) {\n const e = Math.min(1, b / c.totalTime);\n n(13, u = 100 * e + \"%\"), r(\"ui-update-progress\", {\n payload: e\n });\n }\n 327680 & e.$$.dirty[0] && n(9, d = (() => {\n const e = f.service.state.context,\n t = e.events.length,\n n = e.events[0].timestamp,\n r = e.events[t - 1].timestamp,\n i = [];\n return e.events.forEach(e => {\n if (e.type === se.Custom) {\n const s = {\n name: e.data.tag,\n background: g[e.data.tag] || \"rgb(73, 80, 246)\",\n position: `${(t = n, o = r, a = e.timestamp, (100 - (o - a) / (o - t) * 100).toFixed(2))}%`\n };\n i.push(s);\n }\n var t, o, a;\n }), i;\n })());\n }, [m, y, p, v, () => {\n switch (i) {\n case \"playing\":\n C();\n break;\n case \"paused\":\n S();\n }\n }, _, b, i, c, d, o, a, s, u, r, A, f, h, g, S, C, N, () => {\n n(0, m = !m);\n }, () => {\n Promise.resolve().then(() => {\n n(8, c = f.getMetaData());\n });\n }, function (e) {\n I[e ? \"unshift\" : \"push\"](() => {\n s = e, n(12, s);\n });\n }, function (e) {\n I[e ? \"unshift\" : \"push\"](() => {\n a = e, n(11, a);\n });\n }, e => A(e), e => _(e), function (e) {\n m = e, n(0, m);\n }, () => r(\"fullscreen\")];\n}\nclass Jt extends X {\n constructor(e) {\n super(), Y(this, e, Qt, Xt, a, {\n replayer: 16,\n showController: 2,\n autoPlay: 17,\n skipInactive: 0,\n speedOption: 3,\n speed: 1,\n tags: 18,\n toggle: 4,\n play: 19,\n pause: 20,\n goto: 21,\n setSpeed: 5,\n toggleSkipInactive: 22,\n triggerUpdateMeta: 23\n }, null, [-1, -1]);\n }\n get toggle() {\n return this.$$.ctx[4];\n }\n get play() {\n return this.$$.ctx[19];\n }\n get pause() {\n return this.$$.ctx[20];\n }\n get goto() {\n return this.$$.ctx[21];\n }\n get setSpeed() {\n return this.$$.ctx[5];\n }\n get toggleSkipInactive() {\n return this.$$.ctx[22];\n }\n get triggerUpdateMeta() {\n return this.$$.ctx[23];\n }\n}\nfunction Kt(e) {\n let t,\n n,\n r = {\n replayer: e[6],\n showController: e[3],\n autoPlay: e[1],\n speedOption: e[2],\n skipInactive: e[0],\n tags: e[4]\n };\n return t = new Jt({\n props: r\n }), e[29](t), t.$on(\"fullscreen\", e[30]), {\n c() {\n q(t.$$.fragment);\n },\n m(e, r) {\n H(t, e, r), n = !0;\n },\n p(e, n) {\n const r = {};\n 64 & n[0] && (r.replayer = e[6]), 8 & n[0] && (r.showController = e[3]), 2 & n[0] && (r.autoPlay = e[1]), 4 & n[0] && (r.speedOption = e[2]), 1 & n[0] && (r.skipInactive = e[0]), 16 & n[0] && (r.tags = e[4]), t.$set(r);\n },\n i(e) {\n n || (z(t.$$.fragment, e), n = !0);\n },\n o(e) {\n U(t.$$.fragment, e), n = !1;\n },\n d(n) {\n e[29](null), V(t, n);\n }\n };\n}\nfunction Zt(e) {\n let t,\n n,\n r,\n i,\n o = e[6] && Kt(e);\n return {\n c() {\n t = f(\"div\"), n = f(\"div\"), r = m(), o && o.c(), y(n, \"class\", \"rr-player__frame\"), y(n, \"style\", e[10]), y(t, \"class\", \"rr-player\"), y(t, \"style\", e[11]);\n },\n m(a, s) {\n c(a, t, s), l(t, n), e[28](n), l(t, r), o && o.m(t, null), e[31](t), i = !0;\n },\n p(e, r) {\n (!i || 1024 & r[0]) && y(n, \"style\", e[10]), e[6] ? o ? (o.p(e, r), 64 & r[0] && z(o, 1)) : (o = Kt(e), o.c(), z(o, 1), o.m(t, null)) : o && (W(), U(o, 1, 1, () => {\n o = null;\n }), B()), (!i || 2048 & r[0]) && y(t, \"style\", e[11]);\n },\n i(e) {\n i || (z(o), i = !0);\n },\n o(e) {\n U(o), i = !1;\n },\n d(n) {\n n && u(t), e[28](null), o && o.d(), e[31](null);\n }\n };\n}\nfunction en(e, n, r) {\n let i,\n _n2 = n,\n _n2$width = _n2.width,\n o = _n2$width === void 0 ? 1024 : _n2$width,\n _n3 = n,\n _n3$height = _n3.height,\n a = _n3$height === void 0 ? 576 : _n3$height,\n _n4 = n,\n _n4$events = _n4.events,\n l = _n4$events === void 0 ? [] : _n4$events,\n _n5 = n,\n _n5$skipInactive = _n5.skipInactive,\n c = _n5$skipInactive === void 0 ? !0 : _n5$skipInactive,\n _n6 = n,\n _n6$autoPlay = _n6.autoPlay,\n u = _n6$autoPlay === void 0 ? !0 : _n6$autoPlay,\n _n7 = n,\n _n7$speedOption = _n7.speedOption,\n d = _n7$speedOption === void 0 ? [1, 2, 4, 8] : _n7$speedOption,\n _n8 = n,\n _n8$speed = _n8.speed,\n f = _n8$speed === void 0 ? 1 : _n8$speed,\n _n9 = n,\n _n9$showController = _n9.showController,\n p = _n9$showController === void 0 ? !0 : _n9$showController,\n _n10 = n,\n _n10$tags = _n10.tags,\n h = _n10$tags === void 0 ? {} : _n10$tags;\n let m,\n v,\n y,\n g,\n b,\n w,\n x = o,\n S = a;\n const E = (e, t) => {\n const n = o / t.width,\n r = a / t.height;\n e.style.transform = `scale(${Math.min(n, r, 1)})translate(-50%, -50%)`;\n },\n k = () => {\n var e;\n m && (Pt() ? document.exitFullscreen ? document.exitFullscreen() : document.mozExitFullscreen ? document.mozExitFullscreen() : document.webkitExitFullscreen ? document.webkitExitFullscreen() : document.msExitFullscreen && document.msExitFullscreen() : (e = m).requestFullscreen ? e.requestFullscreen() : e.mozRequestFullScreen ? e.mozRequestFullScreen() : e.webkitRequestFullscreen ? e.webkitRequestFullscreen() : e.msRequestFullscreen && e.msRequestFullscreen());\n };\n T(() => {\n if (void 0 !== d && \"array\" !== Ot(d)) throw new Error(\"speedOption must be array\");\n if (d.forEach(e => {\n if (\"number\" !== Ot(e)) throw new Error(\"item of speedOption must be number\");\n }), d.indexOf(f) < 0) throw new Error(`speed must be one of speedOption,\\n current config:\\n {\\n ...\\n speed: ${f},\\n speedOption: [${d.toString()}]\\n ...\\n }\\n `);\n var e;\n r(6, i = new lt(l, Object.assign({\n speed: f,\n root: v,\n unpackFn: Dt\n }, n))), i.on(\"resize\", e => {\n E(i.wrapper, e);\n }), e = () => {\n Pt() ? setTimeout(() => {\n x = o, S = a, r(12, o = m.offsetWidth), r(13, a = m.offsetHeight), E(i.wrapper, {\n width: i.iframe.offsetWidth,\n height: i.iframe.offsetHeight\n });\n }, 0) : (r(12, o = x), r(13, a = S), E(i.wrapper, {\n width: i.iframe.offsetWidth,\n height: i.iframe.offsetHeight\n }));\n }, document.addEventListener(\"fullscreenchange\", e), document.addEventListener(\"webkitfullscreenchange\", e), document.addEventListener(\"mozfullscreenchange\", e), document.addEventListener(\"MSFullscreenChange\", e), y = () => {\n document.removeEventListener(\"fullscreenchange\", e), document.removeEventListener(\"webkitfullscreenchange\", e), document.removeEventListener(\"mozfullscreenchange\", e), document.removeEventListener(\"MSFullscreenChange\", e);\n };\n }), M(() => {\n y && y();\n });\n return e.$$set = e => {\n r(36, n = t(t({}, n), s(e))), \"width\" in e && r(12, o = e.width), \"height\" in e && r(13, a = e.height), \"events\" in e && r(14, l = e.events), \"skipInactive\" in e && r(0, c = e.skipInactive), \"autoPlay\" in e && r(1, u = e.autoPlay), \"speedOption\" in e && r(2, d = e.speedOption), \"speed\" in e && r(15, f = e.speed), \"showController\" in e && r(3, p = e.showController), \"tags\" in e && r(4, h = e.tags);\n }, e.$$.update = () => {\n 12288 & e.$$.dirty[0] && r(10, b = Rt({\n width: `${o}px`,\n height: `${a}px`\n })), 12296 & e.$$.dirty[0] && r(11, w = Rt({\n width: `${o}px`,\n height: `${a + (p ? 80 : 0)}px`\n }));\n }, n = s(n), [c, u, d, p, h, k, i, m, v, g, b, w, o, a, l, f, () => i.getMirror(), () => {\n E(i.wrapper, {\n width: i.iframe.offsetWidth,\n height: i.iframe.offsetHeight\n });\n }, (e, t) => {\n switch (i.on(e, t), e) {\n case \"ui-update-current-time\":\n case \"ui-update-progress\":\n case \"ui-update-player-state\":\n g.$on(e, _ref3 => {\n let e = _ref3.detail;\n return t(e);\n });\n }\n }, e => {\n i.addEvent(e), g.triggerUpdateMeta();\n }, () => i.getMetaData(), () => i, () => {\n g.toggle();\n }, e => {\n g.setSpeed(e);\n }, () => {\n g.toggleSkipInactive();\n }, () => {\n g.play();\n }, () => {\n g.pause();\n }, (e, t) => {\n g.goto(e, t);\n }, function (e) {\n I[e ? \"unshift\" : \"push\"](() => {\n v = e, r(8, v);\n });\n }, function (e) {\n I[e ? \"unshift\" : \"push\"](() => {\n g = e, r(9, g);\n });\n }, () => k(), function (e) {\n I[e ? \"unshift\" : \"push\"](() => {\n m = e, r(7, m);\n });\n }];\n}\nclass tn extends X {\n constructor(e) {\n super(), Y(this, e, en, Zt, a, {\n width: 12,\n height: 13,\n events: 14,\n skipInactive: 0,\n autoPlay: 1,\n speedOption: 2,\n speed: 15,\n showController: 3,\n tags: 4,\n getMirror: 16,\n triggerResize: 17,\n toggleFullscreen: 5,\n addEventListener: 18,\n addEvent: 19,\n getMetaData: 20,\n getReplayer: 21,\n toggle: 22,\n setSpeed: 23,\n toggleSkipInactive: 24,\n play: 25,\n pause: 26,\n goto: 27\n }, null, [-1, -1]);\n }\n get getMirror() {\n return this.$$.ctx[16];\n }\n get triggerResize() {\n return this.$$.ctx[17];\n }\n get toggleFullscreen() {\n return this.$$.ctx[5];\n }\n get addEventListener() {\n return this.$$.ctx[18];\n }\n get addEvent() {\n return this.$$.ctx[19];\n }\n get getMetaData() {\n return this.$$.ctx[20];\n }\n get getReplayer() {\n return this.$$.ctx[21];\n }\n get toggle() {\n return this.$$.ctx[22];\n }\n get setSpeed() {\n return this.$$.ctx[23];\n }\n get toggleSkipInactive() {\n return this.$$.ctx[24];\n }\n get play() {\n return this.$$.ctx[25];\n }\n get pause() {\n return this.$$.ctx[26];\n }\n get goto() {\n return this.$$.ctx[27];\n }\n}\nexport default class extends tn {\n constructor(e) {\n super({\n target: e.target,\n props: e.data || e.props\n });\n }\n}","import React, { useEffect } from 'react';\nimport rrwebPlayer from 'rrweb-player';\n\nconst StaticReplayer = (props) => {\n useEffect(() => {\n // TODO: https://github.com/rrweb-io/rrweb/blob/master/docs/recipes/pagination.md\n console.debug('Loading events=', props.events.length);\n const replayer = new rrwebPlayer({\n target: document.querySelector('.staticReplayer'),\n props: {\n events: props.events,\n autoPlay: false,\n },\n });\n replayer.addEventListener('event-cast', (event) => {\n if (\n event.type == 3 &&\n event.data.source == 0 &&\n !event.data.texts.length &&\n !event.data.adds.length &&\n !event.data.removes.length &&\n event.data.attributes.length\n ) {\n // type=incrementalSnapshotEvent, source=mutationData, and ONLY modifying the attributes.\n // logging for debugging high cpu usage on live view.\n console.log('Incremental snapshot event ONLY modifying attribute=', event);\n }\n });\n }, []); // componentDidMount\n\n return
;\n};\n\nexport default StaticReplayer;\n","import React, { useEffect } from 'react';\nimport ReactTooltip from 'react-tooltip';\n\nexport default function UTMIcon(props) {\n const tooltipContent = () => {\n return `\n
\n      \n        ${JSON.stringify(props.params, undefined, 2)}\n      \n      
\n `;\n };\n\n useEffect(() => {\n ReactTooltip.rebuild();\n });\n\n if (Object.keys(props.params).length > 0) {\n return (\n <>\n \n \n \n \n \n );\n } else {\n return null;\n }\n}\n","import React, { useRef } from 'react';\nimport VideoRecorder from 'react-video-recorder';\n\nexport default function VideoRecorderUpload(props) {\n // todo next - add import, fix ref, useRef\n const avatarFile = useRef(document.getElementById('user_avatar'));\n\n return (\n
\n {\n // Do something with the video...\n console.log('videoBlob', videoBlob);\n const file = new File([videoBlob], 'avatar.webm', { type: 'video/webm', lastModified: new Date().getTime() });\n const container = new DataTransfer();\n container.items.add(file);\n // todonext - define fileinputelemment\n avatarFile.current.files = container.files;\n }}\n />\n
\n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport SessionStackPlayerEmbed from './SessionStackPlayerEmbed';\nimport SessionStackSessions from '../../web_components/session-stack/session-stack-sessions';\n\n/*\n * Renders the most recent session. used on live_view/people to show just their session.\n */\nexport default function SessionStackMostRecentSession(props) {\n const [session, setSession] = useState(props.session);\n\n /**\n * Handler for new sessions\n */\n const updateSession = (event) => {\n const forPerson = Object.values(event.detail).filter(\n (sess) => props.personId == SessionStackSessions.personIdFromSession(sess),\n );\n const mostRecent = forPerson.sort((a, b) => b.last_active - a.last_active)[0];\n // Don't replace the existing if a session isn't found. This is the initial loading state as\n // sessions are loaded via an XHR request.\n if (!mostRecent) {\n console.debug(\n 'SessionStackMostRecentSession updateSession no recent session found. Keeping existing session=',\n session,\n );\n return;\n }\n // console.debug(\"SessionStackMostRecentSession updateSession mostRecent=\", mostRecent)\n setSession(mostRecent);\n };\n\n const addSessionActivityEventListeners = () => {\n window.addEventListener('session-stack:sessions:changed', updateSession);\n };\n\n /**\n * On mount listen for SessionStack session activity.\n */\n useEffect(addSessionActivityEventListeners, []);\n\n const oldSessionNotice = () => {\n if (session.isLive) {\n return;\n }\n // based on _flash_messages\n return (\n
\n
\n
\n \n \n \n
\n
\n

No longer online. Showing most recent visit.

\n
\n
\n
\n );\n };\n\n // console.debug(\"SessionStackMostRecentSession rendering=\", session)\n\n if (!session) {\n console.warn('SessionStackMostRecentSession rendering. No session. Not rendering.');\n return (\n
\n \n \n \n

Waiting for this person to become active...

\n
\n );\n }\n\n return (\n
\n {oldSessionNotice()}\n \n
\n );\n}\n","import React from 'react';\n\nexport default function SessionStackPlayerEmbed(props) {\n const playerUrl = () => {\n return `https://app.sessionstack.com/player/sessions/${props.session.id}?${requestParams()}`;\n };\n\n const requestParams = () => {\n // play_live=true&replay_token=${props.replayToken}&ui_mode=simple\n const params = [`replay_token=${props.replayToken}`, 'ui_mode=raw'];\n if (props.session.isLive) {\n params.push('play_live=true');\n }\n return params.join('&');\n };\n\n const personId = () => {\n return props.session.userIdentity.identifier;\n };\n\n // console.debug(\"SessionStackPlayerEmbed rendering session=\", props.session)\n\n const load = (event) => {\n console.debug('SessionStackPlayerEmbed iframe onload=', props.session);\n window.dispatchEvent(new CustomEvent('sessionstack:embed:onload', { detail: props.session }));\n };\n\n return (\n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport SessionStackScreenHeader from './SessionStackScreenHeader';\nimport SessionStackPlayerEmbed from './SessionStackPlayerEmbed';\nimport TimeAgo from 'react-timeago';\n\nexport default function SessionStackScreen(props) {\n const [indicia, setIndicia] = useState({ attributes: {}, device_icons: {}, utm_params: {} });\n\n const personId = () => {\n return props.session.userIdentity.identifier;\n };\n\n const indiciaUrl = () => {\n const url = `/sites/${props.siteId}/people/${personId()}/indicia`;\n return url;\n };\n\n const getIndica = () => {\n fetch(indiciaUrl())\n .then((response) => {\n if (!response.ok) {\n throw new Error(' getIndica response not success.', { cause: { response } });\n } else {\n return response.json();\n }\n })\n .then((data) => {\n console.debug(' getIndica data=', data);\n setIndicia(data);\n })\n .catch((err) => {\n console.error(' getIndica error=', err);\n });\n };\n\n const onClick = (event) => {\n props.onClick(personId());\n };\n\n /**\n * Get indicia when mounted.\n */\n useEffect(getIndica, []);\n\n if (!indicia.attributes.id) {\n console.warn('SessionStackScreen rendering error. No indicia. session=', props.session);\n return null;\n }\n\n console.debug('SessionStackScreen rendering session=', props.session);\n\n return (\n \n \n\n
\n \n
\n\n {/* Footer */}\n
\n
\n \n {indicia.attributes.visits_count} {`${indicia.attributes.visits_count == 1 ? 'visit' : 'visits'}`}\n \n  • \n {indicia.attributes.last_messaged_at_to_s}\n  • \n {indicia.attributes.last_responded_at_to_s}\n  •  Started \n
\n
\n \n );\n}\n","import React, { useEffect } from 'react';\nimport OSIcon from '../OSIcon';\nimport BrowserIcon from '../BrowserIcon';\nimport UTMIcon from '../UTMIcon';\nimport ReactTooltip from 'react-tooltip';\nimport DeviceTypeIcon from '../DeviceTypeIcon';\n\nexport default function SessionStackScreenHeader(props) {\n const personUrlPath = () => {\n return `/sites/${props.siteId}/live_view/${props.indicia.attributes.id}/person`;\n };\n\n useEffect(() => {\n ReactTooltip.rebuild();\n });\n\n const avatarImage = () => {\n return (\n \n \n \n );\n };\n\n if (!props.indicia.attributes.id) {\n return null;\n }\n\n return (\n
\n \n {avatarImage()}\n \n {props.indicia.attributes.label}\n \n
\n \n
{props.indicia.attributes.location_to_s}
\n \n \n \n \n \n \n \n \n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport SessionStackScreen from './SessionStackScreen';\nimport SessionStackSessions from '../../web_components/session-stack/session-stack-sessions';\n\n// Only this many screens will be rendered for performance and noise reasons.\nconst SESSIONS_LIMIT = 10;\n\n/**\n * Renders a grid of web visitor screens from SessionStack.\n */\nfunction SessionStackScreensGrid(props) {\n const [activeSessions, setActiveSessions] = useState([]);\n const [filteredPeopleIds, setFilteredPeopleIds] = useState([]);\n const originalTitle = useRef(null);\n\n const updateSessions = (event) => {\n console.debug('SessionStackScreensGrid updateSessions', event.detail);\n const newSessions = Object.values(event.detail);\n setActiveSessions((previousSessions) => newSessions);\n };\n\n /**\n * Only sessions that are contained w/peopleIds will be rendered.\n */\n const updateFilteredPeopleIds = (event) => {\n const newPeopleIds = event.detail;\n console.debug('SessionStackScreensGrid updateFilteredPeopleIds=', newPeopleIds);\n setFilteredPeopleIds(newPeopleIds);\n };\n\n /**\n * Returns an Array of sessions that are in the associated segment.\n * If a segment isn't set, returns the original sessions.\n */\n const filterSessions = (sessions) => {\n if (!props.segment) {\n return sessions;\n }\n console.debug('SessionStackScreensGrid filterSessions filteredPeopleIds=', filteredPeopleIds);\n return sessions.filter((session) => filteredPeopleIds.includes(SessionStackSessions.personIdFromSession(session)));\n };\n\n /*\n * Returns a trimmed array of sessions that fits within the limit we render.\n */\n const trimSessions = (sessions) => {\n return sessions.slice(0, SESSIONS_LIMIT);\n };\n\n /**\n * Listens for this event dispatches by the session-stack-sessions web component\n * to update the display as sessions are created / updated / deleted.\n */\n const addSessionActivityEventListeners = () => {\n window.addEventListener('session-stack:sessions:changed', updateSessions);\n };\n\n /**\n * Listen for event dispatches by the segment current people filter.\n */\n const addSegmentCurrentPeopleUpdatedEventListener = () => {\n window.addEventListener('segment:people:updated', updateFilteredPeopleIds);\n };\n\n const handleScreenClick = (personId) => {\n window.location = `/sites/${props.siteId}/live_view/${personId}/person`;\n };\n\n // Update the page title to include the count of rendered active sessions.\n const updatePageTitle = () => {\n const title = `${originalTitle.current} (${renderedScreens().length})`;\n document.title = title;\n };\n\n const renderedScreens = () => {\n return document.querySelectorAll('.gridContainer');\n };\n\n useEffect(() => (originalTitle.current = document.title), []);\n\n /**\n * On mount listen for SessionStack session activity.\n */\n useEffect(addSessionActivityEventListeners, []);\n\n useEffect(addSegmentCurrentPeopleUpdatedEventListener, []);\n\n /**\n * Regularly update the page title to include the number of rendered screens.\n */\n useEffect(() => {\n setInterval(updatePageTitle, 1000);\n }, []);\n\n const sessionsToRender = trimSessions(filterSessions(activeSessions));\n\n console.debug('SessionStackScreensGrid rendering=', sessionsToRender);\n\n if (sessionsToRender.length) {\n return (\n
\n {sessionsToRender.map((session) => (\n \n ))}\n
\n );\n } else {\n return (\n
\n \n \n \n

Waiting for an active person...

\n
\n );\n }\n}\n\nexport default SessionStackScreensGrid;\n","import React, { useEffect, useState } from 'react';\nimport TimeAgo from 'react-timeago';\nimport formatterFn from './timeAgoFormatterFn';\n/*\n * Renders the length of the most recent session visit.\n */\nexport default function SessionStackVisitLength(props) {\n const [session, setSession] = useState();\n\n const updateSession = (event) => {\n // console.debug(\"SessionStackVisitLength updateSession\", event.detail)\n setSession(event.detail);\n };\n\n const addSessionActivityEventListeners = () => {\n window.addEventListener('sessionstack:embed:onload', updateSession);\n };\n\n /**\n * On mount listen for SessionStack session activity.\n */\n useEffect(addSessionActivityEventListeners, []);\n\n // There is a bug I can't figure out ... all of the inputs look correct: when a person changes offline/online,\n // the date will comparision will go from the future (ie - 2 min from now).\n const nowFn = () => {\n let res = null;\n if (session.isLive) {\n res = new Date();\n } else {\n res = new Date(session.last_active);\n }\n return res;\n };\n\n if (!session) {\n console.info('SessionStackVisitLength rendering. No session. Not rendering.');\n return null;\n }\n\n // On new sessions, I've seen client_start > nowFn(), which renders \"x minutes from now\".\n // To better handle this, checks if client_start is in the future and if so, just uses now.\n\n return (\n
\n Visit Length\n \n new Date() ? new Date() : session.client_start}\n now={nowFn}\n formatter={formatterFn}\n />\n \n
\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport TimeAgo from 'react-timeago';\nimport formatterFn from './timeAgoFormatterFn';\n\n/*\n * Renders the length of the most recent session visit.\n */\nexport default function SessionStackVisitStarted(props) {\n const [session, setSession] = useState();\n\n const updateSession = (event) => {\n // console.debug(\"SessionStackVisitStarted updateSession\", event.detail)\n setSession(event.detail);\n };\n\n const addSessionActivityEventListeners = () => {\n window.addEventListener('sessionstack:embed:onload', updateSession);\n };\n\n /**\n * On mount listen for SessionStack session activity.\n */\n useEffect(addSessionActivityEventListeners, []);\n\n if (!session) {\n return null;\n }\n if (session.isLive) {\n return null;\n }\n\n return (\n
\n Visit Started\n \n ago\n \n
\n );\n}\n","import buildFormatter from 'react-timeago/lib/formatters/buildFormatter';\n\n// Don't want suffix\n// https://github.com/nmn/react-timeago/issues/72\nconst formatterFn = buildFormatter({\n prefixAgo: null,\n prefixFromNow: null,\n suffixAgo: '',\n suffixFromNow: 'from now',\n seconds: '< 1 min',\n minute: '1 min',\n minutes: '%d min',\n hour: '1 hr',\n hours: '%d hrs',\n day: '1 day',\n days: '%d days',\n month: '1 month',\n months: '%d months',\n year: '1 year',\n years: '%d years',\n wordSeparator: ' ',\n numbers: [],\n});\n\nexport default formatterFn;\n","// Max number of sessions to return.\nconst LIMIT = 500;\n\n// Interval in ms to poll for active sessions\nconst POLL_INTERVAL_MS = 5 * 1000;\n\n// If a session hasn't been active in this length of time it is considered\n// inactive and deleted.\nconst STALE_THRESHOLD_IN_MINUTES = 3;\n\n// If a session is shorter than this amount, the session is not added.\n// Player has issues with short sessions.\nconst MIN_SESSION_LENGTH_TO_ADD_MS = 10 * 1000;\n\n// Non-live sessions shorter than this threshold are removed.\nconst SHORT_SESSION_THRESHOLD_MS = 60 * 1000;\n\n// https://docs.session-stack.com/reference/websiteswebsite_idsessions\n\n/*\n * Polls for live SessionStack sessions every `POLL_INTERVAL_MS`, generating\n * events when sessions are created/updated/and deleted.\n */\nexport default class SessionStackSessions extends HTMLElement {\n constructor() {\n super();\n console.debug(' initialized');\n // key == person id, value = session stack session\n this.activeSessions = {};\n }\n\n static get observedAttributes() {\n return [];\n }\n\n static staleDate() {\n return new Date(new Date() - 60 * 1000 * STALE_THRESHOLD_IN_MINUTES);\n }\n\n connectedCallback() {\n this.startPoll();\n }\n\n get websiteId() {\n return this.getAttribute('website-id');\n }\n\n /**\n * Returns true if restricting to live sessions.\n */\n get live() {\n return this.getAttribute('live') === 'true';\n }\n\n get encodedAuthToken() {\n return this.getAttribute('encoded-auth-token');\n }\n\n /**\n * Processes the api response, updating the activeSessions lookup object.\n */\n processResponse(sessionsData) {\n console.debug(\n ' isLive=',\n sessionsData.filter((session) => session.isLive),\n );\n // api sort+order params not working. manually sorting.\n sessionsData.sort((a, b) => b.last_active - a.last_active);\n this.updateExistingSessions(sessionsData);\n this.removeDeletedSessions(sessionsData);\n this.addNewSessions(sessionsData);\n // Be more selective when restricting to live sessions.\n // In non-live cases, we want to show something if we can.\n if (this.live) {\n this.removeShortSessions();\n this.removeStaleSessions();\n }\n }\n\n /**\n * Dispatches a \"session-stack:sessions:changed\" when ANY of the live sessions are changed.\n * The payload is the `activerSessions` lookup object.\n */\n dispatchSessionsChanged() {\n return this.dispatchEvent(\n new CustomEvent('session-stack:sessions:changed', { bubbles: true, composed: true, detail: this.activeSessions }),\n );\n }\n\n /*\n * Updates existing sessions and dispatches an event.\n */\n updateExistingSessions(sessionsData) {\n for (const [key, value] of Object.entries(this.activeSessions)) {\n const session = sessionsData.find((session) => this.constructor.personIdFromSession(session) == key);\n if (session) {\n // Don't update if the session in the lastest sessionsData\n // is <= the currently stored session.\n if (session.last_active < value.last_active) return;\n // Check if too short.\n if (session.isLive && session.length < MIN_SESSION_LENGTH_TO_ADD_MS) {\n console.debug(\n ' Not updating short live session=',\n session,\n 'length in sec=',\n session.length / 1000,\n );\n return;\n }\n this.activeSessions[key] = session;\n // console.debug(\" updated=\",session)\n this.dispatchEvent(\n new CustomEvent('session-stack:session:updated', { bubbles: true, composed: true, detail: session }),\n );\n this.dispatchPersonActiveStatusEvent(session);\n this.dispatchSessionsChanged();\n }\n }\n }\n\n /*\n * Removes deleted sessions and dispatches an event.\n *\n * For lower traffic sites, `sessionsData` is likely to hold more results than what is\n * stored in `this.activeSessions` and this is less likely to actually remove a session.\n */\n removeDeletedSessions(sessionsData) {\n for (const [key, value] of Object.entries(this.activeSessions)) {\n if (!sessionsData.find((session) => this.constructor.personIdFromSession(session) == key)) {\n console.debug(' deleted=', value);\n this.dispatchEvent(\n new CustomEvent('session-stack:session:deleted', { bubbles: true, composed: true, detail: value }),\n );\n this.dispatchPersonActiveStatusEvent(value);\n delete this.activeSessions[key];\n this.dispatchSessionsChanged();\n }\n }\n }\n\n /*\n * Removes stale sessions and dispatches an event.\n */\n removeStaleSessions() {\n for (const [key, session] of Object.entries(this.activeSessions)) {\n if (session.last_active < SessionStackSessions.staleDate()) {\n console.debug(' removeStaleSessions stale=', session);\n this.dispatchEvent(\n new CustomEvent('session-stack:session:stale', { bubbles: true, composed: true, detail: session }),\n );\n this.dispatchPersonActiveStatusEvent(session);\n delete this.activeSessions[key];\n this.dispatchSessionsChanged();\n } else {\n console.debug(\n ' removeStaleSessions NOT stale=',\n session,\n 'Seconds till stale=',\n (session.last_active - SessionStackSessions.staleDate()) / 1000,\n );\n }\n }\n }\n\n static personIdFromSession(session) {\n return session?.userIdentity?.identifier;\n }\n\n dispatchPersonActiveStatusEvent(session) {\n const personId = this.constructor.personIdFromSession(session);\n if (!personId) return;\n this.dispatchEvent(\n new CustomEvent(`person:status:${session.isLive ? 'active' : 'inactive'}`, {\n bubbles: true,\n composed: true,\n detail: { person_id: personId },\n }),\n );\n }\n\n /*\n * Removes short sessions that are no longer live and dispatches an event.\n */\n removeShortSessions() {\n for (const [key, session] of Object.entries(this.activeSessions)) {\n if (!session.isLive && session.length < SHORT_SESSION_THRESHOLD_MS) {\n console.debug(\n ' removeShortSessions session=',\n session,\n 'length (sec)=',\n session.length / 1000,\n );\n this.dispatchEvent(\n new CustomEvent('session-stack:session:short', { bubbles: true, composed: true, detail: session }),\n );\n this.dispatchPersonActiveStatusEvent(session);\n delete this.activeSessions[key];\n this.dispatchSessionsChanged();\n }\n }\n }\n\n /*\n * Adds new live sessions and dispatches an event.\n */\n addNewSessions(sessionsData) {\n sessionsData.forEach((session) => {\n const key = this.constructor.personIdFromSession(session);\n // already exists\n if (this.activeSessions[key]) return;\n // Check if too short.\n if (session.isLive && session.length < MIN_SESSION_LENGTH_TO_ADD_MS) {\n console.debug(\n ' Not adding short live session=',\n session,\n 'length in sec=',\n session.length / 1000,\n );\n return;\n }\n // not live\n if (this.live && !session.isLive) return;\n this.activeSessions[key] = session;\n console.debug(' created=', session);\n this.dispatchEvent(\n new CustomEvent('session-stack:session:created', { bubbles: true, composed: true, detail: session }),\n );\n this.dispatchPersonActiveStatusEvent(session);\n this.dispatchSessionsChanged();\n });\n }\n\n /**\n * The API url for fetching sessions.\n */\n get url() {\n // order and sort do not appear to work.\n const url = `https://api.sessionstack.com/v1/websites/${this.websiteId}/sessions?limit=${LIMIT}`;\n return url;\n }\n\n /**\n * Polls the `url` every `POLL_INTERVAL_MS` for sessions, updating the `activeSessins` lookup object.\n */\n startPoll() {\n if (!this.websiteId.length || !this.encodedAuthToken) {\n console.error(' required attributes not set. Not polling.');\n setTimeout(() => {\n this.startPoll();\n }, POLL_INTERVAL_MS);\n return;\n }\n fetch(this.url, {\n method: 'GET',\n headers: {\n Authorization: `Basic ${window.sessionStackConfig.encodedAuthToken}`,\n },\n })\n .then((response) => response.json())\n .then((data) => {\n console.debug(' poll response=', data);\n this.processResponse(data.data);\n setTimeout(() => {\n this.startPoll();\n }, POLL_INTERVAL_MS);\n })\n .catch((err) => {\n console.error(' poll error=', err);\n setTimeout(() => {\n this.startPoll();\n }, POLL_INTERVAL_MS);\n });\n }\n}\n\nexport const defineCustomElement = () => customElements.define('session-stack-sessions', SessionStackSessions);\n","module.exports = __webpack_public_path__ + \"media/browser/chrome-ac5f2f92.svg\";","module.exports = __webpack_public_path__ + \"media/browser/edge-4c264397.svg\";","module.exports = __webpack_public_path__ + \"media/browser/firefox-03b1d3c2.svg\";","module.exports = __webpack_public_path__ + \"media/browser/safari-642942fe.svg\";","module.exports = __webpack_public_path__ + \"media/os/android-d6e23dd2.svg\";","module.exports = __webpack_public_path__ + \"media/os/apple-78a55c74.svg\";","module.exports = __webpack_public_path__ + \"media/os/linux-097dbac1.svg\";","module.exports = __webpack_public_path__ + \"media/os/windows-30078182.svg\";","module.exports = __webpack_public_path__ + \"media/icons/bolt-light-ec6e6134.svg\";","module.exports = __webpack_public_path__ + \"media/icons/video-arrow-up-right-light-b4c3086a.svg\";","var map = {\n\t\"./af\": 979,\n\t\"./af.js\": 979,\n\t\"./ar\": 1174,\n\t\"./ar-dz\": 507,\n\t\"./ar-dz.js\": 507,\n\t\"./ar-kw\": 9317,\n\t\"./ar-kw.js\": 9317,\n\t\"./ar-ly\": 1971,\n\t\"./ar-ly.js\": 1971,\n\t\"./ar-ma\": 2084,\n\t\"./ar-ma.js\": 2084,\n\t\"./ar-sa\": 39,\n\t\"./ar-sa.js\": 39,\n\t\"./ar-tn\": 5025,\n\t\"./ar-tn.js\": 5025,\n\t\"./ar.js\": 1174,\n\t\"./az\": 7052,\n\t\"./az.js\": 7052,\n\t\"./be\": 8301,\n\t\"./be.js\": 8301,\n\t\"./bg\": 9301,\n\t\"./bg.js\": 9301,\n\t\"./bm\": 5255,\n\t\"./bm.js\": 5255,\n\t\"./bn\": 8709,\n\t\"./bn-bd\": 2617,\n\t\"./bn-bd.js\": 2617,\n\t\"./bn.js\": 8709,\n\t\"./bo\": 448,\n\t\"./bo.js\": 448,\n\t\"./br\": 2400,\n\t\"./br.js\": 2400,\n\t\"./bs\": 8963,\n\t\"./bs.js\": 8963,\n\t\"./ca\": 7426,\n\t\"./ca.js\": 7426,\n\t\"./cs\": 9580,\n\t\"./cs.js\": 9580,\n\t\"./cv\": 7134,\n\t\"./cv.js\": 7134,\n\t\"./cy\": 5019,\n\t\"./cy.js\": 5019,\n\t\"./da\": 9484,\n\t\"./da.js\": 9484,\n\t\"./de\": 9662,\n\t\"./de-at\": 6650,\n\t\"./de-at.js\": 6650,\n\t\"./de-ch\": 2547,\n\t\"./de-ch.js\": 2547,\n\t\"./de.js\": 9662,\n\t\"./dv\": 8046,\n\t\"./dv.js\": 8046,\n\t\"./el\": 4846,\n\t\"./el.js\": 4846,\n\t\"./en-au\": 1701,\n\t\"./en-au.js\": 1701,\n\t\"./en-ca\": 7102,\n\t\"./en-ca.js\": 7102,\n\t\"./en-gb\": 8591,\n\t\"./en-gb.js\": 8591,\n\t\"./en-ie\": 5510,\n\t\"./en-ie.js\": 5510,\n\t\"./en-il\": 2719,\n\t\"./en-il.js\": 2719,\n\t\"./en-in\": 1497,\n\t\"./en-in.js\": 1497,\n\t\"./en-nz\": 6997,\n\t\"./en-nz.js\": 6997,\n\t\"./en-sg\": 3254,\n\t\"./en-sg.js\": 3254,\n\t\"./eo\": 3757,\n\t\"./eo.js\": 3757,\n\t\"./es\": 5470,\n\t\"./es-do\": 8557,\n\t\"./es-do.js\": 8557,\n\t\"./es-mx\": 6141,\n\t\"./es-mx.js\": 6141,\n\t\"./es-us\": 1828,\n\t\"./es-us.js\": 1828,\n\t\"./es.js\": 5470,\n\t\"./et\": 4555,\n\t\"./et.js\": 4555,\n\t\"./eu\": 670,\n\t\"./eu.js\": 670,\n\t\"./fa\": 9692,\n\t\"./fa.js\": 9692,\n\t\"./fi\": 3499,\n\t\"./fi.js\": 3499,\n\t\"./fil\": 6918,\n\t\"./fil.js\": 6918,\n\t\"./fo\": 6022,\n\t\"./fo.js\": 6022,\n\t\"./fr\": 8753,\n\t\"./fr-ca\": 9388,\n\t\"./fr-ca.js\": 9388,\n\t\"./fr-ch\": 3971,\n\t\"./fr-ch.js\": 3971,\n\t\"./fr.js\": 8753,\n\t\"./fy\": 3025,\n\t\"./fy.js\": 3025,\n\t\"./ga\": 3496,\n\t\"./ga.js\": 3496,\n\t\"./gd\": 7169,\n\t\"./gd.js\": 7169,\n\t\"./gl\": 9480,\n\t\"./gl.js\": 9480,\n\t\"./gom-deva\": 91,\n\t\"./gom-deva.js\": 91,\n\t\"./gom-latn\": 2175,\n\t\"./gom-latn.js\": 2175,\n\t\"./gu\": 5169,\n\t\"./gu.js\": 5169,\n\t\"./he\": 7588,\n\t\"./he.js\": 7588,\n\t\"./hi\": 6035,\n\t\"./hi.js\": 6035,\n\t\"./hr\": 5554,\n\t\"./hr.js\": 5554,\n\t\"./hu\": 3570,\n\t\"./hu.js\": 3570,\n\t\"./hy-am\": 8158,\n\t\"./hy-am.js\": 8158,\n\t\"./id\": 1682,\n\t\"./id.js\": 1682,\n\t\"./is\": 7660,\n\t\"./is.js\": 7660,\n\t\"./it\": 8453,\n\t\"./it-ch\": 650,\n\t\"./it-ch.js\": 650,\n\t\"./it.js\": 8453,\n\t\"./ja\": 1265,\n\t\"./ja.js\": 1265,\n\t\"./jv\": 2215,\n\t\"./jv.js\": 2215,\n\t\"./ka\": 3584,\n\t\"./ka.js\": 3584,\n\t\"./kk\": 8517,\n\t\"./kk.js\": 8517,\n\t\"./km\": 3427,\n\t\"./km.js\": 3427,\n\t\"./kn\": 1055,\n\t\"./kn.js\": 1055,\n\t\"./ko\": 3196,\n\t\"./ko.js\": 3196,\n\t\"./ku\": 88,\n\t\"./ku.js\": 88,\n\t\"./ky\": 1285,\n\t\"./ky.js\": 1285,\n\t\"./lb\": 8049,\n\t\"./lb.js\": 8049,\n\t\"./lo\": 4505,\n\t\"./lo.js\": 4505,\n\t\"./lt\": 4494,\n\t\"./lt.js\": 4494,\n\t\"./lv\": 7775,\n\t\"./lv.js\": 7775,\n\t\"./me\": 2880,\n\t\"./me.js\": 2880,\n\t\"./mi\": 1957,\n\t\"./mi.js\": 1957,\n\t\"./mk\": 6898,\n\t\"./mk.js\": 6898,\n\t\"./ml\": 9704,\n\t\"./ml.js\": 9704,\n\t\"./mn\": 4123,\n\t\"./mn.js\": 4123,\n\t\"./mr\": 7267,\n\t\"./mr.js\": 7267,\n\t\"./ms\": 5701,\n\t\"./ms-my\": 9681,\n\t\"./ms-my.js\": 9681,\n\t\"./ms.js\": 5701,\n\t\"./mt\": 244,\n\t\"./mt.js\": 244,\n\t\"./my\": 4739,\n\t\"./my.js\": 4739,\n\t\"./nb\": 3587,\n\t\"./nb.js\": 3587,\n\t\"./ne\": 3351,\n\t\"./ne.js\": 3351,\n\t\"./nl\": 7083,\n\t\"./nl-be\": 203,\n\t\"./nl-be.js\": 203,\n\t\"./nl.js\": 7083,\n\t\"./nn\": 2149,\n\t\"./nn.js\": 2149,\n\t\"./oc-lnc\": 7756,\n\t\"./oc-lnc.js\": 7756,\n\t\"./pa-in\": 1467,\n\t\"./pa-in.js\": 1467,\n\t\"./pl\": 7896,\n\t\"./pl.js\": 7896,\n\t\"./pt\": 8466,\n\t\"./pt-br\": 9425,\n\t\"./pt-br.js\": 9425,\n\t\"./pt.js\": 8466,\n\t\"./ro\": 1495,\n\t\"./ro.js\": 1495,\n\t\"./ru\": 891,\n\t\"./ru.js\": 891,\n\t\"./sd\": 3666,\n\t\"./sd.js\": 3666,\n\t\"./se\": 8609,\n\t\"./se.js\": 8609,\n\t\"./si\": 8237,\n\t\"./si.js\": 8237,\n\t\"./sk\": 8262,\n\t\"./sk.js\": 8262,\n\t\"./sl\": 9980,\n\t\"./sl.js\": 9980,\n\t\"./sq\": 565,\n\t\"./sq.js\": 565,\n\t\"./sr\": 7468,\n\t\"./sr-cyrl\": 4427,\n\t\"./sr-cyrl.js\": 4427,\n\t\"./sr.js\": 7468,\n\t\"./ss\": 6226,\n\t\"./ss.js\": 6226,\n\t\"./sv\": 3402,\n\t\"./sv.js\": 3402,\n\t\"./sw\": 3390,\n\t\"./sw.js\": 3390,\n\t\"./ta\": 499,\n\t\"./ta.js\": 499,\n\t\"./te\": 2700,\n\t\"./te.js\": 2700,\n\t\"./tet\": 3588,\n\t\"./tet.js\": 3588,\n\t\"./tg\": 5767,\n\t\"./tg.js\": 5767,\n\t\"./th\": 8115,\n\t\"./th.js\": 8115,\n\t\"./tk\": 820,\n\t\"./tk.js\": 820,\n\t\"./tl-ph\": 4306,\n\t\"./tl-ph.js\": 4306,\n\t\"./tlh\": 4793,\n\t\"./tlh.js\": 4793,\n\t\"./tr\": 1892,\n\t\"./tr.js\": 1892,\n\t\"./tzl\": 2552,\n\t\"./tzl.js\": 2552,\n\t\"./tzm\": 2635,\n\t\"./tzm-latn\": 6003,\n\t\"./tzm-latn.js\": 6003,\n\t\"./tzm.js\": 2635,\n\t\"./ug-cn\": 2201,\n\t\"./ug-cn.js\": 2201,\n\t\"./uk\": 9672,\n\t\"./uk.js\": 9672,\n\t\"./ur\": 4822,\n\t\"./ur.js\": 4822,\n\t\"./uz\": 5150,\n\t\"./uz-latn\": 7402,\n\t\"./uz-latn.js\": 7402,\n\t\"./uz.js\": 5150,\n\t\"./vi\": 3010,\n\t\"./vi.js\": 3010,\n\t\"./x-pseudo\": 5798,\n\t\"./x-pseudo.js\": 5798,\n\t\"./yo\": 2128,\n\t\"./yo.js\": 2128,\n\t\"./zh-cn\": 1530,\n\t\"./zh-cn.js\": 1530,\n\t\"./zh-hk\": 6524,\n\t\"./zh-hk.js\": 6524,\n\t\"./zh-mo\": 2603,\n\t\"./zh-mo.js\": 2603,\n\t\"./zh-tw\": 6588,\n\t\"./zh-tw.js\": 6588\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6700;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/packs/\";","__webpack_require__.nc = undefined;","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\n// consumers\nimport * as ActionCable from '@rails/actioncable';\n\nconst channels = require.context('.', true, /_channel\\.js$/);\nchannels.keys().forEach(channels);\nwindow.App || (window.App = {});\nwindow.App.cable = ActionCable.createConsumer();\n","/*\n * JS logic for TailwindCSS dropdowns.\n * https://tailwindui.com/components/application-ui/elements/dropdowns\n */\nexport default class Dropdown {\n static initAll() {\n const dropdowns = this.findAll();\n dropdowns.forEach((dd) => {\n new Dropdown(dd);\n });\n }\n\n static findAll() {\n return document.querySelectorAll('.dropdown');\n }\n\n constructor(el) {\n this.button = el.querySelector('.dropdown-toggle');\n this.menu = el.querySelector('.dropdown-menu');\n this.addEvents();\n }\n\n hideOthers() {\n document.querySelectorAll('.dropdown-menu').forEach((menu) => {\n if (menu !== this.menu) {\n menu.classList.add('hidden');\n }\n });\n }\n\n addEvents() {\n this.button.addEventListener('click', (event) => {\n if (this.menu.classList.contains('hidden')) {\n this.menu.classList.remove('hidden');\n this.hideOthers();\n } else {\n this.menu.classList.add('hidden');\n }\n event.stopPropagation();\n\n document.body.addEventListener('click', () => {\n if (!this.menu.classList.contains('hidden')) {\n this.menu.classList.add('hidden');\n }\n });\n });\n }\n}\n","import moment from 'moment';\nrequire('moment-timezone');\n\n/*\n * Encapsulates view-related javascript handling of time\n * (setting a timezone, rendering JS dates in the tz, formatting JS Dates).\n *\n * When initialized, the user's timezone name (a string) is retrieved and stored in\n * a \"time_zone\" cookie. This cookie value can be accesssed for server-side rendering.\n *\n * Usage for client-side rendering:\n * - Add a \"data-js-date\" attribute to an element with an iso8601-formatted string.\n * Example: `\">`\n * - Trigger a \"apply-time-formatting\" event, which calls the `applyAll()` function and\n * converts the string into a moment object, applies the user's timezone, and formats the time,\n * rendering it within the element.\n */\n\n// Name of the cookie to store the user timezone name (String).\nconst COOKIE_NAME = 'time_zone';\n\n// Name of the data attribute used to apply dates\nconst DATA_JS_DATE = 'data-js-date';\n\nexport default class {\n constructor() {\n // Get the user time zone name\n this.name = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n this.setCookie();\n\n const _this = this;\n }\n\n // Store the timezone name in a cookie for 1 year\n setCookie() {\n document.cookie =\n `${COOKIE_NAME}=` + this.name + '; expires=' + this.cookieExpireAt() + '; path=/' + '; SameSite=Strict';\n console.debug('Storing timezone in cookie=', this.name);\n }\n\n // 1 year from now\n cookieExpireAt() {\n // https://stackoverflow.com/questions/8609261/how-to-determine-one-year-from-now-in-javascript\n return new Date(new Date().setFullYear(new Date().getFullYear() + 1));\n }\n\n /*\n * Returns a moment object representation of a date string in iso8601 format\n * within the user's timezone.\n *\n * If the tz is invalid, the moment object in the original timezone is returned.\n */\n inZone(date_iso8601) {\n const momentDate = this.toMoment(date_iso8601);\n return momentDate.tz(this.name);\n }\n\n // Converts an iso8601-formated string into a moment object.\n toMoment(date_iso8601) {\n return moment(date_iso8601);\n }\n}\n","import TabItem from './tab-item';\n\n/**\n * Renders tab in the live view nav tray, adjusting their display to fit the\n * available space.\n */\nexport default class TabTray extends HTMLElement {\n constructor() {\n super();\n console.debug(' initialized');\n this.initialWidth = null;\n }\n\n get tabItems() {\n return this.querySelectorAll('tab-item');\n }\n\n get current() {\n return this.querySelector(\"tab-item[current = 'true']\");\n }\n\n findTab(person) {\n return Array.from(this.tabItems).find((tab) => tab.person.id == person.id);\n }\n\n add(person) {\n const newTab = document.createElement('tab-item');\n newTab.person = person;\n this.appendChild(newTab);\n this.sizeTabItems();\n }\n\n connectedCallback() {\n // should only be 1 tab tray ... set to window for global access.\n window.tabTray = this;\n window.addEventListener('load', (event) => {\n this.sizeTabItems();\n });\n window.addEventListener('resize:done', () => {\n this.sizeTabItems();\n });\n }\n\n sizeTabItems() {\n this.classList.add('invisible');\n this.unminify();\n Array.from(this.children).forEach((tabItem, _i) => {\n if (!this.isTooWide()) return;\n tabItem.classList.add('mini');\n });\n this.classList.remove('invisible');\n }\n\n unminify() {\n Array.from(this.children).forEach((tabItem, _i) => {\n tabItem.classList.remove('mini');\n });\n }\n\n /**\n * Returns `true` if the tab tray width exceeds the container width.\n */\n isTooWide() {\n return this.availableWidth() < 0;\n }\n\n /**\n * Returns the diference in width between the tab tray and the page container.\n * A value less than zero means the tab tray is wider than than the container.\n */\n availableWidth() {\n return this.container.offsetWidth - this.toggleButton.offsetWidth - this.offsetWidth;\n }\n\n // The other element displayed alongside the tabs\n get toggleButton() {\n return this.parentElement.nextElementSibling;\n }\n\n get container() {\n // parent of nav\n return this.parentElement.parentElement;\n }\n\n hasUnseenMessages() {\n return Array.from(this.tabItems).some((tab) => tab.person.has_unseen_chat_messages);\n }\n}\n\nexport const defineCustomElement = () => customElements.define('tab-tray', TabTray);\n","import PersonActiveStatus from './person-active-status';\nimport PersonIcon from './person-icon';\n\nconst LIVE_VIEW_MENU_SHARED_CLASSES =\n 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-400 group inline-flex items-center py-3 px-3 border-b-2 font-medium text-sm';\nconst LIVE_VIEW_MENU_DEFAULT_CLASSES = '';\nconst LIVE_VIEW_MENU_CURRENT_CLASSES = 'border-indigo-500 text-indigo-600 hover:border-indigo-500';\n\nexport default class TabItem extends HTMLElement {\n constructor() {\n super();\n console.debug(' initialized');\n }\n\n static get observedAttributes() {\n return ['current', 'person'];\n }\n\n connectedCallback() {\n this.render();\n }\n\n setCSSClasses() {\n let classes = [LIVE_VIEW_MENU_SHARED_CLASSES];\n if (this.current == 'true') {\n classes = classes.concat(LIVE_VIEW_MENU_CURRENT_CLASSES);\n } else {\n classes = classes.concat(LIVE_VIEW_MENU_DEFAULT_CLASSES);\n }\n // keep hidden ... not an attribute as non-tab tray items use this class too\n if (this.classList.contains('mini')) {\n classes = classes.concat('mini');\n }\n this.setAttribute('class', classes.join(' '));\n }\n\n get current() {\n return this.getAttribute('current');\n }\n\n set current(newValue) {\n this.setAttribute('current', newValue);\n }\n\n get person() {\n return JSON.parse(this.getAttribute('person'));\n }\n\n set person(newValue) {\n this.setAttribute('person', JSON.stringify(newValue));\n }\n\n get tray() {\n return this.closest('tab-tray');\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n if (oldValue === newValue) return;\n console.debug(' changed. person=', this.person, 'attrName=', attrName);\n // might not be in dom yet\n if (!this.tray) return;\n this.render();\n }\n\n render() {\n this.innerHTML = `\n \n
\n \n \n \n ${this.renderChatMessageIcon()}\n \n \n \n \n
\n ${this.person.label}\n
\n \n \n \n \n \n `;\n this.setCSSClasses();\n }\n\n renderChatMessageIcon() {\n if (!this.person.has_unseen_chat_messages) return '';\n return `\n \n \n \n \n `;\n }\n}\n\nexport const defineCustomElement = () => customElements.define('tab-item', TabItem);\n","/*\n * Wraps around a PersonIcon component to display the active/inactive\n * status of the person with /data-person-id.\n *\n * Requires that the monitor-active-people or session-stack-sessions component is connected.\n */\nexport default class PersonActiveStatus extends HTMLElement {\n constructor() {\n super();\n console.debug(' initialized');\n }\n\n static get observedAttributes() {\n return ['active'];\n }\n\n connectedCallback() {\n console.debug(' connected. data-person-id=', this.getAttribute('data-person-id'), this);\n this.el = document.createElement('span');\n this.el.setAttribute('class', 'online-status');\n this.appendChild(this.el);\n this.updateStatus();\n document.addEventListener('person:status:active', (e) => {\n this.handleActive(e);\n });\n document.addEventListener('person:status:inactive', (e) => {\n this.handleInActive(e);\n });\n }\n\n disconnectedCallback() {\n console.debug(' disconnected. data-person-id=', this.getAttribute('data-person-id'), this);\n document.removeEventListener('person:status:active', (e) => {\n this.handleActive(e);\n });\n document.removeEventListener('person:status:inactive', (e) => {\n this.handleInActive(e);\n });\n }\n\n handleActive(e) {\n if (e.detail.person_id !== this.getAttribute('data-person-id')) return;\n // console.debug(\" Handling active person=\",e.detail.person_id)\n this.active = true;\n }\n\n handleInActive(e) {\n if (e.detail.person_id !== this.getAttribute('data-person-id')) return;\n // console.debug(\" Handling inactive person=\",e.detail.person_id)\n this.active = false;\n }\n\n set active(newValue) {\n // console.debug(\" setActive. data-person-id=\", this.getAttribute(\"data-person-id\"), newValue)\n this.setAttribute('active', newValue);\n }\n\n get active() {\n let res = null;\n if (this.getAttribute('active') === 'true') {\n res = true;\n } else if (this.getAttribute('active') === 'false') {\n res = false;\n }\n return res;\n }\n\n get person() {\n return JSON.parse(this.getAttribute('person'));\n }\n\n set person(newValue) {\n this.setAttribute('person', JSON.stringify(newValue));\n }\n\n get statusClass() {\n let css = 'hidden';\n if (this.active) {\n css = '';\n } else if (this.active === false) {\n css = 'inactive';\n }\n return css;\n }\n\n // Can't just re-render as that will lose child elements.\n updateStatus() {\n this.el.setAttribute('class', 'online-status'); // reset\n if (!this.statusClass) return;\n this.el?.classList?.add(this.statusClass);\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n if (oldValue == newValue) return;\n console.debug(\n ' attributeChangedCallback() person=',\n this.getAttribute('data-person-id'),\n attrName,\n oldValue,\n newValue,\n );\n this.updateStatus();\n }\n}\n\nexport const defineCustomElement = () => customElements.define('person-active-status', PersonActiveStatus);\n","/*\n * Updates the Favicon to display the active/inactive\n * status of the person with /data-person-id.\n *\n * Requires that the monitor-active-people or session-stack-sessions component is connected.\n */\nexport default class PersonActiveStatusFavicon extends HTMLElement {\n constructor() {\n super();\n console.debug(' initialized');\n }\n\n static get observedAttributes() {\n return ['active'];\n }\n\n connectedCallback() {\n console.debug(\n ' connected. data-person-id=',\n this.getAttribute('data-person-id'),\n this,\n );\n document.addEventListener('person:status:active', (e) => {\n this.handleActive(e);\n });\n document.addEventListener('person:status:inactive', (e) => {\n this.handleInActive(e);\n });\n }\n\n handleActive(e) {\n if (e.detail.person_id !== this.getAttribute('person-id')) return;\n this.renderActive();\n }\n\n handleInActive(e) {\n if (e.detail.person_id !== this.getAttribute('person-id')) return;\n this.renderInactive();\n }\n\n removeFaviconElements() {\n // https://stackoverflow.com/questions/13125817/how-to-remove-elements-that-were-fetched-using-queryselectorall\n if (!NodeList.prototype.forEach && Array.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach;\n }\n // ..then continue as usual with the forEach\n const els = document.querySelectorAll('link.person-favicon');\n els.forEach((e) => e.parentNode.removeChild(e));\n return els;\n }\n\n renderActive() {\n this.removeFaviconElements();\n return document.querySelector('head').insertAdjacentHTML(\n 'beforeend',\n `\n \n \n `,\n );\n }\n\n renderInactive() {\n this.removeFaviconElements();\n return document.querySelector('head').insertAdjacentHTML(\n 'beforeend',\n `\n \n \n `,\n );\n }\n}\n\nexport const defineCustomElement = () =>\n customElements.define('person-active-status-favicon', PersonActiveStatusFavicon);\n","const VISITOR_ICON = `\n \n \n`;\n\nconst AUTHED_USER_ICON = `\n \n`;\n\nconst BOT_ICON = `\n \n`;\n\nexport default class PersonIcon extends HTMLElement {\n constructor() {\n super();\n console.debug(' initialized');\n }\n\n connectedCallback() {\n console.debug(' connectedCallback');\n this.render();\n }\n\n get type() {\n return this.getAttribute('type');\n }\n\n get avatar_url() {\n const raw = this.getAttribute('avatar_url');\n return raw && raw.length && raw != '' ? raw : null;\n }\n\n get icon() {\n if (this.avatar_url) {\n return ``;\n }\n switch (this.type) {\n case 'Bot':\n return BOT_ICON;\n case 'AuthedUser':\n return AUTHED_USER_ICON;\n default:\n return VISITOR_ICON;\n }\n }\n\n render() {\n this.innerHTML = `\n ${this.icon}\n `;\n }\n}\n\nexport const defineCustomElement = () => customElements.define('person-icon', PersonIcon);\n","// ONLY USED WHEN SESSIONSTACK ISN'T USED. See session-stack-sessions\n// for similar logic when sessionstack is configured.\n\n// Interval in ms to poll for people active / inactive status\nconst POLL_INTERVAL_MS = 60 * 1000;\n\n/*\n * Checks the active/inactive status of people. Grabs the status of people\n * from elements that have a `data-person-id` attribute.\n *\n * Dispatches events for each person id after polling (one if active and another if inactive)\n */\nexport default class MonitorActivePeople extends HTMLElement {\n constructor() {\n super();\n console.debug(' initialized');\n }\n\n /*\n * Finds all person ids on the page to query for active / inactive.\n */\n personIds() {\n const unique = new Set(\n Array.from(this.personElements()).map((ele) => {\n return ele.getAttribute('data-person-id');\n }),\n );\n return [...unique];\n }\n\n personElements() {\n return document.querySelectorAll('[data-person-id]');\n }\n\n connectedCallback() {\n this.startPoll();\n }\n\n get url() {\n return this.getAttribute('url');\n }\n\n processResponse(activeData) {\n this.personIds().forEach((personId) => {\n const visit = activeData[personId];\n if (visit) {\n this.dispatchEvent(new CustomEvent('person:status:active', { bubbles: true, composed: true, detail: visit }));\n } else {\n this.dispatchEvent(\n new CustomEvent('person:status:inactive', { bubbles: true, composed: true, detail: { person_id: personId } }),\n );\n }\n });\n }\n\n startPoll() {\n // Always poll, even if no people as we update live session data for operators\n // via this.\n fetch(this.url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ ids: this.personIds() }),\n })\n .then((response) => response.json())\n .then((data) => {\n console.debug(' poll response=', data);\n this.processResponse(data);\n setTimeout(() => {\n this.startPoll();\n }, POLL_INTERVAL_MS);\n })\n .catch((err) => {\n console.error(' Stopping poll. poll error=', err);\n // give a bit longer to the next poll after an error\n setTimeout(() => {\n this.startPoll();\n }, POLL_INTERVAL_MS * 3);\n });\n }\n}\n\nexport const defineCustomElement = () => customElements.define('monitor-active-people', MonitorActivePeople);\n","const POLL_INTERVAL_MS = 10 * 1000;\n\n/*\n * Checks for current people in the segment.\n */\nexport default class MonitorSegmentCurrentPeople extends HTMLElement {\n constructor() {\n super();\n console.debug(' initialized');\n }\n\n connectedCallback() {\n this.startPoll();\n }\n\n get url() {\n return this.getAttribute('url');\n }\n\n startPoll() {\n fetch(this.url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n .then((response) => response.json())\n .then((data) => {\n console.debug(' poll response=', data);\n this.dispatchEvent(new CustomEvent('segment:people:updated', { bubbles: true, composed: true, detail: data }));\n setTimeout(() => {\n this.startPoll();\n }, POLL_INTERVAL_MS);\n })\n .catch((err) => {\n console.error(' Stopping poll. poll error=', err);\n // give a bit longer to the next poll after an error\n setTimeout(() => {\n this.startPoll();\n }, POLL_INTERVAL_MS);\n });\n }\n}\n\nexport const defineCustomElement = () =>\n customElements.define('monitor-segment-current-people', MonitorSegmentCurrentPeople);\n","/* Logic for flashing the page title */\nexport default class FlashTitle {\n constructor(newTitle) {\n this.original = document.title;\n this.newTitle = newTitle;\n }\n\n set newTitle(t) {\n this._newTitle = t;\n }\n\n get newTitle() {\n return this._newTitle;\n }\n\n start() {\n if (this.intervalId) {\n console.warn('FlashTitle already running. Not starting again.');\n return;\n }\n this.intervalId = setInterval(() => {\n this.toggle();\n }, 1500);\n }\n\n toggle() {\n document.title == this.original ? (document.title = this.newTitle) : (document.title = this.original);\n }\n\n stop() {\n if (!this.intervalId) return;\n clearInterval(this.intervalId);\n this.intervalId = null;\n document.title = this.original;\n }\n\n isActive() {\n return !!this.intervalId;\n }\n}\n","/* eslint-disable import/first */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nif (process.env.RAILS_ENV !== 'production') {\n // eslint-disable-next-line global-require\n require('preact/debug');\n}\n\nimport Rails from '@rails/ujs';\nimport * as ActiveStorage from '@rails/activestorage';\nimport 'channels';\nimport Dropdown from 'custom/dropdown';\nimport TimeUtil from 'custom/time_util';\nimport resizeDebounce from 'custom/resize_debounce';\n\n// components\nimport { defineCustomElement as defineTabTray } from 'web_components/tab-tray';\nimport { defineCustomElement as defineTabItem } from 'web_components/tab-item';\nimport { defineCustomElement as definePersonActiveStatus } from 'web_components/person-active-status';\nimport { defineCustomElement as definePersonActiveStatusFavicon } from 'web_components/person-active-status-favicon';\nimport { defineCustomElement as definePersonIcon } from 'web_components/person-icon';\nimport { defineCustomElement as defineMonitorActivePeople } from 'web_components/monitor-active-people';\nimport { defineCustomElement as defineMonitorSegmentCurrentPeople } from 'web_components/monitor-segment-current-people';\nimport { defineCustomElement as defineSessionStackSessions } from 'web_components/session-stack/session-stack-sessions';\n\nimport FlashTitle from 'custom/flash_title';\n\ndefineTabTray();\ndefineTabItem();\ndefinePersonActiveStatus();\ndefinePersonActiveStatusFavicon();\ndefinePersonIcon();\ndefineMonitorActivePeople();\ndefineMonitorSegmentCurrentPeople();\ndefineSessionStackSessions();\n\nconst timeUtil = new TimeUtil();\nglobal.timeUtil = timeUtil;\n\nRails.start();\nActiveStorage.start();\n\n// Support component names relative to this directory:\nconst componentRequireContext = require.context('components', true);\nconst ReactRailsUJS = require('react_ujs');\nReactRailsUJS.useContext(componentRequireContext);\n\nwindow.document.addEventListener('DOMContentLoaded', () => {\n // Init dropdowns\n Dropdown.initAll();\n\n // Init Flash title\n window.flashTitle = new FlashTitle();\n});\n\nresizeDebounce();\n","// debounced window resize event (resize:done)\n// https://web.archive.org/web/20220714020647/https://bencentra.com/code/2015/02/27/optimizing-window-resize.html\nexport default function resizeDebounce() {\n window.addEventListener('resize', function () {\n // clear the timeout\n clearTimeout(timeout);\n // start timing for event \"completion\"\n const timeout = setTimeout(() => {\n window.dispatchEvent(new CustomEvent('resize:done'));\n }, 250);\n });\n}\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","_regeneratorRuntime","Op","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","reject","record","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","undefined","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","_createForOfIteratorHelper","allowArrayLike","it","Array","isArray","minLen","_arrayLikeToArray","n","toString","from","test","_unsupportedIterableToArray","F","s","f","normalCompletion","didErr","step","arr","len","arr2","t","a","r","indexOf","getOwnPropertySymbols","propertyIsEnumerable","c","arguments","apply","ReferenceError","l","u","globalThis","window","d","h","p","v","g","m","w","S","y","b","_","k","M","Map","C","Set","T","WeakSet","O","j","add","P","A","E","I","L","$$typeof","_store","D","_values","has","B","N","x","R","size","V","U","source","global","ignoreCase","multiline","unicode","sticky","lastIndex","z","J","q","Date","getTime","RegExp","W","G","Bada","BlackBerry","Chrome","Chromium","Electron","Epiphany","Firefox","Focus","Generic","Googlebot","Maxthon","Opera","PhantomJS","Puffin","QupZilla","QQ","QQLite","Safari","Sailfish","SeaMonkey","Sleipnir","Swing","Tizen","Vivaldi","WeChat","Roku","H","amazon_silk","android","bada","blackberry","chrome","chromium","electron","epiphany","firefox","focus","generic","googlebot","google_search","ie","k_meleon","maxthon","edge","mz","naver","opera","opera_coast","phantomjs","puffin","qupzilla","qq","qqlite","safari","sailfish","samsung_internet","seamonkey","sleipnir","swing","tizen","uc","vivaldi","webos","wechat","yandex","K","tablet","mobile","desktop","tv","Q","WindowsPhone","Windows","MacOS","iOS","Android","WebOS","Linux","ChromeOS","PlayStation4","$","EdgeHTML","Blink","Trident","Presto","Gecko","WebKit","Y","static","match","split","splice","parseInt","getVersionPrecision","Math","max","join","min","find","_len","_key","assign","Z","X","describe","getFirstMatch","version","getSecondMatch","search","ee","getWindowsVersionName","versionName","replace","getMacOSVersionName","getAndroidVersionName","te","vendor","model","getBrowserName","Number","String","getOSVersion","getOSName","re","_ua","parsedResult","parse","getUA","parseBrowser","browser","some","getBrowser","toLowerCase","getBrowserVersion","getOS","os","parseOS","getPlatform","platform","parsePlatform","getPlatformType","getEngine","engine","parseEngine","getEngineName","getResult","satisfies","isOS","isPlatform","isBrowser","compareVersion","getBrowserTypeByAlias","substr","compareVersions","isEngine","is","ne","ae","oe","se","ce","le","ge","we","_e","Qe","Pt","At","Vt","Ut","zt","NONE","BGBLUR","BGIMAGE","Jt","NOISE_CANCELLATION","qt","PLAY","PAUSE","Wt","Gt","Qt","$t","navigator","userAgent","product","Yt","mediaDevices","getUserMedia","Xt","document","createElement","requestFullscreen","webkitRequestFullscreen","er","tr","rr","nr","ar","major","cr","sr","ir","or","minor","build","patch","point","lr","now","random","ur","dr","_dailyConfig","callObjectBundleUrlOverride","concat","hr","URL","pr","fr","filter","getOwnPropertyDescriptor","vr","getOwnPropertyDescriptors","defineProperties","mr","Reflect","construct","sham","Proxy","gr","_wrappedListeners","_messageCallbacks","data","what","callFrameId","callbackStamp","addEventListener","action","contentWindow","postMessage","removeEventListener","br","yr","callMachineToDailyJsEmitter","dailyJsToCallMachineEmitter","_addListener","_sendMessage","removeListener","addListener","emit","wr","_r","_step","_iterator","kr","_step2","_iterator2","_step3","_iterator3","get","ArrayBuffer","Uint8Array","DataView","byteLength","getInt8","isView","Sr","Mr","Cr","mergeStrategy","_validateMergeStrategy","_validateData","isNoOpUpdate","includes","JSON","stringify","console","warn","Tr","Function","Or","jr","bind","Pr","set","Fr","_currentLoad","loaded","_dailyCallObjectSetup","avoidEval","cancel","Ir","start","succeeded","Er","_attemptsRemaining","_currentAttempt","_successCallback","_failureCallback","Dr","cancelled","setTimeout","Lr","Ar","_loadAttemptImpl","Br","Nr","_callee","_context","_networkTimedOut","_networkTimeout","_iosCache","iOSCallObjectBundleCache","_refetchHeaders","_callee2","_context2","_tryLoadFromIOSCache","t0","_loadFromNetwork","clearTimeout","_callee3","_context3","refetchHeaders","_callee4","_context4","headers","fetch","_getBundleCodeFromResponse","_callee5","_context5","ok","text","status","renew","_attemptId","_scriptElement","_callee6","_context6","_dailyCallMachineLoadWaitlist","_startLoading","_stopLoading","_signUpForCallMachineLoadWaitlist","getElementsByTagName","onload","_callee7","_context7","onerror","_callee8","_context8","target","src","appendChild","_withdrawFromCallMachineLoadWaitlist","delete","xr","Rr","Ur","zr","Jr","qr","Wr","Gr","Hr","Kr","$r","ei","ti","Qr","Yr","ri","ni","ai","oi","si","ci","li","ui","di","nodeType","Buffer","isBuffer","pi","fi","gi","mi","bi","wi","process","require","types","binding","_i","isTypedArray","ki","Si","Mi","Vr","Ci","Oi","ji","Pi","Ti","Ai","Di","Bi","Ni","xi","Ri","Ui","zi","Ji","Ki","clear","__data__","Xi","Qi","tn","rn","exec","IE_PROTO","an","on","sn","cn","ln","un","dn","hn","pn","nn","vn","gn","mn","_n","Sn","On","jn","Fn","An","Bn","hash","string","Nn","Vn","xn","Un","Wn","Gn","Hn","Kn","Yn","Zn","Xn","ea","fa","va","valueOf","wa","_a","ka","Sa","ma","ya","Ca","Oa","ja","Pa","Aa","Fa","Ea","Ia","La","Da","Ba","Na","Ra","Va","Ua","za","Ja","byteOffset","buffer","message","ga","Ta","qa","Ka","$a","Ya","Qa","Wa","Ha","Xa","eo","to","ro","io","no","cache","Cache","Ro","ao","so","co","lo","charCodeAt","uo","po","fo","vo","go","mo","bo","wo","ko","Mo","So","Oo","_o","Co","jo","Fo","Po","Ao","Eo","Io","Bo","xo","Lo","criteria","index","sort","Do","No","Uo","qo","local","zo","streams","stream","Jo","Wo","pendingTrack","public","subscribedTracks","custom","ALL","Vo","participantId","kind","Go","customTracks","track","Ho","store","getState","toUpperCase","tracks","session_id","persistentTrack","Ko","Qo","$o","audio","audioTrack","cam","getAudioTracks","video","videoTrack","getVideoTracks","screen","screenVideoTrack","screenAudioTrack","participants","rtcType","impl","private","peeringState","screenTrack","muted","Yo","Zo","es","ts","rs","as","topology","present","hidden","ss","maxBitrate","maxFramerate","scaleResolutionDownBy","cs","ls","androidInCallNotification","title","subtitle","iconName","disableForCustomOverride","disableAutoDeviceManagement","us","iconPath","iconPathDarkMode","label","tooltip","ds","customTrayButtons","validate","Ms","help","url","baseUrl","token","queryString","dailyConfig","experimentalGetUserMediaConstraintsModify","userMediaVideoConstraints","userMediaAudioConstraints","reactNativeConfig","lang","userName","userData","bs","startVideoOff","startAudioOff","activeSpeakerMode","showLeaveButton","showLocalVideo","showParticipantsBar","showFullscreenButton","showUserNameChangeUI","iframeStyle","customLayout","cssFile","cssText","bodyClass","videoSource","_preloadCache","videoDeviceId","audioSource","audioDeviceId","subscribeToTracksAutomatically","theme","light","dark","colors","layoutConfig","grid","isInteger","maxTilesPerPage","minTilesPerPage","receiveSettings","ws","allowAllParticipantsKey","Ss","inputSettings","_s","ks","layout","emb","embHref","dailyJsVersion","strictMode","hs","styles","setSubscribedTracks","setAudio","setVideo","eject","updatePermissions","entries","ps","MediaStreamTrack","modifyLocalSdpHook","modifyRemoteSdpHook","fs","vs","gs","ms","ys","layer","screenVideo","publish","config","strength","pathname","protocol","substring","at","trim","processor","Cs","volume","Ts","Os","Xo","ondevicechange","deviceChangeListener","startPollingForDeviceChanges","stopPollingForDeviceChanges","_callee9","_context9","enumerateDevices","handleDeviceChange","devices","availableDevices","_deviceChangeInterval","setInterval","_callee10","_context10","_lastDevicesJSON","clearInterval","disableReactNativeAutoDeviceManagement","camUnmutedBeforeLosingNativeActiveState","setLocalVideo","localVideo","_hasNativeAudioFocus","toggleParticipantAudioBasedOnNativeAudioFocus","micUnmutedBeforeLosingNativeAudioFocus","setLocalAudio","localAudio","_logDuplicateInstanceAttempt","_iframe","_callObjectMode","outputDeviceId","_dailyPreloadCache","_showLocalVideo","_showParticipantsBar","_customTrayButtons","_activeSpeakerMode","_receiveSettings","validateProperties","properties","_callObjectLoader","_callState","_isPreparingToJoin","_accessState","access","_meetingSessionState","_nativeInCallAudioMode","_participants","_participantCounts","_rmpPlayerState","_waitingParticipants","_inputEventsOn","_network","threshold","quality","_activeSpeaker","_callFrameId","_messageChannel","fullscreenElement","sendMessageToCallMachine","webkitFullscreenElement","nativeUtils","addAudioFocusChangeListener","removeAudioFocusChangeListener","addAppActiveStateChangeListener","removeAppActiveStateChangeListener","handleNativeAudioFocusChange","handleNativeAppActiveStateChange","startListeningForDeviceChanges","addListenerForMessagesFromCallMachine","handleMessageFromCallMachine","supported","supportsScreenShare","supportsSfu","supportsVideoProcessing","supportsAudioProcessing","BROWSER_MAP","ENGINE_MAP","OS_MAP","PLATFORMS_MAP","getParser","supportsFullscreen","getDisplayMedia","RTCRtpTransceiver","AudioWorkletNode","append","body","position","border","backgroundColor","width","height","right","bottom","allow","style","visibility","removeChild","_callee11","_context11","leave","t1","parentElement","stopListeningForDeviceChanges","resetMeetingDependentVars","_destroyed","absoluteUrl","validateParticipantProperties","_callee12","_args12","_context12","updates","_callee13","_args13","_context13","updatesById","ids","_callee14","_args14","_context14","level","granted","_callee15","_args15","_context15","showInheritedValues","_callee16","_context16","needsLoad","_inputSettings","_callee17","_context17","kbs","trackConstraints","_callee18","_context18","_callee20","_context20","_callee19","_context19","thisMeetingOnly","_callee21","_context21","_callee22","_context22","load","preloadCache","mode","trackName","validateCustomTrack","customTrack","mediaTag","cameraDeviceId","device","_callee23","_context23","setAudioDevice","getAudioDevice","deviceId","facingMode","setInputDevicesAsync","_callee24","_context24","camera","mic","speaker","returnPreloadCache","setOutputDeviceAsync","_callee25","_context25","_callee26","_context26","_isCallPendingOrOngoing","setAudioMode","_callee27","_args27","_context27","_didPreAuth","_callee28","_context28","_logUseAfterDestroy","_updateCallState","log","errorMsg","assembleMeetingUrl","_loadedCallback","loadCss","_callee29","_args29","_context29","updateIsPreparingToJoin","_joinedCallback","_callee30","_context30","_resolveLeave","mediaStream","screenMediaStream","captureOptions","preset","instanceId","endpoints","endpointsOp","_callee32","_context32","settings","simulcastEncodings","every","_callee31","_context31","remoteMediaPlayerState","_callee34","_context34","_callee33","_context33","_callee36","_context36","_callee35","_context35","stats","latest","cpuLoadState","cpuStats","enabled","_callee37","_context37","show","btns","_callee38","_context38","exitFullscreen","webkitExitFullscreen","_callee39","_args39","_context39","includeRoomConfigDefaults","roomUrlPendingJoin","_callee41","_context41","_callee40","_context40","json","geo","t2","current","t3","_callee43","_context43","_callee42","_context42","opts","workerId","_callee45","_context45","_callee44","_context44","isDestroyed","off","encodeURIComponent","location","href","forwardPackagedMessageToCallMachine","addListenerForPackagedMessagesFromCallMachine","removeListenerForPackagedMessagesFromCallMachine","participant","maybeParticipantTracksStopped","maybeParticipantTracksStarted","maybeEventRecordingStopped","maybeEventRecordingStarted","compareEqualForParticipantUpdateEvent","participantCounts","awaitingAccess","meetingSession","preserveIframe","activeSpeaker","peerId","allWaitingParticipants","playerState","emitDailyJSEvent","compareEqualForRMPUpdateEvent","meetingSessionState","readyState","maybeEventTrackStopped","maybeEventTrackStarted","DailyNativeUtils","updateKeepDeviceAwake","updateDeviceAudioMode","updateShowAndroidOngoingMeetingNotification","updateNoOpRecordingEnsuringBackgroundContinuity","setKeepDeviceAwake","setShowOngoingMeetingNotification","enableNoOpRecordingEnsuringBackgroundContinuity","adapters","logger","WebSocket","_adapters$logger","messages","_typeof","classCallCheck","instance","Constructor","createClass","props","descriptor","protoProps","staticProps","secondsSince","time","clamp","number","ConnectionMonitor","connection","visibilityDidChange","reconnectAttempts","isRunning","startedAt","stoppedAt","startPolling","getPollInterval","stopPolling","recordPing","pingedAt","recordConnect","disconnectedAt","recordDisconnect","poll","pollTimeout","_this","reconnectIfStale","_constructor$pollInte","pollInterval","interval","multiplier","round","connectionIsStale","staleThreshold","disconnectedRecently","reopen","_this2","visibilityState","isOpen","INTERNAL","message_types","welcome","disconnect","ping","confirmation","rejection","disconnect_reasons","unauthorized","invalid_request","server_restart","default_mount_path","protocols","supportedProtocols","Connection","consumer","open","subscriptions","monitor","disconnected","send","webSocket","isActive","uninstallEventHandlers","installEventHandlers","close","allowReconnect","reopenDelay","getProtocol","isState","isProtocolSupported","states","eventName","events","handler","event","_JSON$parse","identifier","reason","reconnect","reload","confirmSubscription","notify","notifyAll","willAttemptReconnect","extend","Subscription","params","mixin","perform","command","unsubscribe","remove","SubscriptionGuarantor","pendingSubscriptions","guarantee","subscription","startGuaranteeing","forget","stopGuaranteeing","retrySubscribing","retryTimeout","subscribe","Subscriptions","guarantor","channelName","channel","ensureActiveConnection","findAll","sendCommand","callbackName","_this3","args","_len2","_key2","_this4","Consumer","_url","connect","createWebSocketURL","createConsumer","getConfig","element","head","querySelector","getAttribute","factory","createCommonjsModule","sparkMd5","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","tmp","hi","md51_array","subarray","rhex","hex","toUtf8","str","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","arrayBuffer2Utf8Str","fromCharCode","concatenateArrayBuffers","first","second","hexToBinaryString","bytes","SparkMD5","num","targetArray","sourceArray","begin","end","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","setState","destroy","hashBinary","content","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","chunkIndex","callback","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","getMetaValue","findElement","findElements","root","selector","toArray$1","querySelectorAll","dispatchEvent","eventInit","disabled","bubbles","cancelable","detail","createEvent","initEvent","BlobRecord","checksum","attributes","filename","content_type","byte_size","xhr","XMLHttpRequest","responseType","setRequestHeader","csrfToken","requestDidLoad","requestDidError","blob","response","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","upload","DirectUploadController","input","directUpload","dispatch","hiddenInput","insertAdjacentElement","parentNode","dispatchError","signed_id","progress","total","defaultPrevented","alert","uploadRequestDidProgress","inputSelector","DirectUploadsController","form","inputs","files","controllers","createDirectUploadControllers","startNextController","controller","shift","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","preventDefault","setAttribute","disable","removeAttribute","enable","submitForm","button","click","display","autostart","ActiveStorage","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","cspNonce","expando","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","csrfParam","meta","CSRFProtection","refreshCSRFTokens","param","CustomEvent","fire","evt","initCustomEvent","Event","stopEverything","stopPropagation","stopImmediatePropagation","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","html","xml","script","ajax","options","responseText","getResponseHeader","floor","success","statusText","beforeSend","OPENED","dataType","accept","crossDomain","withCredentials","onreadystatechange","DONE","parser","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","host","toArray","serializeElement","additionalParam","elements","option","selected","checked","formElements","el","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","handleMethod","formContent","link","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","_rails_loaded","modules","installedModules","moduleId","getter","__esModule","ns","property","Platform","default","__webpack_exports__","__extends","__assign","__rest","__decorate","__param","__metadata","__awaiter","__generator","__createBinding","__exportStar","__values","__read","__spread","__spreadArrays","__spreadArray","__asyncGenerator","__asyncDelegator","__asyncValues","__makeTemplateObject","__importStar","__importDefault","__classPrivateFieldGet","__classPrivateFieldSet","extendStatics","__","decorators","decorate","paramIndex","decorator","metadataKey","metadataValue","metadata","thisArg","_arguments","fulfilled","rejected","trys","ops","verb","op","k2","il","jl","pack","resume","fulfill","settle","cooked","__setModuleDefault","mod","receiver","allToUpperCase","allToLowerCase","encodeBody","decodeBody","Format","promisify","arrChooseN","randomHexString","randomString","cheapRandStr","dataSizeBytes","inspectBody","inspectError","isErrorInfo","parseQueryString","toQueryString","arrPopRandomElement","defaultPostHeaders","defaultGetHeaders","allSame","arrEvery","arrFilter","arrMap","safeArrForEach","arrForEach","forInOwnNonNullProperties","valuesArray","keysArray","arrWithoutValue","arrDeleteValue","arrIn","arrIndexOf","arrSubtract","arrIntersectOb","arrIntersect","intersect","containsValue","inherits","prototypicalClone","shallowClone","isEmptyArg","isOnlyPropIn","isEmpty","isObject","ensureArray","copy","shallowEquals","getGlobalObject","getJitterCoefficient","getBackoffCoefficient","tslib_1","platform_1","defaults_1","randomPosn","arrOrStr","ob","ownProperties","arr1","member","idx","res","prop","superCtor","Config","super_","elem","fromIndex","newArr","ownOnly","item","contentTypes","jsonp","msgpack","format","apiVersion","getAgentString","contentType","parts","query","decodeURIComponent","inspect","BufferUtils","stringByteSize","numBytes","getRandomValues","uIntArr","base64Encode","charset","base64CharSet","hexEncode","hexCharSet","numItems","mutableArr","fnName","decode","encode","LogLevels","globalObject","pad","timeSegment","three","padStart","getHandler","logTimestamps","msg","getHours","getMinutes","getSeconds","getMilliseconds","Logger","logLevel","LOG_DEFAULT","initLogHandlers","_b","consoleLogger","errorLogger","Window","WorkerGlobalScope","getDefaultLoggers","logHandler","logErrorHandler","LOG_NONE","None","LOG_ERROR","LOG_MAJOR","Major","LOG_MINOR","Minor","LOG_MICRO","Micro","LOG_DEBUG","logAction","shouldLog","deprecated","original","deprecatedWithMsg","funcName","setLog","CryptoJS","WordArray","lib","superInit","init","subInit","typedArray","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","typedArrayByteLength","words","Utils","ErrorInfo","statusCode","cause","fromValues","crypto","msCrypto","cryptoSecureRandomInt","randomBytes","readInt32LE","subtype","C_lib","Base","overrides","mixIn","$super","propertyName","clone","sigBytes","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","thatByte","nBytes","C_enc","enc","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","escape","utf8Str","BufferedBlockAlgorithm","_data","_nDataBytes","_append","_process","doFlush","processedWords","dataWords","dataSigBytes","blockSize","nBlocksReady","nWordsReady","_minBufferSize","nBytesReady","offset","_doProcessBlock","C_algo","Hasher","cfg","_doReset","update","messageUpdate","finalize","_doFinalize","_createHelper","hasher","_createHmacHelper","HMAC","algo","logger_1","callListener","eventThis","listener","stack","targetListeners","eventFilter","listeners","targetListenersIndex","EventEmitter","any","anyOnce","eventsOnce","event_1","listener_1","firstArg","secondArg","eventsOnceListeners","eventsListeners","once","argCount","event_2","self_1","listenerWrapper_1","innerArgs","whenState","targetState","currentState","listenerArgs","getDefaults","normaliseOptions","objectifyOptions","getHosts","getFallbackHosts","environmentFallbackHosts","getHttpScheme","getPort","getHost","errorinfo_1","package_json_1","agent","Defaults","ENVIRONMENT","REST_HOST","REALTIME_HOST","FALLBACK_HOSTS","PORT","TLS_PORT","TIMEOUTS","disconnectedRetryTimeout","suspendedRetryTimeout","httpRequestTimeout","channelRetryTimeout","fallbackRetryTimeout","connectionStateTtl","realtimeRequestTimeout","recvTimeout","preferenceConnectTimeout","parallelUpgradeDelay","httpMaxRetryCount","maxMessageSize","checkHost","restHost","realtimeHost","tls","tlsPort","port","environment","fallbackHosts","wsHost","queueEvents","queueMessages","fallbackHostsUseDefault","recover","lastConnectionDetails","cb","closeOnUnload","transports","production","getRealtimeHost","timeouts","getTimeouts","useBinaryProtocol","supportsBinary","preferBinary","clientId","utf8Encode","idempotentRestPublishing","promises","connectivityCheckParams","connectivityCheckUrl","uri","qs","agentStr","agents","platformDefaults","normalizeCipherOptions","cipher","channelCipher","Crypto","getCipher","cipherParams","getMessageSize","extras","Message","encoding","toBuffer","connectionId","connectionKey","timestamp","encrypt","algorithm","encodeArray","processed","inputContext","channelOptions","plugins","baseEncodedPreviousPayload","normaliseContext","lastPayload","xforms","lastProcessedEncodingIndex","encodingsToProcess","xform","base64Decode","utf8Decode","xformAlgorithm","decrypt","vcdiff","deltaBase","typedArrayToBuffer","fromResponseBody","fromValuesArray","count","fromEncoded","encoded","inputOptions","fromEncodedArray","encodedArray","getMessagesSize","serialize","message_1","presencemessage_1","actions","HEARTBEAT","ACK","NACK","CONNECT","CONNECTED","DISCONNECT","DISCONNECTED","CLOSE","CLOSED","ERROR","ATTACH","ATTACHED","DETACH","DETACHED","PRESENCE","MESSAGE","SYNC","AUTH","ACTIVATE","ActionName","flags","HAS_PRESENCE","HAS_BACKLOG","RESUMED","TRANSIENT","ATTACH_RESUME","PUBLISH","SUBSCRIBE","PRESENCE_SUBSCRIBE","flagNames","toStringArray","array","MODE_ALL","simpleAttributes","ProtocolMessage","hasFlag","flag","setFlag","getMode","encodeModesToFlags","modes","decodeModesFromFlags","channelModes","Action","deserialize","serialized","deserialized","fromDeserialized","presence","attribute","attribIndex","auth","accessToken","stringifiedParams_1","protocolmessage_1","transport_1","connectionerrors_1","auth_1","XHRStates_1","protocolMessageFromRawError","isTokenErr","shouldBeErrorAction","CometTransport","_super","connectionManager","onAuthUpdated","tokenDetails","authParams","access_token","sendRequest","recvRequest","pendingCallback","pendingItems","cometScheme","baseUri","connectUri","getAuthParams","isDisposed","connectParams","getConnectParams","preconnected","connectRequest","createRequest","REQ_RECV_STREAM","REQ_RECV","onData","onActivity","nextTick","recv","requestClose","_requestCloseOrDisconnect","requestDisconnect","closing","closeOrDisconnectUri","closeUri","disconnectUri","request","REQ_SEND","dispose","abort","onConnect","connectionStr","connectionDetails","baseConnectionUri","sendUri","recvUri","sendItems","sendAnyPending","items","encodeRequest","isConnected","REQ_RECV_POLL","responseData","decodeResponse","onProtocolMessage","requestItems","parseLoop","base64Str","base64StrLength","reverseMap","bitsCombined","Base64","base64Chars","triplet","paddingChar","_reverseMap","paddingIndex","toActionValue","actionString","PresenceMessage","Actions","isSynthesized","parseId","msgSerial","stringifyAction","eventemitter_1","getAblyError","responseBody","isAblyError","noop","idCounter","pendingRequests","isIE","XDomainRequest","needJsonEnvelope","XHRRequest","requestMode","rnd","envelope","timedOut","requestComplete","_timeouts","unpacked","timeout","timer","streaming","successResponse","errorHandler","errorEvent","errorMessage","onabort","ontimeout","streamPos","onEnd","parsedResponse","header","getHeader","jsonResponseBody","headerPairs","getAllResponseHeaders","getHeadersAsObject","onProgress","chunk","bodyEnd","onChunk","isEncodingChunked","streamComplete","multicaster_1","hmac_sha256_1","enc_base64_1","enc_utf8_1","HttpMethods_1","MAX_TOKEN_LENGTH","pow","normaliseAuthcallbackError","toBase64","createHmac","hmac","inst","digest","c14n","capability","c14nCapability","logAndValidateTokenAuthMethod","authOptions","authCallback","authUrl","trId","Auth","client","tokenParams","defaultTokenParams","currentTokenRequestId","waitingForTokenRequest","useTokenAuth","basicAuthForced","noWayToRenew","_saveTokenOptions","_saveBasicOptions","authorize","_authOptions","_forceNewToken","actOnErrorFromAuthorize","authorise","_ensureValidAuthCredentials","queryTime","requestToken","tokenRequestCallback","_callback","providedQsParams","authHeaders","usePost","authMethod","queryIdx","authUrlRequestCallback","http","doUri","Post","Get","createTokenRequest","tokenRequestCallbackTimeoutExpired","timeoutLength","tokenRequestCallbackTimeout","tokenRequestOrDetails","objectSize","suppressMaxLengthCheck","signedTokenParams","tokenCb","path","requestHeaders","tokenResponse","keyName","do","keyParts","keySecret","authoriseCb","ttl","signText","mac","getTimestamp","getAuthHeaders","authorization","basicKey","isTimeOffsetSet","getTimestampUsingOffset","serverTimeOffset","_userSetClientId","forceSupersede","_tokenClientIdMismatch","expires","tokenRequestId","callbacks","_uncheckedSetClientId","tokenClientId","HttpMethods","HttpPaginatedResponse","PaginatedResult","resource_1","PaginatedResource","rest","bodyHandler","useHttpPaginatedResponse","handlePage","post","put","useHPR","returnErrOnly","linkHeader","relParams","urlMatch","linkMatch","parseRelLinks","resource","hasNext","isLast","errorCode","isRetriable","ConnectionErrors","suspended","failed","closed","unknownConnectionErr","unknownChannelErr","retriable","connErr","XHRStates","Multicaster","members","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","withAuthDetails","errCallback","opCallback","supportsAuthHeaders","paramString","paramPairs","needle","urlFromPathAndParams","Resource","Delete","Patch","Put","logResponseHandler","outerHeaders","outerStatusCode","wrappedStatusCode","wrappedHeaders","wrappedErr","unenvelope","doRequest","decodedBody","decodeErr","TransportParams","protocol_1","messagequeue_1","connectionstatechange_1","websockettransport_1","HttpStatusCodes_1","haveWebStorage","WebStorage","localSupported","haveSessionStorage","sessionSupported","transportPreferenceName","sessionRecoveryName","decodeRecoveryKey","recoveryKey","upgrade","recoveryContext","echoMessages","echo","heartbeats","transportParams","ConnectionManager","realtime","disconnectedRetryCount","initTransports","connectingTimeout","initialized","terminal","sendEvents","failState","connecting","retryDelay","connected","synchronizing","forceQueueEvents","errorReason","queuedMessages","maxIdleInterval","defaultTransports","supportedTransports","baseTransport","baseTransportOrder","upgradeTransports","transportPreference","httpHosts","activeProtocol","proposedTransports","pendingTransports","lastAutoReconnectAttempt","lastActivity","forceFallbackHost","connectCounter","persistConnection","requestState","disconnectAllTransports","Transports","initFn","createTransportParams","getTransportParams","modeCb","recoverFn","lastSessionData","getSession","shouldRecover","decideMode","tryATransport","candidate","tryConnect","transport","notifyState","setTransportPending","optimalTransport","transportPreferenceOrder","shortName","getUpgradePossibilities","scheduleTransportActivation","activateTransport","connectImpl","unpersistConnection","deactivateTransport","currentTransport","getTransport","abandon","oldProtocol","finishUpgrade","sendQueuedMessages","onceIdle","persistTransportPreference","existingState","connectedState","existingActiveProtocol","setConnection","onConnectionDetailsUpdate","connectedErr","_connectionId","messageQueue","pendingTransport","proposedTransport","currentProtocol","wasActive","wasPending","wasProposed","noTransportsScheduledForActivation","queuePendingMessages","getPendingMessages","clearPendingMessages","unpersistTransportPreference","retryImmediately","newConnectionState","startSuspendTimer","startTransitionTimer","hasConnectionError","prevConnId","resetSendAttempted","clearConnection","createRecoveryKey","channelSerials","channels","checkConnectionStateFreshness","sinceLast","setSession","removeSession","getError","getStateError","activeState","enactStateChange","stateChange","newState","transitionState","transitionTimer","cancelTransitionTimer","suspendTimer","checkSuspendTimer","cancelSuspendTimer","startRetryTimer","retryTimer","cancelRetryTimer","indicated","change","autoReconnect","propogateConnectionInterruption","failQueuedMessages","startConnect","closeImpl","connectCount","recoverChannels","authCb","upgradeIfNeeded","getTransportPreference","connectPreference","connectBase","preference","preferenceTimeoutExpired","preferenceTimeout","fatal","giveUp","candidateHosts","hostAttemptCb","tryFallbackHosts","checkConnectivity","connectivity","currentSerial","upgradePossibilities","upgradeTransport","upgradeTransportParams","transportParams_1","activeTransport","authMsg","successListener_1","failureListener_1","exceptActive","queueEvent","sendImpl","PendingMessage","queue","pendingMessage","ackRequired","sendAttempted","lastQueued","last","maxSize","dest","proposed","bundleWith","merged","pendingMessages","prepend","numQueued","completeAllMessages","onChannelMessage","onActiveTransport","onUpgradeTransport","pingStart_1","id_1","onHeartbeat_1","responseId","timer_1","responseTime","completed","onTransportActive","fail","registerProposedTransport","Forbidden","closeMessage","disconnectMessage","Transport","forceJsonProtocol","isFinished","idleTimer","onClose","onDisconnect","onFatalError","maxPromisedIdle","setIdleTimer","onIdleTimerExpire","timeRemaining","transportCtor","transportAttemptTimer","errorCb","MD5","EvpKDF","keySize","iterations","compute","password","salt","block","derivedKey","derivedKeyWords","Cipher","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","dataUpdate","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","ciphertext","C_mode","StreamCipher","BlockCipherMode","iv","Encryptor","Decryptor","_cipher","_iv","CBC","xorBlock","_prevBlock","processBlock","encryptBlock","thisBlock","decryptBlock","Pkcs7","blockSizeBytes","nPaddingBytes","paddingWord","paddingWords","padding","unpad","CipherParams","BlockCipher","modeCreator","_mode","__creator","finalProcessedBlocks","formatter","OpenSSLFormatter","OpenSSL","openSSLStr","ciphertextWords","encryptor","cipherCfg","_parse","OpenSSLKdf","kdf","execute","derivedParams","Request","comettransport_1","_ablyjs_jsonp","JSONPTransport","isAvailable","jsonpSupported","allowComet","insertBefore","firstChild","push_1","paginatedresource_1","channel_1","stats_1","Rest","optionsObj","normalOptions","keyMatch","authority","_currentFallback","Http","Channels","supportsLinkHeaders","statsValues","customHeaders","useBinary","decoder","_method","paginatedResource","resbody","methods","methodsWithBody","logOptions","Callbacks","all","setOptions","release","isPrime","sqrtN","sqrt","factor","getFractionalBits","nPrime","SHA256","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","nBitsTotal","nBitsLeft","HmacSHA256","presence_1","MSG_ID_ENTROPY_BYTES","normaliseChannelOptions","Channel","basePath","history","_history","allEmptyIds","msgIdBase_1","_publish","requestBody","Presence","MessageQueue","copyAll","unshift","completeMessages","serial","startSerial","endSerial","completeMessages_1","MAX_SAFE_INTEGER","MAX_VALUE","ConnectionStateChange","previous","retryIn","HttpStatusCodes","isSuccessCode","Success","BadRequest","realtimepresence_1","channelstatechange_1","RealtimeChannel","retryCount","untilAttach","attachSerial","from_serial","syncChannelSerial","channelSerial","_requestedFlags","_attachResume","_decodingContext","_lastPayload","messageId","protocolMessageChannelSerial","decodeFailureRecoveryInProgress","_allChannelChanges","invalidStateError","processListenerArgs","currentMode","validateChannelOptions","_shouldReattachToSetOptions","attachImpl","__publish","sendMessage","onEvent","attach","_flags","_attach","forceReattach","attachReason","attachMsg","detach","detachImpl","_subscribeFilter","filteredListener","_c","_d","_f","mapping","refTimeserial","timeserial","refType","isRef","_addFilteredSubscription","realListener","filteredSubscriptions","realListenerMap","_getAndDeleteFilteredSubscriptions","filterMaps","listenerMaps","reduce","cur","listeners_1","sync","syncMessage","sendPresence","onMessage","setChannelSerial","isSync","modesFromFlags","resumed","hasPresence","onAttached","updateOnAttached","checkPendingState","detachErr","presenceMsg","setPresence","firstMessage","lastMessage","delta","_startDecodeFailureRecovery","clearStateTimer","actOnChannelState","cmState","startStateTimerIfNotRunning","timeoutPendingState","stateTimer","getReleaseErr","ChannelStateChange","SHA1","HmacSHA1","utf8Write","view","codePoint","setUint8","utf8Read","byte_","getUint8","utf8ByteCount","SH_L_32","SH_R_32","Decoder","bin","buf","ext","getUint16","getUint32","getFloat32","getFloat64","getUint64","getInt16","getInt32","getInt64","encodeableKeys","sparse","_encode","length_1","setUint16","setUint32","length_2","setFloat64","setInt32","setUint64","setInt8","setInt16","setInt64","length_3","sizeof","length_4","length_5","length_6","rest_1","realtime_1","bufferutils_1","crypto_1","http_1","platform_2","connectionmanager_1","webstorage_1","defaults_2","msgpack_1","noUpgrade","Realtime","devicedetails_1","pushchannelsubscription_1","Push","admin","Admin","deviceRegistrations","DeviceRegistrations","channelSubscriptions","ChannelSubscriptions","recipient","payload","pushFullWait","fullWait","save","deviceIdOrDetails","list","removeWhere","listChannels","parsedBody","DeviceFormFactor","DevicePlatform","DeviceDetails","deviceSecret","formFactor","deviceIdentityToken","toRequestBody","PushChannelSubscription","MessageCount","uncompressedData","refused","MessageCategory","category","ResourceCount","peak","mean","opened","RequestCount","ConnectionTypes","plain","MessageTypes","MessageTraffic","webhook","sharedQueue","externalQueue","httpEvent","MessageDirections","inbound","outbound","XchgMessages","producerPaid","consumerPaid","PushStats","notifications","invalid","attempted","successful","directPublishes","ProcessedCount","skipped","ProcessedMessages","Stats","persisted","connections","apiRequests","tokenRequests","xchgProducer","xchgConsumer","pushStats","inProgress","unit","intervalId","connection_1","realtimechannel_1","autoConnect","serials","name_1","name_2","connectionState","fromChannelStates","toChannelState","channelId","releaseErr","ably","Protocol","onAck","onNack","WebSocketTransport","useProtocolHeartbeats","createWebSocket","paramCount","wsUri","paramStr","wsConnection","binaryType","onopen","onWsOpen","onclose","ev","onWsClose","onmessage","onWsData","onWsError","wasClean","isAnonymousOrWildcard","realtimePresence","newerThan","existing","itemOrderings","existingOrderings","RealtimePresence","syncComplete","PresenceMap","_myMembers","pendingPresence","enter","_enterOrUpdateClient","enterClient","updateClient","leaveClient","waitForSync","returnMembers","waitAttached","waitSync","presenceSet","syncCursor","myMembers","broadcastMessages","connId","startSync","endSync","_synthesizeLeaves","_ensureMyMembersPresent","pendingPresCount","presenceArray","multicaster","_clearMyMembers","failPendingPresence","reenterCb","memberKey","_args","syncInProgress","residualMembers","getClient","existingItem","setInProgress","enc_hex_1","lib_typedarrays_1","isWordArray","isArrayBuffer","uint8ViewToBase64","base64","encodings","byteRemainder","mainLength","base64ToArrayBuffer","binary_string","atob","ascii","arrayBuffer","uint8View","toArrayBuffer","toWordArray","hexDecode","TextEncoder","TextDecoder","bufferCompare","buffer1","buffer2","wordArray1","wordArray2","cmp","words1","words2","crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0__","crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default","crypto_js_build_enc_base64__WEBPACK_IMPORTED_MODULE_1__","crypto_js_build__WEBPACK_IMPORTED_MODULE_2__","crypto_js_build__WEBPACK_IMPORTED_MODULE_2___default","_common_platform__WEBPACK_IMPORTED_MODULE_3__","_common_platform__WEBPACK_IMPORTED_MODULE_3___default","_common_lib_util_logger__WEBPACK_IMPORTED_MODULE_4__","_common_lib_util_logger__WEBPACK_IMPORTED_MODULE_4___default","generateRandom","DEFAULT_ALGORITHM","DEFAULT_KEYLENGTH","DEFAULT_MODE","DEFAULT_BLOCKLENGTH","getRandomWordArray","blockRandomArray","nativeArray","pkcs5Padding","keyLength","CBCCipher","blockLengthWords","cjsAlgorithm","getDefaultParams","validateCipherParams","generateRandomKey","plaintext","plaintextLength","paddedLength","getPaddedLength","getIv","cipherOut","encryptCipher","ciphertextBody","decryptCipher","epilogue","randomBlock","swapEndian","word","Utf16","Utf16BE","utf16Chars","utf16Str","utf16StrLength","Utf16LE","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","sx","x2","x4","x8","RCON","AES","_nRounds","_keyPriorReset","keyWords","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","_doCryptBlock","nRounds","s0","s1","s2","s3","abs","sin","offset_i","M_offset_i","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","FF","GG","HH","II","nBitsTotalH","nBitsTotalL","H_i","HmacMD5","xhrrequest_1","jsonptransport_1","fetchrequest_1","shouldFallback","errorInfo","connectionHost","class_1","checksInProgress","_getHosts","connectivityUrlIsDefault","xhrSupported","disableConnectivityCheck","packed","upUrl","jsonpInternetUpUrl","fetchSupported","uriFromHost","currentFallback","validUntil","hosts","tryAHost","persistOnSuccess","methodsWithoutBody","utils_1","fetchHeaders","Headers","AbortController","URLSearchParams","credentials","currentUrl","origin","streamingSupported","setImmediate","Webstorage","sessionStorage","setItem","removeItem","localStorage","_get","_remove","_set","session","wrappedValue","storageInterface","rawItem","getItem","TransportNames_1","XhrPolling","XhrStreaming","JsonP","TransportNames","jsonptransport","jsonptransport_default","utils","platform_default","comettransport","comettransport_default","xhrrequest","xhrrequest_default","xhrpollingtransport","XHRPollingTransport","xhrstreamingtransport","XHRStreamingTransport","promisifyOptions","Ably","RestPromise","RealtimePromise","classNames","classes","argType","inner","ReflectOwnKeys","ReflectApply","ownKeys","getOwnPropertyNames","NumberIsNaN","emitter","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","that","warning","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","wrapListener","RangeError","setMaxListeners","getMaxListeners","doError","prependListener","prependOnceListener","originalListener","spliceOne","removeAllListeners","rawListeners","eventNames","sections","doInherit","newClass","baseClass","WebmBase","WebmUint","padHex","WebmFloat","WebmContainer","WebmFile","setSource","fixWebmDuration","duration","reader","onloadend","fixDuration","toBlob","ex","updateBySource","updateByData","getValue","setValue","getFloatArrayType","byteArray","floatArray","readByte","readUint","firstByte","ctr","section","idHex","writeUint","draft","writeSections","contentLength","getSectionById","segmentSection","infoSection","timeScaleSection","durationSection","mimeType","Blob","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","for","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","LARGE_ARRAY_SIZE","HASH_UNDEFINED","HOT_COUNT","HOT_SPAN","argsTag","asyncTag","funcTag","genTag","nullTag","objectTag","proxyTag","undefinedTag","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","nodeIsTypedArray","uid","func","transform","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","nativeObjectToString","objectCtorString","reIsNative","allocUnsafe","getPrototype","objectCreate","symToStringTag","getNative","nativeIsBuffer","nativeMax","nativeNow","nativeCreate","baseCreate","proto","Hash","ListCache","MapCache","Stack","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","iteratee","baseTimes","isIndex","assignMergeValue","eq","baseAssignValue","assignValue","objValue","assocIndexOf","getMapData","pairs","fromRight","baseFor","keysFunc","baseGetTag","isOwn","tag","unmasked","getRawTag","objectToString","baseIsArguments","isObjectLike","baseIsNative","isMasked","isFunction","toSource","baseKeysIn","nativeKeysIn","isProto","isPrototype","baseMerge","srcIndex","customizer","srcValue","mergeFunc","safeGet","stacked","newValue","isCommon","isTyped","isArrayLike","copyArray","isDeep","cloneBuffer","Ctor","isPlainObject","isNew","copyObject","keysIn","toPlainObject","initCloneObject","baseMergeDeep","baseRest","setToString","otherArgs","overRest","identity","baseSetToString","lastCalled","stamp","remaining","shortOut","other","isLength","baseUnary","assigner","merge","sources","guard","isIterateeCall","tz","moment","cachedGuess","zones","links","countries","names","guesses","logError","momentVersion","charCodeToInt","charCode","unpackBase60","whole","fractional","out","sign","arrayToInt","mapIndices","indices","unpack","offsets","untils","Infinity","intToUntil","abbrs","population","Zone","packedString","Country","country_name","zone_names","OffsetAt","timeString","toTimeString","abbr","getTimezoneOffset","ZoneScore","zone","offsetScore","abbrScore","findChange","low","high","mid","diff","sortZoneScores","localeCompare","addToGuesses","guessesForUserOffsets","guessesOffset","offsetsLength","filteredGuesses","rebuildGuess","intlName","Intl","DateTimeFormat","resolvedOptions","timeZone","normalizeName","zoneScore","startYear","getFullYear","userOffsets","zoneScores","getZone","scoreOffsetAt","addZone","normalized","addLink","aliases","alias","normal0","normal1","needsOffset","isUnixTimestamp","_tzm","utc","isMoment","_index","zone_name","country_code","offsetNext","offsetPrev","moveAmbiguousForward","moveInvalidForward","mom","utcOffset","offsetAt","dataVersion","_zones","_links","_names","_countries","country_zones","addCountries","zoneExists","didShowError","guess","ignoreCache","zonesForCountry","country","with_offset","old","abbrWrap","_z","resetZoneWrap","defaultZone","updateOffset","keepTime","_isUTC","zoneName","zoneAbbr","setDefault","momentProperties","defineLocale","months","monthsShort","weekdays","weekdaysShort","weekdaysMin","meridiemParse","isPM","meridiem","hours","minutes","isLower","longDateFormat","LT","LTS","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","mm","hh","dd","MM","yy","dayOfMonthOrdinalParse","ordinal","week","dow","doy","pluralForm","plurals","pluralize","withoutSuffix","isFuture","weekdaysParseExact","hour","minute","postformat","symbolMap","preparse","numberMap","suffixes","plural","forms","relativeTimeWithPlural","standalone","isFormat","day","period","ww","lastDigit","last2Digits","meridiemHour","monthsShortRegex","monthsParseExact","relativeTimeWithMutation","mutation","specialMutationForYears","lastNumber","softMutation","mutationTable","monthsParse","monthsRegex","monthsStrictRegex","monthsShortStrictRegex","fullWeekdaysParse","shortWeekdaysParse","minWeekdaysParse","weekdaysParse","longMonthsParse","shortMonthsParse","translate","ll","lll","llll","output","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","month","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","invalidDate","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eras","since","narrow","until","eraYearOrdinalRegex","eraYearOrdinalParse","$0","$1","$2","isUpper","processFutureTime","eifelerRegelAppliesToNumber","processPastTime","units","translateSeconds","translateSingular","special","relativeTimeWithSingular","relativeSeconds","translator","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","separator","days","numbersNouns","translateFuture","translatePast","numberNoun","numberAsNoun","hundred","ten","one","hm","weekdaysCaseReplace","nominative","accusative","genitive","processHoursFunction","hookCallback","hooks","setHookCallback","hasOwnProp","isObjectEmpty","isUndefined","isNumber","isDate","arrLen","createUTC","locale","strict","createLocalOrUTC","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","fun","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_l","_offset","_locale","Moment","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","_relativeTime","pastFuture","addUnitAlias","shorthand","lowerCase","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","isLeapYear","year","absFloor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","set$1","date","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","getSetYear","getIsLeapYear","createDate","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","fwd","getUTCDay","dayOfYearFromWeeks","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","parseIsoWeekday","shiftWeekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","seconds","kInput","_isPm","_meridiem","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","globalLocale","baseConfig","locales","localeFamilies","commonPrefix","minl","normalizeLocale","chooseLocale","loadLocale","isLocaleNameSane","oldLocale","_abbr","getSetGlobalLocale","getLocale","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","defaults","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","createLocal","gg","ISO_8601","RFC_2822","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","millisecond","createFromConfig","prepareConfig","configFromInput","isUTC","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","quarter","weeks","isoWeek","milliseconds","_milliseconds","_days","_bubble","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offsetFromString","chunkOffset","matcher","cloneWithOffset","setTime","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","isAdding","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","prefix","datetime","suffix","inputString","defaultFormatUtc","defaultFormat","humanize","fromNow","toNow","newLocaleData","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","isValid$2","parsingFlags","invalidAt","creationData","localeEras","_eras","localeErasParse","eraName","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","dates","isDSTShifted","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","valueOf$1","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","limit","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","toFixed","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","shouldComponentUpdate","isReactComponent","__f","isPureReactComponent","only","__c","__e","__k","__H","__P","__v","__d","__u","__b","__a","__R","__h","__O","forceUpdate","componentWillUnmount","fallback","children","revealOrder","getChildContext","childNodes","containerInfo","componentDidUpdate","componentDidMount","textContent","cancelBubble","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","en","class","multiple","defaultValue","className","ReactCurrentDispatcher","readContext","__n","yn","bn","Cn","useState","useId","useReducer","useEffect","useLayoutEffect","useInsertionEffect","useTransition","useDeferredValue","useSyncExternalStore","startTransition","useRef","useImperativeHandle","useMemo","useCallback","useContext","useDebugValue","Children","hydrate","unmountComponentAtNode","createPortal","createContext","createFactory","cloneElement","createRef","isValidElement","findDOMNode","Component","PureComponent","memo","forwardRef","flushSync","unstable_batchedUpdates","SuspenseList","lazy","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","startsWith","__s","componentWillMount","__html","vnode","__r","debounceRendering","ownerSVGElement","nextSibling","setProperty","__E","sub","_sb","componentWillReceiveProps","componentWillUpdate","getSnapshotBeforeUpdate","diffed","localName","createTextNode","createElementNS","dangerouslySetInnerHTML","unmount","Provider","componentDidCatch","__V","__N","__m","requestAnimationFrame","cancelAnimationFrame","__source","__self","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","bool","symbol","arrayOf","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","getModuleId","singular","showCount","zero","_extends","_createClass","_react","_react2","_interopRequireDefault","_propTypes2","_classnames2","cleanups","comment","defs","fill","sketchMSShapeGroup","sketchMSPage","sketchMSLayerGroup","SVGInline","_Component","_classCallCheck","_possibleConstructorReturn","subClass","superClass","_inherits","_props","svg","accessibilityLabel","accessibilityDesc","classSuffix","cleanupExceptions","componentProps","_objectWithoutProperties","_props2","cleanup","svgClasses","svgStr","cleanupSvg","_pos","idCount","acc","_toArray","_arrayWithHoles","_iterableToArray","_nonIterableRest","dateParser","parsed","_parts$map2","correctedParts","defaultFormatter","_unit","_excluded","enumerableOnly","symbols","sym","_objectSpread","_defineProperty","hint","prim","toPrimitive","_toPrimitive","_toPropertyKey","_slicedToArray","_x","_arr","_iterableToArrayLimit","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","DAY","TimeAgo","_ref","_ref$formatter","_ref$component","_ref$live","live","_ref$minPeriod","minPeriod","_ref$maxPeriod","maxPeriod","_ref$now","passDownProps","_useState2","timeNow","setTimeNow","timeoutId","unboundPeriod","tick","Komponent","_ref3","passDownTitle","spreadProps","dateTime","nextFormatter","strings","_value","epochMilliseconds","_nextFormmater","normalize","normalizeFn","numbers","dateString","prefixAgo","prefixFromNow","stringFn","_stringFn","suffixAgo","suffixFromNow","wordSeparator","nodeInterop","_getRequireWildcardCache","newObj","hasPropertyDescriptor","_interopRequireWildcard","cacheBabelInterop","cacheNodeInterop","normalizeNumber","digit","distanceMillis","stringOrFn","rnds8","rng","byteToHex","bth","rnds","ownKeys$2","_objectSpread2","_defineProperties","_getPrototypeOf","_setPrototypeOf","_assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","Boolean","_isNativeReflectConstruct","Super","NewTarget","commonjsGlobal","check","global$a","objectGetOwnPropertyDescriptor","fails$9","descriptors","functionBindNative","NATIVE_BIND$2","call$4","functionCall","objectPropertyIsEnumerable","$propertyIsEnumerable","getOwnPropertyDescriptor$1","NASHORN_BUG","createPropertyDescriptor$2","bitmap","NATIVE_BIND$1","FunctionPrototype$1","call$3","uncurryThisWithBind","functionUncurryThisRaw","uncurryThisRaw$1","toString$1","stringSlice","classofRaw$2","classofRaw$1","uncurryThisRaw","functionUncurryThis","fails$6","classof$3","$Object$3","indexedObject","isNullOrUndefined$2","isNullOrUndefined$1","$TypeError$5","requireObjectCoercible$2","IndexedObject$1","requireObjectCoercible$1","toIndexedObject$4","documentAll$2","documentAll_1","IS_HTMLDDA","documentAll$1","isCallable$c","argument","isCallable$b","documentAll","isObject$6","global$9","isCallable$a","aFunction","getBuiltIn$5","namespace","objectIsPrototypeOf","isPrototypeOf","global$8","Deno","versions","v8","V8_VERSION","fails$5","symbolConstructorDetection","useSymbolAsUid","getBuiltIn$3","isCallable$9","$Object$2","isSymbol$2","$String$1","isCallable$8","tryToString","$TypeError$4","aCallable$2","aCallable$1","isNullOrUndefined","call$2","isCallable$7","isObject$5","$TypeError$3","shared$3","global$7","defineProperty$2","defineGlobalProperty$3","defineGlobalProperty$2","SHARED","sharedStore","store$2","copyright","license","requireObjectCoercible","$Object$1","toObject$2","toObject$1","hasOwnProperty_1","uncurryThis$6","postfix","uid$2","global$5","shared$2","hasOwn$6","uid$1","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","Symbol$1","symbolFor","createWellKnownSymbol","withoutSetter","wellKnownSymbol$5","description","call$1","isObject$4","isSymbol$1","getMethod","ordinaryToPrimitive","pref","$TypeError$2","TO_PRIMITIVE","exoticToPrim","isSymbol","toPropertyKey$2","isObject$3","document$1","EXISTS$1","documentCreateElement$1","ie8DomDefine","DESCRIPTORS$6","propertyIsEnumerableModule","createPropertyDescriptor$1","toIndexedObject$3","toPropertyKey$1","hasOwn$5","IE8_DOM_DEFINE$1","$getOwnPropertyDescriptor$1","objectDefineProperty","v8PrototypeDefineBug","isObject$2","$String","$TypeError$1","anObject$4","DESCRIPTORS$4","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG$1","anObject$3","toPropertyKey","$TypeError","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","CONFIGURABLE$1","WRITABLE","Attributes","definePropertyModule$3","createPropertyDescriptor","createNonEnumerableProperty$2","makeBuiltIn$2","DESCRIPTORS$2","hasOwn$4","FunctionPrototype","getDescriptor","EXISTS","functionName","PROPER","CONFIGURABLE","isCallable$6","store$1","functionToString","inspectSource","inspectSource$2","isCallable$5","WeakMap$1","weakMapBasicDetection","shared$1","sharedKey$2","hiddenKeys$4","NATIVE_WEAK_MAP","global$2","isObject$1","createNonEnumerableProperty$1","hasOwn$3","shared","sharedKey$1","hiddenKeys$3","OBJECT_ALREADY_INITIALIZED","TypeError$1","facade","STATE","internalState","enforce","getterFor","TYPE","fails$2","isCallable$4","hasOwn$2","DESCRIPTORS$1","CONFIGURABLE_FUNCTION_NAME","inspectSource$1","enforceInternalState","getInternalState","defineProperty$1","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn$1","isCallable$3","definePropertyModule$2","makeBuiltIn","defineGlobalProperty$1","objectGetOwnPropertyNames","trunc","toIntegerOrInfinity$2","toIntegerOrInfinity$1","min$1","toIntegerOrInfinity","toLength","lengthOfArrayLike$2","toIndexedObject$2","toAbsoluteIndex","integer","lengthOfArrayLike$1","createMethod$1","IS_INCLUDES","$this","arrayIncludes","hasOwn$1","toIndexedObject$1","hiddenKeys$2","push$1","objectKeysInternal","enumBugKeys$3","internalObjectKeys$1","hiddenKeys$1","objectGetOwnPropertySymbols","getBuiltIn$2","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","anObject$2","ownKeys$1","getOwnPropertyDescriptorModule","definePropertyModule$1","fails$1","isCallable$2","isForced$1","feature","detection","POLYFILL","NATIVE","isForced_1","global$1","createNonEnumerableProperty","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","defineGlobalProperty","copyConstructorProperties","exceptions","isForced","aCallable","NATIVE_BIND","bind$1","classof$2","isArray$1","TO_STRING_TAG_SUPPORT","isCallable$1","classofRaw","TO_STRING_TAG","$Object","CORRECT_ARGUMENTS","uncurryThis$1","fails","isCallable","classof","tryGet","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","isConstructor$1","called","isConstructor","SPECIES","$Array","arraySpeciesConstructor","originalArray","IndexedObject","lengthOfArrayLike","arraySpeciesCreate","createMethod","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","arrayIteration","findIndex","filterReject","objectDefineProperties","internalObjectKeys","enumBugKeys$1","objectKeys$1","DESCRIPTORS","V8_PROTOTYPE_DEFINE_BUG","definePropertyModule","anObject$1","toIndexedObject","objectKeys","Properties","activeXDocument","html$1","anObject","definePropertiesModule","enumBugKeys","hiddenKeys","documentCreateElement","PROTOTYPE","SCRIPT","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","domain","wellKnownSymbol","UNSCOPABLES","ArrayPrototype","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","$find","addToUnscopables","FIND","SKIPS_HOLES","CONSTANT","HIDE","REBUILD","SHOW","dispatchGlobalEvent","checkStatus","dataEventOff","isCapture","currentTarget","currentItem","hideTooltip","setUntargetItems","getTargetArray","showTooltip","customListeners","bodyListener","forId","lastTarget","_options$respectEffec","respectEffect","_options$customEvent","customEvent","tip","isCustomEvent","isTargetBelongsToTooltip","getEffect","proxy","makeProxy","findCustomEvents","dataAttribute","getBody","getMutationObserverClass","MutationObserver","WebKitMutationObserver","MozMutationObserver","getPosition","place","desiredPlace","effect","_getDimensions","getDimensions","tipWidth","tipHeight","_getDimensions2","targetWidth","targetHeight","_getCurrentOffset","getCurrentOffset","mouseX","mouseY","defaultOffset","getDefaultPosition","_calculateOffset","extraOffsetX","extraOffsetY","windowWidth","innerWidth","windowHeight","innerHeight","_getParent","getParent","parentTop","parentLeft","getTipOffsetLeft","offsetX","getTipOffsetTop","offsetY","outsideRight","getTipOffsetRight","outsideBottom","getTipOffsetBottom","outside","outsideLeft","outsideTop","inside","placeIsInside","top","left","newPlace","chosen","choose","isNewState","_node$getBoundingClie","getBoundingClientRect","boundingClientRect","targetTop","targetLeft","_getDimensions3","clientX","clientY","disToMouse","currentParent","computedStyle","getComputedStyle","getPropertyValue","TipContent","getContent","regexp","parseAria","ariaObj","nodeListToArray","nodeList","defaultColors","background","arrow","_class","_class2","DEFAULT_PADDING","DEFAULT_RADIUS","generateTooltipStyle","uuid","customColors","hasBorder","radius","textColor","borderColor","arrowColor","arrowRadius","tooltipRadius","generateStyle","getDefaultPopupColors","getPopupColors","ReactTooltip","hide","rebuild","globalRebuild","mount","unbindListener","bindListener","globalShow","hasTarget","globalHide","staticMethods","bindWindowEvents","resizeHide","onWindowResize","unbindWindowEvents","windowListener","ele","customBindListener","_this$state","eventOff","dataEvent","customListener","customUnbindListener","_this$state2","isBodyMode","bodyMode","bindBodyListener","possibleCustomEvents","possibleCustomEventsOff","customEvents","customEventsOff","unbindBodyListener","bodyModeListeners","_event","mouseover","mousemove","updateTooltip","mouseout","targetEventOff","_event2","_event3","_React$Component","borderClass","customRadius","extraClass","delayHide","delayShow","currentEvent","ariaProps","isEmptyTip","originTooltip","isMultiline","delayShowLoop","delayHideLoop","delayReshow","intervalUpdateContent","methodArray","_this$props","insecure","disableInternalStyle","injectStyles","clearTimer","removeScrollListener","tooltipRef","domRoot","escaped","shadowRoot","_this$props2","globalEventOff","unbindBasicListener","isCaptureMode","bindRemovalTracker","_this$props3","unbindRemovalTracker","_this$props4","placeholder","isGlobalCall","_this$props5","switchToSolid","FocusEvent","scrollHide","overridePosition","reshowDelay","delayUpdate","updateState","addScrollListener","_getContent","updatePosition","_this5","_this$props6","afterShow","disableProp","getTooltipContent","eventTarget","mouseOnToolTip","delayTime","isInvisible","_this6","isScroll","_this$props7","afterHide","resetState","isVisible","listenForTooltipExit","removeListenerForTooltipExit","hideTooltipOnScroll","callbackAfter","_this7","_this8","color","_this9","_this$state3","tooltipClass","hasCustomColors","clickable","Wrapper","wrapper","supportedWrappers","wrapperClassName","htmlContent","_ref2","nextProps","prevState","newAriaProps","observer","mutations","m1","m2","removedNodes","observe","childList","subtree","removalTracker","_wrapNativeSuper","Class","_cache","_construct","Parent","ReactVideoRecorderDeviceUnavailableError","ReactVideoRecorderMediaRecorderUnavailableError","ReactVideoRecorderDataAvailableTimeoutError","ReactVideoRecorderRecordedBlobsUnavailableError","ReactVideoRecorderDataIssueError","_Error","_Error2","_super2","_Error3","_super3","dataAvailableTimeout","_Error4","_super4","_Error5","_super5","Button","withConfig","componentId","_styledComponents","_default","_propTypes","Root","div","Countdown","nextNumber","updateNumber","countdownTime","_reactSvgInline","SVGWrapper","LoadingMessage","RecWrapper","ButtonBorder","Instructions","InstuctionsHighlight","RecordButton","_button","_recordButton","_stopButton","_timer","_countdown","ActionsWrapper","shouldUseVideoInput","isVideoInputSupported","isInlineRecordingSupported","thereWasAnError","isRecording","isCameraOn","streamIsReady","isConnecting","isRunningCountdown","isReplayingVideo","timeLimit","useVideoInput","showReplayControls","replayVideoAutoplayAndLoopOff","onTurnOnCamera","onOpenVideoInput","onTurnOffCamera","onStartRecording","onStopRecording","onStopReplaying","onPauseRecording","onResumeRecording","onConfirm","onClick","Border","Text","RecIcon","Timer","nextSeconds","nextState","human","defaultText","captureThumb","videoTag","canvas","videoWidth","videoHeight","getContext","drawImage","thumbnail","videoBlob","preload","defaultMuted","playsInline","autoplay","resolved","handleLoadedData","revokeObjectURL","handleVideoTag","pause","currentTime","ontimeupdate","createObjectURL","_videoRecorder","_lodash","_fixWebmDuration","_unsupportedView","_errorView","_disconnectedView","_loadingView","_switchCameraView","_renderActions","_getVideoInfo","_customErrors","MIME_TYPES","CameraView","Video","isFlipped","css","VideoRecorder","isReplayVideoMuted","currentDeviceId","availableDeviceIds","videoDevices","handleError","fallbackContraints","currentConstraints","constraints","handleSuccess","onSwitchCamera","getTracks","maxIndex","turnOnCamera","inactivityTimer","isComponentUnmounted","onCameraOn","onError","timeLimitTimeout","turnOffCamera","MediaRecorder","isTypeSupported","mediaRecorder","handleDataIssue","dataCheckInterval","blobCount","recordedBlobs","getMimeType","replayVideo","playPromise","play","loop","isDataHealthOK","lastRecordingTimestamp","recordingDuration","getTotalEllapsedTimeInMs","startRecording","cameraVideo","handleStop","handleDataAvailable","handleStopRecording","endedAt","thumbnailBlob","ondataavailable","fixVideoMetadata","fixedVideoBlob","videoUrl","onRecordingComplete","rawVideoBlob","_Blob$prototype","_Blob$prototype$array","Response","dataTransfer","extension","videoInput","handleVideoSelected","isOnInitially","handleOpenVideoInput","paused","capture","prevProps","tryToUnmuteReplayVideo","srcObject","cameraViewClassName","videoControlsList","disablePictureInPicture","renderDisconnectedView","renderVideoInputView","renderUnsupportedView","renderErrorView","renderLoadingView","videoClassName","onChange","autoPlay","controls","handleReplayVideoClick","onDurationChange","handleDurationChange","controlsList","switchCameraControl","handleSwitchCamera","renderActions","renderCameraView","handleStartRecording","handlePauseRecording","handleResumeRecording","handleStopReplaying","React","ReactDOM","ReactDOMServer","detectEvents","constructorFromGlobal","constructorFromRequireContextWithGlobalFallback","_require","supportsHydration","reactHydrate","createReactRootLike","ReactRailsUJS","CLASS_NAME_ATTR","PROPS_ATTR","RENDER_ATTR","CACHE_ID_ATTR","TURBOLINKS_PERMANENT_ATTR","components","findDOMNodes","searchSelector","parent","classNameAttr","getConstructor","requireContext","serverRender","renderFunction","componentClass","mountComponents","ujs","nodes","propsJson","cacheId","turbolinksPermanent","unmountComponents","nativeEvents","pjaxEvents","turbolinksEvents","turbolinksClassicDeprecatedEvents","turbolinksClassicEvents","handleEvent","Turbolinks","EVENTS","teardown","removeEvent","attachEvent","detachEvent","setup","pjax","handleMount","handleUnmount","CHANGE","BEFORE_UNLOAD","pagesCached","topLevel","eval","reqctx","fromGlobal","fromRequireContext","fromCtx","firstErr","secondErr","hydrateRoot","createRoot","legacyReactRootLike","NodeType","ELEMENT_NODE","commentre","lineno","column","lines","lastIndexOf","line","Position","whitespace","errorsList","silent","rules","comments","atrule","rule","declaration","propMatch","declarations","decl","decls","keyframe","vals","rulesList","atimport","_compileAtrule","atcharset","atnamespace","frame","frames","keyframes","atkeyframes","media","atmedia","atcustommedia","supports","atsupports","doc","atdocument","sel","selectors","atpage","athost","atfontface","addParent","stylesheet","parsingErrors","isNode","childParent","tagMap","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","clippath","feblend","fecolormatrix","fecomponenttransfer","fecomposite","feconvolvematrix","fediffuselighting","fedisplacementmap","fedistantlight","fedropshadow","feflood","fefunca","fefuncb","fefuncg","fefuncr","fegaussianblur","feimage","femerge","femergenode","femorphology","feoffset","fepointlight","fespecularlighting","fespotlight","fetile","feturbulence","foreignobject","glyphref","lineargradient","radialgradient","HOVER_SELECTOR","HOVER_SELECTOR_GLOBAL","addHoverClass","cachedStyle","stylesWithHoverClass","ast","selectorMatcher","newSelector","createCache","buildNode","hackCss","Document","implementation","createDocument","DocumentType","createDocumentType","publicId","systemId","node_1","_cssText","getTagName","isSVG","_loop_1","image_1","ctx","image","currentSrc","rr_mediaCurrentTime","isTextarea","isRemoteOrDynamicCss","child","TEXT_NODE","setAttributeNS","rel","endsWith","srcset","rr_dataURL","isShadowHost","attachShadow","isStyle","CDATA","createCDATASection","Comment","createComment","buildNodeWithSN","skipChild","afterAppend","rootId","assert","compatMode","xmlns","__sn","childN","childNode","isShadow","onVisit","idNodeMap","visit","visitedNode","scrollLeft","scrollTop","handleScroll","EventType","IncrementalSource","MouseInteractions","CanvasContext","MediaInteractions","ReplayerEvents","polyfill","documentElement","__forceSmoothScrollPolyfill__","HTMLElement","SCROLL_TIME","scroll","scrollTo","scrollBy","elementScroll","scrollElement","scrollIntoView","performance","ROUNDING_TOLERANCE","shouldBailOut","smoothScroll","scrollX","pageXOffset","scrollY","pageYOffset","SyntaxError","behavior","scrollableParent","isScrollable","findScrollableParent","parentRects","clientRects","hasScrollableSpace","axis","clientHeight","scrollHeight","clientWidth","scrollWidth","canOverflow","overflowValue","isScrollableY","isScrollableX","currentX","currentY","elapsed","startTime","cos","PI","startX","startY","scrollable","speed","timeOffset","raf","addAction","findActionIndex","addActions","lastTimestamp","delay","doAction","liveMode","setSpeed","toggleLiveMode","addDelay","baselineTime","IncrementalSnapshot","MouseMove","firstOffset","positions","firstTimestamp","NotStarted","Running","Stopped","assignment","changed","initial","_options","initialState","transition","cond","exit","_machine","createPlayerService","getCastFn","applyEventsSynchronously","playerMachine","playing","CAST_EVENT","END","ADD_EVENT","TO_LIVE","castEvent","lastPlayedEvent","recordTimeOffset","e_1","e_2","events_1","events_1_1","e_1_1","neededEvents","Meta","discardPriorSnapshots","lastPlayedTimestamp","PlayBack","syncEvents","event_3","castFn_1","neededEvents_1","neededEvents_1_1","e_2_1","Flush","resetLastPlayedEvent","startLive","addEvent","machineEvent","event_4","insertionIndex","castFn_2","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","getId","getNode","removeNodeFromMap","TreeIndex","parentTreeNode","indexes","parentId","treeNode","texts","tree","mirror","deepRemoveFromMirror","removeIdSet","deepRemoveFromTreeIndex","_treeNode","_parentTreeNode","removeNodeMutations","textMutations","attributeMutations","scrollMap","inputMap","flush","batchMutationData","Mutation","removes","adds","walk","removed","_g","mutationData","idRemoved","queueToResolveTrees","e_3","queueNodeMap","putIntoMap","nodeInTree","queueNodeTrees","queue_1","queue_1_1","nextId","nextInTree","parentInTree","e_3_1","iterateResolveTree","isIframeINode","getBaseDimension","rootIframe","frameElement","ownerDocument","defaultView","relativeScale","absoluteScale","frameDimension","frameBaseDimension","hasShadowRoot","StyleRuleType","blockClass","getNestedRule","cssRules","getPositionsAndIndex","nestedIndex","applyVirtualStyleRulesToNode","storedRules","styleNode","sheet","Insert","insertRule","Remove","deleteRule","Snapshot","cssTexts","existingRules","existingRulesReversed","lastMatch_1","restoreSnapshotOfStyleRulesToNode","SetProperty","RemoveProperty","removeProperty","chars","lookup","encoded1","encoded2","encoded3","encoded4","bufferLength","arraybuffer","webGLVarMap","variableListFor","contextMap","WebGLVariableConstructorsNames","deserializeArg","imageMap","rr_type","Image","WebGL","variables","saveToWebGLVarMap","commands","WebGL2","webgl","REPLAY_CONSOLE_PREFIX","defaultMouseTailConfig","lineCap","lineWidth","strokeStyle","indicatesTouchDevice","TouchMove","MouseInteraction","TouchStart","Replayer","mouseTail","tailPositions","legacy_missingNodeRetryMap","firstFullSnapshot","newDocumentQueue","mousePos","touchActive","defaultConfig","maxSpeed","loadTimeout","skipInactive","showWarning","showDebug","insertStyleRules","triggerFocus","UNSAFE_replayCanvas","pauseAnimation","handleResize","Resize","setupDom","treeIndex","fragmentParentMap","elementStateMap","virtualStyleRulesMap","e_4","frag","restoreRealParent","applyText","_h","_j","restoreNodeSheet","_k","applyScroll","_m","applyInput","e_4_1","service","unpackFn","a1","a2","StateChange","player","speedService","normalSpeed","normal","FAST_FORWARD","SET_SPEED","skipping","BACK_TO_NORMAL","recordSpeed","restoreSpeed","firstMeta","firstFullsnapshot","FullSnapshot","width_1","height_1","rebuildFullSnapshot","initialOffset","mouse","classList","setConfig","backToNormal","getMetaData","firstEvent","lastEvent","endTime","totalTime","getCurrentTime","getTimeOffset","getMirror","contentDocument","Start","Pause","Resume","rawEvent","enableInteract","pointerEvents","disableInteract","resetCache","win","NodeList","DOMTokenList","Node","contains","dimension","e_5","e_5_1","e_6","DomContentLoaded","Load","Custom","Plugin","MediaInteraction","castFn","e_6_1","moveAndHover","debugData","e_7","applyIncremental","nextUserInteractionEvent","isUserInteraction","e_7_1","skipTime","SkipStart","e_8","replayer","e_8_1","last_index","finish_1","Finish","EventCast","e_9","collected","builtNode","collectIframeAndAttachDocument","mutationInQueue","this_1","attachDocumentToIframe","collected_1","collected_1_1","e_9_1","FullsnapshotRebuilded","waitForStylesheetLoad","preloadAllImages","styleEl","injectStylesRules","iframeEl","e_10","parent_1","realParent","_loop_2","this_2","collected_2","collected_2_1","e_10_1","unloadSheets_1","beforeLoadState_1","stateHandler_1","unsubscribe_1","LoadStylesheetEnd","LoadStylesheetStart","hasImageArg","e_11","args_1","args_1_1","e_11_1","getImageArgs","e_12","images","args_2","args_2_1","e_12_1","e_13","stateHandler","_loop_3","CanvasMutation","preloadImages","this_3","e_13_1","imgd","createImageData","putImageData","applyMutation","Drag","lastPosition","debugNodeNotFound","Blur","blur","preventScroll","Click","TouchEnd","offsetWidth","TouchCancel","Scroll","ViewportResize","Input","mediaEl","StyleSheetRule","rules_1","parent_2","usingVirtualParent_1","styleSheet_1","StyleDeclaration","parent_3","styleSheet","warnCanvasMutationFailed","Font","fontFace","FontFace","family","fontSource","fonts","useVirtualParent","e_14","warnNodeNotFound","realTarget","DOMException","legacy_missingNodeMap","appendNode","e_15","parentInDocument","hasIframeChild","virtualParent","createDocumentFragment","storeState","previousId","nextNotInDOM","targetDoc","e_15_1","mutationInQueue_1","legacy_resolveMissingNode","resolveTrees","resolveTrees_1","resolveTrees_1_1","debug","e_14_1","attributeName","styleValues","targetEl","svp","svs","isChecked","targetMutation","previousInMap","nextInMap","_y","drawMouseTail","hoverElements","draw","clearRect","beginPath","moveTo","lineTo","stroke","hoveredEl","currentEl","SkipEnd","restoreState","e_16","storeCSSRules","e_16_1","e_17","storedState","e_17_1","nodeName","objA","objB","compareContext","keysA","keysB","bHasOwnProperty","valueA","valueB","ca","da","ha","ia","aa","ba","la","na","oa","use","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","reactPropsRegex","freeze","styledComponentId","env","REACT_APP_SC_ATTR","SC_ATTR","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","groupSizes","indexOfGroup","insertRules","clearGroup","getGroup","getRule","registerName","getTag","styleSheets","ownerNode","isServer","useCSSOMInjection","server","registerId","reconstructWithOptions","allocateGSInstance","hasNameForId","clearNames","clearRules","clearTag","staticRulesId","isStatic","baseHash","baseStyle","generateAndInjectStyles","Ne","ue","de","he","pe","fe","me","ye","stylisPlugins","disableCSSOMInjection","disableVendorPrefixes","ve","inject","getName","Se","Ee","be","isCss","Ae","Ce","Re","De","je","Te","xe","ke","Ve","Be","ze","Me","Ge","Le","Fe","Ye","qe","attrs","parentComponentId","shouldForwardProp","componentStyle","foldedComponentIds","$as","withComponent","_foldedDefaultProps","He","$e","createStyles","removeStyles","renderStyles","We","Ue","Je","_emitSheetCSS","getStyleTags","sealed","getStyleElement","seal","collectStyles","interleaveWithNodeStream","Xe","Ze","Ke","StyleSheet","masterSheet","react_1","useMounted","mounted","useRefState","blockIfUnmounted","reactState","setReactState","HTTPMethod","CachePolicies","condition","argIndex_1","Device","isBodyObject","pullOutRequestInit","Browser","Server","Native","canUseDOM","tryGetData","defaultData","tryRetry","error_1","responseFields","responseMethods","responseKeys","toResponseObject","serializeResponse","headersAsObject","useDeepCallback","deps","sleep","isPositiveNumber","makeError","addSlash","graphql","useFetchArgsDefaults","customOptions","cacheLife","cachePolicy","CACHE_FIRST","interceptors","onAbort","onNewData","currData","newData","onTimeout","perPage","retries","retryOn","suspense","loading","requestInit","Accept","dependencies","useFetchArgs","urlOrPathOrOptionsOrOverwriteGlobalOptions","optionsOrOverwriteGlobalOrDeps","maybeHost","maybePath","overwriteGlobalOptions","localOptions","globalOptions","finalOptions","final","GET","doFetchArgs","initialOptions","routeOrBody","bodyAs2ndParam","requestInterceptor","route","responseID","shouldAddContentType","POST","PUT","PATCH","signal","isCached","cached","cacheName","getCache","responseIDs","isExpired","expiration","expired","inMemoryStorage","responseIDs_1","NETWORK_ONLY","NO_CACHE","isNative","timedout","attempt","hasMore","suspenseStatus","suspender","setLoading","makeFetch","doFetch","theController","newRes","err_1","retry","del","DELETE","OPTIONS","HEAD","trace","TRACE","mutate","methodLower","SSRObject","canUseWorkers","Worker","canUseEventListeners","canUseViewport","toArrayObject","useSSRObject","weAreServer","useSSR","ActivePeople","setAbly","_useState4","siteChannel","setSiteChannel","ablyApiKey","operator","apiKey","_useState6","activeSessions","setActiveSessions","userType","people_ids","personId","document_visible","last_active_at","userId","handleInitReplayer","handleLiveReplayerComponentCleanup","_jsx","ScreenView","sessionId","callRoomId","siteId","siteName","dailyUrl","disableReplay","disableFetch","hasEvents","onInitReplayer","onCleanup","calendarUrl","buttonColor","_jsxs","viewBox","vectorEffect","strokeLinecap","strokeLinejoin","expireDelay","BrowserIcon","Edge","iconSrc","callFrameRef","callAttemptRef","createCallAttemptPath","startVideoCall","newCallFrame","DailyIframe","trackCallAttemptUpdate","left_at","handleParticipantJoined","handleParticipantLeft","trackCallAttempt","joined_at","call_attempt","updateCallAttemptPath","sessionChannel","auto_dismissed_at","seen_at","snoozed_at","roomId","operatorName","avatarUrl","ChatCommandButton","mask","DeviceIcon","setTimer","resetTimer","newTimer","onExpire","IndiciaHeader","indicia","avatar_url","location_to_s","user_agent","OSIcon","device_icons","DeviceTypeIcon","UTMIcon","utm_params","IndiciaPanel","activePanel","role","user_data_html","onButtonClick","active","deviceType","RECENTLY_ACTIVE_THRESHOLD","LiveReplayer","activeSessionsRef","updatePageTitle","user_info","previousSessions","_toConsumableArray","handleSessionExpire","renderedSessionsCount","handleComponentClick","getElementsByClassName","PreRenderPlaceholder","Expire","LiveReplayerComponent","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","initReplayer","activePerson","setActivePerson","setEvents","_useState8","setIndicia","_useFetch","useFetch","_useState10","initialWidth","setInitialWidth","_useState12","initialHeight","setInitialHeight","_useState14","iFrameSize","setIframeSize","_useState16","documentVisible","setDocumentVisible","_useState18","setActivePanel","_useState20","setSessionChannel","_useState22","setHasEvents","refTimestamp","screenContainerEl","replayerWrapper","scaleValue","widthRatio","heightRatio","screenRatio","scaleIframeSize","newReplayer","getIndica","newIndicia","rendered_at","first_seen_at","getNewEvents","newEvents","newSize","visible","_ref4","_x2","onToggleButtonClick","panel","closest","Spinner","visits_count","last_messaged_at_to_s","last_responded_at_to_s","LastActive","DocVisible","showHeader","showFooter","cx","cy","videoRef","callObject","setCallObject","meetingState","setMeetingState","setVideoTrack","live_stream_room_url","enablePip","requestPictureInPicture","joinElement","leaveElement","_Fragment","pipIcon","maskSize","MediaStream","pictureInPictureElement","exitPictureInPicture","icon","Apple","operatorChatMacros","requires","calendar_url","OperatorChatMacros","macroListOpen","setMacroListOpen","selectMacro","macro","_node$shadowRoot","messageBox","macroList","availableMacros","macroAvailable","bolt","registerOperatorChatMacros","_node$shadowRoot2","_ref2$detail","commandsContainer","container","Pluralize","messageElement","getElementById","Glass","openPrompt","INITIAL_HEIGHT","wholeText","$$","on_mount","on_destroy","fragment","before_update","dirty","after_update","_e$$$","not_equal","bound","on_disconnect","skip_bound","intro","customElement","$destroy","$on","$set","$$set","Log","MouseUp","MouseDown","ContextMenu","DblClick","TouchMove_Departed","Play","Seeked","VolumeChange","Ie","Pe","Oe","et","tt","nt","rt","ot","st","lt","ct","ut","dt","ft","pt","ht","mt","vt","yt","gt","bt","wt","xt","St","Et","Tt","Mt","kt","Ct","It","Nt","_t","Dt","Rt","Lt","Ft","fullscreen","webkitIsFullScreen","mozFullScreen","msFullscreenElement","Ot","jt","Bt","super","Ht","showController","speedOption","_t$speed","_t$tags","tags","toggle","goto","toggleSkipInactive","triggerUpdateMeta","Kt","Zt","_n2$width","_n3$height","_n4$events","_n5$skipInactive","_n6$autoPlay","_n7$speedOption","_n8$speed","_n9$showController","_n10$tags","mozExitFullscreen","msExitFullscreen","mozRequestFullScreen","msRequestFullscreen","offsetHeight","triggerResize","toggleFullscreen","getReplayer","rrwebPlayer","VideoRecorderUpload","avatarFile","lastModified","DataTransfer","SessionStackMostRecentSession","updateSession","mostRecent","sess","SessionStackSessions","last_active","isLive","oldSessionNotice","SessionStackPlayerEmbed","replayToken","requestParams","sandbox","onLoad","SessionStackScreen","userIdentity","SessionStackScreenHeader","websiteId","client_start","SESSIONS_LIMIT","filteredPeopleIds","setFilteredPeopleIds","originalTitle","updateSessions","newSessions","updateFilteredPeopleIds","newPeopleIds","handleScreenClick","renderedScreens","sessions","sessionsToRender","trimSessions","segment","segmentId","SessionStackVisitLength","formatterFn","SessionStackVisitStarted","buildFormatter","POLL_INTERVAL_MS","_HTMLElement","_session$userIdentity","startPoll","sessionsData","updateExistingSessions","removeDeletedSessions","addNewSessions","removeShortSessions","removeStaleSessions","composed","_loop","_Object$entries","_i2","personIdFromSession","dispatchPersonActiveStatusEvent","dispatchSessionsChanged","_ret","_loop2","_Object$entries2","_i3","_i4","_Object$entries3","_ref6","staleDate","person_id","_i5","_Object$entries4","_ref8","encodedAuthToken","Authorization","sessionStackConfig","defineCustomElement","customElements","__webpack_module_cache__","cachedModule","__webpack_modules__","definition","nmd","paths","nc","App","cable","ActionCable","Dropdown","menu","addEvents","hideOthers","setCookie","cookie","cookieExpireAt","date_iso8601","toMoment","TabTray","person","tabItems","tab","newTab","sizeTabItems","tabTray","unminify","tabItem","isTooWide","availableWidth","toggleButton","nextElementSibling","has_unseen_chat_messages","TabItem","attrName","oldValue","tray","_this$tray$current","_this$tray$current$pe","renderChatMessageIcon","close_url","setCSSClasses","PersonActiveStatus","updateStatus","handleActive","handleInActive","_this$el","_this$el$classList","statusClass","PersonActiveStatusFavicon","renderActive","renderInactive","els","removeFaviconElements","insertAdjacentHTML","PersonIcon","MonitorActivePeople","personElements","activeData","personIds","MonitorSegmentCurrentPeople","FlashTitle","newTitle","_newTitle","defineSessionStackSessions","timeUtil","TimeUtil","componentRequireContext","initAll","flashTitle"],"sourceRoot":""}