/* * ATTENTION: An "eval-source-map" devtool has been used. * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./node_modules/@popperjs/core/lib/createPopper.js": /*!*********************************************************!*\ !*** ./node_modules/@popperjs/core/lib/createPopper.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"popperGenerator\": () => (/* binding */ popperGenerator),\n/* harmony export */ \"createPopper\": () => (/* binding */ createPopper),\n/* harmony export */ \"detectOverflow\": () => (/* reexport safe */ _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _dom_utils_getCompositeRect_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./dom-utils/getCompositeRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js\");\n/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./dom-utils/getLayoutRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js\");\n/* harmony import */ var _dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dom-utils/listScrollParents.js */ \"./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js\");\n/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./dom-utils/getOffsetParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js\");\n/* harmony import */ var _dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./dom-utils/getComputedStyle.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js\");\n/* harmony import */ var _utils_orderModifiers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/orderModifiers.js */ \"./node_modules/@popperjs/core/lib/utils/orderModifiers.js\");\n/* harmony import */ var _utils_debounce_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/debounce.js */ \"./node_modules/@popperjs/core/lib/utils/debounce.js\");\n/* harmony import */ var _utils_validateModifiers_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/validateModifiers.js */ \"./node_modules/@popperjs/core/lib/utils/validateModifiers.js\");\n/* harmony import */ var _utils_uniqueBy_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/uniqueBy.js */ \"./node_modules/@popperjs/core/lib/utils/uniqueBy.js\");\n/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/getBasePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\");\n/* harmony import */ var _utils_mergeByName_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/mergeByName.js */ \"./node_modules/@popperjs/core/lib/utils/mergeByName.js\");\n/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./utils/detectOverflow.js */ \"./node_modules/@popperjs/core/lib/utils/detectOverflow.js\");\n/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom-utils/instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nfunction popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: (0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(reference) ? (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(reference) : reference.contextElement ? (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(reference.contextElement) : [],\n popper: (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = (0,_utils_orderModifiers_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((0,_utils_mergeByName_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (true) {\n var modifiers = (0,_utils_uniqueBy_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n (0,_utils_validateModifiers_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(modifiers);\n\n if ((0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(state.options.placement) === _enums_js__WEBPACK_IMPORTED_MODULE_7__.auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = (0,_dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (true) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: (0,_dom_utils_getCompositeRect_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(reference, (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(popper), state.options.strategy === 'fixed'),\n popper: (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (true) {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: (0,_utils_debounce_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (true) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nvar createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2NyZWF0ZVBvcHBlci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUErRDtBQUNOO0FBQ1E7QUFDSjtBQUNFO0FBQ1I7QUFDWjtBQUNrQjtBQUNsQjtBQUNnQjtBQUNWO0FBQ007QUFDRDtBQUNwQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHNFQUFzRSxhQUFhO0FBQ25GO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFTztBQUNQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1Asb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4QztBQUNBLHFCQUFxQixtRUFBUyxjQUFjLDJFQUFpQix5Q0FBeUMsMkVBQWlCO0FBQ3ZILGtCQUFrQiwyRUFBaUI7QUFDbkMsV0FBVztBQUNYOztBQUVBLCtCQUErQixvRUFBYyxDQUFDLGlFQUFXLHlEQUF5RDs7QUFFbEg7QUFDQTtBQUNBLFNBQVMsR0FBRztBQUNaOztBQUVBLFlBQVksSUFBcUM7QUFDakQsMEJBQTBCLDhEQUFRO0FBQ2xDO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsVUFBVSx1RUFBaUI7O0FBRTNCLGNBQWMsc0VBQWdCLDhCQUE4QiwyQ0FBSTtBQUNoRTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtDQUFrQywwRUFBZ0I7QUFDbEQ7QUFDQTtBQUNBO0FBQ0EseURBQXlEO0FBQ3pEOzs7QUFHQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkNBQTZDO0FBQzdDOztBQUVBO0FBQ0EsY0FBYyxJQUFxQztBQUNuRDtBQUNBOztBQUVBO0FBQ0EsVUFBVTs7O0FBR1Y7QUFDQSxxQkFBcUIsMEVBQWdCLFlBQVksMEVBQWU7QUFDaEUsa0JBQWtCLHdFQUFhO0FBQy9CLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG1EQUFtRDtBQUNuRDtBQUNBO0FBQ0EsNkNBQTZDLEtBQUs7O0FBRWxEO0FBQ0Esc0VBQXNFO0FBQ3RFLFNBQVM7QUFDVDs7QUFFQSw0QkFBNEIsdUNBQXVDO0FBQ25FLGNBQWMsSUFBcUM7QUFDbkQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdFQUFnRTtBQUNoRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsY0FBYywrREFBUTtBQUN0QjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVLElBQXFDO0FBQy9DO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssR0FBRztBQUNSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0RBQW9EO0FBQ3BEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7O0FBRVg7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDTyxtREFBbUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2NyZWF0ZVBvcHBlci5qcz82Y2VlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRDb21wb3NpdGVSZWN0IGZyb20gXCIuL2RvbS11dGlscy9nZXRDb21wb3NpdGVSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0TGF5b3V0UmVjdCBmcm9tIFwiLi9kb20tdXRpbHMvZ2V0TGF5b3V0UmVjdC5qc1wiO1xuaW1wb3J0IGxpc3RTY3JvbGxQYXJlbnRzIGZyb20gXCIuL2RvbS11dGlscy9saXN0U2Nyb2xsUGFyZW50cy5qc1wiO1xuaW1wb3J0IGdldE9mZnNldFBhcmVudCBmcm9tIFwiLi9kb20tdXRpbHMvZ2V0T2Zmc2V0UGFyZW50LmpzXCI7XG5pbXBvcnQgZ2V0Q29tcHV0ZWRTdHlsZSBmcm9tIFwiLi9kb20tdXRpbHMvZ2V0Q29tcHV0ZWRTdHlsZS5qc1wiO1xuaW1wb3J0IG9yZGVyTW9kaWZpZXJzIGZyb20gXCIuL3V0aWxzL29yZGVyTW9kaWZpZXJzLmpzXCI7XG5pbXBvcnQgZGVib3VuY2UgZnJvbSBcIi4vdXRpbHMvZGVib3VuY2UuanNcIjtcbmltcG9ydCB2YWxpZGF0ZU1vZGlmaWVycyBmcm9tIFwiLi91dGlscy92YWxpZGF0ZU1vZGlmaWVycy5qc1wiO1xuaW1wb3J0IHVuaXF1ZUJ5IGZyb20gXCIuL3V0aWxzL3VuaXF1ZUJ5LmpzXCI7XG5pbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi91dGlscy9nZXRCYXNlUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgbWVyZ2VCeU5hbWUgZnJvbSBcIi4vdXRpbHMvbWVyZ2VCeU5hbWUuanNcIjtcbmltcG9ydCBkZXRlY3RPdmVyZmxvdyBmcm9tIFwiLi91dGlscy9kZXRlY3RPdmVyZmxvdy5qc1wiO1xuaW1wb3J0IHsgaXNFbGVtZW50IH0gZnJvbSBcIi4vZG9tLXV0aWxzL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCB7IGF1dG8gfSBmcm9tIFwiLi9lbnVtcy5qc1wiO1xudmFyIElOVkFMSURfRUxFTUVOVF9FUlJPUiA9ICdQb3BwZXI6IEludmFsaWQgcmVmZXJlbmNlIG9yIHBvcHBlciBhcmd1bWVudCBwcm92aWRlZC4gVGhleSBtdXN0IGJlIGVpdGhlciBhIERPTSBlbGVtZW50IG9yIHZpcnR1YWwgZWxlbWVudC4nO1xudmFyIElORklOSVRFX0xPT1BfRVJST1IgPSAnUG9wcGVyOiBBbiBpbmZpbml0ZSBsb29wIGluIHRoZSBtb2RpZmllcnMgY3ljbGUgaGFzIGJlZW4gZGV0ZWN0ZWQhIFRoZSBjeWNsZSBoYXMgYmVlbiBpbnRlcnJ1cHRlZCB0byBwcmV2ZW50IGEgYnJvd3NlciBjcmFzaC4nO1xudmFyIERFRkFVTFRfT1BUSU9OUyA9IHtcbiAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgbW9kaWZpZXJzOiBbXSxcbiAgc3RyYXRlZ3k6ICdhYnNvbHV0ZSdcbn07XG5cbmZ1bmN0aW9uIGFyZVZhbGlkRWxlbWVudHMoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICByZXR1cm4gIWFyZ3Muc29tZShmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIHJldHVybiAhKGVsZW1lbnQgJiYgdHlwZW9mIGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0ID09PSAnZnVuY3Rpb24nKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3BwZXJHZW5lcmF0b3IoZ2VuZXJhdG9yT3B0aW9ucykge1xuICBpZiAoZ2VuZXJhdG9yT3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgZ2VuZXJhdG9yT3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgdmFyIF9nZW5lcmF0b3JPcHRpb25zID0gZ2VuZXJhdG9yT3B0aW9ucyxcbiAgICAgIF9nZW5lcmF0b3JPcHRpb25zJGRlZiA9IF9nZW5lcmF0b3JPcHRpb25zLmRlZmF1bHRNb2RpZmllcnMsXG4gICAgICBkZWZhdWx0TW9kaWZpZXJzID0gX2dlbmVyYXRvck9wdGlvbnMkZGVmID09PSB2b2lkIDAgPyBbXSA6IF9nZW5lcmF0b3JPcHRpb25zJGRlZixcbiAgICAgIF9nZW5lcmF0b3JPcHRpb25zJGRlZjIgPSBfZ2VuZXJhdG9yT3B0aW9ucy5kZWZhdWx0T3B0aW9ucyxcbiAgICAgIGRlZmF1bHRPcHRpb25zID0gX2dlbmVyYXRvck9wdGlvbnMkZGVmMiA9PT0gdm9pZCAwID8gREVGQVVMVF9PUFRJT05TIDogX2dlbmVyYXRvck9wdGlvbnMkZGVmMjtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNyZWF0ZVBvcHBlcihyZWZlcmVuY2UsIHBvcHBlciwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICAgIG9wdGlvbnMgPSBkZWZhdWx0T3B0aW9ucztcbiAgICB9XG5cbiAgICB2YXIgc3RhdGUgPSB7XG4gICAgICBwbGFjZW1lbnQ6ICdib3R0b20nLFxuICAgICAgb3JkZXJlZE1vZGlmaWVyczogW10sXG4gICAgICBvcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX09QVElPTlMsIGRlZmF1bHRPcHRpb25zKSxcbiAgICAgIG1vZGlmaWVyc0RhdGE6IHt9LFxuICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgcmVmZXJlbmNlOiByZWZlcmVuY2UsXG4gICAgICAgIHBvcHBlcjogcG9wcGVyXG4gICAgICB9LFxuICAgICAgYXR0cmlidXRlczoge30sXG4gICAgICBzdHlsZXM6IHt9XG4gICAgfTtcbiAgICB2YXIgZWZmZWN0Q2xlYW51cEZucyA9IFtdO1xuICAgIHZhciBpc0Rlc3Ryb3llZCA9IGZhbHNlO1xuICAgIHZhciBpbnN0YW5jZSA9IHtcbiAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgIHNldE9wdGlvbnM6IGZ1bmN0aW9uIHNldE9wdGlvbnMoc2V0T3B0aW9uc0FjdGlvbikge1xuICAgICAgICB2YXIgb3B0aW9ucyA9IHR5cGVvZiBzZXRPcHRpb25zQWN0aW9uID09PSAnZnVuY3Rpb24nID8gc2V0T3B0aW9uc0FjdGlvbihzdGF0ZS5vcHRpb25zKSA6IHNldE9wdGlvbnNBY3Rpb247XG4gICAgICAgIGNsZWFudXBNb2RpZmllckVmZmVjdHMoKTtcbiAgICAgICAgc3RhdGUub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRPcHRpb25zLCBzdGF0ZS5vcHRpb25zLCBvcHRpb25zKTtcbiAgICAgICAgc3RhdGUuc2Nyb2xsUGFyZW50cyA9IHtcbiAgICAgICAgICByZWZlcmVuY2U6IGlzRWxlbWVudChyZWZlcmVuY2UpID8gbGlzdFNjcm9sbFBhcmVudHMocmVmZXJlbmNlKSA6IHJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCA/IGxpc3RTY3JvbGxQYXJlbnRzKHJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCkgOiBbXSxcbiAgICAgICAgICBwb3BwZXI6IGxpc3RTY3JvbGxQYXJlbnRzKHBvcHBlcilcbiAgICAgICAgfTsgLy8gT3JkZXJzIHRoZSBtb2RpZmllcnMgYmFzZWQgb24gdGhlaXIgZGVwZW5kZW5jaWVzIGFuZCBgcGhhc2VgXG4gICAgICAgIC8vIHByb3BlcnRpZXNcblxuICAgICAgICB2YXIgb3JkZXJlZE1vZGlmaWVycyA9IG9yZGVyTW9kaWZpZXJzKG1lcmdlQnlOYW1lKFtdLmNvbmNhdChkZWZhdWx0TW9kaWZpZXJzLCBzdGF0ZS5vcHRpb25zLm1vZGlmaWVycykpKTsgLy8gU3RyaXAgb3V0IGRpc2FibGVkIG1vZGlmaWVyc1xuXG4gICAgICAgIHN0YXRlLm9yZGVyZWRNb2RpZmllcnMgPSBvcmRlcmVkTW9kaWZpZXJzLmZpbHRlcihmdW5jdGlvbiAobSkge1xuICAgICAgICAgIHJldHVybiBtLmVuYWJsZWQ7XG4gICAgICAgIH0pOyAvLyBWYWxpZGF0ZSB0aGUgcHJvdmlkZWQgbW9kaWZpZXJzIHNvIHRoYXQgdGhlIGNvbnN1bWVyIHdpbGwgZ2V0IHdhcm5lZFxuICAgICAgICAvLyBpZiBvbmUgb2YgdGhlIG1vZGlmaWVycyBpcyBpbnZhbGlkIGZvciBhbnkgcmVhc29uXG5cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICAgIHZhciBtb2RpZmllcnMgPSB1bmlxdWVCeShbXS5jb25jYXQob3JkZXJlZE1vZGlmaWVycywgc3RhdGUub3B0aW9ucy5tb2RpZmllcnMpLCBmdW5jdGlvbiAoX3JlZikge1xuICAgICAgICAgICAgdmFyIG5hbWUgPSBfcmVmLm5hbWU7XG4gICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB2YWxpZGF0ZU1vZGlmaWVycyhtb2RpZmllcnMpO1xuXG4gICAgICAgICAgaWYgKGdldEJhc2VQbGFjZW1lbnQoc3RhdGUub3B0aW9ucy5wbGFjZW1lbnQpID09PSBhdXRvKSB7XG4gICAgICAgICAgICB2YXIgZmxpcE1vZGlmaWVyID0gc3RhdGUub3JkZXJlZE1vZGlmaWVycy5maW5kKGZ1bmN0aW9uIChfcmVmMikge1xuICAgICAgICAgICAgICB2YXIgbmFtZSA9IF9yZWYyLm5hbWU7XG4gICAgICAgICAgICAgIHJldHVybiBuYW1lID09PSAnZmxpcCc7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKCFmbGlwTW9kaWZpZXIpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihbJ1BvcHBlcjogXCJhdXRvXCIgcGxhY2VtZW50cyByZXF1aXJlIHRoZSBcImZsaXBcIiBtb2RpZmllciBiZScsICdwcmVzZW50IGFuZCBlbmFibGVkIHRvIHdvcmsuJ10uam9pbignICcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgX2dldENvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBvcHBlciksXG4gICAgICAgICAgICAgIG1hcmdpblRvcCA9IF9nZXRDb21wdXRlZFN0eWxlLm1hcmdpblRvcCxcbiAgICAgICAgICAgICAgbWFyZ2luUmlnaHQgPSBfZ2V0Q29tcHV0ZWRTdHlsZS5tYXJnaW5SaWdodCxcbiAgICAgICAgICAgICAgbWFyZ2luQm90dG9tID0gX2dldENvbXB1dGVkU3R5bGUubWFyZ2luQm90dG9tLFxuICAgICAgICAgICAgICBtYXJnaW5MZWZ0ID0gX2dldENvbXB1dGVkU3R5bGUubWFyZ2luTGVmdDsgLy8gV2Ugbm8gbG9uZ2VyIHRha2UgaW50byBhY2NvdW50IGBtYXJnaW5zYCBvbiB0aGUgcG9wcGVyLCBhbmQgaXQgY2FuXG4gICAgICAgICAgLy8gY2F1c2UgYnVncyB3aXRoIHBvc2l0aW9uaW5nLCBzbyB3ZSdsbCB3YXJuIHRoZSBjb25zdW1lclxuXG5cbiAgICAgICAgICBpZiAoW21hcmdpblRvcCwgbWFyZ2luUmlnaHQsIG1hcmdpbkJvdHRvbSwgbWFyZ2luTGVmdF0uc29tZShmdW5jdGlvbiAobWFyZ2luKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChtYXJnaW4pO1xuICAgICAgICAgIH0pKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oWydQb3BwZXI6IENTUyBcIm1hcmdpblwiIHN0eWxlcyBjYW5ub3QgYmUgdXNlZCB0byBhcHBseSBwYWRkaW5nJywgJ2JldHdlZW4gdGhlIHBvcHBlciBhbmQgaXRzIHJlZmVyZW5jZSBlbGVtZW50IG9yIGJvdW5kYXJ5LicsICdUbyByZXBsaWNhdGUgbWFyZ2luLCB1c2UgdGhlIGBvZmZzZXRgIG1vZGlmaWVyLCBhcyB3ZWxsIGFzJywgJ3RoZSBgcGFkZGluZ2Agb3B0aW9uIGluIHRoZSBgcHJldmVudE92ZXJmbG93YCBhbmQgYGZsaXBgJywgJ21vZGlmaWVycy4nXS5qb2luKCcgJykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJ1bk1vZGlmaWVyRWZmZWN0cygpO1xuICAgICAgICByZXR1cm4gaW5zdGFuY2UudXBkYXRlKCk7XG4gICAgICB9LFxuICAgICAgLy8gU3luYyB1cGRhdGUg4oCTIGl0IHdpbGwgYWx3YXlzIGJlIGV4ZWN1dGVkLCBldmVuIGlmIG5vdCBuZWNlc3NhcnkuIFRoaXNcbiAgICAgIC8vIGlzIHVzZWZ1bCBmb3IgbG93IGZyZXF1ZW5jeSB1cGRhdGVzIHdoZXJlIHN5bmMgYmVoYXZpb3Igc2ltcGxpZmllcyB0aGVcbiAgICAgIC8vIGxvZ2ljLlxuICAgICAgLy8gRm9yIGhpZ2ggZnJlcXVlbmN5IHVwZGF0ZXMgKGUuZy4gYHJlc2l6ZWAgYW5kIGBzY3JvbGxgIGV2ZW50cyksIGFsd2F5c1xuICAgICAgLy8gcHJlZmVyIHRoZSBhc3luYyBQb3BwZXIjdXBkYXRlIG1ldGhvZFxuICAgICAgZm9yY2VVcGRhdGU6IGZ1bmN0aW9uIGZvcmNlVXBkYXRlKCkge1xuICAgICAgICBpZiAoaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgX3N0YXRlJGVsZW1lbnRzID0gc3RhdGUuZWxlbWVudHMsXG4gICAgICAgICAgICByZWZlcmVuY2UgPSBfc3RhdGUkZWxlbWVudHMucmVmZXJlbmNlLFxuICAgICAgICAgICAgcG9wcGVyID0gX3N0YXRlJGVsZW1lbnRzLnBvcHBlcjsgLy8gRG9uJ3QgcHJvY2VlZCBpZiBgcmVmZXJlbmNlYCBvciBgcG9wcGVyYCBhcmUgbm90IHZhbGlkIGVsZW1lbnRzXG4gICAgICAgIC8vIGFueW1vcmVcblxuICAgICAgICBpZiAoIWFyZVZhbGlkRWxlbWVudHMocmVmZXJlbmNlLCBwb3BwZXIpKSB7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihJTlZBTElEX0VMRU1FTlRfRVJST1IpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSAvLyBTdG9yZSB0aGUgcmVmZXJlbmNlIGFuZCBwb3BwZXIgcmVjdHMgdG8gYmUgcmVhZCBieSBtb2RpZmllcnNcblxuXG4gICAgICAgIHN0YXRlLnJlY3RzID0ge1xuICAgICAgICAgIHJlZmVyZW5jZTogZ2V0Q29tcG9zaXRlUmVjdChyZWZlcmVuY2UsIGdldE9mZnNldFBhcmVudChwb3BwZXIpLCBzdGF0ZS5vcHRpb25zLnN0cmF0ZWd5ID09PSAnZml4ZWQnKSxcbiAgICAgICAgICBwb3BwZXI6IGdldExheW91dFJlY3QocG9wcGVyKVxuICAgICAgICB9OyAvLyBNb2RpZmllcnMgaGF2ZSB0aGUgYWJpbGl0eSB0byByZXNldCB0aGUgY3VycmVudCB1cGRhdGUgY3ljbGUuIFRoZVxuICAgICAgICAvLyBtb3N0IGNvbW1vbiB1c2UgY2FzZSBmb3IgdGhpcyBpcyB0aGUgYGZsaXBgIG1vZGlmaWVyIGNoYW5naW5nIHRoZVxuICAgICAgICAvLyBwbGFjZW1lbnQsIHdoaWNoIHRoZW4gbmVlZHMgdG8gcmUtcnVuIGFsbCB0aGUgbW9kaWZpZXJzLCBiZWNhdXNlIHRoZVxuICAgICAgICAvLyBsb2dpYyB3YXMgcHJldmlvdXNseSByYW4gZm9yIHRoZSBwcmV2aW91cyBwbGFjZW1lbnQgYW5kIGlzIHRoZXJlZm9yZVxuICAgICAgICAvLyBzdGFsZS9pbmNvcnJlY3RcblxuICAgICAgICBzdGF0ZS5yZXNldCA9IGZhbHNlO1xuICAgICAgICBzdGF0ZS5wbGFjZW1lbnQgPSBzdGF0ZS5vcHRpb25zLnBsYWNlbWVudDsgLy8gT24gZWFjaCB1cGRhdGUgY3ljbGUsIHRoZSBgbW9kaWZpZXJzRGF0YWAgcHJvcGVydHkgZm9yIGVhY2ggbW9kaWZpZXJcbiAgICAgICAgLy8gaXMgZmlsbGVkIHdpdGggdGhlIGluaXRpYWwgZGF0YSBzcGVjaWZpZWQgYnkgdGhlIG1vZGlmaWVyLiBUaGlzIG1lYW5zXG4gICAgICAgIC8vIGl0IGRvZXNuJ3QgcGVyc2lzdCBhbmQgaXMgZnJlc2ggb24gZWFjaCB1cGRhdGUuXG4gICAgICAgIC8vIFRvIGVuc3VyZSBwZXJzaXN0ZW50IGRhdGEsIHVzZSBgJHtuYW1lfSNwZXJzaXN0ZW50YFxuXG4gICAgICAgIHN0YXRlLm9yZGVyZWRNb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGUubW9kaWZpZXJzRGF0YVttb2RpZmllci5uYW1lXSA9IE9iamVjdC5hc3NpZ24oe30sIG1vZGlmaWVyLmRhdGEpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9fZGVidWdfbG9vcHNfXyA9IDA7XG5cbiAgICAgICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IHN0YXRlLm9yZGVyZWRNb2RpZmllcnMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICAgICAgX19kZWJ1Z19sb29wc19fICs9IDE7XG5cbiAgICAgICAgICAgIGlmIChfX2RlYnVnX2xvb3BzX18gPiAxMDApIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihJTkZJTklURV9MT09QX0VSUk9SKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHN0YXRlLnJlc2V0ID09PSB0cnVlKSB7XG4gICAgICAgICAgICBzdGF0ZS5yZXNldCA9IGZhbHNlO1xuICAgICAgICAgICAgaW5kZXggPSAtMTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBfc3RhdGUkb3JkZXJlZE1vZGlmaWUgPSBzdGF0ZS5vcmRlcmVkTW9kaWZpZXJzW2luZGV4XSxcbiAgICAgICAgICAgICAgZm4gPSBfc3RhdGUkb3JkZXJlZE1vZGlmaWUuZm4sXG4gICAgICAgICAgICAgIF9zdGF0ZSRvcmRlcmVkTW9kaWZpZTIgPSBfc3RhdGUkb3JkZXJlZE1vZGlmaWUub3B0aW9ucyxcbiAgICAgICAgICAgICAgX29wdGlvbnMgPSBfc3RhdGUkb3JkZXJlZE1vZGlmaWUyID09PSB2b2lkIDAgPyB7fSA6IF9zdGF0ZSRvcmRlcmVkTW9kaWZpZTIsXG4gICAgICAgICAgICAgIG5hbWUgPSBfc3RhdGUkb3JkZXJlZE1vZGlmaWUubmFtZTtcblxuICAgICAgICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHN0YXRlID0gZm4oe1xuICAgICAgICAgICAgICBzdGF0ZTogc3RhdGUsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IF9vcHRpb25zLFxuICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgICBpbnN0YW5jZTogaW5zdGFuY2VcbiAgICAgICAgICAgIH0pIHx8IHN0YXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIEFzeW5jIGFuZCBvcHRpbWlzdGljYWxseSBvcHRpbWl6ZWQgdXBkYXRlIOKAkyBpdCB3aWxsIG5vdCBiZSBleGVjdXRlZCBpZlxuICAgICAgLy8gbm90IG5lY2Vzc2FyeSAoZGVib3VuY2VkIHRvIHJ1biBhdCBtb3N0IG9uY2UtcGVyLXRpY2spXG4gICAgICB1cGRhdGU6IGRlYm91bmNlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgICAgICAgaW5zdGFuY2UuZm9yY2VVcGRhdGUoKTtcbiAgICAgICAgICByZXNvbHZlKHN0YXRlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIGRlc3Ryb3k6IGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG4gICAgICAgIGNsZWFudXBNb2RpZmllckVmZmVjdHMoKTtcbiAgICAgICAgaXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoIWFyZVZhbGlkRWxlbWVudHMocmVmZXJlbmNlLCBwb3BwZXIpKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoSU5WQUxJRF9FTEVNRU5UX0VSUk9SKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgIH1cblxuICAgIGluc3RhbmNlLnNldE9wdGlvbnMob3B0aW9ucykudGhlbihmdW5jdGlvbiAoc3RhdGUpIHtcbiAgICAgIGlmICghaXNEZXN0cm95ZWQgJiYgb3B0aW9ucy5vbkZpcnN0VXBkYXRlKSB7XG4gICAgICAgIG9wdGlvbnMub25GaXJzdFVwZGF0ZShzdGF0ZSk7XG4gICAgICB9XG4gICAgfSk7IC8vIE1vZGlmaWVycyBoYXZlIHRoZSBhYmlsaXR5IHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgYmVmb3JlIHRoZSBmaXJzdFxuICAgIC8vIHVwZGF0ZSBjeWNsZSBydW5zLiBUaGV5IHdpbGwgYmUgZXhlY3V0ZWQgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIHVwZGF0ZVxuICAgIC8vIGN5Y2xlLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIGEgbW9kaWZpZXIgYWRkcyBzb21lIHBlcnNpc3RlbnQgZGF0YSB0aGF0XG4gICAgLy8gb3RoZXIgbW9kaWZpZXJzIG5lZWQgdG8gdXNlLCBidXQgdGhlIG1vZGlmaWVyIGlzIHJ1biBhZnRlciB0aGUgZGVwZW5kZW50XG4gICAgLy8gb25lLlxuXG4gICAgZnVuY3Rpb24gcnVuTW9kaWZpZXJFZmZlY3RzKCkge1xuICAgICAgc3RhdGUub3JkZXJlZE1vZGlmaWVycy5mb3JFYWNoKGZ1bmN0aW9uIChfcmVmMykge1xuICAgICAgICB2YXIgbmFtZSA9IF9yZWYzLm5hbWUsXG4gICAgICAgICAgICBfcmVmMyRvcHRpb25zID0gX3JlZjMub3B0aW9ucyxcbiAgICAgICAgICAgIG9wdGlvbnMgPSBfcmVmMyRvcHRpb25zID09PSB2b2lkIDAgPyB7fSA6IF9yZWYzJG9wdGlvbnMsXG4gICAgICAgICAgICBlZmZlY3QgPSBfcmVmMy5lZmZlY3Q7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBlZmZlY3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB2YXIgY2xlYW51cEZuID0gZWZmZWN0KHtcbiAgICAgICAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICBpbnN0YW5jZTogaW5zdGFuY2UsXG4gICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB2YXIgbm9vcEZuID0gZnVuY3Rpb24gbm9vcEZuKCkge307XG5cbiAgICAgICAgICBlZmZlY3RDbGVhbnVwRm5zLnB1c2goY2xlYW51cEZuIHx8IG5vb3BGbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNsZWFudXBNb2RpZmllckVmZmVjdHMoKSB7XG4gICAgICBlZmZlY3RDbGVhbnVwRm5zLmZvckVhY2goZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgIHJldHVybiBmbigpO1xuICAgICAgfSk7XG4gICAgICBlZmZlY3RDbGVhbnVwRm5zID0gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9O1xufVxuZXhwb3J0IHZhciBjcmVhdGVQb3BwZXIgPSAvKiNfX1BVUkVfXyovcG9wcGVyR2VuZXJhdG9yKCk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgZGV0ZWN0T3ZlcmZsb3cgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/createPopper.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/contains.js": /*!***************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/contains.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ contains)\n/* harmony export */ });\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n\nfunction contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isShadowRoot)(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9jb250YWlucy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUErQztBQUNoQztBQUNmLDJEQUEyRDs7QUFFM0Q7QUFDQTtBQUNBLElBQUk7QUFDSix1QkFBdUIsNERBQVk7QUFDbkM7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7O0FBR1Y7QUFDQSxRQUFRO0FBQ1IsTUFBTTs7O0FBR047QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2NvbnRhaW5zLmpzPzdmMzciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTaGFkb3dSb290IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29udGFpbnMocGFyZW50LCBjaGlsZCkge1xuICB2YXIgcm9vdE5vZGUgPSBjaGlsZC5nZXRSb290Tm9kZSAmJiBjaGlsZC5nZXRSb290Tm9kZSgpOyAvLyBGaXJzdCwgYXR0ZW1wdCB3aXRoIGZhc3RlciBuYXRpdmUgbWV0aG9kXG5cbiAgaWYgKHBhcmVudC5jb250YWlucyhjaGlsZCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSAvLyB0aGVuIGZhbGxiYWNrIHRvIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiB3aXRoIFNoYWRvdyBET00gc3VwcG9ydFxuICBlbHNlIGlmIChyb290Tm9kZSAmJiBpc1NoYWRvd1Jvb3Qocm9vdE5vZGUpKSB7XG4gICAgICB2YXIgbmV4dCA9IGNoaWxkO1xuXG4gICAgICBkbyB7XG4gICAgICAgIGlmIChuZXh0ICYmIHBhcmVudC5pc1NhbWVOb2RlKG5leHQpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddOiBuZWVkIGEgYmV0dGVyIHdheSB0byBoYW5kbGUgdGhpcy4uLlxuXG5cbiAgICAgICAgbmV4dCA9IG5leHQucGFyZW50Tm9kZSB8fCBuZXh0Lmhvc3Q7XG4gICAgICB9IHdoaWxlIChuZXh0KTtcbiAgICB9IC8vIEdpdmUgdXAsIHRoZSByZXN1bHQgaXMgZmFsc2VcblxuXG4gIHJldHVybiBmYWxzZTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/contains.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js": /*!****************************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getBoundingClientRect)\n/* harmony export */ });\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n\nvar round = Math.round;\nfunction getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = rect.width / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = rect.height / offsetHeight || 1;\n }\n }\n\n return {\n width: round(rect.width / scaleX),\n height: round(rect.height / scaleY),\n top: round(rect.top / scaleY),\n right: round(rect.right / scaleX),\n bottom: round(rect.bottom / scaleY),\n left: round(rect.left / scaleX),\n x: round(rect.left / scaleX),\n y: round(rect.top / scaleY)\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBZ0Q7QUFDaEQ7QUFDZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTSw2REFBYTtBQUNuQjtBQUNBLDJDQUEyQztBQUMzQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldEJvdW5kaW5nQ2xpZW50UmVjdC5qcz8wZjg4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG52YXIgcm91bmQgPSBNYXRoLnJvdW5kO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIGluY2x1ZGVTY2FsZSkge1xuICBpZiAoaW5jbHVkZVNjYWxlID09PSB2b2lkIDApIHtcbiAgICBpbmNsdWRlU2NhbGUgPSBmYWxzZTtcbiAgfVxuXG4gIHZhciByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgdmFyIHNjYWxlWCA9IDE7XG4gIHZhciBzY2FsZVkgPSAxO1xuXG4gIGlmIChpc0hUTUxFbGVtZW50KGVsZW1lbnQpICYmIGluY2x1ZGVTY2FsZSkge1xuICAgIHZhciBvZmZzZXRIZWlnaHQgPSBlbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICB2YXIgb2Zmc2V0V2lkdGggPSBlbGVtZW50Lm9mZnNldFdpZHRoOyAvLyBEbyBub3QgYXR0ZW1wdCB0byBkaXZpZGUgYnkgMCwgb3RoZXJ3aXNlIHdlIGdldCBgSW5maW5pdHlgIGFzIHNjYWxlXG4gICAgLy8gRmFsbGJhY2sgdG8gMSBpbiBjYXNlIGJvdGggdmFsdWVzIGFyZSBgMGBcblxuICAgIGlmIChvZmZzZXRXaWR0aCA+IDApIHtcbiAgICAgIHNjYWxlWCA9IHJlY3Qud2lkdGggLyBvZmZzZXRXaWR0aCB8fCAxO1xuICAgIH1cblxuICAgIGlmIChvZmZzZXRIZWlnaHQgPiAwKSB7XG4gICAgICBzY2FsZVkgPSByZWN0LmhlaWdodCAvIG9mZnNldEhlaWdodCB8fCAxO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgd2lkdGg6IHJvdW5kKHJlY3Qud2lkdGggLyBzY2FsZVgpLFxuICAgIGhlaWdodDogcm91bmQocmVjdC5oZWlnaHQgLyBzY2FsZVkpLFxuICAgIHRvcDogcm91bmQocmVjdC50b3AgLyBzY2FsZVkpLFxuICAgIHJpZ2h0OiByb3VuZChyZWN0LnJpZ2h0IC8gc2NhbGVYKSxcbiAgICBib3R0b206IHJvdW5kKHJlY3QuYm90dG9tIC8gc2NhbGVZKSxcbiAgICBsZWZ0OiByb3VuZChyZWN0LmxlZnQgLyBzY2FsZVgpLFxuICAgIHg6IHJvdW5kKHJlY3QubGVmdCAvIHNjYWxlWCksXG4gICAgeTogcm91bmQocmVjdC50b3AgLyBzY2FsZVkpXG4gIH07XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js": /*!**********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getClippingRect)\n/* harmony export */ });\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _getViewportRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getViewportRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js\");\n/* harmony import */ var _getDocumentRect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./getDocumentRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js\");\n/* harmony import */ var _listScrollParents_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./listScrollParents.js */ \"./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js\");\n/* harmony import */ var _getOffsetParent_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./getOffsetParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js\");\n/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./getDocumentElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\");\n/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./getComputedStyle.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js\");\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js\");\n/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./getParentNode.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js\");\n/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./contains.js */ \"./node_modules/@popperjs/core/lib/dom-utils/contains.js\");\n/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./getNodeName.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\");\n/* harmony import */ var _utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/rectToClientRect.js */ \"./node_modules/@popperjs/core/lib/utils/rectToClientRect.js\");\n/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/math.js */ \"./node_modules/@popperjs/core/lib/utils/math.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getInnerBoundingClientRect(element) {\n var rect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === _enums_js__WEBPACK_IMPORTED_MODULE_1__.viewport ? (0,_utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((0,_getViewportRect_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(element)) : (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isHTMLElement)(clippingParent) ? getInnerBoundingClientRect(clippingParent) : (0,_utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((0,_getDocumentRect_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])((0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = (0,_listScrollParents_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf((0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(element).position) >= 0;\n var clipperElement = canEscapeClipping && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isHTMLElement)(element) ? (0,_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(element) : element;\n\n if (!(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clippingParent) && (0,_contains_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(clippingParent, clipperElement) && (0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nfunction getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.max)(rect.top, accRect.top);\n accRect.right = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.min)(rect.right, accRect.right);\n accRect.bottom = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.min)(rect.bottom, accRect.bottom);\n accRect.left = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.max)(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRDbGlwcGluZ1JlY3QuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXVDO0FBQ1k7QUFDQTtBQUNJO0FBQ0o7QUFDTTtBQUNKO0FBQ007QUFDSTtBQUNoQjtBQUNWO0FBQ007QUFDaUI7QUFDaEI7O0FBRTVDO0FBQ0EsYUFBYSxxRUFBcUI7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw0QkFBNEIsK0NBQVEsR0FBRyxzRUFBZ0IsQ0FBQywrREFBZSxhQUFhLDZEQUFhLGdFQUFnRSxzRUFBZ0IsQ0FBQywrREFBZSxDQUFDLGtFQUFrQjtBQUNwTixFQUFFO0FBQ0Y7QUFDQTs7O0FBR0E7QUFDQSx3QkFBd0IsaUVBQWlCLENBQUMsNkRBQWE7QUFDdkQsd0RBQXdELGdFQUFnQjtBQUN4RSw0Q0FBNEMsNkRBQWEsWUFBWSxnRUFBZTs7QUFFcEYsT0FBTyx5REFBUztBQUNoQjtBQUNBLElBQUk7OztBQUdKO0FBQ0EsV0FBVyx5REFBUyxvQkFBb0IseURBQVEsb0NBQW9DLDREQUFXO0FBQy9GLEdBQUc7QUFDSCxFQUFFO0FBQ0Y7OztBQUdlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixvREFBRztBQUNyQixvQkFBb0Isb0RBQUc7QUFDdkIscUJBQXFCLG9EQUFHO0FBQ3hCLG1CQUFtQixvREFBRztBQUN0QjtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRDbGlwcGluZ1JlY3QuanM/OWRlMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2aWV3cG9ydCB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IGdldFZpZXdwb3J0UmVjdCBmcm9tIFwiLi9nZXRWaWV3cG9ydFJlY3QuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudFJlY3QgZnJvbSBcIi4vZ2V0RG9jdW1lbnRSZWN0LmpzXCI7XG5pbXBvcnQgbGlzdFNjcm9sbFBhcmVudHMgZnJvbSBcIi4vbGlzdFNjcm9sbFBhcmVudHMuanNcIjtcbmltcG9ydCBnZXRPZmZzZXRQYXJlbnQgZnJvbSBcIi4vZ2V0T2Zmc2V0UGFyZW50LmpzXCI7XG5pbXBvcnQgZ2V0RG9jdW1lbnRFbGVtZW50IGZyb20gXCIuL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IGdldENvbXB1dGVkU3R5bGUgZnJvbSBcIi4vZ2V0Q29tcHV0ZWRTdHlsZS5qc1wiO1xuaW1wb3J0IHsgaXNFbGVtZW50LCBpc0hUTUxFbGVtZW50IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCBmcm9tIFwiLi9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCBnZXRQYXJlbnROb2RlIGZyb20gXCIuL2dldFBhcmVudE5vZGUuanNcIjtcbmltcG9ydCBjb250YWlucyBmcm9tIFwiLi9jb250YWlucy5qc1wiO1xuaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5pbXBvcnQgcmVjdFRvQ2xpZW50UmVjdCBmcm9tIFwiLi4vdXRpbHMvcmVjdFRvQ2xpZW50UmVjdC5qc1wiO1xuaW1wb3J0IHsgbWF4LCBtaW4gfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC5qc1wiO1xuXG5mdW5jdGlvbiBnZXRJbm5lckJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50KSB7XG4gIHZhciByZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQpO1xuICByZWN0LnRvcCA9IHJlY3QudG9wICsgZWxlbWVudC5jbGllbnRUb3A7XG4gIHJlY3QubGVmdCA9IHJlY3QubGVmdCArIGVsZW1lbnQuY2xpZW50TGVmdDtcbiAgcmVjdC5ib3R0b20gPSByZWN0LnRvcCArIGVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICByZWN0LnJpZ2h0ID0gcmVjdC5sZWZ0ICsgZWxlbWVudC5jbGllbnRXaWR0aDtcbiAgcmVjdC53aWR0aCA9IGVsZW1lbnQuY2xpZW50V2lkdGg7XG4gIHJlY3QuaGVpZ2h0ID0gZWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gIHJlY3QueCA9IHJlY3QubGVmdDtcbiAgcmVjdC55ID0gcmVjdC50b3A7XG4gIHJldHVybiByZWN0O1xufVxuXG5mdW5jdGlvbiBnZXRDbGllbnRSZWN0RnJvbU1peGVkVHlwZShlbGVtZW50LCBjbGlwcGluZ1BhcmVudCkge1xuICByZXR1cm4gY2xpcHBpbmdQYXJlbnQgPT09IHZpZXdwb3J0ID8gcmVjdFRvQ2xpZW50UmVjdChnZXRWaWV3cG9ydFJlY3QoZWxlbWVudCkpIDogaXNIVE1MRWxlbWVudChjbGlwcGluZ1BhcmVudCkgPyBnZXRJbm5lckJvdW5kaW5nQ2xpZW50UmVjdChjbGlwcGluZ1BhcmVudCkgOiByZWN0VG9DbGllbnRSZWN0KGdldERvY3VtZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpKTtcbn0gLy8gQSBcImNsaXBwaW5nIHBhcmVudFwiIGlzIGFuIG92ZXJmbG93YWJsZSBjb250YWluZXIgd2l0aCB0aGUgY2hhcmFjdGVyaXN0aWMgb2Zcbi8vIGNsaXBwaW5nIChvciBoaWRpbmcpIG92ZXJmbG93aW5nIGVsZW1lbnRzIHdpdGggYSBwb3NpdGlvbiBkaWZmZXJlbnQgZnJvbVxuLy8gYGluaXRpYWxgXG5cblxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdQYXJlbnRzKGVsZW1lbnQpIHtcbiAgdmFyIGNsaXBwaW5nUGFyZW50cyA9IGxpc3RTY3JvbGxQYXJlbnRzKGdldFBhcmVudE5vZGUoZWxlbWVudCkpO1xuICB2YXIgY2FuRXNjYXBlQ2xpcHBpbmcgPSBbJ2Fic29sdXRlJywgJ2ZpeGVkJ10uaW5kZXhPZihnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uKSA+PSAwO1xuICB2YXIgY2xpcHBlckVsZW1lbnQgPSBjYW5Fc2NhcGVDbGlwcGluZyAmJiBpc0hUTUxFbGVtZW50KGVsZW1lbnQpID8gZ2V0T2Zmc2V0UGFyZW50KGVsZW1lbnQpIDogZWxlbWVudDtcblxuICBpZiAoIWlzRWxlbWVudChjbGlwcGVyRWxlbWVudCkpIHtcbiAgICByZXR1cm4gW107XG4gIH0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2Zsb3cvaXNzdWVzLzE0MTRcblxuXG4gIHJldHVybiBjbGlwcGluZ1BhcmVudHMuZmlsdGVyKGZ1bmN0aW9uIChjbGlwcGluZ1BhcmVudCkge1xuICAgIHJldHVybiBpc0VsZW1lbnQoY2xpcHBpbmdQYXJlbnQpICYmIGNvbnRhaW5zKGNsaXBwaW5nUGFyZW50LCBjbGlwcGVyRWxlbWVudCkgJiYgZ2V0Tm9kZU5hbWUoY2xpcHBpbmdQYXJlbnQpICE9PSAnYm9keSc7XG4gIH0pO1xufSAvLyBHZXRzIHRoZSBtYXhpbXVtIGFyZWEgdGhhdCB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIGluIGR1ZSB0byBhbnkgbnVtYmVyIG9mXG4vLyBjbGlwcGluZyBwYXJlbnRzXG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Q2xpcHBpbmdSZWN0KGVsZW1lbnQsIGJvdW5kYXJ5LCByb290Qm91bmRhcnkpIHtcbiAgdmFyIG1haW5DbGlwcGluZ1BhcmVudHMgPSBib3VuZGFyeSA9PT0gJ2NsaXBwaW5nUGFyZW50cycgPyBnZXRDbGlwcGluZ1BhcmVudHMoZWxlbWVudCkgOiBbXS5jb25jYXQoYm91bmRhcnkpO1xuICB2YXIgY2xpcHBpbmdQYXJlbnRzID0gW10uY29uY2F0KG1haW5DbGlwcGluZ1BhcmVudHMsIFtyb290Qm91bmRhcnldKTtcbiAgdmFyIGZpcnN0Q2xpcHBpbmdQYXJlbnQgPSBjbGlwcGluZ1BhcmVudHNbMF07XG4gIHZhciBjbGlwcGluZ1JlY3QgPSBjbGlwcGluZ1BhcmVudHMucmVkdWNlKGZ1bmN0aW9uIChhY2NSZWN0LCBjbGlwcGluZ1BhcmVudCkge1xuICAgIHZhciByZWN0ID0gZ2V0Q2xpZW50UmVjdEZyb21NaXhlZFR5cGUoZWxlbWVudCwgY2xpcHBpbmdQYXJlbnQpO1xuICAgIGFjY1JlY3QudG9wID0gbWF4KHJlY3QudG9wLCBhY2NSZWN0LnRvcCk7XG4gICAgYWNjUmVjdC5yaWdodCA9IG1pbihyZWN0LnJpZ2h0LCBhY2NSZWN0LnJpZ2h0KTtcbiAgICBhY2NSZWN0LmJvdHRvbSA9IG1pbihyZWN0LmJvdHRvbSwgYWNjUmVjdC5ib3R0b20pO1xuICAgIGFjY1JlY3QubGVmdCA9IG1heChyZWN0LmxlZnQsIGFjY1JlY3QubGVmdCk7XG4gICAgcmV0dXJuIGFjY1JlY3Q7XG4gIH0sIGdldENsaWVudFJlY3RGcm9tTWl4ZWRUeXBlKGVsZW1lbnQsIGZpcnN0Q2xpcHBpbmdQYXJlbnQpKTtcbiAgY2xpcHBpbmdSZWN0LndpZHRoID0gY2xpcHBpbmdSZWN0LnJpZ2h0IC0gY2xpcHBpbmdSZWN0LmxlZnQ7XG4gIGNsaXBwaW5nUmVjdC5oZWlnaHQgPSBjbGlwcGluZ1JlY3QuYm90dG9tIC0gY2xpcHBpbmdSZWN0LnRvcDtcbiAgY2xpcHBpbmdSZWN0LnggPSBjbGlwcGluZ1JlY3QubGVmdDtcbiAgY2xpcHBpbmdSZWN0LnkgPSBjbGlwcGluZ1JlY3QudG9wO1xuICByZXR1cm4gY2xpcHBpbmdSZWN0O1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js": /*!***********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getCompositeRect)\n/* harmony export */ });\n/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getBoundingClientRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js\");\n/* harmony import */ var _getNodeScroll_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./getNodeScroll.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js\");\n/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getNodeName.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\");\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js\");\n/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getDocumentElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\");\n/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./isScrollParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js\");\n\n\n\n\n\n\n\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = rect.width / element.offsetWidth || 1;\n var scaleY = rect.height / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nfunction getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(offsetParent);\n var offsetParentIsScaled = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(offsetParent) && isElementScaled(offsetParent);\n var documentElement = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(offsetParent);\n var rect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(documentElement)) {\n scroll = (0,_getNodeScroll_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(offsetParent);\n }\n\n if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(offsetParent)) {\n offsets = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRDb21wb3NpdGVSZWN0LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQStEO0FBQ2hCO0FBQ0o7QUFDSztBQUNXO0FBQ0Y7QUFDUjs7QUFFakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjs7O0FBR2U7QUFDZjtBQUNBO0FBQ0E7O0FBRUEsZ0NBQWdDLDZEQUFhO0FBQzdDLDZCQUE2Qiw2REFBYTtBQUMxQyx3QkFBd0Isa0VBQWtCO0FBQzFDLGFBQWEscUVBQXFCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxRQUFRLDJEQUFXO0FBQ25CLElBQUksOERBQWM7QUFDbEIsZUFBZSw2REFBYTtBQUM1Qjs7QUFFQSxRQUFRLDZEQUFhO0FBQ3JCLGdCQUFnQixxRUFBcUI7QUFDckM7QUFDQTtBQUNBLE1BQU07QUFDTixrQkFBa0IsbUVBQW1CO0FBQ3JDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRDb21wb3NpdGVSZWN0LmpzP2QxMTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCBmcm9tIFwiLi9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCBnZXROb2RlU2Nyb2xsIGZyb20gXCIuL2dldE5vZGVTY3JvbGwuanNcIjtcbmltcG9ydCBnZXROb2RlTmFtZSBmcm9tIFwiLi9nZXROb2RlTmFtZS5qc1wiO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCBnZXRXaW5kb3dTY3JvbGxCYXJYIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbEJhclguanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgaXNTY3JvbGxQYXJlbnQgZnJvbSBcIi4vaXNTY3JvbGxQYXJlbnQuanNcIjtcblxuZnVuY3Rpb24gaXNFbGVtZW50U2NhbGVkKGVsZW1lbnQpIHtcbiAgdmFyIHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB2YXIgc2NhbGVYID0gcmVjdC53aWR0aCAvIGVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMTtcbiAgdmFyIHNjYWxlWSA9IHJlY3QuaGVpZ2h0IC8gZWxlbWVudC5vZmZzZXRIZWlnaHQgfHwgMTtcbiAgcmV0dXJuIHNjYWxlWCAhPT0gMSB8fCBzY2FsZVkgIT09IDE7XG59IC8vIFJldHVybnMgdGhlIGNvbXBvc2l0ZSByZWN0IG9mIGFuIGVsZW1lbnQgcmVsYXRpdmUgdG8gaXRzIG9mZnNldFBhcmVudC5cbi8vIENvbXBvc2l0ZSBtZWFucyBpdCB0YWtlcyBpbnRvIGFjY291bnQgdHJhbnNmb3JtcyBhcyB3ZWxsIGFzIGxheW91dC5cblxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRDb21wb3NpdGVSZWN0KGVsZW1lbnRPclZpcnR1YWxFbGVtZW50LCBvZmZzZXRQYXJlbnQsIGlzRml4ZWQpIHtcbiAgaWYgKGlzRml4ZWQgPT09IHZvaWQgMCkge1xuICAgIGlzRml4ZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHZhciBpc09mZnNldFBhcmVudEFuRWxlbWVudCA9IGlzSFRNTEVsZW1lbnQob2Zmc2V0UGFyZW50KTtcbiAgdmFyIG9mZnNldFBhcmVudElzU2NhbGVkID0gaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpICYmIGlzRWxlbWVudFNjYWxlZChvZmZzZXRQYXJlbnQpO1xuICB2YXIgZG9jdW1lbnRFbGVtZW50ID0gZ2V0RG9jdW1lbnRFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIHZhciByZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnRPclZpcnR1YWxFbGVtZW50LCBvZmZzZXRQYXJlbnRJc1NjYWxlZCk7XG4gIHZhciBzY3JvbGwgPSB7XG4gICAgc2Nyb2xsTGVmdDogMCxcbiAgICBzY3JvbGxUb3A6IDBcbiAgfTtcbiAgdmFyIG9mZnNldHMgPSB7XG4gICAgeDogMCxcbiAgICB5OiAwXG4gIH07XG5cbiAgaWYgKGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50IHx8ICFpc09mZnNldFBhcmVudEFuRWxlbWVudCAmJiAhaXNGaXhlZCkge1xuICAgIGlmIChnZXROb2RlTmFtZShvZmZzZXRQYXJlbnQpICE9PSAnYm9keScgfHwgLy8gaHR0cHM6Ly9naXRodWIuY29tL3BvcHBlcmpzL3BvcHBlci1jb3JlL2lzc3Vlcy8xMDc4XG4gICAgaXNTY3JvbGxQYXJlbnQoZG9jdW1lbnRFbGVtZW50KSkge1xuICAgICAgc2Nyb2xsID0gZ2V0Tm9kZVNjcm9sbChvZmZzZXRQYXJlbnQpO1xuICAgIH1cblxuICAgIGlmIChpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCkpIHtcbiAgICAgIG9mZnNldHMgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3Qob2Zmc2V0UGFyZW50LCB0cnVlKTtcbiAgICAgIG9mZnNldHMueCArPSBvZmZzZXRQYXJlbnQuY2xpZW50TGVmdDtcbiAgICAgIG9mZnNldHMueSArPSBvZmZzZXRQYXJlbnQuY2xpZW50VG9wO1xuICAgIH0gZWxzZSBpZiAoZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICBvZmZzZXRzLnggPSBnZXRXaW5kb3dTY3JvbGxCYXJYKGRvY3VtZW50RWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB4OiByZWN0LmxlZnQgKyBzY3JvbGwuc2Nyb2xsTGVmdCAtIG9mZnNldHMueCxcbiAgICB5OiByZWN0LnRvcCArIHNjcm9sbC5zY3JvbGxUb3AgLSBvZmZzZXRzLnksXG4gICAgd2lkdGg6IHJlY3Qud2lkdGgsXG4gICAgaGVpZ2h0OiByZWN0LmhlaWdodFxuICB9O1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js": /*!***********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getComputedStyle)\n/* harmony export */ });\n/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n\nfunction getComputedStyle(element) {\n return (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element).getComputedStyle(element);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRDb21wdXRlZFN0eWxlLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXVDO0FBQ3hCO0FBQ2YsU0FBUyx5REFBUztBQUNsQiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldENvbXB1dGVkU3R5bGUuanM/YjUxOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuL2dldFdpbmRvdy5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KSB7XG4gIHJldHVybiBnZXRXaW5kb3coZWxlbWVudCkuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js": /*!*************************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getDocumentElement)\n/* harmony export */ });\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n\nfunction getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return (((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXREb2N1bWVudEVsZW1lbnQuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBNEM7QUFDN0I7QUFDZjtBQUNBLFdBQVcseURBQVM7QUFDcEI7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldERvY3VtZW50RWxlbWVudC5qcz9lZjUyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSB7XG4gIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl06IGFzc3VtZSBib2R5IGlzIGFsd2F5cyBhdmFpbGFibGVcbiAgcmV0dXJuICgoaXNFbGVtZW50KGVsZW1lbnQpID8gZWxlbWVudC5vd25lckRvY3VtZW50IDogLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG4gIGVsZW1lbnQuZG9jdW1lbnQpIHx8IHdpbmRvdy5kb2N1bWVudCkuZG9jdW1lbnRFbGVtZW50O1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js": /*!**********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getDocumentRect)\n/* harmony export */ });\n/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getDocumentElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\");\n/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getComputedStyle.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js\");\n/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js\");\n/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getWindowScroll.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js\");\n/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/math.js */ \"./node_modules/@popperjs/core/lib/utils/math.js\");\n\n\n\n\n // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nfunction getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element);\n var winScroll = (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(element);\n var y = -winScroll.scrollTop;\n\n if ((0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(body || html).direction === 'rtl') {\n x += (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXREb2N1bWVudFJlY3QuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQXlEO0FBQ0o7QUFDTTtBQUNSO0FBQ1osQ0FBQztBQUN4Qzs7QUFFZTtBQUNmOztBQUVBLGFBQWEsa0VBQWtCO0FBQy9CLGtCQUFrQiwrREFBZTtBQUNqQztBQUNBLGNBQWMsbURBQUc7QUFDakIsZUFBZSxtREFBRztBQUNsQixrQ0FBa0MsbUVBQW1CO0FBQ3JEOztBQUVBLE1BQU0sZ0VBQWdCO0FBQ3RCLFNBQVMsbURBQUc7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldERvY3VtZW50UmVjdC5qcz8zZTc5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgZ2V0Q29tcHV0ZWRTdHlsZSBmcm9tIFwiLi9nZXRDb21wdXRlZFN0eWxlLmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93U2Nyb2xsQmFyWCBmcm9tIFwiLi9nZXRXaW5kb3dTY3JvbGxCYXJYLmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93U2Nyb2xsIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbC5qc1wiO1xuaW1wb3J0IHsgbWF4IH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjsgLy8gR2V0cyB0aGUgZW50aXJlIHNpemUgb2YgdGhlIHNjcm9sbGFibGUgZG9jdW1lbnQgYXJlYSwgZXZlbiBleHRlbmRpbmcgb3V0c2lkZVxuLy8gb2YgdGhlIGA8aHRtbD5gIGFuZCBgPGJvZHk+YCByZWN0IGJvdW5kcyBpZiBob3Jpem9udGFsbHkgc2Nyb2xsYWJsZVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXREb2N1bWVudFJlY3QoZWxlbWVudCkge1xuICB2YXIgX2VsZW1lbnQkb3duZXJEb2N1bWVuO1xuXG4gIHZhciBodG1sID0gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpO1xuICB2YXIgd2luU2Nyb2xsID0gZ2V0V2luZG93U2Nyb2xsKGVsZW1lbnQpO1xuICB2YXIgYm9keSA9IChfZWxlbWVudCRvd25lckRvY3VtZW4gPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfZWxlbWVudCRvd25lckRvY3VtZW4uYm9keTtcbiAgdmFyIHdpZHRoID0gbWF4KGh0bWwuc2Nyb2xsV2lkdGgsIGh0bWwuY2xpZW50V2lkdGgsIGJvZHkgPyBib2R5LnNjcm9sbFdpZHRoIDogMCwgYm9keSA/IGJvZHkuY2xpZW50V2lkdGggOiAwKTtcbiAgdmFyIGhlaWdodCA9IG1heChodG1sLnNjcm9sbEhlaWdodCwgaHRtbC5jbGllbnRIZWlnaHQsIGJvZHkgPyBib2R5LnNjcm9sbEhlaWdodCA6IDAsIGJvZHkgPyBib2R5LmNsaWVudEhlaWdodCA6IDApO1xuICB2YXIgeCA9IC13aW5TY3JvbGwuc2Nyb2xsTGVmdCArIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCk7XG4gIHZhciB5ID0gLXdpblNjcm9sbC5zY3JvbGxUb3A7XG5cbiAgaWYgKGdldENvbXB1dGVkU3R5bGUoYm9keSB8fCBodG1sKS5kaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgeCArPSBtYXgoaHRtbC5jbGllbnRXaWR0aCwgYm9keSA/IGJvZHkuY2xpZW50V2lkdGggOiAwKSAtIHdpZHRoO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgeDogeCxcbiAgICB5OiB5XG4gIH07XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js": /*!***************************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getHTMLElementScroll)\n/* harmony export */ });\nfunction getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRIVE1MRWxlbWVudFNjcm9sbC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0SFRNTEVsZW1lbnRTY3JvbGwuanM/NWZlNiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRIVE1MRWxlbWVudFNjcm9sbChlbGVtZW50KSB7XG4gIHJldHVybiB7XG4gICAgc2Nyb2xsTGVmdDogZWxlbWVudC5zY3JvbGxMZWZ0LFxuICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxUb3BcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js": /*!********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getLayoutRect)\n/* harmony export */ });\n/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js\");\n // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nfunction getLayoutRect(element) {\n var clientRect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRMYXlvdXRSZWN0LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQStELENBQUM7QUFDaEU7O0FBRWU7QUFDZixtQkFBbUIscUVBQXFCLFdBQVc7QUFDbkQ7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0TGF5b3V0UmVjdC5qcz9lMmU5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzXCI7IC8vIFJldHVybnMgdGhlIGxheW91dCByZWN0IG9mIGFuIGVsZW1lbnQgcmVsYXRpdmUgdG8gaXRzIG9mZnNldFBhcmVudC4gTGF5b3V0XG4vLyBtZWFucyBpdCBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IHRyYW5zZm9ybXMuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldExheW91dFJlY3QoZWxlbWVudCkge1xuICB2YXIgY2xpZW50UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50KTsgLy8gVXNlIHRoZSBjbGllbnRSZWN0IHNpemVzIGlmIGl0J3Mgbm90IGJlZW4gdHJhbnNmb3JtZWQuXG4gIC8vIEZpeGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvMTIyM1xuXG4gIHZhciB3aWR0aCA9IGVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gIHZhciBoZWlnaHQgPSBlbGVtZW50Lm9mZnNldEhlaWdodDtcblxuICBpZiAoTWF0aC5hYnMoY2xpZW50UmVjdC53aWR0aCAtIHdpZHRoKSA8PSAxKSB7XG4gICAgd2lkdGggPSBjbGllbnRSZWN0LndpZHRoO1xuICB9XG5cbiAgaWYgKE1hdGguYWJzKGNsaWVudFJlY3QuaGVpZ2h0IC0gaGVpZ2h0KSA8PSAxKSB7XG4gICAgaGVpZ2h0ID0gY2xpZW50UmVjdC5oZWlnaHQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHg6IGVsZW1lbnQub2Zmc2V0TGVmdCxcbiAgICB5OiBlbGVtZW50Lm9mZnNldFRvcCxcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHRcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js": /*!******************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getNodeName)\n/* harmony export */ });\nfunction getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXROb2RlTmFtZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0Tm9kZU5hbWUuanM/NTc4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXROb2RlTmFtZShlbGVtZW50KSB7XG4gIHJldHVybiBlbGVtZW50ID8gKGVsZW1lbnQubm9kZU5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCkgOiBudWxsO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js": /*!********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getNodeScroll)\n/* harmony export */ });\n/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindowScroll.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js\");\n/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n/* harmony import */ var _getHTMLElementScroll_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getHTMLElementScroll.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js\");\n\n\n\n\nfunction getNodeScroll(node) {\n if (node === (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node) || !(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(node)) {\n return (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(node);\n } else {\n return (0,_getHTMLElementScroll_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(node);\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXROb2RlU2Nyb2xsLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQW1EO0FBQ1o7QUFDUztBQUNhO0FBQzlDO0FBQ2YsZUFBZSx5REFBUyxXQUFXLDZEQUFhO0FBQ2hELFdBQVcsK0RBQWU7QUFDMUIsSUFBSTtBQUNKLFdBQVcsb0VBQW9CO0FBQy9CO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXROb2RlU2Nyb2xsLmpzPzE5OWEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldFdpbmRvd1Njcm9sbCBmcm9tIFwiLi9nZXRXaW5kb3dTY3JvbGwuanNcIjtcbmltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5pbXBvcnQgeyBpc0hUTUxFbGVtZW50IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IGdldEhUTUxFbGVtZW50U2Nyb2xsIGZyb20gXCIuL2dldEhUTUxFbGVtZW50U2Nyb2xsLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXROb2RlU2Nyb2xsKG5vZGUpIHtcbiAgaWYgKG5vZGUgPT09IGdldFdpbmRvdyhub2RlKSB8fCAhaXNIVE1MRWxlbWVudChub2RlKSkge1xuICAgIHJldHVybiBnZXRXaW5kb3dTY3JvbGwobm9kZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGdldEhUTUxFbGVtZW50U2Nyb2xsKG5vZGUpO1xuICB9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js": /*!**********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getOffsetParent)\n/* harmony export */ });\n/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getNodeName.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\");\n/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getComputedStyle.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js\");\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n/* harmony import */ var _isTableElement_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isTableElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js\");\n/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getParentNode.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js\");\n\n\n\n\n\n\n\nfunction getTrueOffsetParent(element) {\n if (!(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || // https://github.com/popperjs/popper-core/issues/837\n (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = (0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(element);\n\n while ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(currentNode) && ['html', 'body'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(currentNode)) < 0) {\n var css = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nfunction getOffsetParent(element) {\n var window = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && (0,_isTableElement_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(offsetParent) && (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(offsetParent) === 'html' || (0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(offsetParent) === 'body' && (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRPZmZzZXRQYXJlbnQuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUF1QztBQUNJO0FBQ1U7QUFDTDtBQUNDO0FBQ0Y7O0FBRS9DO0FBQ0EsT0FBTyw2REFBYTtBQUNwQixFQUFFLGdFQUFnQjtBQUNsQjtBQUNBOztBQUVBO0FBQ0EsRUFBRTtBQUNGOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUEsY0FBYyw2REFBYTtBQUMzQjtBQUNBLHFCQUFxQixnRUFBZ0I7O0FBRXJDO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG9CQUFvQiw2REFBYTs7QUFFakMsU0FBUyw2REFBYSwwQ0FBMEMsMkRBQVc7QUFDM0UsY0FBYyxnRUFBZ0IsZUFBZTtBQUM3QztBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTtBQUNGOzs7QUFHZTtBQUNmLGVBQWUseURBQVM7QUFDeEI7O0FBRUEseUJBQXlCLDhEQUFjLGtCQUFrQixnRUFBZ0I7QUFDekU7QUFDQTs7QUFFQSx1QkFBdUIsMkRBQVcsNkJBQTZCLDJEQUFXLDZCQUE2QixnRUFBZ0I7QUFDdkg7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0T2Zmc2V0UGFyZW50LmpzP2I2MmIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCBnZXROb2RlTmFtZSBmcm9tIFwiLi9nZXROb2RlTmFtZS5qc1wiO1xuaW1wb3J0IGdldENvbXB1dGVkU3R5bGUgZnJvbSBcIi4vZ2V0Q29tcHV0ZWRTdHlsZS5qc1wiO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCBpc1RhYmxlRWxlbWVudCBmcm9tIFwiLi9pc1RhYmxlRWxlbWVudC5qc1wiO1xuaW1wb3J0IGdldFBhcmVudE5vZGUgZnJvbSBcIi4vZ2V0UGFyZW50Tm9kZS5qc1wiO1xuXG5mdW5jdGlvbiBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQpIHtcbiAgaWYgKCFpc0hUTUxFbGVtZW50KGVsZW1lbnQpIHx8IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvODM3XG4gIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50Lm9mZnNldFBhcmVudDtcbn0gLy8gYC5vZmZzZXRQYXJlbnRgIHJlcG9ydHMgYG51bGxgIGZvciBmaXhlZCBlbGVtZW50cywgd2hpbGUgYWJzb2x1dGUgZWxlbWVudHNcbi8vIHJldHVybiB0aGUgY29udGFpbmluZyBibG9ja1xuXG5cbmZ1bmN0aW9uIGdldENvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB7XG4gIHZhciBpc0ZpcmVmb3ggPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZignZmlyZWZveCcpICE9PSAtMTtcbiAgdmFyIGlzSUUgPSBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ1RyaWRlbnQnKSAhPT0gLTE7XG5cbiAgaWYgKGlzSUUgJiYgaXNIVE1MRWxlbWVudChlbGVtZW50KSkge1xuICAgIC8vIEluIElFIDksIDEwIGFuZCAxMSBmaXhlZCBlbGVtZW50cyBjb250YWluaW5nIGJsb2NrIGlzIGFsd2F5cyBlc3RhYmxpc2hlZCBieSB0aGUgdmlld3BvcnRcbiAgICB2YXIgZWxlbWVudENzcyA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG5cbiAgICBpZiAoZWxlbWVudENzcy5wb3NpdGlvbiA9PT0gJ2ZpeGVkJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgdmFyIGN1cnJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShlbGVtZW50KTtcblxuICB3aGlsZSAoaXNIVE1MRWxlbWVudChjdXJyZW50Tm9kZSkgJiYgWydodG1sJywgJ2JvZHknXS5pbmRleE9mKGdldE5vZGVOYW1lKGN1cnJlbnROb2RlKSkgPCAwKSB7XG4gICAgdmFyIGNzcyA9IGdldENvbXB1dGVkU3R5bGUoY3VycmVudE5vZGUpOyAvLyBUaGlzIGlzIG5vbi1leGhhdXN0aXZlIGJ1dCBjb3ZlcnMgdGhlIG1vc3QgY29tbW9uIENTUyBwcm9wZXJ0aWVzIHRoYXRcbiAgICAvLyBjcmVhdGUgYSBjb250YWluaW5nIGJsb2NrLlxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Db250YWluaW5nX2Jsb2NrI2lkZW50aWZ5aW5nX3RoZV9jb250YWluaW5nX2Jsb2NrXG5cbiAgICBpZiAoY3NzLnRyYW5zZm9ybSAhPT0gJ25vbmUnIHx8IGNzcy5wZXJzcGVjdGl2ZSAhPT0gJ25vbmUnIHx8IGNzcy5jb250YWluID09PSAncGFpbnQnIHx8IFsndHJhbnNmb3JtJywgJ3BlcnNwZWN0aXZlJ10uaW5kZXhPZihjc3Mud2lsbENoYW5nZSkgIT09IC0xIHx8IGlzRmlyZWZveCAmJiBjc3Mud2lsbENoYW5nZSA9PT0gJ2ZpbHRlcicgfHwgaXNGaXJlZm94ICYmIGNzcy5maWx0ZXIgJiYgY3NzLmZpbHRlciAhPT0gJ25vbmUnKSB7XG4gICAgICByZXR1cm4gY3VycmVudE5vZGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUucGFyZW50Tm9kZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn0gLy8gR2V0cyB0aGUgY2xvc2VzdCBhbmNlc3RvciBwb3NpdGlvbmVkIGVsZW1lbnQuIEhhbmRsZXMgc29tZSBlZGdlIGNhc2VzLFxuLy8gc3VjaCBhcyB0YWJsZSBhbmNlc3RvcnMgYW5kIGNyb3NzIGJyb3dzZXIgYnVncy5cblxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRPZmZzZXRQYXJlbnQoZWxlbWVudCkge1xuICB2YXIgd2luZG93ID0gZ2V0V2luZG93KGVsZW1lbnQpO1xuICB2YXIgb2Zmc2V0UGFyZW50ID0gZ2V0VHJ1ZU9mZnNldFBhcmVudChlbGVtZW50KTtcblxuICB3aGlsZSAob2Zmc2V0UGFyZW50ICYmIGlzVGFibGVFbGVtZW50KG9mZnNldFBhcmVudCkgJiYgZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJykge1xuICAgIG9mZnNldFBhcmVudCA9IGdldFRydWVPZmZzZXRQYXJlbnQob2Zmc2V0UGFyZW50KTtcbiAgfVxuXG4gIGlmIChvZmZzZXRQYXJlbnQgJiYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgPT09ICdodG1sJyB8fCBnZXROb2RlTmFtZShvZmZzZXRQYXJlbnQpID09PSAnYm9keScgJiYgZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJykpIHtcbiAgICByZXR1cm4gd2luZG93O1xuICB9XG5cbiAgcmV0dXJuIG9mZnNldFBhcmVudCB8fCBnZXRDb250YWluaW5nQmxvY2soZWxlbWVudCkgfHwgd2luZG93O1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js": /*!********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getParentNode)\n/* harmony export */ });\n/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\");\n/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getDocumentElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\");\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n\n\n\nfunction getParentNode(element) {\n if ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isShadowRoot)(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(element) // fallback\n\n );\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRQYXJlbnROb2RlLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBMkM7QUFDYztBQUNWO0FBQ2hDO0FBQ2YsTUFBTSwyREFBVztBQUNqQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLDREQUFZO0FBQ2hCO0FBQ0EsSUFBSSxrRUFBa0I7O0FBRXRCO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRQYXJlbnROb2RlLmpzPzI4YmYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5pbXBvcnQgZ2V0RG9jdW1lbnRFbGVtZW50IGZyb20gXCIuL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IHsgaXNTaGFkb3dSb290IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0UGFyZW50Tm9kZShlbGVtZW50KSB7XG4gIGlmIChnZXROb2RlTmFtZShlbGVtZW50KSA9PT0gJ2h0bWwnKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cblxuICByZXR1cm4gKC8vIHRoaXMgaXMgYSBxdWlja2VyIChidXQgbGVzcyB0eXBlIHNhZmUpIHdheSB0byBzYXZlIHF1aXRlIHNvbWUgYnl0ZXMgZnJvbSB0aGUgYnVuZGxlXG4gICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXVxuICAgIC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuICAgIGVsZW1lbnQuYXNzaWduZWRTbG90IHx8IC8vIHN0ZXAgaW50byB0aGUgc2hhZG93IERPTSBvZiB0aGUgcGFyZW50IG9mIGEgc2xvdHRlZCBub2RlXG4gICAgZWxlbWVudC5wYXJlbnROb2RlIHx8ICggLy8gRE9NIEVsZW1lbnQgZGV0ZWN0ZWRcbiAgICBpc1NoYWRvd1Jvb3QoZWxlbWVudCkgPyBlbGVtZW50Lmhvc3QgOiBudWxsKSB8fCAvLyBTaGFkb3dSb290IGRldGVjdGVkXG4gICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtY2FsbF06IEhUTUxFbGVtZW50IGlzIGEgTm9kZVxuICAgIGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSAvLyBmYWxsYmFja1xuXG4gICk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js": /*!**********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getScrollParent)\n/* harmony export */ });\n/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getParentNode.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js\");\n/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isScrollParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js\");\n/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\");\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n\n\n\n\nfunction getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(node) && (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(node)) {\n return node;\n }\n\n return getScrollParent((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(node));\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRTY3JvbGxQYXJlbnQuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBK0M7QUFDRTtBQUNOO0FBQ0s7QUFDakM7QUFDZiw0Q0FBNEMsMkRBQVc7QUFDdkQ7QUFDQTtBQUNBOztBQUVBLE1BQU0sNkRBQWEsVUFBVSw4REFBYztBQUMzQztBQUNBOztBQUVBLHlCQUF5Qiw2REFBYTtBQUN0QyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFNjcm9sbFBhcmVudC5qcz85ZDBlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRQYXJlbnROb2RlIGZyb20gXCIuL2dldFBhcmVudE5vZGUuanNcIjtcbmltcG9ydCBpc1Njcm9sbFBhcmVudCBmcm9tIFwiLi9pc1Njcm9sbFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5pbXBvcnQgeyBpc0hUTUxFbGVtZW50IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0U2Nyb2xsUGFyZW50KG5vZGUpIHtcbiAgaWYgKFsnaHRtbCcsICdib2R5JywgJyNkb2N1bWVudCddLmluZGV4T2YoZ2V0Tm9kZU5hbWUobm9kZSkpID49IDApIHtcbiAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dOiBhc3N1bWUgYm9keSBpcyBhbHdheXMgYXZhaWxhYmxlXG4gICAgcmV0dXJuIG5vZGUub3duZXJEb2N1bWVudC5ib2R5O1xuICB9XG5cbiAgaWYgKGlzSFRNTEVsZW1lbnQobm9kZSkgJiYgaXNTY3JvbGxQYXJlbnQobm9kZSkpIHtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIHJldHVybiBnZXRTY3JvbGxQYXJlbnQoZ2V0UGFyZW50Tm9kZShub2RlKSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js": /*!**********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getViewportRect)\n/* harmony export */ });\n/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getDocumentElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\");\n/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js\");\n\n\n\nfunction getViewportRect(element) {\n var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element);\n var html = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(element),\n y: y\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRWaWV3cG9ydFJlY3QuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUF1QztBQUNrQjtBQUNFO0FBQzVDO0FBQ2YsWUFBWSx5REFBUztBQUNyQixhQUFhLGtFQUFrQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esb0NBQW9DLHNDQUFzQztBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsbUVBQW1CO0FBQzlCO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFZpZXdwb3J0UmVjdC5qcz83YzczIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5pbXBvcnQgZ2V0RG9jdW1lbnRFbGVtZW50IGZyb20gXCIuL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IGdldFdpbmRvd1Njcm9sbEJhclggZnJvbSBcIi4vZ2V0V2luZG93U2Nyb2xsQmFyWC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Vmlld3BvcnRSZWN0KGVsZW1lbnQpIHtcbiAgdmFyIHdpbiA9IGdldFdpbmRvdyhlbGVtZW50KTtcbiAgdmFyIGh0bWwgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XG4gIHZhciB2aXN1YWxWaWV3cG9ydCA9IHdpbi52aXN1YWxWaWV3cG9ydDtcbiAgdmFyIHdpZHRoID0gaHRtbC5jbGllbnRXaWR0aDtcbiAgdmFyIGhlaWdodCA9IGh0bWwuY2xpZW50SGVpZ2h0O1xuICB2YXIgeCA9IDA7XG4gIHZhciB5ID0gMDsgLy8gTkI6IFRoaXMgaXNuJ3Qgc3VwcG9ydGVkIG9uIGlPUyA8PSAxMi4gSWYgdGhlIGtleWJvYXJkIGlzIG9wZW4sIHRoZSBwb3BwZXJcbiAgLy8gY2FuIGJlIG9ic2N1cmVkIHVuZGVybmVhdGggaXQuXG4gIC8vIEFsc28sIGBodG1sLmNsaWVudEhlaWdodGAgYWRkcyB0aGUgYm90dG9tIGJhciBoZWlnaHQgaW4gU2FmYXJpIGlPUywgZXZlblxuICAvLyBpZiBpdCBpc24ndCBvcGVuLCBzbyBpZiB0aGlzIGlzbid0IGF2YWlsYWJsZSwgdGhlIHBvcHBlciB3aWxsIGJlIGRldGVjdGVkXG4gIC8vIHRvIG92ZXJmbG93IHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbiB0b28gZWFybHkuXG5cbiAgaWYgKHZpc3VhbFZpZXdwb3J0KSB7XG4gICAgd2lkdGggPSB2aXN1YWxWaWV3cG9ydC53aWR0aDtcbiAgICBoZWlnaHQgPSB2aXN1YWxWaWV3cG9ydC5oZWlnaHQ7IC8vIFVzZXMgTGF5b3V0IFZpZXdwb3J0IChsaWtlIENocm9tZTsgU2FmYXJpIGRvZXMgbm90IGN1cnJlbnRseSlcbiAgICAvLyBJbiBDaHJvbWUsIGl0IHJldHVybnMgYSB2YWx1ZSB2ZXJ5IGNsb3NlIHRvIDAgKCsvLSkgYnV0IGNvbnRhaW5zIHJvdW5kaW5nXG4gICAgLy8gZXJyb3JzIGR1ZSB0byBmbG9hdGluZyBwb2ludCBudW1iZXJzLCBzbyB3ZSBuZWVkIHRvIGNoZWNrIHByZWNpc2lvbi5cbiAgICAvLyBTYWZhcmkgcmV0dXJucyBhIG51bWJlciA8PSAwLCB1c3VhbGx5IDwgLTEgd2hlbiBwaW5jaC16b29tZWRcbiAgICAvLyBGZWF0dXJlIGRldGVjdGlvbiBmYWlscyBpbiBtb2JpbGUgZW11bGF0aW9uIG1vZGUgaW4gQ2hyb21lLlxuICAgIC8vIE1hdGguYWJzKHdpbi5pbm5lcldpZHRoIC8gdmlzdWFsVmlld3BvcnQuc2NhbGUgLSB2aXN1YWxWaWV3cG9ydC53aWR0aCkgPFxuICAgIC8vIDAuMDAxXG4gICAgLy8gRmFsbGJhY2sgaGVyZTogXCJOb3QgU2FmYXJpXCIgdXNlckFnZW50XG5cbiAgICBpZiAoIS9eKCg/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpIHtcbiAgICAgIHggPSB2aXN1YWxWaWV3cG9ydC5vZmZzZXRMZWZ0O1xuICAgICAgeSA9IHZpc3VhbFZpZXdwb3J0Lm9mZnNldFRvcDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHdpZHRoOiB3aWR0aCxcbiAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICB4OiB4ICsgZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50KSxcbiAgICB5OiB5XG4gIH07XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js": /*!****************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindow.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getWindow)\n/* harmony export */ });\nfunction getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRXaW5kb3cuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRXaW5kb3cuanM/MWZjMCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRXaW5kb3cobm9kZSkge1xuICBpZiAobm9kZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHdpbmRvdztcbiAgfVxuXG4gIGlmIChub2RlLnRvU3RyaW5nKCkgIT09ICdbb2JqZWN0IFdpbmRvd10nKSB7XG4gICAgdmFyIG93bmVyRG9jdW1lbnQgPSBub2RlLm93bmVyRG9jdW1lbnQ7XG4gICAgcmV0dXJuIG93bmVyRG9jdW1lbnQgPyBvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3IHx8IHdpbmRvdyA6IHdpbmRvdztcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js": /*!**********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getWindowScroll)\n/* harmony export */ });\n/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n\nfunction getWindowScroll(node) {\n var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRXaW5kb3dTY3JvbGwuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBdUM7QUFDeEI7QUFDZixZQUFZLHlEQUFTO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0V2luZG93U2Nyb2xsLmpzP2EzMjEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFdpbmRvd1Njcm9sbChub2RlKSB7XG4gIHZhciB3aW4gPSBnZXRXaW5kb3cobm9kZSk7XG4gIHZhciBzY3JvbGxMZWZ0ID0gd2luLnBhZ2VYT2Zmc2V0O1xuICB2YXIgc2Nyb2xsVG9wID0gd2luLnBhZ2VZT2Zmc2V0O1xuICByZXR1cm4ge1xuICAgIHNjcm9sbExlZnQ6IHNjcm9sbExlZnQsXG4gICAgc2Nyb2xsVG9wOiBzY3JvbGxUb3BcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js": /*!**************************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getWindowScrollBarX)\n/* harmony export */ });\n/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js\");\n/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getDocumentElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\");\n/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindowScroll.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js\");\n\n\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(element)).left + (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(element).scrollLeft;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRXaW5kb3dTY3JvbGxCYXJYLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBK0Q7QUFDTjtBQUNOO0FBQ3BDO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLHFFQUFxQixDQUFDLGtFQUFrQixrQkFBa0IsK0RBQWU7QUFDbEYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRXaW5kb3dTY3JvbGxCYXJYLmpzPzYxMjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCBmcm9tIFwiLi9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93U2Nyb2xsIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50KSB7XG4gIC8vIElmIDxodG1sPiBoYXMgYSBDU1Mgd2lkdGggZ3JlYXRlciB0aGFuIHRoZSB2aWV3cG9ydCwgdGhlbiB0aGlzIHdpbGwgYmVcbiAgLy8gaW5jb3JyZWN0IGZvciBSVEwuXG4gIC8vIFBvcHBlciAxIGlzIGJyb2tlbiBpbiB0aGlzIGNhc2UgYW5kIG5ldmVyIGhhZCBhIGJ1ZyByZXBvcnQgc28gbGV0J3MgYXNzdW1lXG4gIC8vIGl0J3Mgbm90IGFuIGlzc3VlLiBJIGRvbid0IHRoaW5rIGFueW9uZSBldmVyIHNwZWNpZmllcyB3aWR0aCBvbiA8aHRtbD5cbiAgLy8gYW55d2F5LlxuICAvLyBCcm93c2VycyB3aGVyZSB0aGUgbGVmdCBzY3JvbGxiYXIgZG9lc24ndCBjYXVzZSBhbiBpc3N1ZSByZXBvcnQgYDBgIGZvclxuICAvLyB0aGlzIChlLmcuIEVkZ2UgMjAxOSwgSUUxMSwgU2FmYXJpKVxuICByZXR1cm4gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSkubGVmdCArIGdldFdpbmRvd1Njcm9sbChlbGVtZW50KS5zY3JvbGxMZWZ0O1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js": /*!*****************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"isElement\": () => (/* binding */ isElement),\n/* harmony export */ \"isHTMLElement\": () => (/* binding */ isHTMLElement),\n/* harmony export */ \"isShadowRoot\": () => (/* binding */ isShadowRoot)\n/* harmony export */ });\n/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n\n\nfunction isElement(node) {\n var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9pbnN0YW5jZU9mLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBdUM7O0FBRXZDO0FBQ0EsbUJBQW1CLHlEQUFTO0FBQzVCO0FBQ0E7O0FBRUE7QUFDQSxtQkFBbUIseURBQVM7QUFDNUI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG1CQUFtQix5REFBUztBQUM1QjtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qcz8yNzY3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5cbmZ1bmN0aW9uIGlzRWxlbWVudChub2RlKSB7XG4gIHZhciBPd25FbGVtZW50ID0gZ2V0V2luZG93KG5vZGUpLkVsZW1lbnQ7XG4gIHJldHVybiBub2RlIGluc3RhbmNlb2YgT3duRWxlbWVudCB8fCBub2RlIGluc3RhbmNlb2YgRWxlbWVudDtcbn1cblxuZnVuY3Rpb24gaXNIVE1MRWxlbWVudChub2RlKSB7XG4gIHZhciBPd25FbGVtZW50ID0gZ2V0V2luZG93KG5vZGUpLkhUTUxFbGVtZW50O1xuICByZXR1cm4gbm9kZSBpbnN0YW5jZW9mIE93bkVsZW1lbnQgfHwgbm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50O1xufVxuXG5mdW5jdGlvbiBpc1NoYWRvd1Jvb3Qobm9kZSkge1xuICAvLyBJRSAxMSBoYXMgbm8gU2hhZG93Um9vdFxuICBpZiAodHlwZW9mIFNoYWRvd1Jvb3QgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIE93bkVsZW1lbnQgPSBnZXRXaW5kb3cobm9kZSkuU2hhZG93Um9vdDtcbiAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBPd25FbGVtZW50IHx8IG5vZGUgaW5zdGFuY2VvZiBTaGFkb3dSb290O1xufVxuXG5leHBvcnQgeyBpc0VsZW1lbnQsIGlzSFRNTEVsZW1lbnQsIGlzU2hhZG93Um9vdCB9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js": /*!*********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isScrollParent)\n/* harmony export */ });\n/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getComputedStyle.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js\");\n\nfunction isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9pc1Njcm9sbFBhcmVudC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFxRDtBQUN0QztBQUNmO0FBQ0EsMEJBQTBCLGdFQUFnQjtBQUMxQztBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2lzU2Nyb2xsUGFyZW50LmpzP2FlNmMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldENvbXB1dGVkU3R5bGUgZnJvbSBcIi4vZ2V0Q29tcHV0ZWRTdHlsZS5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNTY3JvbGxQYXJlbnQoZWxlbWVudCkge1xuICAvLyBGaXJlZm94IHdhbnRzIHVzIHRvIGNoZWNrIGAteGAgYW5kIGAteWAgdmFyaWF0aW9ucyBhcyB3ZWxsXG4gIHZhciBfZ2V0Q29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCksXG4gICAgICBvdmVyZmxvdyA9IF9nZXRDb21wdXRlZFN0eWxlLm92ZXJmbG93LFxuICAgICAgb3ZlcmZsb3dYID0gX2dldENvbXB1dGVkU3R5bGUub3ZlcmZsb3dYLFxuICAgICAgb3ZlcmZsb3dZID0gX2dldENvbXB1dGVkU3R5bGUub3ZlcmZsb3dZO1xuXG4gIHJldHVybiAvYXV0b3xzY3JvbGx8b3ZlcmxheXxoaWRkZW4vLnRlc3Qob3ZlcmZsb3cgKyBvdmVyZmxvd1kgKyBvdmVyZmxvd1gpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js": /*!*********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isTableElement)\n/* harmony export */ });\n/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\");\n\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element)) >= 0;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9pc1RhYmxlRWxlbWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUEyQztBQUM1QjtBQUNmLHVDQUF1QywyREFBVztBQUNsRCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2lzVGFibGVFbGVtZW50LmpzP2I0NTEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1RhYmxlRWxlbWVudChlbGVtZW50KSB7XG4gIHJldHVybiBbJ3RhYmxlJywgJ3RkJywgJ3RoJ10uaW5kZXhPZihnZXROb2RlTmFtZShlbGVtZW50KSkgPj0gMDtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js": /*!************************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ listScrollParents)\n/* harmony export */ });\n/* harmony import */ var _getScrollParent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getScrollParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js\");\n/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getParentNode.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js\");\n/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isScrollParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js\");\n\n\n\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nfunction listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = (0,_getScrollParent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(target)));\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9saXN0U2Nyb2xsUGFyZW50cy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFtRDtBQUNKO0FBQ1I7QUFDVTtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWU7QUFDZjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEscUJBQXFCLCtEQUFlO0FBQ3BDO0FBQ0EsWUFBWSx5REFBUztBQUNyQiwrREFBK0QsOERBQWM7QUFDN0U7QUFDQTtBQUNBLHVDQUF1Qyw2REFBYTtBQUNwRCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2xpc3RTY3JvbGxQYXJlbnRzLmpzP2VhMWEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldFNjcm9sbFBhcmVudCBmcm9tIFwiLi9nZXRTY3JvbGxQYXJlbnQuanNcIjtcbmltcG9ydCBnZXRQYXJlbnROb2RlIGZyb20gXCIuL2dldFBhcmVudE5vZGUuanNcIjtcbmltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5pbXBvcnQgaXNTY3JvbGxQYXJlbnQgZnJvbSBcIi4vaXNTY3JvbGxQYXJlbnQuanNcIjtcbi8qXG5naXZlbiBhIERPTSBlbGVtZW50LCByZXR1cm4gdGhlIGxpc3Qgb2YgYWxsIHNjcm9sbCBwYXJlbnRzLCB1cCB0aGUgbGlzdCBvZiBhbmNlc29yc1xudW50aWwgd2UgZ2V0IHRvIHRoZSB0b3Agd2luZG93IG9iamVjdC4gVGhpcyBsaXN0IGlzIHdoYXQgd2UgYXR0YWNoIHNjcm9sbCBsaXN0ZW5lcnNcbnRvLCBiZWNhdXNlIGlmIGFueSBvZiB0aGVzZSBwYXJlbnQgZWxlbWVudHMgc2Nyb2xsLCB3ZSdsbCBuZWVkIHRvIHJlLWNhbGN1bGF0ZSB0aGVcbnJlZmVyZW5jZSBlbGVtZW50J3MgcG9zaXRpb24uXG4qL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBsaXN0U2Nyb2xsUGFyZW50cyhlbGVtZW50LCBsaXN0KSB7XG4gIHZhciBfZWxlbWVudCRvd25lckRvY3VtZW47XG5cbiAgaWYgKGxpc3QgPT09IHZvaWQgMCkge1xuICAgIGxpc3QgPSBbXTtcbiAgfVxuXG4gIHZhciBzY3JvbGxQYXJlbnQgPSBnZXRTY3JvbGxQYXJlbnQoZWxlbWVudCk7XG4gIHZhciBpc0JvZHkgPSBzY3JvbGxQYXJlbnQgPT09ICgoX2VsZW1lbnQkb3duZXJEb2N1bWVuID0gZWxlbWVudC5vd25lckRvY3VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX2VsZW1lbnQkb3duZXJEb2N1bWVuLmJvZHkpO1xuICB2YXIgd2luID0gZ2V0V2luZG93KHNjcm9sbFBhcmVudCk7XG4gIHZhciB0YXJnZXQgPSBpc0JvZHkgPyBbd2luXS5jb25jYXQod2luLnZpc3VhbFZpZXdwb3J0IHx8IFtdLCBpc1Njcm9sbFBhcmVudChzY3JvbGxQYXJlbnQpID8gc2Nyb2xsUGFyZW50IDogW10pIDogc2Nyb2xsUGFyZW50O1xuICB2YXIgdXBkYXRlZExpc3QgPSBsaXN0LmNvbmNhdCh0YXJnZXQpO1xuICByZXR1cm4gaXNCb2R5ID8gdXBkYXRlZExpc3QgOiAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYWxsXTogaXNCb2R5IHRlbGxzIHVzIHRhcmdldCB3aWxsIGJlIGFuIEhUTUxFbGVtZW50IGhlcmVcbiAgdXBkYXRlZExpc3QuY29uY2F0KGxpc3RTY3JvbGxQYXJlbnRzKGdldFBhcmVudE5vZGUodGFyZ2V0KSkpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/enums.js": /*!**************************************************!*\ !*** ./node_modules/@popperjs/core/lib/enums.js ***! \**************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"top\": () => (/* binding */ top),\n/* harmony export */ \"bottom\": () => (/* binding */ bottom),\n/* harmony export */ \"right\": () => (/* binding */ right),\n/* harmony export */ \"left\": () => (/* binding */ left),\n/* harmony export */ \"auto\": () => (/* binding */ auto),\n/* harmony export */ \"basePlacements\": () => (/* binding */ basePlacements),\n/* harmony export */ \"start\": () => (/* binding */ start),\n/* harmony export */ \"end\": () => (/* binding */ end),\n/* harmony export */ \"clippingParents\": () => (/* binding */ clippingParents),\n/* harmony export */ \"viewport\": () => (/* binding */ viewport),\n/* harmony export */ \"popper\": () => (/* binding */ popper),\n/* harmony export */ \"reference\": () => (/* binding */ reference),\n/* harmony export */ \"variationPlacements\": () => (/* binding */ variationPlacements),\n/* harmony export */ \"placements\": () => (/* binding */ placements),\n/* harmony export */ \"beforeRead\": () => (/* binding */ beforeRead),\n/* harmony export */ \"read\": () => (/* binding */ read),\n/* harmony export */ \"afterRead\": () => (/* binding */ afterRead),\n/* harmony export */ \"beforeMain\": () => (/* binding */ beforeMain),\n/* harmony export */ \"main\": () => (/* binding */ main),\n/* harmony export */ \"afterMain\": () => (/* binding */ afterMain),\n/* harmony export */ \"beforeWrite\": () => (/* binding */ beforeWrite),\n/* harmony export */ \"write\": () => (/* binding */ write),\n/* harmony export */ \"afterWrite\": () => (/* binding */ afterWrite),\n/* harmony export */ \"modifierPhases\": () => (/* binding */ modifierPhases)\n/* harmony export */ });\nvar top = 'top';\nvar bottom = 'bottom';\nvar right = 'right';\nvar left = 'left';\nvar auto = 'auto';\nvar basePlacements = [top, bottom, right, left];\nvar start = 'start';\nvar end = 'end';\nvar clippingParents = 'clippingParents';\nvar viewport = 'viewport';\nvar popper = 'popper';\nvar reference = 'reference';\nvar variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nvar placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nvar beforeRead = 'beforeRead';\nvar read = 'read';\nvar afterRead = 'afterRead'; // pure-logic modifiers\n\nvar beforeMain = 'beforeMain';\nvar main = 'main';\nvar afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nvar beforeWrite = 'beforeWrite';\nvar write = 'write';\nvar afterWrite = 'afterWrite';\nvar modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2VudW1zLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFPO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ1A7QUFDQSxDQUFDO0FBQ007QUFDUDtBQUNBLENBQUMsT0FBTzs7QUFFRDtBQUNBO0FBQ0EsNkJBQTZCOztBQUU3QjtBQUNBO0FBQ0EsNkJBQTZCOztBQUU3QjtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZW51bXMuanM/NzdmOSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIHRvcCA9ICd0b3AnO1xuZXhwb3J0IHZhciBib3R0b20gPSAnYm90dG9tJztcbmV4cG9ydCB2YXIgcmlnaHQgPSAncmlnaHQnO1xuZXhwb3J0IHZhciBsZWZ0ID0gJ2xlZnQnO1xuZXhwb3J0IHZhciBhdXRvID0gJ2F1dG8nO1xuZXhwb3J0IHZhciBiYXNlUGxhY2VtZW50cyA9IFt0b3AsIGJvdHRvbSwgcmlnaHQsIGxlZnRdO1xuZXhwb3J0IHZhciBzdGFydCA9ICdzdGFydCc7XG5leHBvcnQgdmFyIGVuZCA9ICdlbmQnO1xuZXhwb3J0IHZhciBjbGlwcGluZ1BhcmVudHMgPSAnY2xpcHBpbmdQYXJlbnRzJztcbmV4cG9ydCB2YXIgdmlld3BvcnQgPSAndmlld3BvcnQnO1xuZXhwb3J0IHZhciBwb3BwZXIgPSAncG9wcGVyJztcbmV4cG9ydCB2YXIgcmVmZXJlbmNlID0gJ3JlZmVyZW5jZSc7XG5leHBvcnQgdmFyIHZhcmlhdGlvblBsYWNlbWVudHMgPSAvKiNfX1BVUkVfXyovYmFzZVBsYWNlbWVudHMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBsYWNlbWVudCkge1xuICByZXR1cm4gYWNjLmNvbmNhdChbcGxhY2VtZW50ICsgXCItXCIgKyBzdGFydCwgcGxhY2VtZW50ICsgXCItXCIgKyBlbmRdKTtcbn0sIFtdKTtcbmV4cG9ydCB2YXIgcGxhY2VtZW50cyA9IC8qI19fUFVSRV9fKi9bXS5jb25jYXQoYmFzZVBsYWNlbWVudHMsIFthdXRvXSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBsYWNlbWVudCkge1xuICByZXR1cm4gYWNjLmNvbmNhdChbcGxhY2VtZW50LCBwbGFjZW1lbnQgKyBcIi1cIiArIHN0YXJ0LCBwbGFjZW1lbnQgKyBcIi1cIiArIGVuZF0pO1xufSwgW10pOyAvLyBtb2RpZmllcnMgdGhhdCBuZWVkIHRvIHJlYWQgdGhlIERPTVxuXG5leHBvcnQgdmFyIGJlZm9yZVJlYWQgPSAnYmVmb3JlUmVhZCc7XG5leHBvcnQgdmFyIHJlYWQgPSAncmVhZCc7XG5leHBvcnQgdmFyIGFmdGVyUmVhZCA9ICdhZnRlclJlYWQnOyAvLyBwdXJlLWxvZ2ljIG1vZGlmaWVyc1xuXG5leHBvcnQgdmFyIGJlZm9yZU1haW4gPSAnYmVmb3JlTWFpbic7XG5leHBvcnQgdmFyIG1haW4gPSAnbWFpbic7XG5leHBvcnQgdmFyIGFmdGVyTWFpbiA9ICdhZnRlck1haW4nOyAvLyBtb2RpZmllciB3aXRoIHRoZSBwdXJwb3NlIHRvIHdyaXRlIHRvIHRoZSBET00gKG9yIHdyaXRlIGludG8gYSBmcmFtZXdvcmsgc3RhdGUpXG5cbmV4cG9ydCB2YXIgYmVmb3JlV3JpdGUgPSAnYmVmb3JlV3JpdGUnO1xuZXhwb3J0IHZhciB3cml0ZSA9ICd3cml0ZSc7XG5leHBvcnQgdmFyIGFmdGVyV3JpdGUgPSAnYWZ0ZXJXcml0ZSc7XG5leHBvcnQgdmFyIG1vZGlmaWVyUGhhc2VzID0gW2JlZm9yZVJlYWQsIHJlYWQsIGFmdGVyUmVhZCwgYmVmb3JlTWFpbiwgbWFpbiwgYWZ0ZXJNYWluLCBiZWZvcmVXcml0ZSwgd3JpdGUsIGFmdGVyV3JpdGVdOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/enums.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/index.js": /*!**************************************************!*\ !*** ./node_modules/@popperjs/core/lib/index.js ***! \**************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"afterMain\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.afterMain),\n/* harmony export */ \"afterRead\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.afterRead),\n/* harmony export */ \"afterWrite\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.afterWrite),\n/* harmony export */ \"auto\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.auto),\n/* harmony export */ \"basePlacements\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements),\n/* harmony export */ \"beforeMain\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.beforeMain),\n/* harmony export */ \"beforeRead\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.beforeRead),\n/* harmony export */ \"beforeWrite\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.beforeWrite),\n/* harmony export */ \"bottom\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom),\n/* harmony export */ \"clippingParents\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.clippingParents),\n/* harmony export */ \"end\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.end),\n/* harmony export */ \"left\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.left),\n/* harmony export */ \"main\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.main),\n/* harmony export */ \"modifierPhases\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.modifierPhases),\n/* harmony export */ \"placements\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.placements),\n/* harmony export */ \"popper\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper),\n/* harmony export */ \"read\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.read),\n/* harmony export */ \"reference\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.reference),\n/* harmony export */ \"right\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.right),\n/* harmony export */ \"start\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.start),\n/* harmony export */ \"top\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.top),\n/* harmony export */ \"variationPlacements\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements),\n/* harmony export */ \"viewport\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.viewport),\n/* harmony export */ \"write\": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.write),\n/* harmony export */ \"applyStyles\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.applyStyles),\n/* harmony export */ \"arrow\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.arrow),\n/* harmony export */ \"computeStyles\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.computeStyles),\n/* harmony export */ \"eventListeners\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.eventListeners),\n/* harmony export */ \"flip\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.flip),\n/* harmony export */ \"hide\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.hide),\n/* harmony export */ \"offset\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.offset),\n/* harmony export */ \"popperOffsets\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.popperOffsets),\n/* harmony export */ \"preventOverflow\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.preventOverflow),\n/* harmony export */ \"popperGenerator\": () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_2__.popperGenerator),\n/* harmony export */ \"detectOverflow\": () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ \"createPopperBase\": () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_2__.createPopper),\n/* harmony export */ \"createPopper\": () => (/* reexport safe */ _popper_js__WEBPACK_IMPORTED_MODULE_4__.createPopper),\n/* harmony export */ \"createPopperLite\": () => (/* reexport safe */ _popper_lite_js__WEBPACK_IMPORTED_MODULE_5__.createPopper)\n/* harmony export */ });\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/index.js */ \"./node_modules/@popperjs/core/lib/modifiers/index.js\");\n/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createPopper.js */ \"./node_modules/@popperjs/core/lib/createPopper.js\");\n/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createPopper.js */ \"./node_modules/@popperjs/core/lib/utils/detectOverflow.js\");\n/* harmony import */ var _popper_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./popper.js */ \"./node_modules/@popperjs/core/lib/popper.js\");\n/* harmony import */ var _popper_lite_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./popper-lite.js */ \"./node_modules/@popperjs/core/lib/popper-lite.js\");\n\n // eslint-disable-next-line import/no-unused-modules\n\n // eslint-disable-next-line import/no-unused-modules\n\n // eslint-disable-next-line import/no-unused-modules\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTJCO0FBQ1UsQ0FBQzs7QUFFZ0UsQ0FBQzs7QUFFNUQsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvaW5kZXguanM/MTIzNSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9lbnVtcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kaWZpZXJzL2luZGV4LmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgcG9wcGVyR2VuZXJhdG9yLCBkZXRlY3RPdmVyZmxvdywgY3JlYXRlUG9wcGVyIGFzIGNyZWF0ZVBvcHBlckJhc2UgfSBmcm9tIFwiLi9jcmVhdGVQb3BwZXIuanNcIjsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5leHBvcnQgeyBjcmVhdGVQb3BwZXIgfSBmcm9tIFwiLi9wb3BwZXIuanNcIjsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5leHBvcnQgeyBjcmVhdGVQb3BwZXIgYXMgY3JlYXRlUG9wcGVyTGl0ZSB9IGZyb20gXCIuL3BvcHBlci1saXRlLmpzXCI7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/index.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js": /*!******************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/applyStyles.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dom-utils/getNodeName.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\");\n/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom-utils/instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n\n // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!(0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || !(0,_dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!(0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || !(0,_dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9hcHBseVN0eWxlcy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBc0Q7QUFDSyxDQUFDO0FBQzVEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0M7O0FBRXhDLFNBQVMsdUVBQWEsY0FBYyxxRUFBVztBQUMvQztBQUNBLE1BQU07QUFDTjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUhBQXVIOztBQUV2SDtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQUksR0FBRzs7QUFFZCxXQUFXLHVFQUFhLGNBQWMscUVBQVc7QUFDakQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0EsRUFBRTs7O0FBR0YsaUVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvYXBwbHlTdHlsZXMuanM/MGFiNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0Tm9kZU5hbWUgZnJvbSBcIi4uL2RvbS11dGlscy9nZXROb2RlTmFtZS5qc1wiO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuLi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qc1wiOyAvLyBUaGlzIG1vZGlmaWVyIHRha2VzIHRoZSBzdHlsZXMgcHJlcGFyZWQgYnkgdGhlIGBjb21wdXRlU3R5bGVzYCBtb2RpZmllclxuLy8gYW5kIGFwcGxpZXMgdGhlbSB0byB0aGUgSFRNTEVsZW1lbnRzIHN1Y2ggYXMgcG9wcGVyIGFuZCBhcnJvd1xuXG5mdW5jdGlvbiBhcHBseVN0eWxlcyhfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGU7XG4gIE9iamVjdC5rZXlzKHN0YXRlLmVsZW1lbnRzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgdmFyIHN0eWxlID0gc3RhdGUuc3R5bGVzW25hbWVdIHx8IHt9O1xuICAgIHZhciBhdHRyaWJ1dGVzID0gc3RhdGUuYXR0cmlidXRlc1tuYW1lXSB8fCB7fTtcbiAgICB2YXIgZWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzW25hbWVdOyAvLyBhcnJvdyBpcyBvcHRpb25hbCArIHZpcnR1YWwgZWxlbWVudHNcblxuICAgIGlmICghaXNIVE1MRWxlbWVudChlbGVtZW50KSB8fCAhZ2V0Tm9kZU5hbWUoZWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIEZsb3cgZG9lc24ndCBzdXBwb3J0IHRvIGV4dGVuZCB0aGlzIHByb3BlcnR5LCBidXQgaXQncyB0aGUgbW9zdFxuICAgIC8vIGVmZmVjdGl2ZSB3YXkgdG8gYXBwbHkgc3R5bGVzIHRvIGFuIEhUTUxFbGVtZW50XG4gICAgLy8gJEZsb3dGaXhNZVtjYW5ub3Qtd3JpdGVdXG5cblxuICAgIE9iamVjdC5hc3NpZ24oZWxlbWVudC5zdHlsZSwgc3R5bGUpO1xuICAgIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGF0dHJpYnV0ZXNbbmFtZV07XG5cbiAgICAgIGlmICh2YWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSA9PT0gdHJ1ZSA/ICcnIDogdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZWZmZWN0KF9yZWYyKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYyLnN0YXRlO1xuICB2YXIgaW5pdGlhbFN0eWxlcyA9IHtcbiAgICBwb3BwZXI6IHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0ZS5vcHRpb25zLnN0cmF0ZWd5LFxuICAgICAgbGVmdDogJzAnLFxuICAgICAgdG9wOiAnMCcsXG4gICAgICBtYXJnaW46ICcwJ1xuICAgIH0sXG4gICAgYXJyb3c6IHtcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnXG4gICAgfSxcbiAgICByZWZlcmVuY2U6IHt9XG4gIH07XG4gIE9iamVjdC5hc3NpZ24oc3RhdGUuZWxlbWVudHMucG9wcGVyLnN0eWxlLCBpbml0aWFsU3R5bGVzLnBvcHBlcik7XG4gIHN0YXRlLnN0eWxlcyA9IGluaXRpYWxTdHlsZXM7XG5cbiAgaWYgKHN0YXRlLmVsZW1lbnRzLmFycm93KSB7XG4gICAgT2JqZWN0LmFzc2lnbihzdGF0ZS5lbGVtZW50cy5hcnJvdy5zdHlsZSwgaW5pdGlhbFN0eWxlcy5hcnJvdyk7XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIE9iamVjdC5rZXlzKHN0YXRlLmVsZW1lbnRzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICB2YXIgZWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzW25hbWVdO1xuICAgICAgdmFyIGF0dHJpYnV0ZXMgPSBzdGF0ZS5hdHRyaWJ1dGVzW25hbWVdIHx8IHt9O1xuICAgICAgdmFyIHN0eWxlUHJvcGVydGllcyA9IE9iamVjdC5rZXlzKHN0YXRlLnN0eWxlcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSA/IHN0YXRlLnN0eWxlc1tuYW1lXSA6IGluaXRpYWxTdHlsZXNbbmFtZV0pOyAvLyBTZXQgYWxsIHZhbHVlcyB0byBhbiBlbXB0eSBzdHJpbmcgdG8gdW5zZXQgdGhlbVxuXG4gICAgICB2YXIgc3R5bGUgPSBzdHlsZVByb3BlcnRpZXMucmVkdWNlKGZ1bmN0aW9uIChzdHlsZSwgcHJvcGVydHkpIHtcbiAgICAgICAgc3R5bGVbcHJvcGVydHldID0gJyc7XG4gICAgICAgIHJldHVybiBzdHlsZTtcbiAgICAgIH0sIHt9KTsgLy8gYXJyb3cgaXMgb3B0aW9uYWwgKyB2aXJ0dWFsIGVsZW1lbnRzXG5cbiAgICAgIGlmICghaXNIVE1MRWxlbWVudChlbGVtZW50KSB8fCAhZ2V0Tm9kZU5hbWUoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBPYmplY3QuYXNzaWduKGVsZW1lbnQuc3R5bGUsIHN0eWxlKTtcbiAgICAgIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpLmZvckVhY2goZnVuY3Rpb24gKGF0dHJpYnV0ZSkge1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdhcHBseVN0eWxlcycsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnd3JpdGUnLFxuICBmbjogYXBwbHlTdHlsZXMsXG4gIGVmZmVjdDogZWZmZWN0LFxuICByZXF1aXJlczogWydjb21wdXRlU3R5bGVzJ11cbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/arrow.js": /*!************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/arrow.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\");\n/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom-utils/getLayoutRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js\");\n/* harmony import */ var _dom_utils_contains_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../dom-utils/contains.js */ \"./node_modules/@popperjs/core/lib/dom-utils/contains.js\");\n/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js\");\n/* harmony import */ var _utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/getMainAxisFromPlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js\");\n/* harmony import */ var _utils_within_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/within.js */ \"./node_modules/@popperjs/core/lib/utils/within.js\");\n/* harmony import */ var _utils_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/mergePaddingObject.js */ \"./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js\");\n/* harmony import */ var _utils_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/expandToHashMap.js */ \"./node_modules/@popperjs/core/lib/utils/expandToHashMap.js\");\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../dom-utils/instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n\n\n\n\n\n\n\n\n\n // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return (0,_utils_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(typeof padding !== 'number' ? padding : (0,_utils_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(padding, _enums_js__WEBPACK_IMPORTED_MODULE_2__.basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(state.placement);\n var axis = (0,_utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(basePlacement);\n var isVertical = [_enums_js__WEBPACK_IMPORTED_MODULE_2__.left, _enums_js__WEBPACK_IMPORTED_MODULE_2__.right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(arrowElement);\n var minProp = axis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_2__.top : _enums_js__WEBPACK_IMPORTED_MODULE_2__.left;\n var maxProp = axis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_2__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_2__.right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (true) {\n if (!(0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_8__.isHTMLElement)(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!(0,_dom_utils_contains_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(state.elements.popper, arrowElement)) {\n if (true) {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9hcnJvdy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUE0RDtBQUNGO0FBQ1Y7QUFDYztBQUNjO0FBQ3BDO0FBQ3dCO0FBQ047QUFDYTtBQUNaLENBQUM7O0FBRTVEO0FBQ0Esb0VBQW9FO0FBQ3BFO0FBQ0EsR0FBRztBQUNILFNBQVMsd0VBQWtCLHlDQUF5QyxxRUFBZSxVQUFVLHFEQUFjO0FBQzNHOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixzRUFBZ0I7QUFDdEMsYUFBYSw4RUFBd0I7QUFDckMsb0JBQW9CLDJDQUFJLEVBQUUsNENBQUs7QUFDL0I7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0Esa0JBQWtCLHVFQUFhO0FBQy9CLCtCQUErQiwwQ0FBRyxHQUFHLDJDQUFJO0FBQ3pDLCtCQUErQiw2Q0FBTSxHQUFHLDRDQUFLO0FBQzdDO0FBQ0E7QUFDQSwwQkFBMEIseUVBQWU7QUFDekM7QUFDQSx1REFBdUQ7QUFDdkQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZUFBZSw0REFBTSxvQkFBb0I7O0FBRXpDO0FBQ0EseURBQXlEO0FBQ3pEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTSxJQUFxQztBQUMzQyxTQUFTLHVFQUFhO0FBQ3RCO0FBQ0E7QUFDQTs7QUFFQSxPQUFPLGtFQUFRO0FBQ2YsUUFBUSxJQUFxQztBQUM3QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxFQUFFOzs7QUFHRixpRUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2Fycm93LmpzPzA5MjkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldEJhc2VQbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRMYXlvdXRSZWN0IGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0TGF5b3V0UmVjdC5qc1wiO1xuaW1wb3J0IGNvbnRhaW5zIGZyb20gXCIuLi9kb20tdXRpbHMvY29udGFpbnMuanNcIjtcbmltcG9ydCBnZXRPZmZzZXRQYXJlbnQgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRPZmZzZXRQYXJlbnQuanNcIjtcbmltcG9ydCBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldE1haW5BeGlzRnJvbVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHdpdGhpbiBmcm9tIFwiLi4vdXRpbHMvd2l0aGluLmpzXCI7XG5pbXBvcnQgbWVyZ2VQYWRkaW5nT2JqZWN0IGZyb20gXCIuLi91dGlscy9tZXJnZVBhZGRpbmdPYmplY3QuanNcIjtcbmltcG9ydCBleHBhbmRUb0hhc2hNYXAgZnJvbSBcIi4uL3V0aWxzL2V4cGFuZFRvSGFzaE1hcC5qc1wiO1xuaW1wb3J0IHsgbGVmdCwgcmlnaHQsIGJhc2VQbGFjZW1lbnRzLCB0b3AsIGJvdHRvbSB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuLi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbnZhciB0b1BhZGRpbmdPYmplY3QgPSBmdW5jdGlvbiB0b1BhZGRpbmdPYmplY3QocGFkZGluZywgc3RhdGUpIHtcbiAgcGFkZGluZyA9IHR5cGVvZiBwYWRkaW5nID09PSAnZnVuY3Rpb24nID8gcGFkZGluZyhPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5yZWN0cywge1xuICAgIHBsYWNlbWVudDogc3RhdGUucGxhY2VtZW50XG4gIH0pKSA6IHBhZGRpbmc7XG4gIHJldHVybiBtZXJnZVBhZGRpbmdPYmplY3QodHlwZW9mIHBhZGRpbmcgIT09ICdudW1iZXInID8gcGFkZGluZyA6IGV4cGFuZFRvSGFzaE1hcChwYWRkaW5nLCBiYXNlUGxhY2VtZW50cykpO1xufTtcblxuZnVuY3Rpb24gYXJyb3coX3JlZikge1xuICB2YXIgX3N0YXRlJG1vZGlmaWVyc0RhdGEkO1xuXG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lLFxuICAgICAgb3B0aW9ucyA9IF9yZWYub3B0aW9ucztcbiAgdmFyIGFycm93RWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzLmFycm93O1xuICB2YXIgcG9wcGVyT2Zmc2V0cyA9IHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cztcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHN0YXRlLnBsYWNlbWVudCk7XG4gIHZhciBheGlzID0gZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50KGJhc2VQbGFjZW1lbnQpO1xuICB2YXIgaXNWZXJ0aWNhbCA9IFtsZWZ0LCByaWdodF0uaW5kZXhPZihiYXNlUGxhY2VtZW50KSA+PSAwO1xuICB2YXIgbGVuID0gaXNWZXJ0aWNhbCA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICBpZiAoIWFycm93RWxlbWVudCB8fCAhcG9wcGVyT2Zmc2V0cykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBwYWRkaW5nT2JqZWN0ID0gdG9QYWRkaW5nT2JqZWN0KG9wdGlvbnMucGFkZGluZywgc3RhdGUpO1xuICB2YXIgYXJyb3dSZWN0ID0gZ2V0TGF5b3V0UmVjdChhcnJvd0VsZW1lbnQpO1xuICB2YXIgbWluUHJvcCA9IGF4aXMgPT09ICd5JyA/IHRvcCA6IGxlZnQ7XG4gIHZhciBtYXhQcm9wID0gYXhpcyA9PT0gJ3knID8gYm90dG9tIDogcmlnaHQ7XG4gIHZhciBlbmREaWZmID0gc3RhdGUucmVjdHMucmVmZXJlbmNlW2xlbl0gKyBzdGF0ZS5yZWN0cy5yZWZlcmVuY2VbYXhpc10gLSBwb3BwZXJPZmZzZXRzW2F4aXNdIC0gc3RhdGUucmVjdHMucG9wcGVyW2xlbl07XG4gIHZhciBzdGFydERpZmYgPSBwb3BwZXJPZmZzZXRzW2F4aXNdIC0gc3RhdGUucmVjdHMucmVmZXJlbmNlW2F4aXNdO1xuICB2YXIgYXJyb3dPZmZzZXRQYXJlbnQgPSBnZXRPZmZzZXRQYXJlbnQoYXJyb3dFbGVtZW50KTtcbiAgdmFyIGNsaWVudFNpemUgPSBhcnJvd09mZnNldFBhcmVudCA/IGF4aXMgPT09ICd5JyA/IGFycm93T2Zmc2V0UGFyZW50LmNsaWVudEhlaWdodCB8fCAwIDogYXJyb3dPZmZzZXRQYXJlbnQuY2xpZW50V2lkdGggfHwgMCA6IDA7XG4gIHZhciBjZW50ZXJUb1JlZmVyZW5jZSA9IGVuZERpZmYgLyAyIC0gc3RhcnREaWZmIC8gMjsgLy8gTWFrZSBzdXJlIHRoZSBhcnJvdyBkb2Vzbid0IG92ZXJmbG93IHRoZSBwb3BwZXIgaWYgdGhlIGNlbnRlciBwb2ludCBpc1xuICAvLyBvdXRzaWRlIG9mIHRoZSBwb3BwZXIgYm91bmRzXG5cbiAgdmFyIG1pbiA9IHBhZGRpbmdPYmplY3RbbWluUHJvcF07XG4gIHZhciBtYXggPSBjbGllbnRTaXplIC0gYXJyb3dSZWN0W2xlbl0gLSBwYWRkaW5nT2JqZWN0W21heFByb3BdO1xuICB2YXIgY2VudGVyID0gY2xpZW50U2l6ZSAvIDIgLSBhcnJvd1JlY3RbbGVuXSAvIDIgKyBjZW50ZXJUb1JlZmVyZW5jZTtcbiAgdmFyIG9mZnNldCA9IHdpdGhpbihtaW4sIGNlbnRlciwgbWF4KTsgLy8gUHJldmVudHMgYnJlYWtpbmcgc3ludGF4IGhpZ2hsaWdodGluZy4uLlxuXG4gIHZhciBheGlzUHJvcCA9IGF4aXM7XG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSAoX3N0YXRlJG1vZGlmaWVyc0RhdGEkID0ge30sIF9zdGF0ZSRtb2RpZmllcnNEYXRhJFtheGlzUHJvcF0gPSBvZmZzZXQsIF9zdGF0ZSRtb2RpZmllcnNEYXRhJC5jZW50ZXJPZmZzZXQgPSBvZmZzZXQgLSBjZW50ZXIsIF9zdGF0ZSRtb2RpZmllcnNEYXRhJCk7XG59XG5cbmZ1bmN0aW9uIGVmZmVjdChfcmVmMikge1xuICB2YXIgc3RhdGUgPSBfcmVmMi5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmMi5vcHRpb25zO1xuICB2YXIgX29wdGlvbnMkZWxlbWVudCA9IG9wdGlvbnMuZWxlbWVudCxcbiAgICAgIGFycm93RWxlbWVudCA9IF9vcHRpb25zJGVsZW1lbnQgPT09IHZvaWQgMCA/ICdbZGF0YS1wb3BwZXItYXJyb3ddJyA6IF9vcHRpb25zJGVsZW1lbnQ7XG5cbiAgaWYgKGFycm93RWxlbWVudCA9PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9IC8vIENTUyBzZWxlY3RvclxuXG5cbiAgaWYgKHR5cGVvZiBhcnJvd0VsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgYXJyb3dFbGVtZW50ID0gc3RhdGUuZWxlbWVudHMucG9wcGVyLnF1ZXJ5U2VsZWN0b3IoYXJyb3dFbGVtZW50KTtcblxuICAgIGlmICghYXJyb3dFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIGlmICghaXNIVE1MRWxlbWVudChhcnJvd0VsZW1lbnQpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFsnUG9wcGVyOiBcImFycm93XCIgZWxlbWVudCBtdXN0IGJlIGFuIEhUTUxFbGVtZW50IChub3QgYW4gU1ZHRWxlbWVudCkuJywgJ1RvIHVzZSBhbiBTVkcgYXJyb3csIHdyYXAgaXQgaW4gYW4gSFRNTEVsZW1lbnQgdGhhdCB3aWxsIGJlIHVzZWQgYXMnLCAndGhlIGFycm93LiddLmpvaW4oJyAnKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFjb250YWlucyhzdGF0ZS5lbGVtZW50cy5wb3BwZXIsIGFycm93RWxlbWVudCkpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFsnUG9wcGVyOiBcImFycm93XCIgbW9kaWZpZXJcXCdzIGBlbGVtZW50YCBtdXN0IGJlIGEgY2hpbGQgb2YgdGhlIHBvcHBlcicsICdlbGVtZW50LiddLmpvaW4oJyAnKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc3RhdGUuZWxlbWVudHMuYXJyb3cgPSBhcnJvd0VsZW1lbnQ7XG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdhcnJvdycsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnbWFpbicsXG4gIGZuOiBhcnJvdyxcbiAgZWZmZWN0OiBlZmZlY3QsXG4gIHJlcXVpcmVzOiBbJ3BvcHBlck9mZnNldHMnXSxcbiAgcmVxdWlyZXNJZkV4aXN0czogWydwcmV2ZW50T3ZlcmZsb3cnXVxufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/arrow.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js": /*!********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/computeStyles.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"mapToStyles\": () => (/* binding */ mapToStyles),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js\");\n/* harmony import */ var _dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dom-utils/getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n/* harmony import */ var _dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dom-utils/getDocumentElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\");\n/* harmony import */ var _dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom-utils/getComputedStyle.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js\");\n/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\");\n/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/getVariation.js */ \"./node_modules/@popperjs/core/lib/utils/getVariation.js\");\n/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/math.js */ \"./node_modules/@popperjs/core/lib/utils/math.js\");\n\n\n\n\n\n\n\n // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)((0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(x * dpr) / dpr) || 0,\n y: (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)((0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(y * dpr) / dpr) || 0\n };\n}\n\nfunction mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets;\n\n var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,\n _ref3$x = _ref3.x,\n x = _ref3$x === void 0 ? 0 : _ref3$x,\n _ref3$y = _ref3.y,\n y = _ref3$y === void 0 ? 0 : _ref3$y;\n\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = _enums_js__WEBPACK_IMPORTED_MODULE_1__.left;\n var sideY = _enums_js__WEBPACK_IMPORTED_MODULE_1__.top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(popper)) {\n offsetParent = (0,_dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(popper);\n\n if ((0,_dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.top || (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.left || placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.right) && variation === _enums_js__WEBPACK_IMPORTED_MODULE_1__.end) {\n sideY = _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom; // $FlowFixMe[prop-missing]\n\n y -= offsetParent[heightProp] - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.left || (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.top || placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom) && variation === _enums_js__WEBPACK_IMPORTED_MODULE_1__.end) {\n sideX = _enums_js__WEBPACK_IMPORTED_MODULE_1__.right; // $FlowFixMe[prop-missing]\n\n x -= offsetParent[widthProp] - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref4) {\n var state = _ref4.state,\n options = _ref4.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (true) {\n var transitionProperty = (0,_dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(state.placement),\n variation: (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9jb21wdXRlU3R5bGVzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBNEQ7QUFDRTtBQUNaO0FBQ2tCO0FBQ0o7QUFDSjtBQUNSO0FBQ1gsQ0FBQzs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8scURBQUssQ0FBQyxxREFBSztBQUNsQixPQUFPLHFEQUFLLENBQUMscURBQUs7QUFDbEI7QUFDQTs7QUFFTztBQUNQOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxjQUFjLDJDQUFJO0FBQ2xCLGNBQWMsMENBQUc7QUFDakI7O0FBRUE7QUFDQSx1QkFBdUIseUVBQWU7QUFDdEM7QUFDQTs7QUFFQSx5QkFBeUIsbUVBQVM7QUFDbEMscUJBQXFCLDRFQUFrQjs7QUFFdkMsVUFBVSwwRUFBZ0I7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047O0FBRUEsc0JBQXNCLDBDQUFHLG1CQUFtQiwyQ0FBSSxrQkFBa0IsNENBQUssbUJBQW1CLDBDQUFHO0FBQzdGLGNBQWMsNkNBQU0sRUFBRTs7QUFFdEI7QUFDQTtBQUNBOztBQUVBLHNCQUFzQiwyQ0FBSSxtQkFBbUIsMENBQUcsa0JBQWtCLDZDQUFNLG1CQUFtQiwwQ0FBRztBQUM5RixjQUFjLDRDQUFLLEVBQUU7O0FBRXJCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7O0FBRUEsMkJBQTJCLG9DQUFvQztBQUMvRDs7QUFFQSx5QkFBeUIscUNBQXFDO0FBQzlEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLElBQXFDO0FBQzNDLDZCQUE2QiwwRUFBZ0I7O0FBRTdDO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZUFBZSxzRUFBZ0I7QUFDL0IsZUFBZSxrRUFBWTtBQUMzQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDBDQUEwQyxtREFBbUQ7QUFDN0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQSx5Q0FBeUMsa0RBQWtEO0FBQzNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBLDRDQUE0QztBQUM1QztBQUNBLEdBQUc7QUFDSCxFQUFFOzs7QUFHRixpRUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvY29tcHV0ZVN0eWxlcy5qcz83Y2RhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRvcCwgbGVmdCwgcmlnaHQsIGJvdHRvbSwgZW5kIH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5pbXBvcnQgZ2V0T2Zmc2V0UGFyZW50IGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0T2Zmc2V0UGFyZW50LmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0V2luZG93LmpzXCI7XG5pbXBvcnQgZ2V0RG9jdW1lbnRFbGVtZW50IGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgZ2V0Q29tcHV0ZWRTdHlsZSBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldENvbXB1dGVkU3R5bGUuanNcIjtcbmltcG9ydCBnZXRCYXNlUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRCYXNlUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgZ2V0VmFyaWF0aW9uIGZyb20gXCIuLi91dGlscy9nZXRWYXJpYXRpb24uanNcIjtcbmltcG9ydCB7IHJvdW5kIH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG52YXIgdW5zZXRTaWRlcyA9IHtcbiAgdG9wOiAnYXV0bycsXG4gIHJpZ2h0OiAnYXV0bycsXG4gIGJvdHRvbTogJ2F1dG8nLFxuICBsZWZ0OiAnYXV0bydcbn07IC8vIFJvdW5kIHRoZSBvZmZzZXRzIHRvIHRoZSBuZWFyZXN0IHN1aXRhYmxlIHN1YnBpeGVsIGJhc2VkIG9uIHRoZSBEUFIuXG4vLyBab29taW5nIGNhbiBjaGFuZ2UgdGhlIERQUiwgYnV0IGl0IHNlZW1zIHRvIHJlcG9ydCBhIHZhbHVlIHRoYXQgd2lsbFxuLy8gY2xlYW5seSBkaXZpZGUgdGhlIHZhbHVlcyBpbnRvIHRoZSBhcHByb3ByaWF0ZSBzdWJwaXhlbHMuXG5cbmZ1bmN0aW9uIHJvdW5kT2Zmc2V0c0J5RFBSKF9yZWYpIHtcbiAgdmFyIHggPSBfcmVmLngsXG4gICAgICB5ID0gX3JlZi55O1xuICB2YXIgd2luID0gd2luZG93O1xuICB2YXIgZHByID0gd2luLmRldmljZVBpeGVsUmF0aW8gfHwgMTtcbiAgcmV0dXJuIHtcbiAgICB4OiByb3VuZChyb3VuZCh4ICogZHByKSAvIGRwcikgfHwgMCxcbiAgICB5OiByb3VuZChyb3VuZCh5ICogZHByKSAvIGRwcikgfHwgMFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwVG9TdHlsZXMoX3JlZjIpIHtcbiAgdmFyIF9PYmplY3QkYXNzaWduMjtcblxuICB2YXIgcG9wcGVyID0gX3JlZjIucG9wcGVyLFxuICAgICAgcG9wcGVyUmVjdCA9IF9yZWYyLnBvcHBlclJlY3QsXG4gICAgICBwbGFjZW1lbnQgPSBfcmVmMi5wbGFjZW1lbnQsXG4gICAgICB2YXJpYXRpb24gPSBfcmVmMi52YXJpYXRpb24sXG4gICAgICBvZmZzZXRzID0gX3JlZjIub2Zmc2V0cyxcbiAgICAgIHBvc2l0aW9uID0gX3JlZjIucG9zaXRpb24sXG4gICAgICBncHVBY2NlbGVyYXRpb24gPSBfcmVmMi5ncHVBY2NlbGVyYXRpb24sXG4gICAgICBhZGFwdGl2ZSA9IF9yZWYyLmFkYXB0aXZlLFxuICAgICAgcm91bmRPZmZzZXRzID0gX3JlZjIucm91bmRPZmZzZXRzO1xuXG4gIHZhciBfcmVmMyA9IHJvdW5kT2Zmc2V0cyA9PT0gdHJ1ZSA/IHJvdW5kT2Zmc2V0c0J5RFBSKG9mZnNldHMpIDogdHlwZW9mIHJvdW5kT2Zmc2V0cyA9PT0gJ2Z1bmN0aW9uJyA/IHJvdW5kT2Zmc2V0cyhvZmZzZXRzKSA6IG9mZnNldHMsXG4gICAgICBfcmVmMyR4ID0gX3JlZjMueCxcbiAgICAgIHggPSBfcmVmMyR4ID09PSB2b2lkIDAgPyAwIDogX3JlZjMkeCxcbiAgICAgIF9yZWYzJHkgPSBfcmVmMy55LFxuICAgICAgeSA9IF9yZWYzJHkgPT09IHZvaWQgMCA/IDAgOiBfcmVmMyR5O1xuXG4gIHZhciBoYXNYID0gb2Zmc2V0cy5oYXNPd25Qcm9wZXJ0eSgneCcpO1xuICB2YXIgaGFzWSA9IG9mZnNldHMuaGFzT3duUHJvcGVydHkoJ3knKTtcbiAgdmFyIHNpZGVYID0gbGVmdDtcbiAgdmFyIHNpZGVZID0gdG9wO1xuICB2YXIgd2luID0gd2luZG93O1xuXG4gIGlmIChhZGFwdGl2ZSkge1xuICAgIHZhciBvZmZzZXRQYXJlbnQgPSBnZXRPZmZzZXRQYXJlbnQocG9wcGVyKTtcbiAgICB2YXIgaGVpZ2h0UHJvcCA9ICdjbGllbnRIZWlnaHQnO1xuICAgIHZhciB3aWR0aFByb3AgPSAnY2xpZW50V2lkdGgnO1xuXG4gICAgaWYgKG9mZnNldFBhcmVudCA9PT0gZ2V0V2luZG93KHBvcHBlcikpIHtcbiAgICAgIG9mZnNldFBhcmVudCA9IGdldERvY3VtZW50RWxlbWVudChwb3BwZXIpO1xuXG4gICAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uICE9PSAnc3RhdGljJyAmJiBwb3NpdGlvbiA9PT0gJ2Fic29sdXRlJykge1xuICAgICAgICBoZWlnaHRQcm9wID0gJ3Njcm9sbEhlaWdodCc7XG4gICAgICAgIHdpZHRoUHJvcCA9ICdzY3JvbGxXaWR0aCc7XG4gICAgICB9XG4gICAgfSAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYXN0XTogZm9yY2UgdHlwZSByZWZpbmVtZW50LCB3ZSBjb21wYXJlIG9mZnNldFBhcmVudCB3aXRoIHdpbmRvdyBhYm92ZSwgYnV0IEZsb3cgZG9lc24ndCBkZXRlY3QgaXRcblxuXG4gICAgb2Zmc2V0UGFyZW50ID0gb2Zmc2V0UGFyZW50O1xuXG4gICAgaWYgKHBsYWNlbWVudCA9PT0gdG9wIHx8IChwbGFjZW1lbnQgPT09IGxlZnQgfHwgcGxhY2VtZW50ID09PSByaWdodCkgJiYgdmFyaWF0aW9uID09PSBlbmQpIHtcbiAgICAgIHNpZGVZID0gYm90dG9tOyAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cblxuICAgICAgeSAtPSBvZmZzZXRQYXJlbnRbaGVpZ2h0UHJvcF0gLSBwb3BwZXJSZWN0LmhlaWdodDtcbiAgICAgIHkgKj0gZ3B1QWNjZWxlcmF0aW9uID8gMSA6IC0xO1xuICAgIH1cblxuICAgIGlmIChwbGFjZW1lbnQgPT09IGxlZnQgfHwgKHBsYWNlbWVudCA9PT0gdG9wIHx8IHBsYWNlbWVudCA9PT0gYm90dG9tKSAmJiB2YXJpYXRpb24gPT09IGVuZCkge1xuICAgICAgc2lkZVggPSByaWdodDsgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG5cbiAgICAgIHggLT0gb2Zmc2V0UGFyZW50W3dpZHRoUHJvcF0gLSBwb3BwZXJSZWN0LndpZHRoO1xuICAgICAgeCAqPSBncHVBY2NlbGVyYXRpb24gPyAxIDogLTE7XG4gICAgfVxuICB9XG5cbiAgdmFyIGNvbW1vblN0eWxlcyA9IE9iamVjdC5hc3NpZ24oe1xuICAgIHBvc2l0aW9uOiBwb3NpdGlvblxuICB9LCBhZGFwdGl2ZSAmJiB1bnNldFNpZGVzKTtcblxuICBpZiAoZ3B1QWNjZWxlcmF0aW9uKSB7XG4gICAgdmFyIF9PYmplY3QkYXNzaWduO1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIGNvbW1vblN0eWxlcywgKF9PYmplY3QkYXNzaWduID0ge30sIF9PYmplY3QkYXNzaWduW3NpZGVZXSA9IGhhc1kgPyAnMCcgOiAnJywgX09iamVjdCRhc3NpZ25bc2lkZVhdID0gaGFzWCA/ICcwJyA6ICcnLCBfT2JqZWN0JGFzc2lnbi50cmFuc2Zvcm0gPSAod2luLmRldmljZVBpeGVsUmF0aW8gfHwgMSkgPD0gMSA/IFwidHJhbnNsYXRlKFwiICsgeCArIFwicHgsIFwiICsgeSArIFwicHgpXCIgOiBcInRyYW5zbGF0ZTNkKFwiICsgeCArIFwicHgsIFwiICsgeSArIFwicHgsIDApXCIsIF9PYmplY3QkYXNzaWduKSk7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgY29tbW9uU3R5bGVzLCAoX09iamVjdCRhc3NpZ24yID0ge30sIF9PYmplY3QkYXNzaWduMltzaWRlWV0gPSBoYXNZID8geSArIFwicHhcIiA6ICcnLCBfT2JqZWN0JGFzc2lnbjJbc2lkZVhdID0gaGFzWCA/IHggKyBcInB4XCIgOiAnJywgX09iamVjdCRhc3NpZ24yLnRyYW5zZm9ybSA9ICcnLCBfT2JqZWN0JGFzc2lnbjIpKTtcbn1cblxuZnVuY3Rpb24gY29tcHV0ZVN0eWxlcyhfcmVmNCkge1xuICB2YXIgc3RhdGUgPSBfcmVmNC5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmNC5vcHRpb25zO1xuICB2YXIgX29wdGlvbnMkZ3B1QWNjZWxlcmF0ID0gb3B0aW9ucy5ncHVBY2NlbGVyYXRpb24sXG4gICAgICBncHVBY2NlbGVyYXRpb24gPSBfb3B0aW9ucyRncHVBY2NlbGVyYXQgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRncHVBY2NlbGVyYXQsXG4gICAgICBfb3B0aW9ucyRhZGFwdGl2ZSA9IG9wdGlvbnMuYWRhcHRpdmUsXG4gICAgICBhZGFwdGl2ZSA9IF9vcHRpb25zJGFkYXB0aXZlID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkYWRhcHRpdmUsXG4gICAgICBfb3B0aW9ucyRyb3VuZE9mZnNldHMgPSBvcHRpb25zLnJvdW5kT2Zmc2V0cyxcbiAgICAgIHJvdW5kT2Zmc2V0cyA9IF9vcHRpb25zJHJvdW5kT2Zmc2V0cyA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJHJvdW5kT2Zmc2V0cztcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgdmFyIHRyYW5zaXRpb25Qcm9wZXJ0eSA9IGdldENvbXB1dGVkU3R5bGUoc3RhdGUuZWxlbWVudHMucG9wcGVyKS50cmFuc2l0aW9uUHJvcGVydHkgfHwgJyc7XG5cbiAgICBpZiAoYWRhcHRpdmUgJiYgWyd0cmFuc2Zvcm0nLCAndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J10uc29tZShmdW5jdGlvbiAocHJvcGVydHkpIHtcbiAgICAgIHJldHVybiB0cmFuc2l0aW9uUHJvcGVydHkuaW5kZXhPZihwcm9wZXJ0eSkgPj0gMDtcbiAgICB9KSkge1xuICAgICAgY29uc29sZS53YXJuKFsnUG9wcGVyOiBEZXRlY3RlZCBDU1MgdHJhbnNpdGlvbnMgb24gYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmcnLCAnQ1NTIHByb3BlcnRpZXM6IFwidHJhbnNmb3JtXCIsIFwidG9wXCIsIFwicmlnaHRcIiwgXCJib3R0b21cIiwgXCJsZWZ0XCIuJywgJ1xcblxcbicsICdEaXNhYmxlIHRoZSBcImNvbXB1dGVTdHlsZXNcIiBtb2RpZmllclxcJ3MgYGFkYXB0aXZlYCBvcHRpb24gdG8gYWxsb3cnLCAnZm9yIHNtb290aCB0cmFuc2l0aW9ucywgb3IgcmVtb3ZlIHRoZXNlIHByb3BlcnRpZXMgZnJvbSB0aGUgQ1NTJywgJ3RyYW5zaXRpb24gZGVjbGFyYXRpb24gb24gdGhlIHBvcHBlciBlbGVtZW50IGlmIG9ubHkgdHJhbnNpdGlvbmluZycsICdvcGFjaXR5IG9yIGJhY2tncm91bmQtY29sb3IgZm9yIGV4YW1wbGUuJywgJ1xcblxcbicsICdXZSByZWNvbW1lbmQgdXNpbmcgdGhlIHBvcHBlciBlbGVtZW50IGFzIGEgd3JhcHBlciBhcm91bmQgYW4gaW5uZXInLCAnZWxlbWVudCB0aGF0IGNhbiBoYXZlIGFueSBDU1MgcHJvcGVydHkgdHJhbnNpdGlvbmVkIGZvciBhbmltYXRpb25zLiddLmpvaW4oJyAnKSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGNvbW1vblN0eWxlcyA9IHtcbiAgICBwbGFjZW1lbnQ6IGdldEJhc2VQbGFjZW1lbnQoc3RhdGUucGxhY2VtZW50KSxcbiAgICB2YXJpYXRpb246IGdldFZhcmlhdGlvbihzdGF0ZS5wbGFjZW1lbnQpLFxuICAgIHBvcHBlcjogc3RhdGUuZWxlbWVudHMucG9wcGVyLFxuICAgIHBvcHBlclJlY3Q6IHN0YXRlLnJlY3RzLnBvcHBlcixcbiAgICBncHVBY2NlbGVyYXRpb246IGdwdUFjY2VsZXJhdGlvblxuICB9O1xuXG4gIGlmIChzdGF0ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMgIT0gbnVsbCkge1xuICAgIHN0YXRlLnN0eWxlcy5wb3BwZXIgPSBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zdHlsZXMucG9wcGVyLCBtYXBUb1N0eWxlcyhPYmplY3QuYXNzaWduKHt9LCBjb21tb25TdHlsZXMsIHtcbiAgICAgIG9mZnNldHM6IHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cyxcbiAgICAgIHBvc2l0aW9uOiBzdGF0ZS5vcHRpb25zLnN0cmF0ZWd5LFxuICAgICAgYWRhcHRpdmU6IGFkYXB0aXZlLFxuICAgICAgcm91bmRPZmZzZXRzOiByb3VuZE9mZnNldHNcbiAgICB9KSkpO1xuICB9XG5cbiAgaWYgKHN0YXRlLm1vZGlmaWVyc0RhdGEuYXJyb3cgIT0gbnVsbCkge1xuICAgIHN0YXRlLnN0eWxlcy5hcnJvdyA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnN0eWxlcy5hcnJvdywgbWFwVG9TdHlsZXMoT2JqZWN0LmFzc2lnbih7fSwgY29tbW9uU3R5bGVzLCB7XG4gICAgICBvZmZzZXRzOiBzdGF0ZS5tb2RpZmllcnNEYXRhLmFycm93LFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICBhZGFwdGl2ZTogZmFsc2UsXG4gICAgICByb3VuZE9mZnNldHM6IHJvdW5kT2Zmc2V0c1xuICAgIH0pKSk7XG4gIH1cblxuICBzdGF0ZS5hdHRyaWJ1dGVzLnBvcHBlciA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLmF0dHJpYnV0ZXMucG9wcGVyLCB7XG4gICAgJ2RhdGEtcG9wcGVyLXBsYWNlbWVudCc6IHN0YXRlLnBsYWNlbWVudFxuICB9KTtcbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2NvbXB1dGVTdHlsZXMnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ2JlZm9yZVdyaXRlJyxcbiAgZm46IGNvbXB1dGVTdHlsZXMsXG4gIGRhdGE6IHt9XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js": /*!*********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/eventListeners.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom-utils/getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9ldmVudExpc3RlbmVycy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFrRCxDQUFDOztBQUVuRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsbUVBQVM7QUFDeEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGLGlFQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvZXZlbnRMaXN0ZW5lcnMuanM/YWQ2ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0V2luZG93LmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxudmFyIHBhc3NpdmUgPSB7XG4gIHBhc3NpdmU6IHRydWVcbn07XG5cbmZ1bmN0aW9uIGVmZmVjdChfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBpbnN0YW5jZSA9IF9yZWYuaW5zdGFuY2UsXG4gICAgICBvcHRpb25zID0gX3JlZi5vcHRpb25zO1xuICB2YXIgX29wdGlvbnMkc2Nyb2xsID0gb3B0aW9ucy5zY3JvbGwsXG4gICAgICBzY3JvbGwgPSBfb3B0aW9ucyRzY3JvbGwgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRzY3JvbGwsXG4gICAgICBfb3B0aW9ucyRyZXNpemUgPSBvcHRpb25zLnJlc2l6ZSxcbiAgICAgIHJlc2l6ZSA9IF9vcHRpb25zJHJlc2l6ZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJHJlc2l6ZTtcbiAgdmFyIHdpbmRvdyA9IGdldFdpbmRvdyhzdGF0ZS5lbGVtZW50cy5wb3BwZXIpO1xuICB2YXIgc2Nyb2xsUGFyZW50cyA9IFtdLmNvbmNhdChzdGF0ZS5zY3JvbGxQYXJlbnRzLnJlZmVyZW5jZSwgc3RhdGUuc2Nyb2xsUGFyZW50cy5wb3BwZXIpO1xuXG4gIGlmIChzY3JvbGwpIHtcbiAgICBzY3JvbGxQYXJlbnRzLmZvckVhY2goZnVuY3Rpb24gKHNjcm9sbFBhcmVudCkge1xuICAgICAgc2Nyb2xsUGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGluc3RhbmNlLnVwZGF0ZSwgcGFzc2l2ZSk7XG4gICAgfSk7XG4gIH1cblxuICBpZiAocmVzaXplKSB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGluc3RhbmNlLnVwZGF0ZSwgcGFzc2l2ZSk7XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIGlmIChzY3JvbGwpIHtcbiAgICAgIHNjcm9sbFBhcmVudHMuZm9yRWFjaChmdW5jdGlvbiAoc2Nyb2xsUGFyZW50KSB7XG4gICAgICAgIHNjcm9sbFBhcmVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBpbnN0YW5jZS51cGRhdGUsIHBhc3NpdmUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHJlc2l6ZSkge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGluc3RhbmNlLnVwZGF0ZSwgcGFzc2l2ZSk7XG4gICAgfVxuICB9O1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnZXZlbnRMaXN0ZW5lcnMnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ3dyaXRlJyxcbiAgZm46IGZ1bmN0aW9uIGZuKCkge30sXG4gIGVmZmVjdDogZWZmZWN0LFxuICBkYXRhOiB7fVxufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/flip.js": /*!***********************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/flip.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/getOppositePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js\");\n/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\");\n/* harmony import */ var _utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getOppositeVariationPlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js\");\n/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/detectOverflow.js */ \"./node_modules/@popperjs/core/lib/utils/detectOverflow.js\");\n/* harmony import */ var _utils_computeAutoPlacement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/computeAutoPlacement.js */ \"./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js\");\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/getVariation.js */ \"./node_modules/@popperjs/core/lib/utils/getVariation.js\");\n\n\n\n\n\n\n // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if ((0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.auto) {\n return [];\n }\n\n var oppositePlacement = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(placement);\n return [(0,_utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(placement), oppositePlacement, (0,_utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [(0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat((0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.auto ? (0,_utils_computeAutoPlacement_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(placement);\n\n var isStartVariation = (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.start;\n var isVertical = [_enums_js__WEBPACK_IMPORTED_MODULE_1__.top, _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? _enums_js__WEBPACK_IMPORTED_MODULE_1__.right : _enums_js__WEBPACK_IMPORTED_MODULE_1__.left : isStartVariation ? _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_1__.top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(mainVariationSide);\n }\n\n var altVariationSide = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9mbGlwLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQW9FO0FBQ1I7QUFDMEI7QUFDOUI7QUFDWTtBQUNBO0FBQ2hCLENBQUM7O0FBRXJEO0FBQ0EsTUFBTSxzRUFBZ0IsZ0JBQWdCLDJDQUFJO0FBQzFDO0FBQ0E7O0FBRUEsMEJBQTBCLDBFQUFvQjtBQUM5QyxVQUFVLG1GQUE2QixnQ0FBZ0MsbUZBQTZCO0FBQ3BHOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixzRUFBZ0I7QUFDdEM7QUFDQSxpR0FBaUcsMEVBQW9CO0FBQ3JIO0FBQ0Esc0JBQXNCLHNFQUFnQixnQkFBZ0IsMkNBQUksR0FBRywwRUFBb0I7QUFDakY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFrQix1QkFBdUI7QUFDekM7O0FBRUEseUJBQXlCLHNFQUFnQjs7QUFFekMsMkJBQTJCLGtFQUFZLGdCQUFnQiw0Q0FBSztBQUM1RCxzQkFBc0IsMENBQUcsRUFBRSw2Q0FBTTtBQUNqQztBQUNBLG1CQUFtQixvRUFBYztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLDREQUE0RCw0Q0FBSyxHQUFHLDJDQUFJLHNCQUFzQiw2Q0FBTSxHQUFHLDBDQUFHOztBQUUxRztBQUNBLDBCQUEwQiwwRUFBb0I7QUFDOUM7O0FBRUEsMkJBQTJCLDBFQUFvQjtBQUMvQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLE9BQU87O0FBRVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxrQ0FBa0MsUUFBUTtBQUMxQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGLGlFQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9mbGlwLmpzP2VjYjIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE9wcG9zaXRlUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRPcHBvc2l0ZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGdldEJhc2VQbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0T3Bwb3NpdGVWYXJpYXRpb25QbGFjZW1lbnQuanNcIjtcbmltcG9ydCBkZXRlY3RPdmVyZmxvdyBmcm9tIFwiLi4vdXRpbHMvZGV0ZWN0T3ZlcmZsb3cuanNcIjtcbmltcG9ydCBjb21wdXRlQXV0b1BsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvY29tcHV0ZUF1dG9QbGFjZW1lbnQuanNcIjtcbmltcG9ydCB7IGJvdHRvbSwgdG9wLCBzdGFydCwgcmlnaHQsIGxlZnQsIGF1dG8gfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRWYXJpYXRpb24gZnJvbSBcIi4uL3V0aWxzL2dldFZhcmlhdGlvbi5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmZ1bmN0aW9uIGdldEV4cGFuZGVkRmFsbGJhY2tQbGFjZW1lbnRzKHBsYWNlbWVudCkge1xuICBpZiAoZ2V0QmFzZVBsYWNlbWVudChwbGFjZW1lbnQpID09PSBhdXRvKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgdmFyIG9wcG9zaXRlUGxhY2VtZW50ID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocGxhY2VtZW50KTtcbiAgcmV0dXJuIFtnZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudChwbGFjZW1lbnQpLCBvcHBvc2l0ZVBsYWNlbWVudCwgZ2V0T3Bwb3NpdGVWYXJpYXRpb25QbGFjZW1lbnQob3Bwb3NpdGVQbGFjZW1lbnQpXTtcbn1cblxuZnVuY3Rpb24gZmxpcChfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBvcHRpb25zID0gX3JlZi5vcHRpb25zLFxuICAgICAgbmFtZSA9IF9yZWYubmFtZTtcblxuICBpZiAoc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXS5fc2tpcCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBfb3B0aW9ucyRtYWluQXhpcyA9IG9wdGlvbnMubWFpbkF4aXMsXG4gICAgICBjaGVja01haW5BeGlzID0gX29wdGlvbnMkbWFpbkF4aXMgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRtYWluQXhpcyxcbiAgICAgIF9vcHRpb25zJGFsdEF4aXMgPSBvcHRpb25zLmFsdEF4aXMsXG4gICAgICBjaGVja0FsdEF4aXMgPSBfb3B0aW9ucyRhbHRBeGlzID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkYWx0QXhpcyxcbiAgICAgIHNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyA9IG9wdGlvbnMuZmFsbGJhY2tQbGFjZW1lbnRzLFxuICAgICAgcGFkZGluZyA9IG9wdGlvbnMucGFkZGluZyxcbiAgICAgIGJvdW5kYXJ5ID0gb3B0aW9ucy5ib3VuZGFyeSxcbiAgICAgIHJvb3RCb3VuZGFyeSA9IG9wdGlvbnMucm9vdEJvdW5kYXJ5LFxuICAgICAgYWx0Qm91bmRhcnkgPSBvcHRpb25zLmFsdEJvdW5kYXJ5LFxuICAgICAgX29wdGlvbnMkZmxpcFZhcmlhdGlvID0gb3B0aW9ucy5mbGlwVmFyaWF0aW9ucyxcbiAgICAgIGZsaXBWYXJpYXRpb25zID0gX29wdGlvbnMkZmxpcFZhcmlhdGlvID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkZmxpcFZhcmlhdGlvLFxuICAgICAgYWxsb3dlZEF1dG9QbGFjZW1lbnRzID0gb3B0aW9ucy5hbGxvd2VkQXV0b1BsYWNlbWVudHM7XG4gIHZhciBwcmVmZXJyZWRQbGFjZW1lbnQgPSBzdGF0ZS5vcHRpb25zLnBsYWNlbWVudDtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHByZWZlcnJlZFBsYWNlbWVudCk7XG4gIHZhciBpc0Jhc2VQbGFjZW1lbnQgPSBiYXNlUGxhY2VtZW50ID09PSBwcmVmZXJyZWRQbGFjZW1lbnQ7XG4gIHZhciBmYWxsYmFja1BsYWNlbWVudHMgPSBzcGVjaWZpZWRGYWxsYmFja1BsYWNlbWVudHMgfHwgKGlzQmFzZVBsYWNlbWVudCB8fCAhZmxpcFZhcmlhdGlvbnMgPyBbZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocHJlZmVycmVkUGxhY2VtZW50KV0gOiBnZXRFeHBhbmRlZEZhbGxiYWNrUGxhY2VtZW50cyhwcmVmZXJyZWRQbGFjZW1lbnQpKTtcbiAgdmFyIHBsYWNlbWVudHMgPSBbcHJlZmVycmVkUGxhY2VtZW50XS5jb25jYXQoZmFsbGJhY2tQbGFjZW1lbnRzKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgcGxhY2VtZW50KSB7XG4gICAgcmV0dXJuIGFjYy5jb25jYXQoZ2V0QmFzZVBsYWNlbWVudChwbGFjZW1lbnQpID09PSBhdXRvID8gY29tcHV0ZUF1dG9QbGFjZW1lbnQoc3RhdGUsIHtcbiAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50LFxuICAgICAgYm91bmRhcnk6IGJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5OiByb290Qm91bmRhcnksXG4gICAgICBwYWRkaW5nOiBwYWRkaW5nLFxuICAgICAgZmxpcFZhcmlhdGlvbnM6IGZsaXBWYXJpYXRpb25zLFxuICAgICAgYWxsb3dlZEF1dG9QbGFjZW1lbnRzOiBhbGxvd2VkQXV0b1BsYWNlbWVudHNcbiAgICB9KSA6IHBsYWNlbWVudCk7XG4gIH0sIFtdKTtcbiAgdmFyIHJlZmVyZW5jZVJlY3QgPSBzdGF0ZS5yZWN0cy5yZWZlcmVuY2U7XG4gIHZhciBwb3BwZXJSZWN0ID0gc3RhdGUucmVjdHMucG9wcGVyO1xuICB2YXIgY2hlY2tzTWFwID0gbmV3IE1hcCgpO1xuICB2YXIgbWFrZUZhbGxiYWNrQ2hlY2tzID0gdHJ1ZTtcbiAgdmFyIGZpcnN0Rml0dGluZ1BsYWNlbWVudCA9IHBsYWNlbWVudHNbMF07XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwbGFjZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHBsYWNlbWVudCA9IHBsYWNlbWVudHNbaV07XG5cbiAgICB2YXIgX2Jhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCk7XG5cbiAgICB2YXIgaXNTdGFydFZhcmlhdGlvbiA9IGdldFZhcmlhdGlvbihwbGFjZW1lbnQpID09PSBzdGFydDtcbiAgICB2YXIgaXNWZXJ0aWNhbCA9IFt0b3AsIGJvdHRvbV0uaW5kZXhPZihfYmFzZVBsYWNlbWVudCkgPj0gMDtcbiAgICB2YXIgbGVuID0gaXNWZXJ0aWNhbCA/ICd3aWR0aCcgOiAnaGVpZ2h0JztcbiAgICB2YXIgb3ZlcmZsb3cgPSBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwge1xuICAgICAgcGxhY2VtZW50OiBwbGFjZW1lbnQsXG4gICAgICBib3VuZGFyeTogYm91bmRhcnksXG4gICAgICByb290Qm91bmRhcnk6IHJvb3RCb3VuZGFyeSxcbiAgICAgIGFsdEJvdW5kYXJ5OiBhbHRCb3VuZGFyeSxcbiAgICAgIHBhZGRpbmc6IHBhZGRpbmdcbiAgICB9KTtcbiAgICB2YXIgbWFpblZhcmlhdGlvblNpZGUgPSBpc1ZlcnRpY2FsID8gaXNTdGFydFZhcmlhdGlvbiA/IHJpZ2h0IDogbGVmdCA6IGlzU3RhcnRWYXJpYXRpb24gPyBib3R0b20gOiB0b3A7XG5cbiAgICBpZiAocmVmZXJlbmNlUmVjdFtsZW5dID4gcG9wcGVyUmVjdFtsZW5dKSB7XG4gICAgICBtYWluVmFyaWF0aW9uU2lkZSA9IGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5WYXJpYXRpb25TaWRlKTtcbiAgICB9XG5cbiAgICB2YXIgYWx0VmFyaWF0aW9uU2lkZSA9IGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5WYXJpYXRpb25TaWRlKTtcbiAgICB2YXIgY2hlY2tzID0gW107XG5cbiAgICBpZiAoY2hlY2tNYWluQXhpcykge1xuICAgICAgY2hlY2tzLnB1c2gob3ZlcmZsb3dbX2Jhc2VQbGFjZW1lbnRdIDw9IDApO1xuICAgIH1cblxuICAgIGlmIChjaGVja0FsdEF4aXMpIHtcbiAgICAgIGNoZWNrcy5wdXNoKG92ZXJmbG93W21haW5WYXJpYXRpb25TaWRlXSA8PSAwLCBvdmVyZmxvd1thbHRWYXJpYXRpb25TaWRlXSA8PSAwKTtcbiAgICB9XG5cbiAgICBpZiAoY2hlY2tzLmV2ZXJ5KGZ1bmN0aW9uIChjaGVjaykge1xuICAgICAgcmV0dXJuIGNoZWNrO1xuICAgIH0pKSB7XG4gICAgICBmaXJzdEZpdHRpbmdQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7XG4gICAgICBtYWtlRmFsbGJhY2tDaGVja3MgPSBmYWxzZTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNoZWNrc01hcC5zZXQocGxhY2VtZW50LCBjaGVja3MpO1xuICB9XG5cbiAgaWYgKG1ha2VGYWxsYmFja0NoZWNrcykge1xuICAgIC8vIGAyYCBtYXkgYmUgZGVzaXJlZCBpbiBzb21lIGNhc2VzIOKAkyByZXNlYXJjaCBsYXRlclxuICAgIHZhciBudW1iZXJPZkNoZWNrcyA9IGZsaXBWYXJpYXRpb25zID8gMyA6IDE7XG5cbiAgICB2YXIgX2xvb3AgPSBmdW5jdGlvbiBfbG9vcChfaSkge1xuICAgICAgdmFyIGZpdHRpbmdQbGFjZW1lbnQgPSBwbGFjZW1lbnRzLmZpbmQoZnVuY3Rpb24gKHBsYWNlbWVudCkge1xuICAgICAgICB2YXIgY2hlY2tzID0gY2hlY2tzTWFwLmdldChwbGFjZW1lbnQpO1xuXG4gICAgICAgIGlmIChjaGVja3MpIHtcbiAgICAgICAgICByZXR1cm4gY2hlY2tzLnNsaWNlKDAsIF9pKS5ldmVyeShmdW5jdGlvbiAoY2hlY2spIHtcbiAgICAgICAgICAgIHJldHVybiBjaGVjaztcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmIChmaXR0aW5nUGxhY2VtZW50KSB7XG4gICAgICAgIGZpcnN0Rml0dGluZ1BsYWNlbWVudCA9IGZpdHRpbmdQbGFjZW1lbnQ7XG4gICAgICAgIHJldHVybiBcImJyZWFrXCI7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGZvciAodmFyIF9pID0gbnVtYmVyT2ZDaGVja3M7IF9pID4gMDsgX2ktLSkge1xuICAgICAgdmFyIF9yZXQgPSBfbG9vcChfaSk7XG5cbiAgICAgIGlmIChfcmV0ID09PSBcImJyZWFrXCIpIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGlmIChzdGF0ZS5wbGFjZW1lbnQgIT09IGZpcnN0Rml0dGluZ1BsYWNlbWVudCkge1xuICAgIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0uX3NraXAgPSB0cnVlO1xuICAgIHN0YXRlLnBsYWNlbWVudCA9IGZpcnN0Rml0dGluZ1BsYWNlbWVudDtcbiAgICBzdGF0ZS5yZXNldCA9IHRydWU7XG4gIH1cbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2ZsaXAnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ21haW4nLFxuICBmbjogZmxpcCxcbiAgcmVxdWlyZXNJZkV4aXN0czogWydvZmZzZXQnXSxcbiAgZGF0YToge1xuICAgIF9za2lwOiBmYWxzZVxuICB9XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/flip.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/hide.js": /*!***********************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/hide.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/detectOverflow.js */ \"./node_modules/@popperjs/core/lib/utils/detectOverflow.js\");\n\n\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [_enums_js__WEBPACK_IMPORTED_MODULE_0__.top, _enums_js__WEBPACK_IMPORTED_MODULE_0__.right, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom, _enums_js__WEBPACK_IMPORTED_MODULE_0__.left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9oaWRlLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF1RDtBQUNDOztBQUV4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVUsMENBQUcsRUFBRSw0Q0FBSyxFQUFFLDZDQUFNLEVBQUUsMkNBQUk7QUFDbEM7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLG9FQUFjO0FBQ3hDO0FBQ0EsR0FBRztBQUNILDBCQUEwQixvRUFBYztBQUN4QztBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QztBQUM1QztBQUNBO0FBQ0EsR0FBRztBQUNILEVBQUU7OztBQUdGLGlFQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9oaWRlLmpzPzFkNmMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0IH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5pbXBvcnQgZGV0ZWN0T3ZlcmZsb3cgZnJvbSBcIi4uL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzXCI7XG5cbmZ1bmN0aW9uIGdldFNpZGVPZmZzZXRzKG92ZXJmbG93LCByZWN0LCBwcmV2ZW50ZWRPZmZzZXRzKSB7XG4gIGlmIChwcmV2ZW50ZWRPZmZzZXRzID09PSB2b2lkIDApIHtcbiAgICBwcmV2ZW50ZWRPZmZzZXRzID0ge1xuICAgICAgeDogMCxcbiAgICAgIHk6IDBcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0b3A6IG92ZXJmbG93LnRvcCAtIHJlY3QuaGVpZ2h0IC0gcHJldmVudGVkT2Zmc2V0cy55LFxuICAgIHJpZ2h0OiBvdmVyZmxvdy5yaWdodCAtIHJlY3Qud2lkdGggKyBwcmV2ZW50ZWRPZmZzZXRzLngsXG4gICAgYm90dG9tOiBvdmVyZmxvdy5ib3R0b20gLSByZWN0LmhlaWdodCArIHByZXZlbnRlZE9mZnNldHMueSxcbiAgICBsZWZ0OiBvdmVyZmxvdy5sZWZ0IC0gcmVjdC53aWR0aCAtIHByZXZlbnRlZE9mZnNldHMueFxuICB9O1xufVxuXG5mdW5jdGlvbiBpc0FueVNpZGVGdWxseUNsaXBwZWQob3ZlcmZsb3cpIHtcbiAgcmV0dXJuIFt0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnRdLnNvbWUoZnVuY3Rpb24gKHNpZGUpIHtcbiAgICByZXR1cm4gb3ZlcmZsb3dbc2lkZV0gPj0gMDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGhpZGUoX3JlZikge1xuICB2YXIgc3RhdGUgPSBfcmVmLnN0YXRlLFxuICAgICAgbmFtZSA9IF9yZWYubmFtZTtcbiAgdmFyIHJlZmVyZW5jZVJlY3QgPSBzdGF0ZS5yZWN0cy5yZWZlcmVuY2U7XG4gIHZhciBwb3BwZXJSZWN0ID0gc3RhdGUucmVjdHMucG9wcGVyO1xuICB2YXIgcHJldmVudGVkT2Zmc2V0cyA9IHN0YXRlLm1vZGlmaWVyc0RhdGEucHJldmVudE92ZXJmbG93O1xuICB2YXIgcmVmZXJlbmNlT3ZlcmZsb3cgPSBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwge1xuICAgIGVsZW1lbnRDb250ZXh0OiAncmVmZXJlbmNlJ1xuICB9KTtcbiAgdmFyIHBvcHBlckFsdE92ZXJmbG93ID0gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIHtcbiAgICBhbHRCb3VuZGFyeTogdHJ1ZVxuICB9KTtcbiAgdmFyIHJlZmVyZW5jZUNsaXBwaW5nT2Zmc2V0cyA9IGdldFNpZGVPZmZzZXRzKHJlZmVyZW5jZU92ZXJmbG93LCByZWZlcmVuY2VSZWN0KTtcbiAgdmFyIHBvcHBlckVzY2FwZU9mZnNldHMgPSBnZXRTaWRlT2Zmc2V0cyhwb3BwZXJBbHRPdmVyZmxvdywgcG9wcGVyUmVjdCwgcHJldmVudGVkT2Zmc2V0cyk7XG4gIHZhciBpc1JlZmVyZW5jZUhpZGRlbiA9IGlzQW55U2lkZUZ1bGx5Q2xpcHBlZChyZWZlcmVuY2VDbGlwcGluZ09mZnNldHMpO1xuICB2YXIgaGFzUG9wcGVyRXNjYXBlZCA9IGlzQW55U2lkZUZ1bGx5Q2xpcHBlZChwb3BwZXJFc2NhcGVPZmZzZXRzKTtcbiAgc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXSA9IHtcbiAgICByZWZlcmVuY2VDbGlwcGluZ09mZnNldHM6IHJlZmVyZW5jZUNsaXBwaW5nT2Zmc2V0cyxcbiAgICBwb3BwZXJFc2NhcGVPZmZzZXRzOiBwb3BwZXJFc2NhcGVPZmZzZXRzLFxuICAgIGlzUmVmZXJlbmNlSGlkZGVuOiBpc1JlZmVyZW5jZUhpZGRlbixcbiAgICBoYXNQb3BwZXJFc2NhcGVkOiBoYXNQb3BwZXJFc2NhcGVkXG4gIH07XG4gIHN0YXRlLmF0dHJpYnV0ZXMucG9wcGVyID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuYXR0cmlidXRlcy5wb3BwZXIsIHtcbiAgICAnZGF0YS1wb3BwZXItcmVmZXJlbmNlLWhpZGRlbic6IGlzUmVmZXJlbmNlSGlkZGVuLFxuICAgICdkYXRhLXBvcHBlci1lc2NhcGVkJzogaGFzUG9wcGVyRXNjYXBlZFxuICB9KTtcbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2hpZGUnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ21haW4nLFxuICByZXF1aXJlc0lmRXhpc3RzOiBbJ3ByZXZlbnRPdmVyZmxvdyddLFxuICBmbjogaGlkZVxufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/hide.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/index.js": /*!************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/index.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"applyStyles\": () => (/* reexport safe */ _applyStyles_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ \"arrow\": () => (/* reexport safe */ _arrow_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ \"computeStyles\": () => (/* reexport safe */ _computeStyles_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ \"eventListeners\": () => (/* reexport safe */ _eventListeners_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ \"flip\": () => (/* reexport safe */ _flip_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/* harmony export */ \"hide\": () => (/* reexport safe */ _hide_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]),\n/* harmony export */ \"offset\": () => (/* reexport safe */ _offset_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]),\n/* harmony export */ \"popperOffsets\": () => (/* reexport safe */ _popperOffsets_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]),\n/* harmony export */ \"preventOverflow\": () => (/* reexport safe */ _preventOverflow_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _applyStyles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./applyStyles.js */ \"./node_modules/@popperjs/core/lib/modifiers/applyStyles.js\");\n/* harmony import */ var _arrow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./arrow.js */ \"./node_modules/@popperjs/core/lib/modifiers/arrow.js\");\n/* harmony import */ var _computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./computeStyles.js */ \"./node_modules/@popperjs/core/lib/modifiers/computeStyles.js\");\n/* harmony import */ var _eventListeners_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./eventListeners.js */ \"./node_modules/@popperjs/core/lib/modifiers/eventListeners.js\");\n/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./flip.js */ \"./node_modules/@popperjs/core/lib/modifiers/flip.js\");\n/* harmony import */ var _hide_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hide.js */ \"./node_modules/@popperjs/core/lib/modifiers/hide.js\");\n/* harmony import */ var _offset_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./offset.js */ \"./node_modules/@popperjs/core/lib/modifiers/offset.js\");\n/* harmony import */ var _popperOffsets_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./popperOffsets.js */ \"./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js\");\n/* harmony import */ var _preventOverflow_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./preventOverflow.js */ \"./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js\");\n\n\n\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBMEQ7QUFDWjtBQUNnQjtBQUNFO0FBQ3BCO0FBQ0E7QUFDSTtBQUNjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvaW5kZXguanM/MWU3NiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIGFwcGx5U3R5bGVzIH0gZnJvbSBcIi4vYXBwbHlTdHlsZXMuanNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgYXJyb3cgfSBmcm9tIFwiLi9hcnJvdy5qc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjb21wdXRlU3R5bGVzIH0gZnJvbSBcIi4vY29tcHV0ZVN0eWxlcy5qc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBldmVudExpc3RlbmVycyB9IGZyb20gXCIuL2V2ZW50TGlzdGVuZXJzLmpzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGZsaXAgfSBmcm9tIFwiLi9mbGlwLmpzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGhpZGUgfSBmcm9tIFwiLi9oaWRlLmpzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG9mZnNldCB9IGZyb20gXCIuL29mZnNldC5qc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwb3BwZXJPZmZzZXRzIH0gZnJvbSBcIi4vcG9wcGVyT2Zmc2V0cy5qc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwcmV2ZW50T3ZlcmZsb3cgfSBmcm9tIFwiLi9wcmV2ZW50T3ZlcmZsb3cuanNcIjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/index.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/offset.js": /*!*************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/offset.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"distanceAndSkiddingToXY\": () => (/* binding */ distanceAndSkiddingToXY),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\");\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n\n\nfunction distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(placement);\n var invertDistance = [_enums_js__WEBPACK_IMPORTED_MODULE_1__.left, _enums_js__WEBPACK_IMPORTED_MODULE_1__.top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [_enums_js__WEBPACK_IMPORTED_MODULE_1__.left, _enums_js__WEBPACK_IMPORTED_MODULE_1__.right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = _enums_js__WEBPACK_IMPORTED_MODULE_1__.placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9vZmZzZXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE0RDtBQUNEO0FBQ3BEO0FBQ1Asc0JBQXNCLHNFQUFnQjtBQUN0Qyx3QkFBd0IsMkNBQUksRUFBRSwwQ0FBRzs7QUFFakMsbUVBQW1FO0FBQ25FO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVUsMkNBQUksRUFBRSw0Q0FBSztBQUNyQjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsd0RBQWlCO0FBQzlCO0FBQ0E7QUFDQSxHQUFHLElBQUk7QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxFQUFFOzs7QUFHRixpRUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvb2Zmc2V0LmpzPzk4MzUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldEJhc2VQbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCB7IHRvcCwgbGVmdCwgcmlnaHQsIHBsYWNlbWVudHMgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmV4cG9ydCBmdW5jdGlvbiBkaXN0YW5jZUFuZFNraWRkaW5nVG9YWShwbGFjZW1lbnQsIHJlY3RzLCBvZmZzZXQpIHtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCk7XG4gIHZhciBpbnZlcnREaXN0YW5jZSA9IFtsZWZ0LCB0b3BdLmluZGV4T2YoYmFzZVBsYWNlbWVudCkgPj0gMCA/IC0xIDogMTtcblxuICB2YXIgX3JlZiA9IHR5cGVvZiBvZmZzZXQgPT09ICdmdW5jdGlvbicgPyBvZmZzZXQoT2JqZWN0LmFzc2lnbih7fSwgcmVjdHMsIHtcbiAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudFxuICB9KSkgOiBvZmZzZXQsXG4gICAgICBza2lkZGluZyA9IF9yZWZbMF0sXG4gICAgICBkaXN0YW5jZSA9IF9yZWZbMV07XG5cbiAgc2tpZGRpbmcgPSBza2lkZGluZyB8fCAwO1xuICBkaXN0YW5jZSA9IChkaXN0YW5jZSB8fCAwKSAqIGludmVydERpc3RhbmNlO1xuICByZXR1cm4gW2xlZnQsIHJpZ2h0XS5pbmRleE9mKGJhc2VQbGFjZW1lbnQpID49IDAgPyB7XG4gICAgeDogZGlzdGFuY2UsXG4gICAgeTogc2tpZGRpbmdcbiAgfSA6IHtcbiAgICB4OiBza2lkZGluZyxcbiAgICB5OiBkaXN0YW5jZVxuICB9O1xufVxuXG5mdW5jdGlvbiBvZmZzZXQoX3JlZjIpIHtcbiAgdmFyIHN0YXRlID0gX3JlZjIuc3RhdGUsXG4gICAgICBvcHRpb25zID0gX3JlZjIub3B0aW9ucyxcbiAgICAgIG5hbWUgPSBfcmVmMi5uYW1lO1xuICB2YXIgX29wdGlvbnMkb2Zmc2V0ID0gb3B0aW9ucy5vZmZzZXQsXG4gICAgICBvZmZzZXQgPSBfb3B0aW9ucyRvZmZzZXQgPT09IHZvaWQgMCA/IFswLCAwXSA6IF9vcHRpb25zJG9mZnNldDtcbiAgdmFyIGRhdGEgPSBwbGFjZW1lbnRzLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBwbGFjZW1lbnQpIHtcbiAgICBhY2NbcGxhY2VtZW50XSA9IGRpc3RhbmNlQW5kU2tpZGRpbmdUb1hZKHBsYWNlbWVudCwgc3RhdGUucmVjdHMsIG9mZnNldCk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xuICB2YXIgX2RhdGEkc3RhdGUkcGxhY2VtZW50ID0gZGF0YVtzdGF0ZS5wbGFjZW1lbnRdLFxuICAgICAgeCA9IF9kYXRhJHN0YXRlJHBsYWNlbWVudC54LFxuICAgICAgeSA9IF9kYXRhJHN0YXRlJHBsYWNlbWVudC55O1xuXG4gIGlmIChzdGF0ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMgIT0gbnVsbCkge1xuICAgIHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cy54ICs9IHg7XG4gICAgc3RhdGUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzLnkgKz0geTtcbiAgfVxuXG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSBkYXRhO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnb2Zmc2V0JyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdtYWluJyxcbiAgcmVxdWlyZXM6IFsncG9wcGVyT2Zmc2V0cyddLFxuICBmbjogb2Zmc2V0XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/offset.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js": /*!********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_computeOffsets_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/computeOffsets.js */ \"./node_modules/@popperjs/core/lib/utils/computeOffsets.js\");\n\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = (0,_utils_computeOffsets_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9wb3BwZXJPZmZzZXRzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXdEOztBQUV4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixvRUFBYztBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxFQUFFOzs7QUFHRixpRUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvcG9wcGVyT2Zmc2V0cy5qcz8xMzRhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb21wdXRlT2Zmc2V0cyBmcm9tIFwiLi4vdXRpbHMvY29tcHV0ZU9mZnNldHMuanNcIjtcblxuZnVuY3Rpb24gcG9wcGVyT2Zmc2V0cyhfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lO1xuICAvLyBPZmZzZXRzIGFyZSB0aGUgYWN0dWFsIHBvc2l0aW9uIHRoZSBwb3BwZXIgbmVlZHMgdG8gaGF2ZSB0byBiZVxuICAvLyBwcm9wZXJseSBwb3NpdGlvbmVkIG5lYXIgaXRzIHJlZmVyZW5jZSBlbGVtZW50XG4gIC8vIFRoaXMgaXMgdGhlIG1vc3QgYmFzaWMgcGxhY2VtZW50LCBhbmQgd2lsbCBiZSBhZGp1c3RlZCBieVxuICAvLyB0aGUgbW9kaWZpZXJzIGluIHRoZSBuZXh0IHN0ZXBcbiAgc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXSA9IGNvbXB1dGVPZmZzZXRzKHtcbiAgICByZWZlcmVuY2U6IHN0YXRlLnJlY3RzLnJlZmVyZW5jZSxcbiAgICBlbGVtZW50OiBzdGF0ZS5yZWN0cy5wb3BwZXIsXG4gICAgc3RyYXRlZ3k6ICdhYnNvbHV0ZScsXG4gICAgcGxhY2VtZW50OiBzdGF0ZS5wbGFjZW1lbnRcbiAgfSk7XG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdwb3BwZXJPZmZzZXRzJyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdyZWFkJyxcbiAgZm46IHBvcHBlck9mZnNldHMsXG4gIGRhdGE6IHt9XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js": /*!**********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\");\n/* harmony import */ var _utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getMainAxisFromPlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js\");\n/* harmony import */ var _utils_getAltAxis_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/getAltAxis.js */ \"./node_modules/@popperjs/core/lib/utils/getAltAxis.js\");\n/* harmony import */ var _utils_within_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/within.js */ \"./node_modules/@popperjs/core/lib/utils/within.js\");\n/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/getLayoutRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js\");\n/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js\");\n/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/detectOverflow.js */ \"./node_modules/@popperjs/core/lib/utils/detectOverflow.js\");\n/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/getVariation.js */ \"./node_modules/@popperjs/core/lib/utils/getVariation.js\");\n/* harmony import */ var _utils_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/getFreshSideObject.js */ \"./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js\");\n/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/math.js */ \"./node_modules/@popperjs/core/lib/utils/math.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(state.placement);\n var variation = (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = (0,_utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(basePlacement);\n var altAxis = (0,_utils_getAltAxis_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis || checkAltAxis) {\n var mainSide = mainAxis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.top : _enums_js__WEBPACK_IMPORTED_MODULE_5__.left;\n var altSide = mainAxis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_5__.right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = popperOffsets[mainAxis] + overflow[mainSide];\n var max = popperOffsets[mainAxis] - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === _enums_js__WEBPACK_IMPORTED_MODULE_5__.start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === _enums_js__WEBPACK_IMPORTED_MODULE_5__.start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : (0,_utils_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;\n var arrowOffsetParent = state.elements.arrow && (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;\n\n if (checkMainAxis) {\n var preventedOffset = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(tether ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_10__.min)(min, tetherMin) : min, offset, tether ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_10__.max)(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _mainSide = mainAxis === 'x' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.top : _enums_js__WEBPACK_IMPORTED_MODULE_5__.left;\n\n var _altSide = mainAxis === 'x' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_5__.right;\n\n var _offset = popperOffsets[altAxis];\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var _preventedOffset = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(tether ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_10__.min)(_min, tetherMin) : _min, _offset, tether ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_10__.max)(_max, tetherMax) : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9wcmV2ZW50T3ZlcmZsb3cuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQThEO0FBQ0Y7QUFDZ0I7QUFDNUI7QUFDUjtBQUNrQjtBQUNJO0FBQ047QUFDSjtBQUNZO0FBQ0U7O0FBRWxFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLG9FQUFjO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILHNCQUFzQixzRUFBZ0I7QUFDdEMsa0JBQWtCLGtFQUFZO0FBQzlCO0FBQ0EsaUJBQWlCLDhFQUF3QjtBQUN6QyxnQkFBZ0IsZ0VBQVU7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsNEZBQTRGO0FBQzVGO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHNDQUFzQywwQ0FBRyxHQUFHLDJDQUFJO0FBQ2hELHFDQUFxQyw2Q0FBTSxHQUFHLDRDQUFLO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsNENBQUs7QUFDcEMsK0JBQStCLDRDQUFLLDJDQUEyQztBQUMvRTs7QUFFQTtBQUNBLDZDQUE2Qyx1RUFBYTtBQUMxRDtBQUNBO0FBQ0E7QUFDQSx5SEFBeUgsd0VBQWtCO0FBQzNJO0FBQ0EsdURBQXVEO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG1CQUFtQiw0REFBTTtBQUN6QjtBQUNBO0FBQ0Esb0RBQW9ELHlFQUFlO0FBQ25FO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNEJBQTRCLDREQUFNLFVBQVUsb0RBQU8seUNBQXlDLG9EQUFPO0FBQ25HO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlDQUF5QywwQ0FBRyxHQUFHLDJDQUFJOztBQUVuRCx3Q0FBd0MsNkNBQU0sR0FBRyw0Q0FBSzs7QUFFdEQ7O0FBRUE7O0FBRUE7O0FBRUEsNkJBQTZCLDREQUFNLFVBQVUsb0RBQU8sNENBQTRDLG9EQUFPOztBQUV2RztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUU7OztBQUdGLGlFQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9wcmV2ZW50T3ZlcmZsb3cuanM/OTQzNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0b3AsIGxlZnQsIHJpZ2h0LCBib3R0b20sIHN0YXJ0IH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5pbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgZ2V0QWx0QXhpcyBmcm9tIFwiLi4vdXRpbHMvZ2V0QWx0QXhpcy5qc1wiO1xuaW1wb3J0IHdpdGhpbiBmcm9tIFwiLi4vdXRpbHMvd2l0aGluLmpzXCI7XG5pbXBvcnQgZ2V0TGF5b3V0UmVjdCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldExheW91dFJlY3QuanNcIjtcbmltcG9ydCBnZXRPZmZzZXRQYXJlbnQgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRPZmZzZXRQYXJlbnQuanNcIjtcbmltcG9ydCBkZXRlY3RPdmVyZmxvdyBmcm9tIFwiLi4vdXRpbHMvZGV0ZWN0T3ZlcmZsb3cuanNcIjtcbmltcG9ydCBnZXRWYXJpYXRpb24gZnJvbSBcIi4uL3V0aWxzL2dldFZhcmlhdGlvbi5qc1wiO1xuaW1wb3J0IGdldEZyZXNoU2lkZU9iamVjdCBmcm9tIFwiLi4vdXRpbHMvZ2V0RnJlc2hTaWRlT2JqZWN0LmpzXCI7XG5pbXBvcnQgeyBtYXggYXMgbWF0aE1heCwgbWluIGFzIG1hdGhNaW4gfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC5qc1wiO1xuXG5mdW5jdGlvbiBwcmV2ZW50T3ZlcmZsb3coX3JlZikge1xuICB2YXIgc3RhdGUgPSBfcmVmLnN0YXRlLFxuICAgICAgb3B0aW9ucyA9IF9yZWYub3B0aW9ucyxcbiAgICAgIG5hbWUgPSBfcmVmLm5hbWU7XG4gIHZhciBfb3B0aW9ucyRtYWluQXhpcyA9IG9wdGlvbnMubWFpbkF4aXMsXG4gICAgICBjaGVja01haW5BeGlzID0gX29wdGlvbnMkbWFpbkF4aXMgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRtYWluQXhpcyxcbiAgICAgIF9vcHRpb25zJGFsdEF4aXMgPSBvcHRpb25zLmFsdEF4aXMsXG4gICAgICBjaGVja0FsdEF4aXMgPSBfb3B0aW9ucyRhbHRBeGlzID09PSB2b2lkIDAgPyBmYWxzZSA6IF9vcHRpb25zJGFsdEF4aXMsXG4gICAgICBib3VuZGFyeSA9IG9wdGlvbnMuYm91bmRhcnksXG4gICAgICByb290Qm91bmRhcnkgPSBvcHRpb25zLnJvb3RCb3VuZGFyeSxcbiAgICAgIGFsdEJvdW5kYXJ5ID0gb3B0aW9ucy5hbHRCb3VuZGFyeSxcbiAgICAgIHBhZGRpbmcgPSBvcHRpb25zLnBhZGRpbmcsXG4gICAgICBfb3B0aW9ucyR0ZXRoZXIgPSBvcHRpb25zLnRldGhlcixcbiAgICAgIHRldGhlciA9IF9vcHRpb25zJHRldGhlciA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJHRldGhlcixcbiAgICAgIF9vcHRpb25zJHRldGhlck9mZnNldCA9IG9wdGlvbnMudGV0aGVyT2Zmc2V0LFxuICAgICAgdGV0aGVyT2Zmc2V0ID0gX29wdGlvbnMkdGV0aGVyT2Zmc2V0ID09PSB2b2lkIDAgPyAwIDogX29wdGlvbnMkdGV0aGVyT2Zmc2V0O1xuICB2YXIgb3ZlcmZsb3cgPSBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwge1xuICAgIGJvdW5kYXJ5OiBib3VuZGFyeSxcbiAgICByb290Qm91bmRhcnk6IHJvb3RCb3VuZGFyeSxcbiAgICBwYWRkaW5nOiBwYWRkaW5nLFxuICAgIGFsdEJvdW5kYXJ5OiBhbHRCb3VuZGFyeVxuICB9KTtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHN0YXRlLnBsYWNlbWVudCk7XG4gIHZhciB2YXJpYXRpb24gPSBnZXRWYXJpYXRpb24oc3RhdGUucGxhY2VtZW50KTtcbiAgdmFyIGlzQmFzZVBsYWNlbWVudCA9ICF2YXJpYXRpb247XG4gIHZhciBtYWluQXhpcyA9IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudChiYXNlUGxhY2VtZW50KTtcbiAgdmFyIGFsdEF4aXMgPSBnZXRBbHRBeGlzKG1haW5BeGlzKTtcbiAgdmFyIHBvcHBlck9mZnNldHMgPSBzdGF0ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHM7XG4gIHZhciByZWZlcmVuY2VSZWN0ID0gc3RhdGUucmVjdHMucmVmZXJlbmNlO1xuICB2YXIgcG9wcGVyUmVjdCA9IHN0YXRlLnJlY3RzLnBvcHBlcjtcbiAgdmFyIHRldGhlck9mZnNldFZhbHVlID0gdHlwZW9mIHRldGhlck9mZnNldCA9PT0gJ2Z1bmN0aW9uJyA/IHRldGhlck9mZnNldChPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5yZWN0cywge1xuICAgIHBsYWNlbWVudDogc3RhdGUucGxhY2VtZW50XG4gIH0pKSA6IHRldGhlck9mZnNldDtcbiAgdmFyIGRhdGEgPSB7XG4gICAgeDogMCxcbiAgICB5OiAwXG4gIH07XG5cbiAgaWYgKCFwb3BwZXJPZmZzZXRzKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGNoZWNrTWFpbkF4aXMgfHwgY2hlY2tBbHRBeGlzKSB7XG4gICAgdmFyIG1haW5TaWRlID0gbWFpbkF4aXMgPT09ICd5JyA/IHRvcCA6IGxlZnQ7XG4gICAgdmFyIGFsdFNpZGUgPSBtYWluQXhpcyA9PT0gJ3knID8gYm90dG9tIDogcmlnaHQ7XG4gICAgdmFyIGxlbiA9IG1haW5BeGlzID09PSAneScgPyAnaGVpZ2h0JyA6ICd3aWR0aCc7XG4gICAgdmFyIG9mZnNldCA9IHBvcHBlck9mZnNldHNbbWFpbkF4aXNdO1xuICAgIHZhciBtaW4gPSBwb3BwZXJPZmZzZXRzW21haW5BeGlzXSArIG92ZXJmbG93W21haW5TaWRlXTtcbiAgICB2YXIgbWF4ID0gcG9wcGVyT2Zmc2V0c1ttYWluQXhpc10gLSBvdmVyZmxvd1thbHRTaWRlXTtcbiAgICB2YXIgYWRkaXRpdmUgPSB0ZXRoZXIgPyAtcG9wcGVyUmVjdFtsZW5dIC8gMiA6IDA7XG4gICAgdmFyIG1pbkxlbiA9IHZhcmlhdGlvbiA9PT0gc3RhcnQgPyByZWZlcmVuY2VSZWN0W2xlbl0gOiBwb3BwZXJSZWN0W2xlbl07XG4gICAgdmFyIG1heExlbiA9IHZhcmlhdGlvbiA9PT0gc3RhcnQgPyAtcG9wcGVyUmVjdFtsZW5dIDogLXJlZmVyZW5jZVJlY3RbbGVuXTsgLy8gV2UgbmVlZCB0byBpbmNsdWRlIHRoZSBhcnJvdyBpbiB0aGUgY2FsY3VsYXRpb24gc28gdGhlIGFycm93IGRvZXNuJ3QgZ29cbiAgICAvLyBvdXRzaWRlIHRoZSByZWZlcmVuY2UgYm91bmRzXG5cbiAgICB2YXIgYXJyb3dFbGVtZW50ID0gc3RhdGUuZWxlbWVudHMuYXJyb3c7XG4gICAgdmFyIGFycm93UmVjdCA9IHRldGhlciAmJiBhcnJvd0VsZW1lbnQgPyBnZXRMYXlvdXRSZWN0KGFycm93RWxlbWVudCkgOiB7XG4gICAgICB3aWR0aDogMCxcbiAgICAgIGhlaWdodDogMFxuICAgIH07XG4gICAgdmFyIGFycm93UGFkZGluZ09iamVjdCA9IHN0YXRlLm1vZGlmaWVyc0RhdGFbJ2Fycm93I3BlcnNpc3RlbnQnXSA/IHN0YXRlLm1vZGlmaWVyc0RhdGFbJ2Fycm93I3BlcnNpc3RlbnQnXS5wYWRkaW5nIDogZ2V0RnJlc2hTaWRlT2JqZWN0KCk7XG4gICAgdmFyIGFycm93UGFkZGluZ01pbiA9IGFycm93UGFkZGluZ09iamVjdFttYWluU2lkZV07XG4gICAgdmFyIGFycm93UGFkZGluZ01heCA9IGFycm93UGFkZGluZ09iamVjdFthbHRTaWRlXTsgLy8gSWYgdGhlIHJlZmVyZW5jZSBsZW5ndGggaXMgc21hbGxlciB0aGFuIHRoZSBhcnJvdyBsZW5ndGgsIHdlIGRvbid0IHdhbnRcbiAgICAvLyB0byBpbmNsdWRlIGl0cyBmdWxsIHNpemUgaW4gdGhlIGNhbGN1bGF0aW9uLiBJZiB0aGUgcmVmZXJlbmNlIGlzIHNtYWxsXG4gICAgLy8gYW5kIG5lYXIgdGhlIGVkZ2Ugb2YgYSBib3VuZGFyeSwgdGhlIHBvcHBlciBjYW4gb3ZlcmZsb3cgZXZlbiBpZiB0aGVcbiAgICAvLyByZWZlcmVuY2UgaXMgbm90IG92ZXJmbG93aW5nIGFzIHdlbGwgKGUuZy4gdmlydHVhbCBlbGVtZW50cyB3aXRoIG5vXG4gICAgLy8gd2lkdGggb3IgaGVpZ2h0KVxuXG4gICAgdmFyIGFycm93TGVuID0gd2l0aGluKDAsIHJlZmVyZW5jZVJlY3RbbGVuXSwgYXJyb3dSZWN0W2xlbl0pO1xuICAgIHZhciBtaW5PZmZzZXQgPSBpc0Jhc2VQbGFjZW1lbnQgPyByZWZlcmVuY2VSZWN0W2xlbl0gLyAyIC0gYWRkaXRpdmUgLSBhcnJvd0xlbiAtIGFycm93UGFkZGluZ01pbiAtIHRldGhlck9mZnNldFZhbHVlIDogbWluTGVuIC0gYXJyb3dMZW4gLSBhcnJvd1BhZGRpbmdNaW4gLSB0ZXRoZXJPZmZzZXRWYWx1ZTtcbiAgICB2YXIgbWF4T2Zmc2V0ID0gaXNCYXNlUGxhY2VtZW50ID8gLXJlZmVyZW5jZVJlY3RbbGVuXSAvIDIgKyBhZGRpdGl2ZSArIGFycm93TGVuICsgYXJyb3dQYWRkaW5nTWF4ICsgdGV0aGVyT2Zmc2V0VmFsdWUgOiBtYXhMZW4gKyBhcnJvd0xlbiArIGFycm93UGFkZGluZ01heCArIHRldGhlck9mZnNldFZhbHVlO1xuICAgIHZhciBhcnJvd09mZnNldFBhcmVudCA9IHN0YXRlLmVsZW1lbnRzLmFycm93ICYmIGdldE9mZnNldFBhcmVudChzdGF0ZS5lbGVtZW50cy5hcnJvdyk7XG4gICAgdmFyIGNsaWVudE9mZnNldCA9IGFycm93T2Zmc2V0UGFyZW50ID8gbWFpbkF4aXMgPT09ICd5JyA/IGFycm93T2Zmc2V0UGFyZW50LmNsaWVudFRvcCB8fCAwIDogYXJyb3dPZmZzZXRQYXJlbnQuY2xpZW50TGVmdCB8fCAwIDogMDtcbiAgICB2YXIgb2Zmc2V0TW9kaWZpZXJWYWx1ZSA9IHN0YXRlLm1vZGlmaWVyc0RhdGEub2Zmc2V0ID8gc3RhdGUubW9kaWZpZXJzRGF0YS5vZmZzZXRbc3RhdGUucGxhY2VtZW50XVttYWluQXhpc10gOiAwO1xuICAgIHZhciB0ZXRoZXJNaW4gPSBwb3BwZXJPZmZzZXRzW21haW5BeGlzXSArIG1pbk9mZnNldCAtIG9mZnNldE1vZGlmaWVyVmFsdWUgLSBjbGllbnRPZmZzZXQ7XG4gICAgdmFyIHRldGhlck1heCA9IHBvcHBlck9mZnNldHNbbWFpbkF4aXNdICsgbWF4T2Zmc2V0IC0gb2Zmc2V0TW9kaWZpZXJWYWx1ZTtcblxuICAgIGlmIChjaGVja01haW5BeGlzKSB7XG4gICAgICB2YXIgcHJldmVudGVkT2Zmc2V0ID0gd2l0aGluKHRldGhlciA/IG1hdGhNaW4obWluLCB0ZXRoZXJNaW4pIDogbWluLCBvZmZzZXQsIHRldGhlciA/IG1hdGhNYXgobWF4LCB0ZXRoZXJNYXgpIDogbWF4KTtcbiAgICAgIHBvcHBlck9mZnNldHNbbWFpbkF4aXNdID0gcHJldmVudGVkT2Zmc2V0O1xuICAgICAgZGF0YVttYWluQXhpc10gPSBwcmV2ZW50ZWRPZmZzZXQgLSBvZmZzZXQ7XG4gICAgfVxuXG4gICAgaWYgKGNoZWNrQWx0QXhpcykge1xuICAgICAgdmFyIF9tYWluU2lkZSA9IG1haW5BeGlzID09PSAneCcgPyB0b3AgOiBsZWZ0O1xuXG4gICAgICB2YXIgX2FsdFNpZGUgPSBtYWluQXhpcyA9PT0gJ3gnID8gYm90dG9tIDogcmlnaHQ7XG5cbiAgICAgIHZhciBfb2Zmc2V0ID0gcG9wcGVyT2Zmc2V0c1thbHRBeGlzXTtcblxuICAgICAgdmFyIF9taW4gPSBfb2Zmc2V0ICsgb3ZlcmZsb3dbX21haW5TaWRlXTtcblxuICAgICAgdmFyIF9tYXggPSBfb2Zmc2V0IC0gb3ZlcmZsb3dbX2FsdFNpZGVdO1xuXG4gICAgICB2YXIgX3ByZXZlbnRlZE9mZnNldCA9IHdpdGhpbih0ZXRoZXIgPyBtYXRoTWluKF9taW4sIHRldGhlck1pbikgOiBfbWluLCBfb2Zmc2V0LCB0ZXRoZXIgPyBtYXRoTWF4KF9tYXgsIHRldGhlck1heCkgOiBfbWF4KTtcblxuICAgICAgcG9wcGVyT2Zmc2V0c1thbHRBeGlzXSA9IF9wcmV2ZW50ZWRPZmZzZXQ7XG4gICAgICBkYXRhW2FsdEF4aXNdID0gX3ByZXZlbnRlZE9mZnNldCAtIF9vZmZzZXQ7XG4gICAgfVxuICB9XG5cbiAgc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXSA9IGRhdGE7XG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdwcmV2ZW50T3ZlcmZsb3cnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ21haW4nLFxuICBmbjogcHJldmVudE92ZXJmbG93LFxuICByZXF1aXJlc0lmRXhpc3RzOiBbJ29mZnNldCddXG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/popper-lite.js": /*!********************************************************!*\ !*** ./node_modules/@popperjs/core/lib/popper-lite.js ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"createPopper\": () => (/* binding */ createPopper),\n/* harmony export */ \"popperGenerator\": () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_4__.popperGenerator),\n/* harmony export */ \"defaultModifiers\": () => (/* binding */ defaultModifiers),\n/* harmony export */ \"detectOverflow\": () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createPopper.js */ \"./node_modules/@popperjs/core/lib/createPopper.js\");\n/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createPopper.js */ \"./node_modules/@popperjs/core/lib/utils/detectOverflow.js\");\n/* harmony import */ var _modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modifiers/eventListeners.js */ \"./node_modules/@popperjs/core/lib/modifiers/eventListeners.js\");\n/* harmony import */ var _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/popperOffsets.js */ \"./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js\");\n/* harmony import */ var _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modifiers/computeStyles.js */ \"./node_modules/@popperjs/core/lib/modifiers/computeStyles.js\");\n/* harmony import */ var _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modifiers/applyStyles.js */ \"./node_modules/@popperjs/core/lib/modifiers/applyStyles.js\");\n\n\n\n\n\nvar defaultModifiers = [_modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]];\nvar createPopper = /*#__PURE__*/(0,_createPopper_js__WEBPACK_IMPORTED_MODULE_4__.popperGenerator)({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3BvcHBlci1saXRlLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBb0U7QUFDVDtBQUNGO0FBQ0E7QUFDSjtBQUNyRCx3QkFBd0Isb0VBQWMsRUFBRSxtRUFBYSxFQUFFLG1FQUFhLEVBQUUsaUVBQVc7QUFDakYsZ0NBQWdDLGlFQUFlO0FBQy9DO0FBQ0EsQ0FBQyxHQUFHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9wb3BwZXItbGl0ZS5qcz80NWQxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBvcHBlckdlbmVyYXRvciwgZGV0ZWN0T3ZlcmZsb3cgfSBmcm9tIFwiLi9jcmVhdGVQb3BwZXIuanNcIjtcbmltcG9ydCBldmVudExpc3RlbmVycyBmcm9tIFwiLi9tb2RpZmllcnMvZXZlbnRMaXN0ZW5lcnMuanNcIjtcbmltcG9ydCBwb3BwZXJPZmZzZXRzIGZyb20gXCIuL21vZGlmaWVycy9wb3BwZXJPZmZzZXRzLmpzXCI7XG5pbXBvcnQgY29tcHV0ZVN0eWxlcyBmcm9tIFwiLi9tb2RpZmllcnMvY29tcHV0ZVN0eWxlcy5qc1wiO1xuaW1wb3J0IGFwcGx5U3R5bGVzIGZyb20gXCIuL21vZGlmaWVycy9hcHBseVN0eWxlcy5qc1wiO1xudmFyIGRlZmF1bHRNb2RpZmllcnMgPSBbZXZlbnRMaXN0ZW5lcnMsIHBvcHBlck9mZnNldHMsIGNvbXB1dGVTdHlsZXMsIGFwcGx5U3R5bGVzXTtcbnZhciBjcmVhdGVQb3BwZXIgPSAvKiNfX1BVUkVfXyovcG9wcGVyR2VuZXJhdG9yKHtcbiAgZGVmYXVsdE1vZGlmaWVyczogZGVmYXVsdE1vZGlmaWVyc1xufSk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgY3JlYXRlUG9wcGVyLCBwb3BwZXJHZW5lcmF0b3IsIGRlZmF1bHRNb2RpZmllcnMsIGRldGVjdE92ZXJmbG93IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/popper-lite.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/popper.js": /*!***************************************************!*\ !*** ./node_modules/@popperjs/core/lib/popper.js ***! \***************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"createPopper\": () => (/* binding */ createPopper),\n/* harmony export */ \"popperGenerator\": () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_9__.popperGenerator),\n/* harmony export */ \"defaultModifiers\": () => (/* binding */ defaultModifiers),\n/* harmony export */ \"detectOverflow\": () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]),\n/* harmony export */ \"createPopperLite\": () => (/* reexport safe */ _popper_lite_js__WEBPACK_IMPORTED_MODULE_11__.createPopper),\n/* harmony export */ \"applyStyles\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.applyStyles),\n/* harmony export */ \"arrow\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.arrow),\n/* harmony export */ \"computeStyles\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.computeStyles),\n/* harmony export */ \"eventListeners\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.eventListeners),\n/* harmony export */ \"flip\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.flip),\n/* harmony export */ \"hide\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.hide),\n/* harmony export */ \"offset\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.offset),\n/* harmony export */ \"popperOffsets\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.popperOffsets),\n/* harmony export */ \"preventOverflow\": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.preventOverflow)\n/* harmony export */ });\n/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./createPopper.js */ \"./node_modules/@popperjs/core/lib/createPopper.js\");\n/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./createPopper.js */ \"./node_modules/@popperjs/core/lib/utils/detectOverflow.js\");\n/* harmony import */ var _modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modifiers/eventListeners.js */ \"./node_modules/@popperjs/core/lib/modifiers/eventListeners.js\");\n/* harmony import */ var _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/popperOffsets.js */ \"./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js\");\n/* harmony import */ var _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modifiers/computeStyles.js */ \"./node_modules/@popperjs/core/lib/modifiers/computeStyles.js\");\n/* harmony import */ var _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modifiers/applyStyles.js */ \"./node_modules/@popperjs/core/lib/modifiers/applyStyles.js\");\n/* harmony import */ var _modifiers_offset_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modifiers/offset.js */ \"./node_modules/@popperjs/core/lib/modifiers/offset.js\");\n/* harmony import */ var _modifiers_flip_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modifiers/flip.js */ \"./node_modules/@popperjs/core/lib/modifiers/flip.js\");\n/* harmony import */ var _modifiers_preventOverflow_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modifiers/preventOverflow.js */ \"./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js\");\n/* harmony import */ var _modifiers_arrow_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modifiers/arrow.js */ \"./node_modules/@popperjs/core/lib/modifiers/arrow.js\");\n/* harmony import */ var _modifiers_hide_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modifiers/hide.js */ \"./node_modules/@popperjs/core/lib/modifiers/hide.js\");\n/* harmony import */ var _popper_lite_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./popper-lite.js */ \"./node_modules/@popperjs/core/lib/popper-lite.js\");\n/* harmony import */ var _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modifiers/index.js */ \"./node_modules/@popperjs/core/lib/modifiers/index.js\");\n\n\n\n\n\n\n\n\n\n\nvar defaultModifiers = [_modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _modifiers_offset_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"], _modifiers_flip_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"], _modifiers_preventOverflow_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"], _modifiers_arrow_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"], _modifiers_hide_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]];\nvar createPopper = /*#__PURE__*/(0,_createPopper_js__WEBPACK_IMPORTED_MODULE_9__.popperGenerator)({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\n // eslint-disable-next-line import/no-unused-modules\n\n // eslint-disable-next-line import/no-unused-modules\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3BvcHBlci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBb0U7QUFDVDtBQUNGO0FBQ0E7QUFDSjtBQUNWO0FBQ0o7QUFDc0I7QUFDcEI7QUFDRjtBQUN2Qyx3QkFBd0Isb0VBQWMsRUFBRSxtRUFBYSxFQUFFLG1FQUFhLEVBQUUsaUVBQVcsRUFBRSw0REFBTSxFQUFFLDBEQUFJLEVBQUUscUVBQWUsRUFBRSwyREFBSyxFQUFFLDBEQUFJO0FBQzdILGdDQUFnQyxpRUFBZTtBQUMvQztBQUNBLENBQUMsR0FBRzs7QUFFdUUsQ0FBQzs7QUFFUixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9wb3BwZXIuanM/MzljMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwb3BwZXJHZW5lcmF0b3IsIGRldGVjdE92ZXJmbG93IH0gZnJvbSBcIi4vY3JlYXRlUG9wcGVyLmpzXCI7XG5pbXBvcnQgZXZlbnRMaXN0ZW5lcnMgZnJvbSBcIi4vbW9kaWZpZXJzL2V2ZW50TGlzdGVuZXJzLmpzXCI7XG5pbXBvcnQgcG9wcGVyT2Zmc2V0cyBmcm9tIFwiLi9tb2RpZmllcnMvcG9wcGVyT2Zmc2V0cy5qc1wiO1xuaW1wb3J0IGNvbXB1dGVTdHlsZXMgZnJvbSBcIi4vbW9kaWZpZXJzL2NvbXB1dGVTdHlsZXMuanNcIjtcbmltcG9ydCBhcHBseVN0eWxlcyBmcm9tIFwiLi9tb2RpZmllcnMvYXBwbHlTdHlsZXMuanNcIjtcbmltcG9ydCBvZmZzZXQgZnJvbSBcIi4vbW9kaWZpZXJzL29mZnNldC5qc1wiO1xuaW1wb3J0IGZsaXAgZnJvbSBcIi4vbW9kaWZpZXJzL2ZsaXAuanNcIjtcbmltcG9ydCBwcmV2ZW50T3ZlcmZsb3cgZnJvbSBcIi4vbW9kaWZpZXJzL3ByZXZlbnRPdmVyZmxvdy5qc1wiO1xuaW1wb3J0IGFycm93IGZyb20gXCIuL21vZGlmaWVycy9hcnJvdy5qc1wiO1xuaW1wb3J0IGhpZGUgZnJvbSBcIi4vbW9kaWZpZXJzL2hpZGUuanNcIjtcbnZhciBkZWZhdWx0TW9kaWZpZXJzID0gW2V2ZW50TGlzdGVuZXJzLCBwb3BwZXJPZmZzZXRzLCBjb21wdXRlU3R5bGVzLCBhcHBseVN0eWxlcywgb2Zmc2V0LCBmbGlwLCBwcmV2ZW50T3ZlcmZsb3csIGFycm93LCBoaWRlXTtcbnZhciBjcmVhdGVQb3BwZXIgPSAvKiNfX1BVUkVfXyovcG9wcGVyR2VuZXJhdG9yKHtcbiAgZGVmYXVsdE1vZGlmaWVyczogZGVmYXVsdE1vZGlmaWVyc1xufSk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgY3JlYXRlUG9wcGVyLCBwb3BwZXJHZW5lcmF0b3IsIGRlZmF1bHRNb2RpZmllcnMsIGRldGVjdE92ZXJmbG93IH07IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgY3JlYXRlUG9wcGVyIGFzIGNyZWF0ZVBvcHBlckxpdGUgfSBmcm9tIFwiLi9wb3BwZXItbGl0ZS5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCAqIGZyb20gXCIuL21vZGlmaWVycy9pbmRleC5qc1wiOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/popper.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js": /*!***********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ computeAutoPlacement)\n/* harmony export */ });\n/* harmony import */ var _getVariation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getVariation.js */ \"./node_modules/@popperjs/core/lib/utils/getVariation.js\");\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _detectOverflow_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./detectOverflow.js */ \"./node_modules/@popperjs/core/lib/utils/detectOverflow.js\");\n/* harmony import */ var _getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getBasePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\");\n\n\n\n\nfunction computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.placements : _options$allowedAutoP;\n var variation = (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(placement);\n var placements = variation ? flipVariations ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements : _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements.filter(function (placement) {\n return (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(placement) === variation;\n }) : _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (true) {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = (0,_detectOverflow_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[(0,_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2NvbXB1dGVBdXRvUGxhY2VtZW50LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQTZDO0FBQ2tEO0FBQzlDO0FBQ0k7QUFDdEM7QUFDZjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRUFBaUUsaURBQWE7QUFDOUUsa0JBQWtCLDREQUFZO0FBQzlCLGdEQUFnRCwwREFBbUIsR0FBRyxpRUFBMEI7QUFDaEcsV0FBVyw0REFBWTtBQUN2QixHQUFHLElBQUkscURBQWM7QUFDckI7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTs7QUFFQSxRQUFRLElBQXFDO0FBQzdDO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBLHFCQUFxQiw4REFBYztBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssRUFBRSxnRUFBZ0I7QUFDdkI7QUFDQSxHQUFHLElBQUk7QUFDUDtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9jb21wdXRlQXV0b1BsYWNlbWVudC5qcz80M2NlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRWYXJpYXRpb24gZnJvbSBcIi4vZ2V0VmFyaWF0aW9uLmpzXCI7XG5pbXBvcnQgeyB2YXJpYXRpb25QbGFjZW1lbnRzLCBiYXNlUGxhY2VtZW50cywgcGxhY2VtZW50cyBhcyBhbGxQbGFjZW1lbnRzIH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5pbXBvcnQgZGV0ZWN0T3ZlcmZsb3cgZnJvbSBcIi4vZGV0ZWN0T3ZlcmZsb3cuanNcIjtcbmltcG9ydCBnZXRCYXNlUGxhY2VtZW50IGZyb20gXCIuL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbXB1dGVBdXRvUGxhY2VtZW50KHN0YXRlLCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cblxuICB2YXIgX29wdGlvbnMgPSBvcHRpb25zLFxuICAgICAgcGxhY2VtZW50ID0gX29wdGlvbnMucGxhY2VtZW50LFxuICAgICAgYm91bmRhcnkgPSBfb3B0aW9ucy5ib3VuZGFyeSxcbiAgICAgIHJvb3RCb3VuZGFyeSA9IF9vcHRpb25zLnJvb3RCb3VuZGFyeSxcbiAgICAgIHBhZGRpbmcgPSBfb3B0aW9ucy5wYWRkaW5nLFxuICAgICAgZmxpcFZhcmlhdGlvbnMgPSBfb3B0aW9ucy5mbGlwVmFyaWF0aW9ucyxcbiAgICAgIF9vcHRpb25zJGFsbG93ZWRBdXRvUCA9IF9vcHRpb25zLmFsbG93ZWRBdXRvUGxhY2VtZW50cyxcbiAgICAgIGFsbG93ZWRBdXRvUGxhY2VtZW50cyA9IF9vcHRpb25zJGFsbG93ZWRBdXRvUCA9PT0gdm9pZCAwID8gYWxsUGxhY2VtZW50cyA6IF9vcHRpb25zJGFsbG93ZWRBdXRvUDtcbiAgdmFyIHZhcmlhdGlvbiA9IGdldFZhcmlhdGlvbihwbGFjZW1lbnQpO1xuICB2YXIgcGxhY2VtZW50cyA9IHZhcmlhdGlvbiA/IGZsaXBWYXJpYXRpb25zID8gdmFyaWF0aW9uUGxhY2VtZW50cyA6IHZhcmlhdGlvblBsYWNlbWVudHMuZmlsdGVyKGZ1bmN0aW9uIChwbGFjZW1lbnQpIHtcbiAgICByZXR1cm4gZ2V0VmFyaWF0aW9uKHBsYWNlbWVudCkgPT09IHZhcmlhdGlvbjtcbiAgfSkgOiBiYXNlUGxhY2VtZW50cztcbiAgdmFyIGFsbG93ZWRQbGFjZW1lbnRzID0gcGxhY2VtZW50cy5maWx0ZXIoZnVuY3Rpb24gKHBsYWNlbWVudCkge1xuICAgIHJldHVybiBhbGxvd2VkQXV0b1BsYWNlbWVudHMuaW5kZXhPZihwbGFjZW1lbnQpID49IDA7XG4gIH0pO1xuXG4gIGlmIChhbGxvd2VkUGxhY2VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICBhbGxvd2VkUGxhY2VtZW50cyA9IHBsYWNlbWVudHM7XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFsnUG9wcGVyOiBUaGUgYGFsbG93ZWRBdXRvUGxhY2VtZW50c2Agb3B0aW9uIGRpZCBub3QgYWxsb3cgYW55JywgJ3BsYWNlbWVudHMuIEVuc3VyZSB0aGUgYHBsYWNlbWVudGAgb3B0aW9uIG1hdGNoZXMgdGhlIHZhcmlhdGlvbicsICdvZiB0aGUgYWxsb3dlZCBwbGFjZW1lbnRzLicsICdGb3IgZXhhbXBsZSwgXCJhdXRvXCIgY2Fubm90IGJlIHVzZWQgdG8gYWxsb3cgXCJib3R0b20tc3RhcnRcIi4nLCAnVXNlIFwiYXV0by1zdGFydFwiIGluc3RlYWQuJ10uam9pbignICcpKTtcbiAgICB9XG4gIH0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdHlwZV06IEZsb3cgc2VlbXMgdG8gaGF2ZSBwcm9ibGVtcyB3aXRoIHR3byBhcnJheSB1bmlvbnMuLi5cblxuXG4gIHZhciBvdmVyZmxvd3MgPSBhbGxvd2VkUGxhY2VtZW50cy5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgcGxhY2VtZW50KSB7XG4gICAgYWNjW3BsYWNlbWVudF0gPSBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwge1xuICAgICAgcGxhY2VtZW50OiBwbGFjZW1lbnQsXG4gICAgICBib3VuZGFyeTogYm91bmRhcnksXG4gICAgICByb290Qm91bmRhcnk6IHJvb3RCb3VuZGFyeSxcbiAgICAgIHBhZGRpbmc6IHBhZGRpbmdcbiAgICB9KVtnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCldO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG92ZXJmbG93cykuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgIHJldHVybiBvdmVyZmxvd3NbYV0gLSBvdmVyZmxvd3NbYl07XG4gIH0pO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/computeOffsets.js": /*!*****************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/computeOffsets.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ computeOffsets)\n/* harmony export */ });\n/* harmony import */ var _getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBasePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\");\n/* harmony import */ var _getVariation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getVariation.js */ \"./node_modules/@popperjs/core/lib/utils/getVariation.js\");\n/* harmony import */ var _getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getMainAxisFromPlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js\");\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n\n\n\n\nfunction computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? (0,_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(placement) : null;\n var variation = placement ? (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case _enums_js__WEBPACK_IMPORTED_MODULE_2__.top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case _enums_js__WEBPACK_IMPORTED_MODULE_2__.bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case _enums_js__WEBPACK_IMPORTED_MODULE_2__.right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case _enums_js__WEBPACK_IMPORTED_MODULE_2__.left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? (0,_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case _enums_js__WEBPACK_IMPORTED_MODULE_2__.start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case _enums_js__WEBPACK_IMPORTED_MODULE_2__.end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2NvbXB1dGVPZmZzZXRzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXFEO0FBQ1I7QUFDd0I7QUFDRjtBQUNwRDtBQUNmO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxnRUFBZ0I7QUFDbEQsOEJBQThCLDREQUFZO0FBQzFDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBQVMsMENBQUc7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVMsNkNBQU07QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVMsNENBQUs7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVMsMkNBQUk7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQ0FBaUMsd0VBQXdCOztBQUV6RDtBQUNBOztBQUVBO0FBQ0EsV0FBVyw0Q0FBSztBQUNoQjtBQUNBOztBQUVBLFdBQVcsMENBQUc7QUFDZDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9jb21wdXRlT2Zmc2V0cy5qcz81ZDdlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRCYXNlUGxhY2VtZW50IGZyb20gXCIuL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRWYXJpYXRpb24gZnJvbSBcIi4vZ2V0VmFyaWF0aW9uLmpzXCI7XG5pbXBvcnQgZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50IGZyb20gXCIuL2dldE1haW5BeGlzRnJvbVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHsgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0LCBzdGFydCwgZW5kIH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb21wdXRlT2Zmc2V0cyhfcmVmKSB7XG4gIHZhciByZWZlcmVuY2UgPSBfcmVmLnJlZmVyZW5jZSxcbiAgICAgIGVsZW1lbnQgPSBfcmVmLmVsZW1lbnQsXG4gICAgICBwbGFjZW1lbnQgPSBfcmVmLnBsYWNlbWVudDtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBwbGFjZW1lbnQgPyBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCkgOiBudWxsO1xuICB2YXIgdmFyaWF0aW9uID0gcGxhY2VtZW50ID8gZ2V0VmFyaWF0aW9uKHBsYWNlbWVudCkgOiBudWxsO1xuICB2YXIgY29tbW9uWCA9IHJlZmVyZW5jZS54ICsgcmVmZXJlbmNlLndpZHRoIC8gMiAtIGVsZW1lbnQud2lkdGggLyAyO1xuICB2YXIgY29tbW9uWSA9IHJlZmVyZW5jZS55ICsgcmVmZXJlbmNlLmhlaWdodCAvIDIgLSBlbGVtZW50LmhlaWdodCAvIDI7XG4gIHZhciBvZmZzZXRzO1xuXG4gIHN3aXRjaCAoYmFzZVBsYWNlbWVudCkge1xuICAgIGNhc2UgdG9wOlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogY29tbW9uWCxcbiAgICAgICAgeTogcmVmZXJlbmNlLnkgLSBlbGVtZW50LmhlaWdodFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBib3R0b206XG4gICAgICBvZmZzZXRzID0ge1xuICAgICAgICB4OiBjb21tb25YLFxuICAgICAgICB5OiByZWZlcmVuY2UueSArIHJlZmVyZW5jZS5oZWlnaHRcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgcmlnaHQ6XG4gICAgICBvZmZzZXRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCxcbiAgICAgICAgeTogY29tbW9uWVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBsZWZ0OlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLnggLSBlbGVtZW50LndpZHRoLFxuICAgICAgICB5OiBjb21tb25ZXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLngsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55XG4gICAgICB9O1xuICB9XG5cbiAgdmFyIG1haW5BeGlzID0gYmFzZVBsYWNlbWVudCA/IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudChiYXNlUGxhY2VtZW50KSA6IG51bGw7XG5cbiAgaWYgKG1haW5BeGlzICE9IG51bGwpIHtcbiAgICB2YXIgbGVuID0gbWFpbkF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICAgIHN3aXRjaCAodmFyaWF0aW9uKSB7XG4gICAgICBjYXNlIHN0YXJ0OlxuICAgICAgICBvZmZzZXRzW21haW5BeGlzXSA9IG9mZnNldHNbbWFpbkF4aXNdIC0gKHJlZmVyZW5jZVtsZW5dIC8gMiAtIGVsZW1lbnRbbGVuXSAvIDIpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBlbmQ6XG4gICAgICAgIG9mZnNldHNbbWFpbkF4aXNdID0gb2Zmc2V0c1ttYWluQXhpc10gKyAocmVmZXJlbmNlW2xlbl0gLyAyIC0gZWxlbWVudFtsZW5dIC8gMik7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvZmZzZXRzO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/debounce.js": /*!***********************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/debounce.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ debounce)\n/* harmony export */ });\nfunction debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2RlYm91bmNlLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2RlYm91bmNlLmpzP2IxZTIiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGVib3VuY2UoZm4pIHtcbiAgdmFyIHBlbmRpbmc7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFwZW5kaW5nKSB7XG4gICAgICBwZW5kaW5nID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcGVuZGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICByZXNvbHZlKGZuKCkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBwZW5kaW5nO1xuICB9O1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/debounce.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js": /*!*****************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/detectOverflow.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ detectOverflow)\n/* harmony export */ });\n/* harmony import */ var _dom_utils_getClippingRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dom-utils/getClippingRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js\");\n/* harmony import */ var _dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom-utils/getDocumentElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\");\n/* harmony import */ var _dom_utils_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/getBoundingClientRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js\");\n/* harmony import */ var _computeOffsets_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./computeOffsets.js */ \"./node_modules/@popperjs/core/lib/utils/computeOffsets.js\");\n/* harmony import */ var _rectToClientRect_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./rectToClientRect.js */ \"./node_modules/@popperjs/core/lib/utils/rectToClientRect.js\");\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dom-utils/instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n/* harmony import */ var _mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergePaddingObject.js */ \"./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js\");\n/* harmony import */ var _expandToHashMap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./expandToHashMap.js */ \"./node_modules/@popperjs/core/lib/utils/expandToHashMap.js\");\n\n\n\n\n\n\n\n\n // eslint-disable-next-line import/no-unused-modules\n\nfunction detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = (0,_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(typeof padding !== 'number' ? padding : (0,_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(padding, _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements));\n var altContext = elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.reference : _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = (0,_dom_utils_getClippingRect_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])((0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(element) ? element : element.contextElement || (0,_dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = (0,_dom_utils_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(state.elements.reference);\n var popperOffsets = (0,_computeOffsets_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = (0,_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [_enums_js__WEBPACK_IMPORTED_MODULE_0__.right, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [_enums_js__WEBPACK_IMPORTED_MODULE_0__.top, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBOEQ7QUFDTTtBQUNNO0FBQ3pCO0FBQ0k7QUFDMEQ7QUFDeEQ7QUFDRTtBQUNOLENBQUM7O0FBRXJDO0FBQ2Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdELHNEQUFlO0FBQy9EO0FBQ0Esd0RBQXdELCtDQUFRO0FBQ2hFO0FBQ0EsMERBQTBELDZDQUFNO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLGtFQUFrQix5Q0FBeUMsK0RBQWUsVUFBVSxxREFBYztBQUN4SCxzQ0FBc0MsNkNBQU0sR0FBRyxnREFBUyxHQUFHLDZDQUFNO0FBQ2pFO0FBQ0E7QUFDQSwyQkFBMkIseUVBQWUsQ0FBQyxtRUFBUyxnREFBZ0QsNEVBQWtCO0FBQ3RILDRCQUE0QiwrRUFBcUI7QUFDakQsc0JBQXNCLDhEQUFjO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILHlCQUF5QixnRUFBZ0IsaUJBQWlCO0FBQzFELDZDQUE2Qyw2Q0FBTSwyQ0FBMkM7QUFDOUY7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDOztBQUUvQyx5QkFBeUIsNkNBQU07QUFDL0I7QUFDQTtBQUNBLHNCQUFzQiw0Q0FBSyxFQUFFLDZDQUFNO0FBQ25DLGtCQUFrQiwwQ0FBRyxFQUFFLDZDQUFNO0FBQzdCO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzP2I2MTciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldENsaXBwaW5nUmVjdCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldENsaXBwaW5nUmVjdC5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldEJvdW5kaW5nQ2xpZW50UmVjdC5qc1wiO1xuaW1wb3J0IGNvbXB1dGVPZmZzZXRzIGZyb20gXCIuL2NvbXB1dGVPZmZzZXRzLmpzXCI7XG5pbXBvcnQgcmVjdFRvQ2xpZW50UmVjdCBmcm9tIFwiLi9yZWN0VG9DbGllbnRSZWN0LmpzXCI7XG5pbXBvcnQgeyBjbGlwcGluZ1BhcmVudHMsIHJlZmVyZW5jZSwgcG9wcGVyLCBib3R0b20sIHRvcCwgcmlnaHQsIGJhc2VQbGFjZW1lbnRzLCB2aWV3cG9ydCB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IHsgaXNFbGVtZW50IH0gZnJvbSBcIi4uL2RvbS11dGlscy9pbnN0YW5jZU9mLmpzXCI7XG5pbXBvcnQgbWVyZ2VQYWRkaW5nT2JqZWN0IGZyb20gXCIuL21lcmdlUGFkZGluZ09iamVjdC5qc1wiO1xuaW1wb3J0IGV4cGFuZFRvSGFzaE1hcCBmcm9tIFwiLi9leHBhbmRUb0hhc2hNYXAuanNcIjsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgdmFyIF9vcHRpb25zID0gb3B0aW9ucyxcbiAgICAgIF9vcHRpb25zJHBsYWNlbWVudCA9IF9vcHRpb25zLnBsYWNlbWVudCxcbiAgICAgIHBsYWNlbWVudCA9IF9vcHRpb25zJHBsYWNlbWVudCA9PT0gdm9pZCAwID8gc3RhdGUucGxhY2VtZW50IDogX29wdGlvbnMkcGxhY2VtZW50LFxuICAgICAgX29wdGlvbnMkYm91bmRhcnkgPSBfb3B0aW9ucy5ib3VuZGFyeSxcbiAgICAgIGJvdW5kYXJ5ID0gX29wdGlvbnMkYm91bmRhcnkgPT09IHZvaWQgMCA/IGNsaXBwaW5nUGFyZW50cyA6IF9vcHRpb25zJGJvdW5kYXJ5LFxuICAgICAgX29wdGlvbnMkcm9vdEJvdW5kYXJ5ID0gX29wdGlvbnMucm9vdEJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5ID0gX29wdGlvbnMkcm9vdEJvdW5kYXJ5ID09PSB2b2lkIDAgPyB2aWV3cG9ydCA6IF9vcHRpb25zJHJvb3RCb3VuZGFyeSxcbiAgICAgIF9vcHRpb25zJGVsZW1lbnRDb250ZSA9IF9vcHRpb25zLmVsZW1lbnRDb250ZXh0LFxuICAgICAgZWxlbWVudENvbnRleHQgPSBfb3B0aW9ucyRlbGVtZW50Q29udGUgPT09IHZvaWQgMCA/IHBvcHBlciA6IF9vcHRpb25zJGVsZW1lbnRDb250ZSxcbiAgICAgIF9vcHRpb25zJGFsdEJvdW5kYXJ5ID0gX29wdGlvbnMuYWx0Qm91bmRhcnksXG4gICAgICBhbHRCb3VuZGFyeSA9IF9vcHRpb25zJGFsdEJvdW5kYXJ5ID09PSB2b2lkIDAgPyBmYWxzZSA6IF9vcHRpb25zJGFsdEJvdW5kYXJ5LFxuICAgICAgX29wdGlvbnMkcGFkZGluZyA9IF9vcHRpb25zLnBhZGRpbmcsXG4gICAgICBwYWRkaW5nID0gX29wdGlvbnMkcGFkZGluZyA9PT0gdm9pZCAwID8gMCA6IF9vcHRpb25zJHBhZGRpbmc7XG4gIHZhciBwYWRkaW5nT2JqZWN0ID0gbWVyZ2VQYWRkaW5nT2JqZWN0KHR5cGVvZiBwYWRkaW5nICE9PSAnbnVtYmVyJyA/IHBhZGRpbmcgOiBleHBhbmRUb0hhc2hNYXAocGFkZGluZywgYmFzZVBsYWNlbWVudHMpKTtcbiAgdmFyIGFsdENvbnRleHQgPSBlbGVtZW50Q29udGV4dCA9PT0gcG9wcGVyID8gcmVmZXJlbmNlIDogcG9wcGVyO1xuICB2YXIgcG9wcGVyUmVjdCA9IHN0YXRlLnJlY3RzLnBvcHBlcjtcbiAgdmFyIGVsZW1lbnQgPSBzdGF0ZS5lbGVtZW50c1thbHRCb3VuZGFyeSA/IGFsdENvbnRleHQgOiBlbGVtZW50Q29udGV4dF07XG4gIHZhciBjbGlwcGluZ0NsaWVudFJlY3QgPSBnZXRDbGlwcGluZ1JlY3QoaXNFbGVtZW50KGVsZW1lbnQpID8gZWxlbWVudCA6IGVsZW1lbnQuY29udGV4dEVsZW1lbnQgfHwgZ2V0RG9jdW1lbnRFbGVtZW50KHN0YXRlLmVsZW1lbnRzLnBvcHBlciksIGJvdW5kYXJ5LCByb290Qm91bmRhcnkpO1xuICB2YXIgcmVmZXJlbmNlQ2xpZW50UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChzdGF0ZS5lbGVtZW50cy5yZWZlcmVuY2UpO1xuICB2YXIgcG9wcGVyT2Zmc2V0cyA9IGNvbXB1dGVPZmZzZXRzKHtcbiAgICByZWZlcmVuY2U6IHJlZmVyZW5jZUNsaWVudFJlY3QsXG4gICAgZWxlbWVudDogcG9wcGVyUmVjdCxcbiAgICBzdHJhdGVneTogJ2Fic29sdXRlJyxcbiAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudFxuICB9KTtcbiAgdmFyIHBvcHBlckNsaWVudFJlY3QgPSByZWN0VG9DbGllbnRSZWN0KE9iamVjdC5hc3NpZ24oe30sIHBvcHBlclJlY3QsIHBvcHBlck9mZnNldHMpKTtcbiAgdmFyIGVsZW1lbnRDbGllbnRSZWN0ID0gZWxlbWVudENvbnRleHQgPT09IHBvcHBlciA/IHBvcHBlckNsaWVudFJlY3QgOiByZWZlcmVuY2VDbGllbnRSZWN0OyAvLyBwb3NpdGl2ZSA9IG92ZXJmbG93aW5nIHRoZSBjbGlwcGluZyByZWN0XG4gIC8vIDAgb3IgbmVnYXRpdmUgPSB3aXRoaW4gdGhlIGNsaXBwaW5nIHJlY3RcblxuICB2YXIgb3ZlcmZsb3dPZmZzZXRzID0ge1xuICAgIHRvcDogY2xpcHBpbmdDbGllbnRSZWN0LnRvcCAtIGVsZW1lbnRDbGllbnRSZWN0LnRvcCArIHBhZGRpbmdPYmplY3QudG9wLFxuICAgIGJvdHRvbTogZWxlbWVudENsaWVudFJlY3QuYm90dG9tIC0gY2xpcHBpbmdDbGllbnRSZWN0LmJvdHRvbSArIHBhZGRpbmdPYmplY3QuYm90dG9tLFxuICAgIGxlZnQ6IGNsaXBwaW5nQ2xpZW50UmVjdC5sZWZ0IC0gZWxlbWVudENsaWVudFJlY3QubGVmdCArIHBhZGRpbmdPYmplY3QubGVmdCxcbiAgICByaWdodDogZWxlbWVudENsaWVudFJlY3QucmlnaHQgLSBjbGlwcGluZ0NsaWVudFJlY3QucmlnaHQgKyBwYWRkaW5nT2JqZWN0LnJpZ2h0XG4gIH07XG4gIHZhciBvZmZzZXREYXRhID0gc3RhdGUubW9kaWZpZXJzRGF0YS5vZmZzZXQ7IC8vIE9mZnNldHMgY2FuIGJlIGFwcGxpZWQgb25seSB0byB0aGUgcG9wcGVyIGVsZW1lbnRcblxuICBpZiAoZWxlbWVudENvbnRleHQgPT09IHBvcHBlciAmJiBvZmZzZXREYXRhKSB7XG4gICAgdmFyIG9mZnNldCA9IG9mZnNldERhdGFbcGxhY2VtZW50XTtcbiAgICBPYmplY3Qua2V5cyhvdmVyZmxvd09mZnNldHMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgdmFyIG11bHRpcGx5ID0gW3JpZ2h0LCBib3R0b21dLmluZGV4T2Yoa2V5KSA+PSAwID8gMSA6IC0xO1xuICAgICAgdmFyIGF4aXMgPSBbdG9wLCBib3R0b21dLmluZGV4T2Yoa2V5KSA+PSAwID8gJ3knIDogJ3gnO1xuICAgICAgb3ZlcmZsb3dPZmZzZXRzW2tleV0gKz0gb2Zmc2V0W2F4aXNdICogbXVsdGlwbHk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gb3ZlcmZsb3dPZmZzZXRzO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/expandToHashMap.js": /*!******************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/expandToHashMap.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ expandToHashMap)\n/* harmony export */ });\nfunction expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2V4cGFuZFRvSGFzaE1hcC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxHQUFHLElBQUk7QUFDUCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZXhwYW5kVG9IYXNoTWFwLmpzPzk4NTIiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZXhwYW5kVG9IYXNoTWFwKHZhbHVlLCBrZXlzKSB7XG4gIHJldHVybiBrZXlzLnJlZHVjZShmdW5jdGlvbiAoaGFzaE1hcCwga2V5KSB7XG4gICAgaGFzaE1hcFtrZXldID0gdmFsdWU7XG4gICAgcmV0dXJuIGhhc2hNYXA7XG4gIH0sIHt9KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/format.js": /*!*********************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/format.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ format)\n/* harmony export */ });\nfunction format(str) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return [].concat(args).reduce(function (p, c) {\n return p.replace(/%s/, c);\n }, str);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2Zvcm1hdC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZix5RkFBeUYsYUFBYTtBQUN0RztBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2Zvcm1hdC5qcz9mNTNlIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZvcm1hdChzdHIpIHtcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICB9XG5cbiAgcmV0dXJuIFtdLmNvbmNhdChhcmdzKS5yZWR1Y2UoZnVuY3Rpb24gKHAsIGMpIHtcbiAgICByZXR1cm4gcC5yZXBsYWNlKC8lcy8sIGMpO1xuICB9LCBzdHIpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/format.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/getAltAxis.js": /*!*************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/getAltAxis.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getAltAxis)\n/* harmony export */ });\nfunction getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldEFsdEF4aXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZ2V0QWx0QXhpcy5qcz9mMmUwIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEFsdEF4aXMoYXhpcykge1xuICByZXR1cm4gYXhpcyA9PT0gJ3gnID8gJ3knIDogJ3gnO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js": /*!*******************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/getBasePlacement.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getBasePlacement)\n/* harmony export */ });\n\nfunction getBasePlacement(placement) {\n return placement.split('-')[0];\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFtQztBQUNwQjtBQUNmO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanM/YjUwZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhdXRvIH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnNwbGl0KCctJylbMF07XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js": /*!*********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getFreshSideObject)\n/* harmony export */ });\nfunction getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldEZyZXNoU2lkZU9iamVjdC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZ2V0RnJlc2hTaWRlT2JqZWN0LmpzPzM1ZjYiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0RnJlc2hTaWRlT2JqZWN0KCkge1xuICByZXR1cm4ge1xuICAgIHRvcDogMCxcbiAgICByaWdodDogMCxcbiAgICBib3R0b206IDAsXG4gICAgbGVmdDogMFxuICB9O1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js": /*!***************************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getMainAxisFromPlacement)\n/* harmony export */ });\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldE1haW5BeGlzRnJvbVBsYWNlbWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9nZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQuanM/YWQ5ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQocGxhY2VtZW50KSB7XG4gIHJldHVybiBbJ3RvcCcsICdib3R0b20nXS5pbmRleE9mKHBsYWNlbWVudCkgPj0gMCA/ICd4JyA6ICd5Jztcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js": /*!***********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getOppositePlacement)\n/* harmony export */ });\nvar hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldE9wcG9zaXRlUGxhY2VtZW50LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZTtBQUNmO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldE9wcG9zaXRlUGxhY2VtZW50LmpzPzUyMzIiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGhhc2ggPSB7XG4gIGxlZnQ6ICdyaWdodCcsXG4gIHJpZ2h0OiAnbGVmdCcsXG4gIGJvdHRvbTogJ3RvcCcsXG4gIHRvcDogJ2JvdHRvbSdcbn07XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZywgZnVuY3Rpb24gKG1hdGNoZWQpIHtcbiAgICByZXR1cm4gaGFzaFttYXRjaGVkXTtcbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js": /*!********************************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js ***! \********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getOppositeVariationPlacement)\n/* harmony export */ });\nvar hash = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldE9wcG9zaXRlVmFyaWF0aW9uUGxhY2VtZW50LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNlO0FBQ2Y7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZ2V0T3Bwb3NpdGVWYXJpYXRpb25QbGFjZW1lbnQuanM/NTAwYiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaGFzaCA9IHtcbiAgc3RhcnQ6ICdlbmQnLFxuICBlbmQ6ICdzdGFydCdcbn07XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9zdGFydHxlbmQvZywgZnVuY3Rpb24gKG1hdGNoZWQpIHtcbiAgICByZXR1cm4gaGFzaFttYXRjaGVkXTtcbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/getVariation.js": /*!***************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/getVariation.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getVariation)\n/* harmony export */ });\nfunction getVariation(placement) {\n return placement.split('-')[1];\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldFZhcmlhdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9nZXRWYXJpYXRpb24uanM/M2Q4ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRWYXJpYXRpb24ocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQuc3BsaXQoJy0nKVsxXTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/getVariation.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/math.js": /*!*******************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/math.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"max\": () => (/* binding */ max),\n/* harmony export */ \"min\": () => (/* binding */ min),\n/* harmony export */ \"round\": () => (/* binding */ round)\n/* harmony export */ });\nvar max = Math.max;\nvar min = Math.min;\nvar round = Math.round;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL21hdGguanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQU87QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9tYXRoLmpzPzg0YzYiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHZhciBtYXggPSBNYXRoLm1heDtcbmV4cG9ydCB2YXIgbWluID0gTWF0aC5taW47XG5leHBvcnQgdmFyIHJvdW5kID0gTWF0aC5yb3VuZDsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/math.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/mergeByName.js": /*!**************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/mergeByName.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ mergeByName)\n/* harmony export */ });\nfunction mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL21lcmdlQnlOYW1lLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQSxzREFBc0Q7QUFDdEQsK0JBQStCO0FBQy9CLDRCQUE0QjtBQUM1QixLQUFLO0FBQ0w7QUFDQSxHQUFHLElBQUksR0FBRzs7QUFFVjtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9tZXJnZUJ5TmFtZS5qcz8yYTM1Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlQnlOYW1lKG1vZGlmaWVycykge1xuICB2YXIgbWVyZ2VkID0gbW9kaWZpZXJzLnJlZHVjZShmdW5jdGlvbiAobWVyZ2VkLCBjdXJyZW50KSB7XG4gICAgdmFyIGV4aXN0aW5nID0gbWVyZ2VkW2N1cnJlbnQubmFtZV07XG4gICAgbWVyZ2VkW2N1cnJlbnQubmFtZV0gPSBleGlzdGluZyA/IE9iamVjdC5hc3NpZ24oe30sIGV4aXN0aW5nLCBjdXJyZW50LCB7XG4gICAgICBvcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBleGlzdGluZy5vcHRpb25zLCBjdXJyZW50Lm9wdGlvbnMpLFxuICAgICAgZGF0YTogT2JqZWN0LmFzc2lnbih7fSwgZXhpc3RpbmcuZGF0YSwgY3VycmVudC5kYXRhKVxuICAgIH0pIDogY3VycmVudDtcbiAgICByZXR1cm4gbWVyZ2VkO1xuICB9LCB7fSk7IC8vIElFMTEgZG9lcyBub3Qgc3VwcG9ydCBPYmplY3QudmFsdWVzXG5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKG1lcmdlZCkubWFwKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4gbWVyZ2VkW2tleV07XG4gIH0pO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/mergeByName.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js": /*!*********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ mergePaddingObject)\n/* harmony export */ });\n/* harmony import */ var _getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getFreshSideObject.js */ \"./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js\");\n\nfunction mergePaddingObject(paddingObject) {\n return Object.assign({}, (0,_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(), paddingObject);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL21lcmdlUGFkZGluZ09iamVjdC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF5RDtBQUMxQztBQUNmLHlCQUF5QixFQUFFLGtFQUFrQjtBQUM3QyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvbWVyZ2VQYWRkaW5nT2JqZWN0LmpzP2QzOWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldEZyZXNoU2lkZU9iamVjdCBmcm9tIFwiLi9nZXRGcmVzaFNpZGVPYmplY3QuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlUGFkZGluZ09iamVjdChwYWRkaW5nT2JqZWN0KSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBnZXRGcmVzaFNpZGVPYmplY3QoKSwgcGFkZGluZ09iamVjdCk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/orderModifiers.js": /*!*****************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/orderModifiers.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ orderModifiers)\n/* harmony export */ });\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nfunction orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return _enums_js__WEBPACK_IMPORTED_MODULE_0__.modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL29yZGVyTW9kaWZpZXJzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTZDLENBQUM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsR0FBRzs7QUFFTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRWU7QUFDZjtBQUNBLDJDQUEyQzs7QUFFM0MsU0FBUyw0REFBcUI7QUFDOUI7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL29yZGVyTW9kaWZpZXJzLmpzP2I5ZTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbW9kaWZpZXJQaGFzZXMgfSBmcm9tIFwiLi4vZW51bXMuanNcIjsgLy8gc291cmNlOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80OTg3NTI1NVxuXG5mdW5jdGlvbiBvcmRlcihtb2RpZmllcnMpIHtcbiAgdmFyIG1hcCA9IG5ldyBNYXAoKTtcbiAgdmFyIHZpc2l0ZWQgPSBuZXcgU2V0KCk7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgbW9kaWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKG1vZGlmaWVyKSB7XG4gICAgbWFwLnNldChtb2RpZmllci5uYW1lLCBtb2RpZmllcik7XG4gIH0pOyAvLyBPbiB2aXNpdGluZyBvYmplY3QsIGNoZWNrIGZvciBpdHMgZGVwZW5kZW5jaWVzIGFuZCB2aXNpdCB0aGVtIHJlY3Vyc2l2ZWx5XG5cbiAgZnVuY3Rpb24gc29ydChtb2RpZmllcikge1xuICAgIHZpc2l0ZWQuYWRkKG1vZGlmaWVyLm5hbWUpO1xuICAgIHZhciByZXF1aXJlcyA9IFtdLmNvbmNhdChtb2RpZmllci5yZXF1aXJlcyB8fCBbXSwgbW9kaWZpZXIucmVxdWlyZXNJZkV4aXN0cyB8fCBbXSk7XG4gICAgcmVxdWlyZXMuZm9yRWFjaChmdW5jdGlvbiAoZGVwKSB7XG4gICAgICBpZiAoIXZpc2l0ZWQuaGFzKGRlcCkpIHtcbiAgICAgICAgdmFyIGRlcE1vZGlmaWVyID0gbWFwLmdldChkZXApO1xuXG4gICAgICAgIGlmIChkZXBNb2RpZmllcikge1xuICAgICAgICAgIHNvcnQoZGVwTW9kaWZpZXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmVzdWx0LnB1c2gobW9kaWZpZXIpO1xuICB9XG5cbiAgbW9kaWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKG1vZGlmaWVyKSB7XG4gICAgaWYgKCF2aXNpdGVkLmhhcyhtb2RpZmllci5uYW1lKSkge1xuICAgICAgLy8gY2hlY2sgZm9yIHZpc2l0ZWQgb2JqZWN0XG4gICAgICBzb3J0KG1vZGlmaWVyKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBvcmRlck1vZGlmaWVycyhtb2RpZmllcnMpIHtcbiAgLy8gb3JkZXIgYmFzZWQgb24gZGVwZW5kZW5jaWVzXG4gIHZhciBvcmRlcmVkTW9kaWZpZXJzID0gb3JkZXIobW9kaWZpZXJzKTsgLy8gb3JkZXIgYmFzZWQgb24gcGhhc2VcblxuICByZXR1cm4gbW9kaWZpZXJQaGFzZXMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBoYXNlKSB7XG4gICAgcmV0dXJuIGFjYy5jb25jYXQob3JkZXJlZE1vZGlmaWVycy5maWx0ZXIoZnVuY3Rpb24gKG1vZGlmaWVyKSB7XG4gICAgICByZXR1cm4gbW9kaWZpZXIucGhhc2UgPT09IHBoYXNlO1xuICAgIH0pKTtcbiAgfSwgW10pO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/rectToClientRect.js": /*!*******************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/rectToClientRect.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ rectToClientRect)\n/* harmony export */ });\nfunction rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL3JlY3RUb0NsaWVudFJlY3QuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2YseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9yZWN0VG9DbGllbnRSZWN0LmpzPzdiY2YiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVjdFRvQ2xpZW50UmVjdChyZWN0KSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCByZWN0LCB7XG4gICAgbGVmdDogcmVjdC54LFxuICAgIHRvcDogcmVjdC55LFxuICAgIHJpZ2h0OiByZWN0LnggKyByZWN0LndpZHRoLFxuICAgIGJvdHRvbTogcmVjdC55ICsgcmVjdC5oZWlnaHRcbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/uniqueBy.js": /*!***********************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/uniqueBy.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ uniqueBy)\n/* harmony export */ });\nfunction uniqueBy(arr, fn) {\n var identifiers = new Set();\n return arr.filter(function (item) {\n var identifier = fn(item);\n\n if (!identifiers.has(identifier)) {\n identifiers.add(identifier);\n return true;\n }\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL3VuaXF1ZUJ5LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvdW5pcXVlQnkuanM/NjAxNCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1bmlxdWVCeShhcnIsIGZuKSB7XG4gIHZhciBpZGVudGlmaWVycyA9IG5ldyBTZXQoKTtcbiAgcmV0dXJuIGFyci5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICB2YXIgaWRlbnRpZmllciA9IGZuKGl0ZW0pO1xuXG4gICAgaWYgKCFpZGVudGlmaWVycy5oYXMoaWRlbnRpZmllcikpIHtcbiAgICAgIGlkZW50aWZpZXJzLmFkZChpZGVudGlmaWVyKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/uniqueBy.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/validateModifiers.js": /*!********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/validateModifiers.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ validateModifiers)\n/* harmony export */ });\n/* harmony import */ var _format_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./format.js */ \"./node_modules/@popperjs/core/lib/utils/format.js\");\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n\n\nvar INVALID_MODIFIER_ERROR = 'Popper: modifier \"%s\" provided an invalid %s property, expected %s but got %s';\nvar MISSING_DEPENDENCY_ERROR = 'Popper: modifier \"%s\" requires \"%s\", but \"%s\" modifier is not available';\nvar VALID_PROPERTIES = ['name', 'enabled', 'phase', 'fn', 'effect', 'requires', 'options'];\nfunction validateModifiers(modifiers) {\n modifiers.forEach(function (modifier) {\n [].concat(Object.keys(modifier), VALID_PROPERTIES) // IE11-compatible replacement for `new Set(iterable)`\n .filter(function (value, index, self) {\n return self.indexOf(value) === index;\n }).forEach(function (key) {\n switch (key) {\n case 'name':\n if (typeof modifier.name !== 'string') {\n console.error((0,_format_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(INVALID_MODIFIER_ERROR, String(modifier.name), '\"name\"', '\"string\"', \"\\\"\" + String(modifier.name) + \"\\\"\"));\n }\n\n break;\n\n case 'enabled':\n if (typeof modifier.enabled !== 'boolean') {\n console.error((0,_format_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(INVALID_MODIFIER_ERROR, modifier.name, '\"enabled\"', '\"boolean\"', \"\\\"\" + String(modifier.enabled) + \"\\\"\"));\n }\n\n break;\n\n case 'phase':\n if (_enums_js__WEBPACK_IMPORTED_MODULE_1__.modifierPhases.indexOf(modifier.phase) < 0) {\n console.error((0,_format_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(INVALID_MODIFIER_ERROR, modifier.name, '\"phase\"', \"either \" + _enums_js__WEBPACK_IMPORTED_MODULE_1__.modifierPhases.join(', '), \"\\\"\" + String(modifier.phase) + \"\\\"\"));\n }\n\n break;\n\n case 'fn':\n if (typeof modifier.fn !== 'function') {\n console.error((0,_format_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(INVALID_MODIFIER_ERROR, modifier.name, '\"fn\"', '\"function\"', \"\\\"\" + String(modifier.fn) + \"\\\"\"));\n }\n\n break;\n\n case 'effect':\n if (modifier.effect != null && typeof modifier.effect !== 'function') {\n console.error((0,_format_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(INVALID_MODIFIER_ERROR, modifier.name, '\"effect\"', '\"function\"', \"\\\"\" + String(modifier.fn) + \"\\\"\"));\n }\n\n break;\n\n case 'requires':\n if (modifier.requires != null && !Array.isArray(modifier.requires)) {\n console.error((0,_format_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(INVALID_MODIFIER_ERROR, modifier.name, '\"requires\"', '\"array\"', \"\\\"\" + String(modifier.requires) + \"\\\"\"));\n }\n\n break;\n\n case 'requiresIfExists':\n if (!Array.isArray(modifier.requiresIfExists)) {\n console.error((0,_format_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(INVALID_MODIFIER_ERROR, modifier.name, '\"requiresIfExists\"', '\"array\"', \"\\\"\" + String(modifier.requiresIfExists) + \"\\\"\"));\n }\n\n break;\n\n case 'options':\n case 'data':\n break;\n\n default:\n console.error(\"PopperJS: an invalid property has been provided to the \\\"\" + modifier.name + \"\\\" modifier, valid properties are \" + VALID_PROPERTIES.map(function (s) {\n return \"\\\"\" + s + \"\\\"\";\n }).join(', ') + \"; but \\\"\" + key + \"\\\" was provided.\");\n }\n\n modifier.requires && modifier.requires.forEach(function (requirement) {\n if (modifiers.find(function (mod) {\n return mod.name === requirement;\n }) == null) {\n console.error((0,_format_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement));\n }\n });\n });\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL3ZhbGlkYXRlTW9kaWZpZXJzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFpQztBQUNZO0FBQzdDO0FBQ0E7QUFDQTtBQUNlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLHNEQUFNO0FBQ2hDOztBQUVBOztBQUVBO0FBQ0E7QUFDQSwwQkFBMEIsc0RBQU07QUFDaEM7O0FBRUE7O0FBRUE7QUFDQSxjQUFjLDZEQUFzQjtBQUNwQywwQkFBMEIsc0RBQU0sK0RBQStELDBEQUFtQjtBQUNsSDs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsMEJBQTBCLHNEQUFNO0FBQ2hDOztBQUVBOztBQUVBO0FBQ0E7QUFDQSwwQkFBMEIsc0RBQU07QUFDaEM7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLDBCQUEwQixzREFBTTtBQUNoQzs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsMEJBQTBCLHNEQUFNO0FBQ2hDOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGtCQUFrQjtBQUM3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Qsd0JBQXdCLHNEQUFNO0FBQzlCO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTCxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL3ZhbGlkYXRlTW9kaWZpZXJzLmpzPzc5NTUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZvcm1hdCBmcm9tIFwiLi9mb3JtYXQuanNcIjtcbmltcG9ydCB7IG1vZGlmaWVyUGhhc2VzIH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG52YXIgSU5WQUxJRF9NT0RJRklFUl9FUlJPUiA9ICdQb3BwZXI6IG1vZGlmaWVyIFwiJXNcIiBwcm92aWRlZCBhbiBpbnZhbGlkICVzIHByb3BlcnR5LCBleHBlY3RlZCAlcyBidXQgZ290ICVzJztcbnZhciBNSVNTSU5HX0RFUEVOREVOQ1lfRVJST1IgPSAnUG9wcGVyOiBtb2RpZmllciBcIiVzXCIgcmVxdWlyZXMgXCIlc1wiLCBidXQgXCIlc1wiIG1vZGlmaWVyIGlzIG5vdCBhdmFpbGFibGUnO1xudmFyIFZBTElEX1BST1BFUlRJRVMgPSBbJ25hbWUnLCAnZW5hYmxlZCcsICdwaGFzZScsICdmbicsICdlZmZlY3QnLCAncmVxdWlyZXMnLCAnb3B0aW9ucyddO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmFsaWRhdGVNb2RpZmllcnMobW9kaWZpZXJzKSB7XG4gIG1vZGlmaWVycy5mb3JFYWNoKGZ1bmN0aW9uIChtb2RpZmllcikge1xuICAgIFtdLmNvbmNhdChPYmplY3Qua2V5cyhtb2RpZmllciksIFZBTElEX1BST1BFUlRJRVMpIC8vIElFMTEtY29tcGF0aWJsZSByZXBsYWNlbWVudCBmb3IgYG5ldyBTZXQoaXRlcmFibGUpYFxuICAgIC5maWx0ZXIoZnVuY3Rpb24gKHZhbHVlLCBpbmRleCwgc2VsZikge1xuICAgICAgcmV0dXJuIHNlbGYuaW5kZXhPZih2YWx1ZSkgPT09IGluZGV4O1xuICAgIH0pLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgY2FzZSAnbmFtZSc6XG4gICAgICAgICAgaWYgKHR5cGVvZiBtb2RpZmllci5uYW1lICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihmb3JtYXQoSU5WQUxJRF9NT0RJRklFUl9FUlJPUiwgU3RyaW5nKG1vZGlmaWVyLm5hbWUpLCAnXCJuYW1lXCInLCAnXCJzdHJpbmdcIicsIFwiXFxcIlwiICsgU3RyaW5nKG1vZGlmaWVyLm5hbWUpICsgXCJcXFwiXCIpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdlbmFibGVkJzpcbiAgICAgICAgICBpZiAodHlwZW9mIG1vZGlmaWVyLmVuYWJsZWQgIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihmb3JtYXQoSU5WQUxJRF9NT0RJRklFUl9FUlJPUiwgbW9kaWZpZXIubmFtZSwgJ1wiZW5hYmxlZFwiJywgJ1wiYm9vbGVhblwiJywgXCJcXFwiXCIgKyBTdHJpbmcobW9kaWZpZXIuZW5hYmxlZCkgKyBcIlxcXCJcIikpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3BoYXNlJzpcbiAgICAgICAgICBpZiAobW9kaWZpZXJQaGFzZXMuaW5kZXhPZihtb2RpZmllci5waGFzZSkgPCAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGZvcm1hdChJTlZBTElEX01PRElGSUVSX0VSUk9SLCBtb2RpZmllci5uYW1lLCAnXCJwaGFzZVwiJywgXCJlaXRoZXIgXCIgKyBtb2RpZmllclBoYXNlcy5qb2luKCcsICcpLCBcIlxcXCJcIiArIFN0cmluZyhtb2RpZmllci5waGFzZSkgKyBcIlxcXCJcIikpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2ZuJzpcbiAgICAgICAgICBpZiAodHlwZW9mIG1vZGlmaWVyLmZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGZvcm1hdChJTlZBTElEX01PRElGSUVSX0VSUk9SLCBtb2RpZmllci5uYW1lLCAnXCJmblwiJywgJ1wiZnVuY3Rpb25cIicsIFwiXFxcIlwiICsgU3RyaW5nKG1vZGlmaWVyLmZuKSArIFwiXFxcIlwiKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZWZmZWN0JzpcbiAgICAgICAgICBpZiAobW9kaWZpZXIuZWZmZWN0ICE9IG51bGwgJiYgdHlwZW9mIG1vZGlmaWVyLmVmZmVjdCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihmb3JtYXQoSU5WQUxJRF9NT0RJRklFUl9FUlJPUiwgbW9kaWZpZXIubmFtZSwgJ1wiZWZmZWN0XCInLCAnXCJmdW5jdGlvblwiJywgXCJcXFwiXCIgKyBTdHJpbmcobW9kaWZpZXIuZm4pICsgXCJcXFwiXCIpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdyZXF1aXJlcyc6XG4gICAgICAgICAgaWYgKG1vZGlmaWVyLnJlcXVpcmVzICE9IG51bGwgJiYgIUFycmF5LmlzQXJyYXkobW9kaWZpZXIucmVxdWlyZXMpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGZvcm1hdChJTlZBTElEX01PRElGSUVSX0VSUk9SLCBtb2RpZmllci5uYW1lLCAnXCJyZXF1aXJlc1wiJywgJ1wiYXJyYXlcIicsIFwiXFxcIlwiICsgU3RyaW5nKG1vZGlmaWVyLnJlcXVpcmVzKSArIFwiXFxcIlwiKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAncmVxdWlyZXNJZkV4aXN0cyc6XG4gICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KG1vZGlmaWVyLnJlcXVpcmVzSWZFeGlzdHMpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGZvcm1hdChJTlZBTElEX01PRElGSUVSX0VSUk9SLCBtb2RpZmllci5uYW1lLCAnXCJyZXF1aXJlc0lmRXhpc3RzXCInLCAnXCJhcnJheVwiJywgXCJcXFwiXCIgKyBTdHJpbmcobW9kaWZpZXIucmVxdWlyZXNJZkV4aXN0cykgKyBcIlxcXCJcIikpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ29wdGlvbnMnOlxuICAgICAgICBjYXNlICdkYXRhJzpcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJQb3BwZXJKUzogYW4gaW52YWxpZCBwcm9wZXJ0eSBoYXMgYmVlbiBwcm92aWRlZCB0byB0aGUgXFxcIlwiICsgbW9kaWZpZXIubmFtZSArIFwiXFxcIiBtb2RpZmllciwgdmFsaWQgcHJvcGVydGllcyBhcmUgXCIgKyBWQUxJRF9QUk9QRVJUSUVTLm1hcChmdW5jdGlvbiAocykge1xuICAgICAgICAgICAgcmV0dXJuIFwiXFxcIlwiICsgcyArIFwiXFxcIlwiO1xuICAgICAgICAgIH0pLmpvaW4oJywgJykgKyBcIjsgYnV0IFxcXCJcIiArIGtleSArIFwiXFxcIiB3YXMgcHJvdmlkZWQuXCIpO1xuICAgICAgfVxuXG4gICAgICBtb2RpZmllci5yZXF1aXJlcyAmJiBtb2RpZmllci5yZXF1aXJlcy5mb3JFYWNoKGZ1bmN0aW9uIChyZXF1aXJlbWVudCkge1xuICAgICAgICBpZiAobW9kaWZpZXJzLmZpbmQoZnVuY3Rpb24gKG1vZCkge1xuICAgICAgICAgIHJldHVybiBtb2QubmFtZSA9PT0gcmVxdWlyZW1lbnQ7XG4gICAgICAgIH0pID09IG51bGwpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGZvcm1hdChNSVNTSU5HX0RFUEVOREVOQ1lfRVJST1IsIFN0cmluZyhtb2RpZmllci5uYW1lKSwgcmVxdWlyZW1lbnQsIHJlcXVpcmVtZW50KSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/validateModifiers.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/within.js": /*!*********************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/within.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ within)\n/* harmony export */ });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ \"./node_modules/@popperjs/core/lib/utils/math.js\");\n\nfunction within(min, value, max) {\n return (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.max)(min, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.min)(value, max));\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL3dpdGhpbi5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUEyRDtBQUM1QztBQUNmLFNBQVMsNkNBQU8sTUFBTSw2Q0FBTztBQUM3QiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvd2l0aGluLmpzP2U0M2YiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWF4IGFzIG1hdGhNYXgsIG1pbiBhcyBtYXRoTWluIH0gZnJvbSBcIi4vbWF0aC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2l0aGluKG1pbiwgdmFsdWUsIG1heCkge1xuICByZXR1cm4gbWF0aE1heChtaW4sIG1hdGhNaW4odmFsdWUsIG1heCkpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/within.js\n"); /***/ }), /***/ "./node_modules/@yaireo/tagify/dist/tagify.min.js": /*!********************************************************!*\ !*** ./node_modules/@yaireo/tagify/dist/tagify.min.js ***! \********************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { eval("/* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\n/**\n * Tagify (v 4.7.2) - tags input component\n * By Yair Even-Or\n * Don't sell this code. (c)\n * https://github.com/yairEO/tagify\n */\n\n!function(t,e){ true?module.exports=e():0}(this,(function(){\"use strict\";function t(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function e(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,s)}return i}function i(i){for(var s=1;s(t=\"\"+t,e=\"\"+e,s&&(t=t.trim(),e=e.trim()),i?t==e:t.toLowerCase()==e.toLowerCase());function a(t,e){var i,s={};for(i in t)e.indexOf(i)<0&&(s[i]=t[i]);return s}function n(t){var e=document.createElement(\"div\");return t.replace(/\\&#?[0-9a-z]+;/gi,(function(t){return e.innerHTML=t,e.innerText}))}function o(t,e){for(e=e||\"previous\";t=t[e+\"Sibling\"];)if(3==t.nodeType)return t}function r(t){return\"string\"==typeof t?t.replace(/&/g,\"&\").replace(//g,\">\").replace(/\"/g,\""\").replace(/`|'/g,\"'\"):t}function l(t){var e=Object.prototype.toString.call(t).split(\" \")[1].slice(0,-1);return t===Object(t)&&\"Array\"!=e&&\"Function\"!=e&&\"RegExp\"!=e&&\"HTMLUnknownElement\"!=e}function d(t,e,i){function s(t,e){for(var i in e)if(e.hasOwnProperty(i)){if(l(e[i])){l(t[i])?s(t[i],e[i]):t[i]=Object.assign({},e[i]);continue}if(Array.isArray(e[i])){t[i]=Object.assign([],e[i]);continue}t[i]=e[i]}}return t instanceof Object||(t={}),s(t,e),i&&s(t,i),t}function h(t){return String.prototype.normalize?\"string\"==typeof t?t.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g,\"\"):void 0:t}var g=()=>/(?=.*chrome)(?=.*android)/i.test(navigator.userAgent);var p={delimiters:\",\",pattern:null,tagTextProp:\"value\",maxTags:1/0,callbacks:{},addTagOnBlur:!0,duplicates:!1,whitelist:[],blacklist:[],enforceWhitelist:!1,userInput:!0,keepInvalidTags:!1,mixTagsAllowedAfter:/,|\\.|\\:|\\s/,mixTagsInterpolator:[\"[[\",\"]]\"],backspace:!0,skipInvalid:!1,pasteAsTags:!0,editTags:{clicks:2,keepInvalid:!0},transformTag:()=>{},trim:!0,a11y:{focusableTags:!1},mixMode:{insertAfterTag:\" \"},autoComplete:{enabled:!0,rightKey:!1},classNames:{namespace:\"tagify\",mixMode:\"tagify--mix\",selectMode:\"tagify--select\",input:\"tagify__input\",focus:\"tagify--focus\",tag:\"tagify__tag\",tagNoAnimation:\"tagify--noAnim\",tagInvalid:\"tagify--invalid\",tagNotAllowed:\"tagify--notAllowed\",inputInvalid:\"tagify__input--invalid\",tagX:\"tagify__tag__removeBtn\",tagText:\"tagify__tag-text\",dropdown:\"tagify__dropdown\",dropdownWrapper:\"tagify__dropdown__wrapper\",dropdownItem:\"tagify__dropdown__item\",dropdownItemActive:\"tagify__dropdown__item--active\",dropdownInital:\"tagify__dropdown--initial\",scopeLoading:\"tagify--loading\",tagLoading:\"tagify__tag--loading\",tagEditing:\"tagify__tag--editable\",tagFlash:\"tagify__tag--flash\",tagHide:\"tagify__tag--hide\",hasMaxTags:\"tagify--hasMaxTags\",hasNoTags:\"tagify--noTags\",empty:\"tagify--empty\"},dropdown:{classname:\"\",enabled:2,maxItems:10,searchKeys:[\"value\",\"searchBy\"],fuzzySearch:!0,caseSensitive:!1,accentedSearch:!0,highlightFirst:!1,closeOnSelect:!0,clearOnSelect:!0,position:\"all\",appendTarget:null},hooks:{beforeRemoveTag:()=>Promise.resolve(),beforePaste:()=>Promise.resolve(),suggestionClick:()=>Promise.resolve()}};function c(){this.dropdown={};for(let t in this._dropdown)this.dropdown[t]=\"function\"==typeof this._dropdown[t]?this._dropdown[t].bind(this):this._dropdown[t];this.settings.dropdown.enabled>=0&&this.dropdown.init()}var u,m={init(){this.DOM.dropdown=this.parseTemplate(\"dropdown\",[this.settings]),this.DOM.dropdown.content=this.DOM.dropdown.querySelector(this.settings.classNames.dropdownWrapperSelector)},show(t){var e,i,a,n=this.settings,o=\"mix\"==n.mode&&!n.enforceWhitelist,r=!n.whitelist||!n.whitelist.length,d=\"manual\"==n.dropdown.position;if(t=void 0===t?this.state.inputText:t,(!r||o||n.templates.dropdownItemNoMatch)&&!1!==n.dropdown.enable&&!this.state.isLoading){if(clearTimeout(this.dropdownHide__bindEventsTimeout),this.suggestedListItems=this.dropdown.filterListItems(t),t&&!this.suggestedListItems.length&&(this.trigger(\"dropdown:noMatch\",t),n.templates.dropdownItemNoMatch&&(a=n.templates.dropdownItemNoMatch.call(this,{value:t}))),!a){if(this.suggestedListItems.length)t&&o&&!this.state.editing.scope&&!s(this.suggestedListItems[0].value,t)&&this.suggestedListItems.unshift({value:t});else{if(!t||!o||this.state.editing.scope)return this.input.autocomplete.suggest.call(this),void this.dropdown.hide();this.suggestedListItems=[{value:t}]}i=\"\"+(l(e=this.suggestedListItems[0])?e.value:e),n.autoComplete&&i&&0==i.indexOf(t)&&this.input.autocomplete.suggest.call(this,e)}this.dropdown.fill(a),n.dropdown.highlightFirst&&this.dropdown.highlightOption(this.DOM.dropdown.content.children[0]),this.state.dropdown.visible||setTimeout(this.dropdown.events.binding.bind(this)),this.state.dropdown.visible=t||!0,this.state.dropdown.query=t,this.setStateSelection(),d||setTimeout((()=>{this.dropdown.position(),this.dropdown.render()})),setTimeout((()=>{this.trigger(\"dropdown:show\",this.DOM.dropdown)}))}},hide(t){var e=this.DOM,i=e.scope,s=e.dropdown,a=\"manual\"==this.settings.dropdown.position&&!t;if(s&&document.body.contains(s)&&!a)return window.removeEventListener(\"resize\",this.dropdown.position),this.dropdown.events.binding.call(this,!1),i.setAttribute(\"aria-expanded\",!1),s.parentNode.removeChild(s),setTimeout((()=>{this.state.dropdown.visible=!1}),100),this.state.dropdown.query=this.state.ddItemData=this.state.ddItemElm=this.state.selection=null,this.state.tag&&this.state.tag.value.length&&(this.state.flaggedTags[this.state.tag.baseOffset]=this.state.tag),this.trigger(\"dropdown:hide\",s),this},toggle(t){this.dropdown[this.state.dropdown.visible&&!t?\"hide\":\"show\"]()},render(){var t,e,i,s=(t=this.DOM.dropdown,(i=t.cloneNode(!0)).style.cssText=\"position:fixed; top:-9999px; opacity:0\",document.body.appendChild(i),e=i.clientHeight,i.parentNode.removeChild(i),e),a=this.settings;return this.DOM.scope.setAttribute(\"aria-expanded\",!0),document.body.contains(this.DOM.dropdown)||(this.DOM.dropdown.classList.add(a.classNames.dropdownInital),this.dropdown.position(s),a.dropdown.appendTarget.appendChild(this.DOM.dropdown),setTimeout((()=>this.DOM.dropdown.classList.remove(a.classNames.dropdownInital)))),this},fill(t){var e;t=\"string\"==typeof t?t:this.dropdown.createListHTML(t||this.suggestedListItems),this.DOM.dropdown.content.innerHTML=(e=t)?e.replace(/\\>[\\r\\n ]+\\<\").replace(/(<.*?>)|\\s+/g,((t,e)=>e||\" \")):\"\"},refilter(t){t=t||this.state.dropdown.query||\"\",this.suggestedListItems=this.dropdown.filterListItems(t),this.dropdown.fill(),this.suggestedListItems.length||this.dropdown.hide(),this.trigger(\"dropdown:updated\",this.DOM.dropdown)},position(t){var e=this.settings.dropdown;if(\"manual\"!=e.position){var i,s,a,n,o,r,l=this.DOM.dropdown,d=e.placeAbove,h=document.documentElement.clientHeight,g=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0)>480?e.position:\"all\",p=this.DOM[\"input\"==g?\"input\":\"scope\"];t=t||l.clientHeight,this.state.dropdown.visible&&(\"text\"==g?(a=(i=this.getCaretGlobalPosition()).bottom,s=i.top,n=i.left,o=\"auto\"):(r=function(t){for(var e=0,i=0;t;)e+=t.offsetLeft||0,i+=t.offsetTop||0,t=t.parentNode;return{left:e,top:i}}(this.settings.dropdown.appendTarget),s=(i=p.getBoundingClientRect()).top-r.top,a=i.bottom-1-r.top,n=i.left-r.left,o=i.width+\"px\"),s=Math.floor(s),a=Math.ceil(a),d=void 0===d?h-i.bottom{if(e)return this.dropdown.selectOption(e);this.dropdown.hide(),\"mix\"!=this.settings.mode&&this.addTags(this.state.inputText.trim(),!0)})).catch((t=>t));break;case\"Backspace\":{if(\"mix\"==this.settings.mode||this.state.editing.scope)return;let t=this.state.inputText.trim();\"\"!=t&&8203!=t.charCodeAt(0)||(!0===this.settings.backspace?this.removeTags():\"edit\"==this.settings.backspace&&setTimeout(this.editTag.bind(this),0))}}},onMouseOver(t){var e=t.target.closest(this.settings.classNames.dropdownItemSelector);e&&this.dropdown.highlightOption(e)},onMouseLeave(t){this.dropdown.highlightOption()},onClick(t){if(0==t.button&&t.target!=this.DOM.dropdown&&t.target!=this.DOM.dropdown.content){var e=t.target.closest(this.settings.classNames.dropdownItemSelector),i=this.dropdown.getSuggestionDataByNode(e);this.state.actions.selectOption=!0,setTimeout((()=>this.state.actions.selectOption=!1),50),this.settings.hooks.suggestionClick(t,{tagify:this,tagData:i,suggestionElm:e}).then((()=>{e?this.dropdown.selectOption(e):this.dropdown.hide()})).catch((t=>t))}},onScroll(t){var e=t.target,i=e.scrollTop/(e.scrollHeight-e.parentNode.clientHeight)*100;this.trigger(\"dropdown:scroll\",{percentage:Math.round(i)})}}},getSuggestionDataByNode(t){var e=t?+t.getAttribute(\"tagifySuggestionIdx\"):-1;return this.suggestedListItems[e]||null},highlightOption(t,e){var i,s=this.settings.classNames.dropdownItemActive;if(this.state.ddItemElm&&(this.state.ddItemElm.classList.remove(s),this.state.ddItemElm.removeAttribute(\"aria-selected\")),!t)return this.state.ddItemData=null,this.state.ddItemElm=null,void this.input.autocomplete.suggest.call(this);i=this.suggestedListItems[this.getNodeIndex(t)],this.state.ddItemData=i,this.state.ddItemElm=t,t.classList.add(s),t.setAttribute(\"aria-selected\",!0),e&&(t.parentNode.scrollTop=t.clientHeight+t.offsetTop-t.parentNode.clientHeight),this.settings.autoComplete&&(this.input.autocomplete.suggest.call(this,i),this.dropdown.position())},selectOption(t){var e,i=this.settings.dropdown,s=i.clearOnSelect,a=i.closeOnSelect;if(!t)return e=this.addTags(this.state.inputText,!0),void(a&&this.dropdown.hide());var n=t.getAttribute(\"tagifySuggestionIdx\"),o=this.suggestedListItems[+n];this.trigger(\"dropdown:select\",{data:o,elm:t}),n&&o?(this.state.editing?this.onEditTagDone(null,d({__isValid:!0},o)):e=this[\"mix\"==this.settings.mode?\"addMixTags\":\"addTags\"]([o],s),this.DOM.input.parentNode&&(setTimeout((()=>{this.DOM.input.focus(),this.toggleFocusClass(!0),this.placeCaretAfterNode(e)})),a?setTimeout(this.dropdown.hide.bind(this)):this.dropdown.refilter())):this.dropdown.hide()},selectAll(){return this.suggestedListItems.length=0,this.dropdown.hide(),this.addTags(this.dropdown.filterListItems(\"\"),!0),this},filterListItems(t,e){var i,s,a,n,o,r=this.settings,d=r.dropdown,g=(e=e||{},t=\"select\"==r.mode&&this.value.length&&this.value[0][r.tagTextProp]==t?\"\":t,[]),p=r.whitelist,c=d.maxItems||1/0,u=d.searchKeys,m=0;if(!t||!u.length)return(r.duplicates?p:p.filter((t=>!this.isTagDuplicate(l(t)?t.value:t)))).slice(0,c);function v(t,e){return e.toLowerCase().split(\" \").every((e=>t.includes(e.toLowerCase())))}for(o=d.caseSensitive?\"\"+t:(\"\"+t).toLowerCase();mu.includes(t)))?[\"value\"]:u;if(d.fuzzySearch&&!e.exact?(a=t.reduce(((t,e)=>t+\" \"+(i[e]||\"\")),\"\").toLowerCase(),d.accentedSearch&&(a=h(a),o=h(o)),s=v(a,o)):s=t.some((t=>{var s=\"\"+(i[t]||\"\");return d.accentedSearch&&(s=h(s),o=h(o)),d.caseSensitive||(s=s.toLowerCase()),e.exact?s==o:0==s.indexOf(o)})),n=!r.duplicates&&this.isTagDuplicate(l(i)?i.value:i),s&&!n&&c--&&g.push(i),0==c)break}return g},getMappedValue(t){var e=this.settings.dropdown.mapValueTo;return e?\"function\"==typeof e?e(t):t[e]||t.value:t.value},createListHTML(t){return d([],t).map(((t,e)=>{\"string\"!=typeof t&&\"number\"!=typeof t||(t={value:t});var i=this.dropdown.getMappedValue(t);t.value=i&&\"string\"==typeof i?r(i):i;var s=this.settings.templates.dropdownItem.apply(this,[t,this]);return s=s.replace(/\\s*tagifySuggestionIdx=([\"'])(.*?)\\1/gim,\"\").replace(\">\",` tagifySuggestionIdx=\"${e}\">`)})).join(\"\")}},v={empty:\"empty\",exceed:\"number of tags exceeded\",pattern:\"pattern mismatch\",duplicate:\"already exists\",notAllowed:\"not allowed\"},f={wrapper:(t,e)=>`\\n \\n `,tag(t,e){var i=this.settings;return`\\n \\n
\\n ${t[i.tagTextProp]||t.value}\\n
\\n
`},dropdown(t){var e=t.dropdown,i=\"manual\"==e.position,s=`${t.classNames.dropdown}`;return`
\\n
\\n
`},dropdownItem(t,e){return`
${t.value}
`},dropdownItemNoMatch:null};var T={customBinding(){this.customEventsList.forEach((t=>{this.on(t,this.settings.callbacks[t])}))},binding(t=!0){var e,i=this.events.callbacks,s=t?\"addEventListener\":\"removeEventListener\";if(!this.state.mainEvents||!t)for(var a in this.state.mainEvents=t,t&&!this.listeners.main&&(this.events.bindGlobal.call(this),this.settings.isJQueryPlugin&&jQuery(this.DOM.originalInput).on(\"tagify.removeAllTags\",this.removeAllTags.bind(this))),e=this.listeners.main=this.listeners.main||{focus:[\"input\",i.onFocusBlur.bind(this)],keydown:[\"input\",i.onKeydown.bind(this)],click:[\"scope\",i.onClickScope.bind(this)],dblclick:[\"scope\",i.onDoubleClickScope.bind(this)],paste:[\"input\",i.onPaste.bind(this)]})this.DOM[e[a][0]][s](a,e[a][1])},bindGlobal(t){var e,i=this.events.callbacks,s=t?\"removeEventListener\":\"addEventListener\";if(t||!this.listeners.global)for(e of(this.listeners.global=this.listeners&&this.listeners.global||[{type:this.isIE?\"keydown\":\"input\",target:this.DOM.input,cb:i[this.isIE?\"onInputIE\":\"onInput\"].bind(this)},{type:\"keydown\",target:window,cb:i.onWindowKeyDown.bind(this)},{type:\"blur\",target:this.DOM.input,cb:i.onFocusBlur.bind(this)}],this.listeners.global))e.target[s](e.type,e.cb)},unbindGlobal(){this.events.bindGlobal.call(this,!0)},callbacks:{onFocusBlur(t){var e=t.target?this.trim(t.target.textContent):\"\",i=this.settings,s=t.type,a=i.dropdown.enabled>=0,n={relatedTarget:t.relatedTarget},o=this.state.actions.selectOption&&(a||!i.dropdown.closeOnSelect),r=this.state.actions.addNew&&a,l=t.relatedTarget&&t.relatedTarget.classList.contains(i.classNames.tag)&&this.DOM.scope.contains(t.relatedTarget);if(\"blur\"==s){if(t.relatedTarget===this.DOM.scope)return this.dropdown.hide(),void this.DOM.input.focus();this.postUpdate(),this.triggerChangeEvent()}if(!o&&!r)if(this.state.hasFocus=\"focus\"==s&&+new Date,this.toggleFocusClass(this.state.hasFocus),\"mix\"!=i.mode){if(\"focus\"==s)return this.trigger(\"focus\",n),void(0!==i.dropdown.enabled&&i.userInput||this.dropdown.show());\"blur\"==s&&(this.trigger(\"blur\",n),this.loading(!1),\"select\"==this.settings.mode&&l&&(e=\"\"),(\"select\"==this.settings.mode&&e?!this.value.length||this.value[0].value!=e:e&&!this.state.actions.selectOption&&i.addTagOnBlur)&&this.addTags(e,!0),\"select\"!=this.settings.mode||e||this.removeTags()),this.DOM.input.removeAttribute(\"style\"),this.dropdown.hide()}else\"focus\"==s?this.trigger(\"focus\",n):\"blur\"==t.type&&(this.trigger(\"blur\",n),this.loading(!1),this.dropdown.hide(),this.state.dropdown.visible=void 0,this.setStateSelection())},onWindowKeyDown(t){var e,i=document.activeElement;if(i.classList.contains(this.settings.classNames.tag)&&this.DOM.scope.contains(document.activeElement))switch(e=i.nextElementSibling,t.key){case\"Backspace\":this.removeTags(i),(e||this.DOM.input).focus();break;case\"Enter\":setTimeout(this.editTag.bind(this),0,i)}},onKeydown(t){\"select\"==this.settings.mode&&this.settings.enforceWhitelist&&this.value.length&&t.preventDefault();var e=this.trim(t.target.textContent);if(this.trigger(\"keydown\",{originalEvent:this.cloneEvent(t)}),\"mix\"==this.settings.mode){switch(t.key){case\"Left\":case\"ArrowLeft\":this.state.actions.ArrowLeft=!0;break;case\"Delete\":case\"Backspace\":if(this.state.editing)return;var i,s,a,r=document.getSelection(),l=\"Delete\"==t.key&&r.anchorOffset==(r.anchorNode.length||0),d=1==r.anchorNode.nodeType||!r.anchorOffset&&r.anchorNode.previousElementSibling,h=n(this.DOM.input.innerHTML),p=this.getTagElms();if(\"edit\"==this.settings.backspace&&d)return i=1==r.anchorNode.nodeType?null:r.anchorNode.previousElementSibling,setTimeout(this.editTag.bind(this),0,i),void t.preventDefault();if(g()&&d)return a=o(d),d.hasAttribute(\"readonly\")||d.remove(),this.DOM.input.focus(),void setTimeout((()=>{this.placeCaretAfterNode(a),this.DOM.input.click()}));if(\"BR\"==r.anchorNode.nodeName)return;if((l||d)&&1==r.anchorNode.nodeType?s=0==r.anchorOffset?l?p[0]:null:p[r.anchorOffset-1]:l?s=r.anchorNode.nextElementSibling:d&&(s=d),3==r.anchorNode.nodeType&&!r.anchorNode.nodeValue&&r.anchorNode.previousElementSibling&&t.preventDefault(),(d||l)&&!this.settings.backspace)return void t.preventDefault();if(\"Range\"!=r.type&&!r.anchorOffset&&r.anchorNode==this.DOM.input&&\"Delete\"!=t.key)return void t.preventDefault();if(\"Range\"!=r.type&&s&&s.hasAttribute(\"readonly\"))return void this.placeCaretAfterNode(o(s));clearTimeout(u),u=setTimeout((()=>{var t=document.getSelection(),e=n(this.DOM.input.innerHTML),i=!l&&t.anchorNode.previousElementSibling;if(!g()&&e.length>=h.length&&i&&!i.hasAttribute(\"readonly\")&&(this.removeTags(i),this.fixFirefoxLastTagNoCaret(),2==this.DOM.input.children.length&&\"BR\"==this.DOM.input.children[1].tagName))return this.DOM.input.innerHTML=\"\",this.value.length=0,!0;this.value=[].map.call(p,((t,e)=>{var i=this.tagData(t);if(t.parentNode||i.readonly)return i;this.trigger(\"remove\",{tag:t,index:e,data:i})})).filter((t=>t))}),20)}return!0}switch(t.key){case\"Backspace\":\"select\"==this.settings.mode&&this.settings.enforceWhitelist?this.removeTags():this.state.dropdown.visible&&\"manual\"!=this.settings.dropdown.position||\"\"!=e&&8203!=e.charCodeAt(0)||(!0===this.settings.backspace?this.removeTags():\"edit\"==this.settings.backspace&&setTimeout(this.editTag.bind(this),0));break;case\"Esc\":case\"Escape\":if(this.state.dropdown.visible)return;t.target.blur();break;case\"Down\":case\"ArrowDown\":this.state.dropdown.visible||this.dropdown.show();break;case\"ArrowRight\":{let t=this.state.inputSuggestion||this.state.ddItemData;if(t&&this.settings.autoComplete.rightKey)return void this.addTags([t],!0);break}case\"Tab\":{let i=\"select\"==this.settings.mode;if(!e||i)return!0;t.preventDefault()}case\"Enter\":if(this.state.dropdown.visible||229==t.keyCode)return;t.preventDefault(),setTimeout((()=>{this.state.actions.selectOption||this.addTags(e,!0)}))}},onInput(t){if(\"mix\"==this.settings.mode)return this.events.callbacks.onMixTagsInput.call(this,t);var e=this.input.normalize.call(this),i=e.length>=this.settings.dropdown.enabled,s={value:e,inputElm:this.DOM.input};s.isValid=this.validateTag({value:e}),this.state.inputText!=e&&(this.input.set.call(this,e,!1),-1!=e.search(this.settings.delimiters)?this.addTags(e)&&this.input.set.call(this):this.settings.dropdown.enabled>=0&&this.dropdown[i?\"show\":\"hide\"](e),this.trigger(\"input\",s))},onMixTagsInput(t){var e,i,s,a,n,o,r,l,h=this.settings,p=this.value.length,c=this.getTagElms(),u=document.createDocumentFragment(),m=window.getSelection().getRangeAt(0),v=[].map.call(c,(t=>this.tagData(t).value));if(\"deleteContentBackward\"==t.inputType&&g()&&this.events.callbacks.onKeydown.call(this,{target:t.target,key:\"Backspace\"}),this.value.slice().forEach((t=>{t.readonly&&!v.includes(t.value)&&u.appendChild(this.createTagElem(t))})),u.childNodes.length&&(m.insertNode(u),this.setRangeAtStartEnd(!1,u.lastChild)),c.length!=p)return this.value=[].map.call(this.getTagElms(),(t=>this.tagData(t))),void this.update({withoutChangeEvent:!0});if(this.hasMaxTags())return!0;if(window.getSelection&&(o=window.getSelection()).rangeCount>0&&3==o.anchorNode.nodeType){if((m=o.getRangeAt(0).cloneRange()).collapse(!0),m.setStart(o.focusNode,0),s=(e=m.toString().slice(0,m.endOffset)).split(h.pattern).length-1,(i=e.match(h.pattern))&&(a=e.slice(e.lastIndexOf(i[i.length-1]))),a){if(this.state.actions.ArrowLeft=!1,this.state.tag={prefix:a.match(h.pattern)[0],value:a.replace(h.pattern,\"\")},this.state.tag.baseOffset=o.baseOffset-this.state.tag.value.length,l=this.state.tag.value.match(h.delimiters))return this.state.tag.value=this.state.tag.value.replace(h.delimiters,\"\"),this.state.tag.delimiters=l[0],this.addTags(this.state.tag.value,h.dropdown.clearOnSelect),void this.dropdown.hide();n=this.state.tag.value.length>=h.dropdown.enabled;try{r=(r=this.state.flaggedTags[this.state.tag.baseOffset]).prefix==this.state.tag.prefix&&r.value[0]==this.state.tag.value[0],this.state.flaggedTags[this.state.tag.baseOffset]&&!this.state.tag.value&&delete this.state.flaggedTags[this.state.tag.baseOffset]}catch(t){}(r||s{this.update({withoutChangeEvent:!0}),this.trigger(\"input\",d({},this.state.tag,{textContent:this.DOM.input.textContent})),this.state.tag&&this.dropdown[n?\"show\":\"hide\"](this.state.tag.value)}),10)},onInputIE(t){var e=this;setTimeout((function(){e.events.callbacks.onInput.call(e,t)}))},onClickScope(t){var e=this.settings,i=t.target.closest(\".\"+e.classNames.tag),s=+new Date-this.state.hasFocus;if(t.target!=this.DOM.scope){if(!t.target.classList.contains(e.classNames.tagX))return i?(this.trigger(\"click\",{tag:i,index:this.getNodeIndex(i),data:this.tagData(i),originalEvent:this.cloneEvent(t)}),void(1!==e.editTags&&1!==e.editTags.clicks||this.events.callbacks.onDoubleClickScope.call(this,t))):void(t.target==this.DOM.input&&(\"mix\"==e.mode&&this.fixFirefoxLastTagNoCaret(),s>500)?this.state.dropdown.visible?this.dropdown.hide():0===e.dropdown.enabled&&\"mix\"!=e.mode&&this.dropdown.show():\"select\"==e.mode&&!this.state.dropdown.visible&&this.dropdown.show());this.removeTags(t.target.parentNode)}else this.state.hasFocus||this.DOM.input.focus()},onPaste(t){t.preventDefault();var e,i,s=this.settings;if(\"select\"==s.mode&&s.enforceWhitelist||!s.userInput)return!1;s.readonly||(e=t.clipboardData||window.clipboardData,i=e.getData(\"Text\"),s.hooks.beforePaste(t,{tagify:this,pastedText:i,clipboardData:e}).then((e=>{void 0===e&&(e=i),e&&(this.injectAtCaret(e,window.getSelection().getRangeAt(0)),\"mix\"==this.settings.mode?this.events.callbacks.onMixTagsInput.call(this,t):this.settings.pasteAsTags?this.addTags(e,!0):this.state.inputText=e)})).catch((t=>t)))},onEditTagInput(t,e){var i=t.closest(\".\"+this.settings.classNames.tag),s=this.getNodeIndex(i),a=this.tagData(i),n=this.input.normalize.call(this,t),o=i.innerHTML!=i.__tagifyTagData.__originalHTML,r=this.validateTag({[this.settings.tagTextProp]:n});o||!0!==t.originalIsValid||(r=!0),i.classList.toggle(this.settings.classNames.tagInvalid,!0!==r),a.__isValid=r,i.title=!0===r?a.title||a.value:r,n.length>=this.settings.dropdown.enabled&&(this.state.editing&&(this.state.editing.value=n),this.dropdown.show(n)),this.trigger(\"edit:input\",{tag:i,index:s,data:d({},this.value[s],{newValue:n}),originalEvent:this.cloneEvent(e)})},onEditTagFocus(t){this.state.editing={scope:t,input:t.querySelector(\"[contenteditable]\")}},onEditTagBlur(t){if(this.state.hasFocus||this.toggleFocusClass(),this.DOM.scope.contains(t)){var e,i,s=this.settings,a=t.closest(\".\"+s.classNames.tag),n=this.input.normalize.call(this,t),o=this.tagData(a).__originalData,r=a.innerHTML!=a.__tagifyTagData.__originalHTML,l=this.validateTag({[s.tagTextProp]:n});if(n)if(r){if(e=this.hasMaxTags(),i=this.getWhitelistItem(n)||d({},o,{[s.tagTextProp]:n,value:n,__isValid:l}),s.transformTag.call(this,i,o),!0!==(l=!e&&this.validateTag({[s.tagTextProp]:i[s.tagTextProp]}))){if(this.trigger(\"invalid\",{data:i,tag:a,message:l}),s.editTags.keepInvalid)return;s.keepInvalidTags?i.__isValid=l:i=o}else s.keepInvalidTags&&(delete i.title,delete i[\"aria-invalid\"],delete i.class);this.onEditTagDone(a,i)}else this.onEditTagDone(a,o);else this.onEditTagDone(a)}},onEditTagkeydown(t,e){switch(this.trigger(\"edit:keydown\",{originalEvent:this.cloneEvent(t)}),t.key){case\"Esc\":case\"Escape\":e.innerHTML=e.__tagifyTagData.__originalHTML;case\"Enter\":case\"Tab\":t.preventDefault(),t.target.blur()}},onDoubleClickScope(t){var e,i,s=t.target.closest(\".\"+this.settings.classNames.tag),a=this.settings;s&&a.userInput&&(e=s.classList.contains(this.settings.classNames.tagEditing),i=s.hasAttribute(\"readonly\"),\"select\"==a.mode||a.readonly||e||i||!this.settings.editTags||this.editTag(s),this.toggleFocusClass(!0),this.trigger(\"dblclick\",{tag:s,index:this.getNodeIndex(s),data:this.tagData(s)}))}}};function w(t,e){return t?t.previousElementSibling&&t.previousElementSibling.classList.contains(\"tagify\")?(console.warn(\"Tagify: \",\"input element is already Tagified\",t),this):(d(this,function(t){var e=document.createTextNode(\"\");function i(t,i,s){s&&i.split(/\\s+/g).forEach((i=>e[t+\"EventListener\"].call(e,i,s)))}return{off(t,e){return i(\"remove\",t,e),this},on(t,e){return e&&\"function\"==typeof e&&i(\"add\",t,e),this},trigger(i,s,a){var n;if(a=a||{cloneData:!0},i)if(t.settings.isJQueryPlugin)\"remove\"==i&&(i=\"removeTag\"),jQuery(t.DOM.originalInput).triggerHandler(i,[s]);else{try{var o=\"object\"==typeof s?s:{value:s};if((o=a.cloneData?d({},o):o).tagify=this,s instanceof Object)for(var r in s)s[r]instanceof HTMLElement&&(o[r]=s[r]);n=new CustomEvent(i,{detail:o})}catch(t){console.warn(t)}e.dispatchEvent(n)}}}}(this)),this.isFirefox=\"undefined\"!=typeof InstallTrigger,this.isIE=window.document.documentMode,this.applySettings(t,e||{}),this.state={inputText:\"\",editing:!1,actions:{},mixMode:{},dropdown:{},flaggedTags:{}},this.value=[],this.listeners={},this.DOM={},this.build(t),c.call(this),this.getCSSVars(),this.loadOriginalValues(),this.events.customBinding.call(this),this.events.binding.call(this),void(t.autofocus&&this.DOM.input.focus())):(console.warn(\"Tagify: \",\"input element not found\",t),this)}return w.prototype={_dropdown:m,customEventsList:[\"change\",\"add\",\"remove\",\"invalid\",\"input\",\"click\",\"keydown\",\"focus\",\"blur\",\"edit:input\",\"edit:beforeUpdate\",\"edit:updated\",\"edit:start\",\"edit:keydown\",\"dropdown:show\",\"dropdown:hide\",\"dropdown:select\",\"dropdown:updated\",\"dropdown:noMatch\",\"dropdown:scroll\"],dataProps:[\"__isValid\",\"__removed\",\"__originalData\",\"__originalHTML\",\"__tagId\"],trim(t){return this.settings.trim&&t&&\"string\"==typeof t?t.trim():t},parseHTML:function(t){return(new DOMParser).parseFromString(t.trim(),\"text/html\").body.firstElementChild},templates:f,parseTemplate(t,e){return t=this.settings.templates[t]||t,this.parseHTML(t.apply(this,e))},set whitelist(t){this.settings.whitelist=t&&Array.isArray(t)?t:[]},get whitelist(){return this.settings.whitelist},applySettings(t,e){p.templates=this.templates;var s=this.settings=d({},p,e);s.disabled=t.hasAttribute(\"disabled\"),s.readonly=t.hasAttribute(\"readonly\"),s.placeholder=t.getAttribute(\"placeholder\")||s.placeholder||\"\",s.required=t.hasAttribute(\"required\");for(let t in s.classNames)Object.defineProperty(s.classNames,t+\"Selector\",{get(){return\".\"+this[t].split(\" \")[0]}});if(this.isIE&&(s.autoComplete=!1),[\"whitelist\",\"blacklist\"].forEach((e=>{var i=t.getAttribute(\"data-\"+e);i&&(i=i.split(s.delimiters))instanceof Array&&(s[e]=i)})),\"autoComplete\"in e&&!l(e.autoComplete)&&(s.autoComplete=p.autoComplete,s.autoComplete.enabled=e.autoComplete),\"mix\"==s.mode&&(s.autoComplete.rightKey=!0,s.delimiters=e.delimiters||null,s.tagTextProp&&!s.dropdown.searchKeys.includes(s.tagTextProp)&&s.dropdown.searchKeys.push(s.tagTextProp)),t.pattern)try{s.pattern=new RegExp(t.pattern)}catch(t){}if(this.settings.delimiters)try{s.delimiters=new RegExp(this.settings.delimiters,\"g\")}catch(t){}this.TEXTS=i(i({},v),s.texts||{}),\"select\"!=s.mode&&s.userInput||(s.dropdown.enabled=0),s.dropdown.appendTarget=e.dropdown&&e.dropdown.appendTarget?e.dropdown.appendTarget:document.body},getAttributes(t){var e,i=this.getCustomAttributes(t),s=\"\";for(e in i)s+=\" \"+e+(void 0!==t[e]?`=\"${i[e]}\"`:\"\");return s},getCustomAttributes(t){if(!l(t))return\"\";var e,i={};for(e in t)\"__\"!=e.slice(0,2)&&\"class\"!=e&&t.hasOwnProperty(e)&&void 0!==t[e]&&(i[e]=r(t[e]));return i},setStateSelection(){var t=window.getSelection(),e={anchorOffset:t.anchorOffset,anchorNode:t.anchorNode,range:t.getRangeAt&&t.rangeCount&&t.getRangeAt(0)};return this.state.selection=e,e},getCaretGlobalPosition(){const t=document.getSelection();if(t.rangeCount){const e=t.getRangeAt(0),i=e.startContainer,s=e.startOffset;let a,n;if(s>0)return n=document.createRange(),n.setStart(i,s-1),n.setEnd(i,s),a=n.getBoundingClientRect(),{left:a.right,top:a.top,bottom:a.bottom};if(i.getBoundingClientRect)return i.getBoundingClientRect()}return{left:-9999,top:-9999}},getCSSVars(){var t=getComputedStyle(this.DOM.scope,null);var e;this.CSSVars={tagHideTransition:(({value:t,unit:e})=>\"s\"==e?1e3*t:t)(function(t){if(!t)return{};var e=(t=t.trim().split(\" \")[0]).split(/\\d+/g).filter((t=>t)).pop().trim();return{value:+t.split(e).filter((t=>t))[0].trim(),unit:e}}((e=\"tag-hide-transition\",t.getPropertyValue(\"--\"+e))))}},build(t){var e=this.DOM;this.settings.mixMode.integrated?(e.originalInput=null,e.scope=t,e.input=t):(e.originalInput=t,e.scope=this.parseTemplate(\"wrapper\",[t,this.settings]),e.input=e.scope.querySelector(this.settings.classNames.inputSelector),t.parentNode.insertBefore(e.scope,t))},destroy(){this.events.unbindGlobal.call(this),this.DOM.scope.parentNode.removeChild(this.DOM.scope),this.dropdown.hide(!0),clearTimeout(this.dropdownHide__bindEventsTimeout)},loadOriginalValues(t){var e,i=this.settings;if(void 0===t&&(t=i.mixMode.integrated?this.DOM.input.textContent:this.DOM.originalInput.value),this.removeAllTags({withoutChangeEvent:!0}),t)if(\"mix\"==i.mode)this.parseMixTags(t.trim()),(e=this.DOM.input.lastChild)&&\"BR\"==e.tagName||this.DOM.input.insertAdjacentHTML(\"beforeend\",\"
\");else{try{JSON.parse(t)instanceof Array&&(t=JSON.parse(t))}catch(t){}this.addTags(t).forEach((t=>t&&t.classList.add(i.classNames.tagNoAnimation)))}else this.postUpdate();this.state.lastOriginalValueReported=i.mixMode.integrated?\"\":this.DOM.originalInput.value,this.state.loadedOriginalValues=!0},cloneEvent(t){var e={};for(var i in t)e[i]=t[i];return e},loading(t){return this.state.isLoading=t,this.DOM.scope.classList[t?\"add\":\"remove\"](this.settings.classNames.scopeLoading),this},tagLoading(t,e){return t&&t.classList[e?\"add\":\"remove\"](this.settings.classNames.tagLoading),this},toggleClass(t,e){\"string\"==typeof t&&this.DOM.scope.classList.toggle(t,e)},toggleFocusClass(t){this.toggleClass(this.settings.classNames.focus,!!t)},triggerChangeEvent:function(){if(!this.settings.mixMode.integrated){var t=this.DOM.originalInput,e=this.state.lastOriginalValueReported!==t.value,i=new CustomEvent(\"change\",{bubbles:!0});e&&(this.state.lastOriginalValueReported=t.value,i.simulated=!0,t._valueTracker&&t._valueTracker.setValue(Math.random()),t.dispatchEvent(i),this.trigger(\"change\",this.state.lastOriginalValueReported),t.value=this.state.lastOriginalValueReported)}},events:T,fixFirefoxLastTagNoCaret(){},placeCaretAfterNode(t){if(t&&t.parentNode){var e=t.nextSibling,i=window.getSelection(),s=i.getRangeAt(0);i.rangeCount&&(s.setStartBefore(e||t),s.setEndBefore(e||t),i.removeAllRanges(),i.addRange(s))}},insertAfterTag(t,e){if(e=e||this.settings.mixMode.insertAfterTag,t&&t.parentNode&&e)return e=\"string\"==typeof e?document.createTextNode(e):e,t.parentNode.insertBefore(e,t.nextSibling),e},editTag(t,e){t=t||this.getLastTag(),e=e||{},this.dropdown.hide();var i=this.settings;function s(){return t.querySelector(i.classNames.tagTextSelector)}var a=s(),n=this.getNodeIndex(t),o=this.tagData(t),r=this.events.callbacks,l=this,h=!0;if(a){if(!(o instanceof Object&&\"editable\"in o)||o.editable)return a.setAttribute(\"contenteditable\",!0),t.classList.add(i.classNames.tagEditing),this.tagData(t,{__originalData:d({},o),__originalHTML:t.innerHTML}),a.addEventListener(\"focus\",r.onEditTagFocus.bind(this,t)),a.addEventListener(\"blur\",(function(){setTimeout((()=>r.onEditTagBlur.call(l,s())))})),a.addEventListener(\"input\",r.onEditTagInput.bind(this,a)),a.addEventListener(\"keydown\",(e=>r.onEditTagkeydown.call(this,e,t))),a.focus(),this.setRangeAtStartEnd(!1,a),e.skipValidation||(h=this.editTagToggleValidity(t)),a.originalIsValid=h,this.trigger(\"edit:start\",{tag:t,index:n,data:o,isValid:h}),this}else console.warn(\"Cannot find element in Tag template: .\",i.classNames.tagTextSelector)},editTagToggleValidity(t,e){var i;if(e=e||this.tagData(t))return(i=!(\"__isValid\"in e)||!0===e.__isValid)||this.removeTagsFromValue(t),this.update(),t.classList.toggle(this.settings.classNames.tagNotAllowed,!i),e.__isValid;console.warn(\"tag has no data: \",t,e)},onEditTagDone(t,e){e=e||{};var i={tag:t=t||this.state.editing.scope,index:this.getNodeIndex(t),previousData:this.tagData(t),data:e};this.trigger(\"edit:beforeUpdate\",i,{cloneData:!1}),this.state.editing=!1,delete e.__originalData,delete e.__originalHTML,t&&e[this.settings.tagTextProp]?(t=this.replaceTag(t,e),this.editTagToggleValidity(t,e),this.settings.a11y.focusableTags&&t.focus()):t&&this.removeTags(t),this.trigger(\"edit:updated\",i),this.dropdown.hide(),this.settings.keepInvalidTags&&this.reCheckInvalidTags()},replaceTag(t,e){e&&e.value||(e=t.__tagifyTagData),e.__isValid&&1!=e.__isValid&&d(e,this.getInvalidTagAttrs(e,e.__isValid));var i=this.createTagElem(e);return t.parentNode.replaceChild(i,t),this.updateValueByDOMTags(),i},updateValueByDOMTags(){this.value.length=0,[].forEach.call(this.getTagElms(),(t=>{t.classList.contains(this.settings.classNames.tagNotAllowed.split(\" \")[0])||this.value.push(this.tagData(t))})),this.update()},setRangeAtStartEnd(t,e){t=\"number\"==typeof t?t:!!t,e=(e=e||this.DOM.input).lastChild||e;var i=document.getSelection();try{i.rangeCount>=1&&[\"Start\",\"End\"].forEach((s=>i.getRangeAt(0)[\"set\"+s](e,t||e.length)))}catch(t){console.warn(\"Tagify: \",t)}},injectAtCaret(t,e){if(e=e||this.state.selection.range)return\"string\"==typeof t&&(t=document.createTextNode(t)),e.deleteContents(),e.insertNode(t),this.setRangeAtStartEnd(!1,t),this.updateValueByDOMTags(),this.update(),this},input:{set(t=\"\",e=!0){var i=this.settings.dropdown.closeOnSelect;this.state.inputText=t,e&&(this.DOM.input.innerHTML=r(\"\"+t)),!t&&i&&this.dropdown.hide.bind(this),this.input.autocomplete.suggest.call(this),this.input.validate.call(this)},validate(){var t=!this.state.inputText||!0===this.validateTag({value:this.state.inputText});return this.DOM.input.classList.toggle(this.settings.classNames.inputInvalid,!t),t},normalize(t){var e=t||this.DOM.input,i=[];e.childNodes.forEach((t=>3==t.nodeType&&i.push(t.nodeValue))),i=i.join(\"\\n\");try{i=i.replace(/(?:\\r\\n|\\r|\\n)/g,this.settings.delimiters.source.charAt(0))}catch(t){}return i=i.replace(/\\s/g,\" \"),this.settings.trim&&(i=i.replace(/^\\s+/,\"\")),i},autocomplete:{suggest(t){if(this.settings.autoComplete.enabled){\"string\"==typeof(t=t||{})&&(t={value:t});var e=t.value?\"\"+t.value:\"\",i=e.substr(0,this.state.inputText.length).toLowerCase(),s=e.substring(this.state.inputText.length);e&&this.state.inputText&&i==this.state.inputText.toLowerCase()?(this.DOM.input.setAttribute(\"data-suggest\",s),this.state.inputSuggestion=t):(this.DOM.input.removeAttribute(\"data-suggest\"),delete this.state.inputSuggestion)}},set(t){var e=this.DOM.input.getAttribute(\"data-suggest\"),i=t||(e?this.state.inputText+e:null);return!!i&&(\"mix\"==this.settings.mode?this.replaceTextWithNode(document.createTextNode(this.state.tag.prefix+i)):(this.input.set.call(this,i),this.setRangeAtStartEnd()),this.input.autocomplete.suggest.call(this),this.dropdown.hide(),!0)}}},getTagIdx(t){return this.value.findIndex((e=>e.__tagId==(t||{}).__tagId))},getNodeIndex(t){var e=0;if(t)for(;t=t.previousElementSibling;)e++;return e},getTagElms(...t){var e=\".\"+[...this.settings.classNames.tag.split(\" \"),...t].join(\".\");return[].slice.call(this.DOM.scope.querySelectorAll(e))},getLastTag(){var t=this.DOM.scope.querySelectorAll(`${this.settings.classNames.tagSelector}:not(.${this.settings.classNames.tagHide}):not([readonly])`);return t[t.length-1]},tagData:(t,e,i)=>t?(e&&(t.__tagifyTagData=i?e:d({},t.__tagifyTagData||{},e)),t.__tagifyTagData):(console.warn(\"tag elment doesn't exist\",t,e),e),isTagDuplicate(t,e){var i=this.settings;return\"select\"!=i.mode&&this.value.reduce(((a,n)=>s(this.trim(\"\"+t),n.value,e||i.dropdown.caseSensitive)?a+1:a),0)},getTagIndexByValue(t){var e=[];return this.getTagElms().forEach(((i,a)=>{s(this.trim(i.textContent),t,this.settings.dropdown.caseSensitive)&&e.push(a)})),e},getTagElmByValue(t){var e=this.getTagIndexByValue(t)[0];return this.getTagElms()[e]},flashTag(t){t&&(t.classList.add(this.settings.classNames.tagFlash),setTimeout((()=>{t.classList.remove(this.settings.classNames.tagFlash)}),100))},isTagBlacklisted(t){return t=this.trim(t.toLowerCase()),this.settings.blacklist.filter((e=>(\"\"+e).toLowerCase()==t)).length},isTagWhitelisted(t){return!!this.getWhitelistItem(t)},getWhitelistItem(t,e,i){e=e||\"value\";var a,n=this.settings;return(i=i||n.whitelist).some((i=>{var o=\"string\"==typeof i?i:i[e]||i.value;if(s(o,t,n.dropdown.caseSensitive,n.trim))return a=\"string\"==typeof i?{value:i}:i,!0})),a||\"value\"!=e||\"value\"==n.tagTextProp||(a=this.getWhitelistItem(t,n.tagTextProp,i)),a},validateTag(t){var e=this.settings,i=\"value\"in t?\"value\":e.tagTextProp,s=this.trim(t[i]+\"\");return(t[i]+\"\").trim()?e.pattern&&e.pattern instanceof RegExp&&!e.pattern.test(s)?this.TEXTS.pattern:!e.duplicates&&this.isTagDuplicate(s,this.state.editing)?this.TEXTS.duplicate:this.isTagBlacklisted(s)||e.enforceWhitelist&&!this.isTagWhitelisted(s)?this.TEXTS.notAllowed:!e.validate||e.validate(t):this.TEXTS.empty},getInvalidTagAttrs(t,e){return{\"aria-invalid\":!0,class:`${t.class||\"\"} ${this.settings.classNames.tagNotAllowed}`.trim(),title:e}},hasMaxTags(){return this.value.length>=this.settings.maxTags&&this.TEXTS.exceed},setReadonly(t,e){var i=this.settings;document.activeElement.blur(),i[e||\"readonly\"]=t,this.DOM.scope[(t?\"set\":\"remove\")+\"Attribute\"](e||\"readonly\",!0),\"mix\"==i.mode&&(this.DOM.input.contentEditable=!t)},setDisabled(t){this.setReadonly(t,\"disabled\")},normalizeTags(t){var e=this.settings,i=e.whitelist,s=e.delimiters,a=e.mode,n=e.tagTextProp;e.enforceWhitelist;var o=[],r=!!i&&i[0]instanceof Object,l=t instanceof Array,d=t=>(t+\"\").split(s).filter((t=>t)).map((t=>({[n]:this.trim(t),value:this.trim(t)})));if(\"number\"==typeof t&&(t=t.toString()),\"string\"==typeof t){if(!t.trim())return[];t=d(t)}else l&&(t=[].concat(...t.map((t=>t.value?t:d(t)))));return r&&(t.forEach((t=>{var e=o.map((t=>t.value)),i=this.dropdown.filterListItems.call(this,t[n],{exact:!0});this.settings.duplicates||(i=i.filter((t=>!e.includes(t.value))));var s=i.length>1?this.getWhitelistItem(t[n],n,i):i[0];s&&s instanceof Object?o.push(s):\"mix\"!=a&&(null==t.value&&(t.value=t[n]),o.push(t))})),t=o),t},parseMixTags(t){var e=this.settings,i=e.mixTagsInterpolator,s=e.duplicates,a=e.transformTag,n=e.enforceWhitelist,o=e.maxTags,r=e.tagTextProp,l=[];return t=t.split(i[0]).map(((t,e)=>{var d,h,g,p=t.split(i[1]),c=p[0],u=l.length==o;try{if(c==+c)throw Error;h=JSON.parse(c)}catch(t){h=this.normalizeTags(c)[0]||{value:c}}if(u||!(p.length>1)||n&&!this.isTagWhitelisted(h.value)||!s&&this.isTagDuplicate(h.value)){if(t)return e?i[0]+t:t}else a.call(this,h),h[d=h[r]?r:\"value\"]=this.trim(h[d]),g=this.createTagElem(h),l.push(h),g.classList.add(this.settings.classNames.tagNoAnimation),p[0]=g.outerHTML,this.value.push(h);return p.join(\"\")})).join(\"\"),this.DOM.input.innerHTML=t,this.DOM.input.appendChild(document.createTextNode(\"\")),this.DOM.input.normalize(),this.getTagElms().forEach(((t,e)=>this.tagData(t,l[e]))),this.update({withoutChangeEvent:!0}),t},replaceTextWithNode(t,e){if(this.state.tag||e){e=e||this.state.tag.prefix+this.state.tag.value;var i,s,a=window.getSelection(),n=a.anchorNode,o=this.state.tag.delimiters?this.state.tag.delimiters.length:0;return n.splitText(a.anchorOffset-o),i=n.nodeValue.lastIndexOf(e),s=n.splitText(i),t&&n.parentNode.replaceChild(t,s),!0}},selectTag(t,e){var i=this.settings;if(!i.enforceWhitelist||this.isTagWhitelisted(e.value)){this.input.set.call(this,e[i.tagTextProp||\"value\"],!0),this.state.actions.selectOption&&setTimeout(this.setRangeAtStartEnd.bind(this));var s=this.getLastTag();return s?this.replaceTag(s,e):this.appendTag(t),i.enforceWhitelist&&this.DOM.input.removeAttribute(\"contenteditable\"),this.value[0]=e,this.trigger(\"add\",{tag:t,data:e}),this.update(),[t]}},addEmptyTag(t){var e=d({value:\"\"},t||{}),i=this.createTagElem(e);this.tagData(i,e),this.appendTag(i),this.editTag(i,{skipValidation:!0})},addTags(t,e,i=this.settings.skipInvalid){var s=[],a=this.settings,n=document.createDocumentFragment();return t&&0!=t.length?(t=this.normalizeTags(t),\"mix\"==a.mode?this.addMixTags(t):(\"select\"==a.mode&&(e=!1),this.DOM.input.removeAttribute(\"style\"),t.forEach((t=>{var e,o={},r=Object.assign({},t,{value:t.value+\"\"});if((t=Object.assign({},r)).__isValid=this.hasMaxTags()||this.validateTag(t),a.transformTag.call(this,t),!0!==t.__isValid){if(i)return;d(o,this.getInvalidTagAttrs(t,t.__isValid),{__preInvalidData:r}),t.__isValid==this.TEXTS.duplicate&&this.flashTag(this.getTagElmByValue(t.value))}if(t.readonly&&(o[\"aria-readonly\"]=!0),e=this.createTagElem(t,o),s.push(e),\"select\"==a.mode)return this.selectTag(e,t);n.appendChild(e),t.__isValid&&!0===t.__isValid?(this.value.push(t),this.trigger(\"add\",{tag:e,index:this.value.length-1,data:t})):(this.trigger(\"invalid\",{data:t,index:this.value.length,tag:e,message:t.__isValid}),a.keepInvalidTags||setTimeout((()=>this.removeTags(e,!0)),1e3)),this.dropdown.position()})),this.appendTag(n),this.update(),t.length&&e&&this.input.set.call(this),this.dropdown.refilter(),s)):(\"select\"==a.mode&&this.removeAllTags(),s)},addMixTags(t){if((t=this.normalizeTags(t))[0].prefix||this.state.tag)return this.prefixedTextToTag(t[0]);\"string\"==typeof t&&(t=[{value:t}]);var e=!!this.state.selection,i=document.createDocumentFragment();return t.forEach((t=>{var e=this.createTagElem(t);i.appendChild(e),this.insertAfterTag(e)})),e?this.injectAtCaret(i):(this.DOM.input.focus(),(e=this.setStateSelection()).range.setStart(this.DOM.input,e.range.endOffset),e.range.setEnd(this.DOM.input,e.range.endOffset),this.DOM.input.appendChild(i),this.updateValueByDOMTags(),this.update()),i},prefixedTextToTag(t){var e,i=this.settings,s=this.state.tag.delimiters;if(i.transformTag.call(this,t),t.prefix=t.prefix||this.state.tag?this.state.tag.prefix:(i.pattern.source||i.pattern)[0],e=this.createTagElem(t),this.replaceTextWithNode(e)||this.DOM.input.appendChild(e),setTimeout((()=>e.classList.add(this.settings.classNames.tagNoAnimation)),300),this.value.push(t),this.update(),!s){var a=this.insertAfterTag(e)||e;this.placeCaretAfterNode(a)}return this.state.tag=null,this.trigger(\"add\",d({},{tag:e},{data:t})),e},appendTag(t){var e=this.DOM,i=e.scope.lastElementChild;i===e.input?e.scope.insertBefore(t,i):e.scope.appendChild(t)},createTagElem(t,e){t.__tagId=([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(t=>(t^crypto.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16)));var s,a=d({},t,i({value:r(t.value+\"\")},e));return function(t){for(var e,i=document.createNodeIterator(t,NodeFilter.SHOW_TEXT,null,!1);e=i.nextNode();)e.textContent.trim()||e.parentNode.removeChild(e)}(s=this.parseTemplate(\"tag\",[a])),this.tagData(s,t),s},reCheckInvalidTags(){var t=this.settings;this.getTagElms(t.classNames.tagNotAllowed).forEach(((t,e)=>{var i=this.tagData(t),s=this.hasMaxTags(),a=this.validateTag(i);if(!0===a&&!s)return i=i.__preInvalidData?i.__preInvalidData:{value:i.value},this.replaceTag(t,i);t.title=s||a}))},removeTags(t,e,i){var s;t=t&&t instanceof HTMLElement?[t]:t instanceof Array?t:t?[t]:[this.getLastTag()],s=t.reduce(((t,e)=>(e&&\"string\"==typeof e&&(e=this.getTagElmByValue(e)),e&&this.tagData(e)&&t.push({node:e,idx:this.getTagIdx(this.tagData(e)),data:this.tagData(e,{__removed:!0})}),t)),[]),i=\"number\"==typeof i?i:this.CSSVars.tagHideTransition,\"select\"==this.settings.mode&&(i=0,this.input.set.call(this)),1==s.length&&s[0].node.classList.contains(this.settings.classNames.tagNotAllowed)&&(e=!0),s.length&&this.settings.hooks.beforeRemoveTag(s,{tagify:this}).then((()=>{function t(t){t.node.parentNode&&(t.node.parentNode.removeChild(t.node),e?this.settings.keepInvalidTags&&this.trigger(\"remove\",{tag:t.node,index:t.idx}):(this.trigger(\"remove\",{tag:t.node,index:t.idx,data:t.data}),this.dropdown.refilter(),this.dropdown.position(),this.DOM.input.normalize(),this.settings.keepInvalidTags&&this.reCheckInvalidTags()))}i&&i>10&&1==s.length?function(e){e.node.style.width=parseFloat(window.getComputedStyle(e.node).width)+\"px\",document.body.clientTop,e.node.classList.add(this.settings.classNames.tagHide),setTimeout(t.bind(this),i,e)}.call(this,s[0]):s.forEach(t.bind(this)),e||(this.removeTagsFromValue(s.map((t=>t.node))),this.update(),\"select\"==this.settings.mode&&this.DOM.input.setAttribute(\"contenteditable\",!0))})).catch((t=>{}))},removeTagsFromDOM(){[].slice.call(this.getTagElms()).forEach((t=>t.parentNode.removeChild(t)))},removeTagsFromValue(t){(t=Array.isArray(t)?t:[t]).forEach((t=>{var e=this.tagData(t),i=this.getTagIdx(e);i>-1&&this.value.splice(i,1)}))},removeAllTags(t){t=t||{},this.value=[],\"mix\"==this.settings.mode?this.DOM.input.innerHTML=\"\":this.removeTagsFromDOM(),this.dropdown.position(),\"select\"==this.settings.mode&&this.input.set.call(this),this.update(t)},postUpdate(){var t=this.settings.classNames,e=\"mix\"==this.settings.mode?this.settings.mixMode.integrated?this.DOM.input.textContent:this.DOM.originalInput.value:this.value.length;this.toggleClass(t.hasMaxTags,this.value.length>=this.settings.maxTags),this.toggleClass(t.hasNoTags,!this.value.length),this.toggleClass(t.empty,!e)},update(t){var e=this.DOM.originalInput;this.settings.mixMode.integrated||(e.value=this.getInputValue()),this.postUpdate(),!(t||{}).withoutChangeEvent&&this.state.loadedOriginalValues&&this.triggerChangeEvent()},getInputValue(){var t=this.getCleanValue();return\"mix\"==this.settings.mode?this.getMixedTagsAsString(t):t.length?this.settings.originalInputValueFormat?this.settings.originalInputValueFormat(t):JSON.stringify(t):\"\"},getCleanValue(t){return e=t||this.value,i=this.dataProps,e&&Array.isArray(e)&&e.map((t=>a(t,i)));var e,i},getMixedTagsAsString(){var t=\"\",e=this,i=this.settings.mixTagsInterpolator;return this.DOM.input.childNodes.forEach((s=>{if(1==s.nodeType){const n=e.tagData(s);if(s.classList.contains(e.settings.classNames.tag)&&n){if(n.__removed)return;return void(t+=i[0]+JSON.stringify(a(n,e.dataProps))+i[1])}\"BR\"!=s.tagName||s.parentNode!=e.DOM.input&&1!=s.parentNode.childNodes.length?\"DIV\"!=s.tagName&&\"P\"!=s.tagName||(t+=\"\\r\\n\",!s.children.length&&s.textContent&&(t+=s.textContent)):t+=\"\\r\\n\"}else t+=s.textContent})),t}},w.prototype.removeTag=w.prototype.removeTags,w}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHlhaXJlby90YWdpZnkvZGlzdC90YWdpZnkubWluLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsZUFBZSxLQUFvRCxvQkFBb0IsQ0FBZ0gsQ0FBQyxrQkFBa0IsYUFBYSxrQkFBa0IseUNBQXlDLGtEQUFrRCxXQUFXLGdCQUFnQixxQkFBcUIsaUNBQWlDLHNDQUFzQyw0QkFBNEIsdURBQXVELHNCQUFzQixTQUFTLGNBQWMsWUFBWSxtQkFBbUIsS0FBSyx5Q0FBeUMseUNBQXlDLFlBQVkscUlBQXFJLGdFQUFnRSxHQUFHLFNBQVMsc0dBQXNHLGdCQUFnQixXQUFXLHVDQUF1QyxTQUFTLGNBQWMsb0NBQW9DLGdDQUFnQyxpQkFBaUIsaUNBQWlDLEdBQUcsZ0JBQWdCLG9CQUFvQixpQkFBaUIsMkJBQTJCLGNBQWMsOENBQThDLHFCQUFxQixxQkFBcUIsdUJBQXVCLHlCQUF5QixLQUFLLGNBQWMsa0VBQWtFLHNGQUFzRixrQkFBa0IsZ0JBQWdCLHVDQUF1QyxZQUFZLDBDQUEwQyxPQUFPLFNBQVMsd0JBQXdCLDRCQUE0QixTQUFTLFdBQVcsaUNBQWlDLHFCQUFxQixjQUFjLGdIQUFnSCxpRUFBaUUsT0FBTyx3RUFBd0UsbU9BQW1PLHdCQUF3QixvQkFBb0IsZUFBZSxpQkFBaUIsVUFBVSxtQkFBbUIsZUFBZSx1QkFBdUIsYUFBYSw4dkJBQTh2QixXQUFXLDBNQUEwTSxRQUFRLGdIQUFnSCxhQUFhLGlCQUFpQixpSUFBaUksd0RBQXdELFNBQVMsT0FBTyw2S0FBNkssU0FBUyxtSUFBbUksZ0lBQWdJLHNRQUFzUSxRQUFRLFFBQVEsNElBQTRJLFFBQVEsRUFBRSxLQUFLLGdIQUFnSCwwQkFBMEIsUUFBUSxFQUFFLGtJQUFrSSxrVEFBa1QsZ0RBQWdELG9CQUFvQixnREFBZ0QsSUFBSSxTQUFTLHNGQUFzRixrT0FBa08sK0JBQStCLDJQQUEyUCxXQUFXLCtEQUErRCxVQUFVLG9GQUFvRixh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LG9EQUFvRCw4Q0FBOEMsa0JBQWtCLHFCQUFxQix1REFBdUQsc0JBQXNCLDJEQUEyRCw0TEFBNEwsc0JBQXNCLE1BQU0sZ0RBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0B5YWlyZW8vdGFnaWZ5L2Rpc3QvdGFnaWZ5Lm1pbi5qcz9kMjZlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGFnaWZ5ICh2IDQuNy4yKSAtIHRhZ3MgaW5wdXQgY29tcG9uZW50XG4gKiBCeSBZYWlyIEV2ZW4tT3JcbiAqIERvbid0IHNlbGwgdGhpcyBjb2RlLiAoYylcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS95YWlyRU8vdGFnaWZ5XG4gKi9cblxuIWZ1bmN0aW9uKHQsZSl7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9ZSgpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6KHQ9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpczp0fHxzZWxmKS5UYWdpZnk9ZSgpfSh0aGlzLChmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIHQodCxlLGkpe3JldHVybiBlIGluIHQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6aSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbZV09aSx0fWZ1bmN0aW9uIGUodCxlKXt2YXIgaT1PYmplY3Qua2V5cyh0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2UmJihzPXMuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLGkucHVzaC5hcHBseShpLHMpfXJldHVybiBpfWZ1bmN0aW9uIGkoaSl7Zm9yKHZhciBzPTE7czxhcmd1bWVudHMubGVuZ3RoO3MrKyl7dmFyIGE9bnVsbCE9YXJndW1lbnRzW3NdP2FyZ3VtZW50c1tzXTp7fTtzJTI/ZShPYmplY3QoYSksITApLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QoaSxlLGFbZV0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoYSkpOmUoT2JqZWN0KGEpKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoaSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSx0KSl9KSl9cmV0dXJuIGl9Y29uc3Qgcz0odCxlLGkscyk9Pih0PVwiXCIrdCxlPVwiXCIrZSxzJiYodD10LnRyaW0oKSxlPWUudHJpbSgpKSxpP3Q9PWU6dC50b0xvd2VyQ2FzZSgpPT1lLnRvTG93ZXJDYXNlKCkpO2Z1bmN0aW9uIGEodCxlKXt2YXIgaSxzPXt9O2ZvcihpIGluIHQpZS5pbmRleE9mKGkpPDAmJihzW2ldPXRbaV0pO3JldHVybiBzfWZ1bmN0aW9uIG4odCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtyZXR1cm4gdC5yZXBsYWNlKC9cXCYjP1swLTlhLXpdKzsvZ2ksKGZ1bmN0aW9uKHQpe3JldHVybiBlLmlubmVySFRNTD10LGUuaW5uZXJUZXh0fSkpfWZ1bmN0aW9uIG8odCxlKXtmb3IoZT1lfHxcInByZXZpb3VzXCI7dD10W2UrXCJTaWJsaW5nXCJdOylpZigzPT10Lm5vZGVUeXBlKXJldHVybiB0fWZ1bmN0aW9uIHIodCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/dC5yZXBsYWNlKC8mL2csXCImYW1wO1wiKS5yZXBsYWNlKC88L2csXCImbHQ7XCIpLnJlcGxhY2UoLz4vZyxcIiZndDtcIikucmVwbGFjZSgvXCIvZyxcIiZxdW90O1wiKS5yZXBsYWNlKC9gfCcvZyxcIiYjMDM5O1wiKTp0fWZ1bmN0aW9uIGwodCl7dmFyIGU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLnNwbGl0KFwiIFwiKVsxXS5zbGljZSgwLC0xKTtyZXR1cm4gdD09PU9iamVjdCh0KSYmXCJBcnJheVwiIT1lJiZcIkZ1bmN0aW9uXCIhPWUmJlwiUmVnRXhwXCIhPWUmJlwiSFRNTFVua25vd25FbGVtZW50XCIhPWV9ZnVuY3Rpb24gZCh0LGUsaSl7ZnVuY3Rpb24gcyh0LGUpe2Zvcih2YXIgaSBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkoaSkpe2lmKGwoZVtpXSkpe2wodFtpXSk/cyh0W2ldLGVbaV0pOnRbaV09T2JqZWN0LmFzc2lnbih7fSxlW2ldKTtjb250aW51ZX1pZihBcnJheS5pc0FycmF5KGVbaV0pKXt0W2ldPU9iamVjdC5hc3NpZ24oW10sZVtpXSk7Y29udGludWV9dFtpXT1lW2ldfX1yZXR1cm4gdCBpbnN0YW5jZW9mIE9iamVjdHx8KHQ9e30pLHModCxlKSxpJiZzKHQsaSksdH1mdW5jdGlvbiBoKHQpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLm5vcm1hbGl6ZT9cInN0cmluZ1wiPT10eXBlb2YgdD90Lm5vcm1hbGl6ZShcIk5GRFwiKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLFwiXCIpOnZvaWQgMDp0fXZhciBnPSgpPT4vKD89LipjaHJvbWUpKD89LiphbmRyb2lkKS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7dmFyIHA9e2RlbGltaXRlcnM6XCIsXCIscGF0dGVybjpudWxsLHRhZ1RleHRQcm9wOlwidmFsdWVcIixtYXhUYWdzOjEvMCxjYWxsYmFja3M6e30sYWRkVGFnT25CbHVyOiEwLGR1cGxpY2F0ZXM6ITEsd2hpdGVsaXN0OltdLGJsYWNrbGlzdDpbXSxlbmZvcmNlV2hpdGVsaXN0OiExLHVzZXJJbnB1dDohMCxrZWVwSW52YWxpZFRhZ3M6ITEsbWl4VGFnc0FsbG93ZWRBZnRlcjovLHxcXC58XFw6fFxccy8sbWl4VGFnc0ludGVycG9sYXRvcjpbXCJbW1wiLFwiXV1cIl0sYmFja3NwYWNlOiEwLHNraXBJbnZhbGlkOiExLHBhc3RlQXNUYWdzOiEwLGVkaXRUYWdzOntjbGlja3M6MixrZWVwSW52YWxpZDohMH0sdHJhbnNmb3JtVGFnOigpPT57fSx0cmltOiEwLGExMXk6e2ZvY3VzYWJsZVRhZ3M6ITF9LG1peE1vZGU6e2luc2VydEFmdGVyVGFnOlwiwqBcIn0sYXV0b0NvbXBsZXRlOntlbmFibGVkOiEwLHJpZ2h0S2V5OiExfSxjbGFzc05hbWVzOntuYW1lc3BhY2U6XCJ0YWdpZnlcIixtaXhNb2RlOlwidGFnaWZ5LS1taXhcIixzZWxlY3RNb2RlOlwidGFnaWZ5LS1zZWxlY3RcIixpbnB1dDpcInRhZ2lmeV9faW5wdXRcIixmb2N1czpcInRhZ2lmeS0tZm9jdXNcIix0YWc6XCJ0YWdpZnlfX3RhZ1wiLHRhZ05vQW5pbWF0aW9uOlwidGFnaWZ5LS1ub0FuaW1cIix0YWdJbnZhbGlkOlwidGFnaWZ5LS1pbnZhbGlkXCIsdGFnTm90QWxsb3dlZDpcInRhZ2lmeS0tbm90QWxsb3dlZFwiLGlucHV0SW52YWxpZDpcInRhZ2lmeV9faW5wdXQtLWludmFsaWRcIix0YWdYOlwidGFnaWZ5X190YWdfX3JlbW92ZUJ0blwiLHRhZ1RleHQ6XCJ0YWdpZnlfX3RhZy10ZXh0XCIsZHJvcGRvd246XCJ0YWdpZnlfX2Ryb3Bkb3duXCIsZHJvcGRvd25XcmFwcGVyOlwidGFnaWZ5X19kcm9wZG93bl9fd3JhcHBlclwiLGRyb3Bkb3duSXRlbTpcInRhZ2lmeV9fZHJvcGRvd25fX2l0ZW1cIixkcm9wZG93bkl0ZW1BY3RpdmU6XCJ0YWdpZnlfX2Ryb3Bkb3duX19pdGVtLS1hY3RpdmVcIixkcm9wZG93bkluaXRhbDpcInRhZ2lmeV9fZHJvcGRvd24tLWluaXRpYWxcIixzY29wZUxvYWRpbmc6XCJ0YWdpZnktLWxvYWRpbmdcIix0YWdMb2FkaW5nOlwidGFnaWZ5X190YWctLWxvYWRpbmdcIix0YWdFZGl0aW5nOlwidGFnaWZ5X190YWctLWVkaXRhYmxlXCIsdGFnRmxhc2g6XCJ0YWdpZnlfX3RhZy0tZmxhc2hcIix0YWdIaWRlOlwidGFnaWZ5X190YWctLWhpZGVcIixoYXNNYXhUYWdzOlwidGFnaWZ5LS1oYXNNYXhUYWdzXCIsaGFzTm9UYWdzOlwidGFnaWZ5LS1ub1RhZ3NcIixlbXB0eTpcInRhZ2lmeS0tZW1wdHlcIn0sZHJvcGRvd246e2NsYXNzbmFtZTpcIlwiLGVuYWJsZWQ6MixtYXhJdGVtczoxMCxzZWFyY2hLZXlzOltcInZhbHVlXCIsXCJzZWFyY2hCeVwiXSxmdXp6eVNlYXJjaDohMCxjYXNlU2Vuc2l0aXZlOiExLGFjY2VudGVkU2VhcmNoOiEwLGhpZ2hsaWdodEZpcnN0OiExLGNsb3NlT25TZWxlY3Q6ITAsY2xlYXJPblNlbGVjdDohMCxwb3NpdGlvbjpcImFsbFwiLGFwcGVuZFRhcmdldDpudWxsfSxob29rczp7YmVmb3JlUmVtb3ZlVGFnOigpPT5Qcm9taXNlLnJlc29sdmUoKSxiZWZvcmVQYXN0ZTooKT0+UHJvbWlzZS5yZXNvbHZlKCksc3VnZ2VzdGlvbkNsaWNrOigpPT5Qcm9taXNlLnJlc29sdmUoKX19O2Z1bmN0aW9uIGMoKXt0aGlzLmRyb3Bkb3duPXt9O2ZvcihsZXQgdCBpbiB0aGlzLl9kcm9wZG93bil0aGlzLmRyb3Bkb3duW3RdPVwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMuX2Ryb3Bkb3duW3RdP3RoaXMuX2Ryb3Bkb3duW3RdLmJpbmQodGhpcyk6dGhpcy5fZHJvcGRvd25bdF07dGhpcy5zZXR0aW5ncy5kcm9wZG93bi5lbmFibGVkPj0wJiZ0aGlzLmRyb3Bkb3duLmluaXQoKX12YXIgdSxtPXtpbml0KCl7dGhpcy5ET00uZHJvcGRvd249dGhpcy5wYXJzZVRlbXBsYXRlKFwiZHJvcGRvd25cIixbdGhpcy5zZXR0aW5nc10pLHRoaXMuRE9NLmRyb3Bkb3duLmNvbnRlbnQ9dGhpcy5ET00uZHJvcGRvd24ucXVlcnlTZWxlY3Rvcih0aGlzLnNldHRpbmdzLmNsYXNzTmFtZXMuZHJvcGRvd25XcmFwcGVyU2VsZWN0b3IpfSxzaG93KHQpe3ZhciBlLGksYSxuPXRoaXMuc2V0dGluZ3Msbz1cIm1peFwiPT1uLm1vZGUmJiFuLmVuZm9yY2VXaGl0ZWxpc3Qscj0hbi53aGl0ZWxpc3R8fCFuLndoaXRlbGlzdC5sZW5ndGgsZD1cIm1hbnVhbFwiPT1uLmRyb3Bkb3duLnBvc2l0aW9uO2lmKHQ9dm9pZCAwPT09dD90aGlzLnN0YXRlLmlucHV0VGV4dDp0LCghcnx8b3x8bi50ZW1wbGF0ZXMuZHJvcGRvd25JdGVtTm9NYXRjaCkmJiExIT09bi5kcm9wZG93bi5lbmFibGUmJiF0aGlzLnN0YXRlLmlzTG9hZGluZyl7aWYoY2xlYXJUaW1lb3V0KHRoaXMuZHJvcGRvd25IaWRlX19iaW5kRXZlbnRzVGltZW91dCksdGhpcy5zdWdnZXN0ZWRMaXN0SXRlbXM9dGhpcy5kcm9wZG93bi5maWx0ZXJMaXN0SXRlbXModCksdCYmIXRoaXMuc3VnZ2VzdGVkTGlzdEl0ZW1zLmxlbmd0aCYmKHRoaXMudHJpZ2dlcihcImRyb3Bkb3duOm5vTWF0Y2hcIix0KSxuLnRlbXBsYXRlcy5kcm9wZG93bkl0ZW1Ob01hdGNoJiYoYT1uLnRlbXBsYXRlcy5kcm9wZG93bkl0ZW1Ob01hdGNoLmNhbGwodGhpcyx7dmFsdWU6dH0pKSksIWEpe2lmKHRoaXMuc3VnZ2VzdGVkTGlzdEl0ZW1zLmxlbmd0aCl0JiZvJiYhdGhpcy5zdGF0ZS5lZGl0aW5nLnNjb3BlJiYhcyh0aGlzLnN1Z2dlc3RlZExpc3RJdGVtc1swXS52YWx1ZSx0KSYmdGhpcy5zdWdnZXN0ZWRMaXN0SXRlbXMudW5zaGlmdCh7dmFsdWU6dH0pO2Vsc2V7aWYoIXR8fCFvfHx0aGlzLnN0YXRlLmVkaXRpbmcuc2NvcGUpcmV0dXJuIHRoaXMuaW5wdXQuYXV0b2NvbXBsZXRlLnN1Z2dlc3QuY2FsbCh0aGlzKSx2b2lkIHRoaXMuZHJvcGRvd24uaGlkZSgpO3RoaXMuc3VnZ2VzdGVkTGlzdEl0ZW1zPVt7dmFsdWU6dH1dfWk9XCJcIisobChlPXRoaXMuc3VnZ2VzdGVkTGlzdEl0ZW1zWzBdKT9lLnZhbHVlOmUpLG4uYXV0b0NvbXBsZXRlJiZpJiYwPT1pLmluZGV4T2YodCkmJnRoaXMuaW5wdXQuYXV0b2NvbXBsZXRlLnN1Z2dlc3QuY2FsbCh0aGlzLGUpfXRoaXMuZHJvcGRvd24uZmlsbChhKSxuLmRyb3Bkb3duLmhpZ2hsaWdodEZpcnN0JiZ0aGlzLmRyb3Bkb3duLmhpZ2hsaWdodE9wdGlvbih0aGlzLkRPTS5kcm9wZG93bi5jb250ZW50LmNoaWxkcmVuWzBdKSx0aGlzLnN0YXRlLmRyb3Bkb3duLnZpc2libGV8fHNldFRpbWVvdXQodGhpcy5kcm9wZG93bi5ldmVudHMuYmluZGluZy5iaW5kKHRoaXMpKSx0aGlzLnN0YXRlLmRyb3Bkb3duLnZpc2libGU9dHx8ITAsdGhpcy5zdGF0ZS5kcm9wZG93bi5xdWVyeT10LHRoaXMuc2V0U3RhdGVTZWxlY3Rpb24oKSxkfHxzZXRUaW1lb3V0KCgoKT0+e3RoaXMuZHJvcGRvd24ucG9zaXRpb24oKSx0aGlzLmRyb3Bkb3duLnJlbmRlcigpfSkpLHNldFRpbWVvdXQoKCgpPT57dGhpcy50cmlnZ2VyKFwiZHJvcGRvd246c2hvd1wiLHRoaXMuRE9NLmRyb3Bkb3duKX0pKX19LGhpZGUodCl7dmFyIGU9dGhpcy5ET00saT1lLnNjb3BlLHM9ZS5kcm9wZG93bixhPVwibWFudWFsXCI9PXRoaXMuc2V0dGluZ3MuZHJvcGRvd24ucG9zaXRpb24mJiF0O2lmKHMmJmRvY3VtZW50LmJvZHkuY29udGFpbnMocykmJiFhKXJldHVybiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHRoaXMuZHJvcGRvd24ucG9zaXRpb24pLHRoaXMuZHJvcGRvd24uZXZlbnRzLmJpbmRpbmcuY2FsbCh0aGlzLCExKSxpLnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwhMSkscy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHMpLHNldFRpbWVvdXQoKCgpPT57dGhpcy5zdGF0ZS5kcm9wZG93bi52aXNpYmxlPSExfSksMTAwKSx0aGlzLnN0YXRlLmRyb3Bkb3duLnF1ZXJ5PXRoaXMuc3RhdGUuZGRJdGVtRGF0YT10aGlzLnN0YXRlLmRkSXRlbUVsbT10aGlzLnN0YXRlLnNlbGVjdGlvbj1udWxsLHRoaXMuc3RhdGUudGFnJiZ0aGlzLnN0YXRlLnRhZy52YWx1ZS5sZW5ndGgmJih0aGlzLnN0YXRlLmZsYWdnZWRUYWdzW3RoaXMuc3RhdGUudGFnLmJhc2VPZmZzZXRdPXRoaXMuc3RhdGUudGFnKSx0aGlzLnRyaWdnZXIoXCJkcm9wZG93bjpoaWRlXCIscyksdGhpc30sdG9nZ2xlKHQpe3RoaXMuZHJvcGRvd25bdGhpcy5zdGF0ZS5kcm9wZG93bi52aXNpYmxlJiYhdD9cImhpZGVcIjpcInNob3dcIl0oKX0scmVuZGVyKCl7dmFyIHQsZSxpLHM9KHQ9dGhpcy5ET00uZHJvcGRvd24sKGk9dC5jbG9uZU5vZGUoITApKS5zdHlsZS5jc3NUZXh0PVwicG9zaXRpb246Zml4ZWQ7IHRvcDotOTk5OXB4OyBvcGFjaXR5OjBcIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpLGU9aS5jbGllbnRIZWlnaHQsaS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkpLGUpLGE9dGhpcy5zZXR0aW5ncztyZXR1cm4gdGhpcy5ET00uc2NvcGUuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCEwKSxkb2N1bWVudC5ib2R5LmNvbnRhaW5zKHRoaXMuRE9NLmRyb3Bkb3duKXx8KHRoaXMuRE9NLmRyb3Bkb3duLmNsYXNzTGlzdC5hZGQoYS5jbGFzc05hbWVzLmRyb3Bkb3duSW5pdGFsKSx0aGlzLmRyb3Bkb3duLnBvc2l0aW9uKHMpLGEuZHJvcGRvd24uYXBwZW5kVGFyZ2V0LmFwcGVuZENoaWxkKHRoaXMuRE9NLmRyb3Bkb3duKSxzZXRUaW1lb3V0KCgoKT0+dGhpcy5ET00uZHJvcGRvd24uY2xhc3NMaXN0LnJlbW92ZShhLmNsYXNzTmFtZXMuZHJvcGRvd25Jbml0YWwpKSkpLHRoaXN9LGZpbGwodCl7dmFyIGU7dD1cInN0cmluZ1wiPT10eXBlb2YgdD90OnRoaXMuZHJvcGRvd24uY3JlYXRlTGlzdEhUTUwodHx8dGhpcy5zdWdnZXN0ZWRMaXN0SXRlbXMpLHRoaXMuRE9NLmRyb3Bkb3duLmNvbnRlbnQuaW5uZXJIVE1MPShlPXQpP2UucmVwbGFjZSgvXFw+W1xcclxcbiBdK1xcPC9nLFwiPjxcIikucmVwbGFjZSgvKDwuKj8+KXxcXHMrL2csKCh0LGUpPT5lfHxcIiBcIikpOlwiXCJ9LHJlZmlsdGVyKHQpe3Q9dHx8dGhpcy5zdGF0ZS5kcm9wZG93bi5xdWVyeXx8XCJcIix0aGlzLnN1Z2dlc3RlZExpc3RJdGVtcz10aGlzLmRyb3Bkb3duLmZpbHRlckxpc3RJdGVtcyh0KSx0aGlzLmRyb3Bkb3duLmZpbGwoKSx0aGlzLnN1Z2dlc3RlZExpc3RJdGVtcy5sZW5ndGh8fHRoaXMuZHJvcGRvd24uaGlkZSgpLHRoaXMudHJpZ2dlcihcImRyb3Bkb3duOnVwZGF0ZWRcIix0aGlzLkRPTS5kcm9wZG93bil9LHBvc2l0aW9uKHQpe3ZhciBlPXRoaXMuc2V0dGluZ3MuZHJvcGRvd247aWYoXCJtYW51YWxcIiE9ZS5wb3NpdGlvbil7dmFyIGkscyxhLG4sbyxyLGw9dGhpcy5ET00uZHJvcGRvd24sZD1lLnBsYWNlQWJvdmUsaD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LGc9TWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRofHwwLHdpbmRvdy5pbm5lcldpZHRofHwwKT40ODA/ZS5wb3NpdGlvbjpcImFsbFwiLHA9dGhpcy5ET01bXCJpbnB1dFwiPT1nP1wiaW5wdXRcIjpcInNjb3BlXCJdO3Q9dHx8bC5jbGllbnRIZWlnaHQsdGhpcy5zdGF0ZS5kcm9wZG93bi52aXNpYmxlJiYoXCJ0ZXh0XCI9PWc/KGE9KGk9dGhpcy5nZXRDYXJldEdsb2JhbFBvc2l0aW9uKCkpLmJvdHRvbSxzPWkudG9wLG49aS5sZWZ0LG89XCJhdXRvXCIpOihyPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLGk9MDt0OyllKz10Lm9mZnNldExlZnR8fDAsaSs9dC5vZmZzZXRUb3B8fDAsdD10LnBhcmVudE5vZGU7cmV0dXJue2xlZnQ6ZSx0b3A6aX19KHRoaXMuc2V0dGluZ3MuZHJvcGRvd24uYXBwZW5kVGFyZ2V0KSxzPShpPXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLnRvcC1yLnRvcCxhPWkuYm90dG9tLTEtci50b3Asbj1pLmxlZnQtci5sZWZ0LG89aS53aWR0aCtcInB4XCIpLHM9TWF0aC5mbG9vcihzKSxhPU1hdGguY2VpbChhKSxkPXZvaWQgMD09PWQ/aC1pLmJvdHRvbTx0OmQsbC5zdHlsZS5jc3NUZXh0PVwibGVmdDpcIisobit3aW5kb3cucGFnZVhPZmZzZXQpK1wicHg7IHdpZHRoOlwiK28rXCI7XCIrKGQ/XCJ0b3A6IFwiKyhzK3dpbmRvdy5wYWdlWU9mZnNldCkrXCJweFwiOlwidG9wOiBcIisoYSt3aW5kb3cucGFnZVlPZmZzZXQpK1wicHhcIiksbC5zZXRBdHRyaWJ1dGUoXCJwbGFjZW1lbnRcIixkP1widG9wXCI6XCJib3R0b21cIiksbC5zZXRBdHRyaWJ1dGUoXCJwb3NpdGlvblwiLGcpKX19LGV2ZW50czp7YmluZGluZyh0PSEwKXt2YXIgZT10aGlzLmRyb3Bkb3duLmV2ZW50cy5jYWxsYmFja3MsaT10aGlzLmxpc3RlbmVycy5kcm9wZG93bj10aGlzLmxpc3RlbmVycy5kcm9wZG93bnx8e3Bvc2l0aW9uOnRoaXMuZHJvcGRvd24ucG9zaXRpb24uYmluZCh0aGlzKSxvbktleURvd246ZS5vbktleURvd24uYmluZCh0aGlzKSxvbk1vdXNlT3ZlcjplLm9uTW91c2VPdmVyLmJpbmQodGhpcyksb25Nb3VzZUxlYXZlOmUub25Nb3VzZUxlYXZlLmJpbmQodGhpcyksb25DbGljazplLm9uQ2xpY2suYmluZCh0aGlzKSxvblNjcm9sbDplLm9uU2Nyb2xsLmJpbmQodGhpcyl9LHM9dD9cImFkZEV2ZW50TGlzdGVuZXJcIjpcInJlbW92ZUV2ZW50TGlzdGVuZXJcIjtcIm1hbnVhbFwiIT10aGlzLnNldHRpbmdzLmRyb3Bkb3duLnBvc2l0aW9uJiYod2luZG93W3NdKFwicmVzaXplXCIsaS5wb3NpdGlvbiksd2luZG93W3NdKFwia2V5ZG93blwiLGkub25LZXlEb3duKSksdGhpcy5ET00uZHJvcGRvd25bc10oXCJtb3VzZW92ZXJcIixpLm9uTW91c2VPdmVyKSx0aGlzLkRPTS5kcm9wZG93bltzXShcIm1vdXNlbGVhdmVcIixpLm9uTW91c2VMZWF2ZSksdGhpcy5ET00uZHJvcGRvd25bc10oXCJtb3VzZWRvd25cIixpLm9uQ2xpY2spLHRoaXMuRE9NLmRyb3Bkb3duLmNvbnRlbnRbc10oXCJzY3JvbGxcIixpLm9uU2Nyb2xsKX0sY2FsbGJhY2tzOntvbktleURvd24odCl7dmFyIGU9dGhpcy5ET00uZHJvcGRvd24ucXVlcnlTZWxlY3Rvcih0aGlzLnNldHRpbmdzLmNsYXNzTmFtZXMuZHJvcGRvd25JdGVtQWN0aXZlU2VsZWN0b3IpLGk9dGhpcy5kcm9wZG93bi5nZXRTdWdnZXN0aW9uRGF0YUJ5Tm9kZShlKTtzd2l0Y2godC5rZXkpe2Nhc2VcIkFycm93RG93blwiOmNhc2VcIkFycm93VXBcIjpjYXNlXCJEb3duXCI6Y2FzZVwiVXBcIjp2YXIgczt0LnByZXZlbnREZWZhdWx0KCksZSYmKGU9ZVsoXCJBcnJvd1VwXCI9PXQua2V5fHxcIlVwXCI9PXQua2V5P1wicHJldmlvdXNcIjpcIm5leHRcIikrXCJFbGVtZW50U2libGluZ1wiXSksZXx8KHM9dGhpcy5ET00uZHJvcGRvd24uY29udGVudC5jaGlsZHJlbixlPXNbXCJBcnJvd1VwXCI9PXQua2V5fHxcIlVwXCI9PXQua2V5P3MubGVuZ3RoLTE6MF0pLGk9dGhpcy5kcm9wZG93bi5nZXRTdWdnZXN0aW9uRGF0YUJ5Tm9kZShlKSx0aGlzLmRyb3Bkb3duLmhpZ2hsaWdodE9wdGlvbihlLCEwKTticmVhaztjYXNlXCJFc2NhcGVcIjpjYXNlXCJFc2NcIjp0aGlzLmRyb3Bkb3duLmhpZGUoKTticmVhaztjYXNlXCJBcnJvd1JpZ2h0XCI6aWYodGhpcy5zdGF0ZS5hY3Rpb25zLkFycm93TGVmdClyZXR1cm47Y2FzZVwiVGFiXCI6aWYoXCJtaXhcIiE9dGhpcy5zZXR0aW5ncy5tb2RlJiZlJiYhdGhpcy5zZXR0aW5ncy5hdXRvQ29tcGxldGUucmlnaHRLZXkmJiF0aGlzLnN0YXRlLmVkaXRpbmcpe3QucHJldmVudERlZmF1bHQoKTt2YXIgYT10aGlzLmRyb3Bkb3duLmdldE1hcHBlZFZhbHVlKGkpO3JldHVybiB0aGlzLmlucHV0LmF1dG9jb21wbGV0ZS5zZXQuY2FsbCh0aGlzLGEpLCExfXJldHVybiEwO2Nhc2VcIkVudGVyXCI6dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2V0dGluZ3MuaG9va3Muc3VnZ2VzdGlvbkNsaWNrKHQse3RhZ2lmeTp0aGlzLHRhZ0RhdGE6aSxzdWdnZXN0aW9uRWxtOmV9KS50aGVuKCgoKT0+e2lmKGUpcmV0dXJuIHRoaXMuZHJvcGRvd24uc2VsZWN0T3B0aW9uKGUpO3RoaXMuZHJvcGRvd24uaGlkZSgpLFwibWl4XCIhPXRoaXMuc2V0dGluZ3MubW9kZSYmdGhpcy5hZGRUYWdzKHRoaXMuc3RhdGUuaW5wdXRUZXh0LnRyaW0oKSwhMCl9KSkuY2F0Y2goKHQ9PnQpKTticmVhaztjYXNlXCJCYWNrc3BhY2VcIjp7aWYoXCJtaXhcIj09dGhpcy5zZXR0aW5ncy5tb2RlfHx0aGlzLnN0YXRlLmVkaXRpbmcuc2NvcGUpcmV0dXJuO2xldCB0PXRoaXMuc3RhdGUuaW5wdXRUZXh0LnRyaW0oKTtcIlwiIT10JiY4MjAzIT10LmNoYXJDb2RlQXQoMCl8fCghMD09PXRoaXMuc2V0dGluZ3MuYmFja3NwYWNlP3RoaXMucmVtb3ZlVGFncygpOlwiZWRpdFwiPT10aGlzLnNldHRpbmdzLmJhY2tzcGFjZSYmc2V0VGltZW91dCh0aGlzLmVkaXRUYWcuYmluZCh0aGlzKSwwKSl9fX0sb25Nb3VzZU92ZXIodCl7dmFyIGU9dC50YXJnZXQuY2xvc2VzdCh0aGlzLnNldHRpbmdzLmNsYXNzTmFtZXMuZHJvcGRvd25JdGVtU2VsZWN0b3IpO2UmJnRoaXMuZHJvcGRvd24uaGlnaGxpZ2h0T3B0aW9uKGUpfSxvbk1vdXNlTGVhdmUodCl7dGhpcy5kcm9wZG93bi5oaWdobGlnaHRPcHRpb24oKX0sb25DbGljayh0KXtpZigwPT10LmJ1dHRvbiYmdC50YXJnZXQhPXRoaXMuRE9NLmRyb3Bkb3duJiZ0LnRhcmdldCE9dGhpcy5ET00uZHJvcGRvd24uY29udGVudCl7dmFyIGU9dC50YXJnZXQuY2xvc2VzdCh0aGlzLnNldHRpbmdzLmNsYXNzTmFtZXMuZHJvcGRvd25JdGVtU2VsZWN0b3IpLGk9dGhpcy5kcm9wZG93bi5nZXRTdWdnZXN0aW9uRGF0YUJ5Tm9kZShlKTt0aGlzLnN0YXRlLmFjdGlvbnMuc2VsZWN0T3B0aW9uPSEwLHNldFRpbWVvdXQoKCgpPT50aGlzLnN0YXRlLmFjdGlvbnMuc2VsZWN0T3B0aW9uPSExKSw1MCksdGhpcy5zZXR0aW5ncy5ob29rcy5zdWdnZXN0aW9uQ2xpY2sodCx7dGFnaWZ5OnRoaXMsdGFnRGF0YTppLHN1Z2dlc3Rpb25FbG06ZX0pLnRoZW4oKCgpPT57ZT90aGlzLmRyb3Bkb3duLnNlbGVjdE9wdGlvbihlKTp0aGlzLmRyb3Bkb3duLmhpZGUoKX0pKS5jYXRjaCgodD0+dCkpfX0sb25TY3JvbGwodCl7dmFyIGU9dC50YXJnZXQsaT1lLnNjcm9sbFRvcC8oZS5zY3JvbGxIZWlnaHQtZS5wYXJlbnROb2RlLmNsaWVudEhlaWdodCkqMTAwO3RoaXMudHJpZ2dlcihcImRyb3Bkb3duOnNjcm9sbFwiLHtwZXJjZW50YWdlOk1hdGgucm91bmQoaSl9KX19fSxnZXRTdWdnZXN0aW9uRGF0YUJ5Tm9kZSh0KXt2YXIgZT10Pyt0LmdldEF0dHJpYnV0ZShcInRhZ2lmeVN1Z2dlc3Rpb25JZHhcIik6LTE7cmV0dXJuIHRoaXMuc3VnZ2VzdGVkTGlzdEl0ZW1zW2VdfHxudWxsfSxoaWdobGlnaHRPcHRpb24odCxlKXt2YXIgaSxzPXRoaXMuc2V0dGluZ3MuY2xhc3NOYW1lcy5kcm9wZG93bkl0ZW1BY3RpdmU7aWYodGhpcy5zdGF0ZS5kZEl0ZW1FbG0mJih0aGlzLnN0YXRlLmRkSXRlbUVsbS5jbGFzc0xpc3QucmVtb3ZlKHMpLHRoaXMuc3RhdGUuZGRJdGVtRWxtLnJlbW92ZUF0dHJpYnV0ZShcImFyaWEtc2VsZWN0ZWRcIikpLCF0KXJldHVybiB0aGlzLnN0YXRlLmRkSXRlbURhdGE9bnVsbCx0aGlzLnN0YXRlLmRkSXRlbUVsbT1udWxsLHZvaWQgdGhpcy5pbnB1dC5hdXRvY29tcGxldGUuc3VnZ2VzdC5jYWxsKHRoaXMpO2k9dGhpcy5zdWdnZXN0ZWRMaXN0SXRlbXNbdGhpcy5nZXROb2RlSW5kZXgodCldLHRoaXMuc3RhdGUuZGRJdGVtRGF0YT1pLHRoaXMuc3RhdGUuZGRJdGVtRWxtPXQsdC5jbGFzc0xpc3QuYWRkKHMpLHQuc2V0QXR0cmlidXRlKFwiYXJpYS1zZWxlY3RlZFwiLCEwKSxlJiYodC5wYXJlbnROb2RlLnNjcm9sbFRvcD10LmNsaWVudEhlaWdodCt0Lm9mZnNldFRvcC10LnBhcmVudE5vZGUuY2xpZW50SGVpZ2h0KSx0aGlzLnNldHRpbmdzLmF1dG9Db21wbGV0ZSYmKHRoaXMuaW5wdXQuYXV0b2NvbXBsZXRlLnN1Z2dlc3QuY2FsbCh0aGlzLGkpLHRoaXMuZHJvcGRvd24ucG9zaXRpb24oKSl9LHNlbGVjdE9wdGlvbih0KXt2YXIgZSxpPXRoaXMuc2V0dGluZ3MuZHJvcGRvd24scz1pLmNsZWFyT25TZWxlY3QsYT1pLmNsb3NlT25TZWxlY3Q7aWYoIXQpcmV0dXJuIGU9dGhpcy5hZGRUYWdzKHRoaXMuc3RhdGUuaW5wdXRUZXh0LCEwKSx2b2lkKGEmJnRoaXMuZHJvcGRvd24uaGlkZSgpKTt2YXIgbj10LmdldEF0dHJpYnV0ZShcInRhZ2lmeVN1Z2dlc3Rpb25JZHhcIiksbz10aGlzLnN1Z2dlc3RlZExpc3RJdGVtc1srbl07dGhpcy50cmlnZ2VyKFwiZHJvcGRvd246c2VsZWN0XCIse2RhdGE6byxlbG06dH0pLG4mJm8/KHRoaXMuc3RhdGUuZWRpdGluZz90aGlzLm9uRWRpdFRhZ0RvbmUobnVsbCxkKHtfX2lzVmFsaWQ6ITB9LG8pKTplPXRoaXNbXCJtaXhcIj09dGhpcy5zZXR0aW5ncy5tb2RlP1wiYWRkTWl4VGFnc1wiOlwiYWRkVGFnc1wiXShbb10scyksdGhpcy5ET00uaW5wdXQucGFyZW50Tm9kZSYmKHNldFRpbWVvdXQoKCgpPT57dGhpcy5ET00uaW5wdXQuZm9jdXMoKSx0aGlzLnRvZ2dsZUZvY3VzQ2xhc3MoITApLHRoaXMucGxhY2VDYXJldEFmdGVyTm9kZShlKX0pKSxhP3NldFRpbWVvdXQodGhpcy5kcm9wZG93bi5oaWRlLmJpbmQodGhpcykpOnRoaXMuZHJvcGRvd24ucmVmaWx0ZXIoKSkpOnRoaXMuZHJvcGRvd24uaGlkZSgpfSxzZWxlY3RBbGwoKXtyZXR1cm4gdGhpcy5zdWdnZXN0ZWRMaXN0SXRlbXMubGVuZ3RoPTAsdGhpcy5kcm9wZG93bi5oaWRlKCksdGhpcy5hZGRUYWdzKHRoaXMuZHJvcGRvd24uZmlsdGVyTGlzdEl0ZW1zKFwiXCIpLCEwKSx0aGlzfSxmaWx0ZXJMaXN0SXRlbXModCxlKXt2YXIgaSxzLGEsbixvLHI9dGhpcy5zZXR0aW5ncyxkPXIuZHJvcGRvd24sZz0oZT1lfHx7fSx0PVwic2VsZWN0XCI9PXIubW9kZSYmdGhpcy52YWx1ZS5sZW5ndGgmJnRoaXMudmFsdWVbMF1bci50YWdUZXh0UHJvcF09PXQ/XCJcIjp0LFtdKSxwPXIud2hpdGVsaXN0LGM9ZC5tYXhJdGVtc3x8MS8wLHU9ZC5zZWFyY2hLZXlzLG09MDtpZighdHx8IXUubGVuZ3RoKXJldHVybihyLmR1cGxpY2F0ZXM/cDpwLmZpbHRlcigodD0+IXRoaXMuaXNUYWdEdXBsaWNhdGUobCh0KT90LnZhbHVlOnQpKSkpLnNsaWNlKDAsYyk7ZnVuY3Rpb24gdih0LGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKCkuc3BsaXQoXCIgXCIpLmV2ZXJ5KChlPT50LmluY2x1ZGVzKGUudG9Mb3dlckNhc2UoKSkpKX1mb3Iobz1kLmNhc2VTZW5zaXRpdmU/XCJcIit0OihcIlwiK3QpLnRvTG93ZXJDYXNlKCk7bTxwLmxlbmd0aDttKyspe2k9cFttXWluc3RhbmNlb2YgT2JqZWN0P3BbbV06e3ZhbHVlOnBbbV19O2xldCB0PSFPYmplY3Qua2V5cyhpKS5zb21lKCh0PT51LmluY2x1ZGVzKHQpKSk/W1widmFsdWVcIl06dTtpZihkLmZ1enp5U2VhcmNoJiYhZS5leGFjdD8oYT10LnJlZHVjZSgoKHQsZSk9PnQrXCIgXCIrKGlbZV18fFwiXCIpKSxcIlwiKS50b0xvd2VyQ2FzZSgpLGQuYWNjZW50ZWRTZWFyY2gmJihhPWgoYSksbz1oKG8pKSxzPXYoYSxvKSk6cz10LnNvbWUoKHQ9Pnt2YXIgcz1cIlwiKyhpW3RdfHxcIlwiKTtyZXR1cm4gZC5hY2NlbnRlZFNlYXJjaCYmKHM9aChzKSxvPWgobykpLGQuY2FzZVNlbnNpdGl2ZXx8KHM9cy50b0xvd2VyQ2FzZSgpKSxlLmV4YWN0P3M9PW86MD09cy5pbmRleE9mKG8pfSkpLG49IXIuZHVwbGljYXRlcyYmdGhpcy5pc1RhZ0R1cGxpY2F0ZShsKGkpP2kudmFsdWU6aSkscyYmIW4mJmMtLSYmZy5wdXNoKGkpLDA9PWMpYnJlYWt9cmV0dXJuIGd9LGdldE1hcHBlZFZhbHVlKHQpe3ZhciBlPXRoaXMuc2V0dGluZ3MuZHJvcGRvd24ubWFwVmFsdWVUbztyZXR1cm4gZT9cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2UodCk6dFtlXXx8dC52YWx1ZTp0LnZhbHVlfSxjcmVhdGVMaXN0SFRNTCh0KXtyZXR1cm4gZChbXSx0KS5tYXAoKCh0LGUpPT57XCJzdHJpbmdcIiE9dHlwZW9mIHQmJlwibnVtYmVyXCIhPXR5cGVvZiB0fHwodD17dmFsdWU6dH0pO3ZhciBpPXRoaXMuZHJvcGRvd24uZ2V0TWFwcGVkVmFsdWUodCk7dC52YWx1ZT1pJiZcInN0cmluZ1wiPT10eXBlb2YgaT9yKGkpOmk7dmFyIHM9dGhpcy5zZXR0aW5ncy50ZW1wbGF0ZXMuZHJvcGRvd25JdGVtLmFwcGx5KHRoaXMsW3QsdGhpc10pO3JldHVybiBzPXMucmVwbGFjZSgvXFxzKnRhZ2lmeVN1Z2dlc3Rpb25JZHg9KFtcIiddKSguKj8pXFwxL2dpbSxcIlwiKS5yZXBsYWNlKFwiPlwiLGAgdGFnaWZ5U3VnZ2VzdGlvbklkeD1cIiR7ZX1cIj5gKX0pKS5qb2luKFwiXCIpfX0sdj17ZW1wdHk6XCJlbXB0eVwiLGV4Y2VlZDpcIm51bWJlciBvZiB0YWdzIGV4Y2VlZGVkXCIscGF0dGVybjpcInBhdHRlcm4gbWlzbWF0Y2hcIixkdXBsaWNhdGU6XCJhbHJlYWR5IGV4aXN0c1wiLG5vdEFsbG93ZWQ6XCJub3QgYWxsb3dlZFwifSxmPXt3cmFwcGVyOih0LGUpPT5gPHRhZ3MgY2xhc3M9XCIke2UuY2xhc3NOYW1lcy5uYW1lc3BhY2V9ICR7ZS5tb2RlP2Ake2UuY2xhc3NOYW1lc1tlLm1vZGUrXCJNb2RlXCJdfWA6XCJcIn0gJHt0LmNsYXNzTmFtZX1cIlxcbiAgICAgICAgICAgICAgICAgICAgJHtlLnJlYWRvbmx5P1wicmVhZG9ubHlcIjpcIlwifVxcbiAgICAgICAgICAgICAgICAgICAgJHtlLmRpc2FibGVkP1wiZGlzYWJsZWRcIjpcIlwifVxcbiAgICAgICAgICAgICAgICAgICAgJHtlLnJlcXVpcmVkP1wicmVxdWlyZWRcIjpcIlwifVxcbiAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9XCItMVwiPlxcbiAgICAgICAgICAgIDxzcGFuICR7IWUucmVhZG9ubHkmJmUudXNlcklucHV0P1wiY29udGVudGVkaXRhYmxlXCI6XCJcIn0gdGFiSW5kZXg9XCIwXCIgZGF0YS1wbGFjZWhvbGRlcj1cIiR7ZS5wbGFjZWhvbGRlcnx8XCImIzgyMDM7XCJ9XCIgYXJpYS1wbGFjZWhvbGRlcj1cIiR7ZS5wbGFjZWhvbGRlcnx8XCJcIn1cIlxcbiAgICAgICAgICAgICAgICBjbGFzcz1cIiR7ZS5jbGFzc05hbWVzLmlucHV0fVwiXFxuICAgICAgICAgICAgICAgIHJvbGU9XCJ0ZXh0Ym94XCJcXG4gICAgICAgICAgICAgICAgYXJpYS1hdXRvY29tcGxldGU9XCJib3RoXCJcXG4gICAgICAgICAgICAgICAgYXJpYS1tdWx0aWxpbmU9XCIke1wibWl4XCI9PWUubW9kZX1cIj48L3NwYW4+XFxuICAgICAgICA8L3RhZ3M+YCx0YWcodCxlKXt2YXIgaT10aGlzLnNldHRpbmdzO3JldHVybmA8dGFnIHRpdGxlPVwiJHt0LnRpdGxlfHx0LnZhbHVlfVwiXFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50ZWRpdGFibGU9J2ZhbHNlJ1xcbiAgICAgICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0nZmFsc2UnXFxuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD1cIiR7aS5hMTF5LmZvY3VzYWJsZVRhZ3M/MDotMX1cIlxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIke2kuY2xhc3NOYW1lcy50YWd9ICR7dC5jbGFzc3x8XCJcIn1cIlxcbiAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmdldEF0dHJpYnV0ZXModCl9PlxcbiAgICAgICAgICAgIDx4IHRpdGxlPScnIGNsYXNzPVwiJHtpLmNsYXNzTmFtZXMudGFnWH1cIiByb2xlPSdidXR0b24nIGFyaWEtbGFiZWw9J3JlbW92ZSB0YWcnPjwveD5cXG4gICAgICAgICAgICA8ZGl2PlxcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIiR7aS5jbGFzc05hbWVzLnRhZ1RleHR9XCI+JHt0W2kudGFnVGV4dFByb3BdfHx0LnZhbHVlfTwvc3Bhbj5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDwvdGFnPmB9LGRyb3Bkb3duKHQpe3ZhciBlPXQuZHJvcGRvd24saT1cIm1hbnVhbFwiPT1lLnBvc2l0aW9uLHM9YCR7dC5jbGFzc05hbWVzLmRyb3Bkb3dufWA7cmV0dXJuYDxkaXYgY2xhc3M9XCIke2k/XCJcIjpzfSAke2UuY2xhc3NuYW1lfVwiIHJvbGU9XCJsaXN0Ym94XCIgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25cIj5cXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIke3QuY2xhc3NOYW1lcy5kcm9wZG93bldyYXBwZXJ9XCI+PC9kaXY+XFxuICAgICAgICAgICAgICAgIDwvZGl2PmB9LGRyb3Bkb3duSXRlbSh0LGUpe3JldHVybmA8ZGl2ICR7dGhpcy5nZXRBdHRyaWJ1dGVzKHQpfVxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9JyR7dGhpcy5zZXR0aW5ncy5jbGFzc05hbWVzLmRyb3Bkb3duSXRlbX0gJHt0LmNsYXNzP3QuY2xhc3M6XCJcIn0nXFxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm9wdGlvblwiPiR7dC52YWx1ZX08L2Rpdj5gfSxkcm9wZG93bkl0ZW1Ob01hdGNoOm51bGx9O3ZhciBUPXtjdXN0b21CaW5kaW5nKCl7dGhpcy5jdXN0b21FdmVudHNMaXN0LmZvckVhY2goKHQ9Pnt0aGlzLm9uKHQsdGhpcy5zZXR0aW5ncy5jYWxsYmFja3NbdF0pfSkpfSxiaW5kaW5nKHQ9ITApe3ZhciBlLGk9dGhpcy5ldmVudHMuY2FsbGJhY2tzLHM9dD9cImFkZEV2ZW50TGlzdGVuZXJcIjpcInJlbW92ZUV2ZW50TGlzdGVuZXJcIjtpZighdGhpcy5zdGF0ZS5tYWluRXZlbnRzfHwhdClmb3IodmFyIGEgaW4gdGhpcy5zdGF0ZS5tYWluRXZlbnRzPXQsdCYmIXRoaXMubGlzdGVuZXJzLm1haW4mJih0aGlzLmV2ZW50cy5iaW5kR2xvYmFsLmNhbGwodGhpcyksdGhpcy5zZXR0aW5ncy5pc0pRdWVyeVBsdWdpbiYmalF1ZXJ5KHRoaXMuRE9NLm9yaWdpbmFsSW5wdXQpLm9uKFwidGFnaWZ5LnJlbW92ZUFsbFRhZ3NcIix0aGlzLnJlbW92ZUFsbFRhZ3MuYmluZCh0aGlzKSkpLGU9dGhpcy5saXN0ZW5lcnMubWFpbj10aGlzLmxpc3RlbmVycy5tYWlufHx7Zm9jdXM6W1wiaW5wdXRcIixpLm9uRm9jdXNCbHVyLmJpbmQodGhpcyldLGtleWRvd246W1wiaW5wdXRcIixpLm9uS2V5ZG93bi5iaW5kKHRoaXMpXSxjbGljazpbXCJzY29wZVwiLGkub25DbGlja1Njb3BlLmJpbmQodGhpcyldLGRibGNsaWNrOltcInNjb3BlXCIsaS5vbkRvdWJsZUNsaWNrU2NvcGUuYmluZCh0aGlzKV0scGFzdGU6W1wiaW5wdXRcIixpLm9uUGFzdGUuYmluZCh0aGlzKV19KXRoaXMuRE9NW2VbYV1bMF1dW3NdKGEsZVthXVsxXSl9LGJpbmRHbG9iYWwodCl7dmFyIGUsaT10aGlzLmV2ZW50cy5jYWxsYmFja3Mscz10P1wicmVtb3ZlRXZlbnRMaXN0ZW5lclwiOlwiYWRkRXZlbnRMaXN0ZW5lclwiO2lmKHR8fCF0aGlzLmxpc3RlbmVycy5nbG9iYWwpZm9yKGUgb2YodGhpcy5saXN0ZW5lcnMuZ2xvYmFsPXRoaXMubGlzdGVuZXJzJiZ0aGlzLmxpc3RlbmVycy5nbG9iYWx8fFt7dHlwZTp0aGlzLmlzSUU/XCJrZXlkb3duXCI6XCJpbnB1dFwiLHRhcmdldDp0aGlzLkRPTS5pbnB1dCxjYjppW3RoaXMuaXNJRT9cIm9uSW5wdXRJRVwiOlwib25JbnB1dFwiXS5iaW5kKHRoaXMpfSx7dHlwZTpcImtleWRvd25cIix0YXJnZXQ6d2luZG93LGNiOmkub25XaW5kb3dLZXlEb3duLmJpbmQodGhpcyl9LHt0eXBlOlwiYmx1clwiLHRhcmdldDp0aGlzLkRPTS5pbnB1dCxjYjppLm9uRm9jdXNCbHVyLmJpbmQodGhpcyl9XSx0aGlzLmxpc3RlbmVycy5nbG9iYWwpKWUudGFyZ2V0W3NdKGUudHlwZSxlLmNiKX0sdW5iaW5kR2xvYmFsKCl7dGhpcy5ldmVudHMuYmluZEdsb2JhbC5jYWxsKHRoaXMsITApfSxjYWxsYmFja3M6e29uRm9jdXNCbHVyKHQpe3ZhciBlPXQudGFyZ2V0P3RoaXMudHJpbSh0LnRhcmdldC50ZXh0Q29udGVudCk6XCJcIixpPXRoaXMuc2V0dGluZ3Mscz10LnR5cGUsYT1pLmRyb3Bkb3duLmVuYWJsZWQ+PTAsbj17cmVsYXRlZFRhcmdldDp0LnJlbGF0ZWRUYXJnZXR9LG89dGhpcy5zdGF0ZS5hY3Rpb25zLnNlbGVjdE9wdGlvbiYmKGF8fCFpLmRyb3Bkb3duLmNsb3NlT25TZWxlY3QpLHI9dGhpcy5zdGF0ZS5hY3Rpb25zLmFkZE5ldyYmYSxsPXQucmVsYXRlZFRhcmdldCYmdC5yZWxhdGVkVGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucyhpLmNsYXNzTmFtZXMudGFnKSYmdGhpcy5ET00uc2NvcGUuY29udGFpbnModC5yZWxhdGVkVGFyZ2V0KTtpZihcImJsdXJcIj09cyl7aWYodC5yZWxhdGVkVGFyZ2V0PT09dGhpcy5ET00uc2NvcGUpcmV0dXJuIHRoaXMuZHJvcGRvd24uaGlkZSgpLHZvaWQgdGhpcy5ET00uaW5wdXQuZm9jdXMoKTt0aGlzLnBvc3RVcGRhdGUoKSx0aGlzLnRyaWdnZXJDaGFuZ2VFdmVudCgpfWlmKCFvJiYhcilpZih0aGlzLnN0YXRlLmhhc0ZvY3VzPVwiZm9jdXNcIj09cyYmK25ldyBEYXRlLHRoaXMudG9nZ2xlRm9jdXNDbGFzcyh0aGlzLnN0YXRlLmhhc0ZvY3VzKSxcIm1peFwiIT1pLm1vZGUpe2lmKFwiZm9jdXNcIj09cylyZXR1cm4gdGhpcy50cmlnZ2VyKFwiZm9jdXNcIixuKSx2b2lkKDAhPT1pLmRyb3Bkb3duLmVuYWJsZWQmJmkudXNlcklucHV0fHx0aGlzLmRyb3Bkb3duLnNob3coKSk7XCJibHVyXCI9PXMmJih0aGlzLnRyaWdnZXIoXCJibHVyXCIsbiksdGhpcy5sb2FkaW5nKCExKSxcInNlbGVjdFwiPT10aGlzLnNldHRpbmdzLm1vZGUmJmwmJihlPVwiXCIpLChcInNlbGVjdFwiPT10aGlzLnNldHRpbmdzLm1vZGUmJmU/IXRoaXMudmFsdWUubGVuZ3RofHx0aGlzLnZhbHVlWzBdLnZhbHVlIT1lOmUmJiF0aGlzLnN0YXRlLmFjdGlvbnMuc2VsZWN0T3B0aW9uJiZpLmFkZFRhZ09uQmx1cikmJnRoaXMuYWRkVGFncyhlLCEwKSxcInNlbGVjdFwiIT10aGlzLnNldHRpbmdzLm1vZGV8fGV8fHRoaXMucmVtb3ZlVGFncygpKSx0aGlzLkRPTS5pbnB1dC5yZW1vdmVBdHRyaWJ1dGUoXCJzdHlsZVwiKSx0aGlzLmRyb3Bkb3duLmhpZGUoKX1lbHNlXCJmb2N1c1wiPT1zP3RoaXMudHJpZ2dlcihcImZvY3VzXCIsbik6XCJibHVyXCI9PXQudHlwZSYmKHRoaXMudHJpZ2dlcihcImJsdXJcIixuKSx0aGlzLmxvYWRpbmcoITEpLHRoaXMuZHJvcGRvd24uaGlkZSgpLHRoaXMuc3RhdGUuZHJvcGRvd24udmlzaWJsZT12b2lkIDAsdGhpcy5zZXRTdGF0ZVNlbGVjdGlvbigpKX0sb25XaW5kb3dLZXlEb3duKHQpe3ZhciBlLGk9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZihpLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLnNldHRpbmdzLmNsYXNzTmFtZXMudGFnKSYmdGhpcy5ET00uc2NvcGUuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpc3dpdGNoKGU9aS5uZXh0RWxlbWVudFNpYmxpbmcsdC5rZXkpe2Nhc2VcIkJhY2tzcGFjZVwiOnRoaXMucmVtb3ZlVGFncyhpKSwoZXx8dGhpcy5ET00uaW5wdXQpLmZvY3VzKCk7YnJlYWs7Y2FzZVwiRW50ZXJcIjpzZXRUaW1lb3V0KHRoaXMuZWRpdFRhZy5iaW5kKHRoaXMpLDAsaSl9fSxvbktleWRvd24odCl7XCJzZWxlY3RcIj09dGhpcy5zZXR0aW5ncy5tb2RlJiZ0aGlzLnNldHRpbmdzLmVuZm9yY2VXaGl0ZWxpc3QmJnRoaXMudmFsdWUubGVuZ3RoJiZ0LnByZXZlbnREZWZhdWx0KCk7dmFyIGU9dGhpcy50cmltKHQudGFyZ2V0LnRleHRDb250ZW50KTtpZih0aGlzLnRyaWdnZXIoXCJrZXlkb3duXCIse29yaWdpbmFsRXZlbnQ6dGhpcy5jbG9uZUV2ZW50KHQpfSksXCJtaXhcIj09dGhpcy5zZXR0aW5ncy5tb2RlKXtzd2l0Y2godC5rZXkpe2Nhc2VcIkxlZnRcIjpjYXNlXCJBcnJvd0xlZnRcIjp0aGlzLnN0YXRlLmFjdGlvbnMuQXJyb3dMZWZ0PSEwO2JyZWFrO2Nhc2VcIkRlbGV0ZVwiOmNhc2VcIkJhY2tzcGFjZVwiOmlmKHRoaXMuc3RhdGUuZWRpdGluZylyZXR1cm47dmFyIGkscyxhLHI9ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCksbD1cIkRlbGV0ZVwiPT10LmtleSYmci5hbmNob3JPZmZzZXQ9PShyLmFuY2hvck5vZGUubGVuZ3RofHwwKSxkPTE9PXIuYW5jaG9yTm9kZS5ub2RlVHlwZXx8IXIuYW5jaG9yT2Zmc2V0JiZyLmFuY2hvck5vZGUucHJldmlvdXNFbGVtZW50U2libGluZyxoPW4odGhpcy5ET00uaW5wdXQuaW5uZXJIVE1MKSxwPXRoaXMuZ2V0VGFnRWxtcygpO2lmKFwiZWRpdFwiPT10aGlzLnNldHRpbmdzLmJhY2tzcGFjZSYmZClyZXR1cm4gaT0xPT1yLmFuY2hvck5vZGUubm9kZVR5cGU/bnVsbDpyLmFuY2hvck5vZGUucHJldmlvdXNFbGVtZW50U2libGluZyxzZXRUaW1lb3V0KHRoaXMuZWRpdFRhZy5iaW5kKHRoaXMpLDAsaSksdm9pZCB0LnByZXZlbnREZWZhdWx0KCk7aWYoZygpJiZkKXJldHVybiBhPW8oZCksZC5oYXNBdHRyaWJ1dGUoXCJyZWFkb25seVwiKXx8ZC5yZW1vdmUoKSx0aGlzLkRPTS5pbnB1dC5mb2N1cygpLHZvaWQgc2V0VGltZW91dCgoKCk9Pnt0aGlzLnBsYWNlQ2FyZXRBZnRlck5vZGUoYSksdGhpcy5ET00uaW5wdXQuY2xpY2soKX0pKTtpZihcIkJSXCI9PXIuYW5jaG9yTm9kZS5ub2RlTmFtZSlyZXR1cm47aWYoKGx8fGQpJiYxPT1yLmFuY2hvck5vZGUubm9kZVR5cGU/cz0wPT1yLmFuY2hvck9mZnNldD9sP3BbMF06bnVsbDpwW3IuYW5jaG9yT2Zmc2V0LTFdOmw/cz1yLmFuY2hvck5vZGUubmV4dEVsZW1lbnRTaWJsaW5nOmQmJihzPWQpLDM9PXIuYW5jaG9yTm9kZS5ub2RlVHlwZSYmIXIuYW5jaG9yTm9kZS5ub2RlVmFsdWUmJnIuYW5jaG9yTm9kZS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nJiZ0LnByZXZlbnREZWZhdWx0KCksKGR8fGwpJiYhdGhpcy5zZXR0aW5ncy5iYWNrc3BhY2UpcmV0dXJuIHZvaWQgdC5wcmV2ZW50RGVmYXVsdCgpO2lmKFwiUmFuZ2VcIiE9ci50eXBlJiYhci5hbmNob3JPZmZzZXQmJnIuYW5jaG9yTm9kZT09dGhpcy5ET00uaW5wdXQmJlwiRGVsZXRlXCIhPXQua2V5KXJldHVybiB2b2lkIHQucHJldmVudERlZmF1bHQoKTtpZihcIlJhbmdlXCIhPXIudHlwZSYmcyYmcy5oYXNBdHRyaWJ1dGUoXCJyZWFkb25seVwiKSlyZXR1cm4gdm9pZCB0aGlzLnBsYWNlQ2FyZXRBZnRlck5vZGUobyhzKSk7Y2xlYXJUaW1lb3V0KHUpLHU9c2V0VGltZW91dCgoKCk9Pnt2YXIgdD1kb2N1bWVudC5nZXRTZWxlY3Rpb24oKSxlPW4odGhpcy5ET00uaW5wdXQuaW5uZXJIVE1MKSxpPSFsJiZ0LmFuY2hvck5vZGUucHJldmlvdXNFbGVtZW50U2libGluZztpZighZygpJiZlLmxlbmd0aD49aC5sZW5ndGgmJmkmJiFpLmhhc0F0dHJpYnV0ZShcInJlYWRvbmx5XCIpJiYodGhpcy5yZW1vdmVUYWdzKGkpLHRoaXMuZml4RmlyZWZveExhc3RUYWdOb0NhcmV0KCksMj09dGhpcy5ET00uaW5wdXQuY2hpbGRyZW4ubGVuZ3RoJiZcIkJSXCI9PXRoaXMuRE9NLmlucHV0LmNoaWxkcmVuWzFdLnRhZ05hbWUpKXJldHVybiB0aGlzLkRPTS5pbnB1dC5pbm5lckhUTUw9XCJcIix0aGlzLnZhbHVlLmxlbmd0aD0wLCEwO3RoaXMudmFsdWU9W10ubWFwLmNhbGwocCwoKHQsZSk9Pnt2YXIgaT10aGlzLnRhZ0RhdGEodCk7aWYodC5wYXJlbnROb2RlfHxpLnJlYWRvbmx5KXJldHVybiBpO3RoaXMudHJpZ2dlcihcInJlbW92ZVwiLHt0YWc6dCxpbmRleDplLGRhdGE6aX0pfSkpLmZpbHRlcigodD0+dCkpfSksMjApfXJldHVybiEwfXN3aXRjaCh0LmtleSl7Y2FzZVwiQmFja3NwYWNlXCI6XCJzZWxlY3RcIj09dGhpcy5zZXR0aW5ncy5tb2RlJiZ0aGlzLnNldHRpbmdzLmVuZm9yY2VXaGl0ZWxpc3Q/dGhpcy5yZW1vdmVUYWdzKCk6dGhpcy5zdGF0ZS5kcm9wZG93bi52aXNpYmxlJiZcIm1hbnVhbFwiIT10aGlzLnNldHRpbmdzLmRyb3Bkb3duLnBvc2l0aW9ufHxcIlwiIT1lJiY4MjAzIT1lLmNoYXJDb2RlQXQoMCl8fCghMD09PXRoaXMuc2V0dGluZ3MuYmFja3NwYWNlP3RoaXMucmVtb3ZlVGFncygpOlwiZWRpdFwiPT10aGlzLnNldHRpbmdzLmJhY2tzcGFjZSYmc2V0VGltZW91dCh0aGlzLmVkaXRUYWcuYmluZCh0aGlzKSwwKSk7YnJlYWs7Y2FzZVwiRXNjXCI6Y2FzZVwiRXNjYXBlXCI6aWYodGhpcy5zdGF0ZS5kcm9wZG93bi52aXNpYmxlKXJldHVybjt0LnRhcmdldC5ibHVyKCk7YnJlYWs7Y2FzZVwiRG93blwiOmNhc2VcIkFycm93RG93blwiOnRoaXMuc3RhdGUuZHJvcGRvd24udmlzaWJsZXx8dGhpcy5kcm9wZG93bi5zaG93KCk7YnJlYWs7Y2FzZVwiQXJyb3dSaWdodFwiOntsZXQgdD10aGlzLnN0YXRlLmlucHV0U3VnZ2VzdGlvbnx8dGhpcy5zdGF0ZS5kZEl0ZW1EYXRhO2lmKHQmJnRoaXMuc2V0dGluZ3MuYXV0b0NvbXBsZXRlLnJpZ2h0S2V5KXJldHVybiB2b2lkIHRoaXMuYWRkVGFncyhbdF0sITApO2JyZWFrfWNhc2VcIlRhYlwiOntsZXQgaT1cInNlbGVjdFwiPT10aGlzLnNldHRpbmdzLm1vZGU7aWYoIWV8fGkpcmV0dXJuITA7dC5wcmV2ZW50RGVmYXVsdCgpfWNhc2VcIkVudGVyXCI6aWYodGhpcy5zdGF0ZS5kcm9wZG93bi52aXNpYmxlfHwyMjk9PXQua2V5Q29kZSlyZXR1cm47dC5wcmV2ZW50RGVmYXVsdCgpLHNldFRpbWVvdXQoKCgpPT57dGhpcy5zdGF0ZS5hY3Rpb25zLnNlbGVjdE9wdGlvbnx8dGhpcy5hZGRUYWdzKGUsITApfSkpfX0sb25JbnB1dCh0KXtpZihcIm1peFwiPT10aGlzLnNldHRpbmdzLm1vZGUpcmV0dXJuIHRoaXMuZXZlbnRzLmNhbGxiYWNrcy5vbk1peFRhZ3NJbnB1dC5jYWxsKHRoaXMsdCk7dmFyIGU9dGhpcy5pbnB1dC5ub3JtYWxpemUuY2FsbCh0aGlzKSxpPWUubGVuZ3RoPj10aGlzLnNldHRpbmdzLmRyb3Bkb3duLmVuYWJsZWQscz17dmFsdWU6ZSxpbnB1dEVsbTp0aGlzLkRPTS5pbnB1dH07cy5pc1ZhbGlkPXRoaXMudmFsaWRhdGVUYWcoe3ZhbHVlOmV9KSx0aGlzLnN0YXRlLmlucHV0VGV4dCE9ZSYmKHRoaXMuaW5wdXQuc2V0LmNhbGwodGhpcyxlLCExKSwtMSE9ZS5zZWFyY2godGhpcy5zZXR0aW5ncy5kZWxpbWl0ZXJzKT90aGlzLmFkZFRhZ3MoZSkmJnRoaXMuaW5wdXQuc2V0LmNhbGwodGhpcyk6dGhpcy5zZXR0aW5ncy5kcm9wZG93bi5lbmFibGVkPj0wJiZ0aGlzLmRyb3Bkb3duW2k/XCJzaG93XCI6XCJoaWRlXCJdKGUpLHRoaXMudHJpZ2dlcihcImlucHV0XCIscykpfSxvbk1peFRhZ3NJbnB1dCh0KXt2YXIgZSxpLHMsYSxuLG8scixsLGg9dGhpcy5zZXR0aW5ncyxwPXRoaXMudmFsdWUubGVuZ3RoLGM9dGhpcy5nZXRUYWdFbG1zKCksdT1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksbT13aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKSx2PVtdLm1hcC5jYWxsKGMsKHQ9PnRoaXMudGFnRGF0YSh0KS52YWx1ZSkpO2lmKFwiZGVsZXRlQ29udGVudEJhY2t3YXJkXCI9PXQuaW5wdXRUeXBlJiZnKCkmJnRoaXMuZXZlbnRzLmNhbGxiYWNrcy5vbktleWRvd24uY2FsbCh0aGlzLHt0YXJnZXQ6dC50YXJnZXQsa2V5OlwiQmFja3NwYWNlXCJ9KSx0aGlzLnZhbHVlLnNsaWNlKCkuZm9yRWFjaCgodD0+e3QucmVhZG9ubHkmJiF2LmluY2x1ZGVzKHQudmFsdWUpJiZ1LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlVGFnRWxlbSh0KSl9KSksdS5jaGlsZE5vZGVzLmxlbmd0aCYmKG0uaW5zZXJ0Tm9kZSh1KSx0aGlzLnNldFJhbmdlQXRTdGFydEVuZCghMSx1Lmxhc3RDaGlsZCkpLGMubGVuZ3RoIT1wKXJldHVybiB0aGlzLnZhbHVlPVtdLm1hcC5jYWxsKHRoaXMuZ2V0VGFnRWxtcygpLCh0PT50aGlzLnRhZ0RhdGEodCkpKSx2b2lkIHRoaXMudXBkYXRlKHt3aXRob3V0Q2hhbmdlRXZlbnQ6ITB9KTtpZih0aGlzLmhhc01heFRhZ3MoKSlyZXR1cm4hMDtpZih3aW5kb3cuZ2V0U2VsZWN0aW9uJiYobz13aW5kb3cuZ2V0U2VsZWN0aW9uKCkpLnJhbmdlQ291bnQ+MCYmMz09by5hbmNob3JOb2RlLm5vZGVUeXBlKXtpZigobT1vLmdldFJhbmdlQXQoMCkuY2xvbmVSYW5nZSgpKS5jb2xsYXBzZSghMCksbS5zZXRTdGFydChvLmZvY3VzTm9kZSwwKSxzPShlPW0udG9TdHJpbmcoKS5zbGljZSgwLG0uZW5kT2Zmc2V0KSkuc3BsaXQoaC5wYXR0ZXJuKS5sZW5ndGgtMSwoaT1lLm1hdGNoKGgucGF0dGVybikpJiYoYT1lLnNsaWNlKGUubGFzdEluZGV4T2YoaVtpLmxlbmd0aC0xXSkpKSxhKXtpZih0aGlzLnN0YXRlLmFjdGlvbnMuQXJyb3dMZWZ0PSExLHRoaXMuc3RhdGUudGFnPXtwcmVmaXg6YS5tYXRjaChoLnBhdHRlcm4pWzBdLHZhbHVlOmEucmVwbGFjZShoLnBhdHRlcm4sXCJcIil9LHRoaXMuc3RhdGUudGFnLmJhc2VPZmZzZXQ9by5iYXNlT2Zmc2V0LXRoaXMuc3RhdGUudGFnLnZhbHVlLmxlbmd0aCxsPXRoaXMuc3RhdGUudGFnLnZhbHVlLm1hdGNoKGguZGVsaW1pdGVycykpcmV0dXJuIHRoaXMuc3RhdGUudGFnLnZhbHVlPXRoaXMuc3RhdGUudGFnLnZhbHVlLnJlcGxhY2UoaC5kZWxpbWl0ZXJzLFwiXCIpLHRoaXMuc3RhdGUudGFnLmRlbGltaXRlcnM9bFswXSx0aGlzLmFkZFRhZ3ModGhpcy5zdGF0ZS50YWcudmFsdWUsaC5kcm9wZG93bi5jbGVhck9uU2VsZWN0KSx2b2lkIHRoaXMuZHJvcGRvd24uaGlkZSgpO249dGhpcy5zdGF0ZS50YWcudmFsdWUubGVuZ3RoPj1oLmRyb3Bkb3duLmVuYWJsZWQ7dHJ5e3I9KHI9dGhpcy5zdGF0ZS5mbGFnZ2VkVGFnc1t0aGlzLnN0YXRlLnRhZy5iYXNlT2Zmc2V0XSkucHJlZml4PT10aGlzLnN0YXRlLnRhZy5wcmVmaXgmJnIudmFsdWVbMF09PXRoaXMuc3RhdGUudGFnLnZhbHVlWzBdLHRoaXMuc3RhdGUuZmxhZ2dlZFRhZ3NbdGhpcy5zdGF0ZS50YWcuYmFzZU9mZnNldF0mJiF0aGlzLnN0YXRlLnRhZy52YWx1ZSYmZGVsZXRlIHRoaXMuc3RhdGUuZmxhZ2dlZFRhZ3NbdGhpcy5zdGF0ZS50YWcuYmFzZU9mZnNldF19Y2F0Y2godCl7fShyfHxzPHRoaXMuc3RhdGUubWl4TW9kZS5tYXRjaGVkUGF0dGVybkNvdW50KSYmKG49ITEpfWVsc2UgdGhpcy5zdGF0ZS5mbGFnZ2VkVGFncz17fTt0aGlzLnN0YXRlLm1peE1vZGUubWF0Y2hlZFBhdHRlcm5Db3VudD1zfXNldFRpbWVvdXQoKCgpPT57dGhpcy51cGRhdGUoe3dpdGhvdXRDaGFuZ2VFdmVudDohMH0pLHRoaXMudHJpZ2dlcihcImlucHV0XCIsZCh7fSx0aGlzLnN0YXRlLnRhZyx7dGV4dENvbnRlbnQ6dGhpcy5ET00uaW5wdXQudGV4dENvbnRlbnR9KSksdGhpcy5zdGF0ZS50YWcmJnRoaXMuZHJvcGRvd25bbj9cInNob3dcIjpcImhpZGVcIl0odGhpcy5zdGF0ZS50YWcudmFsdWUpfSksMTApfSxvbklucHV0SUUodCl7dmFyIGU9dGhpcztzZXRUaW1lb3V0KChmdW5jdGlvbigpe2UuZXZlbnRzLmNhbGxiYWNrcy5vbklucHV0LmNhbGwoZSx0KX0pKX0sb25DbGlja1Njb3BlKHQpe3ZhciBlPXRoaXMuc2V0dGluZ3MsaT10LnRhcmdldC5jbG9zZXN0KFwiLlwiK2UuY2xhc3NOYW1lcy50YWcpLHM9K25ldyBEYXRlLXRoaXMuc3RhdGUuaGFzRm9jdXM7aWYodC50YXJnZXQhPXRoaXMuRE9NLnNjb3BlKXtpZighdC50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKGUuY2xhc3NOYW1lcy50YWdYKSlyZXR1cm4gaT8odGhpcy50cmlnZ2VyKFwiY2xpY2tcIix7dGFnOmksaW5kZXg6dGhpcy5nZXROb2RlSW5kZXgoaSksZGF0YTp0aGlzLnRhZ0RhdGEoaSksb3JpZ2luYWxFdmVudDp0aGlzLmNsb25lRXZlbnQodCl9KSx2b2lkKDEhPT1lLmVkaXRUYWdzJiYxIT09ZS5lZGl0VGFncy5jbGlja3N8fHRoaXMuZXZlbnRzLmNhbGxiYWNrcy5vbkRvdWJsZUNsaWNrU2NvcGUuY2FsbCh0aGlzLHQpKSk6dm9pZCh0LnRhcmdldD09dGhpcy5ET00uaW5wdXQmJihcIm1peFwiPT1lLm1vZGUmJnRoaXMuZml4RmlyZWZveExhc3RUYWdOb0NhcmV0KCkscz41MDApP3RoaXMuc3RhdGUuZHJvcGRvd24udmlzaWJsZT90aGlzLmRyb3Bkb3duLmhpZGUoKTowPT09ZS5kcm9wZG93bi5lbmFibGVkJiZcIm1peFwiIT1lLm1vZGUmJnRoaXMuZHJvcGRvd24uc2hvdygpOlwic2VsZWN0XCI9PWUubW9kZSYmIXRoaXMuc3RhdGUuZHJvcGRvd24udmlzaWJsZSYmdGhpcy5kcm9wZG93bi5zaG93KCkpO3RoaXMucmVtb3ZlVGFncyh0LnRhcmdldC5wYXJlbnROb2RlKX1lbHNlIHRoaXMuc3RhdGUuaGFzRm9jdXN8fHRoaXMuRE9NLmlucHV0LmZvY3VzKCl9LG9uUGFzdGUodCl7dC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBlLGkscz10aGlzLnNldHRpbmdzO2lmKFwic2VsZWN0XCI9PXMubW9kZSYmcy5lbmZvcmNlV2hpdGVsaXN0fHwhcy51c2VySW5wdXQpcmV0dXJuITE7cy5yZWFkb25seXx8KGU9dC5jbGlwYm9hcmREYXRhfHx3aW5kb3cuY2xpcGJvYXJkRGF0YSxpPWUuZ2V0RGF0YShcIlRleHRcIikscy5ob29rcy5iZWZvcmVQYXN0ZSh0LHt0YWdpZnk6dGhpcyxwYXN0ZWRUZXh0OmksY2xpcGJvYXJkRGF0YTplfSkudGhlbigoZT0+e3ZvaWQgMD09PWUmJihlPWkpLGUmJih0aGlzLmluamVjdEF0Q2FyZXQoZSx3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKSksXCJtaXhcIj09dGhpcy5zZXR0aW5ncy5tb2RlP3RoaXMuZXZlbnRzLmNhbGxiYWNrcy5vbk1peFRhZ3NJbnB1dC5jYWxsKHRoaXMsdCk6dGhpcy5zZXR0aW5ncy5wYXN0ZUFzVGFncz90aGlzLmFkZFRhZ3MoZSwhMCk6dGhpcy5zdGF0ZS5pbnB1dFRleHQ9ZSl9KSkuY2F0Y2goKHQ9PnQpKSl9LG9uRWRpdFRhZ0lucHV0KHQsZSl7dmFyIGk9dC5jbG9zZXN0KFwiLlwiK3RoaXMuc2V0dGluZ3MuY2xhc3NOYW1lcy50YWcpLHM9dGhpcy5nZXROb2RlSW5kZXgoaSksYT10aGlzLnRhZ0RhdGEoaSksbj10aGlzLmlucHV0Lm5vcm1hbGl6ZS5jYWxsKHRoaXMsdCksbz1pLmlubmVySFRNTCE9aS5fX3RhZ2lmeVRhZ0RhdGEuX19vcmlnaW5hbEhUTUwscj10aGlzLnZhbGlkYXRlVGFnKHtbdGhpcy5zZXR0aW5ncy50YWdUZXh0UHJvcF06bn0pO298fCEwIT09dC5vcmlnaW5hbElzVmFsaWR8fChyPSEwKSxpLmNsYXNzTGlzdC50b2dnbGUodGhpcy5zZXR0aW5ncy5jbGFzc05hbWVzLnRhZ0ludmFsaWQsITAhPT1yKSxhLl9faXNWYWxpZD1yLGkudGl0bGU9ITA9PT1yP2EudGl0bGV8fGEudmFsdWU6cixuLmxlbmd0aD49dGhpcy5zZXR0aW5ncy5kcm9wZG93bi5lbmFibGVkJiYodGhpcy5zdGF0ZS5lZGl0aW5nJiYodGhpcy5zdGF0ZS5lZGl0aW5nLnZhbHVlPW4pLHRoaXMuZHJvcGRvd24uc2hvdyhuKSksdGhpcy50cmlnZ2VyKFwiZWRpdDppbnB1dFwiLHt0YWc6aSxpbmRleDpzLGRhdGE6ZCh7fSx0aGlzLnZhbHVlW3NdLHtuZXdWYWx1ZTpufSksb3JpZ2luYWxFdmVudDp0aGlzLmNsb25lRXZlbnQoZSl9KX0sb25FZGl0VGFnRm9jdXModCl7dGhpcy5zdGF0ZS5lZGl0aW5nPXtzY29wZTp0LGlucHV0OnQucXVlcnlTZWxlY3RvcihcIltjb250ZW50ZWRpdGFibGVdXCIpfX0sb25FZGl0VGFnQmx1cih0KXtpZih0aGlzLnN0YXRlLmhhc0ZvY3VzfHx0aGlzLnRvZ2dsZUZvY3VzQ2xhc3MoKSx0aGlzLkRPTS5zY29wZS5jb250YWlucyh0KSl7dmFyIGUsaSxzPXRoaXMuc2V0dGluZ3MsYT10LmNsb3Nlc3QoXCIuXCIrcy5jbGFzc05hbWVzLnRhZyksbj10aGlzLmlucHV0Lm5vcm1hbGl6ZS5jYWxsKHRoaXMsdCksbz10aGlzLnRhZ0RhdGEoYSkuX19vcmlnaW5hbERhdGEscj1hLmlubmVySFRNTCE9YS5fX3RhZ2lmeVRhZ0RhdGEuX19vcmlnaW5hbEhUTUwsbD10aGlzLnZhbGlkYXRlVGFnKHtbcy50YWdUZXh0UHJvcF06bn0pO2lmKG4paWYocil7aWYoZT10aGlzLmhhc01heFRhZ3MoKSxpPXRoaXMuZ2V0V2hpdGVsaXN0SXRlbShuKXx8ZCh7fSxvLHtbcy50YWdUZXh0UHJvcF06bix2YWx1ZTpuLF9faXNWYWxpZDpsfSkscy50cmFuc2Zvcm1UYWcuY2FsbCh0aGlzLGksbyksITAhPT0obD0hZSYmdGhpcy52YWxpZGF0ZVRhZyh7W3MudGFnVGV4dFByb3BdOmlbcy50YWdUZXh0UHJvcF19KSkpe2lmKHRoaXMudHJpZ2dlcihcImludmFsaWRcIix7ZGF0YTppLHRhZzphLG1lc3NhZ2U6bH0pLHMuZWRpdFRhZ3Mua2VlcEludmFsaWQpcmV0dXJuO3Mua2VlcEludmFsaWRUYWdzP2kuX19pc1ZhbGlkPWw6aT1vfWVsc2Ugcy5rZWVwSW52YWxpZFRhZ3MmJihkZWxldGUgaS50aXRsZSxkZWxldGUgaVtcImFyaWEtaW52YWxpZFwiXSxkZWxldGUgaS5jbGFzcyk7dGhpcy5vbkVkaXRUYWdEb25lKGEsaSl9ZWxzZSB0aGlzLm9uRWRpdFRhZ0RvbmUoYSxvKTtlbHNlIHRoaXMub25FZGl0VGFnRG9uZShhKX19LG9uRWRpdFRhZ2tleWRvd24odCxlKXtzd2l0Y2godGhpcy50cmlnZ2VyKFwiZWRpdDprZXlkb3duXCIse29yaWdpbmFsRXZlbnQ6dGhpcy5jbG9uZUV2ZW50KHQpfSksdC5rZXkpe2Nhc2VcIkVzY1wiOmNhc2VcIkVzY2FwZVwiOmUuaW5uZXJIVE1MPWUuX190YWdpZnlUYWdEYXRhLl9fb3JpZ2luYWxIVE1MO2Nhc2VcIkVudGVyXCI6Y2FzZVwiVGFiXCI6dC5wcmV2ZW50RGVmYXVsdCgpLHQudGFyZ2V0LmJsdXIoKX19LG9uRG91YmxlQ2xpY2tTY29wZSh0KXt2YXIgZSxpLHM9dC50YXJnZXQuY2xvc2VzdChcIi5cIit0aGlzLnNldHRpbmdzLmNsYXNzTmFtZXMudGFnKSxhPXRoaXMuc2V0dGluZ3M7cyYmYS51c2VySW5wdXQmJihlPXMuY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuc2V0dGluZ3MuY2xhc3NOYW1lcy50YWdFZGl0aW5nKSxpPXMuaGFzQXR0cmlidXRlKFwicmVhZG9ubHlcIiksXCJzZWxlY3RcIj09YS5tb2RlfHxhLnJlYWRvbmx5fHxlfHxpfHwhdGhpcy5zZXR0aW5ncy5lZGl0VGFnc3x8dGhpcy5lZGl0VGFnKHMpLHRoaXMudG9nZ2xlRm9jdXNDbGFzcyghMCksdGhpcy50cmlnZ2VyKFwiZGJsY2xpY2tcIix7dGFnOnMsaW5kZXg6dGhpcy5nZXROb2RlSW5kZXgocyksZGF0YTp0aGlzLnRhZ0RhdGEocyl9KSl9fX07ZnVuY3Rpb24gdyh0LGUpe3JldHVybiB0P3QucHJldmlvdXNFbGVtZW50U2libGluZyYmdC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLmNsYXNzTGlzdC5jb250YWlucyhcInRhZ2lmeVwiKT8oY29uc29sZS53YXJuKFwiVGFnaWZ5OiBcIixcImlucHV0IGVsZW1lbnQgaXMgYWxyZWFkeSBUYWdpZmllZFwiLHQpLHRoaXMpOihkKHRoaXMsZnVuY3Rpb24odCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoXCJcIik7ZnVuY3Rpb24gaSh0LGkscyl7cyYmaS5zcGxpdCgvXFxzKy9nKS5mb3JFYWNoKChpPT5lW3QrXCJFdmVudExpc3RlbmVyXCJdLmNhbGwoZSxpLHMpKSl9cmV0dXJue29mZih0LGUpe3JldHVybiBpKFwicmVtb3ZlXCIsdCxlKSx0aGlzfSxvbih0LGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiZpKFwiYWRkXCIsdCxlKSx0aGlzfSx0cmlnZ2VyKGkscyxhKXt2YXIgbjtpZihhPWF8fHtjbG9uZURhdGE6ITB9LGkpaWYodC5zZXR0aW5ncy5pc0pRdWVyeVBsdWdpbilcInJlbW92ZVwiPT1pJiYoaT1cInJlbW92ZVRhZ1wiKSxqUXVlcnkodC5ET00ub3JpZ2luYWxJbnB1dCkudHJpZ2dlckhhbmRsZXIoaSxbc10pO2Vsc2V7dHJ5e3ZhciBvPVwib2JqZWN0XCI9PXR5cGVvZiBzP3M6e3ZhbHVlOnN9O2lmKChvPWEuY2xvbmVEYXRhP2Qoe30sbyk6bykudGFnaWZ5PXRoaXMscyBpbnN0YW5jZW9mIE9iamVjdClmb3IodmFyIHIgaW4gcylzW3JdaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmKG9bcl09c1tyXSk7bj1uZXcgQ3VzdG9tRXZlbnQoaSx7ZGV0YWlsOm99KX1jYXRjaCh0KXtjb25zb2xlLndhcm4odCl9ZS5kaXNwYXRjaEV2ZW50KG4pfX19fSh0aGlzKSksdGhpcy5pc0ZpcmVmb3g9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIEluc3RhbGxUcmlnZ2VyLHRoaXMuaXNJRT13aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRNb2RlLHRoaXMuYXBwbHlTZXR0aW5ncyh0LGV8fHt9KSx0aGlzLnN0YXRlPXtpbnB1dFRleHQ6XCJcIixlZGl0aW5nOiExLGFjdGlvbnM6e30sbWl4TW9kZTp7fSxkcm9wZG93bjp7fSxmbGFnZ2VkVGFnczp7fX0sdGhpcy52YWx1ZT1bXSx0aGlzLmxpc3RlbmVycz17fSx0aGlzLkRPTT17fSx0aGlzLmJ1aWxkKHQpLGMuY2FsbCh0aGlzKSx0aGlzLmdldENTU1ZhcnMoKSx0aGlzLmxvYWRPcmlnaW5hbFZhbHVlcygpLHRoaXMuZXZlbnRzLmN1c3RvbUJpbmRpbmcuY2FsbCh0aGlzKSx0aGlzLmV2ZW50cy5iaW5kaW5nLmNhbGwodGhpcyksdm9pZCh0LmF1dG9mb2N1cyYmdGhpcy5ET00uaW5wdXQuZm9jdXMoKSkpOihjb25zb2xlLndhcm4oXCJUYWdpZnk6IFwiLFwiaW5wdXQgZWxlbWVudCBub3QgZm91bmRcIix0KSx0aGlzKX1yZXR1cm4gdy5wcm90b3R5cGU9e19kcm9wZG93bjptLGN1c3RvbUV2ZW50c0xpc3Q6W1wiY2hhbmdlXCIsXCJhZGRcIixcInJlbW92ZVwiLFwiaW52YWxpZFwiLFwiaW5wdXRcIixcImNsaWNrXCIsXCJrZXlkb3duXCIsXCJmb2N1c1wiLFwiYmx1clwiLFwiZWRpdDppbnB1dFwiLFwiZWRpdDpiZWZvcmVVcGRhdGVcIixcImVkaXQ6dXBkYXRlZFwiLFwiZWRpdDpzdGFydFwiLFwiZWRpdDprZXlkb3duXCIsXCJkcm9wZG93bjpzaG93XCIsXCJkcm9wZG93bjpoaWRlXCIsXCJkcm9wZG93bjpzZWxlY3RcIixcImRyb3Bkb3duOnVwZGF0ZWRcIixcImRyb3Bkb3duOm5vTWF0Y2hcIixcImRyb3Bkb3duOnNjcm9sbFwiXSxkYXRhUHJvcHM6W1wiX19pc1ZhbGlkXCIsXCJfX3JlbW92ZWRcIixcIl9fb3JpZ2luYWxEYXRhXCIsXCJfX29yaWdpbmFsSFRNTFwiLFwiX190YWdJZFwiXSx0cmltKHQpe3JldHVybiB0aGlzLnNldHRpbmdzLnRyaW0mJnQmJlwic3RyaW5nXCI9PXR5cGVvZiB0P3QudHJpbSgpOnR9LHBhcnNlSFRNTDpmdW5jdGlvbih0KXtyZXR1cm4obmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKHQudHJpbSgpLFwidGV4dC9odG1sXCIpLmJvZHkuZmlyc3RFbGVtZW50Q2hpbGR9LHRlbXBsYXRlczpmLHBhcnNlVGVtcGxhdGUodCxlKXtyZXR1cm4gdD10aGlzLnNldHRpbmdzLnRlbXBsYXRlc1t0XXx8dCx0aGlzLnBhcnNlSFRNTCh0LmFwcGx5KHRoaXMsZSkpfSxzZXQgd2hpdGVsaXN0KHQpe3RoaXMuc2V0dGluZ3Mud2hpdGVsaXN0PXQmJkFycmF5LmlzQXJyYXkodCk/dDpbXX0sZ2V0IHdoaXRlbGlzdCgpe3JldHVybiB0aGlzLnNldHRpbmdzLndoaXRlbGlzdH0sYXBwbHlTZXR0aW5ncyh0LGUpe3AudGVtcGxhdGVzPXRoaXMudGVtcGxhdGVzO3ZhciBzPXRoaXMuc2V0dGluZ3M9ZCh7fSxwLGUpO3MuZGlzYWJsZWQ9dC5oYXNBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiKSxzLnJlYWRvbmx5PXQuaGFzQXR0cmlidXRlKFwicmVhZG9ubHlcIikscy5wbGFjZWhvbGRlcj10LmdldEF0dHJpYnV0ZShcInBsYWNlaG9sZGVyXCIpfHxzLnBsYWNlaG9sZGVyfHxcIlwiLHMucmVxdWlyZWQ9dC5oYXNBdHRyaWJ1dGUoXCJyZXF1aXJlZFwiKTtmb3IobGV0IHQgaW4gcy5jbGFzc05hbWVzKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLmNsYXNzTmFtZXMsdCtcIlNlbGVjdG9yXCIse2dldCgpe3JldHVyblwiLlwiK3RoaXNbdF0uc3BsaXQoXCIgXCIpWzBdfX0pO2lmKHRoaXMuaXNJRSYmKHMuYXV0b0NvbXBsZXRlPSExKSxbXCJ3aGl0ZWxpc3RcIixcImJsYWNrbGlzdFwiXS5mb3JFYWNoKChlPT57dmFyIGk9dC5nZXRBdHRyaWJ1dGUoXCJkYXRhLVwiK2UpO2kmJihpPWkuc3BsaXQocy5kZWxpbWl0ZXJzKSlpbnN0YW5jZW9mIEFycmF5JiYoc1tlXT1pKX0pKSxcImF1dG9Db21wbGV0ZVwiaW4gZSYmIWwoZS5hdXRvQ29tcGxldGUpJiYocy5hdXRvQ29tcGxldGU9cC5hdXRvQ29tcGxldGUscy5hdXRvQ29tcGxldGUuZW5hYmxlZD1lLmF1dG9Db21wbGV0ZSksXCJtaXhcIj09cy5tb2RlJiYocy5hdXRvQ29tcGxldGUucmlnaHRLZXk9ITAscy5kZWxpbWl0ZXJzPWUuZGVsaW1pdGVyc3x8bnVsbCxzLnRhZ1RleHRQcm9wJiYhcy5kcm9wZG93bi5zZWFyY2hLZXlzLmluY2x1ZGVzKHMudGFnVGV4dFByb3ApJiZzLmRyb3Bkb3duLnNlYXJjaEtleXMucHVzaChzLnRhZ1RleHRQcm9wKSksdC5wYXR0ZXJuKXRyeXtzLnBhdHRlcm49bmV3IFJlZ0V4cCh0LnBhdHRlcm4pfWNhdGNoKHQpe31pZih0aGlzLnNldHRpbmdzLmRlbGltaXRlcnMpdHJ5e3MuZGVsaW1pdGVycz1uZXcgUmVnRXhwKHRoaXMuc2V0dGluZ3MuZGVsaW1pdGVycyxcImdcIil9Y2F0Y2godCl7fXRoaXMuVEVYVFM9aShpKHt9LHYpLHMudGV4dHN8fHt9KSxcInNlbGVjdFwiIT1zLm1vZGUmJnMudXNlcklucHV0fHwocy5kcm9wZG93bi5lbmFibGVkPTApLHMuZHJvcGRvd24uYXBwZW5kVGFyZ2V0PWUuZHJvcGRvd24mJmUuZHJvcGRvd24uYXBwZW5kVGFyZ2V0P2UuZHJvcGRvd24uYXBwZW5kVGFyZ2V0OmRvY3VtZW50LmJvZHl9LGdldEF0dHJpYnV0ZXModCl7dmFyIGUsaT10aGlzLmdldEN1c3RvbUF0dHJpYnV0ZXModCkscz1cIlwiO2ZvcihlIGluIGkpcys9XCIgXCIrZSsodm9pZCAwIT09dFtlXT9gPVwiJHtpW2VdfVwiYDpcIlwiKTtyZXR1cm4gc30sZ2V0Q3VzdG9tQXR0cmlidXRlcyh0KXtpZighbCh0KSlyZXR1cm5cIlwiO3ZhciBlLGk9e307Zm9yKGUgaW4gdClcIl9fXCIhPWUuc2xpY2UoMCwyKSYmXCJjbGFzc1wiIT1lJiZ0Lmhhc093blByb3BlcnR5KGUpJiZ2b2lkIDAhPT10W2VdJiYoaVtlXT1yKHRbZV0pKTtyZXR1cm4gaX0sc2V0U3RhdGVTZWxlY3Rpb24oKXt2YXIgdD13aW5kb3cuZ2V0U2VsZWN0aW9uKCksZT17YW5jaG9yT2Zmc2V0OnQuYW5jaG9yT2Zmc2V0LGFuY2hvck5vZGU6dC5hbmNob3JOb2RlLHJhbmdlOnQuZ2V0UmFuZ2VBdCYmdC5yYW5nZUNvdW50JiZ0LmdldFJhbmdlQXQoMCl9O3JldHVybiB0aGlzLnN0YXRlLnNlbGVjdGlvbj1lLGV9LGdldENhcmV0R2xvYmFsUG9zaXRpb24oKXtjb25zdCB0PWRvY3VtZW50LmdldFNlbGVjdGlvbigpO2lmKHQucmFuZ2VDb3VudCl7Y29uc3QgZT10LmdldFJhbmdlQXQoMCksaT1lLnN0YXJ0Q29udGFpbmVyLHM9ZS5zdGFydE9mZnNldDtsZXQgYSxuO2lmKHM+MClyZXR1cm4gbj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLG4uc2V0U3RhcnQoaSxzLTEpLG4uc2V0RW5kKGkscyksYT1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHtsZWZ0OmEucmlnaHQsdG9wOmEudG9wLGJvdHRvbTphLmJvdHRvbX07aWYoaS5nZXRCb3VuZGluZ0NsaWVudFJlY3QpcmV0dXJuIGkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9cmV0dXJue2xlZnQ6LTk5OTksdG9wOi05OTk5fX0sZ2V0Q1NTVmFycygpe3ZhciB0PWdldENvbXB1dGVkU3R5bGUodGhpcy5ET00uc2NvcGUsbnVsbCk7dmFyIGU7dGhpcy5DU1NWYXJzPXt0YWdIaWRlVHJhbnNpdGlvbjooKHt2YWx1ZTp0LHVuaXQ6ZX0pPT5cInNcIj09ZT8xZTMqdDp0KShmdW5jdGlvbih0KXtpZighdClyZXR1cm57fTt2YXIgZT0odD10LnRyaW0oKS5zcGxpdChcIiBcIilbMF0pLnNwbGl0KC9cXGQrL2cpLmZpbHRlcigodD0+dCkpLnBvcCgpLnRyaW0oKTtyZXR1cm57dmFsdWU6K3Quc3BsaXQoZSkuZmlsdGVyKCh0PT50KSlbMF0udHJpbSgpLHVuaXQ6ZX19KChlPVwidGFnLWhpZGUtdHJhbnNpdGlvblwiLHQuZ2V0UHJvcGVydHlWYWx1ZShcIi0tXCIrZSkpKSl9fSxidWlsZCh0KXt2YXIgZT10aGlzLkRPTTt0aGlzLnNldHRpbmdzLm1peE1vZGUuaW50ZWdyYXRlZD8oZS5vcmlnaW5hbElucHV0PW51bGwsZS5zY29wZT10LGUuaW5wdXQ9dCk6KGUub3JpZ2luYWxJbnB1dD10LGUuc2NvcGU9dGhpcy5wYXJzZVRlbXBsYXRlKFwid3JhcHBlclwiLFt0LHRoaXMuc2V0dGluZ3NdKSxlLmlucHV0PWUuc2NvcGUucXVlcnlTZWxlY3Rvcih0aGlzLnNldHRpbmdzLmNsYXNzTmFtZXMuaW5wdXRTZWxlY3RvciksdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLnNjb3BlLHQpKX0sZGVzdHJveSgpe3RoaXMuZXZlbnRzLnVuYmluZEdsb2JhbC5jYWxsKHRoaXMpLHRoaXMuRE9NLnNjb3BlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5ET00uc2NvcGUpLHRoaXMuZHJvcGRvd24uaGlkZSghMCksY2xlYXJUaW1lb3V0KHRoaXMuZHJvcGRvd25IaWRlX19iaW5kRXZlbnRzVGltZW91dCl9LGxvYWRPcmlnaW5hbFZhbHVlcyh0KXt2YXIgZSxpPXRoaXMuc2V0dGluZ3M7aWYodm9pZCAwPT09dCYmKHQ9aS5taXhNb2RlLmludGVncmF0ZWQ/dGhpcy5ET00uaW5wdXQudGV4dENvbnRlbnQ6dGhpcy5ET00ub3JpZ2luYWxJbnB1dC52YWx1ZSksdGhpcy5yZW1vdmVBbGxUYWdzKHt3aXRob3V0Q2hhbmdlRXZlbnQ6ITB9KSx0KWlmKFwibWl4XCI9PWkubW9kZSl0aGlzLnBhcnNlTWl4VGFncyh0LnRyaW0oKSksKGU9dGhpcy5ET00uaW5wdXQubGFzdENoaWxkKSYmXCJCUlwiPT1lLnRhZ05hbWV8fHRoaXMuRE9NLmlucHV0Lmluc2VydEFkamFjZW50SFRNTChcImJlZm9yZWVuZFwiLFwiPGJyPlwiKTtlbHNle3RyeXtKU09OLnBhcnNlKHQpaW5zdGFuY2VvZiBBcnJheSYmKHQ9SlNPTi5wYXJzZSh0KSl9Y2F0Y2godCl7fXRoaXMuYWRkVGFncyh0KS5mb3JFYWNoKCh0PT50JiZ0LmNsYXNzTGlzdC5hZGQoaS5jbGFzc05hbWVzLnRhZ05vQW5pbWF0aW9uKSkpfWVsc2UgdGhpcy5wb3N0VXBkYXRlKCk7dGhpcy5zdGF0ZS5sYXN0T3JpZ2luYWxWYWx1ZVJlcG9ydGVkPWkubWl4TW9kZS5pbnRlZ3JhdGVkP1wiXCI6dGhpcy5ET00ub3JpZ2luYWxJbnB1dC52YWx1ZSx0aGlzLnN0YXRlLmxvYWRlZE9yaWdpbmFsVmFsdWVzPSEwfSxjbG9uZUV2ZW50KHQpe3ZhciBlPXt9O2Zvcih2YXIgaSBpbiB0KWVbaV09dFtpXTtyZXR1cm4gZX0sbG9hZGluZyh0KXtyZXR1cm4gdGhpcy5zdGF0ZS5pc0xvYWRpbmc9dCx0aGlzLkRPTS5zY29wZS5jbGFzc0xpc3RbdD9cImFkZFwiOlwicmVtb3ZlXCJdKHRoaXMuc2V0dGluZ3MuY2xhc3NOYW1lcy5zY29wZUxvYWRpbmcpLHRoaXN9LHRhZ0xvYWRpbmcodCxlKXtyZXR1cm4gdCYmdC5jbGFzc0xpc3RbZT9cImFkZFwiOlwicmVtb3ZlXCJdKHRoaXMuc2V0dGluZ3MuY2xhc3NOYW1lcy50YWdMb2FkaW5nKSx0aGlzfSx0b2dnbGVDbGFzcyh0LGUpe1wic3RyaW5nXCI9PXR5cGVvZiB0JiZ0aGlzLkRPTS5zY29wZS5jbGFzc0xpc3QudG9nZ2xlKHQsZSl9LHRvZ2dsZUZvY3VzQ2xhc3ModCl7dGhpcy50b2dnbGVDbGFzcyh0aGlzLnNldHRpbmdzLmNsYXNzTmFtZXMuZm9jdXMsISF0KX0sdHJpZ2dlckNoYW5nZUV2ZW50OmZ1bmN0aW9uKCl7aWYoIXRoaXMuc2V0dGluZ3MubWl4TW9kZS5pbnRlZ3JhdGVkKXt2YXIgdD10aGlzLkRPTS5vcmlnaW5hbElucHV0LGU9dGhpcy5zdGF0ZS5sYXN0T3JpZ2luYWxWYWx1ZVJlcG9ydGVkIT09dC52YWx1ZSxpPW5ldyBDdXN0b21FdmVudChcImNoYW5nZVwiLHtidWJibGVzOiEwfSk7ZSYmKHRoaXMuc3RhdGUubGFzdE9yaWdpbmFsVmFsdWVSZXBvcnRlZD10LnZhbHVlLGkuc2ltdWxhdGVkPSEwLHQuX3ZhbHVlVHJhY2tlciYmdC5fdmFsdWVUcmFja2VyLnNldFZhbHVlKE1hdGgucmFuZG9tKCkpLHQuZGlzcGF0Y2hFdmVudChpKSx0aGlzLnRyaWdnZXIoXCJjaGFuZ2VcIix0aGlzLnN0YXRlLmxhc3RPcmlnaW5hbFZhbHVlUmVwb3J0ZWQpLHQudmFsdWU9dGhpcy5zdGF0ZS5sYXN0T3JpZ2luYWxWYWx1ZVJlcG9ydGVkKX19LGV2ZW50czpULGZpeEZpcmVmb3hMYXN0VGFnTm9DYXJldCgpe30scGxhY2VDYXJldEFmdGVyTm9kZSh0KXtpZih0JiZ0LnBhcmVudE5vZGUpe3ZhciBlPXQubmV4dFNpYmxpbmcsaT13aW5kb3cuZ2V0U2VsZWN0aW9uKCkscz1pLmdldFJhbmdlQXQoMCk7aS5yYW5nZUNvdW50JiYocy5zZXRTdGFydEJlZm9yZShlfHx0KSxzLnNldEVuZEJlZm9yZShlfHx0KSxpLnJlbW92ZUFsbFJhbmdlcygpLGkuYWRkUmFuZ2UocykpfX0saW5zZXJ0QWZ0ZXJUYWcodCxlKXtpZihlPWV8fHRoaXMuc2V0dGluZ3MubWl4TW9kZS5pbnNlcnRBZnRlclRhZyx0JiZ0LnBhcmVudE5vZGUmJmUpcmV0dXJuIGU9XCJzdHJpbmdcIj09dHlwZW9mIGU/ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSk6ZSx0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsdC5uZXh0U2libGluZyksZX0sZWRpdFRhZyh0LGUpe3Q9dHx8dGhpcy5nZXRMYXN0VGFnKCksZT1lfHx7fSx0aGlzLmRyb3Bkb3duLmhpZGUoKTt2YXIgaT10aGlzLnNldHRpbmdzO2Z1bmN0aW9uIHMoKXtyZXR1cm4gdC5xdWVyeVNlbGVjdG9yKGkuY2xhc3NOYW1lcy50YWdUZXh0U2VsZWN0b3IpfXZhciBhPXMoKSxuPXRoaXMuZ2V0Tm9kZUluZGV4KHQpLG89dGhpcy50YWdEYXRhKHQpLHI9dGhpcy5ldmVudHMuY2FsbGJhY2tzLGw9dGhpcyxoPSEwO2lmKGEpe2lmKCEobyBpbnN0YW5jZW9mIE9iamVjdCYmXCJlZGl0YWJsZVwiaW4gbyl8fG8uZWRpdGFibGUpcmV0dXJuIGEuc2V0QXR0cmlidXRlKFwiY29udGVudGVkaXRhYmxlXCIsITApLHQuY2xhc3NMaXN0LmFkZChpLmNsYXNzTmFtZXMudGFnRWRpdGluZyksdGhpcy50YWdEYXRhKHQse19fb3JpZ2luYWxEYXRhOmQoe30sbyksX19vcmlnaW5hbEhUTUw6dC5pbm5lckhUTUx9KSxhLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLHIub25FZGl0VGFnRm9jdXMuYmluZCh0aGlzLHQpKSxhLmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsKGZ1bmN0aW9uKCl7c2V0VGltZW91dCgoKCk9PnIub25FZGl0VGFnQmx1ci5jYWxsKGwscygpKSkpfSkpLGEuYWRkRXZlbnRMaXN0ZW5lcihcImlucHV0XCIsci5vbkVkaXRUYWdJbnB1dC5iaW5kKHRoaXMsYSkpLGEuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwoZT0+ci5vbkVkaXRUYWdrZXlkb3duLmNhbGwodGhpcyxlLHQpKSksYS5mb2N1cygpLHRoaXMuc2V0UmFuZ2VBdFN0YXJ0RW5kKCExLGEpLGUuc2tpcFZhbGlkYXRpb258fChoPXRoaXMuZWRpdFRhZ1RvZ2dsZVZhbGlkaXR5KHQpKSxhLm9yaWdpbmFsSXNWYWxpZD1oLHRoaXMudHJpZ2dlcihcImVkaXQ6c3RhcnRcIix7dGFnOnQsaW5kZXg6bixkYXRhOm8saXNWYWxpZDpofSksdGhpc31lbHNlIGNvbnNvbGUud2FybihcIkNhbm5vdCBmaW5kIGVsZW1lbnQgaW4gVGFnIHRlbXBsYXRlOiAuXCIsaS5jbGFzc05hbWVzLnRhZ1RleHRTZWxlY3Rvcil9LGVkaXRUYWdUb2dnbGVWYWxpZGl0eSh0LGUpe3ZhciBpO2lmKGU9ZXx8dGhpcy50YWdEYXRhKHQpKXJldHVybihpPSEoXCJfX2lzVmFsaWRcImluIGUpfHwhMD09PWUuX19pc1ZhbGlkKXx8dGhpcy5yZW1vdmVUYWdzRnJvbVZhbHVlKHQpLHRoaXMudXBkYXRlKCksdC5jbGFzc0xpc3QudG9nZ2xlKHRoaXMuc2V0dGluZ3MuY2xhc3NOYW1lcy50YWdOb3RBbGxvd2VkLCFpKSxlLl9faXNWYWxpZDtjb25zb2xlLndhcm4oXCJ0YWcgaGFzIG5vIGRhdGE6IFwiLHQsZSl9LG9uRWRpdFRhZ0RvbmUodCxlKXtlPWV8fHt9O3ZhciBpPXt0YWc6dD10fHx0aGlzLnN0YXRlLmVkaXRpbmcuc2NvcGUsaW5kZXg6dGhpcy5nZXROb2RlSW5kZXgodCkscHJldmlvdXNEYXRhOnRoaXMudGFnRGF0YSh0KSxkYXRhOmV9O3RoaXMudHJpZ2dlcihcImVkaXQ6YmVmb3JlVXBkYXRlXCIsaSx7Y2xvbmVEYXRhOiExfSksdGhpcy5zdGF0ZS5lZGl0aW5nPSExLGRlbGV0ZSBlLl9fb3JpZ2luYWxEYXRhLGRlbGV0ZSBlLl9fb3JpZ2luYWxIVE1MLHQmJmVbdGhpcy5zZXR0aW5ncy50YWdUZXh0UHJvcF0/KHQ9dGhpcy5yZXBsYWNlVGFnKHQsZSksdGhpcy5lZGl0VGFnVG9nZ2xlVmFsaWRpdHkodCxlKSx0aGlzLnNldHRpbmdzLmExMXkuZm9jdXNhYmxlVGFncyYmdC5mb2N1cygpKTp0JiZ0aGlzLnJlbW92ZVRhZ3ModCksdGhpcy50cmlnZ2VyKFwiZWRpdDp1cGRhdGVkXCIsaSksdGhpcy5kcm9wZG93bi5oaWRlKCksdGhpcy5zZXR0aW5ncy5rZWVwSW52YWxpZFRhZ3MmJnRoaXMucmVDaGVja0ludmFsaWRUYWdzKCl9LHJlcGxhY2VUYWcodCxlKXtlJiZlLnZhbHVlfHwoZT10Ll9fdGFnaWZ5VGFnRGF0YSksZS5fX2lzVmFsaWQmJjEhPWUuX19pc1ZhbGlkJiZkKGUsdGhpcy5nZXRJbnZhbGlkVGFnQXR0cnMoZSxlLl9faXNWYWxpZCkpO3ZhciBpPXRoaXMuY3JlYXRlVGFnRWxlbShlKTtyZXR1cm4gdC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChpLHQpLHRoaXMudXBkYXRlVmFsdWVCeURPTVRhZ3MoKSxpfSx1cGRhdGVWYWx1ZUJ5RE9NVGFncygpe3RoaXMudmFsdWUubGVuZ3RoPTAsW10uZm9yRWFjaC5jYWxsKHRoaXMuZ2V0VGFnRWxtcygpLCh0PT57dC5jbGFzc0xpc3QuY29udGFpbnModGhpcy5zZXR0aW5ncy5jbGFzc05hbWVzLnRhZ05vdEFsbG93ZWQuc3BsaXQoXCIgXCIpWzBdKXx8dGhpcy52YWx1ZS5wdXNoKHRoaXMudGFnRGF0YSh0KSl9KSksdGhpcy51cGRhdGUoKX0sc2V0UmFuZ2VBdFN0YXJ0RW5kKHQsZSl7dD1cIm51bWJlclwiPT10eXBlb2YgdD90OiEhdCxlPShlPWV8fHRoaXMuRE9NLmlucHV0KS5sYXN0Q2hpbGR8fGU7dmFyIGk9ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7dHJ5e2kucmFuZ2VDb3VudD49MSYmW1wiU3RhcnRcIixcIkVuZFwiXS5mb3JFYWNoKChzPT5pLmdldFJhbmdlQXQoMClbXCJzZXRcIitzXShlLHR8fGUubGVuZ3RoKSkpfWNhdGNoKHQpe2NvbnNvbGUud2FybihcIlRhZ2lmeTogXCIsdCl9fSxpbmplY3RBdENhcmV0KHQsZSl7aWYoZT1lfHx0aGlzLnN0YXRlLnNlbGVjdGlvbi5yYW5nZSlyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdCYmKHQ9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodCkpLGUuZGVsZXRlQ29udGVudHMoKSxlLmluc2VydE5vZGUodCksdGhpcy5zZXRSYW5nZUF0U3RhcnRFbmQoITEsdCksdGhpcy51cGRhdGVWYWx1ZUJ5RE9NVGFncygpLHRoaXMudXBkYXRlKCksdGhpc30saW5wdXQ6e3NldCh0PVwiXCIsZT0hMCl7dmFyIGk9dGhpcy5zZXR0aW5ncy5kcm9wZG93bi5jbG9zZU9uU2VsZWN0O3RoaXMuc3RhdGUuaW5wdXRUZXh0PXQsZSYmKHRoaXMuRE9NLmlucHV0LmlubmVySFRNTD1yKFwiXCIrdCkpLCF0JiZpJiZ0aGlzLmRyb3Bkb3duLmhpZGUuYmluZCh0aGlzKSx0aGlzLmlucHV0LmF1dG9jb21wbGV0ZS5zdWdnZXN0LmNhbGwodGhpcyksdGhpcy5pbnB1dC52YWxpZGF0ZS5jYWxsKHRoaXMpfSx2YWxpZGF0ZSgpe3ZhciB0PSF0aGlzLnN0YXRlLmlucHV0VGV4dHx8ITA9PT10aGlzLnZhbGlkYXRlVGFnKHt2YWx1ZTp0aGlzLnN0YXRlLmlucHV0VGV4dH0pO3JldHVybiB0aGlzLkRPTS5pbnB1dC5jbGFzc0xpc3QudG9nZ2xlKHRoaXMuc2V0dGluZ3MuY2xhc3NOYW1lcy5pbnB1dEludmFsaWQsIXQpLHR9LG5vcm1hbGl6ZSh0KXt2YXIgZT10fHx0aGlzLkRPTS5pbnB1dCxpPVtdO2UuY2hpbGROb2Rlcy5mb3JFYWNoKCh0PT4zPT10Lm5vZGVUeXBlJiZpLnB1c2godC5ub2RlVmFsdWUpKSksaT1pLmpvaW4oXCJcXG5cIik7dHJ5e2k9aS5yZXBsYWNlKC8oPzpcXHJcXG58XFxyfFxcbikvZyx0aGlzLnNldHRpbmdzLmRlbGltaXRlcnMuc291cmNlLmNoYXJBdCgwKSl9Y2F0Y2godCl7fXJldHVybiBpPWkucmVwbGFjZSgvXFxzL2csXCIgXCIpLHRoaXMuc2V0dGluZ3MudHJpbSYmKGk9aS5yZXBsYWNlKC9eXFxzKy8sXCJcIikpLGl9LGF1dG9jb21wbGV0ZTp7c3VnZ2VzdCh0KXtpZih0aGlzLnNldHRpbmdzLmF1dG9Db21wbGV0ZS5lbmFibGVkKXtcInN0cmluZ1wiPT10eXBlb2YodD10fHx7fSkmJih0PXt2YWx1ZTp0fSk7dmFyIGU9dC52YWx1ZT9cIlwiK3QudmFsdWU6XCJcIixpPWUuc3Vic3RyKDAsdGhpcy5zdGF0ZS5pbnB1dFRleHQubGVuZ3RoKS50b0xvd2VyQ2FzZSgpLHM9ZS5zdWJzdHJpbmcodGhpcy5zdGF0ZS5pbnB1dFRleHQubGVuZ3RoKTtlJiZ0aGlzLnN0YXRlLmlucHV0VGV4dCYmaT09dGhpcy5zdGF0ZS5pbnB1dFRleHQudG9Mb3dlckNhc2UoKT8odGhpcy5ET00uaW5wdXQuc2V0QXR0cmlidXRlKFwiZGF0YS1zdWdnZXN0XCIscyksdGhpcy5zdGF0ZS5pbnB1dFN1Z2dlc3Rpb249dCk6KHRoaXMuRE9NLmlucHV0LnJlbW92ZUF0dHJpYnV0ZShcImRhdGEtc3VnZ2VzdFwiKSxkZWxldGUgdGhpcy5zdGF0ZS5pbnB1dFN1Z2dlc3Rpb24pfX0sc2V0KHQpe3ZhciBlPXRoaXMuRE9NLmlucHV0LmdldEF0dHJpYnV0ZShcImRhdGEtc3VnZ2VzdFwiKSxpPXR8fChlP3RoaXMuc3RhdGUuaW5wdXRUZXh0K2U6bnVsbCk7cmV0dXJuISFpJiYoXCJtaXhcIj09dGhpcy5zZXR0aW5ncy5tb2RlP3RoaXMucmVwbGFjZVRleHRXaXRoTm9kZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLnN0YXRlLnRhZy5wcmVmaXgraSkpOih0aGlzLmlucHV0LnNldC5jYWxsKHRoaXMsaSksdGhpcy5zZXRSYW5nZUF0U3RhcnRFbmQoKSksdGhpcy5pbnB1dC5hdXRvY29tcGxldGUuc3VnZ2VzdC5jYWxsKHRoaXMpLHRoaXMuZHJvcGRvd24uaGlkZSgpLCEwKX19fSxnZXRUYWdJZHgodCl7cmV0dXJuIHRoaXMudmFsdWUuZmluZEluZGV4KChlPT5lLl9fdGFnSWQ9PSh0fHx7fSkuX190YWdJZCkpfSxnZXROb2RlSW5kZXgodCl7dmFyIGU9MDtpZih0KWZvcig7dD10LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7KWUrKztyZXR1cm4gZX0sZ2V0VGFnRWxtcyguLi50KXt2YXIgZT1cIi5cIitbLi4udGhpcy5zZXR0aW5ncy5jbGFzc05hbWVzLnRhZy5zcGxpdChcIiBcIiksLi4udF0uam9pbihcIi5cIik7cmV0dXJuW10uc2xpY2UuY2FsbCh0aGlzLkRPTS5zY29wZS5xdWVyeVNlbGVjdG9yQWxsKGUpKX0sZ2V0TGFzdFRhZygpe3ZhciB0PXRoaXMuRE9NLnNjb3BlLnF1ZXJ5U2VsZWN0b3JBbGwoYCR7dGhpcy5zZXR0aW5ncy5jbGFzc05hbWVzLnRhZ1NlbGVjdG9yfTpub3QoLiR7dGhpcy5zZXR0aW5ncy5jbGFzc05hbWVzLnRhZ0hpZGV9KTpub3QoW3JlYWRvbmx5XSlgKTtyZXR1cm4gdFt0Lmxlbmd0aC0xXX0sdGFnRGF0YToodCxlLGkpPT50PyhlJiYodC5fX3RhZ2lmeVRhZ0RhdGE9aT9lOmQoe30sdC5fX3RhZ2lmeVRhZ0RhdGF8fHt9LGUpKSx0Ll9fdGFnaWZ5VGFnRGF0YSk6KGNvbnNvbGUud2FybihcInRhZyBlbG1lbnQgZG9lc24ndCBleGlzdFwiLHQsZSksZSksaXNUYWdEdXBsaWNhdGUodCxlKXt2YXIgaT10aGlzLnNldHRpbmdzO3JldHVyblwic2VsZWN0XCIhPWkubW9kZSYmdGhpcy52YWx1ZS5yZWR1Y2UoKChhLG4pPT5zKHRoaXMudHJpbShcIlwiK3QpLG4udmFsdWUsZXx8aS5kcm9wZG93bi5jYXNlU2Vuc2l0aXZlKT9hKzE6YSksMCl9LGdldFRhZ0luZGV4QnlWYWx1ZSh0KXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5nZXRUYWdFbG1zKCkuZm9yRWFjaCgoKGksYSk9PntzKHRoaXMudHJpbShpLnRleHRDb250ZW50KSx0LHRoaXMuc2V0dGluZ3MuZHJvcGRvd24uY2FzZVNlbnNpdGl2ZSkmJmUucHVzaChhKX0pKSxlfSxnZXRUYWdFbG1CeVZhbHVlKHQpe3ZhciBlPXRoaXMuZ2V0VGFnSW5kZXhCeVZhbHVlKHQpWzBdO3JldHVybiB0aGlzLmdldFRhZ0VsbXMoKVtlXX0sZmxhc2hUYWcodCl7dCYmKHQuY2xhc3NMaXN0LmFkZCh0aGlzLnNldHRpbmdzLmNsYXNzTmFtZXMudGFnRmxhc2gpLHNldFRpbWVvdXQoKCgpPT57dC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuc2V0dGluZ3MuY2xhc3NOYW1lcy50YWdGbGFzaCl9KSwxMDApKX0saXNUYWdCbGFja2xpc3RlZCh0KXtyZXR1cm4gdD10aGlzLnRyaW0odC50b0xvd2VyQ2FzZSgpKSx0aGlzLnNldHRpbmdzLmJsYWNrbGlzdC5maWx0ZXIoKGU9PihcIlwiK2UpLnRvTG93ZXJDYXNlKCk9PXQpKS5sZW5ndGh9LGlzVGFnV2hpdGVsaXN0ZWQodCl7cmV0dXJuISF0aGlzLmdldFdoaXRlbGlzdEl0ZW0odCl9LGdldFdoaXRlbGlzdEl0ZW0odCxlLGkpe2U9ZXx8XCJ2YWx1ZVwiO3ZhciBhLG49dGhpcy5zZXR0aW5ncztyZXR1cm4oaT1pfHxuLndoaXRlbGlzdCkuc29tZSgoaT0+e3ZhciBvPVwic3RyaW5nXCI9PXR5cGVvZiBpP2k6aVtlXXx8aS52YWx1ZTtpZihzKG8sdCxuLmRyb3Bkb3duLmNhc2VTZW5zaXRpdmUsbi50cmltKSlyZXR1cm4gYT1cInN0cmluZ1wiPT10eXBlb2YgaT97dmFsdWU6aX06aSwhMH0pKSxhfHxcInZhbHVlXCIhPWV8fFwidmFsdWVcIj09bi50YWdUZXh0UHJvcHx8KGE9dGhpcy5nZXRXaGl0ZWxpc3RJdGVtKHQsbi50YWdUZXh0UHJvcCxpKSksYX0sdmFsaWRhdGVUYWcodCl7dmFyIGU9dGhpcy5zZXR0aW5ncyxpPVwidmFsdWVcImluIHQ/XCJ2YWx1ZVwiOmUudGFnVGV4dFByb3Ascz10aGlzLnRyaW0odFtpXStcIlwiKTtyZXR1cm4odFtpXStcIlwiKS50cmltKCk/ZS5wYXR0ZXJuJiZlLnBhdHRlcm4gaW5zdGFuY2VvZiBSZWdFeHAmJiFlLnBhdHRlcm4udGVzdChzKT90aGlzLlRFWFRTLnBhdHRlcm46IWUuZHVwbGljYXRlcyYmdGhpcy5pc1RhZ0R1cGxpY2F0ZShzLHRoaXMuc3RhdGUuZWRpdGluZyk/dGhpcy5URVhUUy5kdXBsaWNhdGU6dGhpcy5pc1RhZ0JsYWNrbGlzdGVkKHMpfHxlLmVuZm9yY2VXaGl0ZWxpc3QmJiF0aGlzLmlzVGFnV2hpdGVsaXN0ZWQocyk/dGhpcy5URVhUUy5ub3RBbGxvd2VkOiFlLnZhbGlkYXRlfHxlLnZhbGlkYXRlKHQpOnRoaXMuVEVYVFMuZW1wdHl9LGdldEludmFsaWRUYWdBdHRycyh0LGUpe3JldHVybntcImFyaWEtaW52YWxpZFwiOiEwLGNsYXNzOmAke3QuY2xhc3N8fFwiXCJ9ICR7dGhpcy5zZXR0aW5ncy5jbGFzc05hbWVzLnRhZ05vdEFsbG93ZWR9YC50cmltKCksdGl0bGU6ZX19LGhhc01heFRhZ3MoKXtyZXR1cm4gdGhpcy52YWx1ZS5sZW5ndGg+PXRoaXMuc2V0dGluZ3MubWF4VGFncyYmdGhpcy5URVhUUy5leGNlZWR9LHNldFJlYWRvbmx5KHQsZSl7dmFyIGk9dGhpcy5zZXR0aW5ncztkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKSxpW2V8fFwicmVhZG9ubHlcIl09dCx0aGlzLkRPTS5zY29wZVsodD9cInNldFwiOlwicmVtb3ZlXCIpK1wiQXR0cmlidXRlXCJdKGV8fFwicmVhZG9ubHlcIiwhMCksXCJtaXhcIj09aS5tb2RlJiYodGhpcy5ET00uaW5wdXQuY29udGVudEVkaXRhYmxlPSF0KX0sc2V0RGlzYWJsZWQodCl7dGhpcy5zZXRSZWFkb25seSh0LFwiZGlzYWJsZWRcIil9LG5vcm1hbGl6ZVRhZ3ModCl7dmFyIGU9dGhpcy5zZXR0aW5ncyxpPWUud2hpdGVsaXN0LHM9ZS5kZWxpbWl0ZXJzLGE9ZS5tb2RlLG49ZS50YWdUZXh0UHJvcDtlLmVuZm9yY2VXaGl0ZWxpc3Q7dmFyIG89W10scj0hIWkmJmlbMF1pbnN0YW5jZW9mIE9iamVjdCxsPXQgaW5zdGFuY2VvZiBBcnJheSxkPXQ9Pih0K1wiXCIpLnNwbGl0KHMpLmZpbHRlcigodD0+dCkpLm1hcCgodD0+KHtbbl06dGhpcy50cmltKHQpLHZhbHVlOnRoaXMudHJpbSh0KX0pKSk7aWYoXCJudW1iZXJcIj09dHlwZW9mIHQmJih0PXQudG9TdHJpbmcoKSksXCJzdHJpbmdcIj09dHlwZW9mIHQpe2lmKCF0LnRyaW0oKSlyZXR1cm5bXTt0PWQodCl9ZWxzZSBsJiYodD1bXS5jb25jYXQoLi4udC5tYXAoKHQ9PnQudmFsdWU/dDpkKHQpKSkpKTtyZXR1cm4gciYmKHQuZm9yRWFjaCgodD0+e3ZhciBlPW8ubWFwKCh0PT50LnZhbHVlKSksaT10aGlzLmRyb3Bkb3duLmZpbHRlckxpc3RJdGVtcy5jYWxsKHRoaXMsdFtuXSx7ZXhhY3Q6ITB9KTt0aGlzLnNldHRpbmdzLmR1cGxpY2F0ZXN8fChpPWkuZmlsdGVyKCh0PT4hZS5pbmNsdWRlcyh0LnZhbHVlKSkpKTt2YXIgcz1pLmxlbmd0aD4xP3RoaXMuZ2V0V2hpdGVsaXN0SXRlbSh0W25dLG4saSk6aVswXTtzJiZzIGluc3RhbmNlb2YgT2JqZWN0P28ucHVzaChzKTpcIm1peFwiIT1hJiYobnVsbD09dC52YWx1ZSYmKHQudmFsdWU9dFtuXSksby5wdXNoKHQpKX0pKSx0PW8pLHR9LHBhcnNlTWl4VGFncyh0KXt2YXIgZT10aGlzLnNldHRpbmdzLGk9ZS5taXhUYWdzSW50ZXJwb2xhdG9yLHM9ZS5kdXBsaWNhdGVzLGE9ZS50cmFuc2Zvcm1UYWcsbj1lLmVuZm9yY2VXaGl0ZWxpc3Qsbz1lLm1heFRhZ3Mscj1lLnRhZ1RleHRQcm9wLGw9W107cmV0dXJuIHQ9dC5zcGxpdChpWzBdKS5tYXAoKCh0LGUpPT57dmFyIGQsaCxnLHA9dC5zcGxpdChpWzFdKSxjPXBbMF0sdT1sLmxlbmd0aD09bzt0cnl7aWYoYz09K2MpdGhyb3cgRXJyb3I7aD1KU09OLnBhcnNlKGMpfWNhdGNoKHQpe2g9dGhpcy5ub3JtYWxpemVUYWdzKGMpWzBdfHx7dmFsdWU6Y319aWYodXx8IShwLmxlbmd0aD4xKXx8biYmIXRoaXMuaXNUYWdXaGl0ZWxpc3RlZChoLnZhbHVlKXx8IXMmJnRoaXMuaXNUYWdEdXBsaWNhdGUoaC52YWx1ZSkpe2lmKHQpcmV0dXJuIGU/aVswXSt0OnR9ZWxzZSBhLmNhbGwodGhpcyxoKSxoW2Q9aFtyXT9yOlwidmFsdWVcIl09dGhpcy50cmltKGhbZF0pLGc9dGhpcy5jcmVhdGVUYWdFbGVtKGgpLGwucHVzaChoKSxnLmNsYXNzTGlzdC5hZGQodGhpcy5zZXR0aW5ncy5jbGFzc05hbWVzLnRhZ05vQW5pbWF0aW9uKSxwWzBdPWcub3V0ZXJIVE1MLHRoaXMudmFsdWUucHVzaChoKTtyZXR1cm4gcC5qb2luKFwiXCIpfSkpLmpvaW4oXCJcIiksdGhpcy5ET00uaW5wdXQuaW5uZXJIVE1MPXQsdGhpcy5ET00uaW5wdXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoXCJcIikpLHRoaXMuRE9NLmlucHV0Lm5vcm1hbGl6ZSgpLHRoaXMuZ2V0VGFnRWxtcygpLmZvckVhY2goKCh0LGUpPT50aGlzLnRhZ0RhdGEodCxsW2VdKSkpLHRoaXMudXBkYXRlKHt3aXRob3V0Q2hhbmdlRXZlbnQ6ITB9KSx0fSxyZXBsYWNlVGV4dFdpdGhOb2RlKHQsZSl7aWYodGhpcy5zdGF0ZS50YWd8fGUpe2U9ZXx8dGhpcy5zdGF0ZS50YWcucHJlZml4K3RoaXMuc3RhdGUudGFnLnZhbHVlO3ZhciBpLHMsYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCksbj1hLmFuY2hvck5vZGUsbz10aGlzLnN0YXRlLnRhZy5kZWxpbWl0ZXJzP3RoaXMuc3RhdGUudGFnLmRlbGltaXRlcnMubGVuZ3RoOjA7cmV0dXJuIG4uc3BsaXRUZXh0KGEuYW5jaG9yT2Zmc2V0LW8pLGk9bi5ub2RlVmFsdWUubGFzdEluZGV4T2YoZSkscz1uLnNwbGl0VGV4dChpKSx0JiZuLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHQscyksITB9fSxzZWxlY3RUYWcodCxlKXt2YXIgaT10aGlzLnNldHRpbmdzO2lmKCFpLmVuZm9yY2VXaGl0ZWxpc3R8fHRoaXMuaXNUYWdXaGl0ZWxpc3RlZChlLnZhbHVlKSl7dGhpcy5pbnB1dC5zZXQuY2FsbCh0aGlzLGVbaS50YWdUZXh0UHJvcHx8XCJ2YWx1ZVwiXSwhMCksdGhpcy5zdGF0ZS5hY3Rpb25zLnNlbGVjdE9wdGlvbiYmc2V0VGltZW91dCh0aGlzLnNldFJhbmdlQXRTdGFydEVuZC5iaW5kKHRoaXMpKTt2YXIgcz10aGlzLmdldExhc3RUYWcoKTtyZXR1cm4gcz90aGlzLnJlcGxhY2VUYWcocyxlKTp0aGlzLmFwcGVuZFRhZyh0KSxpLmVuZm9yY2VXaGl0ZWxpc3QmJnRoaXMuRE9NLmlucHV0LnJlbW92ZUF0dHJpYnV0ZShcImNvbnRlbnRlZGl0YWJsZVwiKSx0aGlzLnZhbHVlWzBdPWUsdGhpcy50cmlnZ2VyKFwiYWRkXCIse3RhZzp0LGRhdGE6ZX0pLHRoaXMudXBkYXRlKCksW3RdfX0sYWRkRW1wdHlUYWcodCl7dmFyIGU9ZCh7dmFsdWU6XCJcIn0sdHx8e30pLGk9dGhpcy5jcmVhdGVUYWdFbGVtKGUpO3RoaXMudGFnRGF0YShpLGUpLHRoaXMuYXBwZW5kVGFnKGkpLHRoaXMuZWRpdFRhZyhpLHtza2lwVmFsaWRhdGlvbjohMH0pfSxhZGRUYWdzKHQsZSxpPXRoaXMuc2V0dGluZ3Muc2tpcEludmFsaWQpe3ZhciBzPVtdLGE9dGhpcy5zZXR0aW5ncyxuPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtyZXR1cm4gdCYmMCE9dC5sZW5ndGg/KHQ9dGhpcy5ub3JtYWxpemVUYWdzKHQpLFwibWl4XCI9PWEubW9kZT90aGlzLmFkZE1peFRhZ3ModCk6KFwic2VsZWN0XCI9PWEubW9kZSYmKGU9ITEpLHRoaXMuRE9NLmlucHV0LnJlbW92ZUF0dHJpYnV0ZShcInN0eWxlXCIpLHQuZm9yRWFjaCgodD0+e3ZhciBlLG89e30scj1PYmplY3QuYXNzaWduKHt9LHQse3ZhbHVlOnQudmFsdWUrXCJcIn0pO2lmKCh0PU9iamVjdC5hc3NpZ24oe30scikpLl9faXNWYWxpZD10aGlzLmhhc01heFRhZ3MoKXx8dGhpcy52YWxpZGF0ZVRhZyh0KSxhLnRyYW5zZm9ybVRhZy5jYWxsKHRoaXMsdCksITAhPT10Ll9faXNWYWxpZCl7aWYoaSlyZXR1cm47ZChvLHRoaXMuZ2V0SW52YWxpZFRhZ0F0dHJzKHQsdC5fX2lzVmFsaWQpLHtfX3ByZUludmFsaWREYXRhOnJ9KSx0Ll9faXNWYWxpZD09dGhpcy5URVhUUy5kdXBsaWNhdGUmJnRoaXMuZmxhc2hUYWcodGhpcy5nZXRUYWdFbG1CeVZhbHVlKHQudmFsdWUpKX1pZih0LnJlYWRvbmx5JiYob1tcImFyaWEtcmVhZG9ubHlcIl09ITApLGU9dGhpcy5jcmVhdGVUYWdFbGVtKHQsbykscy5wdXNoKGUpLFwic2VsZWN0XCI9PWEubW9kZSlyZXR1cm4gdGhpcy5zZWxlY3RUYWcoZSx0KTtuLmFwcGVuZENoaWxkKGUpLHQuX19pc1ZhbGlkJiYhMD09PXQuX19pc1ZhbGlkPyh0aGlzLnZhbHVlLnB1c2godCksdGhpcy50cmlnZ2VyKFwiYWRkXCIse3RhZzplLGluZGV4OnRoaXMudmFsdWUubGVuZ3RoLTEsZGF0YTp0fSkpOih0aGlzLnRyaWdnZXIoXCJpbnZhbGlkXCIse2RhdGE6dCxpbmRleDp0aGlzLnZhbHVlLmxlbmd0aCx0YWc6ZSxtZXNzYWdlOnQuX19pc1ZhbGlkfSksYS5rZWVwSW52YWxpZFRhZ3N8fHNldFRpbWVvdXQoKCgpPT50aGlzLnJlbW92ZVRhZ3MoZSwhMCkpLDFlMykpLHRoaXMuZHJvcGRvd24ucG9zaXRpb24oKX0pKSx0aGlzLmFwcGVuZFRhZyhuKSx0aGlzLnVwZGF0ZSgpLHQubGVuZ3RoJiZlJiZ0aGlzLmlucHV0LnNldC5jYWxsKHRoaXMpLHRoaXMuZHJvcGRvd24ucmVmaWx0ZXIoKSxzKSk6KFwic2VsZWN0XCI9PWEubW9kZSYmdGhpcy5yZW1vdmVBbGxUYWdzKCkscyl9LGFkZE1peFRhZ3ModCl7aWYoKHQ9dGhpcy5ub3JtYWxpemVUYWdzKHQpKVswXS5wcmVmaXh8fHRoaXMuc3RhdGUudGFnKXJldHVybiB0aGlzLnByZWZpeGVkVGV4dFRvVGFnKHRbMF0pO1wic3RyaW5nXCI9PXR5cGVvZiB0JiYodD1be3ZhbHVlOnR9XSk7dmFyIGU9ISF0aGlzLnN0YXRlLnNlbGVjdGlvbixpPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtyZXR1cm4gdC5mb3JFYWNoKCh0PT57dmFyIGU9dGhpcy5jcmVhdGVUYWdFbGVtKHQpO2kuYXBwZW5kQ2hpbGQoZSksdGhpcy5pbnNlcnRBZnRlclRhZyhlKX0pKSxlP3RoaXMuaW5qZWN0QXRDYXJldChpKToodGhpcy5ET00uaW5wdXQuZm9jdXMoKSwoZT10aGlzLnNldFN0YXRlU2VsZWN0aW9uKCkpLnJhbmdlLnNldFN0YXJ0KHRoaXMuRE9NLmlucHV0LGUucmFuZ2UuZW5kT2Zmc2V0KSxlLnJhbmdlLnNldEVuZCh0aGlzLkRPTS5pbnB1dCxlLnJhbmdlLmVuZE9mZnNldCksdGhpcy5ET00uaW5wdXQuYXBwZW5kQ2hpbGQoaSksdGhpcy51cGRhdGVWYWx1ZUJ5RE9NVGFncygpLHRoaXMudXBkYXRlKCkpLGl9LHByZWZpeGVkVGV4dFRvVGFnKHQpe3ZhciBlLGk9dGhpcy5zZXR0aW5ncyxzPXRoaXMuc3RhdGUudGFnLmRlbGltaXRlcnM7aWYoaS50cmFuc2Zvcm1UYWcuY2FsbCh0aGlzLHQpLHQucHJlZml4PXQucHJlZml4fHx0aGlzLnN0YXRlLnRhZz90aGlzLnN0YXRlLnRhZy5wcmVmaXg6KGkucGF0dGVybi5zb3VyY2V8fGkucGF0dGVybilbMF0sZT10aGlzLmNyZWF0ZVRhZ0VsZW0odCksdGhpcy5yZXBsYWNlVGV4dFdpdGhOb2RlKGUpfHx0aGlzLkRPTS5pbnB1dC5hcHBlbmRDaGlsZChlKSxzZXRUaW1lb3V0KCgoKT0+ZS5jbGFzc0xpc3QuYWRkKHRoaXMuc2V0dGluZ3MuY2xhc3NOYW1lcy50YWdOb0FuaW1hdGlvbikpLDMwMCksdGhpcy52YWx1ZS5wdXNoKHQpLHRoaXMudXBkYXRlKCksIXMpe3ZhciBhPXRoaXMuaW5zZXJ0QWZ0ZXJUYWcoZSl8fGU7dGhpcy5wbGFjZUNhcmV0QWZ0ZXJOb2RlKGEpfXJldHVybiB0aGlzLnN0YXRlLnRhZz1udWxsLHRoaXMudHJpZ2dlcihcImFkZFwiLGQoe30se3RhZzplfSx7ZGF0YTp0fSkpLGV9LGFwcGVuZFRhZyh0KXt2YXIgZT10aGlzLkRPTSxpPWUuc2NvcGUubGFzdEVsZW1lbnRDaGlsZDtpPT09ZS5pbnB1dD9lLnNjb3BlLmluc2VydEJlZm9yZSh0LGkpOmUuc2NvcGUuYXBwZW5kQ2hpbGQodCl9LGNyZWF0ZVRhZ0VsZW0odCxlKXt0Ll9fdGFnSWQ9KFsxZTddKy0xZTMrLTRlMystOGUzKy0xZTExKS5yZXBsYWNlKC9bMDE4XS9nLCh0PT4odF5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KDEpKVswXSYxNT4+dC80KS50b1N0cmluZygxNikpKTt2YXIgcyxhPWQoe30sdCxpKHt2YWx1ZTpyKHQudmFsdWUrXCJcIil9LGUpKTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHQsTm9kZUZpbHRlci5TSE9XX1RFWFQsbnVsbCwhMSk7ZT1pLm5leHROb2RlKCk7KWUudGV4dENvbnRlbnQudHJpbSgpfHxlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9KHM9dGhpcy5wYXJzZVRlbXBsYXRlKFwidGFnXCIsW2FdKSksdGhpcy50YWdEYXRhKHMsdCksc30scmVDaGVja0ludmFsaWRUYWdzKCl7dmFyIHQ9dGhpcy5zZXR0aW5nczt0aGlzLmdldFRhZ0VsbXModC5jbGFzc05hbWVzLnRhZ05vdEFsbG93ZWQpLmZvckVhY2goKCh0LGUpPT57dmFyIGk9dGhpcy50YWdEYXRhKHQpLHM9dGhpcy5oYXNNYXhUYWdzKCksYT10aGlzLnZhbGlkYXRlVGFnKGkpO2lmKCEwPT09YSYmIXMpcmV0dXJuIGk9aS5fX3ByZUludmFsaWREYXRhP2kuX19wcmVJbnZhbGlkRGF0YTp7dmFsdWU6aS52YWx1ZX0sdGhpcy5yZXBsYWNlVGFnKHQsaSk7dC50aXRsZT1zfHxhfSkpfSxyZW1vdmVUYWdzKHQsZSxpKXt2YXIgczt0PXQmJnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudD9bdF06dCBpbnN0YW5jZW9mIEFycmF5P3Q6dD9bdF06W3RoaXMuZ2V0TGFzdFRhZygpXSxzPXQucmVkdWNlKCgodCxlKT0+KGUmJlwic3RyaW5nXCI9PXR5cGVvZiBlJiYoZT10aGlzLmdldFRhZ0VsbUJ5VmFsdWUoZSkpLGUmJnRoaXMudGFnRGF0YShlKSYmdC5wdXNoKHtub2RlOmUsaWR4OnRoaXMuZ2V0VGFnSWR4KHRoaXMudGFnRGF0YShlKSksZGF0YTp0aGlzLnRhZ0RhdGEoZSx7X19yZW1vdmVkOiEwfSl9KSx0KSksW10pLGk9XCJudW1iZXJcIj09dHlwZW9mIGk/aTp0aGlzLkNTU1ZhcnMudGFnSGlkZVRyYW5zaXRpb24sXCJzZWxlY3RcIj09dGhpcy5zZXR0aW5ncy5tb2RlJiYoaT0wLHRoaXMuaW5wdXQuc2V0LmNhbGwodGhpcykpLDE9PXMubGVuZ3RoJiZzWzBdLm5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuc2V0dGluZ3MuY2xhc3NOYW1lcy50YWdOb3RBbGxvd2VkKSYmKGU9ITApLHMubGVuZ3RoJiZ0aGlzLnNldHRpbmdzLmhvb2tzLmJlZm9yZVJlbW92ZVRhZyhzLHt0YWdpZnk6dGhpc30pLnRoZW4oKCgpPT57ZnVuY3Rpb24gdCh0KXt0Lm5vZGUucGFyZW50Tm9kZSYmKHQubm9kZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQubm9kZSksZT90aGlzLnNldHRpbmdzLmtlZXBJbnZhbGlkVGFncyYmdGhpcy50cmlnZ2VyKFwicmVtb3ZlXCIse3RhZzp0Lm5vZGUsaW5kZXg6dC5pZHh9KToodGhpcy50cmlnZ2VyKFwicmVtb3ZlXCIse3RhZzp0Lm5vZGUsaW5kZXg6dC5pZHgsZGF0YTp0LmRhdGF9KSx0aGlzLmRyb3Bkb3duLnJlZmlsdGVyKCksdGhpcy5kcm9wZG93bi5wb3NpdGlvbigpLHRoaXMuRE9NLmlucHV0Lm5vcm1hbGl6ZSgpLHRoaXMuc2V0dGluZ3Mua2VlcEludmFsaWRUYWdzJiZ0aGlzLnJlQ2hlY2tJbnZhbGlkVGFncygpKSl9aSYmaT4xMCYmMT09cy5sZW5ndGg/ZnVuY3Rpb24oZSl7ZS5ub2RlLnN0eWxlLndpZHRoPXBhcnNlRmxvYXQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZS5ub2RlKS53aWR0aCkrXCJweFwiLGRvY3VtZW50LmJvZHkuY2xpZW50VG9wLGUubm9kZS5jbGFzc0xpc3QuYWRkKHRoaXMuc2V0dGluZ3MuY2xhc3NOYW1lcy50YWdIaWRlKSxzZXRUaW1lb3V0KHQuYmluZCh0aGlzKSxpLGUpfS5jYWxsKHRoaXMsc1swXSk6cy5mb3JFYWNoKHQuYmluZCh0aGlzKSksZXx8KHRoaXMucmVtb3ZlVGFnc0Zyb21WYWx1ZShzLm1hcCgodD0+dC5ub2RlKSkpLHRoaXMudXBkYXRlKCksXCJzZWxlY3RcIj09dGhpcy5zZXR0aW5ncy5tb2RlJiZ0aGlzLkRPTS5pbnB1dC5zZXRBdHRyaWJ1dGUoXCJjb250ZW50ZWRpdGFibGVcIiwhMCkpfSkpLmNhdGNoKCh0PT57fSkpfSxyZW1vdmVUYWdzRnJvbURPTSgpe1tdLnNsaWNlLmNhbGwodGhpcy5nZXRUYWdFbG1zKCkpLmZvckVhY2goKHQ9PnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSkpfSxyZW1vdmVUYWdzRnJvbVZhbHVlKHQpeyh0PUFycmF5LmlzQXJyYXkodCk/dDpbdF0pLmZvckVhY2goKHQ9Pnt2YXIgZT10aGlzLnRhZ0RhdGEodCksaT10aGlzLmdldFRhZ0lkeChlKTtpPi0xJiZ0aGlzLnZhbHVlLnNwbGljZShpLDEpfSkpfSxyZW1vdmVBbGxUYWdzKHQpe3Q9dHx8e30sdGhpcy52YWx1ZT1bXSxcIm1peFwiPT10aGlzLnNldHRpbmdzLm1vZGU/dGhpcy5ET00uaW5wdXQuaW5uZXJIVE1MPVwiXCI6dGhpcy5yZW1vdmVUYWdzRnJvbURPTSgpLHRoaXMuZHJvcGRvd24ucG9zaXRpb24oKSxcInNlbGVjdFwiPT10aGlzLnNldHRpbmdzLm1vZGUmJnRoaXMuaW5wdXQuc2V0LmNhbGwodGhpcyksdGhpcy51cGRhdGUodCl9LHBvc3RVcGRhdGUoKXt2YXIgdD10aGlzLnNldHRpbmdzLmNsYXNzTmFtZXMsZT1cIm1peFwiPT10aGlzLnNldHRpbmdzLm1vZGU/dGhpcy5zZXR0aW5ncy5taXhNb2RlLmludGVncmF0ZWQ/dGhpcy5ET00uaW5wdXQudGV4dENvbnRlbnQ6dGhpcy5ET00ub3JpZ2luYWxJbnB1dC52YWx1ZTp0aGlzLnZhbHVlLmxlbmd0aDt0aGlzLnRvZ2dsZUNsYXNzKHQuaGFzTWF4VGFncyx0aGlzLnZhbHVlLmxlbmd0aD49dGhpcy5zZXR0aW5ncy5tYXhUYWdzKSx0aGlzLnRvZ2dsZUNsYXNzKHQuaGFzTm9UYWdzLCF0aGlzLnZhbHVlLmxlbmd0aCksdGhpcy50b2dnbGVDbGFzcyh0LmVtcHR5LCFlKX0sdXBkYXRlKHQpe3ZhciBlPXRoaXMuRE9NLm9yaWdpbmFsSW5wdXQ7dGhpcy5zZXR0aW5ncy5taXhNb2RlLmludGVncmF0ZWR8fChlLnZhbHVlPXRoaXMuZ2V0SW5wdXRWYWx1ZSgpKSx0aGlzLnBvc3RVcGRhdGUoKSwhKHR8fHt9KS53aXRob3V0Q2hhbmdlRXZlbnQmJnRoaXMuc3RhdGUubG9hZGVkT3JpZ2luYWxWYWx1ZXMmJnRoaXMudHJpZ2dlckNoYW5nZUV2ZW50KCl9LGdldElucHV0VmFsdWUoKXt2YXIgdD10aGlzLmdldENsZWFuVmFsdWUoKTtyZXR1cm5cIm1peFwiPT10aGlzLnNldHRpbmdzLm1vZGU/dGhpcy5nZXRNaXhlZFRhZ3NBc1N0cmluZyh0KTp0Lmxlbmd0aD90aGlzLnNldHRpbmdzLm9yaWdpbmFsSW5wdXRWYWx1ZUZvcm1hdD90aGlzLnNldHRpbmdzLm9yaWdpbmFsSW5wdXRWYWx1ZUZvcm1hdCh0KTpKU09OLnN0cmluZ2lmeSh0KTpcIlwifSxnZXRDbGVhblZhbHVlKHQpe3JldHVybiBlPXR8fHRoaXMudmFsdWUsaT10aGlzLmRhdGFQcm9wcyxlJiZBcnJheS5pc0FycmF5KGUpJiZlLm1hcCgodD0+YSh0LGkpKSk7dmFyIGUsaX0sZ2V0TWl4ZWRUYWdzQXNTdHJpbmcoKXt2YXIgdD1cIlwiLGU9dGhpcyxpPXRoaXMuc2V0dGluZ3MubWl4VGFnc0ludGVycG9sYXRvcjtyZXR1cm4gdGhpcy5ET00uaW5wdXQuY2hpbGROb2Rlcy5mb3JFYWNoKChzPT57aWYoMT09cy5ub2RlVHlwZSl7Y29uc3Qgbj1lLnRhZ0RhdGEocyk7aWYocy5jbGFzc0xpc3QuY29udGFpbnMoZS5zZXR0aW5ncy5jbGFzc05hbWVzLnRhZykmJm4pe2lmKG4uX19yZW1vdmVkKXJldHVybjtyZXR1cm4gdm9pZCh0Kz1pWzBdK0pTT04uc3RyaW5naWZ5KGEobixlLmRhdGFQcm9wcykpK2lbMV0pfVwiQlJcIiE9cy50YWdOYW1lfHxzLnBhcmVudE5vZGUhPWUuRE9NLmlucHV0JiYxIT1zLnBhcmVudE5vZGUuY2hpbGROb2Rlcy5sZW5ndGg/XCJESVZcIiE9cy50YWdOYW1lJiZcIlBcIiE9cy50YWdOYW1lfHwodCs9XCJcXHJcXG5cIiwhcy5jaGlsZHJlbi5sZW5ndGgmJnMudGV4dENvbnRlbnQmJih0Kz1zLnRleHRDb250ZW50KSk6dCs9XCJcXHJcXG5cIn1lbHNlIHQrPXMudGV4dENvbnRlbnR9KSksdH19LHcucHJvdG90eXBlLnJlbW92ZVRhZz13LnByb3RvdHlwZS5yZW1vdmVUYWdzLHd9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@yaireo/tagify/dist/tagify.min.js\n"); /***/ }), /***/ "./node_modules/@yaireo/tagify/dist/tagify.polyfills.min.js": /*!******************************************************************!*\ !*** ./node_modules/@yaireo/tagify/dist/tagify.polyfills.min.js ***! \******************************************************************/ /***/ ((module, exports, __webpack_require__) => { eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n * Tagify (v 4.7.2) - tags input component\n * By Yair Even-Or\n * Don't sell this code. (c)\n * https://github.com/yairEO/tagify\n */\n\n!function(t){ true?!(__WEBPACK_AMD_DEFINE_FACTORY__ = (t),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):0}((function(){\"use strict\";function t(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent(\"CustomEvent\");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}var e;\"\".trim||(String.prototype.trim=function(){return this.replace(/^[\\s]+|[\\s]+$/g,\"\")}),window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),Array.prototype.findIndex||Object.defineProperty(Array.prototype,\"findIndex\",{value:function(t){if(null==this)throw new TypeError('\"this\" is null or not defined');var e=Object(this),n=e.length>>>0;if(\"function\"!=typeof t)throw new TypeError(\"predicate must be a function\");for(var o=arguments[1],r=0;r>>0,r=0;rthis.length)&&-1!==this.indexOf(t,e)}),\"function\"!=typeof Object.assign&&Object.defineProperty(Object,\"assign\",{value:function(t,e){if(null==t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var n=Object(t),o=1;ot.length)&&(e=t.length);for(var i=0,a=new Array(e);i>16,o=i>>8&255,n=255&i;return\"#\"+(16777216+65536*(Math.round((a-r)*s)+r)+256*(Math.round((a-o)*s)+o)+(Math.round((a-n)*s)+n)).toString(16).slice(1)}},{key:\"shadeColor\",value:function(t,e){return i.isColorHex(e)?this.shadeHexColor(t,e):this.shadeRGBColor(t,e)}}],[{key:\"bind\",value:function(t,e){return function(){return t.apply(e,arguments)}}},{key:\"isObject\",value:function(e){return e&&\"object\"===t(e)&&!Array.isArray(e)&&null!=e}},{key:\"listToArray\",value:function(t){var e,i=[];for(e=0;ee.length?t:e}))),t.length>e.length?t:e}),0)}},{key:\"hexToRgba\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"#999999\",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.6;\"#\"!==t.substring(0,1)&&(t=\"#999999\");var i=t.replace(\"#\",\"\");i=i.match(new RegExp(\"(.{\"+i.length/3+\"})\",\"g\"));for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:\"x\",i=t.toString().slice();return i=i.replace(/[` ~!@#$%^&*()_|+\\-=?;:'\",.<>{}[\\]\\\\/]/gi,e)}},{key:\"negToZero\",value:function(t){return t<0?0:t}},{key:\"moveIndexInArray\",value:function(t,e,i){if(i>=t.length)for(var a=i-t.length+1;a--;)t.push(void 0);return t.splice(i,0,t.splice(e,1)[0]),t}},{key:\"extractNumber\",value:function(t){return parseFloat(t.replace(/[^\\d.]*/g,\"\"))}},{key:\"findAncestor\",value:function(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}},{key:\"setELstyles\",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t.style.key=e[i])}},{key:\"isNumber\",value:function(t){return!isNaN(t)&&parseFloat(Number(t))===t&&!isNaN(parseInt(t,10))}},{key:\"isFloat\",value:function(t){return Number(t)===t&&t%1!=0}},{key:\"isSafari\",value:function(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}},{key:\"isFirefox\",value:function(){return navigator.userAgent.toLowerCase().indexOf(\"firefox\")>-1}},{key:\"isIE11\",value:function(){if(-1!==window.navigator.userAgent.indexOf(\"MSIE\")||window.navigator.appVersion.indexOf(\"Trident/\")>-1)return!0}},{key:\"isIE\",value:function(){var t=window.navigator.userAgent,e=t.indexOf(\"MSIE \");if(e>0)return parseInt(t.substring(e+5,t.indexOf(\".\",e)),10);if(t.indexOf(\"Trident/\")>0){var i=t.indexOf(\"rv:\");return parseInt(t.substring(i+3,t.indexOf(\".\",i)),10)}var a=t.indexOf(\"Edge/\");return a>0&&parseInt(t.substring(a+5,t.indexOf(\".\",a)),10)}},{key:\"sanitizeDom\",value:function(t){return String(t).replace(/\\&/g,\"&\").replace(/\\/g,\">\").replace(/\\\"/g,\""\")}}]),i}(),p=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.setEasingFunctions()}return a(t,[{key:\"setEasingFunctions\",value:function(){var t;if(!this.w.globals.easing){switch(this.w.config.chart.animations.easing){case\"linear\":t=\"-\";break;case\"easein\":t=\"<\";break;case\"easeout\":t=\">\";break;case\"easeinout\":t=\"<>\";break;case\"swing\":t=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1};break;case\"bounce\":t=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};break;case\"elastic\":t=function(t){return t===!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1};break;default:t=\"<>\"}this.w.globals.easing=t}}},{key:\"animateLine\",value:function(t,e,i,a){t.attr(e).animate(a).attr(i)}},{key:\"animateMarker\",value:function(t,e,i,a,s,r){e||(e=0),t.attr({r:e,width:e,height:e}).animate(a,s).attr({r:i,width:i.width,height:i.height}).afterAll((function(){r()}))}},{key:\"animateCircle\",value:function(t,e,i,a,s){t.attr({r:e.r,cx:e.cx,cy:e.cy}).animate(a,s).attr({r:i.r,cx:i.cx,cy:i.cy})}},{key:\"animateRect\",value:function(t,e,i,a,s){t.attr(e).animate(a).attr(i).afterAll((function(){return s()}))}},{key:\"animatePathsGradually\",value:function(t){var e=t.el,i=t.realIndex,a=t.j,s=t.fill,r=t.pathFrom,o=t.pathTo,n=t.speed,l=t.delay,h=this.w,c=0;h.config.chart.animations.animateGradually.enabled&&(c=h.config.chart.animations.animateGradually.delay),h.config.chart.animations.dynamicAnimation.enabled&&h.globals.dataChanged&&\"bar\"!==h.config.chart.type&&(c=0),this.morphSVG(e,i,a,\"line\"!==h.config.chart.type||h.globals.comboCharts?s:\"stroke\",r,o,n,l*c)}},{key:\"showDelayedElements\",value:function(){this.w.globals.delayedElements.forEach((function(t){t.el.classList.remove(\"apexcharts-element-hidden\")}))}},{key:\"animationCompleted\",value:function(t){var e=this.w;e.globals.animationEnded||(e.globals.animationEnded=!0,this.showDelayedElements(),\"function\"==typeof e.config.chart.events.animationEnd&&e.config.chart.events.animationEnd(this.ctx,{el:t,w:e}))}},{key:\"morphSVG\",value:function(t,e,i,a,s,r,o,n){var l=this,h=this.w;s||(s=t.attr(\"pathFrom\")),r||(r=t.attr(\"pathTo\"));var c=function(t){return\"radar\"===h.config.chart.type&&(o=1),\"M 0 \".concat(h.globals.gridHeight)};(!s||s.indexOf(\"undefined\")>-1||s.indexOf(\"NaN\")>-1)&&(s=c()),(!r||r.indexOf(\"undefined\")>-1||r.indexOf(\"NaN\")>-1)&&(r=c()),h.globals.shouldAnimate||(o=1),t.plot(s).animate(1,h.globals.easing,n).plot(s).animate(o,h.globals.easing,n).plot(r).afterAll((function(){f.isNumber(i)?i===h.globals.series[h.globals.maxValsInArrayIndex].length-2&&h.globals.shouldAnimate&&l.animationCompleted(t):\"none\"!==a&&h.globals.shouldAnimate&&(!h.globals.comboCharts&&e===h.globals.series.length-1||h.globals.comboCharts)&&l.animationCompleted(t),l.showDelayedElements()}))}}]),t}(),x=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:\"getDefaultFilter\",value:function(t,e){var i=this.w;t.unfilter(!0),(new window.SVG.Filter).size(\"120%\",\"180%\",\"-5%\",\"-40%\"),\"none\"!==i.config.states.normal.filter?this.applyFilter(t,e,i.config.states.normal.filter.type,i.config.states.normal.filter.value):i.config.chart.dropShadow.enabled&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:\"addNormalFilter\",value:function(t,e){var i=this.w;i.config.chart.dropShadow.enabled&&!t.node.classList.contains(\"apexcharts-marker\")&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:\"addLightenFilter\",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:\"linear\",slope:1.5,intercept:r}})})),t.filterer.node.setAttribute(\"filterUnits\",\"userSpaceOnUse\"),this._scaleFilterSize(t.filterer.node)}},{key:\"addDarkenFilter\",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:\"linear\",slope:r}})})),t.filterer.node.setAttribute(\"filterUnits\",\"userSpaceOnUse\"),this._scaleFilterSize(t.filterer.node)}},{key:\"applyFilter\",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5;switch(i){case\"none\":this.addNormalFilter(t,e);break;case\"lighten\":this.addLightenFilter(t,e,{intensity:a});break;case\"darken\":this.addDarkenFilter(t,e,{intensity:a})}}},{key:\"addShadow\",value:function(t,e,i){var a=i.blur,s=i.top,r=i.left,o=i.color,n=i.opacity,l=t.flood(Array.isArray(o)?o[e]:o,n).composite(t.sourceAlpha,\"in\").offset(r,s).gaussianBlur(a).merge(t.source);return t.blend(t.source,l)}},{key:\"dropShadow\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=e.top,s=e.left,r=e.blur,o=e.color,n=e.opacity,l=e.noUserSpaceOnUse,h=this.w;return t.unfilter(!0),f.isIE()&&\"radialBar\"===h.config.chart.type||(o=Array.isArray(o)?o[i]:o,t.filter((function(t){var e=null;e=f.isSafari()||f.isFirefox()||f.isIE()?t.flood(o,n).composite(t.sourceAlpha,\"in\").offset(s,a).gaussianBlur(r):t.flood(o,n).composite(t.sourceAlpha,\"in\").offset(s,a).gaussianBlur(r).merge(t.source),t.blend(t.source,e)})),l||t.filterer.node.setAttribute(\"filterUnits\",\"userSpaceOnUse\"),this._scaleFilterSize(t.filterer.node)),t}},{key:\"setSelectionFilter\",value:function(t,e,i){var a=this.w;if(void 0!==a.globals.selectedDataPoints[e]&&a.globals.selectedDataPoints[e].indexOf(i)>-1){t.node.setAttribute(\"selected\",!0);var s=a.config.states.active.filter;\"none\"!==s&&this.applyFilter(t,e,s.type,s.value)}}},{key:\"_scaleFilterSize\",value:function(t){!function(e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}({width:\"200%\",height:\"200%\",x:\"-50%\",y:\"-50%\"})}}]),t}(),b=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:\"drawLine\",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:\"#a8a8a8\",r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,n=this.w,l=n.globals.dom.Paper.line().attr({x1:t,y1:e,x2:i,y2:a,stroke:s,\"stroke-dasharray\":r,\"stroke-width\":o});return l}},{key:\"drawRect\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:\"#fefefe\",o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:null,h=arguments.length>9&&void 0!==arguments[9]?arguments[9]:0,c=this.w,d=c.globals.dom.Paper.rect();return d.attr({x:t,y:e,width:i>0?i:0,height:a>0?a:0,rx:s,ry:s,opacity:o,\"stroke-width\":null!==n?n:0,stroke:null!==l?l:\"none\",\"stroke-dasharray\":h}),d.node.setAttribute(\"fill\",r),d}},{key:\"drawPolygon\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"#e1e1e1\",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"none\",s=this.w,r=s.globals.dom.Paper.polygon(t).attr({fill:a,stroke:e,\"stroke-width\":i});return r}},{key:\"drawCircle\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;t<0&&(t=0);var a=i.globals.dom.Paper.circle(2*t);return null!==e&&a.attr(e),a}},{key:\"drawPath\",value:function(t){var e=t.d,i=void 0===e?\"\":e,a=t.stroke,s=void 0===a?\"#a8a8a8\":a,r=t.strokeWidth,o=void 0===r?1:r,n=t.fill,l=t.fillOpacity,h=void 0===l?1:l,c=t.strokeOpacity,d=void 0===c?1:c,g=t.classes,u=t.strokeLinecap,f=void 0===u?null:u,p=t.strokeDashArray,x=void 0===p?0:p,b=this.w;return null===f&&(f=b.config.stroke.lineCap),(i.indexOf(\"undefined\")>-1||i.indexOf(\"NaN\")>-1)&&(i=\"M 0 \".concat(b.globals.gridHeight)),b.globals.dom.Paper.path(i).attr({fill:n,\"fill-opacity\":h,stroke:s,\"stroke-opacity\":d,\"stroke-linecap\":f,\"stroke-width\":o,\"stroke-dasharray\":x,class:g})}},{key:\"group\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=e.globals.dom.Paper.group();return null!==t&&i.attr(t),i}},{key:\"move\",value:function(t,e){var i=[\"M\",t,e].join(\" \");return i}},{key:\"line\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=null;return null===i?a=[\"L\",t,e].join(\" \"):\"H\"===i?a=[\"H\",t].join(\" \"):\"V\"===i&&(a=[\"V\",e].join(\" \")),a}},{key:\"curve\",value:function(t,e,i,a,s,r){var o=[\"C\",t,e,i,a,s,r].join(\" \");return o}},{key:\"quadraticCurve\",value:function(t,e,i,a){return[\"Q\",t,e,i,a].join(\" \")}},{key:\"arc\",value:function(t,e,i,a,s,r,o){var n=arguments.length>7&&void 0!==arguments[7]&&arguments[7],l=\"A\";n&&(l=\"a\");var h=[l,t,e,i,a,s,r,o].join(\" \");return h}},{key:\"renderPaths\",value:function(t){var e,i=t.j,a=t.realIndex,s=t.pathFrom,r=t.pathTo,n=t.stroke,l=t.strokeWidth,h=t.strokeLinecap,c=t.fill,d=t.animationDelay,g=t.initialSpeed,u=t.dataChangeSpeed,f=t.className,b=t.shouldClipToGrid,m=void 0===b||b,v=t.bindEventsOnPaths,y=void 0===v||v,w=t.drawShadow,k=void 0===w||w,A=this.w,S=new x(this.ctx),C=new p(this.ctx),L=this.w.config.chart.animations.enabled,P=L&&this.w.config.chart.animations.dynamicAnimation.enabled,T=!!(L&&!A.globals.resized||P&&A.globals.dataChanged&&A.globals.shouldAnimate);T?e=s:(e=r,A.globals.animationEnded=!0);var M=A.config.stroke.dashArray,z=0;z=Array.isArray(M)?M[a]:A.config.stroke.dashArray;var I=this.drawPath({d:e,stroke:n,strokeWidth:l,fill:c,fillOpacity:1,classes:f,strokeLinecap:h,strokeDashArray:z});if(I.attr(\"index\",a),m&&I.attr({\"clip-path\":\"url(#gridRectMask\".concat(A.globals.cuid,\")\")}),\"none\"!==A.config.states.normal.filter.type)S.getDefaultFilter(I,a);else if(A.config.chart.dropShadow.enabled&&k&&(!A.config.chart.dropShadow.enabledOnSeries||A.config.chart.dropShadow.enabledOnSeries&&-1!==A.config.chart.dropShadow.enabledOnSeries.indexOf(a))){var X=A.config.chart.dropShadow;S.dropShadow(I,X,a)}y&&(I.node.addEventListener(\"mouseenter\",this.pathMouseEnter.bind(this,I)),I.node.addEventListener(\"mouseleave\",this.pathMouseLeave.bind(this,I)),I.node.addEventListener(\"mousedown\",this.pathMouseDown.bind(this,I))),I.attr({pathTo:r,pathFrom:s});var E={el:I,j:i,realIndex:a,pathFrom:s,pathTo:r,fill:c,strokeWidth:l,delay:d};return!L||A.globals.resized||A.globals.dataChanged?!A.globals.resized&&A.globals.dataChanged||C.showDelayedElements():C.animatePathsGradually(o(o({},E),{},{speed:g})),A.globals.dataChanged&&P&&T&&C.animatePathsGradually(o(o({},E),{},{speed:u})),I}},{key:\"drawPattern\",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"#a8a8a8\",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=this.w,o=r.globals.dom.Paper.pattern(e,i,(function(r){\"horizontalLines\"===t?r.line(0,0,i,0).stroke({color:a,width:s+1}):\"verticalLines\"===t?r.line(0,0,0,e).stroke({color:a,width:s+1}):\"slantedLines\"===t?r.line(0,0,e,i).stroke({color:a,width:s}):\"squares\"===t?r.rect(e,i).fill(\"none\").stroke({color:a,width:s}):\"circles\"===t&&r.circle(e).fill(\"none\").stroke({color:a,width:s})}));return o}},{key:\"drawGradient\",value:function(t,e,i,a,s){var r,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,h=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0,c=this.w;e.length<9&&0===e.indexOf(\"#\")&&(e=f.hexToRgba(e,a)),i.length<9&&0===i.indexOf(\"#\")&&(i=f.hexToRgba(i,s));var d=0,g=1,u=1,p=null;null!==n&&(d=void 0!==n[0]?n[0]/100:0,g=void 0!==n[1]?n[1]/100:1,u=void 0!==n[2]?n[2]/100:1,p=void 0!==n[3]?n[3]/100:null);var x=!(\"donut\"!==c.config.chart.type&&\"pie\"!==c.config.chart.type&&\"polarArea\"!==c.config.chart.type&&\"bubble\"!==c.config.chart.type);if(r=null===l||0===l.length?c.globals.dom.Paper.gradient(x?\"radial\":\"linear\",(function(t){t.at(d,e,a),t.at(g,i,s),t.at(u,i,s),null!==p&&t.at(p,e,a)})):c.globals.dom.Paper.gradient(x?\"radial\":\"linear\",(function(t){(Array.isArray(l[h])?l[h]:l).forEach((function(e){t.at(e.offset/100,e.color,e.opacity)}))})),x){var b=c.globals.gridWidth/2,m=c.globals.gridHeight/2;\"bubble\"!==c.config.chart.type?r.attr({gradientUnits:\"userSpaceOnUse\",cx:b,cy:m,r:o}):r.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else\"vertical\"===t?r.from(0,0).to(0,1):\"diagonal\"===t?r.from(0,0).to(1,1):\"horizontal\"===t?r.from(0,1).to(1,1):\"diagonal2\"===t&&r.from(1,0).to(0,1);return r}},{key:\"drawText\",value:function(t){var e,i=t.x,a=t.y,s=t.text,r=t.textAnchor,o=t.fontSize,n=t.fontFamily,l=t.fontWeight,h=t.foreColor,c=t.opacity,d=t.cssClass,g=void 0===d?\"\":d,u=t.isPlainText,f=void 0===u||u,p=this.w;return void 0===s&&(s=\"\"),r||(r=\"start\"),h&&h.length||(h=p.config.chart.foreColor),n=n||p.config.chart.fontFamily,l=l||\"regular\",(e=Array.isArray(s)?p.globals.dom.Paper.text((function(t){for(var e=0;e-1){var n=i.globals.selectedDataPoints[s].indexOf(r);i.globals.selectedDataPoints[s].splice(n,1)}}else{if(!i.config.states.active.allowMultipleDataPointsSelection&&i.globals.selectedDataPoints.length>0){i.globals.selectedDataPoints=[];var l=i.globals.dom.Paper.select(\".apexcharts-series path\").members,h=i.globals.dom.Paper.select(\".apexcharts-series circle, .apexcharts-series rect\").members,c=function(t){Array.prototype.forEach.call(t,(function(t){t.node.setAttribute(\"selected\",\"false\"),a.getDefaultFilter(t,s)}))};c(l),c(h)}t.node.setAttribute(\"selected\",\"true\"),o=\"true\",void 0===i.globals.selectedDataPoints[s]&&(i.globals.selectedDataPoints[s]=[]),i.globals.selectedDataPoints[s].push(r)}if(\"true\"===o){var d=i.config.states.active.filter;\"none\"!==d&&a.applyFilter(t,s,d.type,d.value)}else\"none\"!==i.config.states.active.filter.type&&a.getDefaultFilter(t,s);\"function\"==typeof i.config.chart.events.dataPointSelection&&i.config.chart.events.dataPointSelection(e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}),e&&this.ctx.events.fireEvent(\"dataPointSelection\",[e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}])}},{key:\"rotateAroundCenter\",value:function(t){var e=t.getBBox();return{x:e.x+e.width/2,y:e.y+e.height/2}}},{key:\"getTextRects\",value:function(t,e,i,a){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.w,o=this.drawText({x:-200,y:-200,text:t,textAnchor:\"start\",fontSize:e,fontFamily:i,foreColor:\"#fff\",opacity:0});a&&o.attr(\"transform\",a),r.globals.dom.Paper.add(o);var n=o.bbox();return s||(n=o.node.getBoundingClientRect()),o.remove(),{width:n.width,height:n.height}}},{key:\"placeTextWithEllipsis\",value:function(t,e,i){if(\"function\"==typeof t.getComputedTextLength&&(t.textContent=e,e.length>0&&t.getComputedTextLength()>=i/1.1)){for(var a=e.length-3;a>0;a-=3)if(t.getSubStringLength(0,a)<=i/1.1)return void(t.textContent=e.substring(0,a)+\"...\");t.textContent=\".\"}}}],[{key:\"setAttrs\",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}}]),t}(),m=function(){function t(i){e(this,t),this.w=i.w,this.annoCtx=i}return a(t,[{key:\"setOrientations\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;if(\"vertical\"===t.label.orientation){var a=null!==e?e:0,s=i.globals.dom.baseEl.querySelector(\".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='\".concat(a,\"']\"));if(null!==s){var r=s.getBoundingClientRect();s.setAttribute(\"x\",parseFloat(s.getAttribute(\"x\"))-r.height+4),\"top\"===t.label.position?s.setAttribute(\"y\",parseFloat(s.getAttribute(\"y\"))+r.width):s.setAttribute(\"y\",parseFloat(s.getAttribute(\"y\"))-r.width);var o=this.annoCtx.graphics.rotateAroundCenter(s),n=o.x,l=o.y;s.setAttribute(\"transform\",\"rotate(-90 \".concat(n,\" \").concat(l,\")\"))}}}},{key:\"addBackgroundToAnno\",value:function(t,e){var i=this.w;if(!t||!e.label.text||e.label.text&&!e.label.text.trim())return null;var a=i.globals.dom.baseEl.querySelector(\".apexcharts-grid\").getBoundingClientRect(),s=t.getBoundingClientRect(),r=e.label.style.padding.left,o=e.label.style.padding.right,n=e.label.style.padding.top,l=e.label.style.padding.bottom;\"vertical\"===e.label.orientation&&(n=e.label.style.padding.left,l=e.label.style.padding.right,r=e.label.style.padding.top,o=e.label.style.padding.bottom);var h=s.left-a.left-r,c=s.top-a.top-n,d=this.annoCtx.graphics.drawRect(h-i.globals.barPadForNumericAxis,c,s.width+r+o,s.height+n+l,e.label.borderRadius,e.label.style.background,1,e.label.borderWidth,e.label.borderColor,0);return e.id&&d.node.classList.add(e.id),d}},{key:\"annotationsBackground\",value:function(){var t=this,e=this.w,i=function(i,a,s){var r=e.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s,\"-annotations .apexcharts-\").concat(s,\"-annotation-label[rel='\").concat(a,\"']\"));if(r){var o=r.parentNode,n=t.addBackgroundToAnno(r,i);n&&o.insertBefore(n.node,r)}};e.config.annotations.xaxis.map((function(t,e){i(t,e,\"xaxis\")})),e.config.annotations.yaxis.map((function(t,e){i(t,e,\"yaxis\")})),e.config.annotations.points.map((function(t,e){i(t,e,\"point\")}))}},{key:\"getStringX\",value:function(t){var e=this.w,i=t;e.config.xaxis.convertedCatToNumeric&&e.globals.categoryLabels.length&&(t=e.globals.categoryLabels.indexOf(t)+1);var a=e.globals.labels.indexOf(t),s=e.globals.dom.baseEl.querySelector(\".apexcharts-xaxis-texts-g text:nth-child(\"+(a+1)+\")\");return s&&(i=parseFloat(s.getAttribute(\"x\"))),i}}]),t}(),v=function(){function t(i){e(this,t),this.w=i.w,this.annoCtx=i,this.invertAxis=this.annoCtx.invertAxis}return a(t,[{key:\"addXaxisAnnotation\",value:function(t,e,i){var a=this.w,s=this.invertAxis?a.globals.minY:a.globals.minX,r=this.invertAxis?a.globals.maxY:a.globals.maxX,o=this.invertAxis?a.globals.yRange[0]:a.globals.xRange,n=(t.x-s)/(o/a.globals.gridWidth);this.annoCtx.inversedReversedAxis&&(n=(r-t.x)/(o/a.globals.gridWidth));var l=t.label.text;\"category\"!==a.config.xaxis.type&&!a.config.xaxis.convertedCatToNumeric||this.invertAxis||a.globals.dataFormatXNumeric||(n=this.annoCtx.helpers.getStringX(t.x));var h=t.strokeDashArray;if(f.isNumber(n)){if(null===t.x2||void 0===t.x2){var c=this.annoCtx.graphics.drawLine(n+t.offsetX,0+t.offsetY,n+t.offsetX,a.globals.gridHeight+t.offsetY,t.borderColor,h,t.borderWidth);e.appendChild(c.node),t.id&&c.node.classList.add(t.id)}else{var d=(t.x2-s)/(o/a.globals.gridWidth);if(this.annoCtx.inversedReversedAxis&&(d=(r-t.x2)/(o/a.globals.gridWidth)),\"category\"!==a.config.xaxis.type&&!a.config.xaxis.convertedCatToNumeric||this.invertAxis||a.globals.dataFormatXNumeric||(d=this.annoCtx.helpers.getStringX(t.x2)),d0&&void 0!==arguments[0]?arguments[0]:null;return null===t?this.w.config.series.reduce((function(t,e){return t+e}),0):this.w.globals.series[t].reduce((function(t,e){return t+e}),0)}},{key:\"isSeriesNull\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return 0===(null===t?this.w.config.series.filter((function(t){return null!==t})):this.w.config.series[t].data.filter((function(t){return null!==t}))).length}},{key:\"seriesHaveSameValues\",value:function(t){return this.w.globals.series[t].every((function(t,e,i){return t===i[0]}))}},{key:\"getCategoryLabels\",value:function(t){var e=this.w,i=t.slice();return e.config.xaxis.convertedCatToNumeric&&(i=t.map((function(t,i){return e.config.xaxis.labels.formatter(t-e.globals.minX+1)}))),i}},{key:\"getLargestSeries\",value:function(){var t=this.w;t.globals.maxValsInArrayIndex=t.globals.series.map((function(t){return t.length})).indexOf(Math.max.apply(Math,t.globals.series.map((function(t){return t.length}))))}},{key:\"getLargestMarkerSize\",value:function(){var t=this.w,e=0;return t.globals.markers.size.forEach((function(t){e=Math.max(e,t)})),t.globals.markers.largestSize=e,e}},{key:\"getSeriesTotals\",value:function(){var t=this.w;t.globals.seriesTotals=t.globals.series.map((function(t,e){var i=0;if(Array.isArray(t))for(var a=0;at&&i.globals.seriesX[s][o]1&&(e=!0),{comboBarCount:i,comboCharts:e}}},{key:\"extendArrayProps\",value:function(t,e,i){return e.yaxis&&(e=t.extendYAxis(e,i)),e.annotations&&(e.annotations.yaxis&&(e=t.extendYAxisAnnotations(e)),e.annotations.xaxis&&(e=t.extendXAxisAnnotations(e)),e.annotations.points&&(e=t.extendPointAnnotations(e))),e}}]),t}(),w=function(){function t(i){e(this,t),this.w=i.w,this.annoCtx=i}return a(t,[{key:\"addYaxisAnnotation\",value:function(t,e,i){var a,s=this.w,r=t.strokeDashArray,o=this._getY1Y2(\"y1\",t),n=t.label.text;if(null===t.y2||void 0===t.y2){var l=this.annoCtx.graphics.drawLine(0+t.offsetX,o+t.offsetY,this._getYAxisAnnotationWidth(t),o+t.offsetY,t.borderColor,r,t.borderWidth);e.appendChild(l.node),t.id&&l.node.classList.add(t.id)}else{if((a=this._getY1Y2(\"y2\",t))>o){var h=o;o=a,a=h}var c=this.annoCtx.graphics.drawRect(0+t.offsetX,a+t.offsetY,this._getYAxisAnnotationWidth(t),o-a,0,t.fillColor,t.opacity,1,t.borderColor,r);c.node.classList.add(\"apexcharts-annotation-rect\"),c.attr(\"clip-path\",\"url(#gridRectMask\".concat(s.globals.cuid,\")\")),e.appendChild(c.node),t.id&&c.node.classList.add(t.id)}var d=\"right\"===t.label.position?s.globals.gridWidth:0,g=this.annoCtx.graphics.drawText({x:d+t.label.offsetX,y:(a||o)+t.label.offsetY-3,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:\"apexcharts-yaxis-annotation-label \".concat(t.label.style.cssClass,\" \").concat(t.id?t.id:\"\")});g.attr({rel:i}),e.appendChild(g.node)}},{key:\"_getY1Y2\",value:function(t,e){var i,a=\"y1\"===t?e.y:e.y2,s=this.w;if(this.annoCtx.invertAxis){var r=s.globals.labels.indexOf(a);s.config.xaxis.convertedCatToNumeric&&(r=s.globals.categoryLabels.indexOf(a));var o=s.globals.dom.baseEl.querySelector(\".apexcharts-yaxis-texts-g text:nth-child(\"+(r+1)+\")\");o&&(i=parseFloat(o.getAttribute(\"y\")))}else{var n;if(s.config.yaxis[e.yAxisIndex].logarithmic)n=(a=new y(this.annoCtx.ctx).getLogVal(a,e.yAxisIndex))/s.globals.yLogRatio[e.yAxisIndex];else n=(a-s.globals.minYArr[e.yAxisIndex])/(s.globals.yRange[e.yAxisIndex]/s.globals.gridHeight);i=s.globals.gridHeight-n,s.config.yaxis[e.yAxisIndex]&&s.config.yaxis[e.yAxisIndex].reversed&&(i=n)}return i}},{key:\"_getYAxisAnnotationWidth\",value:function(t){var e=this.w;e.globals.gridWidth;return(t.width.indexOf(\"%\")>-1?e.globals.gridWidth*parseInt(t.width,10)/100:parseInt(t.width,10))+t.offsetX}},{key:\"drawYAxisAnnotations\",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:\"apexcharts-yaxis-annotations\"});return e.config.annotations.yaxis.map((function(e,a){t.addYaxisAnnotation(e,i.node,a)})),i}}]),t}(),k=function(){function t(i){e(this,t),this.w=i.w,this.annoCtx=i}return a(t,[{key:\"addPointAnnotation\",value:function(t,e,i){var a=this.w,s=0,r=0,o=0;this.annoCtx.invertAxis&&console.warn(\"Point annotation is not supported in horizontal bar charts.\");var n=parseFloat(t.y);if(\"string\"==typeof t.x){var l=a.globals.labels.indexOf(t.x);a.config.xaxis.convertedCatToNumeric&&(l=a.globals.categoryLabels.indexOf(t.x)),s=this.annoCtx.helpers.getStringX(t.x),null===t.y&&(n=a.globals.series[t.seriesIndex][l])}else s=(t.x-a.globals.minX)/(a.globals.xRange/a.globals.gridWidth);for(var h,c=[],d=0,g=0;g<=t.seriesIndex;g++){var u=a.config.yaxis[g].seriesName;if(u)for(var p=g+1;p<=t.seriesIndex;p++)a.config.yaxis[p].seriesName===u&&-1===c.indexOf(u)&&(d++,c.push(u))}if(a.config.yaxis[t.yAxisIndex].logarithmic){h=(n=new y(this.annoCtx.ctx).getLogVal(n,t.yAxisIndex))/a.globals.yLogRatio[t.yAxisIndex]}else{var x=t.yAxisIndex+d;h=(n-a.globals.minYArr[x])/(a.globals.yRange[x]/a.globals.gridHeight)}if(r=a.globals.gridHeight-h-parseFloat(t.label.style.fontSize)-t.marker.size,o=a.globals.gridHeight-h,a.config.yaxis[t.yAxisIndex]&&a.config.yaxis[t.yAxisIndex].reversed&&(r=h+parseFloat(t.label.style.fontSize)+t.marker.size,o=h),f.isNumber(s)){var b={pSize:t.marker.size,pointStrokeWidth:t.marker.strokeWidth,pointFillColor:t.marker.fillColor,pointStrokeColor:t.marker.strokeColor,shape:t.marker.shape,pRadius:t.marker.radius,class:\"apexcharts-point-annotation-marker \".concat(t.marker.cssClass,\" \").concat(t.id?t.id:\"\")},m=this.annoCtx.graphics.drawMarker(s+t.marker.offsetX,o+t.marker.offsetY,b);e.appendChild(m.node);var v=t.label.text?t.label.text:\"\",w=this.annoCtx.graphics.drawText({x:s+t.label.offsetX,y:r+t.label.offsetY,text:v,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:\"apexcharts-point-annotation-label \".concat(t.label.style.cssClass,\" \").concat(t.id?t.id:\"\")});if(w.attr({rel:i}),e.appendChild(w.node),t.customSVG.SVG){var k=this.annoCtx.graphics.group({class:\"apexcharts-point-annotations-custom-svg \"+t.customSVG.cssClass});k.attr({transform:\"translate(\".concat(s+t.customSVG.offsetX,\", \").concat(r+t.customSVG.offsetY,\")\")}),k.node.innerHTML=t.customSVG.SVG,e.appendChild(k.node)}if(t.image.path){var A=t.image.width?t.image.width:20,S=t.image.height?t.image.height:20;this.annoCtx.addImage({x:s+t.image.offsetX-A/2,y:r+t.image.offsetY-S/2,width:A,height:S,path:t.image.path,appendTo:\".apexcharts-point-annotations\"})}}}},{key:\"drawPointAnnotations\",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:\"apexcharts-point-annotations\"});return e.config.annotations.points.map((function(e,a){t.addPointAnnotation(e,i.node,a)})),i}}]),t}();var A={name:\"en\",options:{months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],shortMonths:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],days:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],shortDays:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],toolbar:{exportToSVG:\"Download SVG\",exportToPNG:\"Download PNG\",exportToCSV:\"Download CSV\",menu:\"Menu\",selection:\"Selection\",selectionZoom:\"Selection Zoom\",zoomIn:\"Zoom In\",zoomOut:\"Zoom Out\",pan:\"Panning\",reset:\"Reset Zoom\"}}},S=function(){function t(){e(this,t),this.yAxis={show:!0,showAlways:!1,showForNullSeries:!0,seriesName:void 0,opposite:!1,reversed:!1,logarithmic:!1,tickAmount:void 0,forceNiceScale:!1,max:void 0,min:void 0,floating:!1,decimalsInFloat:void 0,labels:{show:!0,minWidth:0,maxWidth:160,offsetX:0,offsetY:0,align:void 0,rotate:0,padding:20,style:{colors:[],fontSize:\"11px\",fontWeight:400,fontFamily:void 0,cssClass:\"\"},formatter:void 0},axisBorder:{show:!1,color:\"#e0e0e0\",width:1,offsetX:0,offsetY:0},axisTicks:{show:!1,color:\"#e0e0e0\",width:6,offsetX:0,offsetY:0},title:{text:void 0,rotate:-90,offsetY:0,offsetX:0,style:{color:void 0,fontSize:\"11px\",fontWeight:900,fontFamily:void 0,cssClass:\"\"}},tooltip:{enabled:!1,offsetX:0},crosshairs:{show:!0,position:\"front\",stroke:{color:\"#b6b6b6\",width:1,dashArray:0}}},this.pointAnnotation={x:0,y:null,yAxisIndex:0,seriesIndex:0,marker:{size:4,fillColor:\"#fff\",strokeWidth:2,strokeColor:\"#333\",shape:\"circle\",offsetX:0,offsetY:0,radius:2,cssClass:\"\"},label:{borderColor:\"#c2c2c2\",borderWidth:1,borderRadius:2,text:void 0,textAnchor:\"middle\",offsetX:0,offsetY:0,style:{background:\"#fff\",color:void 0,fontSize:\"11px\",fontFamily:void 0,fontWeight:400,cssClass:\"\",padding:{left:5,right:5,top:2,bottom:2}}},customSVG:{SVG:void 0,cssClass:void 0,offsetX:0,offsetY:0},image:{path:void 0,width:20,height:20,offsetX:0,offsetY:0}},this.yAxisAnnotation={y:0,y2:null,strokeDashArray:1,fillColor:\"#c2c2c2\",borderColor:\"#c2c2c2\",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,width:\"100%\",yAxisIndex:0,label:{borderColor:\"#c2c2c2\",borderWidth:1,borderRadius:2,text:void 0,textAnchor:\"end\",position:\"right\",offsetX:0,offsetY:-3,style:{background:\"#fff\",color:void 0,fontSize:\"11px\",fontFamily:void 0,fontWeight:400,cssClass:\"\",padding:{left:5,right:5,top:2,bottom:2}}}},this.xAxisAnnotation={x:0,x2:null,strokeDashArray:1,fillColor:\"#c2c2c2\",borderColor:\"#c2c2c2\",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,label:{borderColor:\"#c2c2c2\",borderWidth:1,borderRadius:2,text:void 0,textAnchor:\"middle\",orientation:\"vertical\",position:\"top\",offsetX:0,offsetY:0,style:{background:\"#fff\",color:void 0,fontSize:\"11px\",fontFamily:void 0,fontWeight:400,cssClass:\"\",padding:{left:5,right:5,top:2,bottom:2}}}},this.text={x:0,y:0,text:\"\",textAnchor:\"start\",foreColor:void 0,fontSize:\"13px\",fontFamily:void 0,fontWeight:400,appendTo:\".apexcharts-annotations\",backgroundColor:\"transparent\",borderColor:\"#c2c2c2\",borderRadius:0,borderWidth:0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2}}return a(t,[{key:\"init\",value:function(){return{annotations:{position:\"front\",yaxis:[this.yAxisAnnotation],xaxis:[this.xAxisAnnotation],points:[this.pointAnnotation],texts:[],images:[],shapes:[]},chart:{animations:{enabled:!0,easing:\"easeinout\",speed:800,animateGradually:{delay:150,enabled:!0},dynamicAnimation:{enabled:!0,speed:350}},background:\"transparent\",locales:[A],defaultLocale:\"en\",dropShadow:{enabled:!1,enabledOnSeries:void 0,top:2,left:2,blur:4,color:\"#000\",opacity:.35},events:{animationEnd:void 0,beforeMount:void 0,mounted:void 0,updated:void 0,click:void 0,mouseMove:void 0,mouseLeave:void 0,legendClick:void 0,markerClick:void 0,selection:void 0,dataPointSelection:void 0,dataPointMouseEnter:void 0,dataPointMouseLeave:void 0,beforeZoom:void 0,beforeResetZoom:void 0,zoomed:void 0,scrolled:void 0,brushScrolled:void 0},foreColor:\"#373d3f\",fontFamily:\"Helvetica, Arial, sans-serif\",height:\"auto\",parentHeightOffset:15,redrawOnParentResize:!0,redrawOnWindowResize:!0,id:void 0,group:void 0,offsetX:0,offsetY:0,selection:{enabled:!1,type:\"x\",fill:{color:\"#24292e\",opacity:.1},stroke:{width:1,color:\"#24292e\",opacity:.4,dashArray:3},xaxis:{min:void 0,max:void 0},yaxis:{min:void 0,max:void 0}},sparkline:{enabled:!1},brush:{enabled:!1,autoScaleYaxis:!0,target:void 0},stacked:!1,stackType:\"normal\",toolbar:{show:!0,offsetX:0,offsetY:0,tools:{download:!0,selection:!0,zoom:!0,zoomin:!0,zoomout:!0,pan:!0,reset:!0,customIcons:[]},export:{csv:{filename:void 0,columnDelimiter:\",\",headerCategory:\"category\",headerValue:\"value\",dateFormatter:function(t){return new Date(t).toDateString()}},png:{filename:void 0},svg:{filename:void 0}},autoSelected:\"zoom\"},type:\"line\",width:\"100%\",zoom:{enabled:!0,type:\"x\",autoScaleYaxis:!1,zoomedArea:{fill:{color:\"#90CAF9\",opacity:.4},stroke:{color:\"#0D47A1\",opacity:.4,width:1}}}},plotOptions:{area:{fillTo:\"origin\"},bar:{horizontal:!1,columnWidth:\"70%\",barHeight:\"70%\",distributed:!1,borderRadius:0,rangeBarOverlap:!0,rangeBarGroupRows:!1,colors:{ranges:[],backgroundBarColors:[],backgroundBarOpacity:1,backgroundBarRadius:0},dataLabels:{position:\"top\",maxItems:100,hideOverflowingLabels:!0,orientation:\"horizontal\"}},bubble:{minBubbleRadius:void 0,maxBubbleRadius:void 0},candlestick:{colors:{upward:\"#00B746\",downward:\"#EF403C\"},wick:{useFillColor:!0}},boxPlot:{colors:{upper:\"#00E396\",lower:\"#008FFB\"}},heatmap:{radius:2,enableShades:!0,shadeIntensity:.5,reverseNegativeShade:!1,distributed:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},treemap:{enableShades:!0,shadeIntensity:.5,distributed:!1,reverseNegativeShade:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},radialBar:{inverseOrder:!1,startAngle:0,endAngle:360,offsetX:0,offsetY:0,hollow:{margin:5,size:\"50%\",background:\"transparent\",image:void 0,imageWidth:150,imageHeight:150,imageOffsetX:0,imageOffsetY:0,imageClipped:!0,position:\"front\",dropShadow:{enabled:!1,top:0,left:0,blur:3,color:\"#000\",opacity:.5}},track:{show:!0,startAngle:void 0,endAngle:void 0,background:\"#f2f2f2\",strokeWidth:\"97%\",opacity:1,margin:5,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:\"#000\",opacity:.5}},dataLabels:{show:!0,name:{show:!0,fontSize:\"16px\",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:0,formatter:function(t){return t}},value:{show:!0,fontSize:\"14px\",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:16,formatter:function(t){return t+\"%\"}},total:{show:!1,label:\"Total\",fontSize:\"16px\",fontWeight:600,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)/t.globals.series.length+\"%\"}}}},pie:{customScale:1,offsetX:0,offsetY:0,startAngle:0,endAngle:360,expandOnClick:!0,dataLabels:{offset:0,minAngleToShowLabel:10},donut:{size:\"65%\",background:\"transparent\",labels:{show:!1,name:{show:!0,fontSize:\"16px\",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:-10,formatter:function(t){return t}},value:{show:!0,fontSize:\"20px\",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:10,formatter:function(t){return t}},total:{show:!1,showAlways:!1,label:\"Total\",fontSize:\"16px\",fontWeight:400,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)}}}}},polarArea:{rings:{strokeWidth:1,strokeColor:\"#e8e8e8\"},spokes:{strokeWidth:1,connectorColors:\"#e8e8e8\"}},radar:{size:void 0,offsetX:0,offsetY:0,polygons:{strokeWidth:1,strokeColors:\"#e8e8e8\",connectorColors:\"#e8e8e8\",fill:{colors:void 0}}}},colors:void 0,dataLabels:{enabled:!0,enabledOnSeries:void 0,formatter:function(t){return null!==t?t:\"\"},textAnchor:\"middle\",distributed:!1,offsetX:0,offsetY:0,style:{fontSize:\"12px\",fontFamily:void 0,fontWeight:600,colors:void 0},background:{enabled:!0,foreColor:\"#fff\",borderRadius:2,padding:4,opacity:.9,borderWidth:1,borderColor:\"#fff\",dropShadow:{enabled:!1,top:1,left:1,blur:1,color:\"#000\",opacity:.45}},dropShadow:{enabled:!1,top:1,left:1,blur:1,color:\"#000\",opacity:.45}},fill:{type:\"solid\",colors:void 0,opacity:.85,gradient:{shade:\"dark\",type:\"horizontal\",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]},image:{src:[],width:void 0,height:void 0},pattern:{style:\"squares\",width:6,height:6,strokeWidth:2}},forecastDataPoints:{count:0,fillOpacity:.5,strokeWidth:void 0,dashArray:4},grid:{show:!0,borderColor:\"#e0e0e0\",strokeDashArray:0,position:\"back\",xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},row:{colors:void 0,opacity:.5},column:{colors:void 0,opacity:.5},padding:{top:0,right:10,bottom:0,left:12}},labels:[],legend:{show:!0,showForSingleSeries:!1,showForNullSeries:!0,showForZeroSeries:!0,floating:!1,position:\"bottom\",horizontalAlign:\"center\",inverseOrder:!1,fontSize:\"12px\",fontFamily:void 0,fontWeight:400,width:void 0,height:void 0,formatter:void 0,tooltipHoverFormatter:void 0,offsetX:-20,offsetY:4,customLegendItems:[],labels:{colors:void 0,useSeriesColors:!1},markers:{width:12,height:12,strokeWidth:0,fillColors:void 0,strokeColor:\"#fff\",radius:12,customHTML:void 0,offsetX:0,offsetY:0,onClick:void 0},itemMargin:{horizontal:5,vertical:2},onItemClick:{toggleDataSeries:!0},onItemHover:{highlightDataSeries:!0}},markers:{discrete:[],size:0,colors:void 0,strokeColors:\"#fff\",strokeWidth:2,strokeOpacity:.9,strokeDashArray:0,fillOpacity:1,shape:\"circle\",width:8,height:8,radius:2,offsetX:0,offsetY:0,onClick:void 0,onDblClick:void 0,showNullDataPoints:!0,hover:{size:void 0,sizeOffset:3}},noData:{text:void 0,align:\"center\",verticalAlign:\"middle\",offsetX:0,offsetY:0,style:{color:void 0,fontSize:\"14px\",fontFamily:void 0}},responsive:[],series:void 0,states:{normal:{filter:{type:\"none\",value:0}},hover:{filter:{type:\"lighten\",value:.1}},active:{allowMultipleDataPointsSelection:!1,filter:{type:\"darken\",value:.5}}},title:{text:void 0,align:\"left\",margin:5,offsetX:0,offsetY:0,floating:!1,style:{fontSize:\"14px\",fontWeight:900,fontFamily:void 0,color:void 0}},subtitle:{text:void 0,align:\"left\",margin:5,offsetX:0,offsetY:30,floating:!1,style:{fontSize:\"12px\",fontWeight:400,fontFamily:void 0,color:void 0}},stroke:{show:!0,curve:\"smooth\",lineCap:\"butt\",width:2,colors:void 0,dashArray:0},tooltip:{enabled:!0,enabledOnSeries:void 0,shared:!0,followCursor:!1,intersect:!1,inverseOrder:!1,custom:void 0,fillSeriesColor:!1,theme:\"light\",style:{fontSize:\"12px\",fontFamily:void 0},onDatasetHover:{highlightDataSeries:!1},x:{show:!0,format:\"dd MMM\",formatter:void 0},y:{formatter:void 0,title:{formatter:function(t){return t?t+\": \":\"\"}}},z:{formatter:void 0,title:\"Size: \"},marker:{show:!0,fillColors:void 0},items:{display:\"flex\"},fixed:{enabled:!1,position:\"topRight\",offsetX:0,offsetY:0}},xaxis:{type:\"category\",categories:[],convertedCatToNumeric:!1,offsetX:0,offsetY:0,overwriteCategories:void 0,labels:{show:!0,rotate:-45,rotateAlways:!1,hideOverlappingLabels:!0,trim:!1,minHeight:void 0,maxHeight:120,showDuplicates:!0,style:{colors:[],fontSize:\"12px\",fontWeight:400,fontFamily:void 0,cssClass:\"\"},offsetX:0,offsetY:0,format:void 0,formatter:void 0,datetimeUTC:!0,datetimeFormatter:{year:\"yyyy\",month:\"MMM 'yy\",day:\"dd MMM\",hour:\"HH:mm\",minute:\"HH:mm:ss\",second:\"HH:mm:ss\"}},axisBorder:{show:!0,color:\"#e0e0e0\",width:\"100%\",height:1,offsetX:0,offsetY:0},axisTicks:{show:!0,color:\"#e0e0e0\",height:6,offsetX:0,offsetY:0},tickAmount:void 0,tickPlacement:\"on\",min:void 0,max:void 0,range:void 0,floating:!1,decimalsInFloat:void 0,position:\"bottom\",title:{text:void 0,offsetX:0,offsetY:0,style:{color:void 0,fontSize:\"12px\",fontWeight:900,fontFamily:void 0,cssClass:\"\"}},crosshairs:{show:!0,width:1,position:\"back\",opacity:.9,stroke:{color:\"#b6b6b6\",width:1,dashArray:3},fill:{type:\"solid\",color:\"#B1B9C4\",gradient:{colorFrom:\"#D8E3F0\",colorTo:\"#BED1E6\",stops:[0,100],opacityFrom:.4,opacityTo:.5}},dropShadow:{enabled:!1,left:0,top:0,blur:1,opacity:.4}},tooltip:{enabled:!0,offsetY:0,formatter:void 0,style:{fontSize:\"12px\",fontFamily:void 0}}},yaxis:this.yAxis,theme:{mode:\"light\",palette:\"palette1\",monochrome:{enabled:!1,color:\"#008FFB\",shadeTo:\"light\",shadeIntensity:.65}}}}}]),t}(),C=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.graphics=new b(this.ctx),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.helpers=new m(this),this.xAxisAnnotations=new v(this),this.yAxisAnnotations=new w(this),this.pointsAnnotations=new k(this),this.w.globals.isBarHorizontal&&this.w.config.yaxis[0].reversed&&(this.inversedReversedAxis=!0),this.xDivision=this.w.globals.gridWidth/this.w.globals.dataPoints}return a(t,[{key:\"drawAxesAnnotations\",value:function(){var t=this.w;if(t.globals.axisCharts){for(var e=this.yAxisAnnotations.drawYAxisAnnotations(),i=this.xAxisAnnotations.drawXAxisAnnotations(),a=this.pointsAnnotations.drawPointAnnotations(),s=t.config.chart.animations.enabled,r=[e,i,a],o=[i.node,e.node,a.node],n=0;n<3;n++)t.globals.dom.elGraphical.add(r[n]),!s||t.globals.resized||t.globals.dataChanged||\"scatter\"!==t.config.chart.type&&\"bubble\"!==t.config.chart.type&&t.globals.dataPoints>1&&o[n].classList.add(\"apexcharts-element-hidden\"),t.globals.delayedElements.push({el:o[n],index:0});this.helpers.annotationsBackground()}}},{key:\"drawImageAnnos\",value:function(){var t=this;this.w.config.annotations.images.map((function(e,i){t.addImage(e,i)}))}},{key:\"drawTextAnnos\",value:function(){var t=this;this.w.config.annotations.texts.map((function(e,i){t.addText(e,i)}))}},{key:\"addXaxisAnnotation\",value:function(t,e,i){this.xAxisAnnotations.addXaxisAnnotation(t,e,i)}},{key:\"addYaxisAnnotation\",value:function(t,e,i){this.yAxisAnnotations.addYaxisAnnotation(t,e,i)}},{key:\"addPointAnnotation\",value:function(t,e,i){this.pointsAnnotations.addPointAnnotation(t,e,i)}},{key:\"addText\",value:function(t,e){var i=t.x,a=t.y,s=t.text,r=t.textAnchor,o=t.foreColor,n=t.fontSize,l=t.fontFamily,h=t.fontWeight,c=t.cssClass,d=t.backgroundColor,g=t.borderWidth,u=t.strokeDashArray,f=t.borderRadius,p=t.borderColor,x=t.appendTo,b=void 0===x?\".apexcharts-annotations\":x,m=t.paddingLeft,v=void 0===m?4:m,y=t.paddingRight,w=void 0===y?4:y,k=t.paddingBottom,A=void 0===k?2:k,S=t.paddingTop,C=void 0===S?2:S,L=this.w,P=this.graphics.drawText({x:i,y:a,text:s,textAnchor:r||\"start\",fontSize:n||\"12px\",fontWeight:h||\"regular\",fontFamily:l||L.config.chart.fontFamily,foreColor:o||L.config.chart.foreColor,cssClass:c}),T=L.globals.dom.baseEl.querySelector(b);T&&T.appendChild(P.node);var M=P.bbox();if(s){var z=this.graphics.drawRect(M.x-v,M.y-C,M.width+v+w,M.height+A+C,f,d||\"transparent\",1,g,p,u);T.insertBefore(z.node,P.node)}}},{key:\"addImage\",value:function(t,e){var i=this.w,a=t.path,s=t.x,r=void 0===s?0:s,o=t.y,n=void 0===o?0:o,l=t.width,h=void 0===l?20:l,c=t.height,d=void 0===c?20:c,g=t.appendTo,u=void 0===g?\".apexcharts-annotations\":g,f=i.globals.dom.Paper.image(a);f.size(h,d).move(r,n);var p=i.globals.dom.baseEl.querySelector(u);p&&p.appendChild(f.node)}},{key:\"addXaxisAnnotationExternal\",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:\"xaxis\",contextMethod:i.addXaxisAnnotation}),i}},{key:\"addYaxisAnnotationExternal\",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:\"yaxis\",contextMethod:i.addYaxisAnnotation}),i}},{key:\"addPointAnnotationExternal\",value:function(t,e,i){return void 0===this.invertAxis&&(this.invertAxis=i.w.globals.isBarHorizontal),this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:\"point\",contextMethod:i.addPointAnnotation}),i}},{key:\"addAnnotationExternal\",value:function(t){var e=t.params,i=t.pushToMemory,a=t.context,s=t.type,r=t.contextMethod,o=a,n=o.w,l=n.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s,\"-annotations\")),h=l.childNodes.length+1,c=new S,d=Object.assign({},\"xaxis\"===s?c.xAxisAnnotation:\"yaxis\"===s?c.yAxisAnnotation:c.pointAnnotation),g=f.extend(d,e);switch(s){case\"xaxis\":this.addXaxisAnnotation(g,l,h);break;case\"yaxis\":this.addYaxisAnnotation(g,l,h);break;case\"point\":this.addPointAnnotation(g,l,h)}var u=n.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s,\"-annotations .apexcharts-\").concat(s,\"-annotation-label[rel='\").concat(h,\"']\")),p=this.helpers.addBackgroundToAnno(u,g);return p&&l.insertBefore(p.node,u),i&&n.globals.memory.methodsToExec.push({context:o,id:g.id?g.id:f.randomId(),method:r,label:\"addAnnotation\",params:e}),a}},{key:\"clearAnnotations\",value:function(t){var e=t.w,i=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations\");e.globals.memory.methodsToExec.map((function(t,i){\"addText\"!==t.label&&\"addAnnotation\"!==t.label||e.globals.memory.methodsToExec.splice(i,1)})),i=f.listToArray(i),Array.prototype.forEach.call(i,(function(t){for(;t.firstChild;)t.removeChild(t.firstChild)}))}},{key:\"removeAnnotation\",value:function(t,e){var i=t.w,a=i.globals.dom.baseEl.querySelectorAll(\".\".concat(e));a&&(i.globals.memory.methodsToExec.map((function(t,a){t.id===e&&i.globals.memory.methodsToExec.splice(a,1)})),Array.prototype.forEach.call(a,(function(t){t.parentElement.removeChild(t)})))}}]),t}(),L=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.opts=null,this.seriesIndex=0}return a(t,[{key:\"clippedImgArea\",value:function(t){var e=this.w,i=e.config,a=parseInt(e.globals.gridWidth,10),s=parseInt(e.globals.gridHeight,10),r=a>s?a:s,o=t.image,n=0,l=0;void 0===t.width&&void 0===t.height?void 0!==i.fill.image.width&&void 0!==i.fill.image.height?(n=i.fill.image.width+1,l=i.fill.image.height):(n=r+1,l=r):(n=t.width,l=t.height);var h=document.createElementNS(e.globals.SVGNS,\"pattern\");b.setAttrs(h,{id:t.patternID,patternUnits:t.patternUnits?t.patternUnits:\"userSpaceOnUse\",width:n+\"px\",height:l+\"px\"});var c=document.createElementNS(e.globals.SVGNS,\"image\");h.appendChild(c),c.setAttributeNS(window.SVG.xlink,\"href\",o),b.setAttrs(c,{x:0,y:0,preserveAspectRatio:\"none\",width:n+\"px\",height:l+\"px\"}),c.style.opacity=t.opacity,e.globals.dom.elDefs.node.appendChild(h)}},{key:\"getSeriesIndex\",value:function(t){var e=this.w;return(\"bar\"===e.config.chart.type||\"rangeBar\"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||\"heatmap\"===e.config.chart.type||\"treemap\"===e.config.chart.type?this.seriesIndex=t.seriesNumber:this.seriesIndex=t.seriesNumber%e.globals.series.length,this.seriesIndex}},{key:\"fillPath\",value:function(t){var e=this.w;this.opts=t;var i,a,s,r=this.w.config;this.seriesIndex=this.getSeriesIndex(t);var o=this.getFillColors()[this.seriesIndex];void 0!==e.globals.seriesColors[this.seriesIndex]&&(o=e.globals.seriesColors[this.seriesIndex]),\"function\"==typeof o&&(o=o({seriesIndex:this.seriesIndex,dataPointIndex:t.dataPointIndex,value:t.value,w:e}));var n=this.getFillType(this.seriesIndex),l=Array.isArray(r.fill.opacity)?r.fill.opacity[this.seriesIndex]:r.fill.opacity;t.color&&(o=t.color);var h=o;if(-1===o.indexOf(\"rgb\")?o.length<9&&(h=f.hexToRgba(o,l)):o.indexOf(\"rgba\")>-1&&(l=f.getOpacityFromRGBA(o)),t.opacity&&(l=t.opacity),\"pattern\"===n&&(a=this.handlePatternFill(a,o,l,h)),\"gradient\"===n&&(s=this.handleGradientFill(o,l,this.seriesIndex)),\"image\"===n){var c=r.fill.image.src,d=t.patternID?t.patternID:\"\";this.clippedImgArea({opacity:l,image:Array.isArray(c)?t.seriesNumber-1&&(c=f.getOpacityFromRGBA(h));var d=void 0===s.fill.gradient.opacityTo?e:Array.isArray(s.fill.gradient.opacityTo)?s.fill.gradient.opacityTo[i]:s.fill.gradient.opacityTo;if(void 0===s.fill.gradient.gradientToColors||0===s.fill.gradient.gradientToColors.length)a=\"dark\"===s.fill.gradient.shade?n.shadeColor(-1*parseFloat(s.fill.gradient.shadeIntensity),t.indexOf(\"rgb\")>-1?f.rgb2hex(t):t):n.shadeColor(parseFloat(s.fill.gradient.shadeIntensity),t.indexOf(\"rgb\")>-1?f.rgb2hex(t):t);else if(s.fill.gradient.gradientToColors[r.seriesNumber]){var g=s.fill.gradient.gradientToColors[r.seriesNumber];a=g,g.indexOf(\"rgba\")>-1&&(d=f.getOpacityFromRGBA(g))}else a=t;if(s.fill.gradient.inverseColors){var u=h;h=a,a=u}return h.indexOf(\"rgb\")>-1&&(h=f.rgb2hex(h)),a.indexOf(\"rgb\")>-1&&(a=f.rgb2hex(a)),o.drawGradient(l,h,a,c,d,r.size,s.fill.gradient.stops,s.fill.gradient.colorStops,i)}}]),t}(),P=function(){function t(i,a){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:\"setGlobalMarkerSize\",value:function(){var t=this.w;if(t.globals.markers.size=Array.isArray(t.config.markers.size)?t.config.markers.size:[t.config.markers.size],t.globals.markers.size.length>0){if(t.globals.markers.size.length4&&void 0!==arguments[4]&&arguments[4],o=this.w,n=e,l=t,h=null,c=new b(this.ctx);if((o.globals.markers.size[e]>0||r)&&(h=c.group({class:r?\"\":\"apexcharts-series-markers\"})).attr(\"clip-path\",\"url(#gridRectMarkerMask\".concat(o.globals.cuid,\")\")),Array.isArray(l.x))for(var d=0;d0:o.config.markers.size>0;if(p||r){f.isNumber(l.y[d])?u+=\" w\".concat(f.randomId()):u=\"apexcharts-nullpoint\";var m=this.getMarkerConfig(u,e,g);o.config.series[n].data[g]&&(o.config.series[n].data[g].fillColor&&(m.pointFillColor=o.config.series[n].data[g].fillColor),o.config.series[n].data[g].strokeColor&&(m.pointStrokeColor=o.config.series[n].data[g].strokeColor)),a&&(m.pSize=a),(s=c.drawMarker(l.x[d],l.y[d],m)).attr(\"rel\",g),s.attr(\"j\",g),s.attr(\"index\",e),s.node.setAttribute(\"default-marker-size\",m.pSize);var v=new x(this.ctx);v.setSelectionFilter(s,e,g),this.addEvents(s),h&&h.add(s)}else void 0===o.globals.pointsArray[e]&&(o.globals.pointsArray[e]=[]),o.globals.pointsArray[e].push([l.x[d],l.y[d]])}return h}},{key:\"getMarkerConfig\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.getMarkerStyle(e),r=a.globals.markers.size[e],o=a.config.markers;return null!==i&&o.discrete.length&&o.discrete.map((function(t){t.seriesIndex===e&&t.dataPointIndex===i&&(s.pointStrokeColor=t.strokeColor,s.pointFillColor=t.fillColor,r=t.size,s.pointShape=t.shape)})),{pSize:r,pRadius:o.radius,width:Array.isArray(o.width)?o.width[e]:o.width,height:Array.isArray(o.height)?o.height[e]:o.height,pointStrokeWidth:Array.isArray(o.strokeWidth)?o.strokeWidth[e]:o.strokeWidth,pointStrokeColor:s.pointStrokeColor,pointFillColor:s.pointFillColor,shape:s.pointShape||(Array.isArray(o.shape)?o.shape[e]:o.shape),class:t,pointStrokeOpacity:Array.isArray(o.strokeOpacity)?o.strokeOpacity[e]:o.strokeOpacity,pointStrokeDashArray:Array.isArray(o.strokeDashArray)?o.strokeDashArray[e]:o.strokeDashArray,pointFillOpacity:Array.isArray(o.fillOpacity)?o.fillOpacity[e]:o.fillOpacity,seriesIndex:e}}},{key:\"addEvents\",value:function(t){var e=this.w,i=new b(this.ctx);t.node.addEventListener(\"mouseenter\",i.pathMouseEnter.bind(this.ctx,t)),t.node.addEventListener(\"mouseleave\",i.pathMouseLeave.bind(this.ctx,t)),t.node.addEventListener(\"mousedown\",i.pathMouseDown.bind(this.ctx,t)),t.node.addEventListener(\"click\",e.config.markers.onClick),t.node.addEventListener(\"dblclick\",e.config.markers.onDblClick),t.node.addEventListener(\"touchstart\",i.pathMouseDown.bind(this.ctx,t),{passive:!0})}},{key:\"getMarkerStyle\",value:function(t){var e=this.w,i=e.globals.markers.colors,a=e.config.markers.strokeColor||e.config.markers.strokeColors;return{pointStrokeColor:Array.isArray(a)?a[t]:a,pointFillColor:Array.isArray(i)?i[t]:i}}}]),t}(),T=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled}return a(t,[{key:\"draw\",value:function(t,e,i){var a=this.w,s=new b(this.ctx),r=i.realIndex,o=i.pointsPos,n=i.zRatio,l=i.elParent,h=s.group({class:\"apexcharts-series-markers apexcharts-series-\".concat(a.config.chart.type)});if(h.attr(\"clip-path\",\"url(#gridRectMarkerMask\".concat(a.globals.cuid,\")\")),Array.isArray(o.x))for(var c=0;cp.maxBubbleRadius&&(f=p.maxBubbleRadius)}a.config.chart.animations.enabled||(u=f);var x=o.x[c],m=o.y[c];if(u=u||0,null!==m&&void 0!==a.globals.series[r][d]||(g=!1),g){var v=this.drawPoint(x,m,u,f,r,d,e);h.add(v)}l.add(h)}}},{key:\"drawPoint\",value:function(t,e,i,a,s,r,o){var n,l=this.w,h=s,c=new p(this.ctx),d=new x(this.ctx),g=new L(this.ctx),u=new P(this.ctx),f=new b(this.ctx),m=u.getMarkerConfig(\"apexcharts-marker\",h),v=g.fillPath({seriesNumber:s,dataPointIndex:r,patternUnits:\"objectBoundingBox\",value:l.globals.series[s][o]});if(\"circle\"===m.shape?n=f.drawCircle(i):\"square\"!==m.shape&&\"rect\"!==m.shape||(n=f.drawRect(0,0,m.width-m.pointStrokeWidth/2,m.height-m.pointStrokeWidth/2,m.pRadius)),l.config.series[h].data[r]&&l.config.series[h].data[r].fillColor&&(v=l.config.series[h].data[r].fillColor),n.attr({x:t-m.width/2-m.pointStrokeWidth/2,y:e-m.height/2-m.pointStrokeWidth/2,cx:t,cy:e,fill:v,\"fill-opacity\":m.pointFillOpacity,stroke:m.pointStrokeColor,r:a,\"stroke-width\":m.pointStrokeWidth,\"stroke-dasharray\":m.pointStrokeDashArray,\"stroke-opacity\":m.pointStrokeOpacity}),l.config.chart.dropShadow.enabled){var y=l.config.chart.dropShadow;d.dropShadow(n,y,s)}if(!this.initialAnim||l.globals.dataChanged||l.globals.resized)l.globals.animationEnded=!0;else{var w=l.config.chart.animations.speed;c.animateMarker(n,0,\"circle\"===m.shape?a:{width:m.width,height:m.height},w,l.globals.easing,(function(){window.setTimeout((function(){c.animationCompleted(n)}),100)}))}if(l.globals.dataChanged&&\"circle\"===m.shape)if(this.dynamicAnim){var k,A,S,C,T=l.config.chart.animations.dynamicAnimation.speed;null!=(C=l.globals.previousPaths[s]&&l.globals.previousPaths[s][o])&&(k=C.x,A=C.y,S=void 0!==C.r?C.r:a);for(var M=0;Mn.globals.gridHeight+d&&(e=n.globals.gridHeight+d/2),void 0===n.globals.dataLabelsRects[a]&&(n.globals.dataLabelsRects[a]=[]),n.globals.dataLabelsRects[a].push({x:t,y:e,width:c,height:d});var g=n.globals.dataLabelsRects[a].length-2,u=void 0!==n.globals.lastDrawnDataLabelsIndexes[a]?n.globals.lastDrawnDataLabelsIndexes[a][n.globals.lastDrawnDataLabelsIndexes[a].length-1]:0;if(void 0!==n.globals.dataLabelsRects[a][g]){var f=n.globals.dataLabelsRects[a][u];(t>f.x+f.width+2||e>f.y+f.height+2||t+c4&&void 0!==arguments[4]?arguments[4]:2,r=this.w,o=new b(this.ctx),n=r.config.dataLabels,l=0,h=0,c=i,d=null;if(!n.enabled||!Array.isArray(t.x))return d;d=o.group({class:\"apexcharts-data-labels\"});for(var g=0;ge.globals.gridWidth+p.textRects.width+10)&&(n=\"\");var m=e.globals.dataLabels.style.colors[r];((\"bar\"===e.config.chart.type||\"rangeBar\"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||e.config.dataLabels.distributed)&&(m=e.globals.dataLabels.style.colors[o]),\"function\"==typeof m&&(m=m({series:e.globals.series,seriesIndex:r,dataPointIndex:o,w:e})),g&&(m=g);var v=d.offsetX,y=d.offsetY;if(\"bar\"!==e.config.chart.type&&\"rangeBar\"!==e.config.chart.type||(v=0,y=0),p.drawnextLabel){var w=i.drawText({width:100,height:parseInt(d.style.fontSize,10),x:a+v,y:s+y,foreColor:m,textAnchor:l||d.textAnchor,text:n,fontSize:h||d.style.fontSize,fontFamily:d.style.fontFamily,fontWeight:d.style.fontWeight||\"normal\"});if(w.attr({class:\"apexcharts-datalabel\",cx:a,cy:s}),d.dropShadow.enabled){var k=d.dropShadow;new x(this.ctx).dropShadow(w,k)}c.add(w),void 0===e.globals.lastDrawnDataLabelsIndexes[r]&&(e.globals.lastDrawnDataLabelsIndexes[r]=[]),e.globals.lastDrawnDataLabelsIndexes[r].push(o)}}}},{key:\"addBackgroundToDataLabel\",value:function(t,e){var i=this.w,a=i.config.dataLabels.background,s=a.padding,r=a.padding/2,o=e.width,n=e.height,l=new b(this.ctx).drawRect(e.x-s,e.y-r/2,o+2*s,n+r,a.borderRadius,\"transparent\"===i.config.chart.background?\"#fff\":i.config.chart.background,a.opacity,a.borderWidth,a.borderColor);a.dropShadow.enabled&&new x(this.ctx).dropShadow(l,a.dropShadow);return l}},{key:\"dataLabelsBackground\",value:function(){var t=this.w;if(\"bubble\"!==t.config.chart.type)for(var e=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-datalabels text\"),i=0;ii.globals.gridHeight&&(c=i.globals.gridHeight-g)),{bcx:o,bcy:r,dataLabelsX:e,dataLabelsY:c}}},{key:\"calculateBarsDataLabelsPosition\",value:function(t){var e=this.w,i=t.x,a=t.i,s=t.j,r=t.bcy,o=t.barHeight,n=t.barWidth,l=t.textRects,h=t.dataLabelsX,c=t.strokeWidth,d=t.barDataLabelsConfig,g=t.offX,u=t.offY,f=e.globals.gridHeight/e.globals.dataPoints;n=Math.abs(n);var p=r-(this.barCtx.isTimelineBar?0:f)+o/2+l.height/2+u-3,x=this.barCtx.series[a][s]<0,b=i;switch(this.barCtx.isReversed&&(b=i+n-(x?2*n:0),i=e.globals.gridWidth-n),d.position){case\"center\":h=x?b+n/2-g:Math.max(l.width/2,b-n/2)+g;break;case\"bottom\":h=x?b+n-c-Math.round(l.width/2)-g:b-n+c+Math.round(l.width/2)+g;break;case\"top\":h=x?b-c+Math.round(l.width/2)-g:b-c-Math.round(l.width/2)+g}return e.config.chart.stacked||(h<0?h=h+l.width+c:h+l.width/2>e.globals.gridWidth&&(h=e.globals.gridWidth-l.width-c)),{bcx:i,bcy:r,dataLabelsX:h,dataLabelsY:p}}},{key:\"drawCalculatedDataLabels\",value:function(t){var e=t.x,i=t.y,a=t.val,s=t.i,r=t.j,n=t.textRects,l=t.barHeight,h=t.barWidth,c=t.dataLabelsConfig,d=this.w,g=\"rotate(0)\";\"vertical\"===d.config.plotOptions.bar.dataLabels.orientation&&(g=\"rotate(-90, \".concat(e,\", \").concat(i,\")\"));var u=new M(this.barCtx.ctx),f=new b(this.barCtx.ctx),p=c.formatter,x=null,m=d.globals.collapsedSeriesIndices.indexOf(s)>-1;if(c.enabled&&!m){x=f.group({class:\"apexcharts-data-labels\",transform:g});var v=\"\";void 0!==a&&(v=p(a,{seriesIndex:s,dataPointIndex:r,w:d}));var y=d.globals.series[s][r]<0,w=d.config.plotOptions.bar.dataLabels.position;if(\"vertical\"===d.config.plotOptions.bar.dataLabels.orientation&&(\"top\"===w&&(c.textAnchor=y?\"end\":\"start\"),\"center\"===w&&(c.textAnchor=\"middle\"),\"bottom\"===w&&(c.textAnchor=y?\"end\":\"start\")),this.barCtx.isTimelineBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels)h0&&n.width/1.6>h||h<0&&n.width/1.6l&&(v=\"\"));var k=o({},c);this.barCtx.isHorizontal&&a<0&&(\"start\"===c.textAnchor?k.textAnchor=\"end\":\"end\"===c.textAnchor&&(k.textAnchor=\"start\")),u.plotDataLabelsText({x:e,y:i,text:v,i:s,j:r,parent:x,dataLabelsConfig:k,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return x}}]),t}(),I=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.legendInactiveClass=\"legend-mouseover-inactive\"}return a(t,[{key:\"getAllSeriesEls\",value:function(){return this.w.globals.dom.baseEl.getElementsByClassName(\"apexcharts-series\")}},{key:\"getSeriesByName\",value:function(t){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-inner .apexcharts-series[seriesName='\".concat(f.escapeString(t),\"']\"))}},{key:\"isSeriesHidden\",value:function(t){var e=this.getSeriesByName(t),i=parseInt(e.getAttribute(\"data:realIndex\"),10);return{isHidden:e.classList.contains(\"apexcharts-series-collapsed\"),realIndex:i}}},{key:\"addCollapsedClassToSeries\",value:function(t,e){var i=this.w;function a(i){for(var a=0;a0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w,s=f.clone(a.globals.initialSeries);a.globals.previousPaths=[],i?(a.globals.collapsedSeries=[],a.globals.ancillaryCollapsedSeries=[],a.globals.collapsedSeriesIndices=[],a.globals.ancillaryCollapsedSeriesIndices=[]):s=this.emptyCollapsedSeries(s),a.config.series=s,t&&(e&&(a.globals.zoomed=!1,this.ctx.updateHelpers.revertDefaultAxisMinMax()),this.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled))}},{key:\"emptyCollapsedSeries\",value:function(t){for(var e=this.w,i=0;i-1&&(t[i].data=[]);return t}},{key:\"toggleSeriesOnHover\",value:function(t,e){var i=this.w,a=i.globals.dom.baseEl.querySelectorAll(\".apexcharts-series, .apexcharts-datalabels\");if(\"mousemove\"===t.type){var s=parseInt(e.getAttribute(\"rel\"),10)-1,r=null,o=null;i.globals.axisCharts||\"radialBar\"===i.config.chart.type?i.globals.axisCharts?(r=i.globals.dom.baseEl.querySelector(\".apexcharts-series[data\\\\:realIndex='\".concat(s,\"']\")),o=i.globals.dom.baseEl.querySelector(\".apexcharts-datalabels[data\\\\:realIndex='\".concat(s,\"']\"))):r=i.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(s+1,\"']\")):r=i.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(s+1,\"'] path\"));for(var n=0;n=t.from&&a<=t.to&&s[e].classList.remove(i.legendInactiveClass)}}(a.config.plotOptions.heatmap.colorScale.ranges[o])}else\"mouseout\"===t.type&&r(\"remove\")}},{key:\"getActiveConfigSeriesIndex\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"asc\",i=this.w,a=0;if(i.config.series.length>1)for(var s=i.config.series.map((function(e,a){var s=!1;return t&&(s=\"bar\"===i.config.series[a].type||\"column\"===i.config.series[a].type),e.data&&e.data.length>0&&!s?a:-1})),r=\"asc\"===e?0:s.length-1;\"asc\"===e?r=0;\"asc\"===e?r++:r--)if(-1!==s[r]){a=s[r];break}return a}},{key:\"getPreviousPaths\",value:function(){var t=this.w;function e(e,i,a){for(var s=e[i].childNodes,r={type:a,paths:[],realIndex:e[i].getAttribute(\"data:realIndex\")},o=0;o0)for(var a=function(e){for(var i=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(t.config.chart.type,\" .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] rect\")),a=[],s=function(t){var e=function(e){return i[t].getAttribute(e)},s={x:parseFloat(e(\"x\")),y:parseFloat(e(\"y\")),width:parseFloat(e(\"width\")),height:parseFloat(e(\"height\"))};a.push({rect:s,color:i[t].getAttribute(\"color\")})},r=0;r0)for(var a=0;a0?t:[]}));return t}}]),t}(),X=function(){function t(i){e(this,t),this.w=i.w,this.barCtx=i}return a(t,[{key:\"initVariables\",value:function(t){var e=this.w;this.barCtx.series=t,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(var i=0;i0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=t[i].length),e.globals.isXNumeric)for(var a=0;ae.globals.minX&&e.globals.seriesX[i][a]0&&(a=l.globals.minXDiff/d),(r=a/this.barCtx.seriesLen*parseInt(this.barCtx.barOptions.columnWidth,10)/100)<1&&(r=1)}o=l.globals.gridHeight-this.barCtx.baseLineY[this.barCtx.yaxisIndex]-(this.barCtx.isReversed?l.globals.gridHeight:0)+(this.barCtx.isReversed?2*this.barCtx.baseLineY[this.barCtx.yaxisIndex]:0),t=l.globals.padHorizontal+(a-r*this.barCtx.seriesLen)/2}return{x:t,y:e,yDivision:i,xDivision:a,barHeight:s,barWidth:r,zeroH:o,zeroW:n}}},{key:\"getPathFillColor\",value:function(t,e,i,a){var s=this.w,r=new L(this.barCtx.ctx),o=null,n=this.barCtx.barOptions.distributed?i:e;this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map((function(a){t[e][i]>=a.from&&t[e][i]<=a.to&&(o=a.color)}));return s.config.series[e].data[i]&&s.config.series[e].data[i].fillColor&&(o=s.config.series[e].data[i].fillColor),r.fillPath({seriesNumber:this.barCtx.barOptions.distributed?n:a,dataPointIndex:i,color:o,value:t[e][i]})}},{key:\"getStrokeWidth\",value:function(t,e,i){var a=0,s=this.w;return void 0===this.barCtx.series[t][e]||null===this.barCtx.series[t][e]?this.barCtx.isNullValue=!0:this.barCtx.isNullValue=!1,s.config.stroke.show&&(this.barCtx.isNullValue||(a=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[i]:this.barCtx.strokeWidth)),a}},{key:\"barBackground\",value:function(t){var e=t.j,i=t.i,a=t.x1,s=t.x2,r=t.y1,o=t.y2,n=t.elSeries,l=this.w,h=new b(this.barCtx.ctx),c=new I(this.barCtx.ctx).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&c===i){e>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(e-=this.barCtx.barOptions.colors.backgroundBarColors.length);var d=this.barCtx.barOptions.colors.backgroundBarColors[e],g=h.drawRect(void 0!==a?a:0,void 0!==r?r:0,void 0!==s?s:l.globals.gridWidth,void 0!==o?o:l.globals.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,d,this.barCtx.barOptions.colors.backgroundBarOpacity);n.add(g),g.node.classList.add(\"apexcharts-backgroundBar\")}}},{key:\"getColumnPaths\",value:function(t){var e=t.barWidth,i=t.barXPosition,a=t.yRatio,s=t.y1,r=t.y2,o=t.strokeWidth,n=t.series,l=t.realIndex,h=t.i,c=t.j,d=t.w,g=new b(this.barCtx.ctx);(o=Array.isArray(o)?o[l]:o)||(o=0);var u={barWidth:e,strokeWidth:o,yRatio:a,barXPosition:i,y1:s,y2:r},f=this.getRoundedBars(d,u,n,h,c),p=i,x=i+e,m=g.move(p,s),v=g.move(p,s),y=g.line(x-o,s);return d.globals.previousPaths.length>0&&(v=this.barCtx.getPreviousPath(l,c,!1)),m=m+g.line(p,f.y2)+f.pathWithRadius+g.line(x-o,f.y2)+y+y+\"z\",v=v+g.line(p,s)+y+y+y+y+y+g.line(p,s),d.config.chart.stacked&&(this.barCtx.yArrj.push(f.y2),this.barCtx.yArrjF.push(Math.abs(s-f.y2)),this.barCtx.yArrjVal.push(this.barCtx.series[h][c])),{pathTo:m,pathFrom:v}}},{key:\"getBarpaths\",value:function(t){var e=t.barYPosition,i=t.barHeight,a=t.x1,s=t.x2,r=t.strokeWidth,o=t.series,n=t.realIndex,l=t.i,h=t.j,c=t.w,d=new b(this.barCtx.ctx);(r=Array.isArray(r)?r[n]:r)||(r=0);var g={barHeight:i,strokeWidth:r,barYPosition:e,x2:s,x1:a},u=this.getRoundedBars(c,g,o,l,h),f=d.move(a,e),p=d.move(a,e);c.globals.previousPaths.length>0&&(p=this.barCtx.getPreviousPath(n,h,!1));var x=e,m=e+i,v=d.line(a,m-r);return f=f+d.line(u.x2,x)+u.pathWithRadius+d.line(u.x2,m-r)+v+v+\"z\",p=p+d.line(a,x)+v+v+v+v+v+d.line(a,x),c.config.chart.stacked&&(this.barCtx.xArrj.push(u.x2),this.barCtx.xArrjF.push(Math.abs(a-u.x2)),this.barCtx.xArrjVal.push(this.barCtx.series[l][h])),{pathTo:f,pathFrom:p}}},{key:\"getRoundedBars\",value:function(t,e,i,a,s){var r=new b(this.barCtx.ctx),o=t.config.plotOptions.bar.borderRadius;if(t.config.chart.stacked&&i.length>1&&a!==this.barCtx.radiusOnSeriesNumber&&(o=0),this.barCtx.isHorizontal){var n=\"\",l=e.x2;if(Math.abs(e.x1-e.x2)0:i[a][s]<0;h&&(o*=-1),l-=o,n=r.quadraticCurve(l+o,e.barYPosition,l+o,e.barYPosition+(h?-1*o:o))+r.line(l+o,e.barYPosition+e.barHeight-e.strokeWidth-(h?-1*o:o))+r.quadraticCurve(l+o,e.barYPosition+e.barHeight-e.strokeWidth,l,e.barYPosition+e.barHeight-e.strokeWidth)}return{pathWithRadius:n,x2:l}}var c=\"\",d=e.y2;if(Math.abs(e.y1-e.y2)=0;o--)this.barCtx.zeroSerieses.indexOf(o)>-1&&o===this.radiusOnSeriesNumber&&(this.barCtx.radiusOnSeriesNumber-=1);for(var n=e.length-1;n>=0;n--)i.globals.collapsedSeriesIndices.indexOf(this.barCtx.radiusOnSeriesNumber)>-1&&(this.barCtx.radiusOnSeriesNumber-=1)}},{key:\"getXForValue\",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=i?e:null;return null!=t&&(a=e+t/this.barCtx.invertedYRatio-2*(this.barCtx.isReversed?t/this.barCtx.invertedYRatio:0)),a}},{key:\"getYForValue\",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=i?e:null;return null!=t&&(a=e-t/this.barCtx.yRatio[this.barCtx.yaxisIndex]+2*(this.barCtx.isReversed?t/this.barCtx.yRatio[this.barCtx.yaxisIndex]:0)),a}},{key:\"getGoalValues\",value:function(t,e,i,a,r){var o=this,n=this.w,l=[];return n.globals.seriesGoals[a]&&n.globals.seriesGoals[a][r]&&Array.isArray(n.globals.seriesGoals[a][r])&&n.globals.seriesGoals[a][r].forEach((function(a){var r;l.push((s(r={},t,\"x\"===t?o.getXForValue(a.value,e,!1):o.getYForValue(a.value,i,!1)),s(r,\"attrs\",a),r))})),l}},{key:\"drawGoalLine\",value:function(t){var e=t.barXPosition,i=t.barYPosition,a=t.goalX,s=t.goalY,r=t.barWidth,o=t.barHeight,n=new b(this.barCtx.ctx),l=n.group({className:\"apexcharts-bar-goals-groups\"}),h=null;return this.barCtx.isHorizontal?Array.isArray(a)&&a.forEach((function(t){h=n.drawLine(t.x,i,t.x,i+o,t.attrs.strokeColor?t.attrs.strokeColor:void 0,0,t.attrs.strokeWidth?t.attrs.strokeWidth:2),l.add(h)})):Array.isArray(s)&&s.forEach((function(t){h=n.drawLine(e,t.y,e+r,t.y,t.attrs.strokeColor?t.attrs.strokeColor:void 0,0,t.attrs.strokeWidth?t.attrs.strokeWidth:2),l.add(h)})),l}}]),t}(),E=function(){function t(i,a){e(this,t),this.ctx=i,this.w=i.w;var s=this.w;this.barOptions=s.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=s.config.stroke.width,this.isNullValue=!1,this.isTimelineBar=\"datetime\"===s.config.xaxis.type&&s.globals.seriesRangeBarTimeline.length,this.xyRatios=a,null!==this.xyRatios&&(this.xRatio=a.xRatio,this.initialXRatio=a.initialXRatio,this.yRatio=a.yRatio,this.invertedXRatio=a.invertedXRatio,this.invertedYRatio=a.invertedYRatio,this.baseLineY=a.baseLineY,this.baseLineInvertedY=a.baseLineInvertedY),this.yaxisIndex=0,this.seriesLen=0,this.barHelpers=new X(this)}return a(t,[{key:\"draw\",value:function(t,e){var i=this.w,a=new b(this.ctx),s=new y(this.ctx,i);t=s.getLogSeries(t),this.series=t,this.yRatio=s.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);var r=a.group({class:\"apexcharts-bar-series apexcharts-plot-series\"});i.config.dataLabels.enabled&&this.totalItems>this.barOptions.dataLabels.maxItems&&console.warn(\"WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering.\");for(var n=0,l=0;n0&&(this.visibleI=this.visibleI+1);var k=0,A=0;this.yRatio.length>1&&(this.yaxisIndex=v),this.isReversed=i.config.yaxis[this.yaxisIndex]&&i.config.yaxis[this.yaxisIndex].reversed;var S=this.barHelpers.initialPositions();p=S.y,k=S.barHeight,c=S.yDivision,g=S.zeroW,u=S.x,A=S.barWidth,h=S.xDivision,d=S.zeroH,this.horizontal||m.push(u+A/2);for(var C=a.group({class:\"apexcharts-datalabels\",\"data:realIndex\":v}),L=a.group({class:\"apexcharts-bar-goals-markers\",style:\"pointer-events: none\"}),P=0;P0&&m.push(u+A/2),x.push(p);var X=this.barHelpers.getPathFillColor(t,n,P,v);this.renderSeries({realIndex:v,pathFill:X,j:P,i:n,pathFrom:M.pathFrom,pathTo:M.pathTo,strokeWidth:T,elSeries:w,x:u,y:p,series:t,barHeight:k,barWidth:A,elDataLabelsWrap:C,elGoalsMarkers:L,visibleSeries:this.visibleI,type:\"bar\"})}i.globals.seriesXvalues[v]=m,i.globals.seriesYvalues[v]=x,r.add(w)}return r}},{key:\"renderSeries\",value:function(t){var e=t.realIndex,i=t.pathFill,a=t.lineFill,s=t.j,r=t.i,o=t.pathFrom,n=t.pathTo,l=t.strokeWidth,h=t.elSeries,c=t.x,d=t.y,g=t.y1,u=t.y2,f=t.series,p=t.barHeight,m=t.barWidth,v=t.barYPosition,y=t.elDataLabelsWrap,w=t.elGoalsMarkers,k=t.visibleSeries,A=t.type,S=this.w,C=new b(this.ctx);a||(a=this.barOptions.distributed?S.globals.stroke.colors[s]:S.globals.stroke.colors[e]),S.config.series[r].data[s]&&S.config.series[r].data[s].strokeColor&&(a=S.config.series[r].data[s].strokeColor),this.isNullValue&&(i=\"none\");var L=s/S.config.chart.animations.animateGradually.delay*(S.config.chart.animations.speed/S.globals.dataPoints)/2.4,P=C.renderPaths({i:r,j:s,realIndex:e,pathFrom:o,pathTo:n,stroke:a,strokeWidth:l,strokeLineCap:S.config.stroke.lineCap,fill:i,animationDelay:L,initialSpeed:S.config.chart.animations.speed,dataChangeSpeed:S.config.chart.animations.dynamicAnimation.speed,className:\"apexcharts-\".concat(A,\"-area\")});P.attr(\"clip-path\",\"url(#gridRectMask\".concat(S.globals.cuid,\")\"));var T=S.config.forecastDataPoints;T.count>0&&s>=S.globals.dataPoints-T.count&&(P.node.setAttribute(\"stroke-dasharray\",T.dashArray),P.node.setAttribute(\"stroke-width\",T.strokeWidth),P.node.setAttribute(\"fill-opacity\",T.fillOpacity)),void 0!==g&&void 0!==u&&(P.attr(\"data-range-y1\",g),P.attr(\"data-range-y2\",u)),new x(this.ctx).setSelectionFilter(P,e,s),h.add(P);var M=new z(this).handleBarDataLabels({x:c,y:d,y1:g,y2:u,i:r,j:s,series:f,realIndex:e,barHeight:p,barWidth:m,barYPosition:v,renderedPath:P,visibleSeries:k});return null!==M&&y.add(M),h.add(y),w&&h.add(w),h}},{key:\"drawBarPaths\",value:function(t){var e=t.indexes,i=t.barHeight,a=t.strokeWidth,s=t.zeroW,r=t.x,o=t.y,n=t.yDivision,l=t.elSeries,h=this.w,c=e.i,d=e.j;h.globals.isXNumeric&&(o=(h.globals.seriesX[c][d]-h.globals.minX)/this.invertedXRatio-i);var g=o+i*this.visibleI;r=this.barHelpers.getXForValue(this.series[c][d],s);var u=this.barHelpers.getBarpaths({barYPosition:g,barHeight:i,x1:s,x2:r,strokeWidth:a,series:this.series,realIndex:e.realIndex,i:c,j:d,w:h});return h.globals.isXNumeric||(o+=n),this.barHelpers.barBackground({j:d,i:c,y1:g-i*this.visibleI,y2:i*this.seriesLen,elSeries:l}),{pathTo:u.pathTo,pathFrom:u.pathFrom,x:r,y:o,goalX:this.barHelpers.getGoalValues(\"x\",s,null,c,d),barYPosition:g}}},{key:\"drawColumnPaths\",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,o=t.zeroH,n=t.strokeWidth,l=t.elSeries,h=this.w,c=e.realIndex,d=e.i,g=e.j,u=e.bc;if(h.globals.isXNumeric){var f=c;h.globals.seriesX[c].length||(f=h.globals.maxValsInArrayIndex),i=(h.globals.seriesX[f][g]-h.globals.minX)/this.xRatio-r*this.seriesLen/2}var p=i+r*this.visibleI;a=this.barHelpers.getYForValue(this.series[d][g],o);var x=this.barHelpers.getColumnPaths({barXPosition:p,barWidth:r,y1:o,y2:a,strokeWidth:n,series:this.series,realIndex:e.realIndex,i:d,j:g,w:h});return h.globals.isXNumeric||(i+=s),this.barHelpers.barBackground({bc:u,j:g,i:d,x1:p-n/2-r*this.visibleI,x2:r*this.seriesLen+n/2,elSeries:l}),{pathTo:x.pathTo,pathFrom:x.pathFrom,x:i,y:a,goalY:this.barHelpers.getGoalValues(\"y\",null,o,d,g),barXPosition:p}}},{key:\"getPreviousPath\",value:function(t,e){for(var i,a=this.w,s=0;s0&&parseInt(r.realIndex,10)===parseInt(t,10)&&void 0!==a.globals.previousPaths[s].paths[e]&&(i=a.globals.previousPaths[s].paths[e].d)}return i}}]),t}(),Y=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.months31=[1,3,5,7,8,10,12],this.months30=[2,4,6,9,11],this.daysCntOfYear=[0,31,59,90,120,151,181,212,243,273,304,334]}return a(t,[{key:\"isValidDate\",value:function(t){return!isNaN(this.parseDate(t))}},{key:\"getTimeStamp\",value:function(t){return Date.parse(t)?this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toISOString().substr(0,25)).getTime():new Date(t).getTime():t}},{key:\"getDate\",value:function(t){return this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toUTCString()):new Date(t)}},{key:\"parseDate\",value:function(t){var e=Date.parse(t);if(!isNaN(e))return this.getTimeStamp(t);var i=Date.parse(t.replace(/-/g,\"/\").replace(/[a-z]+/gi,\" \"));return i=this.getTimeStamp(i)}},{key:\"parseDateWithTimezone\",value:function(t){return Date.parse(t.replace(/-/g,\"/\").replace(/[a-z]+/gi,\" \"))}},{key:\"formatDate\",value:function(t,e){var i=this.w.globals.locale,a=this.w.config.xaxis.labels.datetimeUTC,s=[\"\\0\"].concat(g(i.months)),r=[\"\\x01\"].concat(g(i.shortMonths)),o=[\"\\x02\"].concat(g(i.days)),n=[\"\\x03\"].concat(g(i.shortDays));function l(t,e){var i=t+\"\";for(e=e||2;i.length12?u-12:0===u?12:u;e=(e=(e=(e=e.replace(/(^|[^\\\\])HH+/g,\"$1\"+l(u))).replace(/(^|[^\\\\])H/g,\"$1\"+u)).replace(/(^|[^\\\\])hh+/g,\"$1\"+l(f))).replace(/(^|[^\\\\])h/g,\"$1\"+f);var p=a?t.getUTCMinutes():t.getMinutes();e=(e=e.replace(/(^|[^\\\\])mm+/g,\"$1\"+l(p))).replace(/(^|[^\\\\])m/g,\"$1\"+p);var x=a?t.getUTCSeconds():t.getSeconds();e=(e=e.replace(/(^|[^\\\\])ss+/g,\"$1\"+l(x))).replace(/(^|[^\\\\])s/g,\"$1\"+x);var b=a?t.getUTCMilliseconds():t.getMilliseconds();e=e.replace(/(^|[^\\\\])fff+/g,\"$1\"+l(b,3)),b=Math.round(b/10),e=e.replace(/(^|[^\\\\])ff/g,\"$1\"+l(b)),b=Math.round(b/10);var m=u<12?\"AM\":\"PM\";e=(e=(e=e.replace(/(^|[^\\\\])f/g,\"$1\"+b)).replace(/(^|[^\\\\])TT+/g,\"$1\"+m)).replace(/(^|[^\\\\])T/g,\"$1\"+m.charAt(0));var v=m.toLowerCase();e=(e=e.replace(/(^|[^\\\\])tt+/g,\"$1\"+v)).replace(/(^|[^\\\\])t/g,\"$1\"+v.charAt(0));var y=-t.getTimezoneOffset(),w=a||!y?\"Z\":y>0?\"+\":\"-\";if(!a){var k=(y=Math.abs(y))%60;w+=l(Math.floor(y/60))+\":\"+l(k)}e=e.replace(/(^|[^\\\\])K/g,\"$1\"+w);var A=(a?t.getUTCDay():t.getDay())+1;return e=(e=(e=(e=(e=e.replace(new RegExp(o[0],\"g\"),o[A])).replace(new RegExp(n[0],\"g\"),n[A])).replace(new RegExp(s[0],\"g\"),s[c])).replace(new RegExp(r[0],\"g\"),r[c])).replace(/\\\\(.)/g,\"$1\")}},{key:\"getTimeUnitsfromTimestamp\",value:function(t,e,i){var a=this.w;void 0!==a.config.xaxis.min&&(t=a.config.xaxis.min),void 0!==a.config.xaxis.max&&(e=a.config.xaxis.max);var s=this.getDate(t),r=this.getDate(e),o=this.formatDate(s,\"yyyy MM dd HH mm ss fff\").split(\" \"),n=this.formatDate(r,\"yyyy MM dd HH mm ss fff\").split(\" \");return{minMillisecond:parseInt(o[6],10),maxMillisecond:parseInt(n[6],10),minSecond:parseInt(o[5],10),maxSecond:parseInt(n[5],10),minMinute:parseInt(o[4],10),maxMinute:parseInt(n[4],10),minHour:parseInt(o[3],10),maxHour:parseInt(n[3],10),minDate:parseInt(o[2],10),maxDate:parseInt(n[2],10),minMonth:parseInt(o[1],10)-1,maxMonth:parseInt(n[1],10)-1,minYear:parseInt(o[0],10),maxYear:parseInt(n[0],10)}}},{key:\"isLeapYear\",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:\"calculcateLastDaysOfMonth\",value:function(t,e,i){return this.determineDaysOfMonths(t,e)-i}},{key:\"determineDaysOfYear\",value:function(t){var e=365;return this.isLeapYear(t)&&(e=366),e}},{key:\"determineRemainingDaysOfYear\",value:function(t,e,i){var a=this.daysCntOfYear[e]+i;return e>1&&this.isLeapYear()&&a++,a}},{key:\"determineDaysOfMonths\",value:function(t,e){var i=30;switch(t=f.monthMod(t),!0){case this.months30.indexOf(t)>-1:2===t&&(i=this.isLeapYear(e)?29:28);break;case this.months31.indexOf(t)>-1:default:i=31}return i}}]),t}(),F=function(t){n(s,t);var i=d(s);function s(){return e(this,s),i.apply(this,arguments)}return a(s,[{key:\"draw\",value:function(t,e){var i=this.w,a=new b(this.ctx);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=t,this.seriesRangeStart=i.globals.seriesRangeStart,this.seriesRangeEnd=i.globals.seriesRangeEnd,this.barHelpers.initVariables(t);for(var s=a.group({class:\"apexcharts-rangebar-series apexcharts-plot-series\"}),r=0;r0&&(this.visibleI=this.visibleI+1);var x=0,m=0;this.yRatio.length>1&&(this.yaxisIndex=u);var v=this.barHelpers.initialPositions();d=v.y,h=v.zeroW,c=v.x,m=v.barWidth,n=v.xDivision,l=v.zeroH;for(var y=a.group({class:\"apexcharts-datalabels\",\"data:realIndex\":u}),w=a.group({class:\"apexcharts-rangebar-goals-markers\",style:\"pointer-events: none\"}),k=0;k0}));return a=l.config.plotOptions.bar.rangeBarGroupRows?s+o*g:s+r*this.visibleI+o*g,u>-1&&!l.config.plotOptions.bar.rangeBarOverlap&&(h=l.globals.seriesRangeBarTimeline[e][u].overlaps).indexOf(c)>-1&&(a=(r=n.barHeight/h.length)*this.visibleI+o*(100-parseInt(this.barOptions.barHeight,10))/100/2+r*(this.visibleI+h.indexOf(c))+o*g),{barYPosition:a,barHeight:r}}},{key:\"drawRangeColumnPaths\",value:function(t){var e=t.indexes,i=t.x;t.strokeWidth;var a=t.xDivision,s=t.barWidth,r=t.zeroH,o=this.w,n=e.i,l=e.j,h=this.yRatio[this.yaxisIndex],c=e.realIndex,d=this.getRangeValue(c,l),g=Math.min(d.start,d.end),u=Math.max(d.start,d.end);o.globals.isXNumeric&&(i=(o.globals.seriesX[n][l]-o.globals.minX)/this.xRatio-s/2);var f=i+s*this.visibleI;void 0===this.series[n][l]||null===this.series[n][l]?g=r:(g=r-g/h,u=r-u/h);var p=Math.abs(u-g),x=this.barHelpers.getColumnPaths({barXPosition:f,barWidth:s,y1:g,y2:u,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:e.realIndex,i:c,j:l,w:o});return o.globals.isXNumeric||(i+=a),{pathTo:x.pathTo,pathFrom:x.pathFrom,barHeight:p,x:i,y:u,goalY:this.barHelpers.getGoalValues(\"y\",null,r,n,l),barXPosition:f}}},{key:\"drawRangeBarPaths\",value:function(t){var e=t.indexes,i=t.y,a=t.y1,s=t.y2,r=t.yDivision,o=t.barHeight,n=t.barYPosition,l=t.zeroW,h=this.w,c=l+a/this.invertedYRatio,d=l+s/this.invertedYRatio,g=Math.abs(d-c),u=this.barHelpers.getBarpaths({barYPosition:n,barHeight:o,x1:c,x2:d,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:e.realIndex,realIndex:e.realIndex,j:e.j,w:h});return h.globals.isXNumeric||(i+=r),{pathTo:u.pathTo,pathFrom:u.pathFrom,barWidth:g,x:d,goalX:this.barHelpers.getGoalValues(\"x\",l,null,e.realIndex,e.j),y:i}}},{key:\"getRangeValue\",value:function(t,e){var i=this.w;return{start:i.globals.seriesRangeStart[t][e],end:i.globals.seriesRangeEnd[t][e]}}},{key:\"getTooltipValues\",value:function(t){var e=t.ctx,i=t.seriesIndex,a=t.dataPointIndex,s=t.y1,r=t.y2,o=t.w,n=o.globals.seriesRangeStart[i][a],l=o.globals.seriesRangeEnd[i][a],h=o.globals.labels[a],c=o.config.series[i].name?o.config.series[i].name:\"\",d=o.config.tooltip.y.formatter,g=o.config.tooltip.y.title.formatter,u={w:o,seriesIndex:i,dataPointIndex:a,start:n,end:l};\"function\"==typeof g&&(c=g(c,u)),Number.isFinite(s)&&Number.isFinite(r)&&(n=s,l=r,o.config.series[i].data[a].x&&(h=o.config.series[i].data[a].x+\":\"),\"function\"==typeof d&&(h=d(h,u)));var f=\"\",p=\"\",x=o.globals.colors[i];if(void 0===o.config.tooltip.x.formatter)if(\"datetime\"===o.config.xaxis.type){var b=new Y(e);f=b.formatDate(b.getDate(n),o.config.tooltip.x.format),p=b.formatDate(b.getDate(l),o.config.tooltip.x.format)}else f=n,p=l;else f=o.config.tooltip.x.formatter(n),p=o.config.tooltip.x.formatter(l);return{start:n,end:l,startVal:f,endVal:p,ylabel:h,color:x,seriesName:c}}},{key:\"buildCustomTooltipHTML\",value:function(t){var e=t.color,i=t.seriesName;return'
'+(i||\"\")+'
'+t.ylabel+' '+t.start+' - '+t.end+\"
\"}}]),s}(E),R=function(){function t(i){e(this,t),this.opts=i}return a(t,[{key:\"line\",value:function(){return{chart:{animations:{easing:\"swing\"}},dataLabels:{enabled:!1},stroke:{width:5,curve:\"straight\"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}},{key:\"sparkline\",value:function(t){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text=\"\",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0;return f.extend(t,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}},{key:\"bar\",value:function(){return{chart:{stacked:!1,animations:{easing:\"swing\"}},plotOptions:{bar:{dataLabels:{position:\"center\"}}},dataLabels:{style:{colors:[\"#fff\"]},background:{enabled:!1}},stroke:{width:0,lineCap:\"round\"},fill:{opacity:.85},legend:{markers:{shape:\"square\",radius:2,size:8}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:\"between\",crosshairs:{width:\"barWidth\",position:\"back\",fill:{type:\"gradient\"},dropShadow:{enabled:!1},stroke:{width:0}}}}}},{key:\"candlestick\",value:function(){var t=this;return{stroke:{width:1,colors:[\"#333\"]},fill:{opacity:1},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,[\"Open\",\"High\",\"\",\"Low\",\"Close\"],\"candlestick\")}},states:{active:{filter:{type:\"none\"}}},xaxis:{crosshairs:{width:1}}}}},{key:\"boxPlot\",value:function(){var t=this;return{chart:{animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:[\"#24292e\"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,[\"Minimum\",\"Q1\",\"Median\",\"Q3\",\"Maximum\"],\"boxPlot\")}},markers:{size:5,strokeWidth:1,strokeColors:\"#111\"},xaxis:{crosshairs:{width:1}}}}},{key:\"rangeBar\",value:function(){return{stroke:{width:0,lineCap:\"square\"},plotOptions:{bar:{borderRadius:0,dataLabels:{position:\"center\"}}},dataLabels:{enabled:!1,formatter:function(t,e){e.ctx;var i=e.seriesIndex,a=e.dataPointIndex,s=e.w,r=s.globals.seriesRangeStart[i][a];return s.globals.seriesRangeEnd[i][a]-r},background:{enabled:!1},style:{colors:[\"#fff\"]}},tooltip:{shared:!1,followCursor:!0,custom:function(t){return t.w.config.plotOptions&&t.w.config.plotOptions.bar&&t.w.config.plotOptions.bar.horizontal?function(t){var e=new F(t.ctx,null),i=e.getTooltipValues(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.startVal,n=i.endVal;return e.buildCustomTooltipHTML({color:a,seriesName:s,ylabel:r,start:o,end:n})}(t):function(t){var e=new F(t.ctx,null),i=e.getTooltipValues(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.start,n=i.end;return e.buildCustomTooltipHTML({color:a,seriesName:s,ylabel:r,start:o,end:n})}(t)}},xaxis:{tickPlacement:\"between\",tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}},{key:\"area\",value:function(){return{stroke:{width:4},fill:{type:\"gradient\",gradient:{inverseColors:!1,shade:\"light\",type:\"vertical\",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}},{key:\"brush\",value:function(t){return f.extend(t,{chart:{toolbar:{autoSelected:\"selection\",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}},{key:\"stacked100\",value:function(t){t.dataLabels=t.dataLabels||{},t.dataLabels.formatter=t.dataLabels.formatter||void 0;var e=t.dataLabels.formatter;return t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})),\"bar\"===t.chart.type&&(t.dataLabels.formatter=e||function(t){return\"number\"==typeof t&&t?t.toFixed(0)+\"%\":t}),t}},{key:\"convertCatToNumeric\",value:function(t){return t.xaxis.convertedCatToNumeric=!0,t}},{key:\"convertCatToNumericXaxis\",value:function(t,e,i){t.xaxis.type=\"numeric\",t.xaxis.labels=t.xaxis.labels||{},t.xaxis.labels.formatter=t.xaxis.labels.formatter||function(t){return f.isNumber(t)?Math.floor(t):t};var a=t.xaxis.labels.formatter,s=t.xaxis.categories&&t.xaxis.categories.length?t.xaxis.categories:t.labels;return i&&i.length&&(s=i.map((function(t){return Array.isArray(t)?t:String(t)}))),s&&s.length&&(t.xaxis.labels.formatter=function(t){return f.isNumber(t)?a(s[Math.floor(t)-1]):a(t)}),t.xaxis.categories=[],t.labels=[],t.xaxis.tickAmount=t.xaxis.tickAmount||\"dataPoints\",t}},{key:\"bubble\",value:function(){return{dataLabels:{style:{colors:[\"#fff\"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:\"solid\",gradient:{shade:\"light\",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}},{key:\"scatter\",value:function(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:1,hover:{sizeOffset:2}}}}},{key:\"heatmap\",value:function(){return{chart:{stacked:!1},fill:{opacity:1},dataLabels:{style:{colors:[\"#fff\"]}},stroke:{colors:[\"#fff\"]},tooltip:{followCursor:!0,marker:{show:!1},x:{show:!1}},legend:{position:\"top\",markers:{shape:\"square\",size:10,offsetY:2}},grid:{padding:{right:20}}}}},{key:\"treemap\",value:function(){return{chart:{zoom:{enabled:!1}},dataLabels:{style:{fontSize:14,fontWeight:600,colors:[\"#fff\"]}},stroke:{show:!0,width:2,colors:[\"#fff\"]},legend:{show:!1},fill:{gradient:{stops:[0,100]}},tooltip:{followCursor:!0,x:{show:!1}},grid:{padding:{left:0,right:0}},xaxis:{crosshairs:{show:!1},tooltip:{enabled:!1}}}}},{key:\"pie\",value:function(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:function(t){return t.toFixed(1)+\"%\"},style:{colors:[\"#fff\"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:[\"#fff\"]},fill:{opacity:1,gradient:{shade:\"light\",stops:[0,100]}},tooltip:{theme:\"dark\",fillSeriesColor:!0},legend:{position:\"right\"}}}},{key:\"donut\",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+\"%\"},style:{colors:[\"#fff\"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:[\"#fff\"]},fill:{opacity:1,gradient:{shade:\"light\",shadeIntensity:.35,stops:[80,100],opacityFrom:1,opacityTo:1}},tooltip:{theme:\"dark\",fillSeriesColor:!0},legend:{position:\"right\"}}}},{key:\"polarArea\",value:function(){return this.opts.yaxis[0].tickAmount=this.opts.yaxis[0].tickAmount?this.opts.yaxis[0].tickAmount:6,{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+\"%\"},enabled:!1},stroke:{show:!0,width:2},fill:{opacity:.7},tooltip:{theme:\"dark\",fillSeriesColor:!0},legend:{position:\"right\"}}}},{key:\"radar\",value:function(){return this.opts.yaxis[0].labels.offsetY=this.opts.yaxis[0].labels.offsetY?this.opts.yaxis[0].labels.offsetY:6,{dataLabels:{enabled:!1,style:{fontSize:\"11px\"}},stroke:{width:2},markers:{size:3,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1},xaxis:{labels:{formatter:function(t){return t},style:{colors:[\"#a8a8a8\"],fontSize:\"11px\"}},tooltip:{enabled:!1},crosshairs:{show:!1}}}}},{key:\"radialBar\",value:function(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},fill:{gradient:{shade:\"dark\",shadeIntensity:.4,inverseColors:!1,type:\"diagonal2\",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},legend:{show:!1,position:\"right\"},tooltip:{enabled:!1,fillSeriesColor:!0}}}},{key:\"_getBoxTooltip\",value:function(t,e,i,a,s){var r=t.globals.seriesCandleO[e][i],o=t.globals.seriesCandleH[e][i],n=t.globals.seriesCandleM[e][i],l=t.globals.seriesCandleL[e][i],h=t.globals.seriesCandleC[e][i];return t.config.series[e].type&&t.config.series[e].type!==s?'
\\n '.concat(t.config.series[e].name?t.config.series[e].name:\"series-\"+(e+1),\": \").concat(t.globals.series[e][i],\"\\n
\"):'
')+\"
\".concat(a[0],': ')+r+\"
\"+\"
\".concat(a[1],': ')+o+\"
\"+(n?\"
\".concat(a[2],': ')+n+\"
\":\"\")+\"
\".concat(a[3],': ')+l+\"
\"+\"
\".concat(a[4],': ')+h+\"
\"}}]),t}(),H=function(){function i(t){e(this,i),this.opts=t}return a(i,[{key:\"init\",value:function(e){var i=e.responsiveOverride,a=this.opts,s=new S,r=new R(a);this.chartType=a.chart.type,\"histogram\"===this.chartType&&(a.chart.type=\"bar\",a=f.extend({plotOptions:{bar:{columnWidth:\"99.99%\"}}},a)),a=this.extendYAxis(a),a=this.extendAnnotations(a);var o=s.init(),n={};if(a&&\"object\"===t(a)){var l={};l=-1!==[\"line\",\"area\",\"bar\",\"candlestick\",\"boxPlot\",\"rangeBar\",\"histogram\",\"bubble\",\"scatter\",\"heatmap\",\"treemap\",\"pie\",\"polarArea\",\"donut\",\"radar\",\"radialBar\"].indexOf(a.chart.type)?r[a.chart.type]():r.line(),a.chart.brush&&a.chart.brush.enabled&&(l=r.brush(l)),a.chart.stacked&&\"100%\"===a.chart.stackType&&(a=r.stacked100(a)),this.checkForDarkTheme(window.Apex),this.checkForDarkTheme(a),a.xaxis=a.xaxis||window.Apex.xaxis||{},i||(a.xaxis.convertedCatToNumeric=!1),((a=this.checkForCatToNumericXAxis(this.chartType,l,a)).chart.sparkline&&a.chart.sparkline.enabled||window.Apex.chart&&window.Apex.chart.sparkline&&window.Apex.chart.sparkline.enabled)&&(l=r.sparkline(l)),n=f.extend(o,l)}var h=f.extend(n,window.Apex);return o=f.extend(h,a),o=this.handleUserInputErrors(o)}},{key:\"checkForCatToNumericXAxis\",value:function(t,e,i){var a=new R(i),s=\"bar\"===t&&i.plotOptions&&i.plotOptions.bar&&i.plotOptions.bar.horizontal,r=\"pie\"===t||\"polarArea\"===t||\"donut\"===t||\"radar\"===t||\"radialBar\"===t||\"heatmap\"===t,o=\"datetime\"!==i.xaxis.type&&\"numeric\"!==i.xaxis.type,n=i.xaxis.tickPlacement?i.xaxis.tickPlacement:e.xaxis&&e.xaxis.tickPlacement;return s||r||!o||\"between\"===n||(i=a.convertCatToNumeric(i)),i}},{key:\"extendYAxis\",value:function(t,e){var i=new S;(void 0===t.yaxis||!t.yaxis||Array.isArray(t.yaxis)&&0===t.yaxis.length)&&(t.yaxis={}),t.yaxis.constructor!==Array&&window.Apex.yaxis&&window.Apex.yaxis.constructor!==Array&&(t.yaxis=f.extend(t.yaxis,window.Apex.yaxis)),t.yaxis.constructor!==Array?t.yaxis=[f.extend(i.yAxis,t.yaxis)]:t.yaxis=f.extendArray(t.yaxis,i.yAxis);var a=!1;t.yaxis.forEach((function(t){t.logarithmic&&(a=!0)}));var s=t.series;return e&&!s&&(s=e.config.series),a&&s.length!==t.yaxis.length&&s.length&&(t.yaxis=s.map((function(e,a){if(e.name||(s[a].name=\"series-\".concat(a+1)),t.yaxis[a])return t.yaxis[a].seriesName=s[a].name,t.yaxis[a];var r=f.extend(i.yAxis,t.yaxis[0]);return r.show=!1,r}))),a&&s.length>1&&s.length!==t.yaxis.length&&console.warn(\"A multi-series logarithmic chart should have equal number of series and y-axes. Please make sure to equalize both.\"),t}},{key:\"extendAnnotations\",value:function(t){return void 0===t.annotations&&(t.annotations={},t.annotations.yaxis=[],t.annotations.xaxis=[],t.annotations.points=[]),t=this.extendYAxisAnnotations(t),t=this.extendXAxisAnnotations(t),t=this.extendPointAnnotations(t)}},{key:\"extendYAxisAnnotations\",value:function(t){var e=new S;return t.annotations.yaxis=f.extendArray(void 0!==t.annotations.yaxis?t.annotations.yaxis:[],e.yAxisAnnotation),t}},{key:\"extendXAxisAnnotations\",value:function(t){var e=new S;return t.annotations.xaxis=f.extendArray(void 0!==t.annotations.xaxis?t.annotations.xaxis:[],e.xAxisAnnotation),t}},{key:\"extendPointAnnotations\",value:function(t){var e=new S;return t.annotations.points=f.extendArray(void 0!==t.annotations.points?t.annotations.points:[],e.pointAnnotation),t}},{key:\"checkForDarkTheme\",value:function(t){t.theme&&\"dark\"===t.theme.mode&&(t.tooltip||(t.tooltip={}),\"light\"!==t.tooltip.theme&&(t.tooltip.theme=\"dark\"),t.chart.foreColor||(t.chart.foreColor=\"#f6f7f8\"),t.chart.background||(t.chart.background=\"#424242\"),t.theme.palette||(t.theme.palette=\"palette4\"))}},{key:\"handleUserInputErrors\",value:function(t){var e=t;if(e.tooltip.shared&&e.tooltip.intersect)throw new Error(\"tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.\");if(\"bar\"===e.chart.type&&e.plotOptions.bar.horizontal){if(e.yaxis.length>1)throw new Error(\"Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false\");e.yaxis[0].reversed&&(e.yaxis[0].opposite=!0),e.xaxis.tooltip.enabled=!1,e.yaxis[0].tooltip.enabled=!1,e.chart.zoom.enabled=!1}return\"bar\"!==e.chart.type&&\"rangeBar\"!==e.chart.type||e.tooltip.shared&&\"barWidth\"===e.xaxis.crosshairs.width&&e.series.length>1&&(e.xaxis.crosshairs.width=\"tickWidth\"),\"candlestick\"!==e.chart.type&&\"boxPlot\"!==e.chart.type||e.yaxis[0].reversed&&(console.warn(\"Reversed y-axis in \".concat(e.chart.type,\" chart is not supported.\")),e.yaxis[0].reversed=!1),e.chart.group&&0===e.yaxis[0].labels.minWidth&&console.warn(\"It looks like you have multiple charts in synchronization. You must provide yaxis.labels.minWidth which must be EQUAL for all grouped charts to prevent incorrect behaviour.\"),Array.isArray(e.stroke.width)&&\"line\"!==e.chart.type&&\"area\"!==e.chart.type&&(console.warn(\"stroke.width option accepts array only for line and area charts. Reverted back to Number\"),e.stroke.width=e.stroke.width[0]),e}}]),i}(),D=function(){function t(){e(this,t)}return a(t,[{key:\"initGlobalVars\",value:function(t){t.series=[],t.seriesCandleO=[],t.seriesCandleH=[],t.seriesCandleM=[],t.seriesCandleL=[],t.seriesCandleC=[],t.seriesRangeStart=[],t.seriesRangeEnd=[],t.seriesRangeBarTimeline=[],t.seriesPercent=[],t.seriesGoals=[],t.seriesX=[],t.seriesZ=[],t.seriesNames=[],t.seriesTotals=[],t.seriesLog=[],t.seriesColors=[],t.stackedSeriesTotals=[],t.seriesXvalues=[],t.seriesYvalues=[],t.labels=[],t.categoryLabels=[],t.timescaleLabels=[],t.noLabelsProvided=!1,t.resizeTimer=null,t.selectionResizeTimer=null,t.delayedElements=[],t.pointsArray=[],t.dataLabelsRects=[],t.isXNumeric=!1,t.xaxisLabelsCount=0,t.skipLastTimelinelabel=!1,t.skipFirstTimelinelabel=!1,t.isDataXYZ=!1,t.isMultiLineX=!1,t.isMultipleYAxis=!1,t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE,t.minYArr=[],t.maxYArr=[],t.maxX=-Number.MAX_VALUE,t.minX=Number.MAX_VALUE,t.initialMaxX=-Number.MAX_VALUE,t.initialMinX=Number.MAX_VALUE,t.maxDate=0,t.minDate=Number.MAX_VALUE,t.minZ=Number.MAX_VALUE,t.maxZ=-Number.MAX_VALUE,t.minXDiff=Number.MAX_VALUE,t.yAxisScale=[],t.xAxisScale=null,t.xAxisTicksPositions=[],t.yLabelsCoords=[],t.yTitleCoords=[],t.barPadForNumericAxis=0,t.padHorizontal=0,t.xRange=0,t.yRange=[],t.zRange=0,t.dataPoints=0,t.xTickAmount=0}},{key:\"globalVars\",value:function(t){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],clientX:null,clientY:null,fill:{colors:[]},stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:t.markers.size,largestSize:0},animationEnded:!1,isTouchDevice:\"ontouchstart\"in window||navigator.msMaxTouchPoints,isDirty:!1,isExecCalled:!1,initialConfig:null,initialSeries:[],lastXAxis:[],lastYAxis:[],columnSeries:null,labels:[],timescaleLabels:[],noLabelsProvided:!1,allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],risingSeries:[],dataFormatXNumeric:!1,capturedSeriesIndex:-1,capturedDataPointIndex:-1,selectedDataPoints:[],goldenPadding:35,invalidLogScale:!1,ignoreYAxisIndexes:[],yAxisSameScaleIndices:[],maxValsInArrayIndex:0,radialSize:0,selection:void 0,zoomEnabled:\"zoom\"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.zoom&&t.chart.zoom.enabled,panEnabled:\"pan\"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.pan,selectionEnabled:\"selection\"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.selection,yaxis:null,mousedown:!1,lastClientPosition:{},visibleXRange:void 0,yValueDecimal:0,total:0,SVGNS:\"http://www.w3.org/2000/svg\",svgWidth:0,svgHeight:0,noData:!1,locale:{},dom:{},memory:{methodsToExec:[]},shouldAnimate:!0,skipLastTimelinelabel:!1,skipFirstTimelinelabel:!1,delayedElements:[],axisCharts:!0,isDataXYZ:!1,resized:!1,resizeTimer:null,comboCharts:!1,dataChanged:!1,previousPaths:[],allSeriesHasEqualX:!0,pointsArray:[],dataLabelsRects:[],lastDrawnDataLabelsIndexes:[],hasNullValues:!1,easing:null,zoomed:!1,gridWidth:0,gridHeight:0,rotateXLabels:!1,defaultLabels:!1,xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,LINE_HEIGHT_RATIO:1.618,xAxisLabelsHeight:0,xAxisLabelsWidth:0,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateX:0,translateY:0,translateYAxisX:[],yAxisWidths:[],translateXAxisY:0,translateXAxisX:0,tooltip:null}}},{key:\"init\",value:function(t){var e=this.globalVars(t);return this.initGlobalVars(e),e.initialConfig=f.extend({},t),e.initialSeries=f.clone(t.series),e.lastXAxis=f.clone(e.initialConfig.xaxis),e.lastYAxis=f.clone(e.initialConfig.yaxis),e}}]),t}(),N=function(){function t(i){e(this,t),this.opts=i}return a(t,[{key:\"init\",value:function(){var t=new H(this.opts).init({responsiveOverride:!1});return{config:t,globals:(new D).init(t)}}}]),t}(),O=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.twoDSeries=[],this.threeDSeries=[],this.twoDSeriesX=[],this.seriesGoals=[],this.coreUtils=new y(this.ctx)}return a(t,[{key:\"isMultiFormat\",value:function(){return this.isFormatXY()||this.isFormat2DArray()}},{key:\"isFormatXY\",value:function(){var t=this.w.config.series.slice(),e=new I(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&null!==t[this.activeSeriesIndex].data[0]&&void 0!==t[this.activeSeriesIndex].data[0].x&&null!==t[this.activeSeriesIndex].data[0])return!0}},{key:\"isFormat2DArray\",value:function(){var t=this.w.config.series.slice(),e=new I(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&void 0!==t[this.activeSeriesIndex].data[0]&&null!==t[this.activeSeriesIndex].data[0]&&t[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:\"handleFormat2DArray\",value:function(t,e){for(var i=this.w.config,a=this.w.globals,s=\"boxPlot\"===i.chart.type||\"boxPlot\"===i.series[e].type,r=0;r=5?this.twoDSeries.push(f.parseNumber(t[e].data[r][4])):this.twoDSeries.push(f.parseNumber(t[e].data[r][1])),a.dataFormatXNumeric=!0),\"datetime\"===i.xaxis.type){var o=new Date(t[e].data[r][0]);o=new Date(o).getTime(),this.twoDSeriesX.push(o)}else this.twoDSeriesX.push(t[e].data[r][0]);for(var n=0;n-1&&(r=this.activeSeriesIndex);for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:this.ctx,a=this.w.config,s=this.w.globals,r=new Y(i),o=a.labels.length>0?a.labels.slice():a.xaxis.categories.slice();s.isTimelineBar=\"rangeBar\"===a.chart.type&&\"datetime\"===a.xaxis.type;for(var n=function(){for(var t=0;t0&&(this.twoDSeriesX=o,s.seriesX.push(this.twoDSeriesX))),s.labels.push(this.twoDSeriesX);var h=t[l].data.map((function(t){return f.parseNumber(t)}));s.series.push(h)}s.seriesZ.push(this.threeDSeries),void 0!==t[l].name?s.seriesNames.push(t[l].name):s.seriesNames.push(\"series-\"+parseInt(l+1,10)),void 0!==t[l].color?s.seriesColors.push(t[l].color):s.seriesColors.push(void 0)}return this.w}},{key:\"parseDataNonAxisCharts\",value:function(t){var e=this.w.globals,i=this.w.config;e.series=t.slice(),e.seriesNames=i.labels.slice();for(var a=0;a0)i.labels=e.xaxis.categories;else if(e.labels.length>0)i.labels=e.labels.slice();else if(this.fallbackToCategory){if(i.labels=i.labels[0],i.seriesRangeBarTimeline.length&&(i.seriesRangeBarTimeline.map((function(t){t.forEach((function(t){i.labels.indexOf(t.x)<0&&t.x&&i.labels.push(t.x)}))})),i.labels=i.labels.filter((function(t,e,i){return i.indexOf(t)===e}))),e.xaxis.convertedCatToNumeric)new R(e).convertCatToNumericXaxis(e,this.ctx,i.seriesX[0]),this._generateExternalLabels(t)}else this._generateExternalLabels(t)}},{key:\"_generateExternalLabels\",value:function(t){var e=this.w.globals,i=this.w.config,a=[];if(e.axisCharts){if(e.series.length>0)for(var s=0;s0&&i<100?t.toFixed(1):t.toFixed(0)}if(e.globals.isBarHorizontal)if(e.globals.maxY-e.globals.minYArr<4)return t.toFixed(1);return t.toFixed(0)}return t},\"function\"==typeof e.config.tooltip.x.formatter?e.globals.ttKeyFormatter=e.config.tooltip.x.formatter:e.globals.ttKeyFormatter=e.globals.xLabelFormatter,\"function\"==typeof e.config.xaxis.tooltip.formatter&&(e.globals.xaxisTooltipFormatter=e.config.xaxis.tooltip.formatter),(Array.isArray(e.config.tooltip.y)||void 0!==e.config.tooltip.y.formatter)&&(e.globals.ttVal=e.config.tooltip.y),void 0!==e.config.tooltip.z.formatter&&(e.globals.ttZFormatter=e.config.tooltip.z.formatter),void 0!==e.config.legend.formatter&&(e.globals.legendFormatter=e.config.legend.formatter),e.config.yaxis.forEach((function(i,a){void 0!==i.labels.formatter?e.globals.yLabelFormatters[a]=i.labels.formatter:e.globals.yLabelFormatters[a]=function(s){return e.globals.xyCharts?Array.isArray(s)?s.map((function(e){return t.defaultYFormatter(e,i,a)})):t.defaultYFormatter(s,i,a):s}})),e.globals}},{key:\"heatmapLabelFormatters\",value:function(){var t=this.w;if(\"heatmap\"===t.config.chart.type){t.globals.yAxisScale[0].result=t.globals.seriesNames.slice();var e=t.globals.seriesNames.reduce((function(t,e){return t.length>e.length?t:e}),0);t.globals.yAxisScale[0].niceMax=e,t.globals.yAxisScale[0].niceMin=e}}}]),t}(),B=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:\"getLabel\",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:\"12px\",o=this.w,n=void 0===t[a]?\"\":t[a],l=n,h=o.globals.xLabelFormatter,c=o.config.xaxis.labels.formatter,d=!1,g=new W(this.ctx),u=n;l=g.xLabelFormat(h,n,u,{i:a,dateFormatter:new Y(this.ctx).formatDate,w:o}),void 0!==c&&(l=c(n,t[a],{i:a,dateFormatter:new Y(this.ctx).formatDate,w:o}));var f=function(t){var i=null;return e.forEach((function(t){\"month\"===t.unit?i=\"year\":\"day\"===t.unit?i=\"month\":\"hour\"===t.unit?i=\"day\":\"minute\"===t.unit&&(i=\"hour\")})),i===t};e.length>0?(d=f(e[a].unit),i=e[a].position,l=e[a].value):\"datetime\"===o.config.xaxis.type&&void 0===c&&(l=\"\"),void 0===l&&(l=\"\"),l=Array.isArray(l)?l:l.toString();var p=new b(this.ctx),x={};x=o.globals.rotateXLabels?p.getTextRects(l,parseInt(r,10),null,\"rotate(\".concat(o.config.xaxis.labels.rotate,\" 0 0)\"),!1):p.getTextRects(l,parseInt(r,10));var m=!o.config.xaxis.labels.showDuplicates&&this.ctx.timeScale;return!Array.isArray(l)&&(0===l.indexOf(\"NaN\")||0===l.toLowerCase().indexOf(\"invalid\")||l.toLowerCase().indexOf(\"infinity\")>=0||s.indexOf(l)>=0&&m)&&(l=\"\"),{x:i,text:l,textRect:x,isBold:d}}},{key:\"checkLabelBasedOnTickamount\",value:function(t,e,i){var a=this.w,s=a.config.xaxis.tickAmount;return\"dataPoints\"===s&&(s=Math.round(a.globals.gridWidth/120)),s>i||t%Math.round(i/(s+1))==0||(e.text=\"\"),e}},{key:\"checkForOverflowingLabels\",value:function(t,e,i,a,s){var r=this.w;if(0===t&&r.globals.skipFirstTimelinelabel&&(e.text=\"\"),t===i-1&&r.globals.skipLastTimelinelabel&&(e.text=\"\"),r.config.xaxis.labels.hideOverlappingLabels&&a.length>0){var o=s[s.length-1];e.x0){!0===n.config.yaxis[s].opposite&&(t+=a.width);for(var c=e;c>=0;c--){var d=h+e/10+n.config.yaxis[s].labels.offsetY-1;n.globals.isBarHorizontal&&(d=r*c),\"heatmap\"===n.config.chart.type&&(d+=r/2);var g=l.drawLine(t+i.offsetX-a.width+a.offsetX,d+a.offsetY,t+i.offsetX+a.offsetX,d+a.offsetY,a.color);o.add(g),h+=r}}}}]),t}(),V=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:\"scaleSvgNode\",value:function(t,e){var i=parseFloat(t.getAttributeNS(null,\"width\")),a=parseFloat(t.getAttributeNS(null,\"height\"));t.setAttributeNS(null,\"width\",i*e),t.setAttributeNS(null,\"height\",a*e),t.setAttributeNS(null,\"viewBox\",\"0 0 \"+i+\" \"+a)}},{key:\"fixSvgStringForIe11\",value:function(t){if(!f.isIE11())return t;var e=0,i=t.replace(/xmlns=\"http:\\/\\/www.w3.org\\/2000\\/svg\"/g,(function(t){return 2===++e?'xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:svgjs=\"http://svgjs.com/svgjs\"':t}));return i=(i=i.replace(/xmlns:NS\\d+=\"\"/g,\"\")).replace(/NS\\d+:(\\w+:\\w+=\")/g,\"$1\")}},{key:\"getSvgString\",value:function(t){var e=this.w.globals.dom.Paper.svg();if(1!==t){var i=this.w.globals.dom.Paper.node.cloneNode(!0);this.scaleSvgNode(i,t),e=(new XMLSerializer).serializeToString(i)}return this.fixSvgStringForIe11(e)}},{key:\"cleanup\",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-xcrosshairs\"),i=t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-ycrosshairs\"),a=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-zoom-rect, .apexcharts-selection-rect\");Array.prototype.forEach.call(a,(function(t){t.setAttribute(\"width\",0)})),e&&e[0]&&(e[0].setAttribute(\"x\",-500),e[0].setAttribute(\"x1\",-500),e[0].setAttribute(\"x2\",-500)),i&&i[0]&&(i[0].setAttribute(\"y\",-100),i[0].setAttribute(\"y1\",-100),i[0].setAttribute(\"y2\",-100))}},{key:\"svgUrl\",value:function(){this.cleanup();var t=this.getSvgString(),e=new Blob([t],{type:\"image/svg+xml;charset=utf-8\"});return URL.createObjectURL(e)}},{key:\"dataURI\",value:function(t){var e=this;return new Promise((function(i){var a=e.w,s=t?t.scale||t.width/a.globals.svgWidth:1;e.cleanup();var r=document.createElement(\"canvas\");r.width=a.globals.svgWidth*s,r.height=parseInt(a.globals.dom.elWrap.style.height,10)*s;var o=\"transparent\"===a.config.chart.background?\"#fff\":a.config.chart.background,n=r.getContext(\"2d\");n.fillStyle=o,n.fillRect(0,0,r.width*s,r.height*s);var l=e.getSvgString(s);if(window.canvg&&f.isIE11()){var h=window.canvg.Canvg.fromString(n,l,{ignoreClear:!0,ignoreDimensions:!0});h.start();var c=r.msToBlob();h.stop(),i({blob:c})}else{var d=\"data:image/svg+xml,\"+encodeURIComponent(l),g=new Image;g.crossOrigin=\"anonymous\",g.onload=function(){if(n.drawImage(g,0,0),r.msToBlob){var t=r.msToBlob();i({blob:t})}else{var e=r.toDataURL(\"image/png\");i({imgURI:e})}},g.src=d}}))}},{key:\"exportToSVG\",value:function(){this.triggerDownload(this.svgUrl(),this.w.config.chart.toolbar.export.svg.filename,\".svg\")}},{key:\"exportToPng\",value:function(){var t=this;this.dataURI().then((function(e){var i=e.imgURI,a=e.blob;a?navigator.msSaveOrOpenBlob(a,t.w.globals.chartID+\".png\"):t.triggerDownload(i,t.w.config.chart.toolbar.export.png.filename,\".png\")}))}},{key:\"exportToCSV\",value:function(t){var e=this,i=t.series,a=t.columnDelimiter,s=t.lineDelimiter,r=void 0===s?\"\\n\":s,o=this.w,n=[],l=[],h=\"data:text/csv;charset=utf-8,\\ufeff\",c=new O(this.ctx),d=new B(this.ctx),g=function(t){var i=\"\";if(o.globals.axisCharts){if(\"category\"===o.config.xaxis.type||o.config.xaxis.convertedCatToNumeric)if(o.globals.isBarHorizontal){var s=o.globals.yLabelFormatters[0],r=new I(e.ctx).getActiveConfigSeriesIndex();i=s(o.globals.labels[t],{seriesIndex:r,dataPointIndex:t,w:o})}else i=d.getLabel(o.globals.labels,o.globals.timescaleLabels,0,t).text;\"datetime\"===o.config.xaxis.type&&(o.config.xaxis.categories.length?i=o.config.xaxis.categories[t]:o.config.labels.length&&(i=o.config.labels[t]))}else i=o.config.labels[t];return Array.isArray(i)&&(i=i.join(\" \")),f.isNumber(i)?i:i.split(a).join(\"\")};n.push(o.config.chart.toolbar.export.csv.headerCategory),i.map((function(t,e){var i=t.name?t.name:\"series-\".concat(e);o.globals.axisCharts&&n.push(i.split(a).join(\"\")?i.split(a).join(\"\"):\"series-\".concat(e))})),o.globals.axisCharts||(n.push(o.config.chart.toolbar.export.csv.headerValue),l.push(n.join(a))),i.map((function(t,e){o.globals.axisCharts?function(t,e){if(n.length&&0===e&&l.push(n.join(a)),t.data&&t.data.length)for(var s=0;s=10?o.config.chart.toolbar.export.csv.dateFormatter(r):f.isNumber(r)?r:r.split(a).join(\"\")));for(var h=0;h0&&!a.globals.isBarHorizontal&&(this.xaxisLabels=a.globals.timescaleLabels.slice()),a.config.xaxis.overwriteCategories&&(this.xaxisLabels=a.config.xaxis.overwriteCategories),this.drawnLabels=[],this.drawnLabelsRects=[],\"top\"===a.config.xaxis.position?this.offY=0:this.offY=a.globals.gridHeight+1,this.offY=this.offY+a.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal=\"bar\"===a.config.chart.type&&a.config.plotOptions.bar.horizontal,this.xaxisFontSize=a.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=a.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=a.config.xaxis.labels.style.colors,this.xaxisBorderWidth=a.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=a.config.yaxis[0].axisBorder.width.toString()),this.xaxisBorderWidth.indexOf(\"%\")>-1?this.xaxisBorderWidth=a.globals.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=a.config.xaxis.axisBorder.height,this.yaxis=a.config.yaxis[0]}return a(t,[{key:\"drawXaxis\",value:function(){var t,e=this,i=this.w,a=new b(this.ctx),s=a.group({class:\"apexcharts-xaxis\",transform:\"translate(\".concat(i.config.xaxis.offsetX,\", \").concat(i.config.xaxis.offsetY,\")\")}),r=a.group({class:\"apexcharts-xaxis-texts-g\",transform:\"translate(\".concat(i.globals.translateXAxisX,\", \").concat(i.globals.translateXAxisY,\")\")});s.add(r);for(var o=i.globals.padHorizontal,n=[],l=0;l1?h-1:h;t=i.globals.gridWidth/c,o=o+t/2+i.config.xaxis.labels.offsetX}else t=i.globals.gridWidth/n.length,o=o+t+i.config.xaxis.labels.offsetX;for(var d=function(s){var l=o-t/2+i.config.xaxis.labels.offsetX;0===s&&1===h&&t/2===o&&1===i.globals.dataPoints&&(l=i.globals.gridWidth/2);var c=e.axesUtils.getLabel(n,i.globals.timescaleLabels,l,s,e.drawnLabels,e.xaxisFontSize),d=28;i.globals.rotateXLabels&&(d=22);if((c=void 0!==i.config.xaxis.tickAmount&&\"dataPoints\"!==i.config.xaxis.tickAmount&&\"datetime\"!==i.config.xaxis.type?e.axesUtils.checkLabelBasedOnTickamount(s,c,h):e.axesUtils.checkForOverflowingLabels(s,c,h,e.drawnLabels,e.drawnLabelsRects)).text&&i.globals.xaxisLabelsCount++,i.config.xaxis.labels.show){var g=a.drawText({x:c.x,y:e.offY+i.config.xaxis.labels.offsetY+d-(\"top\"===i.config.xaxis.position?i.globals.xAxisHeight+i.config.xaxis.axisTicks.height-2:0),text:c.text,textAnchor:\"middle\",fontWeight:c.isBold?600:i.config.xaxis.labels.style.fontWeight,fontSize:e.xaxisFontSize,fontFamily:e.xaxisFontFamily,foreColor:Array.isArray(e.xaxisForeColors)?i.config.xaxis.convertedCatToNumeric?e.xaxisForeColors[i.globals.minX+s-1]:e.xaxisForeColors[s]:e.xaxisForeColors,isPlainText:!1,cssClass:\"apexcharts-xaxis-label \"+i.config.xaxis.labels.style.cssClass});r.add(g);var u=document.createElementNS(i.globals.SVGNS,\"title\");u.textContent=Array.isArray(c.text)?c.text.join(\" \"):c.text,g.node.appendChild(u),\"\"!==c.text&&(e.drawnLabels.push(c.text),e.drawnLabelsRects.push(c))}o+=t},g=0;g<=h-1;g++)d(g);if(void 0!==i.config.xaxis.title.text){var u=a.group({class:\"apexcharts-xaxis-title\"}),f=a.drawText({x:i.globals.gridWidth/2+i.config.xaxis.title.offsetX,y:this.offY+parseFloat(this.xaxisFontSize)+i.globals.xAxisLabelsHeight+i.config.xaxis.title.offsetY,text:i.config.xaxis.title.text,textAnchor:\"middle\",fontSize:i.config.xaxis.title.style.fontSize,fontFamily:i.config.xaxis.title.style.fontFamily,fontWeight:i.config.xaxis.title.style.fontWeight,foreColor:i.config.xaxis.title.style.color,cssClass:\"apexcharts-xaxis-title-text \"+i.config.xaxis.title.style.cssClass});u.add(f),s.add(u)}if(i.config.xaxis.axisBorder.show){var p=i.globals.barPadForNumericAxis,x=a.drawLine(i.globals.padHorizontal+i.config.xaxis.axisBorder.offsetX-p,this.offY,this.xaxisBorderWidth+p,this.offY,i.config.xaxis.axisBorder.color,0,this.xaxisBorderHeight);s.add(x)}return s}},{key:\"drawXaxisInversed\",value:function(t){var e,i,a=this,s=this.w,r=new b(this.ctx),o=s.config.yaxis[0].opposite?s.globals.translateYAxisX[t]:0,n=r.group({class:\"apexcharts-yaxis apexcharts-xaxis-inversed\",rel:t}),l=r.group({class:\"apexcharts-yaxis-texts-g apexcharts-xaxis-inversed-texts-g\",transform:\"translate(\"+o+\", 0)\"});n.add(l);var h=[];if(s.config.yaxis[t].show)for(var c=0;ci.globals.gridWidth)){var s=this.offY+i.config.xaxis.axisTicks.offsetY,r=s+i.config.xaxis.axisTicks.height;if(\"top\"===i.config.xaxis.position&&(r=s-i.config.xaxis.axisTicks.height),i.config.xaxis.axisTicks.show){var o=new b(this.ctx).drawLine(t+i.config.xaxis.axisTicks.offsetX,s+i.config.xaxis.offsetY,a+i.config.xaxis.axisTicks.offsetX,r+i.config.xaxis.offsetY,i.config.xaxis.axisTicks.color);e.add(o),o.node.classList.add(\"apexcharts-xaxis-tick\")}}}},{key:\"getXAxisTicksPositions\",value:function(){var t=this.w,e=[],i=this.xaxisLabels.length,a=t.globals.padHorizontal;if(t.globals.timescaleLabels.length>0)for(var s=0;s0){var h=s[s.length-1].getBBox(),c=s[0].getBBox();h.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),c.x+c.width>t.globals.gridWidth&&!t.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var d=0;d0&&(this.xaxisLabels=a.globals.timescaleLabels.slice())}return a(t,[{key:\"drawGridArea\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=new b(this.ctx);null===t&&(t=i.group({class:\"apexcharts-grid\"}));var a=i.drawLine(e.globals.padHorizontal,1,e.globals.padHorizontal,e.globals.gridHeight,\"transparent\"),s=i.drawLine(e.globals.padHorizontal,e.globals.gridHeight,e.globals.gridWidth,e.globals.gridHeight,\"transparent\");return t.add(s),t.add(a),t}},{key:\"drawGrid\",value:function(){var t=null;return this.w.globals.axisCharts&&(t=this.renderGrid(),this.drawGridArea(t.el)),t}},{key:\"createGridMask\",value:function(){var t=this.w,e=t.globals,i=new b(this.ctx),a=Array.isArray(t.config.stroke.width)?0:t.config.stroke.width;if(Array.isArray(t.config.stroke.width)){var s=0;t.config.stroke.width.forEach((function(t){s=Math.max(s,t)})),a=s}e.dom.elGridRectMask=document.createElementNS(e.SVGNS,\"clipPath\"),e.dom.elGridRectMask.setAttribute(\"id\",\"gridRectMask\".concat(e.cuid)),e.dom.elGridRectMarkerMask=document.createElementNS(e.SVGNS,\"clipPath\"),e.dom.elGridRectMarkerMask.setAttribute(\"id\",\"gridRectMarkerMask\".concat(e.cuid)),e.dom.elForecastMask=document.createElementNS(e.SVGNS,\"clipPath\"),e.dom.elForecastMask.setAttribute(\"id\",\"forecastMask\".concat(e.cuid)),e.dom.elNonForecastMask=document.createElementNS(e.SVGNS,\"clipPath\"),e.dom.elNonForecastMask.setAttribute(\"id\",\"nonForecastMask\".concat(e.cuid));var r=t.config.chart.type,o=0,n=0;(\"bar\"===r||\"rangeBar\"===r||\"candlestick\"===r||\"boxPlot\"===r||t.globals.comboBarCount>0)&&t.globals.isXNumeric&&!t.globals.isBarHorizontal&&(o=t.config.grid.padding.left,n=t.config.grid.padding.right,e.barPadForNumericAxis>o&&(o=e.barPadForNumericAxis,n=e.barPadForNumericAxis)),e.dom.elGridRect=i.drawRect(-a/2-o-2,-a/2,e.gridWidth+a+n+o+4,e.gridHeight+a,0,\"#fff\"),new y(this).getLargestMarkerSize();var l=t.globals.markers.largestSize+1;e.dom.elGridRectMarker=i.drawRect(2*-l,2*-l,e.gridWidth+4*l,e.gridHeight+4*l,0,\"#fff\"),e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node),e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node);var h=e.dom.baseEl.querySelector(\"defs\");h.appendChild(e.dom.elGridRectMask),h.appendChild(e.dom.elForecastMask),h.appendChild(e.dom.elNonForecastMask),h.appendChild(e.dom.elGridRectMarkerMask)}},{key:\"_drawGridLines\",value:function(t){var e=t.i,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.xCount,n=t.parent,l=this.w;0===e&&l.globals.skipFirstTimelinelabel||e===o-1&&l.globals.skipLastTimelinelabel&&!l.config.xaxis.labels.formatter||\"radar\"===l.config.chart.type||(l.config.grid.xaxis.lines.show&&this._drawGridLine({x1:i,y1:a,x2:s,y2:r,parent:n}),new G(this.ctx).drawXaxisTicks(i,this.elg))}},{key:\"_drawGridLine\",value:function(t){var e=t.x1,i=t.y1,a=t.x2,s=t.y2,r=t.parent,o=this.w,n=r.node.classList.contains(\"apexcharts-gridlines-horizontal\"),l=o.config.grid.strokeDashArray,h=o.globals.barPadForNumericAxis,c=new b(this).drawLine(e-(n?h:0),i,a+(n?h:0),s,o.config.grid.borderColor,l);c.node.classList.add(\"apexcharts-gridline\"),r.add(c)}},{key:\"_drawGridBandRect\",value:function(t){var e=t.c,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.type,n=this.w,l=new b(this.ctx),h=n.globals.barPadForNumericAxis;if(\"column\"!==o||\"datetime\"!==n.config.xaxis.type){var c=n.config.grid[o].colors[e],d=l.drawRect(i-(\"row\"===o?h:0),a,s+(\"row\"===o?2*h:0),r,0,c,n.config.grid[o].opacity);this.elg.add(d),d.attr(\"clip-path\",\"url(#gridRectMask\".concat(n.globals.cuid,\")\")),d.node.classList.add(\"apexcharts-grid-\".concat(o))}}},{key:\"_drawXYLines\",value:function(t){var e=this,i=t.xCount,a=t.tickAmount,s=this.w;if(s.config.grid.xaxis.lines.show||s.config.xaxis.axisTicks.show){var r,o=s.globals.padHorizontal,n=s.globals.gridHeight;s.globals.timescaleLabels.length?function(t){for(var a=t.xC,s=t.x1,r=t.y1,o=t.x2,n=t.y2,l=0;l2));s++);return!t.globals.isBarHorizontal||this.isTimelineBar?(i=this.xaxisLabels.length,this.isTimelineBar&&(a=t.globals.labels.length,t.config.xaxis.tickAmount&&t.config.xaxis.labels.formatter&&(i=t.config.xaxis.tickAmount)),this._drawXYLines({xCount:i,tickAmount:a})):(i=a,a=t.globals.xTickAmount,this._drawInvertedXYLines({xCount:i,tickAmount:a})),this.drawGridBands(i,a),{el:this.elg,xAxisTickWidth:t.globals.gridWidth/i}}},{key:\"drawGridBands\",value:function(t,e){var i=this.w;if(void 0!==i.config.grid.row.colors&&i.config.grid.row.colors.length>0)for(var a=0,s=i.globals.gridHeight/e,r=i.globals.gridWidth,o=0,n=0;o=i.config.grid.row.colors.length&&(n=0),this._drawGridBandRect({c:n,x1:0,y1:a,x2:r,y2:s,type:\"row\"}),a+=i.globals.gridHeight/e;if(void 0!==i.config.grid.column.colors&&i.config.grid.column.colors.length>0)for(var l=i.globals.isBarHorizontal||\"category\"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric?t:t-1,h=i.globals.padHorizontal,c=i.globals.padHorizontal+i.globals.gridWidth/l,d=i.globals.gridHeight,g=0,u=0;g=i.config.grid.column.colors.length&&(u=0),this._drawGridBandRect({c:u,x1:h,y1:0,x2:c,y2:d,type:\"column\"}),h+=i.globals.gridWidth/l}}]),t}(),j=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:\"niceScale\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4?arguments[4]:void 0,r=this.w,o=Math.abs(e-t);if(\"dataPoints\"===(i=this._adjustTicksForSmallRange(i,a,o))&&(i=r.globals.dataPoints-1),t===Number.MIN_VALUE&&0===e||!f.isNumber(t)&&!f.isNumber(e)||t===Number.MIN_VALUE&&e===-Number.MAX_VALUE){t=0,e=i;var n=this.linearScale(t,e,i);return n}t>e?(console.warn(\"axis.min cannot be greater than axis.max\"),e=t+.1):t===e&&(t=0===t?0:t-.5,e=0===e?2:e+.5);var l=[];o<1&&s&&(\"candlestick\"===r.config.chart.type||\"candlestick\"===r.config.series[a].type||\"boxPlot\"===r.config.chart.type||\"boxPlot\"===r.config.series[a].type||r.globals.isRangeData)&&(e*=1.01);var h=i+1;h<2?h=2:h>2&&(h-=2);var c=o/h,d=Math.floor(f.log10(c)),g=Math.pow(10,d),u=Math.round(c/g);u<1&&(u=1);var p=u*g,x=p*Math.floor(t/p),b=p*Math.ceil(e/p),m=x;if(s&&o>2){for(;l.push(m),!((m+=p)>b););return{result:l,niceMin:l[0],niceMax:l[l.length-1]}}var v=t;(l=[]).push(v);for(var y=Math.abs(e-t)/i,w=0;w<=i;w++)v+=y,l.push(v);return l[l.length-2]>=e&&l.pop(),{result:l,niceMin:l[0],niceMax:l[l.length-1]}}},{key:\"linearScale\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3?arguments[3]:void 0,s=Math.abs(e-t);\"dataPoints\"===(i=this._adjustTicksForSmallRange(i,a,s))&&(i=this.w.globals.dataPoints-1);var r=s/i;i===Number.MAX_VALUE&&(i=10,r=1);for(var o=[],n=t;i>=0;)o.push(n),n+=r,i-=1;return{result:o,niceMin:o[0],niceMax:o[o.length-1]}}},{key:\"logarithmicScale\",value:function(t){for(var e=[],i=Math.ceil(Math.log10(t))+1,a=0;a5)a.allSeriesCollapsed=!1,a.yAxisScale[t]=this.logarithmicScale(i);else if(i!==-Number.MAX_VALUE&&f.isNumber(i))if(a.allSeriesCollapsed=!1,void 0===r.min&&void 0===r.max||r.forceNiceScale){var n=void 0===s.yaxis[t].max&&void 0===s.yaxis[t].min||s.yaxis[t].forceNiceScale;a.yAxisScale[t]=this.niceScale(e,i,r.tickAmount?r.tickAmount:o<5&&o>1?o+1:5,t,n)}else a.yAxisScale[t]=this.linearScale(e,i,r.tickAmount,t);else a.yAxisScale[t]=this.linearScale(0,5,5)}},{key:\"setXScale\",value:function(t,e){var i=this.w,a=i.globals,s=i.config.xaxis,r=Math.abs(e-t);return e!==-Number.MAX_VALUE&&f.isNumber(e)?a.xAxisScale=this.linearScale(t,e,s.tickAmount?s.tickAmount:r<5&&r>1?r+1:5,0):a.xAxisScale=this.linearScale(0,5,5),a.xAxisScale}},{key:\"setMultipleYScales\",value:function(){var t=this,e=this.w.globals,i=this.w.config,a=e.minYArr.concat([]),s=e.maxYArr.concat([]),r=[];i.yaxis.forEach((function(e,o){var n=o;i.series.forEach((function(t,i){t.name===e.seriesName&&(n=i,o!==i?r.push({index:i,similarIndex:o,alreadyExists:!0}):r.push({index:i}))}));var l=a[n],h=s[n];t.setYScaleForIndex(o,l,h)})),this.sameScaleInMultipleAxes(a,s,r)}},{key:\"sameScaleInMultipleAxes\",value:function(t,e,i){var a=this,s=this.w.config,r=this.w.globals,o=[];i.forEach((function(t){t.alreadyExists&&(void 0===o[t.index]&&(o[t.index]=[]),o[t.index].push(t.index),o[t.index].push(t.similarIndex))})),r.yAxisSameScaleIndices=o,o.forEach((function(t,e){o.forEach((function(i,a){var s,r;e!==a&&(s=t,r=i,s.filter((function(t){return-1!==r.indexOf(t)}))).length>0&&(o[e]=o[e].concat(o[a]))}))}));var n=o.map((function(t){return t.filter((function(e,i){return t.indexOf(e)===i}))})).map((function(t){return t.sort()}));o=o.filter((function(t){return!!t}));var l=n.slice(),h=l.map((function(t){return JSON.stringify(t)}));l=l.filter((function(t,e){return h.indexOf(JSON.stringify(t))===e}));var c=[],d=[];t.forEach((function(t,i){l.forEach((function(a,s){a.indexOf(i)>-1&&(void 0===c[s]&&(c[s]=[],d[s]=[]),c[s].push({key:i,value:t}),d[s].push({key:i,value:e[i]}))}))}));var g=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,Number.MIN_VALUE),u=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,-Number.MAX_VALUE);c.forEach((function(t,e){t.forEach((function(t,i){g[e]=Math.min(t.value,g[e])}))})),d.forEach((function(t,e){t.forEach((function(t,i){u[e]=Math.max(t.value,u[e])}))})),t.forEach((function(t,e){d.forEach((function(t,i){var o=g[i],n=u[i];s.chart.stacked&&(n=0,t.forEach((function(t,e){t.value!==-Number.MAX_VALUE&&(n+=t.value),o!==Number.MIN_VALUE&&(o+=c[i][e].value)}))),t.forEach((function(i,l){t[l].key===e&&(void 0!==s.yaxis[e].min&&(o=\"function\"==typeof s.yaxis[e].min?s.yaxis[e].min(r.minY):s.yaxis[e].min),void 0!==s.yaxis[e].max&&(n=\"function\"==typeof s.yaxis[e].max?s.yaxis[e].max(r.maxY):s.yaxis[e].max),a.setYScaleForIndex(e,o,n))}))}))}))}},{key:\"autoScaleY\",value:function(t,e,i){t||(t=this);var a=t.w;if(a.globals.isMultipleYAxis||a.globals.collapsedSeries.length)return console.warn(\"autoScaleYaxis is not supported in a multi-yaxis chart.\"),e;var s=a.globals.seriesX[0],r=a.config.chart.stacked;return e.forEach((function(t,o){for(var n=0,l=0;l=i.xaxis.min){n=l;break}var h,c,d=a.globals.minYArr[o],g=a.globals.maxYArr[o],u=a.globals.stackedSeriesTotals;a.globals.series.forEach((function(o,l){var f=o[n];r?(f=u[n],h=c=f,u.forEach((function(t,e){s[e]<=i.xaxis.max&&s[e]>=i.xaxis.min&&(t>c&&null!==t&&(c=t),o[e]=i.xaxis.min){var r=t,o=t;a.globals.series.forEach((function(i,a){null!==t&&(r=Math.min(i[e],r),o=Math.max(i[e],o))})),o>c&&null!==o&&(c=o),rd&&(h=d),e.length>1?(e[l].min=void 0===t.min?h:t.min,e[l].max=void 0===t.max?c:t.max):(e[0].min=void 0===t.min?h:t.min,e[0].max=void 0===t.max?c:t.max)}))})),e}}]),t}(),U=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.scales=new j(i)}return a(t,[{key:\"init\",value:function(){this.setYRange(),this.setXRange(),this.setZRange()}},{key:\"getMinYMaxY\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w.config,r=this.w.globals,o=-Number.MAX_VALUE,n=Number.MIN_VALUE;null===a&&(a=t+1);var l=r.series,h=l,c=l;\"candlestick\"===s.chart.type?(h=r.seriesCandleL,c=r.seriesCandleH):\"boxPlot\"===s.chart.type?(h=r.seriesCandleO,c=r.seriesCandleC):r.isRangeData&&(h=r.seriesRangeStart,c=r.seriesRangeEnd);for(var d=t;dh[d][g]&&h[d][g]<0&&(n=h[d][g])):r.hasNullValues=!0}}return\"rangeBar\"===s.chart.type&&r.seriesRangeStart.length&&r.isBarHorizontal&&\"datetime\"===s.xaxis.type&&(n=e),\"bar\"===s.chart.type&&(n<0&&o<0&&(o=0),n===Number.MIN_VALUE&&(n=0)),{minY:n,maxY:o,lowestY:e,highestY:i}}},{key:\"setYRange\",value:function(){var t=this.w.globals,e=this.w.config;t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE;var i=Number.MAX_VALUE;if(t.isMultipleYAxis)for(var a=0;a=0&&i<=10||void 0!==e.yaxis[0].min||void 0!==e.yaxis[0].max)&&(o=0),t.minY=i-5*o/100,i>0&&t.minY<0&&(t.minY=0),t.maxY=t.maxY+5*o/100}if(e.yaxis.forEach((function(e,i){void 0!==e.max&&(\"number\"==typeof e.max?t.maxYArr[i]=e.max:\"function\"==typeof e.max&&(t.maxYArr[i]=e.max(t.isMultipleYAxis?t.maxYArr[i]:t.maxY)),t.maxY=t.maxYArr[i]),void 0!==e.min&&(\"number\"==typeof e.min?t.minYArr[i]=e.min:\"function\"==typeof e.min&&(t.minYArr[i]=e.min(t.isMultipleYAxis?t.minYArr[i]===Number.MIN_VALUE?0:t.minYArr[i]:t.minY)),t.minY=t.minYArr[i])})),t.isBarHorizontal){[\"min\",\"max\"].forEach((function(i){void 0!==e.xaxis[i]&&\"number\"==typeof e.xaxis[i]&&(\"min\"===i?t.minY=e.xaxis[i]:t.maxY=e.xaxis[i])}))}return t.isMultipleYAxis?(this.scales.setMultipleYScales(),t.minY=i,t.yAxisScale.forEach((function(e,i){t.minYArr[i]=e.niceMin,t.maxYArr[i]=e.niceMax}))):(this.scales.setYScaleForIndex(0,t.minY,t.maxY),t.minY=t.yAxisScale[0].niceMin,t.maxY=t.yAxisScale[0].niceMax,t.minYArr[0]=t.yAxisScale[0].niceMin,t.maxYArr[0]=t.yAxisScale[0].niceMax),{minY:t.minY,maxY:t.maxY,minYArr:t.minYArr,maxYArr:t.maxYArr,yAxisScale:t.yAxisScale}}},{key:\"setXRange\",value:function(){var t=this.w.globals,e=this.w.config,i=\"numeric\"===e.xaxis.type||\"datetime\"===e.xaxis.type||\"category\"===e.xaxis.type&&!t.noLabelsProvided||t.noLabelsProvided||t.isXNumeric;if(t.isXNumeric&&function(){for(var e=0;et.dataPoints&&0!==t.dataPoints&&(a=t.dataPoints-1)):\"dataPoints\"===e.xaxis.tickAmount?(t.series.length>1&&(a=t.series[t.maxValsInArrayIndex].length-1),t.isXNumeric&&(a=t.maxX-t.minX-1)):a=e.xaxis.tickAmount,t.xTickAmount=a,void 0!==e.xaxis.max&&\"number\"==typeof e.xaxis.max&&(t.maxX=e.xaxis.max),void 0!==e.xaxis.min&&\"number\"==typeof e.xaxis.min&&(t.minX=e.xaxis.min),void 0!==e.xaxis.range&&(t.minX=t.maxX-e.xaxis.range),t.minX!==Number.MAX_VALUE&&t.maxX!==-Number.MAX_VALUE)if(e.xaxis.convertedCatToNumeric&&!t.dataFormatXNumeric){for(var s=[],r=t.minX-1;r0&&(t.xAxisScale=this.scales.linearScale(1,t.labels.length,a-1),t.seriesX=t.labels.slice());i&&(t.labels=t.xAxisScale.result.slice())}return t.isBarHorizontal&&t.labels.length&&(t.xTickAmount=t.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:t.minX,maxX:t.maxX}}},{key:\"setZRange\",value:function(){var t=this.w.globals;if(t.isDataXYZ)for(var e=0;e0){var s=e-a[i-1];s>0&&(t.minXDiff=Math.min(s,t.minXDiff))}})),1===t.dataPoints&&t.minXDiff===Number.MAX_VALUE&&(t.minXDiff=.5)}))}},{key:\"_setStackedMinMax\",value:function(){var t=this.w.globals,e=[],i=[];if(t.series.length)for(var a=0;a0?s=s+parseFloat(t.series[o][a])+1e-4:r+=parseFloat(t.series[o][a])),o===t.series.length-1&&(e.push(s),i.push(r));for(var n=0;n=0;m--)x(m);if(void 0!==i.config.yaxis[t].title.text){var v=a.group({class:\"apexcharts-yaxis-title\"}),y=0;i.config.yaxis[t].opposite&&(y=i.globals.translateYAxisX[t]);var w=a.drawText({x:y,y:i.globals.gridHeight/2+i.globals.translateY+i.config.yaxis[t].title.offsetY,text:i.config.yaxis[t].title.text,textAnchor:\"end\",foreColor:i.config.yaxis[t].title.style.color,fontSize:i.config.yaxis[t].title.style.fontSize,fontWeight:i.config.yaxis[t].title.style.fontWeight,fontFamily:i.config.yaxis[t].title.style.fontFamily,cssClass:\"apexcharts-yaxis-title-text \"+i.config.yaxis[t].title.style.cssClass});v.add(w),l.add(v)}var k=i.config.yaxis[t].axisBorder,A=31+k.offsetX;if(i.config.yaxis[t].opposite&&(A=-31-k.offsetX),k.show){var S=a.drawLine(A,i.globals.translateY+k.offsetY-2,A,i.globals.gridHeight+i.globals.translateY+k.offsetY+2,k.color,0,k.width);l.add(S)}return i.config.yaxis[t].axisTicks.show&&this.axesUtils.drawYAxisTicks(A,c,k,i.config.yaxis[t].axisTicks,t,d,l),l}},{key:\"drawYaxisInversed\",value:function(t){var e=this.w,i=new b(this.ctx),a=i.group({class:\"apexcharts-xaxis apexcharts-yaxis-inversed\"}),s=i.group({class:\"apexcharts-xaxis-texts-g\",transform:\"translate(\".concat(e.globals.translateXAxisX,\", \").concat(e.globals.translateXAxisY,\")\")});a.add(s);var r=e.globals.yAxisScale[t].result.length-1,o=e.globals.gridWidth/r+.1,n=o+e.config.xaxis.labels.offsetX,l=e.globals.xLabelFormatter,h=e.globals.yAxisScale[t].result.slice(),c=e.globals.timescaleLabels;c.length>0&&(this.xaxisLabels=c.slice(),r=(h=c.slice()).length),h=this.axesUtils.checkForReversedLabels(t,h);var d=c.length;if(e.config.xaxis.labels.show)for(var g=d?0:r;d?g=0;d?g++:g--){var u=h[g];u=l(u,g,e);var f=e.globals.gridWidth+e.globals.padHorizontal-(n-o+e.config.xaxis.labels.offsetX);if(c.length){var p=this.axesUtils.getLabel(h,c,f,g,this.drawnLabels,this.xaxisFontSize);f=p.x,u=p.text,this.drawnLabels.push(p.text),0===g&&e.globals.skipFirstTimelinelabel&&(u=\"\"),g===h.length-1&&e.globals.skipLastTimelinelabel&&(u=\"\")}var x=i.drawText({x:f,y:this.xAxisoffX+e.config.xaxis.labels.offsetY+30-(\"top\"===e.config.xaxis.position?e.globals.xAxisHeight+e.config.xaxis.axisTicks.height-2:0),text:u,textAnchor:\"middle\",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[t]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,fontWeight:e.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:\"apexcharts-xaxis-label \"+e.config.xaxis.labels.style.cssClass});s.add(x),x.tspan(u);var m=document.createElementNS(e.globals.SVGNS,\"title\");m.textContent=u,x.node.appendChild(m),n+=o}return this.inversedYAxisTitleText(a),this.inversedYAxisBorder(a),a}},{key:\"inversedYAxisBorder\",value:function(t){var e=this.w,i=new b(this.ctx),a=e.config.xaxis.axisBorder;if(a.show){var s=0;\"bar\"===e.config.chart.type&&e.globals.isXNumeric&&(s-=15);var r=i.drawLine(e.globals.padHorizontal+s+a.offsetX,this.xAxisoffX,e.globals.gridWidth,this.xAxisoffX,a.color,0,a.height);t.add(r)}}},{key:\"inversedYAxisTitleText\",value:function(t){var e=this.w,i=new b(this.ctx);if(void 0!==e.config.xaxis.title.text){var a=i.group({class:\"apexcharts-xaxis-title apexcharts-yaxis-title-inversed\"}),s=i.drawText({x:e.globals.gridWidth/2+e.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(e.config.xaxis.title.style.fontSize)+e.config.xaxis.title.offsetY+20,text:e.config.xaxis.title.text,textAnchor:\"middle\",fontSize:e.config.xaxis.title.style.fontSize,fontFamily:e.config.xaxis.title.style.fontFamily,fontWeight:e.config.xaxis.title.style.fontWeight,foreColor:e.config.xaxis.title.style.color,cssClass:\"apexcharts-xaxis-title-text \"+e.config.xaxis.title.style.cssClass});a.add(s),t.add(a)}}},{key:\"yAxisTitleRotate\",value:function(t,e){var i=this.w,a=new b(this.ctx),s={width:0,height:0},r={width:0,height:0},o=i.globals.dom.baseEl.querySelector(\" .apexcharts-yaxis[rel='\".concat(t,\"'] .apexcharts-yaxis-texts-g\"));null!==o&&(s=o.getBoundingClientRect());var n=i.globals.dom.baseEl.querySelector(\".apexcharts-yaxis[rel='\".concat(t,\"'] .apexcharts-yaxis-title text\"));if(null!==n&&(r=n.getBoundingClientRect()),null!==n){var l=this.xPaddingForYAxisTitle(t,s,r,e);n.setAttribute(\"x\",l.xPos-(e?10:0))}if(null!==n){var h=a.rotateAroundCenter(n);n.setAttribute(\"transform\",\"rotate(\".concat(e?-1*i.config.yaxis[t].title.rotate:i.config.yaxis[t].title.rotate,\" \").concat(h.x,\" \").concat(h.y,\")\"))}}},{key:\"xPaddingForYAxisTitle\",value:function(t,e,i,a){var s=this.w,r=0,o=0,n=10;return void 0===s.config.yaxis[t].title.text||t<0?{xPos:o,padd:0}:(a?(o=e.width+s.config.yaxis[t].title.offsetX+i.width/2+n/2,0===(r+=1)&&(o-=n/2)):(o=-1*e.width+s.config.yaxis[t].title.offsetX+n/2+i.width/2,s.globals.isBarHorizontal&&(n=25,o=-1*e.width-s.config.yaxis[t].title.offsetX-n)),{xPos:o,padd:n})}},{key:\"setYAxisXPosition\",value:function(t,e){var i=this.w,a=0,s=0,r=18,o=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.map((function(n,l){var h=i.globals.ignoreYAxisIndexes.indexOf(l)>-1||!n.show||n.floating||0===t[l].width,c=t[l].width+e[l].width;n.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[l]=s-n.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+o,h||(o=o+c+20),i.globals.translateYAxisX[l]=s-n.labels.offsetX+20):(a=i.globals.translateX-r,h||(r=r+c+20),i.globals.translateYAxisX[l]=a+n.labels.offsetX)}))}},{key:\"setYAxisTextAlignments\",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-yaxis\");(e=f.listToArray(e)).forEach((function(e,i){var a=t.config.yaxis[i];if(a&&void 0!==a.labels.align){var s=t.globals.dom.baseEl.querySelector(\".apexcharts-yaxis[rel='\".concat(i,\"'] .apexcharts-yaxis-texts-g\")),r=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxis[rel='\".concat(i,\"'] .apexcharts-yaxis-label\"));r=f.listToArray(r);var o=s.getBoundingClientRect();\"left\"===a.labels.align?(r.forEach((function(t,e){t.setAttribute(\"text-anchor\",\"start\")})),a.opposite||s.setAttribute(\"transform\",\"translate(-\".concat(o.width,\", 0)\"))):\"center\"===a.labels.align?(r.forEach((function(t,e){t.setAttribute(\"text-anchor\",\"middle\")})),s.setAttribute(\"transform\",\"translate(\".concat(o.width/2*(a.opposite?1:-1),\", 0)\"))):\"right\"===a.labels.align&&(r.forEach((function(t,e){t.setAttribute(\"text-anchor\",\"end\")})),a.opposite&&s.setAttribute(\"transform\",\"translate(\".concat(o.width,\", 0)\")))}}))}}]),t}(),Z=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.documentEvent=f.bind(this.documentEvent,this)}return a(t,[{key:\"addEventListener\",value:function(t,e){var i=this.w;i.globals.events.hasOwnProperty(t)?i.globals.events[t].push(e):i.globals.events[t]=[e]}},{key:\"removeEventListener\",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){var a=i.globals.events[t].indexOf(e);-1!==a&&i.globals.events[t].splice(a,1)}}},{key:\"fireEvent\",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){e&&e.length||(e=[]);for(var a=i.globals.events[t],s=a.length,r=0;r0&&(e=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=e.filter((function(e){return e.name===t}))[0];if(!i)throw new Error(\"Wrong locale name provided. Please make sure you set the correct locale name in options\");var a=f.extend(A,i);this.w.globals.locale=a.options}}]),t}(),J=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:\"drawAxis\",value:function(t,e){var i,a,s=this.w.globals,r=this.w.config,o=new G(this.ctx),n=new q(this.ctx);s.axisCharts&&\"radar\"!==t&&(s.isBarHorizontal?(a=n.drawYaxisInversed(0),i=o.drawXaxisInversed(0),s.dom.elGraphical.add(i),s.dom.elGraphical.add(a)):(i=o.drawXaxis(),s.dom.elGraphical.add(i),r.yaxis.map((function(t,e){-1===s.ignoreYAxisIndexes.indexOf(e)&&(a=n.drawYaxis(e),s.dom.Paper.add(a))}))))}}]),t}(),Q=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:\"drawXCrosshairs\",value:function(){var t=this.w,e=new b(this.ctx),i=new x(this.ctx),a=t.config.xaxis.crosshairs.fill.gradient,s=t.config.xaxis.crosshairs.dropShadow,r=t.config.xaxis.crosshairs.fill.type,o=a.colorFrom,n=a.colorTo,l=a.opacityFrom,h=a.opacityTo,c=a.stops,d=s.enabled,g=s.left,u=s.top,p=s.blur,m=s.color,v=s.opacity,y=t.config.xaxis.crosshairs.fill.color;if(t.config.xaxis.crosshairs.show){\"gradient\"===r&&(y=e.drawGradient(\"vertical\",o,n,l,h,null,c,null));var w=e.drawRect();1===t.config.xaxis.crosshairs.width&&(w=e.drawLine());var k=t.globals.gridHeight;(!f.isNumber(k)||k<0)&&(k=0);var A=t.config.xaxis.crosshairs.width;(!f.isNumber(A)||A<0)&&(A=0),w.attr({class:\"apexcharts-xcrosshairs\",x:0,y:0,y2:k,width:A,height:k,fill:y,filter:\"none\",\"fill-opacity\":t.config.xaxis.crosshairs.opacity,stroke:t.config.xaxis.crosshairs.stroke.color,\"stroke-width\":t.config.xaxis.crosshairs.stroke.width,\"stroke-dasharray\":t.config.xaxis.crosshairs.stroke.dashArray}),d&&(w=i.dropShadow(w,{left:g,top:u,blur:p,color:m,opacity:v})),t.globals.dom.elGraphical.add(w)}}},{key:\"drawYCrosshairs\",value:function(){var t=this.w,e=new b(this.ctx),i=t.config.yaxis[0].crosshairs,a=t.globals.barPadForNumericAxis;if(t.config.yaxis[0].crosshairs.show){var s=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);s.attr({class:\"apexcharts-ycrosshairs\"}),t.globals.dom.elGraphical.add(s)}var r=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,0,0);r.attr({class:\"apexcharts-ycrosshairs-hidden\"}),t.globals.dom.elGraphical.add(r)}}]),t}(),K=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:\"checkResponsiveConfig\",value:function(t){var e=this,i=this.w,a=i.config;if(0!==a.responsive.length){var s=a.responsive.slice();s.sort((function(t,e){return t.breakpoint>e.breakpoint?1:e.breakpoint>t.breakpoint?-1:0})).reverse();var r=new H({}),o=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=s[0].breakpoint,o=window.innerWidth>0?window.innerWidth:screen.width;if(o>a){var n=y.extendArrayProps(r,i.globals.initialConfig,i);t=f.extend(n,t),t=f.extend(i.config,t),e.overrideResponsiveOptions(t)}else for(var l=0;l0&&\"function\"==typeof e.config.colors[0]&&(e.globals.colors=e.config.series.map((function(i,a){var s=e.config.colors[a];return s||(s=e.config.colors[0]),\"function\"==typeof s?(t.isColorFn=!0,s({value:e.globals.axisCharts?e.globals.series[a][0]?e.globals.series[a][0]:0:e.globals.series[a],seriesIndex:a,dataPointIndex:a,w:e})):s})))),e.globals.seriesColors.map((function(t,i){t&&(e.globals.colors[i]=t)})),e.config.theme.monochrome.enabled){var a=[],s=e.globals.series.length;(this.isBarDistributed||this.isHeatmapDistributed)&&(s=e.globals.series[0].length*e.globals.series.length);for(var r=e.config.theme.monochrome.color,o=1/(s/e.config.theme.monochrome.shadeIntensity),n=e.config.theme.monochrome.shadeTo,l=0,h=0;h2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=e||a.globals.series.length;if(null===i&&(i=this.isBarDistributed||this.isHeatmapDistributed||\"heatmap\"===a.config.chart.type&&a.config.plotOptions.heatmap.colorScale.inverse),i&&a.globals.series.length&&(s=a.globals.series[a.globals.maxValsInArrayIndex].length*a.globals.series.length),t.lengtht.globals.svgWidth&&(this.dCtx.lgRect.width=t.globals.svgWidth/1.5),this.dCtx.lgRect}},{key:\"getLargestStringFromMultiArr\",value:function(t,e){var i=t;if(this.w.globals.isMultiLineX){var a=e.map((function(t,e){return Array.isArray(t)?t.length:1})),s=Math.max.apply(Math,g(a));i=e[a.indexOf(s)]}return i}}]),t}(),at=function(){function t(i){e(this,t),this.w=i.w,this.dCtx=i}return a(t,[{key:\"getxAxisLabelsCoords\",value:function(){var t,e=this.w,i=e.globals.labels.slice();if(e.config.xaxis.convertedCatToNumeric&&0===i.length&&(i=e.globals.categoryLabels),e.globals.timescaleLabels.length>0){var a=this.getxAxisTimeScaleLabelsCoords();t={width:a.width,height:a.height},e.globals.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends=\"left\"!==e.config.legend.position&&\"right\"!==e.config.legend.position||e.config.legend.floating?0:this.dCtx.lgRect.width;var s=e.globals.xLabelFormatter,r=f.getLargestStringFromArr(i),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,i);e.globals.isBarHorizontal&&(o=r=e.globals.yAxisScale[0].result.reduce((function(t,e){return t.length>e.length?t:e}),0));var n=new W(this.dCtx.ctx),l=r;r=n.xLabelFormat(s,r,l,{i:void 0,dateFormatter:new Y(this.dCtx.ctx).formatDate,w:e}),o=n.xLabelFormat(s,o,l,{i:void 0,dateFormatter:new Y(this.dCtx.ctx).formatDate,w:e}),(e.config.xaxis.convertedCatToNumeric&&void 0===r||\"\"===String(r).trim())&&(o=r=\"1\");var h=new b(this.dCtx.ctx),c=h.getTextRects(r,e.config.xaxis.labels.style.fontSize),d=c;if(r!==o&&(d=h.getTextRects(o,e.config.xaxis.labels.style.fontSize)),(t={width:c.width>=d.width?c.width:d.width,height:c.height>=d.height?c.height:d.height}).width*i.length>e.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&0!==e.config.xaxis.labels.rotate||e.config.xaxis.labels.rotateAlways){if(!e.globals.isBarHorizontal){e.globals.rotateXLabels=!0;var g=function(t){return h.getTextRects(t,e.config.xaxis.labels.style.fontSize,e.config.xaxis.labels.style.fontFamily,\"rotate(\".concat(e.config.xaxis.labels.rotate,\" 0 0)\"),!1)};c=g(r),r!==o&&(d=g(o)),t.height=(c.height>d.height?c.height:d.height)/1.5,t.width=c.width>d.width?c.width:d.width}}else e.globals.rotateXLabels=!1}return e.config.xaxis.labels.show||(t={width:0,height:0}),{width:t.width,height:t.height}}},{key:\"getxAxisTitleCoords\",value:function(){var t=this.w,e=0,i=0;if(void 0!==t.config.xaxis.title.text){var a=new b(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text,t.config.xaxis.title.style.fontSize);e=a.width,i=a.height}return{width:e,height:i}}},{key:\"getxAxisTimeScaleLabelsCoords\",value:function(){var t,e=this.w;this.dCtx.timescaleLabels=e.globals.timescaleLabels.slice();var i=this.dCtx.timescaleLabels.map((function(t){return t.value})),a=i.reduce((function(t,e){return void 0===t?(console.error(\"You have possibly supplied invalid Date format. Please supply a valid JavaScript Date\"),0):t.length>e.length?t:e}),0);return 1.05*(t=new b(this.dCtx.ctx).getTextRects(a,e.config.xaxis.labels.style.fontSize)).width*i.length>e.globals.gridWidth&&0!==e.config.xaxis.labels.rotate&&(e.globals.overlappingXLabels=!0),t}},{key:\"additionalPaddingXLabels\",value:function(t){var e=this,i=this.w,a=i.globals,s=i.config,r=s.xaxis.type,o=t.width;a.skipLastTimelinelabel=!1,a.skipFirstTimelinelabel=!1;var n=i.config.yaxis[0].opposite&&i.globals.isBarHorizontal,l=function(t,n){(function(t){return-1!==a.collapsedSeriesIndices.indexOf(t)})(n)||function(t){if(e.dCtx.timescaleLabels&&e.dCtx.timescaleLabels.length){var n=e.dCtx.timescaleLabels[0],l=e.dCtx.timescaleLabels[e.dCtx.timescaleLabels.length-1].position+o/1.75-e.dCtx.yAxisWidthRight,h=n.position-o/1.75+e.dCtx.yAxisWidthLeft,c=\"right\"===i.config.legend.position&&e.dCtx.lgRect.width>0?e.dCtx.lgRect.width:0;l>a.svgWidth-a.translateX-c&&(a.skipLastTimelinelabel=!0),h<-(t.show&&!t.floating||\"bar\"!==s.chart.type&&\"candlestick\"!==s.chart.type&&\"rangeBar\"!==s.chart.type&&\"boxPlot\"!==s.chart.type?10:o/1.75)&&(a.skipFirstTimelinelabel=!0)}else\"datetime\"===r?e.dCtx.gridPad.rightString(n.niceMax).length?c:n.niceMax,g=h(d,{seriesIndex:o,dataPointIndex:-1,w:e}),u=g;if(void 0!==g&&0!==g.length||(g=d),e.globals.isBarHorizontal){a=0;var p=e.globals.labels.slice();g=h(g=f.getLargestStringFromArr(p),{seriesIndex:o,dataPointIndex:-1,w:e}),u=t.dCtx.dimHelpers.getLargestStringFromMultiArr(g,p)}var x=new b(t.dCtx.ctx),m=\"rotate(\".concat(r.labels.rotate,\" 0 0)\"),v=x.getTextRects(g,r.labels.style.fontSize,r.labels.style.fontFamily,m,!1),y=v;g!==u&&(y=x.getTextRects(u,r.labels.style.fontSize,r.labels.style.fontFamily,m,!1)),i.push({width:(l>y.width||l>v.width?l:y.width>v.width?y.width:v.width)+a,height:y.height>v.height?y.height:v.height})}else i.push({width:0,height:0})})),i}},{key:\"getyAxisTitleCoords\",value:function(){var t=this,e=this.w,i=[];return e.config.yaxis.map((function(e,a){if(e.show&&void 0!==e.title.text){var s=new b(t.dCtx.ctx),r=\"rotate(\".concat(e.title.rotate,\" 0 0)\"),o=s.getTextRects(e.title.text,e.title.style.fontSize,e.title.style.fontFamily,r,!1);i.push({width:o.width,height:o.height})}else i.push({width:0,height:0})})),i}},{key:\"getTotalYAxisWidth\",value:function(){var t=this.w,e=0,i=0,a=0,s=t.globals.yAxisScale.length>1?10:0,r=new B(this.dCtx.ctx),o=function(o,n){var l=t.config.yaxis[n].floating,h=0;o.width>0&&!l?(h=o.width+s,function(e){return t.globals.ignoreYAxisIndexes.indexOf(e)>-1}(n)&&(h=h-o.width-s)):h=l||r.isYAxisHidden(n)?0:5,t.config.yaxis[n].opposite?a+=h:i+=h,e+=h};return t.globals.yLabelsCoords.map((function(t,e){o(t,e)})),t.globals.yTitleCoords.map((function(t,e){o(t,e)})),t.globals.isBarHorizontal&&!t.config.yaxis[0].floating&&(e=t.globals.yLabelsCoords[0].width+t.globals.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=a,e}}]),t}(),rt=function(){function t(i){e(this,t),this.w=i.w,this.dCtx=i}return a(t,[{key:\"gridPadForColumnsInNumericAxis\",value:function(t){var e=this.w;if(e.globals.noData||e.globals.allSeriesCollapsed)return 0;var i=function(t){return\"bar\"===t||\"rangeBar\"===t||\"candlestick\"===t||\"boxPlot\"===t},a=e.config.chart.type,s=0,r=i(a)?e.config.series.length:1;if(e.globals.comboBarCount>0&&(r=e.globals.comboBarCount),e.globals.collapsedSeries.forEach((function(t){i(t.type)&&(r-=1)})),e.config.chart.stacked&&(r=1),(i(a)||e.globals.comboBarCount>0)&&e.globals.isXNumeric&&!e.globals.isBarHorizontal&&r>0){var o,n,l=Math.abs(e.globals.initialMaxX-e.globals.initialMinX);l<=3&&(l=e.globals.dataPoints),o=l/t,e.globals.minXDiff&&e.globals.minXDiff/o>0&&(n=e.globals.minXDiff/o),n>t/2&&(n/=2),(s=n/r*parseInt(e.config.plotOptions.bar.columnWidth,10)/100)<1&&(s=1),s=s/(r>1?1:1.5)+5,e.globals.barPadForNumericAxis=s}return s}},{key:\"gridPadFortitleSubtitle\",value:function(){var t=this,e=this.w,i=e.globals,a=this.dCtx.isSparkline||!e.globals.axisCharts?0:10;[\"title\",\"subtitle\"].forEach((function(i){void 0!==e.config[i].text?a+=e.config[i].margin:a+=t.dCtx.isSparkline||!e.globals.axisCharts?0:5})),!e.config.legend.show||\"bottom\"!==e.config.legend.position||e.config.legend.floating||e.globals.axisCharts||(a+=10);var s=this.dCtx.dimHelpers.getTitleSubtitleCoords(\"title\"),r=this.dCtx.dimHelpers.getTitleSubtitleCoords(\"subtitle\");i.gridHeight=i.gridHeight-s.height-r.height-a,i.translateY=i.translateY+s.height+r.height+a}},{key:\"setGridXPosForDualYAxis\",value:function(t,e){var i=this.w,a=new B(this.dCtx.ctx);i.config.yaxis.map((function(s,r){-1!==i.globals.ignoreYAxisIndexes.indexOf(r)||s.floating||a.isYAxisHidden(r)||(s.opposite&&(i.globals.translateX=i.globals.translateX-(e[r].width+t[r].width)-parseInt(i.config.yaxis[r].labels.style.fontSize,10)/1.2-12),i.globals.translateX<2&&(i.globals.translateX=2))}))}}]),t}(),ot=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.lgRect={},this.yAxisWidth=0,this.yAxisWidthLeft=0,this.yAxisWidthRight=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.dimHelpers=new it(this),this.dimYAxis=new st(this),this.dimXAxis=new at(this),this.dimGrid=new rt(this),this.lgWidthForSideLegends=0,this.gridPad=this.w.config.grid.padding,this.xPadRight=0,this.xPadLeft=0}return a(t,[{key:\"plotCoords\",value:function(){var t=this.w.globals;this.lgRect=this.dimHelpers.getLegendsRect(),t.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),t.gridHeight=t.gridHeight-this.gridPad.top-this.gridPad.bottom,t.gridWidth=t.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;var e=this.dimGrid.gridPadForColumnsInNumericAxis(t.gridWidth);t.gridWidth=t.gridWidth-2*e,t.translateX=t.translateX+this.gridPad.left+this.xPadLeft+(e>0?e+4:0),t.translateY=t.translateY+this.gridPad.top}},{key:\"setDimensionsForAxisCharts\",value:function(){var t=this,e=this.w,i=e.globals,a=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();e.globals.yLabelsCoords=[],e.globals.yTitleCoords=[],e.config.yaxis.map((function(t,i){e.globals.yLabelsCoords.push({width:a[i].width,index:i}),e.globals.yTitleCoords.push({width:s[i].width,index:i})})),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();var r=this.dimXAxis.getxAxisLabelsCoords(),o=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(r,o),i.translateXAxisY=e.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=e.globals.rotateXLabels&&e.globals.isXNumeric&&e.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,e.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(e.config.xaxis.labels.style.fontSize,10)/1.5*-1),i.translateXAxisY=i.translateXAxisY+e.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+e.config.xaxis.labels.offsetX;var n=this.yAxisWidth,l=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight-o.height,i.xAxisLabelsWidth=this.xAxisWidth,i.xAxisHeight=this.xAxisHeight;var h=10;(\"radar\"===e.config.chart.type||this.isSparkline)&&(n=0,l=i.goldenPadding),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||\"treemap\"===e.config.chart.type)&&(n=0,l=0,h=0),this.isSparkline||this.dimXAxis.additionalPaddingXLabels(r);var c=function(){i.translateX=n,i.gridHeight=i.svgHeight-t.lgRect.height-l-(t.isSparkline||\"treemap\"===e.config.chart.type?0:e.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-n};switch(\"top\"===e.config.xaxis.position&&(h=i.xAxisHeight-e.config.xaxis.axisTicks.height-5),e.config.legend.position){case\"bottom\":i.translateY=h,c();break;case\"top\":i.translateY=this.lgRect.height+h,c();break;case\"left\":i.translateY=h,i.translateX=this.lgRect.width+n,i.gridHeight=i.svgHeight-l-12,i.gridWidth=i.svgWidth-this.lgRect.width-n;break;case\"right\":i.translateY=h,i.translateX=n,i.gridHeight=i.svgHeight-l-12,i.gridWidth=i.svgWidth-this.lgRect.width-n-5;break;default:throw new Error(\"Legend position not supported\")}this.dimGrid.setGridXPosForDualYAxis(s,a),new q(this.ctx).setYAxisXPosition(a,s)}},{key:\"setDimensionsForNonAxisCharts\",value:function(){var t=this.w,e=t.globals,i=t.config,a=0;t.config.legend.show&&!t.config.legend.floating&&(a=20);var s=\"pie\"===i.chart.type||\"polarArea\"===i.chart.type||\"donut\"===i.chart.type?\"pie\":\"radialBar\",r=i.plotOptions[s].offsetY,o=i.plotOptions[s].offsetX;if(!i.legend.show||i.legend.floating)return e.gridHeight=e.svgHeight-i.grid.padding.left+i.grid.padding.right,e.gridWidth=e.gridHeight,e.translateY=r,void(e.translateX=o+(e.svgWidth-e.gridWidth)/2);switch(i.legend.position){case\"bottom\":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=r-10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case\"top\":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=this.lgRect.height+r+10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case\"left\":e.gridWidth=e.svgWidth-this.lgRect.width-a,e.gridHeight=\"auto\"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+this.lgRect.width+a;break;case\"right\":e.gridWidth=e.svgWidth-this.lgRect.width-a-5,e.gridHeight=\"auto\"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+10;break;default:throw new Error(\"Legend position not supported\")}}},{key:\"conditionalChecksForAxisCoords\",value:function(t,e){var i=this.w;this.xAxisHeight=(t.height+e.height)*(i.globals.isMultiLineX?1.2:i.globals.LINE_HEIGHT_RATIO)+(i.globals.rotateXLabels?22:10),this.xAxisWidth=t.width,this.xAxisHeight-e.height>i.config.xaxis.labels.maxHeight&&(this.xAxisHeight=i.config.xaxis.labels.maxHeight),i.config.xaxis.labels.minHeight&&this.xAxisHeights&&(this.yAxisWidth=s)}}]),t}(),nt=function(){function t(i){e(this,t),this.w=i.w,this.lgCtx=i}return a(t,[{key:\"getLegendStyles\",value:function(){var t=document.createElement(\"style\");t.setAttribute(\"type\",\"text/css\");var e=document.createTextNode(\"\\t\\n \\t\\n .apexcharts-legend {\\t\\n display: flex;\\t\\n overflow: auto;\\t\\n padding: 0 10px;\\t\\n }\\t\\n .apexcharts-legend.position-bottom, .apexcharts-legend.position-top {\\t\\n flex-wrap: wrap\\t\\n }\\t\\n .apexcharts-legend.position-right, .apexcharts-legend.position-left {\\t\\n flex-direction: column;\\t\\n bottom: 0;\\t\\n }\\t\\n .apexcharts-legend.position-bottom.apexcharts-align-left, .apexcharts-legend.position-top.apexcharts-align-left, .apexcharts-legend.position-right, .apexcharts-legend.position-left {\\t\\n justify-content: flex-start;\\t\\n }\\t\\n .apexcharts-legend.position-bottom.apexcharts-align-center, .apexcharts-legend.position-top.apexcharts-align-center {\\t\\n justify-content: center; \\t\\n }\\t\\n .apexcharts-legend.position-bottom.apexcharts-align-right, .apexcharts-legend.position-top.apexcharts-align-right {\\t\\n justify-content: flex-end;\\t\\n }\\t\\n .apexcharts-legend-series {\\t\\n cursor: pointer;\\t\\n line-height: normal;\\t\\n }\\t\\n .apexcharts-legend.position-bottom .apexcharts-legend-series, .apexcharts-legend.position-top .apexcharts-legend-series{\\t\\n display: flex;\\t\\n align-items: center;\\t\\n }\\t\\n .apexcharts-legend-text {\\t\\n position: relative;\\t\\n font-size: 14px;\\t\\n }\\t\\n .apexcharts-legend-text *, .apexcharts-legend-marker * {\\t\\n pointer-events: none;\\t\\n }\\t\\n .apexcharts-legend-marker {\\t\\n position: relative;\\t\\n display: inline-block;\\t\\n cursor: pointer;\\t\\n margin-right: 3px;\\t\\n border-style: solid;\\n }\\t\\n \\t\\n .apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{\\t\\n display: inline-block;\\t\\n }\\t\\n .apexcharts-legend-series.apexcharts-no-click {\\t\\n cursor: auto;\\t\\n }\\t\\n .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\\t\\n display: none !important;\\t\\n }\\t\\n .apexcharts-inactive-legend {\\t\\n opacity: 0.45;\\t\\n }\");return t.appendChild(e),t}},{key:\"getLegendBBox\",value:function(){var t=this.w.globals.dom.baseEl.querySelector(\".apexcharts-legend\").getBoundingClientRect(),e=t.width;return{clwh:t.height,clww:e}}},{key:\"appendToForeignObject\",value:function(){var t=this.w.globals;t.dom.elLegendForeign=document.createElementNS(t.SVGNS,\"foreignObject\");var e=t.dom.elLegendForeign;e.setAttribute(\"x\",0),e.setAttribute(\"y\",0),e.setAttribute(\"width\",t.svgWidth),e.setAttribute(\"height\",t.svgHeight),t.dom.elLegendWrap.setAttribute(\"xmlns\",\"http://www.w3.org/1999/xhtml\"),e.appendChild(t.dom.elLegendWrap),e.appendChild(this.getLegendStyles()),t.dom.Paper.node.insertBefore(e,t.dom.elGraphical.node)}},{key:\"toggleDataSeries\",value:function(t,e){var i=this,a=this.w;if(a.globals.axisCharts||\"radialBar\"===a.config.chart.type){a.globals.resized=!0;var s=null,r=null;if(a.globals.risingSeries=[],a.globals.axisCharts?(s=a.globals.dom.baseEl.querySelector(\".apexcharts-series[data\\\\:realIndex='\".concat(t,\"']\")),r=parseInt(s.getAttribute(\"data:realIndex\"),10)):(s=a.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(t+1,\"']\")),r=parseInt(s.getAttribute(\"rel\"),10)-1),e)[{cs:a.globals.collapsedSeries,csi:a.globals.collapsedSeriesIndices},{cs:a.globals.ancillaryCollapsedSeries,csi:a.globals.ancillaryCollapsedSeriesIndices}].forEach((function(t){i.riseCollapsedSeries(t.cs,t.csi,r)}));else this.hideSeries({seriesEl:s,realIndex:r})}else{var o=a.globals.dom.Paper.select(\" .apexcharts-series[rel='\".concat(t+1,\"'] path\")),n=a.config.chart.type;if(\"pie\"===n||\"polarArea\"===n||\"donut\"===n){var l=a.config.plotOptions.pie.donut.labels;new b(this.lgCtx.ctx).pathMouseDown(o.members[0],null),this.lgCtx.ctx.pie.printDataLabelsInner(o.members[0].node,l)}o.fire(\"click\")}}},{key:\"hideSeries\",value:function(t){var e=t.seriesEl,i=t.realIndex,a=this.w,s=f.clone(a.config.series);if(a.globals.axisCharts){var r=!1;if(a.config.yaxis[i]&&a.config.yaxis[i].show&&a.config.yaxis[i].showAlways&&(r=!0,a.globals.ancillaryCollapsedSeriesIndices.indexOf(i)<0&&(a.globals.ancillaryCollapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split(\"-\")[1]}),a.globals.ancillaryCollapsedSeriesIndices.push(i))),!r){a.globals.collapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split(\"-\")[1]}),a.globals.collapsedSeriesIndices.push(i);var o=a.globals.risingSeries.indexOf(i);a.globals.risingSeries.splice(o,1)}}else a.globals.collapsedSeries.push({index:i,data:s[i]}),a.globals.collapsedSeriesIndices.push(i);for(var n=e.childNodes,l=0;l0){for(var r=0;r-1&&(t[a].data=[])})):t.forEach((function(i,a){e.globals.collapsedSeriesIndices.indexOf(a)>-1&&(t[a]=0)})),t}}]),t}(),lt=function(){function t(i,a){e(this,t),this.ctx=i,this.w=i.w,this.onLegendClick=this.onLegendClick.bind(this),this.onLegendHovered=this.onLegendHovered.bind(this),this.isBarsDistributed=\"bar\"===this.w.config.chart.type&&this.w.config.plotOptions.bar.distributed&&1===this.w.config.series.length,this.legendHelpers=new nt(this)}return a(t,[{key:\"init\",value:function(){var t=this.w,e=t.globals,i=t.config;if((i.legend.showForSingleSeries&&1===e.series.length||this.isBarsDistributed||e.series.length>1||!e.axisCharts)&&i.legend.show){for(;e.dom.elLegendWrap.firstChild;)e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild);this.drawLegends(),f.isIE11()?document.getElementsByTagName(\"head\")[0].appendChild(this.legendHelpers.getLegendStyles()):this.legendHelpers.appendToForeignObject(),\"bottom\"===i.legend.position||\"top\"===i.legend.position?this.legendAlignHorizontal():\"right\"!==i.legend.position&&\"left\"!==i.legend.position||this.legendAlignVertical()}}},{key:\"drawLegends\",value:function(){var t=this,e=this.w,i=e.config.legend.fontFamily,a=e.globals.seriesNames,s=e.globals.colors.slice();if(\"heatmap\"===e.config.chart.type){var r=e.config.plotOptions.heatmap.colorScale.ranges;a=r.map((function(t){return t.name?t.name:t.from+\" - \"+t.to})),s=r.map((function(t){return t.color}))}else this.isBarsDistributed&&(a=e.globals.labels.slice());e.config.legend.customLegendItems.length&&(a=e.config.legend.customLegendItems);for(var o=e.globals.legendFormatter,n=e.config.legend.inverseOrder,l=n?a.length-1:0;n?l>=0:l<=a.length-1;n?l--:l++){var h=o(a[l],{seriesIndex:l,w:e}),c=!1,d=!1;if(e.globals.collapsedSeries.length>0)for(var g=0;g0)for(var u=0;u0?l-10:0)+(h>0?h-10:0)}a.style.position=\"absolute\",r=r+t+i.config.legend.offsetX,o=o+e+i.config.legend.offsetY,a.style.left=r+\"px\",a.style.top=o+\"px\",\"bottom\"===i.config.legend.position?(a.style.top=\"auto\",a.style.bottom=5-i.config.legend.offsetY+\"px\"):\"right\"===i.config.legend.position&&(a.style.left=\"auto\",a.style.right=25+i.config.legend.offsetX+\"px\");[\"width\",\"height\"].forEach((function(t){a.style[t]&&(a.style[t]=parseInt(i.config.legend[t],10)+\"px\")}))}},{key:\"legendAlignHorizontal\",value:function(){var t=this.w;t.globals.dom.baseEl.querySelector(\".apexcharts-legend\").style.right=0;var e=this.legendHelpers.getLegendBBox(),i=new ot(this.ctx),a=i.dimHelpers.getTitleSubtitleCoords(\"title\"),s=i.dimHelpers.getTitleSubtitleCoords(\"subtitle\"),r=0;\"bottom\"===t.config.legend.position?r=-e.clwh/1.8:\"top\"===t.config.legend.position&&(r=a.height+s.height+t.config.title.margin+t.config.subtitle.margin-10),this.setLegendWrapXY(20,r)}},{key:\"legendAlignVertical\",value:function(){var t=this.w,e=this.legendHelpers.getLegendBBox(),i=0;\"left\"===t.config.legend.position&&(i=20),\"right\"===t.config.legend.position&&(i=t.globals.svgWidth-e.clww-10),this.setLegendWrapXY(i,20)}},{key:\"onLegendHovered\",value:function(t){var e=this.w,i=t.target.classList.contains(\"apexcharts-legend-text\")||t.target.classList.contains(\"apexcharts-legend-marker\");if(\"heatmap\"===e.config.chart.type||this.isBarsDistributed){if(i){var a=parseInt(t.target.getAttribute(\"rel\"),10)-1;this.ctx.events.fireEvent(\"legendHover\",[this.ctx,a,this.w]),new I(this.ctx).highlightRangeInSeries(t,t.target)}}else!t.target.classList.contains(\"apexcharts-inactive-legend\")&&i&&new I(this.ctx).toggleSeriesOnHover(t,t.target)}},{key:\"onLegendClick\",value:function(t){var e=this.w;if(!e.config.legend.customLegendItems.length&&(t.target.classList.contains(\"apexcharts-legend-text\")||t.target.classList.contains(\"apexcharts-legend-marker\"))){var i=parseInt(t.target.getAttribute(\"rel\"),10)-1,a=\"true\"===t.target.getAttribute(\"data:collapsed\"),s=this.w.config.chart.events.legendClick;\"function\"==typeof s&&s(this.ctx,i,this.w),this.ctx.events.fireEvent(\"legendClick\",[this.ctx,i,this.w]);var r=this.w.config.legend.markers.onClick;\"function\"==typeof r&&t.target.classList.contains(\"apexcharts-legend-marker\")&&(r(this.ctx,i,this.w),this.ctx.events.fireEvent(\"legendMarkerClick\",[this.ctx,i,this.w])),\"treemap\"!==e.config.chart.type&&\"heatmap\"!==e.config.chart.type&&!this.isBarsDistributed&&e.config.legend.onItemClick.toggleDataSeries&&this.legendHelpers.toggleDataSeries(i,a)}}}]),t}(),ht=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w;var a=this.w;this.ev=this.w.config.chart.events,this.selectedClass=\"apexcharts-selected\",this.localeValues=this.w.globals.locale.toolbar,this.minX=a.globals.minX,this.maxX=a.globals.maxX}return a(t,[{key:\"createToolbar\",value:function(){var t=this,e=this.w,i=function(){return document.createElement(\"div\")},a=i();if(a.setAttribute(\"class\",\"apexcharts-toolbar\"),a.style.top=e.config.chart.toolbar.offsetY+\"px\",a.style.right=3-e.config.chart.toolbar.offsetX+\"px\",e.globals.dom.elWrap.appendChild(a),this.elZoom=i(),this.elZoomIn=i(),this.elZoomOut=i(),this.elPan=i(),this.elSelection=i(),this.elZoomReset=i(),this.elMenuIcon=i(),this.elMenu=i(),this.elCustomIcons=[],this.t=e.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(var s=0;s\\n \\n \\n\\n'),o(\"zoomOut\",this.elZoomOut,'\\n \\n \\n\\n');var n=function(i){t.t[i]&&e.config.chart[i].enabled&&r.push({el:\"zoom\"===i?t.elZoom:t.elSelection,icon:\"string\"==typeof t.t[i]?t.t[i]:\"zoom\"===i?'\\n \\n \\n \\n':'\\n \\n \\n',title:t.localeValues[\"zoom\"===i?\"selectionZoom\":\"selection\"],class:e.globals.isTouchDevice?\"apexcharts-element-hidden\":\"apexcharts-\".concat(i,\"-icon\")})};n(\"zoom\"),n(\"selection\"),this.t.pan&&e.config.chart.zoom.enabled&&r.push({el:this.elPan,icon:\"string\"==typeof this.t.pan?this.t.pan:'\\n \\n \\n \\n \\n \\n \\n \\n',title:this.localeValues.pan,class:e.globals.isTouchDevice?\"apexcharts-element-hidden\":\"apexcharts-pan-icon\"}),o(\"reset\",this.elZoomReset,'\\n \\n \\n'),this.t.download&&r.push({el:this.elMenuIcon,icon:\"string\"==typeof this.t.download?this.t.download:'',title:this.localeValues.menu,class:\"apexcharts-menu-icon\"});for(var l=0;l0&&e.height>0&&this.slDraggableRect.selectize({points:\"l, r\",pointSize:8,pointType:\"rect\"}).resize({constraint:{minX:0,minY:0,maxX:t.globals.gridWidth,maxY:t.globals.gridHeight}}).on(\"resizing\",this.selectionDragging.bind(this,\"resizing\"))}}},{key:\"preselectedSelection\",value:function(){var t=this.w,e=this.xyRatios;if(!t.globals.zoomEnabled)if(void 0!==t.globals.selection&&null!==t.globals.selection)this.drawSelectionRect(t.globals.selection);else if(void 0!==t.config.chart.selection.xaxis.min&&void 0!==t.config.chart.selection.xaxis.max){var i=(t.config.chart.selection.xaxis.min-t.globals.minX)/e.xRatio,a={x:i,y:0,width:t.globals.gridWidth-(t.globals.maxX-t.config.chart.selection.xaxis.max)/e.xRatio-i,height:t.globals.gridHeight,translateX:0,translateY:0,selectionEnabled:!0};this.drawSelectionRect(a),this.makeSelectionRectDraggable(),\"function\"==typeof t.config.chart.events.selection&&t.config.chart.events.selection(this.ctx,{xaxis:{min:t.config.chart.selection.xaxis.min,max:t.config.chart.selection.xaxis.max},yaxis:{}})}}},{key:\"drawSelectionRect\",value:function(t){var e=t.x,i=t.y,a=t.width,s=t.height,r=t.translateX,o=void 0===r?0:r,n=t.translateY,l=void 0===n?0:n,h=this.w,c=this.zoomRect,d=this.selectionRect;if(this.dragged||null!==h.globals.selection){var g={transform:\"translate(\"+o+\", \"+l+\")\"};h.globals.zoomEnabled&&this.dragged&&(a<0&&(a=1),c.attr({x:e,y:i,width:a,height:s,fill:h.config.chart.zoom.zoomedArea.fill.color,\"fill-opacity\":h.config.chart.zoom.zoomedArea.fill.opacity,stroke:h.config.chart.zoom.zoomedArea.stroke.color,\"stroke-width\":h.config.chart.zoom.zoomedArea.stroke.width,\"stroke-opacity\":h.config.chart.zoom.zoomedArea.stroke.opacity}),b.setAttrs(c.node,g)),h.globals.selectionEnabled&&(d.attr({x:e,y:i,width:a>0?a:0,height:s>0?s:0,fill:h.config.chart.selection.fill.color,\"fill-opacity\":h.config.chart.selection.fill.opacity,stroke:h.config.chart.selection.stroke.color,\"stroke-width\":h.config.chart.selection.stroke.width,\"stroke-dasharray\":h.config.chart.selection.stroke.dashArray,\"stroke-opacity\":h.config.chart.selection.stroke.opacity}),b.setAttrs(d.node,g))}}},{key:\"hideSelectionRect\",value:function(t){t&&t.attr({x:0,y:0,width:0,height:0})}},{key:\"selectionDrawing\",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.gridRect.getBoundingClientRect(),o=s.startX-1,n=s.startY,l=!1,h=!1,c=s.clientX-r.left-o,d=s.clientY-r.top-n,g={};return Math.abs(c+o)>a.globals.gridWidth?c=a.globals.gridWidth-o:s.clientX-r.left<0&&(c=o),o>s.clientX-r.left&&(l=!0,c=Math.abs(c)),n>s.clientY-r.top&&(h=!0,d=Math.abs(d)),g=\"x\"===i?{x:l?o-c:o,y:0,width:c,height:a.globals.gridHeight}:\"y\"===i?{x:0,y:h?n-d:n,width:a.globals.gridWidth,height:d}:{x:l?o-c:o,y:h?n-d:n,width:c,height:d},s.drawSelectionRect(g),s.selectionDragging(\"resizing\"),g}},{key:\"selectionDragging\",value:function(t,e){var i=this,a=this.w,s=this.xyRatios,r=this.selectionRect,o=0;\"resizing\"===t&&(o=30);var n=function(t){return parseFloat(r.node.getAttribute(t))},l={x:n(\"x\"),y:n(\"y\"),width:n(\"width\"),height:n(\"height\")};a.globals.selection=l,\"function\"==typeof a.config.chart.events.selection&&a.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout((function(){var t=i.gridRect.getBoundingClientRect(),e=r.node.getBoundingClientRect(),o={xaxis:{min:a.globals.xAxisScale.niceMin+(e.left-t.left)*s.xRatio,max:a.globals.xAxisScale.niceMin+(e.right-t.left)*s.xRatio},yaxis:{min:a.globals.yAxisScale[0].niceMin+(t.bottom-e.bottom)*s.yRatio[0],max:a.globals.yAxisScale[0].niceMax-(e.top-t.top)*s.yRatio[0]}};a.config.chart.events.selection(i.ctx,o),a.config.chart.brush.enabled&&void 0!==a.config.chart.events.brushScrolled&&a.config.chart.events.brushScrolled(i.ctx,o)}),o))}},{key:\"selectionDrawn\",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.xyRatios,o=this.ctx.toolbar;if(s.startX>s.endX){var n=s.startX;s.startX=s.endX,s.endX=n}if(s.startY>s.endY){var l=s.startY;s.startY=s.endY,s.endY=l}var h=void 0,c=void 0;a.globals.isTimelineBar?(h=a.globals.yAxisScale[0].niceMin+s.startX*r.invertedYRatio,c=a.globals.yAxisScale[0].niceMin+s.endX*r.invertedYRatio):(h=a.globals.xAxisScale.niceMin+s.startX*r.xRatio,c=a.globals.xAxisScale.niceMin+s.endX*r.xRatio);var d=[],g=[];if(a.config.yaxis.forEach((function(t,e){d.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.startY),g.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.endY)})),s.dragged&&(s.dragX>10||s.dragY>10)&&h!==c)if(a.globals.zoomEnabled){var u=f.clone(a.globals.initialConfig.yaxis),p=f.clone(a.globals.initialConfig.xaxis);if(a.globals.zoomed=!0,a.config.xaxis.convertedCatToNumeric&&(h=Math.floor(h),c=Math.floor(c),h<1&&(h=1,c=a.globals.dataPoints),c-h<2&&(c=h+1)),\"xy\"!==i&&\"x\"!==i||(p={min:h,max:c}),\"xy\"!==i&&\"y\"!==i||u.forEach((function(t,e){u[e].min=g[e],u[e].max=d[e]})),a.config.chart.zoom.autoScaleYaxis){var x=new j(s.ctx);u=x.autoScaleY(s.ctx,u,{xaxis:p})}if(o){var b=o.getBeforeZoomRange(p,u);b&&(p=b.xaxis?b.xaxis:p,u=b.yaxis?b.yaxis:u)}var m={xaxis:p};a.config.chart.group||(m.yaxis=u),s.ctx.updateHelpers._updateOptions(m,!1,s.w.config.chart.animations.dynamicAnimation.enabled),\"function\"==typeof a.config.chart.events.zoomed&&o.zoomCallback(p,u)}else if(a.globals.selectionEnabled){var v,y=null;v={min:h,max:c},\"xy\"!==i&&\"y\"!==i||(y=f.clone(a.config.yaxis)).forEach((function(t,e){y[e].min=g[e],y[e].max=d[e]})),a.globals.selection=s.selection,\"function\"==typeof a.config.chart.events.selection&&a.config.chart.events.selection(s.ctx,{xaxis:v,yaxis:y})}}},{key:\"panDragging\",value:function(t){var e=t.context,i=this.w,a=e;if(void 0!==i.globals.lastClientPosition.x){var s=i.globals.lastClientPosition.x-a.clientX,r=i.globals.lastClientPosition.y-a.clientY;Math.abs(s)>Math.abs(r)&&s>0?this.moveDirection=\"left\":Math.abs(s)>Math.abs(r)&&s<0?this.moveDirection=\"right\":Math.abs(r)>Math.abs(s)&&r>0?this.moveDirection=\"up\":Math.abs(r)>Math.abs(s)&&r<0&&(this.moveDirection=\"down\")}i.globals.lastClientPosition={x:a.clientX,y:a.clientY};var o=i.globals.isTimelineBar?i.globals.minY:i.globals.minX,n=i.globals.isTimelineBar?i.globals.maxY:i.globals.maxX;i.config.xaxis.convertedCatToNumeric||a.panScrolled(o,n)}},{key:\"delayedPanScrolled\",value:function(){var t=this.w,e=t.globals.minX,i=t.globals.maxX,a=(t.globals.maxX-t.globals.minX)/2;\"left\"===this.moveDirection?(e=t.globals.minX+a,i=t.globals.maxX+a):\"right\"===this.moveDirection&&(e=t.globals.minX-a,i=t.globals.maxX-a),e=Math.floor(e),i=Math.floor(i),this.updateScrolledChart({xaxis:{min:e,max:i}},e,i)}},{key:\"panScrolled\",value:function(t,e){var i=this.w,a=this.xyRatios,s=f.clone(i.globals.initialConfig.yaxis),r=a.xRatio,o=i.globals.minX,n=i.globals.maxX;i.globals.isTimelineBar&&(r=a.invertedYRatio,o=i.globals.minY,n=i.globals.maxY),\"left\"===this.moveDirection?(t=o+i.globals.gridWidth/15*r,e=n+i.globals.gridWidth/15*r):\"right\"===this.moveDirection&&(t=o-i.globals.gridWidth/15*r,e=n-i.globals.gridWidth/15*r),i.globals.isTimelineBar||(ti.globals.initialMaxX)&&(t=o,e=n);var l={min:t,max:e};i.config.chart.zoom.autoScaleYaxis&&(s=new j(this.ctx).autoScaleY(this.ctx,s,{xaxis:l}));var h={xaxis:{min:t,max:e}};i.config.chart.group||(h.yaxis=s),this.updateScrolledChart(h,t,e)}},{key:\"updateScrolledChart\",value:function(t,e,i){var a=this.w;this.ctx.updateHelpers._updateOptions(t,!1,!1),\"function\"==typeof a.config.chart.events.scrolled&&a.config.chart.events.scrolled(this.ctx,{xaxis:{min:e,max:i}})}}]),s}(ht),dt=function(){function t(i){e(this,t),this.w=i.w,this.ttCtx=i,this.ctx=i.ctx}return a(t,[{key:\"getNearestValues\",value:function(t){var e=t.hoverArea,i=t.elGrid,a=t.clientX,s=t.clientY,r=this.w,o=r.globals.gridWidth,n=r.globals.gridHeight,l=o/(r.globals.dataPoints-1),h=n/r.globals.dataPoints,c=i.getBoundingClientRect(),d=this.hasBars();!r.globals.comboCharts&&!d||r.config.xaxis.convertedCatToNumeric||(l=o/r.globals.dataPoints);var g=a-c.left-r.globals.barPadForNumericAxis,u=s-c.top;g<0||u<0||g>r.globals.gridWidth||u>r.globals.gridHeight?(e.classList.remove(\"hovering-zoom\"),e.classList.remove(\"hovering-pan\")):r.globals.zoomEnabled?(e.classList.remove(\"hovering-pan\"),e.classList.add(\"hovering-zoom\")):r.globals.panEnabled&&(e.classList.remove(\"hovering-zoom\"),e.classList.add(\"hovering-pan\"));var p=Math.round(g/l),x=Math.floor(u/h);d&&!r.config.xaxis.convertedCatToNumeric&&(p=Math.ceil(g/l),p-=1);for(var b,m=null,v=null,y=[],w=0;w1?r=this.getFirstActiveXArray(i):o=0;var l=a[r][0],h=i[r][0],c=Math.abs(t-h),d=Math.abs(e-l),g=d+c;return a.map((function(s,r){s.map((function(s,l){var h=Math.abs(e-a[r][l]),u=Math.abs(t-i[r][l]),f=u+h;f0?e:-1})),a=0;a0)for(var a=0;a0}},{key:\"getElBars\",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series\")}},{key:\"hasBars\",value:function(){return this.getElBars().length>0}},{key:\"getHoverMarkerSize\",value:function(t){var e=this.w,i=e.config.markers.hover.size;return void 0===i&&(i=e.globals.markers.size[t]+e.config.markers.hover.sizeOffset),i}},{key:\"toggleAllTooltipSeriesGroups\",value:function(t){var e=this.w,i=this.ttCtx;0===i.allTooltipSeriesGroups.length&&(i.allTooltipSeriesGroups=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-tooltip-series-group\"));for(var a=i.allTooltipSeriesGroups,s=0;s\",e=\"
\";d.forEach((function(i,a){t+='
').concat(i.attrs.name,\"
\"),e+=\"
\".concat(i.val,\"
\")})),v.innerHTML=t+\"
\",y.innerHTML=e+\"\"};o?l.globals.seriesGoals[e][i]&&Array.isArray(l.globals.seriesGoals[e][i])?w():(v.innerHTML=\"\",y.innerHTML=\"\"):w()}else v.innerHTML=\"\",y.innerHTML=\"\";null!==p&&(a[e].querySelector(\".apexcharts-tooltip-text-z-label\").innerHTML=l.config.tooltip.z.title,a[e].querySelector(\".apexcharts-tooltip-text-z-value\").innerHTML=void 0!==p?p:\"\");o&&x[0]&&(null==c||l.globals.collapsedSeriesIndices.indexOf(e)>-1?x[0].parentNode.style.display=\"none\":x[0].parentNode.style.display=l.config.tooltip.items.display)}},{key:\"toggleActiveInactiveSeries\",value:function(t){var e=this.w;if(t)this.tooltipUtil.toggleAllTooltipSeriesGroups(\"enable\");else{this.tooltipUtil.toggleAllTooltipSeriesGroups(\"disable\");var i=e.globals.dom.baseEl.querySelector(\".apexcharts-tooltip-series-group\");i&&(i.classList.add(\"apexcharts-active\"),i.style.display=e.config.tooltip.items.display)}}},{key:\"getValuesToPrint\",value:function(t){var e=t.i,i=t.j,a=this.w,s=this.ctx.series.filteredSeriesX(),r=\"\",o=\"\",n=null,l=null,h={series:a.globals.series,seriesIndex:e,dataPointIndex:i,w:a},c=a.globals.ttZFormatter;null===i?l=a.globals.series[e]:a.globals.isXNumeric&&\"treemap\"!==a.config.chart.type?(r=s[e][i],0===s[e].length&&(r=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):r=void 0!==a.globals.labels[i]?a.globals.labels[i]:\"\";var d=r;a.globals.isXNumeric&&\"datetime\"===a.config.xaxis.type?r=new W(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new Y(this.ctx).formatDate,w:this.w}):r=a.globals.isBarHorizontal?a.globals.yLabelFormatters[0](d,h):a.globals.xLabelFormatter(d,h);return void 0!==a.config.tooltip.x.formatter&&(r=a.globals.ttKeyFormatter(d,h)),a.globals.seriesZ.length>0&&a.globals.seriesZ[e].length>0&&(n=c(a.globals.seriesZ[e][i],a)),o=\"function\"==typeof a.config.xaxis.tooltip.formatter?a.globals.xaxisTooltipFormatter(d,h):r,{val:Array.isArray(l)?l.join(\" \"):l,xVal:Array.isArray(r)?r.join(\" \"):r,xAxisTTVal:Array.isArray(o)?o.join(\" \"):o,zVal:n}}},{key:\"handleCustomTooltip\",value:function(t){var e=t.i,i=t.j,a=t.y1,s=t.y2,r=t.w,o=this.ttCtx.getElTooltip(),n=r.config.tooltip.custom;Array.isArray(n)&&n[e]&&(n=n[e]),o.innerHTML=n({ctx:this.ctx,series:r.globals.series,seriesIndex:e,dataPointIndex:i,y1:a,y2:s,w:r})}}]),t}(),ut=function(){function t(i){e(this,t),this.ttCtx=i,this.ctx=i.ctx,this.w=i.w}return a(t,[{key:\"moveXCrosshairs\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),r=t-i.xcrosshairsWidth/2,o=a.globals.labels.slice().length;if(null!==e&&(r=a.globals.gridWidth/o*e),null!==s&&(s.setAttribute(\"x\",r),s.setAttribute(\"x1\",r),s.setAttribute(\"x2\",r),s.setAttribute(\"y2\",a.globals.gridHeight),s.classList.add(\"apexcharts-active\")),r<0&&(r=0),r>a.globals.gridWidth&&(r=a.globals.gridWidth),i.blxaxisTooltip){var n=r;\"tickWidth\"!==a.config.xaxis.crosshairs.width&&\"barWidth\"!==a.config.xaxis.crosshairs.width||(n=r+i.xcrosshairsWidth/2),this.moveXAxisTooltip(n)}}},{key:\"moveYCrosshairs\",value:function(t){var e=this.ttCtx;null!==e.ycrosshairs&&b.setAttrs(e.ycrosshairs,{y1:t,y2:t}),null!==e.ycrosshairsHidden&&b.setAttrs(e.ycrosshairsHidden,{y1:t,y2:t})}},{key:\"moveXAxisTooltip\",value:function(t){var e=this.w,i=this.ttCtx;if(null!==i.xaxisTooltip){i.xaxisTooltip.classList.add(\"apexcharts-active\");var a=i.xaxisOffY+e.config.xaxis.tooltip.offsetY+e.globals.translateY+1+e.config.xaxis.offsetY;if(t-=i.xaxisTooltip.getBoundingClientRect().width/2,!isNaN(t)){t+=e.globals.translateX;var s;s=new b(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=s.width+\"px\",i.xaxisTooltip.style.left=t+\"px\",i.xaxisTooltip.style.top=a+\"px\"}}}},{key:\"moveYAxisTooltip\",value:function(t){var e=this.w,i=this.ttCtx;null===i.yaxisTTEls&&(i.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxistooltip\"));var a=parseInt(i.ycrosshairsHidden.getAttribute(\"y1\"),10),s=e.globals.translateY+a,r=i.yaxisTTEls[t].getBoundingClientRect().height,o=e.globals.translateYAxisX[t]-2;e.config.yaxis[t].opposite&&(o-=26),s-=r/2,-1===e.globals.ignoreYAxisIndexes.indexOf(t)?(i.yaxisTTEls[t].classList.add(\"apexcharts-active\"),i.yaxisTTEls[t].style.top=s+\"px\",i.yaxisTTEls[t].style.left=o+e.config.yaxis[t].tooltip.offsetX+\"px\"):i.yaxisTTEls[t].classList.remove(\"apexcharts-active\")}},{key:\"moveTooltip\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.ttCtx,r=s.getElTooltip(),o=s.tooltipRect,n=null!==i?parseFloat(i):1,l=parseFloat(t)+n+5,h=parseFloat(e)+n/2;if(l>a.globals.gridWidth/2&&(l=l-o.ttWidth-n-15),l>a.globals.gridWidth-o.ttWidth-10&&(l=a.globals.gridWidth-o.ttWidth),l<-20&&(l=-20),a.config.tooltip.followCursor){var c=s.getElGrid(),d=c.getBoundingClientRect();h=s.e.clientY+a.globals.translateY-d.top-o.ttHeight/2}else a.globals.isBarHorizontal?h-=o.ttHeight:(o.ttHeight/2+h>a.globals.gridHeight&&(h=a.globals.gridHeight-o.ttHeight+a.globals.translateY),h<0&&(h=0));isNaN(l)||(l+=a.globals.translateX,r.style.left=l+\"px\",r.style.top=h+\"px\")}},{key:\"moveMarkers\",value:function(t,e){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[t]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(\" .apexcharts-series[data\\\\:realIndex='\".concat(t,\"'] .apexcharts-marker\")),r=0;r0&&(h.setAttribute(\"r\",n),h.setAttribute(\"cx\",i),h.setAttribute(\"cy\",a)),this.moveXCrosshairs(i),r.fixedTooltip||this.moveTooltip(i,a,n)}}},{key:\"moveDynamicPointsOnHover\",value:function(t){var e,i=this.ttCtx,a=i.w,s=0,r=0,o=a.globals.pointsArray;e=new I(this.ctx).getActiveConfigSeriesIndex(!0);var n=i.tooltipUtil.getHoverMarkerSize(e);o[e]&&(s=o[e][t][0],r=o[e][t][1]);var l=i.tooltipUtil.getAllMarkers();if(null!==l)for(var h=0;h0?(l[h]&&l[h].setAttribute(\"r\",n),l[h]&&l[h].setAttribute(\"cy\",d)):l[h]&&l[h].setAttribute(\"r\",0)}}if(this.moveXCrosshairs(s),!i.fixedTooltip){var g=r||a.globals.gridHeight;this.moveTooltip(s,g,n)}}},{key:\"moveStickyTooltipOverBars\",value:function(t){var e=this.w,i=this.ttCtx,a=e.globals.columnSeries?e.globals.columnSeries.length:e.globals.series.length,s=a>=2&&a%2==0?Math.floor(a/2):Math.floor(a/2)+1;e.globals.isBarHorizontal&&(s=new I(this.ctx).getActiveConfigSeriesIndex(!1,\"desc\")+1);var r=e.globals.dom.baseEl.querySelector(\".apexcharts-bar-series .apexcharts-series[rel='\".concat(s,\"'] path[j='\").concat(t,\"'], .apexcharts-candlestick-series .apexcharts-series[rel='\").concat(s,\"'] path[j='\").concat(t,\"'], .apexcharts-boxPlot-series .apexcharts-series[rel='\").concat(s,\"'] path[j='\").concat(t,\"'], .apexcharts-rangebar-series .apexcharts-series[rel='\").concat(s,\"'] path[j='\").concat(t,\"']\")),o=r?parseFloat(r.getAttribute(\"cx\")):0,n=r?parseFloat(r.getAttribute(\"cy\")):0,l=r?parseFloat(r.getAttribute(\"barWidth\")):0,h=r?parseFloat(r.getAttribute(\"barHeight\")):0,c=i.getElGrid().getBoundingClientRect();if(e.globals.isXNumeric?(o-=a%2!=0?l/2:0,r&&(r.classList.contains(\"apexcharts-candlestick-area\")||r.classList.contains(\"apexcharts-boxPlot-area\"))&&e.globals.comboCharts&&(o-=l/2)):e.globals.isBarHorizontal||(o=i.xAxisTicksPositions[t-1]+i.dataPointsDividedWidth/2,isNaN(o)&&(o=i.xAxisTicksPositions[t]-i.dataPointsDividedWidth/2)),e.globals.isBarHorizontal?n+=h/3:n=i.e.clientY-c.top-i.tooltipRect.ttHeight/2,e.globals.isBarHorizontal||this.moveXCrosshairs(o),!i.fixedTooltip){var d=n||e.globals.gridHeight;this.moveTooltip(o,d)}}}]),t}(),ft=function(){function t(i){e(this,t),this.w=i.w,this.ttCtx=i,this.ctx=i.ctx,this.tooltipPosition=new ut(i)}return a(t,[{key:\"drawDynamicPoints\",value:function(){var t=this.w,e=new b(this.ctx),i=new P(this.ctx),a=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series\");a=g(a),t.config.chart.stacked&&a.sort((function(t,e){return parseFloat(t.getAttribute(\"data:realIndex\"))-parseFloat(e.getAttribute(\"data:realIndex\"))}));for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w;\"bubble\"!==s.config.chart.type&&this.newPointSize(t,e);var r=e.getAttribute(\"cx\"),o=e.getAttribute(\"cy\");if(null!==i&&null!==a&&(r=i,o=a),this.tooltipPosition.moveXCrosshairs(r),!this.fixedTooltip){if(\"radar\"===s.config.chart.type){var n=this.ttCtx.getElGrid(),l=n.getBoundingClientRect();r=this.ttCtx.e.clientX-l.left}this.tooltipPosition.moveTooltip(r,o,s.config.markers.hover.size)}}},{key:\"enlargePoints\",value:function(t){for(var e=this.w,i=this,a=this.ttCtx,s=t,r=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker\"),o=e.config.markers.hover.size,n=0;n=0?t[e].setAttribute(\"r\",i):t[e].setAttribute(\"r\",0)}}}]),t}(),pt=function(){function t(i){e(this,t),this.w=i.w,this.ttCtx=i}return a(t,[{key:\"getAttr\",value:function(t,e){return parseFloat(t.target.getAttribute(e))}},{key:\"handleHeatTreeTooltip\",value:function(t){var e=t.e,i=t.opt,a=t.x,s=t.y,r=t.type,o=this.ttCtx,n=this.w;if(e.target.classList.contains(\"apexcharts-\".concat(r,\"-rect\"))){var l=this.getAttr(e,\"i\"),h=this.getAttr(e,\"j\"),c=this.getAttr(e,\"cx\"),d=this.getAttr(e,\"cy\"),g=this.getAttr(e,\"width\"),u=this.getAttr(e,\"height\");if(o.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:l,j:h,shared:!1,e:e}),n.globals.capturedSeriesIndex=l,n.globals.capturedDataPointIndex=h,a=c+o.tooltipRect.ttWidth/2+g,s=d+o.tooltipRect.ttHeight/2-u/2,o.tooltipPosition.moveXCrosshairs(c+g/2),a>n.globals.gridWidth/2&&(a=c-o.tooltipRect.ttWidth/2+g),o.w.config.tooltip.followCursor){var f=n.globals.dom.elWrap.getBoundingClientRect();a=n.globals.clientX-f.left-o.tooltipRect.ttWidth/2,s=n.globals.clientY-f.top-o.tooltipRect.ttHeight-5}}return{x:a,y:s}}},{key:\"handleMarkerTooltip\",value:function(t){var e,i,a=t.e,s=t.opt,r=t.x,o=t.y,n=this.w,l=this.ttCtx;if(a.target.classList.contains(\"apexcharts-marker\")){var h=parseInt(s.paths.getAttribute(\"cx\"),10),c=parseInt(s.paths.getAttribute(\"cy\"),10),d=parseFloat(s.paths.getAttribute(\"val\"));if(i=parseInt(s.paths.getAttribute(\"rel\"),10),e=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute(\"rel\"),10)-1,l.intersect){var g=f.findAncestor(s.paths,\"apexcharts-series\");g&&(e=parseInt(g.getAttribute(\"data:realIndex\"),10))}if(l.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:e,j:i,shared:!l.showOnIntersect&&n.config.tooltip.shared,e:a}),\"mouseup\"===a.type&&l.markerClick(a,e,i),n.globals.capturedSeriesIndex=e,n.globals.capturedDataPointIndex=i,r=h,o=c+n.globals.translateY-1.4*l.tooltipRect.ttHeight,l.w.config.tooltip.followCursor){var u=l.getElGrid().getBoundingClientRect();o=l.e.clientY+n.globals.translateY-u.top}d<0&&(o=c),l.marker.enlargeCurrentPoint(i,s.paths,r,o)}return{x:r,y:o}}},{key:\"handleBarTooltip\",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=this.ttCtx,n=o.getElTooltip(),l=0,h=0,c=0,d=this.getBarTooltipXY({e:a,opt:s});e=d.i;var g=d.barHeight,u=d.j;r.globals.capturedSeriesIndex=e,r.globals.capturedDataPointIndex=u,r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||!r.config.tooltip.shared?(h=d.x,c=d.y,i=Array.isArray(r.config.stroke.width)?r.config.stroke.width[e]:r.config.stroke.width,l=h):r.globals.comboCharts||r.config.tooltip.shared||(l/=2),isNaN(c)?c=r.globals.svgHeight-o.tooltipRect.ttHeight:c<0&&(c=0);var f=parseInt(s.paths.parentNode.getAttribute(\"data:realIndex\"),10),p=r.globals.isMultipleYAxis?r.config.yaxis[f]&&r.config.yaxis[f].reversed:r.config.yaxis[0].reversed;if(h+o.tooltipRect.ttWidth>r.globals.gridWidth&&!p?h-=o.tooltipRect.ttWidth:h<0&&(h=0),o.w.config.tooltip.followCursor){var x=o.getElGrid().getBoundingClientRect();c=o.e.clientY-x.top}null===o.tooltip&&(o.tooltip=r.globals.dom.baseEl.querySelector(\".apexcharts-tooltip\")),r.config.tooltip.shared||(r.globals.comboBarCount>0?o.tooltipPosition.moveXCrosshairs(l+i/2):o.tooltipPosition.moveXCrosshairs(l)),!o.fixedTooltip&&(!r.config.tooltip.shared||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars())&&(p&&(h-=o.tooltipRect.ttWidth)<0&&(h=0),n.style.left=h+r.globals.translateX+\"px\",!p||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||(c=c+g-2*(r.globals.series[e][u]<0?g:0)),o.tooltipRect.ttHeight+c>r.globals.gridHeight?(c=r.globals.gridHeight-o.tooltipRect.ttHeight+r.globals.translateY,n.style.top=c+\"px\"):n.style.top=c+r.globals.translateY-o.tooltipRect.ttHeight/2+\"px\")}},{key:\"getBarTooltipXY\",value:function(t){var e=t.e,i=t.opt,a=this.w,s=null,r=this.ttCtx,o=0,n=0,l=0,h=0,c=0,d=e.target.classList;if(d.contains(\"apexcharts-bar-area\")||d.contains(\"apexcharts-candlestick-area\")||d.contains(\"apexcharts-boxPlot-area\")||d.contains(\"apexcharts-rangebar-area\")){var g=e.target,u=g.getBoundingClientRect(),f=i.elGrid.getBoundingClientRect(),p=u.height;c=u.height;var x=u.width,b=parseInt(g.getAttribute(\"cx\"),10),m=parseInt(g.getAttribute(\"cy\"),10);h=parseFloat(g.getAttribute(\"barWidth\"));var v=\"touchmove\"===e.type?e.touches[0].clientX:e.clientX;s=parseInt(g.getAttribute(\"j\"),10),o=parseInt(g.parentNode.getAttribute(\"rel\"),10)-1;var y=g.getAttribute(\"data-range-y1\"),w=g.getAttribute(\"data-range-y2\");a.globals.comboCharts&&(o=parseInt(g.parentNode.getAttribute(\"data:realIndex\"),10)),r.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:o,j:s,y1:y?parseInt(y,10):null,y2:w?parseInt(w,10):null,shared:!r.showOnIntersect&&a.config.tooltip.shared,e:e}),a.config.tooltip.followCursor?a.globals.isBarHorizontal?(n=v-f.left+15,l=m-r.dataPointsDividedHeight+p/2-r.tooltipRect.ttHeight/2):(n=a.globals.isXNumeric?b-x/2:b-r.dataPointsDividedWidth+x/2,l=e.clientY-f.top-r.tooltipRect.ttHeight/2-15):a.globals.isBarHorizontal?((n=b)0&&i.setAttribute(\"width\",e.xcrosshairsWidth)}},{key:\"handleYCrosshair\",value:function(){var t=this.w,e=this.ttCtx;e.ycrosshairs=t.globals.dom.baseEl.querySelector(\".apexcharts-ycrosshairs\"),e.ycrosshairsHidden=t.globals.dom.baseEl.querySelector(\".apexcharts-ycrosshairs-hidden\")}},{key:\"drawYaxisTooltipText\",value:function(t,e,i){var a=this.ttCtx,s=this.w,r=s.globals.yLabelFormatters[t];if(a.yaxisTooltips[t]){var o=a.getElGrid().getBoundingClientRect(),n=(e-o.top)*i.yRatio[t],l=s.globals.maxYArr[t]-s.globals.minYArr[t],h=s.globals.minYArr[t]+(l-n);a.tooltipPosition.moveYCrosshairs(e-o.top),a.yaxisTooltipText[t].innerHTML=r(h),a.tooltipPosition.moveYAxisTooltip(t)}}}]),t}(),bt=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w;var a=this.w;this.tConfig=a.config.tooltip,this.tooltipUtil=new dt(this),this.tooltipLabels=new gt(this),this.tooltipPosition=new ut(this),this.marker=new ft(this),this.intersect=new pt(this),this.axesTooltip=new xt(this),this.showOnIntersect=this.tConfig.intersect,this.showTooltipTitle=this.tConfig.x.show,this.fixedTooltip=this.tConfig.fixed.enabled,this.xaxisTooltip=null,this.yaxisTTEls=null,this.isBarShared=!a.globals.isBarHorizontal&&this.tConfig.shared}return a(t,[{key:\"getElTooltip\",value:function(t){return t||(t=this),t.w.globals.dom.baseEl.querySelector(\".apexcharts-tooltip\")}},{key:\"getElXCrosshairs\",value:function(){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-xcrosshairs\")}},{key:\"getElGrid\",value:function(){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-grid\")}},{key:\"drawTooltip\",value:function(t){var e=this.w;this.xyRatios=t,this.blxaxisTooltip=e.config.xaxis.tooltip.enabled&&e.globals.axisCharts,this.yaxisTooltips=e.config.yaxis.map((function(t,i){return!!(t.show&&t.tooltip.enabled&&e.globals.axisCharts)})),this.allTooltipSeriesGroups=[],e.globals.axisCharts||(this.showTooltipTitle=!1);var i=document.createElement(\"div\");if(i.classList.add(\"apexcharts-tooltip\"),i.classList.add(\"apexcharts-theme-\".concat(this.tConfig.theme)),e.globals.dom.elWrap.appendChild(i),e.globals.axisCharts){this.axesTooltip.drawXaxisTooltip(),this.axesTooltip.drawYaxisTooltip(),this.axesTooltip.setXCrosshairWidth(),this.axesTooltip.handleYCrosshair();var a=new G(this.ctx);this.xAxisTicksPositions=a.getXAxisTicksPositions()}if(!e.globals.comboCharts&&!this.tConfig.intersect&&\"rangeBar\"!==e.config.chart.type||this.tConfig.shared||(this.showOnIntersect=!0),0!==e.config.markers.size&&0!==e.globals.markers.largestSize||this.marker.drawDynamicPoints(this),e.globals.collapsedSeries.length!==e.globals.series.length){this.dataPointsDividedHeight=e.globals.gridHeight/e.globals.dataPoints,this.dataPointsDividedWidth=e.globals.gridWidth/e.globals.dataPoints,this.showTooltipTitle&&(this.tooltipTitle=document.createElement(\"div\"),this.tooltipTitle.classList.add(\"apexcharts-tooltip-title\"),this.tooltipTitle.style.fontFamily=this.tConfig.style.fontFamily||e.config.chart.fontFamily,this.tooltipTitle.style.fontSize=this.tConfig.style.fontSize,i.appendChild(this.tooltipTitle));var s=e.globals.series.length;(e.globals.xyCharts||e.globals.comboCharts)&&this.tConfig.shared&&(s=this.showOnIntersect?1:e.globals.series.length),this.legendLabels=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-legend-text\"),this.ttItems=this.createTTElements(s),this.addSVGEvents()}}},{key:\"createTTElements\",value:function(t){for(var e=this,i=this.w,a=[],s=this.getElTooltip(),r=function(r){var o=document.createElement(\"div\");o.classList.add(\"apexcharts-tooltip-series-group\"),o.style.order=i.config.tooltip.inverseOrder?t-r:r+1,e.tConfig.shared&&e.tConfig.enabledOnSeries&&Array.isArray(e.tConfig.enabledOnSeries)&&e.tConfig.enabledOnSeries.indexOf(r)<0&&o.classList.add(\"apexcharts-tooltip-series-group-hidden\");var n=document.createElement(\"span\");n.classList.add(\"apexcharts-tooltip-marker\"),n.style.backgroundColor=i.globals.colors[r],o.appendChild(n);var l=document.createElement(\"div\");l.classList.add(\"apexcharts-tooltip-text\"),l.style.fontFamily=e.tConfig.style.fontFamily||i.config.chart.fontFamily,l.style.fontSize=e.tConfig.style.fontSize,[\"y\",\"goals\",\"z\"].forEach((function(t){var e=document.createElement(\"div\");e.classList.add(\"apexcharts-tooltip-\".concat(t,\"-group\"));var i=document.createElement(\"span\");i.classList.add(\"apexcharts-tooltip-text-\".concat(t,\"-label\")),e.appendChild(i);var a=document.createElement(\"span\");a.classList.add(\"apexcharts-tooltip-text-\".concat(t,\"-value\")),e.appendChild(a),l.appendChild(e)})),o.appendChild(l),s.appendChild(o),a.push(o)},o=0;o0&&this.addPathsEventListeners(u,c),this.tooltipUtil.hasBars()&&!this.tConfig.shared&&this.addDatapointEventsListeners(c)}}},{key:\"drawFixedTooltipRect\",value:function(){var t=this.w,e=this.getElTooltip(),i=e.getBoundingClientRect(),a=i.width+10,s=i.height+10,r=this.tConfig.fixed.offsetX,o=this.tConfig.fixed.offsetY,n=this.tConfig.fixed.position.toLowerCase();return n.indexOf(\"right\")>-1&&(r=r+t.globals.svgWidth-a+10),n.indexOf(\"bottom\")>-1&&(o=o+t.globals.svgHeight-s-10),e.style.left=r+\"px\",e.style.top=o+\"px\",{x:r,y:o,ttWidth:a,ttHeight:s}}},{key:\"addDatapointEventsListeners\",value:function(t){var e=this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area\");this.addPathsEventListeners(e,t)}},{key:\"addPathsEventListeners\",value:function(t,e){for(var i=this,a=function(a){var s={paths:t[a],tooltipEl:e.tooltipEl,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:e.ttItems};[\"mousemove\",\"mouseup\",\"touchmove\",\"mouseout\",\"touchend\"].map((function(e){return t[a].addEventListener(e,i.seriesHover.bind(i,s),{capture:!1,passive:!0})}))},s=0;so.top+o.height)this.handleMouseOut(s);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var h=parseInt(s.paths.getAttribute(\"index\"),10);if(this.tConfig.enabledOnSeries.indexOf(h)<0)return void this.handleMouseOut(s)}var c=this.getElTooltip(),d=this.getElXCrosshairs(),g=r.globals.xyCharts||\"bar\"===r.config.chart.type&&!r.globals.isBarHorizontal&&this.tooltipUtil.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.tooltipUtil.hasBars();if(\"mousemove\"===a.type||\"touchmove\"===a.type||\"mouseup\"===a.type){null!==d&&d.classList.add(\"apexcharts-active\");var u=this.yaxisTooltips.filter((function(t){return!0===t}));if(null!==this.ycrosshairs&&u.length&&this.ycrosshairs.classList.add(\"apexcharts-active\"),g&&!this.showOnIntersect)this.handleStickyTooltip(a,n,l,s);else if(\"heatmap\"===r.config.chart.type||\"treemap\"===r.config.chart.type){var f=this.intersect.handleHeatTreeTooltip({e:a,opt:s,x:e,y:i,type:r.config.chart.type});e=f.x,i=f.y,c.style.left=e+\"px\",c.style.top=i+\"px\"}else this.tooltipUtil.hasBars()&&this.intersect.handleBarTooltip({e:a,opt:s}),this.tooltipUtil.hasMarkers()&&this.intersect.handleMarkerTooltip({e:a,opt:s,x:e,y:i});if(this.yaxisTooltips.length)for(var p=0;ps.globals.gridWidth?this.handleMouseOut(a):null!==n?this.handleStickyCapturedSeries(t,n,a,o):(this.tooltipUtil.isXoverlap(o)||s.globals.isBarHorizontal)&&this.create(t,this,0,o,a.ttItems)}},{key:\"handleStickyCapturedSeries\",value:function(t,e,i,a){var s=this.w;null===s.globals.series[e][a]?this.handleMouseOut(i):void 0!==s.globals.series[e][a]?this.tConfig.shared&&this.tooltipUtil.isXoverlap(a)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(t,this,e,a,i.ttItems):this.create(t,this,e,a,i.ttItems,!1):this.tooltipUtil.isXoverlap(a)&&this.create(t,this,0,a,i.ttItems)}},{key:\"deactivateHoverFilter\",value:function(){for(var t=this.w,e=new b(this.ctx),i=t.globals.dom.Paper.select(\".apexcharts-bar-area\"),a=0;a5&&void 0!==arguments[5]?arguments[5]:null,o=this.w,n=e;\"mouseup\"===t.type&&this.markerClick(t,i,a),null===r&&(r=this.tConfig.shared);var l=this.tooltipUtil.hasMarkers(),h=this.tooltipUtil.getElBars();if(o.config.legend.tooltipHoverFormatter){var c=o.config.legend.tooltipHoverFormatter,d=Array.from(this.legendLabels);d.forEach((function(t){var e=t.getAttribute(\"data:default-text\");t.innerHTML=decodeURIComponent(e)}));for(var g=0;g0?n.marker.enlargePoints(a):n.tooltipPosition.moveDynamicPointsOnHover(a)),this.tooltipUtil.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(h),this.barSeriesHeight>0)){var m=new b(this.ctx),v=o.globals.dom.Paper.select(\".apexcharts-bar-area[j='\".concat(a,\"']\"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(a);for(var y=0;y0&&(this.totalItems+=t[r].length);for(var n=this.graphics.group({class:\"apexcharts-bar-series apexcharts-plot-series\"}),l=0,h=0,c=function(s,r){var c=void 0,d=void 0,g=void 0,u=void 0,p=[],x=[],b=a.globals.comboCharts?e[s]:s;i.yRatio.length>1&&(i.yaxisIndex=b),i.isReversed=a.config.yaxis[i.yaxisIndex]&&a.config.yaxis[i.yaxisIndex].reversed;var m=i.graphics.group({class:\"apexcharts-series\",seriesName:f.escapeString(a.globals.seriesNames[b]),rel:s+1,\"data:realIndex\":b});i.ctx.series.addCollapsedClassToSeries(m,b);var v=i.graphics.group({class:\"apexcharts-datalabels\",\"data:realIndex\":b}),y=0,w=0,k=i.initialPositions(l,h,c,d,g,u);h=k.y,y=k.barHeight,d=k.yDivision,u=k.zeroW,l=k.x,w=k.barWidth,c=k.xDivision,g=k.zeroH,i.yArrj=[],i.yArrjF=[],i.yArrjVal=[],i.xArrj=[],i.xArrjF=[],i.xArrjVal=[],1===i.prevY.length&&i.prevY[0].every((function(t){return isNaN(t)}))&&(i.prevY[0]=i.prevY[0].map((function(t){return g})),i.prevYF[0]=i.prevYF[0].map((function(t){return 0})));for(var A=0;A1?(i=l.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:n*parseInt(l.config.plotOptions.bar.columnWidth,10)/100,s=this.baseLineY[this.yaxisIndex]+(this.isReversed?l.globals.gridHeight:0)-(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),t=l.globals.padHorizontal+(i-n)/2),{x:t,y:e,yDivision:a,xDivision:i,barHeight:o,barWidth:n,zeroH:s,zeroW:r}}},{key:\"drawStackedBarPaths\",value:function(t){for(var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.yDivision,h=t.elSeries,c=this.w,d=n,g=i.i,u=i.j,f=0,p=0;p0){var x=r;this.prevXVal[g-1][u]<0?x=this.series[g][u]>=0?this.prevX[g-1][u]+f-2*(this.isReversed?f:0):this.prevX[g-1][u]:this.prevXVal[g-1][u]>=0&&(x=this.series[g][u]>=0?this.prevX[g-1][u]:this.prevX[g-1][u]-f+2*(this.isReversed?f:0)),e=x}else e=r;o=null===this.series[g][u]?e:e+this.series[g][u]/this.invertedYRatio-2*(this.isReversed?this.series[g][u]/this.invertedYRatio:0);var b=this.barHelpers.getBarpaths({barYPosition:d,barHeight:a,x1:e,x2:o,strokeWidth:s,series:this.series,realIndex:i.realIndex,i:g,j:u,w:c});return this.barHelpers.barBackground({j:u,i:g,y1:d,y2:a,elSeries:h}),n+=l,{pathTo:b.pathTo,pathFrom:b.pathFrom,x:o,y:n}}},{key:\"drawStackedColumnPaths\",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,o=t.zeroH;t.strokeWidth;var n=t.elSeries,l=this.w,h=e.i,c=e.j,d=e.bc;if(l.globals.isXNumeric){var g=l.globals.seriesX[h][c];g||(g=0),i=(g-l.globals.minX)/this.xRatio-r/2}for(var u,f=i,p=0,x=0;x0&&!l.globals.isXNumeric||h>0&&l.globals.isXNumeric&&l.globals.seriesX[h-1][c]===l.globals.seriesX[h][c]){var b,m,v=Math.min(this.yRatio.length+1,h+1);if(void 0!==this.prevY[h-1])for(var y=1;y=0?m-p+2*(this.isReversed?p:0):m;break}if(this.prevYVal[h-w][c]>=0){b=this.series[h][c]>=0?m:m+p-2*(this.isReversed?p:0);break}}void 0===b&&(b=l.globals.gridHeight),u=this.prevYF[0].every((function(t){return 0===t}))&&this.prevYF.slice(1,h).every((function(t){return t.every((function(t){return isNaN(t)}))}))?l.globals.gridHeight-o:b}else u=l.globals.gridHeight-o;a=u-this.series[h][c]/this.yRatio[this.yaxisIndex]+2*(this.isReversed?this.series[h][c]/this.yRatio[this.yaxisIndex]:0);var k=this.barHelpers.getColumnPaths({barXPosition:f,barWidth:r,y1:u,y2:a,yRatio:this.yRatio[this.yaxisIndex],strokeWidth:this.strokeWidth,series:this.series,realIndex:e.realIndex,i:h,j:c,w:l});return this.barHelpers.barBackground({bc:d,j:c,i:h,x1:f,x2:r,elSeries:n}),i+=s,{pathTo:k.pathTo,pathFrom:k.pathFrom,x:l.globals.isXNumeric?i-s:i,y:a}}}]),s}(E),vt=function(t){n(s,t);var i=d(s);function s(){return e(this,s),i.apply(this,arguments)}return a(s,[{key:\"draw\",value:function(t,e){var i=this,a=this.w,s=new b(this.ctx),r=new L(this.ctx);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot;var o=new y(this.ctx,a);t=o.getLogSeries(t),this.series=t,this.yRatio=o.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);for(var n=s.group({class:\"apexcharts-\".concat(a.config.chart.type,\"-series apexcharts-plot-series\")}),l=function(o){i.isBoxPlot=\"boxPlot\"===a.config.chart.type||\"boxPlot\"===a.config.series[o].type;var l,h,c=void 0,d=void 0,g=[],u=[],p=a.globals.comboCharts?e[o]:o,x=s.group({class:\"apexcharts-series\",seriesName:f.escapeString(a.globals.seriesNames[p]),rel:o+1,\"data:realIndex\":p});t[o].length>0&&(i.visibleI=i.visibleI+1);var b,m;i.yRatio.length>1&&(i.yaxisIndex=p);var v=i.barHelpers.initialPositions();d=v.y,b=v.barHeight,c=v.x,m=v.barWidth,l=v.xDivision,h=v.zeroH,u.push(c+m/2);for(var y=s.group({class:\"apexcharts-datalabels\",\"data:realIndex\":p}),w=function(e){var s=i.barHelpers.getStrokeWidth(o,e,p),n=i.drawBoxPaths({indexes:{i:o,j:e,realIndex:p},x:c,y:d,xDivision:l,barWidth:m,zeroH:h,strokeWidth:s,elSeries:x});d=n.y,c=n.x,e>0&&u.push(c+m/2),g.push(d),n.pathTo.forEach((function(l,h){var g=!i.isBoxPlot&&i.candlestickOptions.wick.useFillColor?n.color[h]:a.globals.stroke.colors[o],u=r.fillPath({seriesNumber:p,dataPointIndex:e,color:n.color[h],value:t[o][e]});i.renderSeries({realIndex:p,pathFill:u,lineFill:g,j:e,i:o,pathFrom:n.pathFrom,pathTo:l,strokeWidth:s,elSeries:x,x:c,y:d,series:t,barHeight:b,barWidth:m,elDataLabelsWrap:y,visibleSeries:i.visibleI,type:a.config.chart.type})}))},k=0;km.c&&(d=!1);var w=Math.min(m.o,m.c),k=Math.max(m.o,m.c),A=m.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[x][c]-n.globals.minX)/this.xRatio-s/2);var S=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(w=r,k=r):(w=r-w/p,k=r-k/p,v=r-m.h/p,y=r-m.l/p,A=r-m.m/p);var C=l.move(S,r),L=l.move(S+s/2,w);return n.globals.previousPaths.length>0&&(L=this.getPreviousPath(x,c,!0)),C=this.isBoxPlot?[l.move(S,w)+l.line(S+s/2,w)+l.line(S+s/2,v)+l.line(S+s/4,v)+l.line(S+s-s/4,v)+l.line(S+s/2,v)+l.line(S+s/2,w)+l.line(S+s,w)+l.line(S+s,A)+l.line(S,A)+l.line(S,w+o/2),l.move(S,A)+l.line(S+s,A)+l.line(S+s,k)+l.line(S+s/2,k)+l.line(S+s/2,y)+l.line(S+s-s/4,y)+l.line(S+s/4,y)+l.line(S+s/2,y)+l.line(S+s/2,k)+l.line(S,k)+l.line(S,A)+\"z\"]:[l.move(S,k)+l.line(S+s/2,k)+l.line(S+s/2,v)+l.line(S+s/2,k)+l.line(S+s,k)+l.line(S+s,w)+l.line(S+s/2,w)+l.line(S+s/2,y)+l.line(S+s/2,w)+l.line(S,w)+l.line(S,k-o/2)],L+=l.move(S,w),n.globals.isXNumeric||(i+=a),{pathTo:C,pathFrom:L,x:i,y:k,barXPosition:S,color:this.isBoxPlot?f:d?[g]:[u]}}},{key:\"getOHLCValue\",value:function(t,e){var i=this.w;return{o:this.isBoxPlot?i.globals.seriesCandleH[t][e]:i.globals.seriesCandleO[t][e],h:this.isBoxPlot?i.globals.seriesCandleO[t][e]:i.globals.seriesCandleH[t][e],m:i.globals.seriesCandleM[t][e],l:this.isBoxPlot?i.globals.seriesCandleC[t][e]:i.globals.seriesCandleL[t][e],c:this.isBoxPlot?i.globals.seriesCandleL[t][e]:i.globals.seriesCandleC[t][e]}}}]),s}(E),yt=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:\"checkColorRange\",value:function(){var t=this.w,e=!1,i=t.config.plotOptions[t.config.chart.type];return i.colorScale.ranges.length>0&&i.colorScale.ranges.map((function(t,i){t.from<=0&&(e=!0)})),e}},{key:\"getShadeColor\",value:function(t,e,i,a){var s=this.w,r=1,o=s.config.plotOptions[t].shadeIntensity,n=this.determineColor(t,e,i);s.globals.hasNegs||a?r=s.config.plotOptions[t].reverseNegativeShade?n.percent<0?n.percent/100*(1.25*o):(1-n.percent/100)*(1.25*o):n.percent<=0?1-(1+n.percent/100)*o:(1-n.percent/100)*o:(r=1-n.percent/100,\"treemap\"===t&&(r=(1-n.percent/100)*(1.25*o)));var l=n.color,h=new f;return s.config.plotOptions[t].enableShades&&(l=\"dark\"===this.w.config.theme.mode?f.hexToRgba(h.shadeColor(-1*r,n.color),s.config.fill.opacity):f.hexToRgba(h.shadeColor(r,n.color),s.config.fill.opacity)),{color:l,colorProps:n}}},{key:\"determineColor\",value:function(t,e,i){var a=this.w,s=a.globals.series[e][i],r=a.config.plotOptions[t],o=r.colorScale.inverse?i:e;a.config.plotOptions[t].distributed&&(o=i);var n=a.globals.colors[o],l=null,h=Math.min.apply(Math,g(a.globals.series[e])),c=Math.max.apply(Math,g(a.globals.series[e]));r.distributed||\"heatmap\"!==t||(h=a.globals.minY,c=a.globals.maxY),void 0!==r.colorScale.min&&(h=r.colorScale.mina.globals.maxY?r.colorScale.max:a.globals.maxY);var d=Math.abs(c)+Math.abs(h),u=100*s/(0===d?d-1e-6:d);r.colorScale.ranges.length>0&&r.colorScale.ranges.map((function(t,e){if(s>=t.from&&s<=t.to){n=t.color,l=t.foreColor?t.foreColor:null,h=t.from,c=t.to;var i=Math.abs(c)+Math.abs(h);u=100*s/(0===i?i-1e-6:i)}}));return{color:n,foreColor:l,percent:u}}},{key:\"calculateDataLabels\",value:function(t){var e=t.text,i=t.x,a=t.y,s=t.i,r=t.j,o=t.colorProps,n=t.fontSize,l=this.w.config.dataLabels,h=new b(this.ctx),c=new M(this.ctx),d=null;if(l.enabled){d=h.group({class:\"apexcharts-data-labels\"});var g=l.offsetX,u=l.offsetY,f=i+g,p=a+parseFloat(l.style.fontSize)/3+u;c.plotDataLabelsText({x:f,y:p,text:e,i:s,j:r,color:o.foreColor,parent:d,fontSize:n,dataLabelsConfig:l})}return d}},{key:\"addListeners\",value:function(t){var e=new b(this.ctx);t.node.addEventListener(\"mouseenter\",e.pathMouseEnter.bind(this,t)),t.node.addEventListener(\"mouseleave\",e.pathMouseLeave.bind(this,t)),t.node.addEventListener(\"mousedown\",e.pathMouseDown.bind(this,t))}}]),t}(),wt=function(){function t(i,a){e(this,t),this.ctx=i,this.w=i.w,this.xRatio=a.xRatio,this.yRatio=a.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new yt(i),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}return a(t,[{key:\"draw\",value:function(t){var e=this.w,i=new b(this.ctx),a=i.group({class:\"apexcharts-heatmap\"});a.attr(\"clip-path\",\"url(#gridRectMask\".concat(e.globals.cuid,\")\"));var s=e.globals.gridWidth/e.globals.dataPoints,r=e.globals.gridHeight/e.globals.series.length,o=0,n=!1;this.negRange=this.helpers.checkColorRange();var l=t.slice();e.config.yaxis[0].reversed&&(n=!0,l.reverse());for(var h=n?0:l.length-1;n?h=0;n?h++:h--){var c=i.group({class:\"apexcharts-series apexcharts-heatmap-series\",seriesName:f.escapeString(e.globals.seriesNames[h]),rel:h+1,\"data:realIndex\":h});if(this.ctx.series.addCollapsedClassToSeries(c,h),e.config.chart.dropShadow.enabled){var d=e.config.chart.dropShadow;new x(this.ctx).dropShadow(c,d,h)}for(var g=0,u=e.config.plotOptions.heatmap.shadeIntensity,p=0;p-1&&this.pieClicked(d),i.config.dataLabels.enabled){var A=w.x,S=w.y,C=100*u/this.fullAngle+\"%\";if(0!==u&&i.config.plotOptions.pie.dataLabels.minAngleToShowLabelthis.fullAngle?e.endAngle=e.endAngle-(a+o):a+o=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(n=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(n)>this.fullAngle&&(n-=this.fullAngle);var l=Math.PI*(n-90)/180,h=e.centerX+s*Math.cos(o),c=e.centerY+s*Math.sin(o),d=e.centerX+s*Math.cos(l),g=e.centerY+s*Math.sin(l),u=f.polarToCartesian(e.centerX,e.centerY,e.donutSize,n),p=f.polarToCartesian(e.centerX,e.centerY,e.donutSize,r),x=a>180?1:0,b=[\"M\",h,c,\"A\",s,s,0,x,1,d,g];return\"donut\"===e.chartType?[].concat(b,[\"L\",u.x,u.y,\"A\",e.donutSize,e.donutSize,0,x,0,p.x,p.y,\"L\",h,c,\"z\"]).join(\" \"):\"pie\"===e.chartType||\"polarArea\"===e.chartType?[].concat(b,[\"L\",e.centerX,e.centerY,\"L\",h,c]).join(\" \"):[].concat(b).join(\" \")}},{key:\"drawPolarElements\",value:function(t){var e=this.w,i=new j(this.ctx),a=new b(this.ctx),s=new kt(this.ctx),r=a.group(),o=a.group(),n=i.niceScale(0,Math.ceil(this.maxY),e.config.yaxis[0].tickAmount,0,!0),l=n.result.reverse(),h=n.result.length;this.maxY=n.niceMax;for(var c=e.globals.radialSize,d=c/(h-1),g=0;g1&&t.total.show&&(s=t.total.color);var o=r.globals.dom.baseEl.querySelector(\".apexcharts-datalabel-label\"),n=r.globals.dom.baseEl.querySelector(\".apexcharts-datalabel-value\");i=(0,t.value.formatter)(i,r),a||\"function\"!=typeof t.total.formatter||(i=t.total.formatter(r));var l=e===t.total.label;e=t.name.formatter(e,l,r),null!==o&&(o.textContent=e),null!==n&&(n.textContent=i),null!==o&&(o.style.fill=s)}},{key:\"printDataLabelsInner\",value:function(t,e){var i=this.w,a=t.getAttribute(\"data:value\"),s=i.globals.seriesNames[parseInt(t.parentNode.getAttribute(\"rel\"),10)-1];i.globals.series.length>1&&this.printInnerLabels(e,s,a,t);var r=i.globals.dom.baseEl.querySelector(\".apexcharts-datalabels-group\");null!==r&&(r.style.opacity=1)}},{key:\"drawSpokes\",value:function(t){var e=this,i=this.w,a=new b(this.ctx),s=i.config.plotOptions.polarArea.spokes;if(0!==s.strokeWidth){for(var r=[],o=360/i.globals.series.length,n=0;n1)o&&!e.total.showAlways?l({makeSliceOut:!1,printLabel:!0}):this.printInnerLabels(e,e.total.label,e.total.formatter(s));else if(l({makeSliceOut:!1,printLabel:!0}),!o)if(s.globals.selectedDataPoints.length&&s.globals.series.length>1)if(s.globals.selectedDataPoints[0].length>0){var h=s.globals.selectedDataPoints[0],c=s.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(this.chartType.toLowerCase(),\"-slice-\").concat(h));this.printDataLabelsInner(c,e)}else r&&s.globals.selectedDataPoints.length&&0===s.globals.selectedDataPoints[0].length&&(r.style.opacity=0);else r&&s.globals.series.length>1&&(r.style.opacity=0)}}]),t}(),St=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animDur=0;var a=this.w;this.graphics=new b(this.ctx),this.lineColorArr=void 0!==a.globals.stroke.colors?a.globals.stroke.colors:a.globals.colors,this.defaultSize=a.globals.svgHeight0&&(b=e.getPreviousPath(n));for(var m=0;m=10?t.x>0?(i=\"start\",a+=10):t.x<0&&(i=\"end\",a-=10):i=\"middle\",Math.abs(t.y)>=e-10&&(t.y<0?s-=10:t.y>0&&(s+=10)),{textAnchor:i,newX:a,newY:s}}},{key:\"getPreviousPath\",value:function(t){for(var e=this.w,i=null,a=0;a0&&parseInt(s.realIndex,10)===parseInt(t,10)&&void 0!==e.globals.previousPaths[a].paths[0]&&(i=e.globals.previousPaths[a].paths[0].d)}return i}},{key:\"getDataPointsPos\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.dataPointsLen;t=t||[],e=e||[];for(var a=[],s=0;s=360&&(g=360-Math.abs(this.startAngle)-.1);var u=i.drawPath({d:\"\",stroke:c,strokeWidth:o*parseInt(h.strokeWidth,10)/100,fill:\"none\",strokeOpacity:h.opacity,classes:\"apexcharts-radialbar-area\"});if(h.dropShadow.enabled){var f=h.dropShadow;s.dropShadow(u,f)}l.add(u),u.attr(\"id\",\"apexcharts-radialbarTrack-\"+n),this.animatePaths(u,{centerX:t.centerX,centerY:t.centerY,endAngle:g,startAngle:d,size:t.size,i:n,totalItems:2,animBeginArr:0,dur:0,isTrack:!0,easing:e.globals.easing})}return a}},{key:\"drawArcs\",value:function(t){var e=this.w,i=new b(this.ctx),a=new L(this.ctx),s=new x(this.ctx),r=i.group(),o=this.getStrokeWidth(t);t.size=t.size-o/2;var n=e.config.plotOptions.radialBar.hollow.background,l=t.size-o*t.series.length-this.margin*t.series.length-o*parseInt(e.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,h=l-e.config.plotOptions.radialBar.hollow.margin;void 0!==e.config.plotOptions.radialBar.hollow.image&&(n=this.drawHollowImage(t,r,l,n));var c=this.drawHollow({size:h,centerX:t.centerX,centerY:t.centerY,fill:n||\"transparent\"});if(e.config.plotOptions.radialBar.hollow.dropShadow.enabled){var d=e.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(c,d)}var g=1;!this.radialDataLabels.total.show&&e.globals.series.length>1&&(g=0);var u=null;this.radialDataLabels.show&&(u=this.renderInnerDataLabels(this.radialDataLabels,{hollowSize:l,centerX:t.centerX,centerY:t.centerY,opacity:g})),\"back\"===e.config.plotOptions.radialBar.hollow.position&&(r.add(c),u&&r.add(u));var p=!1;e.config.plotOptions.radialBar.inverseOrder&&(p=!0);for(var m=p?t.series.length-1:0;p?m>=0:m100?100:t.series[m])/100,S=Math.round(this.totalAngle*A)+this.startAngle,C=void 0;e.globals.dataChanged&&(k=this.startAngle,C=Math.round(this.totalAngle*f.negToZero(e.globals.previousPaths[m])/100)+k),Math.abs(S)+Math.abs(w)>=360&&(S-=.01),Math.abs(C)+Math.abs(k)>=360&&(C-=.01);var P=S-w,T=Array.isArray(e.config.stroke.dashArray)?e.config.stroke.dashArray[m]:e.config.stroke.dashArray,M=i.drawPath({d:\"\",stroke:y,strokeWidth:o,fill:\"none\",fillOpacity:e.config.fill.opacity,classes:\"apexcharts-radialbar-area apexcharts-radialbar-slice-\"+m,strokeDashArray:T});if(b.setAttrs(M.node,{\"data:angle\":P,\"data:value\":t.series[m]}),e.config.chart.dropShadow.enabled){var z=e.config.chart.dropShadow;s.dropShadow(M,z,m)}s.setSelectionFilter(M,0,m),this.addListeners(M,this.radialDataLabels),v.add(M),M.attr({index:0,j:m});var I=0;!this.initialAnim||e.globals.resized||e.globals.dataChanged||(I=(S-w)/360*e.config.chart.animations.speed,this.animDur=I/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur)),e.globals.dataChanged&&(I=(S-w)/360*e.config.chart.animations.dynamicAnimation.speed,this.animDur=I/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur)),this.animatePaths(M,{centerX:t.centerX,centerY:t.centerY,endAngle:S,startAngle:w,prevEndAngle:C,prevStartAngle:k,size:t.size,i:m,totalItems:2,animBeginArr:this.animBeginArr,dur:I,shouldSetPrevPaths:!0,easing:e.globals.easing})}return{g:r,elHollow:c,dataLabels:u}}},{key:\"drawHollow\",value:function(t){var e=new b(this.ctx).drawCircle(2*t.size);return e.attr({class:\"apexcharts-radialbar-hollow\",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill}),e}},{key:\"drawHollowImage\",value:function(t,e,i,a){var s=this.w,r=new L(this.ctx),o=f.randomId(),n=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)r.clippedImgArea({width:i,height:i,image:n,patternID:\"pattern\".concat(s.globals.cuid).concat(o)}),a=\"url(#pattern\".concat(s.globals.cuid).concat(o,\")\");else{var l=s.config.plotOptions.radialBar.hollow.imageWidth,h=s.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===l&&void 0===h){var c=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-e.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)}));e.add(c)}else{var d=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-l/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(l,h)}));e.add(d)}}return a}},{key:\"getStrokeWidth\",value:function(t){var e=this.w;return t.size*(100-parseInt(e.config.plotOptions.radialBar.hollow.size,10))/100/(t.series.length+1)-this.margin}}]),s}(At),Lt=function(){function t(i){e(this,t),this.w=i.w,this.lineCtx=i}return a(t,[{key:\"sameValueSeriesFix\",value:function(t,e){var i=this.w;if(\"line\"===i.config.chart.type&&(\"gradient\"===i.config.fill.type||\"gradient\"===i.config.fill.type[t])&&new y(this.lineCtx.ctx,i).seriesHaveSameValues(t)){var a=e[t].slice();a[a.length-1]=a[a.length-1]+1e-6,e[t]=a}return e}},{key:\"calculatePoints\",value:function(t){var e=t.series,i=t.realIndex,a=t.x,s=t.y,r=t.i,o=t.j,n=t.prevY,l=this.w,h=[],c=[];if(0===o){var d=this.lineCtx.categoryAxisCorrection+l.config.markers.offsetX;l.globals.isXNumeric&&(d=(l.globals.seriesX[i][0]-l.globals.minX)/this.lineCtx.xRatio+l.config.markers.offsetX),h.push(d),c.push(f.isNumber(e[r][0])?n+l.config.markers.offsetY:null),h.push(a+l.config.markers.offsetX),c.push(f.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null)}else h.push(a+l.config.markers.offsetX),c.push(f.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null);return{x:h,y:c}}},{key:\"checkPreviousPaths\",value:function(t){for(var e=t.pathFromLine,i=t.pathFromArea,a=t.realIndex,s=this.w,r=0;r0&&parseInt(o.realIndex,10)===parseInt(a,10)&&(\"line\"===o.type?(this.lineCtx.appendPathFrom=!1,e=s.globals.previousPaths[r].paths[0].d):\"area\"===o.type&&(this.lineCtx.appendPathFrom=!1,i=s.globals.previousPaths[r].paths[0].d,s.config.stroke.show&&s.globals.previousPaths[r].paths[1]&&(e=s.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:e,pathFromArea:i}}},{key:\"determineFirstPrevY\",value:function(t){var e=t.i,i=t.series,a=t.prevY,s=t.lineYPosition,r=this.w;if(void 0!==i[e][0])a=(s=r.config.chart.stacked&&e>0?this.lineCtx.prevSeriesY[e-1][0]:this.lineCtx.zeroY)-i[e][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]+2*(this.lineCtx.isReversed?i[e][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]:0);else if(r.config.chart.stacked&&e>0&&void 0===i[e][0])for(var o=e-1;o>=0;o--)if(null!==i[o][0]&&void 0!==i[o][0]){a=s=this.lineCtx.prevSeriesY[o][0];break}return{prevY:a,lineYPosition:s}}}]),t}(),Pt=function(){function t(i,a,s){e(this,t),this.ctx=i,this.w=i.w,this.xyRatios=a,this.pointsChart=!(\"bubble\"!==this.w.config.chart.type&&\"scatter\"!==this.w.config.chart.type)||s,this.scatter=new T(this.ctx),this.noNegatives=this.w.globals.minX===Number.MAX_VALUE,this.lineHelpers=new Lt(this),this.markers=new P(this.ctx),this.prevSeriesY=[],this.categoryAxisCorrection=0,this.yaxisIndex=0}return a(t,[{key:\"draw\",value:function(t,e,i){var a=this.w,s=new b(this.ctx),r=a.globals.comboCharts?e:a.config.chart.type,o=s.group({class:\"apexcharts-\".concat(r,\"-series apexcharts-plot-series\")}),n=new y(this.ctx,a);this.yRatio=this.xyRatios.yRatio,this.zRatio=this.xyRatios.zRatio,this.xRatio=this.xyRatios.xRatio,this.baseLineY=this.xyRatios.baseLineY,t=n.getLogSeries(t),this.yRatio=n.getLogYRatios(this.yRatio);for(var l=[],h=0;h0&&(u=(a.globals.seriesX[c][0]-a.globals.minX)/this.xRatio),g.push(u);var f,p=u,x=p,m=this.zeroY;m=this.lineHelpers.determineFirstPrevY({i:h,series:t,prevY:m,lineYPosition:0}).prevY,d.push(m),f=m;var v=this._calculatePathsFrom({series:t,i:h,realIndex:c,prevX:x,prevY:m}),w=this._iterateOverDataPoints({series:t,realIndex:c,i:h,x:u,y:1,pX:p,pY:f,pathsFrom:v,linePaths:[],areaPaths:[],seriesIndex:i,lineYPosition:0,xArrj:g,yArrj:d});this._handlePaths({type:r,realIndex:c,i:h,paths:w}),this.elSeries.add(this.elPointsMain),this.elSeries.add(this.elDataLabelsWrap),l.push(this.elSeries)}if(a.config.chart.stacked)for(var k=l.length;k>0;k--)o.add(l[k-1]);else for(var A=0;A1&&(this.yaxisIndex=i),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.zeroY=a.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),this.areaBottomY=this.zeroY,(this.zeroY>a.globals.gridHeight||\"end\"===a.config.plotOptions.area.fillTo)&&(this.areaBottomY=a.globals.gridHeight),this.categoryAxisCorrection=this.xDivision/2,this.elSeries=s.group({class:\"apexcharts-series\",seriesName:f.escapeString(a.globals.seriesNames[i])}),this.elPointsMain=s.group({class:\"apexcharts-series-markers-wrap\",\"data:realIndex\":i}),this.elDataLabelsWrap=s.group({class:\"apexcharts-datalabels\",\"data:realIndex\":i});var r=t[e].length===a.globals.dataPoints;this.elSeries.attr({\"data:longestSeries\":r,rel:e+1,\"data:realIndex\":i}),this.appendPathFrom=!0}},{key:\"_calculatePathsFrom\",value:function(t){var e,i,a,s,r=t.series,o=t.i,n=t.realIndex,l=t.prevX,h=t.prevY,c=this.w,d=new b(this.ctx);if(null===r[o][0]){for(var g=0;g0){var u=this.lineHelpers.checkPreviousPaths({pathFromLine:a,pathFromArea:s,realIndex:n});a=u.pathFromLine,s=u.pathFromArea}return{prevX:l,prevY:h,linePath:e,areaPath:i,pathFromLine:a,pathFromArea:s}}},{key:\"_handlePaths\",value:function(t){var e=t.type,i=t.realIndex,a=t.i,s=t.paths,r=this.w,n=new b(this.ctx),l=new L(this.ctx);this.prevSeriesY.push(s.yArrj),r.globals.seriesXvalues[i]=s.xArrj,r.globals.seriesYvalues[i]=s.yArrj;var h=r.config.forecastDataPoints;if(h.count>0){var c=r.globals.seriesXvalues[i][r.globals.seriesXvalues[i].length-h.count-1],d=n.drawRect(c,0,r.globals.gridWidth,r.globals.gridHeight,0);r.globals.dom.elForecastMask.appendChild(d.node);var g=n.drawRect(0,0,c,r.globals.gridHeight,0);r.globals.dom.elNonForecastMask.appendChild(g.node)}this.pointsChart||r.globals.delayedElements.push({el:this.elPointsMain.node,index:i});var u={i:a,realIndex:i,animationDelay:a,initialSpeed:r.config.chart.animations.speed,dataChangeSpeed:r.config.chart.animations.dynamicAnimation.speed,className:\"apexcharts-\".concat(e)};if(\"area\"===e)for(var f=l.fillPath({seriesNumber:i}),p=0;p0){var k=n.renderPaths(y);k.node.setAttribute(\"stroke-dasharray\",h.dashArray),h.strokeWidth&&k.node.setAttribute(\"stroke-width\",h.strokeWidth),this.elSeries.add(k),k.attr(\"clip-path\",\"url(#forecastMask\".concat(r.globals.cuid,\")\")),w.attr(\"clip-path\",\"url(#nonForecastMask\".concat(r.globals.cuid,\")\"))}}}}},{key:\"_iterateOverDataPoints\",value:function(t){for(var e=t.series,i=t.realIndex,a=t.i,s=t.x,r=t.y,o=t.pX,n=t.pY,l=t.pathsFrom,h=t.linePaths,c=t.areaPaths,d=t.seriesIndex,g=t.lineYPosition,u=t.xArrj,p=t.yArrj,x=this.w,m=new b(this.ctx),v=this.yRatio,y=l.prevY,w=l.linePath,k=l.areaPath,A=l.pathFromLine,S=l.pathFromArea,C=f.isNumber(x.globals.minYArr[i])?x.globals.minYArr[i]:x.globals.minY,L=x.globals.dataPoints>1?x.globals.dataPoints-1:x.globals.dataPoints,P=0;P0&&x.globals.collapsedSeries.length-1){e--;break}return e>=0?e:0}(a-1)][P+1]}else g=this.zeroY;else g=this.zeroY;r=T?g-C/v[this.yaxisIndex]+2*(this.isReversed?C/v[this.yaxisIndex]:0):g-e[a][P+1]/v[this.yaxisIndex]+2*(this.isReversed?e[a][P+1]/v[this.yaxisIndex]:0),u.push(s),p.push(r);var z=this.lineHelpers.calculatePoints({series:e,x:s,y:r,realIndex:i,i:a,j:P,prevY:y}),I=this._createPaths({series:e,i:a,realIndex:i,j:P,x:s,y:r,pX:o,pY:n,linePath:w,areaPath:k,linePaths:h,areaPaths:c,seriesIndex:d});c=I.areaPaths,h=I.linePaths,o=I.pX,n=I.pY,k=I.areaPath,w=I.linePath,this.appendPathFrom&&(A+=m.line(s,this.zeroY),S+=m.line(s,this.zeroY)),this.handleNullDataPoints(e,z,a,P,i),this._handleMarkersAndLabels({pointsPos:z,series:e,x:s,y:r,prevY:y,i:a,j:P,realIndex:i})}return{yArrj:p,xArrj:u,pathFromArea:S,areaPaths:c,pathFromLine:A,linePaths:h}}},{key:\"_handleMarkersAndLabels\",value:function(t){var e=t.pointsPos;t.series,t.x,t.y,t.prevY;var i=t.i,a=t.j,s=t.realIndex,r=this.w,o=new M(this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,a,{realIndex:s,pointsPos:e,zRatio:this.zRatio,elParent:this.elPointsMain});else{r.globals.series[i].length>1&&this.elPointsMain.node.classList.add(\"apexcharts-element-hidden\");var n=this.markers.plotChartMarkers(e,s,a+1);null!==n&&this.elPointsMain.add(n)}var l=o.drawDataLabel(e,s,a+1,null);null!==l&&this.elDataLabelsWrap.add(l)}},{key:\"_createPaths\",value:function(t){var e=t.series,i=t.i,a=t.realIndex,s=t.j,r=t.x,o=t.y,n=t.pX,l=t.pY,h=t.linePath,c=t.areaPath,d=t.linePaths,g=t.areaPaths,u=t.seriesIndex,f=this.w,p=new b(this.ctx),x=f.config.stroke.curve,m=this.areaBottomY;if(Array.isArray(f.config.stroke.curve)&&(x=Array.isArray(u)?f.config.stroke.curve[u[i]]:f.config.stroke.curve[i]),\"smooth\"===x){var v=.35*(r-n);f.globals.hasNullValues?(null!==e[i][s]&&(null!==e[i][s+1]?(h=p.move(n,l)+p.curve(n+v,l,r-v,o,r+1,o),c=p.move(n+1,l)+p.curve(n+v,l,r-v,o,r+1,o)+p.line(r,m)+p.line(n,m)+\"z\"):(h=p.move(n,l),c=p.move(n,l)+\"z\")),d.push(h),g.push(c)):(h+=p.curve(n+v,l,r-v,o,r,o),c+=p.curve(n+v,l,r-v,o,r,o)),n=r,l=o,s===e[i].length-2&&(c=c+p.curve(n,l,r,o,r,m)+p.move(r,o)+\"z\",f.globals.hasNullValues||(d.push(h),g.push(c)))}else{if(null===e[i][s+1]){h+=p.move(r,o);var y=f.globals.isXNumeric?(f.globals.seriesX[a][s]-f.globals.minX)/this.xRatio:r-this.xDivision;c=c+p.line(y,m)+p.move(r,o)+\"z\"}null===e[i][s]&&(h+=p.move(r,o),c+=p.move(r,m)),\"stepline\"===x?(h=h+p.line(r,null,\"H\")+p.line(null,o,\"V\"),c=c+p.line(r,null,\"H\")+p.line(null,o,\"V\")):\"straight\"===x&&(h+=p.line(r,o),c+=p.line(r,o)),s===e[i].length-2&&(c=c+p.line(r,m)+p.move(r,o)+\"z\",d.push(h),g.push(c))}return{linePaths:d,areaPaths:g,pX:n,pY:l,linePath:h,areaPath:c}}},{key:\"handleNullDataPoints\",value:function(t,e,i,a,s){var r=this.w;if(null===t[i][a]&&r.config.markers.showNullDataPoints||1===t[i].length){var o=this.markers.plotChartMarkers(e,s,a+1,this.strokeWidth-r.config.markers.strokeWidth/2,!0);null!==o&&this.elPointsMain.add(o)}}}]),t}();window.TreemapSquared={},window.TreemapSquared.generate=function(){function t(e,i,a,s){this.xoffset=e,this.yoffset=i,this.height=s,this.width=a,this.shortestEdge=function(){return Math.min(this.height,this.width)},this.getCoordinates=function(t){var e,i=[],a=this.xoffset,s=this.yoffset,o=r(t)/this.height,n=r(t)/this.width;if(this.width>=this.height)for(e=0;e=this.height){var a=e/this.height,s=this.width-a;i=new t(this.xoffset+a,this.yoffset,s,this.height)}else{var r=e/this.width,o=this.height-r;i=new t(this.xoffset,this.yoffset+r,this.width,o)}return i}}function e(e,a,s,o,n){return o=void 0===o?0:o,n=void 0===n?0:n,function(t){var e,i,a=[];for(e=0;e=o}(e,l=t[0],n)?(e.push(l),i(t.slice(1),e,s,o)):(h=s.cutArea(r(e),o),o.push(s.getCoordinates(e)),i(t,[],h,o)),o;o.push(s.getCoordinates(e))}function a(t,e){var i=Math.min.apply(Math,t),a=Math.max.apply(Math,t),s=r(t);return Math.max(Math.pow(e,2)*a/Math.pow(s,2),Math.pow(s,2)/(Math.pow(e,2)*i))}function s(t){return t&&t.constructor===Array}function r(t){var e,i=0;for(e=0;es-i&&n.width<=r-a){var l=o.rotateAroundCenter(t.node);t.node.setAttribute(\"transform\",\"rotate(-90 \".concat(l.x,\" \").concat(l.y,\")\"))}}},{key:\"animateTreemap\",value:function(t,e,i,a){var s=new p(this.ctx);s.animateRect(t,{x:e.x,y:e.y,width:e.width,height:e.height},{x:i.x,y:i.y,width:i.width,height:i.height},a,(function(){s.animationCompleted(t)}))}}]),t}(),It=86400,Xt=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.timeScaleArray=[],this.utc=this.w.config.xaxis.labels.datetimeUTC}return a(t,[{key:\"calculateTimeScaleTicks\",value:function(t,e){var i=this,a=this.w;if(a.globals.allSeriesCollapsed)return a.globals.labels=[],a.globals.timescaleLabels=[],[];var s=new Y(this.ctx),r=(e-t)/864e5;this.determineInterval(r),a.globals.disableZoomIn=!1,a.globals.disableZoomOut=!1,r<.00011574074074074075?a.globals.disableZoomIn=!0:r>5e4&&(a.globals.disableZoomOut=!0);var n=s.getTimeUnitsfromTimestamp(t,e,this.utc),l=a.globals.gridWidth/r,h=l/24,c=h/60,d=c/60,g=Math.floor(24*r),u=Math.floor(1440*r),f=Math.floor(r*It),p=Math.floor(r),x=Math.floor(r/30),b=Math.floor(r/365),m={minMillisecond:n.minMillisecond,minSecond:n.minSecond,minMinute:n.minMinute,minHour:n.minHour,minDate:n.minDate,minMonth:n.minMonth,minYear:n.minYear},v={firstVal:m,currentMillisecond:m.minMillisecond,currentSecond:m.minSecond,currentMinute:m.minMinute,currentHour:m.minHour,currentMonthDate:m.minDate,currentDate:m.minDate,currentMonth:m.minMonth,currentYear:m.minYear,daysWidthOnXAxis:l,hoursWidthOnXAxis:h,minutesWidthOnXAxis:c,secondsWidthOnXAxis:d,numberOfSeconds:f,numberOfMinutes:u,numberOfHours:g,numberOfDays:p,numberOfMonths:x,numberOfYears:b};switch(this.tickInterval){case\"years\":this.generateYearScale(v);break;case\"months\":case\"half_year\":this.generateMonthScale(v);break;case\"months_days\":case\"months_fortnight\":case\"days\":case\"week_days\":this.generateDayScale(v);break;case\"hours\":this.generateHourScale(v);break;case\"minutes_fives\":case\"minutes\":this.generateMinuteScale(v);break;case\"seconds_tens\":case\"seconds_fives\":case\"seconds\":this.generateSecondScale(v)}var y=this.timeScaleArray.map((function(t){var e={position:t.position,unit:t.unit,year:t.year,day:t.day?t.day:1,hour:t.hour?t.hour:0,month:t.month+1};return\"month\"===t.unit?o(o({},e),{},{day:1,value:t.value+1}):\"day\"===t.unit||\"hour\"===t.unit?o(o({},e),{},{value:t.value}):\"minute\"===t.unit?o(o({},e),{},{value:t.value,minute:t.value}):\"second\"===t.unit?o(o({},e),{},{value:t.value,minute:t.minute,second:t.second}):t}));return y.filter((function(t){var e=1,s=Math.ceil(a.globals.gridWidth/120),r=t.value;void 0!==a.config.xaxis.tickAmount&&(s=a.config.xaxis.tickAmount),y.length>s&&(e=Math.floor(y.length/s));var o=!1,n=!1;switch(i.tickInterval){case\"years\":\"year\"===t.unit&&(o=!0);break;case\"half_year\":e=7,\"year\"===t.unit&&(o=!0);break;case\"months\":e=1,\"year\"===t.unit&&(o=!0);break;case\"months_fortnight\":e=15,\"year\"!==t.unit&&\"month\"!==t.unit||(o=!0),30===r&&(n=!0);break;case\"months_days\":e=10,\"month\"===t.unit&&(o=!0),30===r&&(n=!0);break;case\"week_days\":e=8,\"month\"===t.unit&&(o=!0);break;case\"days\":e=1,\"month\"===t.unit&&(o=!0);break;case\"hours\":\"day\"===t.unit&&(o=!0);break;case\"minutes_fives\":r%5!=0&&(n=!0);break;case\"seconds_tens\":r%10!=0&&(n=!0);break;case\"seconds_fives\":r%5!=0&&(n=!0)}if(\"hours\"===i.tickInterval||\"minutes_fives\"===i.tickInterval||\"seconds_tens\"===i.tickInterval||\"seconds_fives\"===i.tickInterval){if(!n)return!0}else if((r%e==0||o)&&!n)return!0}))}},{key:\"recalcDimensionsBasedOnFormat\",value:function(t,e){var i=this.w,a=this.formatDates(t),s=this.removeOverlappingTS(a);i.globals.timescaleLabels=s.slice(),new ot(this.ctx).plotCoords()}},{key:\"determineInterval\",value:function(t){var e=24*t,i=60*e;switch(!0){case t/365>5:this.tickInterval=\"years\";break;case t>800:this.tickInterval=\"half_year\";break;case t>180:this.tickInterval=\"months\";break;case t>90:this.tickInterval=\"months_fortnight\";break;case t>60:this.tickInterval=\"months_days\";break;case t>30:this.tickInterval=\"week_days\";break;case t>2:this.tickInterval=\"days\";break;case e>2.4:this.tickInterval=\"hours\";break;case i>15:this.tickInterval=\"minutes_fives\";break;case i>5:this.tickInterval=\"minutes\";break;case i>1:this.tickInterval=\"seconds_tens\";break;case 60*i>20:this.tickInterval=\"seconds_fives\";break;default:this.tickInterval=\"seconds\"}}},{key:\"generateYearScale\",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.daysWidthOnXAxis,r=t.numberOfYears,o=e.minYear,n=0,l=new Y(this.ctx),h=\"year\";if(e.minDate>1||e.minMonth>0){var c=l.determineRemainingDaysOfYear(e.minYear,e.minMonth,e.minDate);n=(l.determineDaysOfYear(e.minYear)-c+1)*s,o=e.minYear+1,this.timeScaleArray.push({position:n,value:o,unit:h,year:o,month:f.monthMod(i+1)})}else 1===e.minDate&&0===e.minMonth&&this.timeScaleArray.push({position:n,value:o,unit:h,year:a,month:f.monthMod(i+1)});for(var d=o,g=n,u=0;u1){l=(h.determineDaysOfMonths(a+1,e.minYear)-i+1)*r,n=f.monthMod(a+1);var g=s+d,u=f.monthMod(n),p=n;0===n&&(c=\"year\",p=g,u=1,g+=d+=1),this.timeScaleArray.push({position:l,value:p,unit:c,year:g,month:u})}else this.timeScaleArray.push({position:l,value:n,unit:c,year:s,month:f.monthMod(a)});for(var x=n+1,b=l,m=0,v=1;mo.determineDaysOfMonths(e+1,i)?(h=1,n=\"month\",g=e+=1,e):e},d=(24-e.minHour)*s,g=l,u=c(h,i,a);0===e.minHour&&1===e.minDate?(d=0,g=f.monthMod(e.minMonth),n=\"month\",h=e.minDate,r++):1!==e.minDate&&0===e.minHour&&0===e.minMinute&&(d=0,l=e.minDate,g=l,u=c(h=l,i,a)),this.timeScaleArray.push({position:d,value:g,unit:n,year:this._getYear(a,u,0),month:f.monthMod(u),day:h});for(var p=d,x=0;xn.determineDaysOfMonths(e+1,s)&&(x=1,e+=1),{month:e,date:x}},c=function(t,e){return t>n.determineDaysOfMonths(e+1,s)?e+=1:e},d=60-(e.minMinute+e.minSecond/60),g=d*r,u=e.minHour+1,p=u+1;60===d&&(g=0,p=(u=e.minHour)+1);var x=i,b=c(x,a);this.timeScaleArray.push({position:g,value:u,unit:l,day:x,hour:p,year:s,month:f.monthMod(b)});for(var m=g,v=0;v=24)p=0,l=\"day\",b=h(x+=1,b).month,b=c(x,b);var y=this._getYear(s,b,0);m=0===p&&0===v?d*r:60*r+m;var w=0===p?x:p;this.timeScaleArray.push({position:m,value:w,unit:l,hour:p,day:x,year:y,month:f.monthMod(b)}),p++}}},{key:\"generateMinuteScale\",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.minutesWidthOnXAxis,h=t.secondsWidthOnXAxis,c=t.numberOfMinutes,d=a+1,g=r,u=o,p=n,x=s,b=(60-i-e/1e3)*h,m=0;m=60&&(d=0,24===(x+=1)&&(x=0)),this.timeScaleArray.push({position:b,value:d,unit:\"minute\",hour:x,minute:d,day:g,year:this._getYear(p,u,0),month:f.monthMod(u)}),b+=l,d++}},{key:\"generateSecondScale\",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.secondsWidthOnXAxis,h=t.numberOfSeconds,c=i+1,d=a,g=r,u=o,p=n,x=s,b=(1e3-e)/1e3*l,m=0;m=60&&(c=0,++d>=60&&(d=0,24===++x&&(x=0))),this.timeScaleArray.push({position:b,value:c,unit:\"second\",hour:x,minute:d,second:c,day:g,year:this._getYear(p,u,0),month:f.monthMod(u)}),b+=l,c++}},{key:\"createRawDateString\",value:function(t,e){var i=t.year;return 0===t.month&&(t.month=1),i+=\"-\"+(\"0\"+t.month.toString()).slice(-2),\"day\"===t.unit?i+=\"day\"===t.unit?\"-\"+(\"0\"+e).slice(-2):\"-01\":i+=\"-\"+(\"0\"+(t.day?t.day:\"1\")).slice(-2),\"hour\"===t.unit?i+=\"hour\"===t.unit?\"T\"+(\"0\"+e).slice(-2):\"T00\":i+=\"T\"+(\"0\"+(t.hour?t.hour:\"0\")).slice(-2),\"minute\"===t.unit?i+=\":\"+(\"0\"+e).slice(-2):i+=\":\"+(t.minute?(\"0\"+t.minute).slice(-2):\"00\"),\"second\"===t.unit?i+=\":\"+(\"0\"+e).slice(-2):i+=\":00\",this.utc&&(i+=\".000Z\"),i}},{key:\"formatDates\",value:function(t){var e=this,i=this.w;return t.map((function(t){var a=t.value.toString(),s=new Y(e.ctx),r=e.createRawDateString(t,a),o=s.getDate(s.parseDate(r));if(e.utc||(o=s.getDate(s.parseDateWithTimezone(r))),void 0===i.config.xaxis.labels.format){var n=\"dd MMM\",l=i.config.xaxis.labels.datetimeFormatter;\"year\"===t.unit&&(n=l.year),\"month\"===t.unit&&(n=l.month),\"day\"===t.unit&&(n=l.day),\"hour\"===t.unit&&(n=l.hour),\"minute\"===t.unit&&(n=l.minute),\"second\"===t.unit&&(n=l.second),a=s.formatDate(o,n)}else a=s.formatDate(o,i.config.xaxis.labels.format);return{dateString:r,position:t.position,value:a,unit:t.unit,year:t.year,month:t.month}}))}},{key:\"removeOverlappingTS\",value:function(t){var e,i=this,a=new b(this.ctx),s=!1;t.length>0&&t[0].value&&t.every((function(e){return e.value.length===t[0].value.length}))&&(s=!0,e=a.getTextRects(t[0].value).width);var r=0,o=t.map((function(o,n){if(n>0&&i.w.config.xaxis.labels.hideOverlappingLabels){var l=s?e:a.getTextRects(t[r].value).width,h=t[r].position;return o.position>h+l+10?(r=n,o):null}return o}));return o=o.filter((function(t){return null!==t}))}},{key:\"_getYear\",value:function(t,e,i){return t+Math.floor(e/12)+i}}]),t}(),Et=function(){function t(i,a){e(this,t),this.ctx=a,this.w=a.w,this.el=i}return a(t,[{key:\"setupElements\",value:function(){var t=this.w.globals,e=this.w.config,i=e.chart.type;t.axisCharts=[\"line\",\"area\",\"bar\",\"rangeBar\",\"candlestick\",\"boxPlot\",\"scatter\",\"bubble\",\"radar\",\"heatmap\",\"treemap\"].indexOf(i)>-1,t.xyCharts=[\"line\",\"area\",\"bar\",\"rangeBar\",\"candlestick\",\"boxPlot\",\"scatter\",\"bubble\"].indexOf(i)>-1,t.isBarHorizontal=(\"bar\"===e.chart.type||\"rangeBar\"===e.chart.type)&&e.plotOptions.bar.horizontal,t.chartClass=\".apexcharts\"+t.chartID,t.dom.baseEl=this.el,t.dom.elWrap=document.createElement(\"div\"),b.setAttrs(t.dom.elWrap,{id:t.chartClass.substring(1),class:\"apexcharts-canvas \"+t.chartClass.substring(1)}),this.el.appendChild(t.dom.elWrap),t.dom.Paper=new window.SVG.Doc(t.dom.elWrap),t.dom.Paper.attr({class:\"apexcharts-svg\",\"xmlns:data\":\"ApexChartsNS\",transform:\"translate(\".concat(e.chart.offsetX,\", \").concat(e.chart.offsetY,\")\")}),t.dom.Paper.node.style.background=e.chart.background,this.setSVGDimensions(),t.dom.elGraphical=t.dom.Paper.group().attr({class:\"apexcharts-inner apexcharts-graphical\"}),t.dom.elAnnotations=t.dom.Paper.group().attr({class:\"apexcharts-annotations\"}),t.dom.elDefs=t.dom.Paper.defs(),t.dom.elLegendWrap=document.createElement(\"div\"),t.dom.elLegendWrap.classList.add(\"apexcharts-legend\"),t.dom.elWrap.appendChild(t.dom.elLegendWrap),t.dom.Paper.add(t.dom.elGraphical),t.dom.elGraphical.add(t.dom.elDefs)}},{key:\"plotChartType\",value:function(t,e){var i=this.w,a=i.config,s=i.globals,r={series:[],i:[]},o={series:[],i:[]},n={series:[],i:[]},l={series:[],i:[]},h={series:[],i:[]},c={series:[],i:[]},d={series:[],i:[]};s.series.map((function(e,g){var u=0;void 0!==t[g].type?(\"column\"===t[g].type||\"bar\"===t[g].type?(s.series.length>1&&a.plotOptions.bar.horizontal&&console.warn(\"Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`\"),h.series.push(e),h.i.push(g),u++,i.globals.columnSeries=h.series):\"area\"===t[g].type?(o.series.push(e),o.i.push(g),u++):\"line\"===t[g].type?(r.series.push(e),r.i.push(g),u++):\"scatter\"===t[g].type?(n.series.push(e),n.i.push(g)):\"bubble\"===t[g].type?(l.series.push(e),l.i.push(g),u++):\"candlestick\"===t[g].type?(c.series.push(e),c.i.push(g),u++):\"boxPlot\"===t[g].type?(d.series.push(e),d.i.push(g),u++):console.warn(\"You have specified an unrecognized chart type. Available types for this property are line/area/column/bar/scatter/bubble\"),u>1&&(s.comboCharts=!0)):(r.series.push(e),r.i.push(g))}));var g=new Pt(this.ctx,e),u=new vt(this.ctx,e);this.ctx.pie=new At(this.ctx);var f=new Ct(this.ctx);this.ctx.rangeBar=new F(this.ctx,e);var p=new St(this.ctx),x=[];if(s.comboCharts){if(o.series.length>0&&x.push(g.draw(o.series,\"area\",o.i)),h.series.length>0)if(i.config.chart.stacked){var b=new mt(this.ctx,e);x.push(b.draw(h.series,h.i))}else this.ctx.bar=new E(this.ctx,e),x.push(this.ctx.bar.draw(h.series,h.i));if(r.series.length>0&&x.push(g.draw(r.series,\"line\",r.i)),c.series.length>0&&x.push(u.draw(c.series,c.i)),d.series.length>0&&x.push(u.draw(d.series,d.i)),n.series.length>0){var m=new Pt(this.ctx,e,!0);x.push(m.draw(n.series,\"scatter\",n.i))}if(l.series.length>0){var v=new Pt(this.ctx,e,!0);x.push(v.draw(l.series,\"bubble\",l.i))}}else switch(a.chart.type){case\"line\":x=g.draw(s.series,\"line\");break;case\"area\":x=g.draw(s.series,\"area\");break;case\"bar\":if(a.chart.stacked)x=new mt(this.ctx,e).draw(s.series);else this.ctx.bar=new E(this.ctx,e),x=this.ctx.bar.draw(s.series);break;case\"candlestick\":x=new vt(this.ctx,e).draw(s.series);break;case\"boxPlot\":x=new vt(this.ctx,e).draw(s.series);break;case\"rangeBar\":x=this.ctx.rangeBar.draw(s.series);break;case\"heatmap\":x=new wt(this.ctx,e).draw(s.series);break;case\"treemap\":x=new zt(this.ctx,e).draw(s.series);break;case\"pie\":case\"donut\":case\"polarArea\":x=this.ctx.pie.draw(s.series);break;case\"radialBar\":x=f.draw(s.series);break;case\"radar\":x=p.draw(s.series);break;default:x=g.draw(s.series)}return x}},{key:\"setSVGDimensions\",value:function(){var t=this.w.globals,e=this.w.config;t.svgWidth=e.chart.width,t.svgHeight=e.chart.height;var i=f.getDimensions(this.el),a=e.chart.width.toString().split(/[0-9]+/g).pop();\"%\"===a?f.isNumber(i[0])&&(0===i[0].width&&(i=f.getDimensions(this.el.parentNode)),t.svgWidth=i[0]*parseInt(e.chart.width,10)/100):\"px\"!==a&&\"\"!==a||(t.svgWidth=parseInt(e.chart.width,10));var s=e.chart.height.toString().split(/[0-9]+/g).pop();if(\"auto\"!==t.svgHeight&&\"\"!==t.svgHeight)if(\"%\"===s){var r=f.getDimensions(this.el.parentNode);t.svgHeight=r[1]*parseInt(e.chart.height,10)/100}else t.svgHeight=parseInt(e.chart.height,10);else t.axisCharts?t.svgHeight=t.svgWidth/1.61:t.svgHeight=t.svgWidth/1.2;if(t.svgWidth<0&&(t.svgWidth=0),t.svgHeight<0&&(t.svgHeight=0),b.setAttrs(t.dom.Paper.node,{width:t.svgWidth,height:t.svgHeight}),\"%\"!==s){var o=e.chart.sparkline.enabled?0:t.axisCharts?e.chart.parentHeightOffset:0;t.dom.Paper.node.parentNode.parentNode.style.minHeight=t.svgHeight+o+\"px\"}t.dom.elWrap.style.width=t.svgWidth+\"px\",t.dom.elWrap.style.height=t.svgHeight+\"px\"}},{key:\"shiftGraphPosition\",value:function(){var t=this.w.globals,e=t.translateY,i={transform:\"translate(\"+t.translateX+\", \"+e+\")\"};b.setAttrs(t.dom.elGraphical.node,i)}},{key:\"resizeNonAxisCharts\",value:function(){var t=this.w,e=t.globals,i=0,a=t.config.chart.sparkline.enabled?1:15;a+=t.config.grid.padding.bottom,\"top\"!==t.config.legend.position&&\"bottom\"!==t.config.legend.position||!t.config.legend.show||t.config.legend.floating||(i=new lt(this.ctx).legendHelpers.getLegendBBox().clwh+10);var s=t.globals.dom.baseEl.querySelector(\".apexcharts-radialbar, .apexcharts-pie\"),r=2.05*t.globals.radialSize;if(s&&!t.config.chart.sparkline.enabled){var o=f.getBoundingClientRect(s);r=o.bottom;var n=o.bottom-o.top;r=Math.max(2.05*t.globals.radialSize,n)}var l=r+e.translateY+i+a;e.dom.elLegendForeign&&e.dom.elLegendForeign.setAttribute(\"height\",l),e.dom.elWrap.style.height=l+\"px\",b.setAttrs(e.dom.Paper.node,{height:l}),e.dom.Paper.node.parentNode.parentNode.style.minHeight=l+\"px\"}},{key:\"coreCalculations\",value:function(){new U(this.ctx).init()}},{key:\"resetGlobals\",value:function(){var t=this,e=function(){return t.w.config.series.map((function(t){return[]}))},i=new D,a=this.w.globals;i.initGlobalVars(a),a.seriesXvalues=e(),a.seriesYvalues=e()}},{key:\"isMultipleY\",value:function(){if(this.w.config.yaxis.constructor===Array&&this.w.config.yaxis.length>1)return this.w.globals.isMultipleYAxis=!0,!0}},{key:\"xySettings\",value:function(){var t=null,e=this.w;if(e.globals.axisCharts){if(\"back\"===e.config.xaxis.crosshairs.position)new Q(this.ctx).drawXCrosshairs();if(\"back\"===e.config.yaxis[0].crosshairs.position)new Q(this.ctx).drawYCrosshairs();if(\"datetime\"===e.config.xaxis.type&&void 0===e.config.xaxis.labels.formatter){this.ctx.timeScale=new Xt(this.ctx);var i=[];isFinite(e.globals.minX)&&isFinite(e.globals.maxX)&&!e.globals.isBarHorizontal?i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX,e.globals.maxX):e.globals.isBarHorizontal&&(i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY,e.globals.maxY)),this.ctx.timeScale.recalcDimensionsBasedOnFormat(i)}t=new y(this.ctx).getCalculatedRatios()}return t}},{key:\"updateSourceChart\",value:function(t){this.ctx.w.globals.selection=void 0,this.ctx.updateHelpers._updateOptions({chart:{selection:{xaxis:{min:t.w.globals.minX,max:t.w.globals.maxX}}}},!1,!1)}},{key:\"setupBrushHandler\",value:function(){var t=this,e=this.w;if(e.config.chart.brush.enabled&&\"function\"!=typeof e.config.chart.events.selection){var i=e.config.chart.brush.targets||[e.config.chart.brush.target];i.forEach((function(e){var i=ApexCharts.getChartByID(e);i.w.globals.brushSource=t.ctx,\"function\"!=typeof i.w.config.chart.events.zoomed&&(i.w.config.chart.events.zoomed=function(){t.updateSourceChart(i)}),\"function\"!=typeof i.w.config.chart.events.scrolled&&(i.w.config.chart.events.scrolled=function(){t.updateSourceChart(i)})})),e.config.chart.events.selection=function(t,a){i.forEach((function(t){var i=ApexCharts.getChartByID(t),s=f.clone(e.config.yaxis);if(e.config.chart.brush.autoScaleYaxis&&1===i.w.globals.series.length){var r=new j(i);s=r.autoScaleY(i,s,a)}var n=i.w.config.yaxis.reduce((function(t,e,a){return[].concat(g(t),[o(o({},i.w.config.yaxis[a]),{},{min:s[0].min,max:s[0].max})])}),[]);i.ctx.updateHelpers._updateOptions({xaxis:{min:a.xaxis.min,max:a.xaxis.max},yaxis:n},!1,!1,!1,!1)}))}}}}]),t}(),Yt=function(){function i(t){e(this,i),this.ctx=t,this.w=t.w}return a(i,[{key:\"_updateOptions\",value:function(e){var i=this,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],n=[this.ctx];r&&(n=this.ctx.getSyncedCharts()),this.ctx.w.globals.isExecCalled&&(n=[this.ctx],this.ctx.w.globals.isExecCalled=!1),n.forEach((function(r){var n=r.w;return n.globals.shouldAnimate=s,a||(n.globals.resized=!0,n.globals.dataChanged=!0,s&&r.series.getPreviousPaths()),e&&\"object\"===t(e)&&(r.config=new H(e),e=y.extendArrayProps(r.config,e,n),r.w.globals.chartID!==i.ctx.w.globals.chartID&&delete e.series,n.config=f.extend(n.config,e),o&&(n.globals.lastXAxis=e.xaxis?f.clone(e.xaxis):[],n.globals.lastYAxis=e.yaxis?f.clone(e.yaxis):[],n.globals.initialConfig=f.extend({},n.config),n.globals.initialSeries=f.clone(n.config.series))),r.update(e)}))}},{key:\"_updateSeries\",value:function(t,e){var i,a=this,s=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this.w;return r.globals.shouldAnimate=e,r.globals.dataChanged=!0,e&&this.ctx.series.getPreviousPaths(),r.globals.axisCharts?(0===(i=t.map((function(t,e){return a._extendSeries(t,e)}))).length&&(i=[{data:[]}]),r.config.series=i):r.config.series=t.slice(),s&&(r.globals.initialSeries=f.clone(r.config.series)),this.ctx.update()}},{key:\"_extendSeries\",value:function(t,e){var i=this.w,a=i.config.series[e];return o(o({},i.config.series[e]),{},{name:t.name?t.name:a&&a.name,color:t.color?t.color:a&&a.color,type:t.type?t.type:a&&a.type,data:t.data?t.data:a&&a.data})}},{key:\"toggleDataPointSelection\",value:function(t,e){var i=this.w,a=null,s=\".apexcharts-series[data\\\\:realIndex='\".concat(t,\"']\");return i.globals.axisCharts?a=i.globals.dom.Paper.select(\"\".concat(s,\" path[j='\").concat(e,\"'], \").concat(s,\" circle[j='\").concat(e,\"'], \").concat(s,\" rect[j='\").concat(e,\"']\")).members[0]:void 0===e&&(a=i.globals.dom.Paper.select(\"\".concat(s,\" path[j='\").concat(t,\"']\")).members[0],\"pie\"!==i.config.chart.type&&\"polarArea\"!==i.config.chart.type&&\"donut\"!==i.config.chart.type||this.ctx.pie.pieClicked(t)),a?(new b(this.ctx).pathMouseDown(a,null),a.node?a.node:null):(console.warn(\"toggleDataPointSelection: Element not found\"),null)}},{key:\"forceXAxisUpdate\",value:function(t){var e=this.w;if([\"min\",\"max\"].forEach((function(i){void 0!==t.xaxis[i]&&(e.config.xaxis[i]=t.xaxis[i],e.globals.lastXAxis[i]=t.xaxis[i])})),t.xaxis.categories&&t.xaxis.categories.length&&(e.config.xaxis.categories=t.xaxis.categories),e.config.xaxis.convertedCatToNumeric){var i=new R(t);t=i.convertCatToNumericXaxis(t,this.ctx)}return t}},{key:\"forceYAxisUpdate\",value:function(t){var e=this.w;return e.config.chart.stacked&&\"100%\"===e.config.chart.stackType&&(Array.isArray(t.yaxis)?t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})):(t.yaxis.min=0,t.yaxis.max=100)),t}},{key:\"revertDefaultAxisMinMax\",value:function(t){var e=this,i=this.w,a=i.globals.lastXAxis,s=i.globals.lastYAxis;t&&t.xaxis&&(a=t.xaxis),t&&t.yaxis&&(s=t.yaxis),i.config.xaxis.min=a.min,i.config.xaxis.max=a.max;var r=function(t){void 0!==s[t]&&(i.config.yaxis[t].min=s[t].min,i.config.yaxis[t].max=s[t].max)};i.config.yaxis.map((function(t,a){i.globals.zoomed||void 0!==s[a]?r(a):void 0!==e.ctx.opts.yaxis[a]&&(t.min=e.ctx.opts.yaxis[a].min,t.max=e.ctx.opts.yaxis[a].max)}))}}]),i}();Tt=\"undefined\"!=typeof window?window:void 0,Mt=function(e,i){var a=(void 0!==this?this:e).SVG=function(t){if(a.supported)return t=new a.Doc(t),a.parser.draw||a.prepare(),t};if(a.ns=\"http://www.w3.org/2000/svg\",a.xmlns=\"http://www.w3.org/2000/xmlns/\",a.xlink=\"http://www.w3.org/1999/xlink\",a.svgjs=\"http://svgjs.com/svgjs\",a.supported=!0,!a.supported)return!1;a.did=1e3,a.eid=function(t){return\"Svgjs\"+d(t)+a.did++},a.create=function(t){var e=i.createElementNS(this.ns,t);return e.setAttribute(\"id\",this.eid(t)),e},a.extend=function(){var t,e;e=(t=[].slice.call(arguments)).pop();for(var i=t.length-1;i>=0;i--)if(t[i])for(var s in e)t[i].prototype[s]=e[s];a.Set&&a.Set.inherit&&a.Set.inherit()},a.invent=function(t){var e=\"function\"==typeof t.create?t.create:function(){this.constructor.call(this,a.create(t.create))};return t.inherit&&(e.prototype=new t.inherit),t.extend&&a.extend(e,t.extend),t.construct&&a.extend(t.parent||a.Container,t.construct),e},a.adopt=function(t){return t?t.instance?t.instance:((i=\"svg\"==t.nodeName?t.parentNode instanceof e.SVGElement?new a.Nested:new a.Doc:\"linearGradient\"==t.nodeName?new a.Gradient(\"linear\"):\"radialGradient\"==t.nodeName?new a.Gradient(\"radial\"):a[d(t.nodeName)]?new(a[d(t.nodeName)]):new a.Element(t)).type=t.nodeName,i.node=t,t.instance=i,i instanceof a.Doc&&i.namespace().defs(),i.setData(JSON.parse(t.getAttribute(\"svgjs:data\"))||{}),i):null;var i},a.prepare=function(){var t=i.getElementsByTagName(\"body\")[0],e=(t?new a.Doc(t):a.adopt(i.documentElement).nested()).size(2,0);a.parser={body:t||i.documentElement,draw:e.style(\"opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden\").node,poly:e.polyline().node,path:e.path().node,native:a.create(\"svg\")}},a.parser={native:a.create(\"svg\")},i.addEventListener(\"DOMContentLoaded\",(function(){a.parser.draw||a.prepare()}),!1),a.regex={numberAndUnit:/^([+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i,rgb:/rgb\\((\\d+),(\\d+),(\\d+)\\)/,reference:/#([a-z0-9\\-_]+)/i,transforms:/\\)\\s*,?\\s*/,whitespace:/\\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\\s+)?$/,isNumber:/^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,isPercent:/^-?[\\d\\.]+%$/,isImage:/\\.(jpg|jpeg|png|gif|svg)(\\?[^=]+.*)?/i,delimiter:/[\\s,]+/,hyphen:/([^e])\\-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\\d?\\.\\d+(?:e[+-]?\\d+)?)((?:\\.\\d+(?:e[+-]?\\d+)?)+))+/gi,dots:/\\./g},a.utils={map:function(t,e){for(var i=t.length,a=[],s=0;s1?1:t,new a.Color({r:~~(this.r+(this.destination.r-this.r)*t),g:~~(this.g+(this.destination.g-this.g)*t),b:~~(this.b+(this.destination.b-this.b)*t)})):this}}),a.Color.test=function(t){return t+=\"\",a.regex.isHex.test(t)||a.regex.isRgb.test(t)},a.Color.isRgb=function(t){return t&&\"number\"==typeof t.r&&\"number\"==typeof t.g&&\"number\"==typeof t.b},a.Color.isColor=function(t){return a.Color.isRgb(t)||a.Color.test(t)},a.Array=function(t,e){0==(t=(t||[]).valueOf()).length&&e&&(t=e.valueOf()),this.value=this.parse(t)},a.extend(a.Array,{toString:function(){return this.value.join(\" \")},valueOf:function(){return this.value},parse:function(t){return t=t.valueOf(),Array.isArray(t)?t:this.split(t)}}),a.PointArray=function(t,e){a.Array.call(this,t,e||[[0,0]])},a.PointArray.prototype=new a.Array,a.PointArray.prototype.constructor=a.PointArray;for(var s={M:function(t,e,i){return e.x=i.x=t[0],e.y=i.y=t[1],[\"M\",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],[\"L\",t[0],t[1]]},H:function(t,e){return e.x=t[0],[\"H\",t[0]]},V:function(t,e){return e.y=t[0],[\"V\",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],[\"C\",t[0],t[1],t[2],t[3],t[4],t[5]]},Q:function(t,e){return e.x=t[2],e.y=t[3],[\"Q\",t[0],t[1],t[2],t[3]]},Z:function(t,e,i){return e.x=i.x,e.y=i.y,[\"Z\"]}},r=\"mlhvqtcsaz\".split(\"\"),o=0,n=r.length;ol);return r},bbox:function(){return a.parser.draw||a.prepare(),a.parser.path.setAttribute(\"d\",this.toString()),a.parser.path.getBBox()}}),a.Number=a.invent({create:function(t,e){this.value=0,this.unit=e||\"\",\"number\"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:\"string\"==typeof t?(e=t.match(a.regex.numberAndUnit))&&(this.value=parseFloat(e[1]),\"%\"==e[5]?this.value/=100:\"s\"==e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof a.Number&&(this.value=t.valueOf(),this.unit=t.unit)},extend:{toString:function(){return(\"%\"==this.unit?~~(1e8*this.value)/1e6:\"s\"==this.unit?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},valueOf:function(){return this.value},plus:function(t){return t=new a.Number(t),new a.Number(this+t,this.unit||t.unit)},minus:function(t){return t=new a.Number(t),new a.Number(this-t,this.unit||t.unit)},times:function(t){return t=new a.Number(t),new a.Number(this*t,this.unit||t.unit)},divide:function(t){return t=new a.Number(t),new a.Number(this/t,this.unit||t.unit)},to:function(t){var e=new a.Number(this);return\"string\"==typeof t&&(e.unit=t),e},morph:function(t){return this.destination=new a.Number(t),t.relative&&(this.destination.value+=this.value),this},at:function(t){return this.destination?new a.Number(this.destination).minus(this).times(t).plus(this):this}}}),a.Element=a.invent({create:function(t){this._stroke=a.defaults.attrs.stroke,this._event=null,this.dom={},(this.node=t)&&(this.type=t.nodeName,this.node.instance=this,this._stroke=t.getAttribute(\"stroke\")||this._stroke)},extend:{x:function(t){return this.attr(\"x\",t)},y:function(t){return this.attr(\"y\",t)},cx:function(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)},cy:function(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)},move:function(t,e){return this.x(t).y(e)},center:function(t,e){return this.cx(t).cy(e)},width:function(t){return this.attr(\"width\",t)},height:function(t){return this.attr(\"height\",t)},size:function(t,e){var i=u(this,t,e);return this.width(new a.Number(i.width)).height(new a.Number(i.height))},clone:function(t){this.writeDataToDom();var e=x(this.node.cloneNode(!0));return t?t.add(e):this.after(e),e},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(t){return this.after(t).remove(),t},addTo:function(t){return t.put(this)},putIn:function(t){return t.add(this)},id:function(t){return this.attr(\"id\",t)},show:function(){return this.style(\"display\",\"\")},hide:function(){return this.style(\"display\",\"none\")},visible:function(){return\"none\"!=this.style(\"display\")},toString:function(){return this.attr(\"id\")},classes:function(){var t=this.attr(\"class\");return null==t?[]:t.trim().split(a.regex.delimiter)},hasClass:function(t){return-1!=this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){var e=this.classes();e.push(t),this.attr(\"class\",e.join(\" \"))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr(\"class\",this.classes().filter((function(e){return e!=t})).join(\" \")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)},reference:function(t){return a.get(this.attr(t))},parent:function(t){var i=this;if(!i.node.parentNode)return null;if(i=a.adopt(i.node.parentNode),!t)return i;for(;i&&i.node instanceof e.SVGElement;){if(\"string\"==typeof t?i.matches(t):i instanceof t)return i;if(!i.node.parentNode||\"#document\"==i.node.parentNode.nodeName)return null;i=a.adopt(i.node.parentNode)}},doc:function(){return this instanceof a.Doc?this:this.parent(a.Doc)},parents:function(t){var e=[],i=this;do{if(!(i=i.parent(t))||!i.node)break;e.push(i)}while(i.parent);return e},matches:function(t){return function(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector).call(t,e)}(this.node,t)},native:function(){return this.node},svg:function(t){var e=i.createElement(\"svg\");if(!(t&&this instanceof a.Parent))return e.appendChild(t=i.createElement(\"svg\")),this.writeDataToDom(),t.appendChild(this.node.cloneNode(!0)),e.innerHTML.replace(/^/,\"\").replace(/<\\/svg>$/,\"\");e.innerHTML=\"\"+t.replace(/\\n/,\"\").replace(/<([\\w:-]+)([^<]+?)\\/>/g,\"<$1$2>\")+\"\";for(var s=0,r=e.firstChild.childNodes.length;s\":function(t){return-Math.cos(t*Math.PI)/2+.5},\">\":function(t){return Math.sin(t*Math.PI/2)},\"<\":function(t){return 1-Math.cos(t*Math.PI/2)}},a.morph=function(t){return function(e,i){return new a.MorphObj(e,i).at(t)}},a.Situation=a.invent({create:function(t){this.init=!1,this.reversed=!1,this.reversing=!1,this.duration=new a.Number(t.duration).valueOf(),this.delay=new a.Number(t.delay).valueOf(),this.start=+new Date+this.delay,this.finish=this.start+this.duration,this.ease=t.ease,this.loop=0,this.loops=!1,this.animations={},this.attrs={},this.styles={},this.transforms=[],this.once={}}}),a.FX=a.invent({create:function(t){this._target=t,this.situations=[],this.active=!1,this.situation=null,this.paused=!1,this.lastPos=0,this.pos=0,this.absPos=0,this._speed=1},extend:{animate:function(e,i,s){\"object\"===t(e)&&(i=e.ease,s=e.delay,e=e.duration);var r=new a.Situation({duration:e||1e3,delay:s||0,ease:a.easing[i||\"-\"]||i});return this.queue(r),this},target:function(t){return t&&t instanceof a.Element?(this._target=t,this):this._target},timeToAbsPos:function(t){return(t-this.situation.start)/(this.situation.duration/this._speed)},absPosToTime:function(t){return this.situation.duration/this._speed*t+this.situation.start},startAnimFrame:function(){this.stopAnimFrame(),this.animationFrame=e.requestAnimationFrame(function(){this.step()}.bind(this))},stopAnimFrame:function(){e.cancelAnimationFrame(this.animationFrame)},start:function(){return!this.active&&this.situation&&(this.active=!0,this.startCurrent()),this},startCurrent:function(){return this.situation.start=+new Date+this.situation.delay/this._speed,this.situation.finish=this.situation.start+this.situation.duration/this._speed,this.initAnimations().step()},queue:function(t){return(\"function\"==typeof t||t instanceof a.Situation)&&this.situations.push(t),this.situation||(this.situation=this.situations.shift()),this},dequeue:function(){return this.stop(),this.situation=this.situations.shift(),this.situation&&(this.situation instanceof a.Situation?this.start():this.situation.call(this)),this},initAnimations:function(){var t,e=this.situation;if(e.init)return this;for(var i in e.animations){t=this.target()[i](),Array.isArray(t)||(t=[t]),Array.isArray(e.animations[i])||(e.animations[i]=[e.animations[i]]);for(var s=t.length;s--;)e.animations[i][s]instanceof a.Number&&(t[s]=new a.Number(t[s])),e.animations[i][s]=t[s].morph(e.animations[i][s])}for(var i in e.attrs)e.attrs[i]=new a.MorphObj(this.target().attr(i),e.attrs[i]);for(var i in e.styles)e.styles[i]=new a.MorphObj(this.target().style(i),e.styles[i]);return e.initialTransformation=this.target().matrixify(),e.init=!0,this},clearQueue:function(){return this.situations=[],this},clearCurrent:function(){return this.situation=null,this},stop:function(t,e){var i=this.active;return this.active=!1,e&&this.clearQueue(),t&&this.situation&&(!i&&this.startCurrent(),this.atEnd()),this.stopAnimFrame(),this.clearCurrent()},after:function(t){var e=this.last();return this.target().on(\"finished.fx\",(function i(a){a.detail.situation==e&&(t.call(this,e),this.off(\"finished.fx\",i))})),this._callStart()},during:function(t){var e=this.last(),i=function(i){i.detail.situation==e&&t.call(this,i.detail.pos,a.morph(i.detail.pos),i.detail.eased,e)};return this.target().off(\"during.fx\",i).on(\"during.fx\",i),this.after((function(){this.off(\"during.fx\",i)})),this._callStart()},afterAll:function(t){var e=function e(i){t.call(this),this.off(\"allfinished.fx\",e)};return this.target().off(\"allfinished.fx\",e).on(\"allfinished.fx\",e),this._callStart()},last:function(){return this.situations.length?this.situations[this.situations.length-1]:this.situation},add:function(t,e,i){return this.last()[i||\"animations\"][t]=e,this._callStart()},step:function(t){var e,i,a;t||(this.absPos=this.timeToAbsPos(+new Date)),!1!==this.situation.loops?(e=Math.max(this.absPos,0),i=Math.floor(e),!0===this.situation.loops||ithis.lastPos&&r<=s&&(this.situation.once[r].call(this.target(),this.pos,s),delete this.situation.once[r]);return this.active&&this.target().fire(\"during\",{pos:this.pos,eased:s,fx:this,situation:this.situation}),this.situation?(this.eachAt(),1==this.pos&&!this.situation.reversed||this.situation.reversed&&0==this.pos?(this.stopAnimFrame(),this.target().fire(\"finished\",{fx:this,situation:this.situation}),this.situations.length||(this.target().fire(\"allfinished\"),this.situations.length||(this.target().off(\".fx\"),this.active=!1)),this.active?this.dequeue():this.clearCurrent()):!this.paused&&this.active&&this.startAnimFrame(),this.lastPos=s,this):this},eachAt:function(){var t,e=this,i=this.target(),s=this.situation;for(var r in s.animations)t=[].concat(s.animations[r]).map((function(t){return\"string\"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i[r].apply(i,t);for(var r in s.attrs)t=[r].concat(s.attrs[r]).map((function(t){return\"string\"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.attr.apply(i,t);for(var r in s.styles)t=[r].concat(s.styles[r]).map((function(t){return\"string\"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.style.apply(i,t);if(s.transforms.length){t=s.initialTransformation,r=0;for(var o=s.transforms.length;r=0;--s)this[v[s]]=null!=e[v[s]]?e[v[s]]:i[v[s]]},extend:{extract:function(){var t=f(this,0,1);f(this,1,0);var e=180/Math.PI*Math.atan2(t.y,t.x)-90;return{x:this.e,y:this.f,transformedX:(this.e*Math.cos(e*Math.PI/180)+this.f*Math.sin(e*Math.PI/180))/Math.sqrt(this.a*this.a+this.b*this.b),transformedY:(this.f*Math.cos(e*Math.PI/180)+this.e*Math.sin(-e*Math.PI/180))/Math.sqrt(this.c*this.c+this.d*this.d),rotation:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f,matrix:new a.Matrix(this)}},clone:function(){return new a.Matrix(this)},morph:function(t){return this.destination=new a.Matrix(t),this},multiply:function(t){return new a.Matrix(this.native().multiply(function(t){return t instanceof a.Matrix||(t=new a.Matrix(t)),t}(t).native()))},inverse:function(){return new a.Matrix(this.native().inverse())},translate:function(t,e){return new a.Matrix(this.native().translate(t||0,e||0))},native:function(){for(var t=a.parser.native.createSVGMatrix(),e=v.length-1;e>=0;e--)t[v[e]]=this[v[e]];return t},toString:function(){return\"matrix(\"+m(this.a)+\",\"+m(this.b)+\",\"+m(this.c)+\",\"+m(this.d)+\",\"+m(this.e)+\",\"+m(this.f)+\")\"}},parent:a.Element,construct:{ctm:function(){return new a.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof a.Nested){var t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new a.Matrix(e)}return new a.Matrix(this.node.getScreenCTM())}}}),a.Point=a.invent({create:function(e,i){var a;a=Array.isArray(e)?{x:e[0],y:e[1]}:\"object\"===t(e)?{x:e.x,y:e.y}:null!=e?{x:e,y:null!=i?i:e}:{x:0,y:0},this.x=a.x,this.y=a.y},extend:{clone:function(){return new a.Point(this)},morph:function(t,e){return this.destination=new a.Point(t,e),this}}}),a.extend(a.Element,{point:function(t,e){return new a.Point(t,e).transform(this.screenCTM().inverse())}}),a.extend(a.Element,{attr:function(e,i,s){if(null==e){for(e={},s=(i=this.node.attributes).length-1;s>=0;s--)e[i[s].nodeName]=a.regex.isNumber.test(i[s].nodeValue)?parseFloat(i[s].nodeValue):i[s].nodeValue;return e}if(\"object\"===t(e))for(var r in e)this.attr(r,e[r]);else if(null===i)this.node.removeAttribute(e);else{if(null==i)return null==(i=this.node.getAttribute(e))?a.defaults.attrs[e]:a.regex.isNumber.test(i)?parseFloat(i):i;\"stroke-width\"==e?this.attr(\"stroke\",parseFloat(i)>0?this._stroke:null):\"stroke\"==e&&(this._stroke=i),\"fill\"!=e&&\"stroke\"!=e||(a.regex.isImage.test(i)&&(i=this.doc().defs().image(i,0,0)),i instanceof a.Image&&(i=this.doc().defs().pattern(0,0,(function(){this.add(i)})))),\"number\"==typeof i?i=new a.Number(i):a.Color.isColor(i)?i=new a.Color(i):Array.isArray(i)&&(i=new a.Array(i)),\"leading\"==e?this.leading&&this.leading(i):\"string\"==typeof s?this.node.setAttributeNS(s,e,i.toString()):this.node.setAttribute(e,i.toString()),!this.rebuild||\"font-size\"!=e&&\"x\"!=e||this.rebuild(e,i)}return this}}),a.extend(a.Element,{transform:function(e,i){var s;return\"object\"!==t(e)?(s=new a.Matrix(this).extract(),\"string\"==typeof e?s[e]:s):(s=new a.Matrix(this),i=!!i||!!e.relative,null!=e.a&&(s=i?s.multiply(new a.Matrix(e)):new a.Matrix(e)),this.attr(\"transform\",s))}}),a.extend(a.Element,{untransform:function(){return this.attr(\"transform\",null)},matrixify:function(){return(this.attr(\"transform\")||\"\").split(a.regex.transforms).slice(0,-1).map((function(t){var e=t.trim().split(\"(\");return[e[0],e[1].split(a.regex.delimiter).map((function(t){return parseFloat(t)}))]})).reduce((function(t,e){return\"matrix\"==e[0]?t.multiply(p(e[1])):t[e[0]].apply(t,e[1])}),new a.Matrix)},toParent:function(t){if(this==t)return this;var e=this.screenCTM(),i=t.screenCTM().inverse();return this.addTo(t).untransform().transform(i.multiply(e)),this},toDoc:function(){return this.toParent(this.doc())}}),a.Transformation=a.invent({create:function(e,i){if(arguments.length>1&&\"boolean\"!=typeof i)return this.constructor.call(this,[].slice.call(arguments));if(Array.isArray(e))for(var a=0,s=this.arguments.length;a=0},index:function(t){return[].slice.call(this.node.childNodes).indexOf(t.node)},get:function(t){return a.adopt(this.node.childNodes[t])},first:function(){return this.get(0)},last:function(){return this.get(this.node.childNodes.length-1)},each:function(t,e){for(var i=this.children(),s=0,r=i.length;s=0;i--)t.childNodes[i]instanceof e.SVGElement&&x(t.childNodes[i]);return a.adopt(t).id(a.eid(t.nodeName))}function b(t){return null==t.x&&(t.x=0,t.y=0,t.width=0,t.height=0),t.w=t.width,t.h=t.height,t.x2=t.x+t.width,t.y2=t.y+t.height,t.cx=t.x+t.width/2,t.cy=t.y+t.height/2,t}function m(t){return Math.abs(t)>1e-37?t:0}[\"fill\",\"stroke\"].forEach((function(t){var e={};e[t]=function(e){if(void 0===e)return this;if(\"string\"==typeof e||a.Color.isRgb(e)||e&&\"function\"==typeof e.fill)this.attr(t,e);else for(var i=l[t].length-1;i>=0;i--)null!=e[l[t][i]]&&this.attr(l.prefix(t,l[t][i]),e[l[t][i]]);return this},a.extend(a.Element,a.FX,e)})),a.extend(a.Element,a.FX,{translate:function(t,e){return this.transform({x:t,y:e})},matrix:function(t){return this.attr(\"transform\",new a.Matrix(6==arguments.length?[].slice.call(arguments):t))},opacity:function(t){return this.attr(\"opacity\",t)},dx:function(t){return this.x(new a.Number(t).plus(this instanceof a.FX?0:this.x()),!0)},dy:function(t){return this.y(new a.Number(t).plus(this instanceof a.FX?0:this.y()),!0)}}),a.extend(a.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(t){return this.node.getPointAtLength(t)}}),a.Set=a.invent({create:function(t){Array.isArray(t)?this.members=t:this.clear()},extend:{add:function(){for(var t=[].slice.call(arguments),e=0,i=t.length;e-1&&this.members.splice(e,1),this},each:function(t){for(var e=0,i=this.members.length;e=0},index:function(t){return this.members.indexOf(t)},get:function(t){return this.members[t]},first:function(){return this.get(0)},last:function(){return this.get(this.members.length-1)},valueOf:function(){return this.members}},construct:{set:function(t){return new a.Set(t)}}}),a.FX.Set=a.invent({create:function(t){this.set=t}}),a.Set.inherit=function(){var t=[];for(var e in a.Shape.prototype)\"function\"==typeof a.Shape.prototype[e]&&\"function\"!=typeof a.Set.prototype[e]&&t.push(e);for(var e in t.forEach((function(t){a.Set.prototype[t]=function(){for(var e=0,i=this.members.length;e=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory||(this._memory={})}}),a.get=function(t){var e=i.getElementById(function(t){var e=(t||\"\").toString().match(a.regex.reference);if(e)return e[1]}(t)||t);return a.adopt(e)},a.select=function(t,e){return new a.Set(a.utils.map((e||i).querySelectorAll(t),(function(t){return a.adopt(t)})))},a.extend(a.Parent,{select:function(t){return a.select(t,this.node)}});var v=\"abcdef\".split(\"\");if(\"function\"!=typeof e.CustomEvent){var y=function(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var a=i.createEvent(\"CustomEvent\");return a.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),a};y.prototype=e.Event.prototype,a.CustomEvent=y}else a.CustomEvent=e.CustomEvent;return a}, true?!(__WEBPACK_AMD_DEFINE_RESULT__ = (function(){return Mt(Tt,Tt.document)}).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):0,\n/*! svg.filter.js - v2.0.2 - 2016-02-24\n * https://github.com/wout/svg.filter.js\n * Copyright (c) 2016 Wout Fierens; Licensed MIT */\nfunction(){SVG.Filter=SVG.invent({create:\"filter\",inherit:SVG.Parent,extend:{source:\"SourceGraphic\",sourceAlpha:\"SourceAlpha\",background:\"BackgroundImage\",backgroundAlpha:\"BackgroundAlpha\",fill:\"FillPaint\",stroke:\"StrokePaint\",autoSetIn:!0,put:function(t,e){return this.add(t,e),!t.attr(\"in\")&&this.autoSetIn&&t.attr(\"in\",this.source),t.attr(\"result\")||t.attr(\"result\",t),t},blend:function(t,e,i){return this.put(new SVG.BlendEffect(t,e,i))},colorMatrix:function(t,e){return this.put(new SVG.ColorMatrixEffect(t,e))},convolveMatrix:function(t){return this.put(new SVG.ConvolveMatrixEffect(t))},componentTransfer:function(t){return this.put(new SVG.ComponentTransferEffect(t))},composite:function(t,e,i){return this.put(new SVG.CompositeEffect(t,e,i))},flood:function(t,e){return this.put(new SVG.FloodEffect(t,e))},offset:function(t,e){return this.put(new SVG.OffsetEffect(t,e))},image:function(t){return this.put(new SVG.ImageEffect(t))},merge:function(){var t=[void 0];for(var e in arguments)t.push(arguments[e]);return this.put(new(SVG.MergeEffect.bind.apply(SVG.MergeEffect,t)))},gaussianBlur:function(t,e){return this.put(new SVG.GaussianBlurEffect(t,e))},morphology:function(t,e){return this.put(new SVG.MorphologyEffect(t,e))},diffuseLighting:function(t,e,i){return this.put(new SVG.DiffuseLightingEffect(t,e,i))},displacementMap:function(t,e,i,a,s){return this.put(new SVG.DisplacementMapEffect(t,e,i,a,s))},specularLighting:function(t,e,i,a){return this.put(new SVG.SpecularLightingEffect(t,e,i,a))},tile:function(){return this.put(new SVG.TileEffect)},turbulence:function(t,e,i,a,s){return this.put(new SVG.TurbulenceEffect(t,e,i,a,s))},toString:function(){return\"url(#\"+this.attr(\"id\")+\")\"}}}),SVG.extend(SVG.Defs,{filter:function(t){var e=this.put(new SVG.Filter);return\"function\"==typeof t&&t.call(e,e),e}}),SVG.extend(SVG.Container,{filter:function(t){return this.defs().filter(t)}}),SVG.extend(SVG.Element,SVG.G,SVG.Nested,{filter:function(t){return this.filterer=t instanceof SVG.Element?t:this.doc().filter(t),this.doc()&&this.filterer.doc()!==this.doc()&&this.doc().defs().add(this.filterer),this.attr(\"filter\",this.filterer),this.filterer},unfilter:function(t){return this.filterer&&!0===t&&this.filterer.remove(),delete this.filterer,this.attr(\"filter\",null)}}),SVG.Effect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result=\"'+this.attr(\"in\")+'\"]').get(0)||this.attr(\"in\"):this.attr(\"in\",t)},result:function(t){return null==t?this.attr(\"result\"):this.attr(\"result\",t)},toString:function(){return this.result()}}}),SVG.ParentEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Parent,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result=\"'+this.attr(\"in\")+'\"]').get(0)||this.attr(\"in\"):this.attr(\"in\",t)},result:function(t){return null==t?this.attr(\"result\"):this.attr(\"result\",t)},toString:function(){return this.result()}}});var t={blend:function(t,e){return this.parent()&&this.parent().blend(this,t,e)},colorMatrix:function(t,e){return this.parent()&&this.parent().colorMatrix(t,e).in(this)},convolveMatrix:function(t){return this.parent()&&this.parent().convolveMatrix(t).in(this)},componentTransfer:function(t){return this.parent()&&this.parent().componentTransfer(t).in(this)},composite:function(t,e){return this.parent()&&this.parent().composite(this,t,e)},flood:function(t,e){return this.parent()&&this.parent().flood(t,e)},offset:function(t,e){return this.parent()&&this.parent().offset(t,e).in(this)},image:function(t){return this.parent()&&this.parent().image(t)},merge:function(){return this.parent()&&this.parent().merge.apply(this.parent(),[this].concat(arguments))},gaussianBlur:function(t,e){return this.parent()&&this.parent().gaussianBlur(t,e).in(this)},morphology:function(t,e){return this.parent()&&this.parent().morphology(t,e).in(this)},diffuseLighting:function(t,e,i){return this.parent()&&this.parent().diffuseLighting(t,e,i).in(this)},displacementMap:function(t,e,i,a){return this.parent()&&this.parent().displacementMap(this,t,e,i,a)},specularLighting:function(t,e,i,a){return this.parent()&&this.parent().specularLighting(t,e,i,a).in(this)},tile:function(){return this.parent()&&this.parent().tile().in(this)},turbulence:function(t,e,i,a,s){return this.parent()&&this.parent().turbulence(t,e,i,a,s).in(this)}};SVG.extend(SVG.Effect,t),SVG.extend(SVG.ParentEffect,t),SVG.ChildEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){this.attr(\"in\",t)}}});var e={blend:function(t,e,i){this.attr({in:t,in2:e,mode:i||\"normal\"})},colorMatrix:function(t,e){\"matrix\"==t&&(e=s(e)),this.attr({type:t,values:void 0===e?null:e})},convolveMatrix:function(t){t=s(t),this.attr({order:Math.sqrt(t.split(\" \").length),kernelMatrix:t})},composite:function(t,e,i){this.attr({in:t,in2:e,operator:i})},flood:function(t,e){this.attr(\"flood-color\",t),null!=e&&this.attr(\"flood-opacity\",e)},offset:function(t,e){this.attr({dx:t,dy:e})},image:function(t){this.attr(\"href\",t,SVG.xlink)},displacementMap:function(t,e,i,a,s){this.attr({in:t,in2:e,scale:i,xChannelSelector:a,yChannelSelector:s})},gaussianBlur:function(t,e){null!=t||null!=e?this.attr(\"stdDeviation\",r(Array.prototype.slice.call(arguments))):this.attr(\"stdDeviation\",\"0 0\")},morphology:function(t,e){this.attr({operator:t,radius:e})},tile:function(){},turbulence:function(t,e,i,a,s){this.attr({numOctaves:e,seed:i,stitchTiles:a,baseFrequency:t,type:s})}},i={merge:function(){var t;if(arguments[0]instanceof SVG.Set){var e=this;arguments[0].each((function(t){this instanceof SVG.MergeNode?e.put(this):(this instanceof SVG.Effect||this instanceof SVG.ParentEffect)&&e.put(new SVG.MergeNode(this))}))}else{t=Array.isArray(arguments[0])?arguments[0]:arguments;for(var i=0;i1&&(T*=a=Math.sqrt(a),M*=a);s=(new SVG.Matrix).rotate(z).scale(1/T,1/M).rotate(-z),F=F.transform(s),R=R.transform(s),r=[R.x-F.x,R.y-F.y],n=r[0]*r[0]+r[1]*r[1],o=Math.sqrt(n),r[0]/=o,r[1]/=o,l=n<4?Math.sqrt(1-n/4):0,I===X&&(l*=-1);h=new SVG.Point((R.x+F.x)/2+l*-r[1],(R.y+F.y)/2+l*r[0]),c=new SVG.Point(F.x-h.x,F.y-h.y),d=new SVG.Point(R.x-h.x,R.y-h.y),g=Math.acos(c.x/Math.sqrt(c.x*c.x+c.y*c.y)),c.y<0&&(g*=-1);u=Math.acos(d.x/Math.sqrt(d.x*d.x+d.y*d.y)),d.y<0&&(u*=-1);X&&g>u&&(u+=2*Math.PI);!X&&gr.maxX-e.width&&(o=(a=r.maxX-e.width)-this.startPoints.box.x),null!=r.minY&&sr.maxY-e.height&&(n=(s=r.maxY-e.height)-this.startPoints.box.y),null!=r.snapToGrid&&(a-=a%r.snapToGrid,s-=s%r.snapToGrid,o-=o%r.snapToGrid,n-=n%r.snapToGrid),this.el instanceof SVG.G?this.el.matrix(this.startPoints.transform).transform({x:o,y:n},!0):this.el.move(a,s));return i},t.prototype.end=function(t){var e=this.drag(t);this.el.fire(\"dragend\",{event:t,p:e,m:this.m,handler:this}),SVG.off(window,\"mousemove.drag\"),SVG.off(window,\"touchmove.drag\"),SVG.off(window,\"mouseup.drag\"),SVG.off(window,\"touchend.drag\")},SVG.extend(SVG.Element,{draggable:function(e,i){\"function\"!=typeof e&&\"object\"!=typeof e||(i=e,e=!0);var a=this.remember(\"_draggable\")||new t(this);return(e=void 0===e||e)?a.init(i||{},e):(this.off(\"mousedown.drag\"),this.off(\"touchstart.drag\")),this}})}.call(void 0),function(){function t(t){this.el=t,t.remember(\"_selectHandler\",this),this.pointSelection={isSelected:!1},this.rectSelection={isSelected:!1},this.pointsList={lt:[0,0],rt:[\"width\",0],rb:[\"width\",\"height\"],lb:[0,\"height\"],t:[\"width\",0],r:[\"width\",\"height\"],b:[\"width\",\"height\"],l:[0,\"height\"]},this.pointCoord=function(t,e,i){var a=\"string\"!=typeof t?t:e[t];return i?a/2:a},this.pointCoords=function(t,e){var i=this.pointsList[t];return{x:this.pointCoord(i[0],e,\"t\"===t||\"b\"===t),y:this.pointCoord(i[1],e,\"r\"===t||\"l\"===t)}}}t.prototype.init=function(t,e){var i=this.el.bbox();this.options={};var a=this.el.selectize.defaults.points;for(var s in this.el.selectize.defaults)this.options[s]=this.el.selectize.defaults[s],void 0!==e[s]&&(this.options[s]=e[s]);var r=[\"points\",\"pointsExclude\"];for(var s in r){var o=this.options[r[s]];\"string\"==typeof o?o=o.length>0?o.split(/\\s*,\\s*/i):[]:\"boolean\"==typeof o&&\"points\"===r[s]&&(o=o?a:[]),this.options[r[s]]=o}this.options.points=[a,this.options.points].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)>-1}))})),this.options.points=[this.options.points,this.options.pointsExclude].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)<0}))})),this.parent=this.el.parent(),this.nested=this.nested||this.parent.group(),this.nested.matrix(new SVG.Matrix(this.el).translate(i.x,i.y)),this.options.deepSelect&&-1!==[\"line\",\"polyline\",\"polygon\"].indexOf(this.el.type)?this.selectPoints(t):this.selectRect(t),this.observe(),this.cleanup()},t.prototype.selectPoints=function(t){return this.pointSelection.isSelected=t,this.pointSelection.set||(this.pointSelection.set=this.parent.set(),this.drawPoints()),this},t.prototype.getPointArray=function(){var t=this.el.bbox();return this.el.array().valueOf().map((function(e){return[e[0]-t.x,e[1]-t.y]}))},t.prototype.drawPoints=function(){for(var t=this,e=this.getPointArray(),i=0,a=e.length;i0&&this.parameters.box.height-i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y+i[1]).size(this.parameters.box.width-i[0],this.parameters.box.height-i[1])}};break;case\"rt\":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height-i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).size(this.parameters.box.width+i[0],this.parameters.box.height-i[1])}};break;case\"rb\":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height+i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x,this.parameters.box.y).size(this.parameters.box.width+i[0],this.parameters.box.height+i[1])}};break;case\"lb\":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height+i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).size(this.parameters.box.width-i[0],this.parameters.box.height+i[1])}};break;case\"t\":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.height-i[1]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).height(this.parameters.box.height-i[1])}};break;case\"r\":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).width(this.parameters.box.width+i[0])}};break;case\"b\":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.height+i[1]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).height(this.parameters.box.height+i[1])}};break;case\"l\":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).width(this.parameters.box.width-i[0])}};break;case\"rot\":this.calc=function(t,e){var i=t+this.parameters.p.x,a=e+this.parameters.p.y,s=Math.atan2(this.parameters.p.y-this.parameters.box.y-this.parameters.box.height/2,this.parameters.p.x-this.parameters.box.x-this.parameters.box.width/2),r=Math.atan2(a-this.parameters.box.y-this.parameters.box.height/2,i-this.parameters.box.x-this.parameters.box.width/2),o=this.parameters.rotation+180*(r-s)/Math.PI+this.options.snapToAngle/2;this.el.center(this.parameters.box.cx,this.parameters.box.cy).rotate(o-o%this.options.snapToAngle,this.parameters.box.cx,this.parameters.box.cy)};break;case\"point\":this.calc=function(t,e){var i=this.snapToGrid(t,e,this.parameters.pointCoords[0],this.parameters.pointCoords[1]),a=this.el.array().valueOf();a[this.parameters.i][0]=this.parameters.pointCoords[0]+i[0],a[this.parameters.i][1]=this.parameters.pointCoords[1]+i[1],this.el.plot(a)}}this.el.fire(\"resizestart\",{dx:this.parameters.x,dy:this.parameters.y,event:t}),SVG.on(window,\"touchmove.resize\",(function(t){e.update(t||window.event)})),SVG.on(window,\"touchend.resize\",(function(){e.done()})),SVG.on(window,\"mousemove.resize\",(function(t){e.update(t||window.event)})),SVG.on(window,\"mouseup.resize\",(function(){e.done()}))},t.prototype.update=function(t){if(t){var e=this._extractPosition(t),i=this.transformPoint(e.x,e.y),a=i.x-this.parameters.p.x,s=i.y-this.parameters.p.y;this.lastUpdateCall=[a,s],this.calc(a,s),this.el.fire(\"resizing\",{dx:a,dy:s,event:t})}else this.lastUpdateCall&&this.calc(this.lastUpdateCall[0],this.lastUpdateCall[1])},t.prototype.done=function(){this.lastUpdateCall=null,SVG.off(window,\"mousemove.resize\"),SVG.off(window,\"mouseup.resize\"),SVG.off(window,\"touchmove.resize\"),SVG.off(window,\"touchend.resize\"),this.el.fire(\"resizedone\")},t.prototype.snapToGrid=function(t,e,i,a){var s;return void 0!==a?s=[(i+t)%this.options.snapToGrid,(a+e)%this.options.snapToGrid]:(i=null==i?3:i,s=[(this.parameters.box.x+t+(1&i?0:this.parameters.box.width))%this.options.snapToGrid,(this.parameters.box.y+e+(2&i?0:this.parameters.box.height))%this.options.snapToGrid]),t<0&&(s[0]-=this.options.snapToGrid),e<0&&(s[1]-=this.options.snapToGrid),t-=Math.abs(s[0])o.maxX&&(t=o.maxX-s),void 0!==o.minY&&r+eo.maxY&&(e=o.maxY-r),[t,e]},t.prototype.checkAspectRatio=function(t,e){if(!this.options.saveAspectRatio)return t;var i=t.slice(),a=this.parameters.box.width/this.parameters.box.height,s=this.parameters.box.width+t[0],r=this.parameters.box.height-t[1],o=s/r;return oa&&(i[0]=this.parameters.box.width-r*a,e&&(i[0]=-i[0])),i},SVG.extend(SVG.Element,{resize:function(e){return(this.remember(\"_resizeHandler\")||new t(this)).init(e||{}),this}}),SVG.Element.prototype.resize.defaults={snapToAngle:.1,snapToGrid:1,constraint:{},saveAspectRatio:!1}}).call(this)}();!function(t,e){void 0===e&&(e={});var i=e.insertAt;if(t&&\"undefined\"!=typeof document){var a=document.head||document.getElementsByTagName(\"head\")[0],s=document.createElement(\"style\");s.type=\"text/css\",\"top\"===i&&a.firstChild?a.insertBefore(s,a.firstChild):a.appendChild(s),s.styleSheet?s.styleSheet.cssText=t:s.appendChild(document.createTextNode(t))}}('.apexcharts-canvas {\\n position: relative;\\n user-select: none;\\n /* cannot give overflow: hidden as it will crop tooltips which overflow outside chart area */\\n}\\n\\n\\n/* scrollbar is not visible by default for legend, hence forcing the visibility */\\n.apexcharts-canvas ::-webkit-scrollbar {\\n -webkit-appearance: none;\\n width: 6px;\\n}\\n\\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\\n border-radius: 4px;\\n background-color: rgba(0, 0, 0, .5);\\n box-shadow: 0 0 1px rgba(255, 255, 255, .5);\\n -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);\\n}\\n\\n\\n.apexcharts-inner {\\n position: relative;\\n}\\n\\n.apexcharts-text tspan {\\n font-family: inherit;\\n}\\n\\n.legend-mouseover-inactive {\\n transition: 0.15s ease all;\\n opacity: 0.20;\\n}\\n\\n.apexcharts-series-collapsed {\\n opacity: 0;\\n}\\n\\n.apexcharts-tooltip {\\n border-radius: 5px;\\n box-shadow: 2px 2px 6px -4px #999;\\n cursor: default;\\n font-size: 14px;\\n left: 62px;\\n opacity: 0;\\n pointer-events: none;\\n position: absolute;\\n top: 20px;\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n white-space: nowrap;\\n z-index: 12;\\n transition: 0.15s ease all;\\n}\\n\\n.apexcharts-tooltip.apexcharts-active {\\n opacity: 1;\\n transition: 0.15s ease all;\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-light {\\n border: 1px solid #e3e3e3;\\n background: rgba(255, 255, 255, 0.96);\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-dark {\\n color: #fff;\\n background: rgba(30, 30, 30, 0.8);\\n}\\n\\n.apexcharts-tooltip * {\\n font-family: inherit;\\n}\\n\\n\\n.apexcharts-tooltip-title {\\n padding: 6px;\\n font-size: 15px;\\n margin-bottom: 4px;\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\\n background: #ECEFF1;\\n border-bottom: 1px solid #ddd;\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\\n background: rgba(0, 0, 0, 0.7);\\n border-bottom: 1px solid #333;\\n}\\n\\n.apexcharts-tooltip-text-y-value,\\n.apexcharts-tooltip-text-goals-value,\\n.apexcharts-tooltip-text-z-value {\\n display: inline-block;\\n font-weight: 600;\\n margin-left: 5px;\\n}\\n\\n.apexcharts-tooltip-text-y-label:empty,\\n.apexcharts-tooltip-text-y-value:empty,\\n.apexcharts-tooltip-text-goals-label:empty,\\n.apexcharts-tooltip-text-goals-value:empty,\\n.apexcharts-tooltip-text-z-value:empty {\\n display: none;\\n}\\n\\n.apexcharts-tooltip-text-y-value,\\n.apexcharts-tooltip-text-goals-value,\\n.apexcharts-tooltip-text-z-value {\\n font-weight: 600;\\n}\\n\\n.apexcharts-tooltip-text-goals-label, \\n.apexcharts-tooltip-text-goals-value {\\n padding: 6px 0 5px;\\n}\\n\\n.apexcharts-tooltip-goals-group, \\n.apexcharts-tooltip-text-goals-label, \\n.apexcharts-tooltip-text-goals-value {\\n display: flex;\\n}\\n.apexcharts-tooltip-text-goals-label:not(:empty),\\n.apexcharts-tooltip-text-goals-value:not(:empty) {\\n margin-top: -6px;\\n}\\n\\n.apexcharts-tooltip-marker {\\n width: 12px;\\n height: 12px;\\n position: relative;\\n top: 0px;\\n margin-right: 10px;\\n border-radius: 50%;\\n}\\n\\n.apexcharts-tooltip-series-group {\\n padding: 0 10px;\\n display: none;\\n text-align: left;\\n justify-content: left;\\n align-items: center;\\n}\\n\\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\\n opacity: 1;\\n}\\n\\n.apexcharts-tooltip-series-group.apexcharts-active,\\n.apexcharts-tooltip-series-group:last-child {\\n padding-bottom: 4px;\\n}\\n\\n.apexcharts-tooltip-series-group-hidden {\\n opacity: 0;\\n height: 0;\\n line-height: 0;\\n padding: 0 !important;\\n}\\n\\n.apexcharts-tooltip-y-group {\\n padding: 6px 0 5px;\\n}\\n\\n.apexcharts-tooltip-box, .apexcharts-custom-tooltip {\\n padding: 4px 8px;\\n}\\n\\n.apexcharts-tooltip-boxPlot {\\n display: flex;\\n flex-direction: column-reverse;\\n}\\n\\n.apexcharts-tooltip-box>div {\\n margin: 4px 0;\\n}\\n\\n.apexcharts-tooltip-box span.value {\\n font-weight: bold;\\n}\\n\\n.apexcharts-tooltip-rangebar {\\n padding: 5px 8px;\\n}\\n\\n.apexcharts-tooltip-rangebar .category {\\n font-weight: 600;\\n color: #777;\\n}\\n\\n.apexcharts-tooltip-rangebar .series-name {\\n font-weight: bold;\\n display: block;\\n margin-bottom: 5px;\\n}\\n\\n.apexcharts-xaxistooltip {\\n opacity: 0;\\n padding: 9px 10px;\\n pointer-events: none;\\n color: #373d3f;\\n font-size: 13px;\\n text-align: center;\\n border-radius: 2px;\\n position: absolute;\\n z-index: 10;\\n background: #ECEFF1;\\n border: 1px solid #90A4AE;\\n transition: 0.15s ease all;\\n}\\n\\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\\n background: rgba(0, 0, 0, 0.7);\\n border: 1px solid rgba(0, 0, 0, 0.5);\\n color: #fff;\\n}\\n\\n.apexcharts-xaxistooltip:after,\\n.apexcharts-xaxistooltip:before {\\n left: 50%;\\n border: solid transparent;\\n content: \" \";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none;\\n}\\n\\n.apexcharts-xaxistooltip:after {\\n border-color: rgba(236, 239, 241, 0);\\n border-width: 6px;\\n margin-left: -6px;\\n}\\n\\n.apexcharts-xaxistooltip:before {\\n border-color: rgba(144, 164, 174, 0);\\n border-width: 7px;\\n margin-left: -7px;\\n}\\n\\n.apexcharts-xaxistooltip-bottom:after,\\n.apexcharts-xaxistooltip-bottom:before {\\n bottom: 100%;\\n}\\n\\n.apexcharts-xaxistooltip-top:after,\\n.apexcharts-xaxistooltip-top:before {\\n top: 100%;\\n}\\n\\n.apexcharts-xaxistooltip-bottom:after {\\n border-bottom-color: #ECEFF1;\\n}\\n\\n.apexcharts-xaxistooltip-bottom:before {\\n border-bottom-color: #90A4AE;\\n}\\n\\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after {\\n border-bottom-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\\n border-bottom-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.apexcharts-xaxistooltip-top:after {\\n border-top-color: #ECEFF1\\n}\\n\\n.apexcharts-xaxistooltip-top:before {\\n border-top-color: #90A4AE;\\n}\\n\\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after {\\n border-top-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\\n border-top-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.apexcharts-xaxistooltip.apexcharts-active {\\n opacity: 1;\\n transition: 0.15s ease all;\\n}\\n\\n.apexcharts-yaxistooltip {\\n opacity: 0;\\n padding: 4px 10px;\\n pointer-events: none;\\n color: #373d3f;\\n font-size: 13px;\\n text-align: center;\\n border-radius: 2px;\\n position: absolute;\\n z-index: 10;\\n background: #ECEFF1;\\n border: 1px solid #90A4AE;\\n}\\n\\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\\n background: rgba(0, 0, 0, 0.7);\\n border: 1px solid rgba(0, 0, 0, 0.5);\\n color: #fff;\\n}\\n\\n.apexcharts-yaxistooltip:after,\\n.apexcharts-yaxistooltip:before {\\n top: 50%;\\n border: solid transparent;\\n content: \" \";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none;\\n}\\n\\n.apexcharts-yaxistooltip:after {\\n border-color: rgba(236, 239, 241, 0);\\n border-width: 6px;\\n margin-top: -6px;\\n}\\n\\n.apexcharts-yaxistooltip:before {\\n border-color: rgba(144, 164, 174, 0);\\n border-width: 7px;\\n margin-top: -7px;\\n}\\n\\n.apexcharts-yaxistooltip-left:after,\\n.apexcharts-yaxistooltip-left:before {\\n left: 100%;\\n}\\n\\n.apexcharts-yaxistooltip-right:after,\\n.apexcharts-yaxistooltip-right:before {\\n right: 100%;\\n}\\n\\n.apexcharts-yaxistooltip-left:after {\\n border-left-color: #ECEFF1;\\n}\\n\\n.apexcharts-yaxistooltip-left:before {\\n border-left-color: #90A4AE;\\n}\\n\\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after {\\n border-left-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\\n border-left-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.apexcharts-yaxistooltip-right:after {\\n border-right-color: #ECEFF1;\\n}\\n\\n.apexcharts-yaxistooltip-right:before {\\n border-right-color: #90A4AE;\\n}\\n\\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after {\\n border-right-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\\n border-right-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.apexcharts-yaxistooltip.apexcharts-active {\\n opacity: 1;\\n}\\n\\n.apexcharts-yaxistooltip-hidden {\\n display: none;\\n}\\n\\n.apexcharts-xcrosshairs,\\n.apexcharts-ycrosshairs {\\n pointer-events: none;\\n opacity: 0;\\n transition: 0.15s ease all;\\n}\\n\\n.apexcharts-xcrosshairs.apexcharts-active,\\n.apexcharts-ycrosshairs.apexcharts-active {\\n opacity: 1;\\n transition: 0.15s ease all;\\n}\\n\\n.apexcharts-ycrosshairs-hidden {\\n opacity: 0;\\n}\\n\\n.apexcharts-selection-rect {\\n cursor: move;\\n}\\n\\n.svg_select_boundingRect, .svg_select_points_rot {\\n pointer-events: none;\\n opacity: 0;\\n visibility: hidden;\\n}\\n.apexcharts-selection-rect + g .svg_select_boundingRect,\\n.apexcharts-selection-rect + g .svg_select_points_rot {\\n opacity: 0;\\n visibility: hidden;\\n}\\n\\n.apexcharts-selection-rect + g .svg_select_points_l,\\n.apexcharts-selection-rect + g .svg_select_points_r {\\n cursor: ew-resize;\\n opacity: 1;\\n visibility: visible;\\n}\\n\\n.svg_select_points {\\n fill: #efefef;\\n stroke: #333;\\n rx: 2;\\n}\\n\\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\\n cursor: crosshair\\n}\\n\\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\\n cursor: move\\n}\\n\\n.apexcharts-zoom-icon,\\n.apexcharts-zoomin-icon,\\n.apexcharts-zoomout-icon,\\n.apexcharts-reset-icon,\\n.apexcharts-pan-icon,\\n.apexcharts-selection-icon,\\n.apexcharts-menu-icon,\\n.apexcharts-toolbar-custom-icon {\\n cursor: pointer;\\n width: 20px;\\n height: 20px;\\n line-height: 24px;\\n color: #6E8192;\\n text-align: center;\\n}\\n\\n.apexcharts-zoom-icon svg,\\n.apexcharts-zoomin-icon svg,\\n.apexcharts-zoomout-icon svg,\\n.apexcharts-reset-icon svg,\\n.apexcharts-menu-icon svg {\\n fill: #6E8192;\\n}\\n\\n.apexcharts-selection-icon svg {\\n fill: #444;\\n transform: scale(0.76)\\n}\\n\\n.apexcharts-theme-dark .apexcharts-zoom-icon svg,\\n.apexcharts-theme-dark .apexcharts-zoomin-icon svg,\\n.apexcharts-theme-dark .apexcharts-zoomout-icon svg,\\n.apexcharts-theme-dark .apexcharts-reset-icon svg,\\n.apexcharts-theme-dark .apexcharts-pan-icon svg,\\n.apexcharts-theme-dark .apexcharts-selection-icon svg,\\n.apexcharts-theme-dark .apexcharts-menu-icon svg,\\n.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg {\\n fill: #f3f4f5;\\n}\\n\\n.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg,\\n.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,\\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg {\\n fill: #008FFB;\\n}\\n\\n.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,\\n.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,\\n.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,\\n.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg,\\n.apexcharts-theme-light .apexcharts-reset-icon:hover svg,\\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg {\\n fill: #333;\\n}\\n\\n.apexcharts-selection-icon,\\n.apexcharts-menu-icon {\\n position: relative;\\n}\\n\\n.apexcharts-reset-icon {\\n margin-left: 5px;\\n}\\n\\n.apexcharts-zoom-icon,\\n.apexcharts-reset-icon,\\n.apexcharts-menu-icon {\\n transform: scale(0.85);\\n}\\n\\n.apexcharts-zoomin-icon,\\n.apexcharts-zoomout-icon {\\n transform: scale(0.7)\\n}\\n\\n.apexcharts-zoomout-icon {\\n margin-right: 3px;\\n}\\n\\n.apexcharts-pan-icon {\\n transform: scale(0.62);\\n position: relative;\\n left: 1px;\\n top: 0px;\\n}\\n\\n.apexcharts-pan-icon svg {\\n fill: #fff;\\n stroke: #6E8192;\\n stroke-width: 2;\\n}\\n\\n.apexcharts-pan-icon.apexcharts-selected svg {\\n stroke: #008FFB;\\n}\\n\\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\\n stroke: #333;\\n}\\n\\n.apexcharts-toolbar {\\n position: absolute;\\n z-index: 11;\\n max-width: 176px;\\n text-align: right;\\n border-radius: 3px;\\n padding: 0px 6px 2px 6px;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n}\\n\\n.apexcharts-menu {\\n background: #fff;\\n position: absolute;\\n top: 100%;\\n border: 1px solid #ddd;\\n border-radius: 3px;\\n padding: 3px;\\n right: 10px;\\n opacity: 0;\\n min-width: 110px;\\n transition: 0.15s ease all;\\n pointer-events: none;\\n}\\n\\n.apexcharts-menu.apexcharts-menu-open {\\n opacity: 1;\\n pointer-events: all;\\n transition: 0.15s ease all;\\n}\\n\\n.apexcharts-menu-item {\\n padding: 6px 7px;\\n font-size: 12px;\\n cursor: pointer;\\n}\\n\\n.apexcharts-theme-light .apexcharts-menu-item:hover {\\n background: #eee;\\n}\\n\\n.apexcharts-theme-dark .apexcharts-menu {\\n background: rgba(0, 0, 0, 0.7);\\n color: #fff;\\n}\\n\\n@media screen and (min-width: 768px) {\\n .apexcharts-canvas:hover .apexcharts-toolbar {\\n opacity: 1;\\n }\\n}\\n\\n.apexcharts-datalabel.apexcharts-element-hidden {\\n opacity: 0;\\n}\\n\\n.apexcharts-pie-label,\\n.apexcharts-datalabels,\\n.apexcharts-datalabel,\\n.apexcharts-datalabel-label,\\n.apexcharts-datalabel-value {\\n cursor: default;\\n pointer-events: none;\\n}\\n\\n.apexcharts-pie-label-delay {\\n opacity: 0;\\n animation-name: opaque;\\n animation-duration: 0.3s;\\n animation-fill-mode: forwards;\\n animation-timing-function: ease;\\n}\\n\\n.apexcharts-canvas .apexcharts-element-hidden {\\n opacity: 0;\\n}\\n\\n.apexcharts-hide .apexcharts-series-points {\\n opacity: 0;\\n}\\n\\n.apexcharts-gridline,\\n.apexcharts-annotation-rect,\\n.apexcharts-tooltip .apexcharts-marker,\\n.apexcharts-area-series .apexcharts-area,\\n.apexcharts-line,\\n.apexcharts-zoom-rect,\\n.apexcharts-toolbar svg,\\n.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\\n.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\\n.apexcharts-radar-series path,\\n.apexcharts-radar-series polygon {\\n pointer-events: none;\\n}\\n\\n\\n/* markers */\\n\\n.apexcharts-marker {\\n transition: 0.15s ease all;\\n}\\n\\n@keyframes opaque {\\n 0% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n\\n\\n/* Resize generated styles */\\n\\n@keyframes resizeanim {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 0;\\n }\\n}\\n\\n.resize-triggers {\\n animation: 1ms resizeanim;\\n visibility: hidden;\\n opacity: 0;\\n}\\n\\n.resize-triggers,\\n.resize-triggers>div,\\n.contract-trigger:before {\\n content: \" \";\\n display: block;\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n overflow: hidden;\\n}\\n\\n.resize-triggers>div {\\n background: #eee;\\n overflow: auto;\\n}\\n\\n.contract-trigger:before {\\n width: 200%;\\n height: 200%;\\n}'),function(){function t(t){var e=t.__resizeTriggers__,i=e.firstElementChild,a=e.lastElementChild,s=i?i.firstElementChild:null;a&&(a.scrollLeft=a.scrollWidth,a.scrollTop=a.scrollHeight),s&&(s.style.width=i.offsetWidth+1+\"px\",s.style.height=i.offsetHeight+1+\"px\"),i&&(i.scrollLeft=i.scrollWidth,i.scrollTop=i.scrollHeight)}function e(e){var i=this;t(this),this.__resizeRAF__&&r(this.__resizeRAF__),this.__resizeRAF__=s((function(){(function(t){return t.offsetWidth!=t.__resizeLast__.width||t.offsetHeight!=t.__resizeLast__.height})(i)&&(i.__resizeLast__.width=i.offsetWidth,i.__resizeLast__.height=i.offsetHeight,i.__resizeListeners__.forEach((function(t){t.call(e)})))}))}var i,a,s=(i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(t){return window.setTimeout(t,20)},function(t){return i(t)}),r=(a=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.clearTimeout,function(t){return a(t)}),o=!1,n=\"animationstart\",l=\"Webkit Moz O ms\".split(\" \"),h=\"webkitAnimationStart animationstart oAnimationStart MSAnimationStart\".split(\" \"),c=document.createElement(\"fakeelement\");if(void 0!==c.style.animationName&&(o=!0),!1===o)for(var d=0;d
',i.appendChild(i.__resizeTriggers__),t(i),i.addEventListener(\"scroll\",e,!0),n&&i.__resizeTriggers__.addEventListener(n,(function(e){\"resizeanim\"==e.animationName&&t(i)}))),i.__resizeListeners__.push(a)},window.removeResizeListener=function(t,i){t&&(t.__resizeListeners__.splice(t.__resizeListeners__.indexOf(i),1),t.__resizeListeners__.length||(t.removeEventListener(\"scroll\",e),t.__resizeTriggers__.parentNode&&(t.__resizeTriggers__=!t.removeChild(t.__resizeTriggers__))))}}(),void 0===window.Apex&&(window.Apex={});var Ft=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:\"initModules\",value:function(){this.ctx.publicMethods=[\"updateOptions\",\"updateSeries\",\"appendData\",\"appendSeries\",\"toggleSeries\",\"showSeries\",\"hideSeries\",\"setLocale\",\"resetSeries\",\"zoomX\",\"toggleDataPointSelection\",\"dataURI\",\"addXaxisAnnotation\",\"addYaxisAnnotation\",\"addPointAnnotation\",\"clearAnnotations\",\"removeAnnotation\",\"paper\",\"destroy\"],this.ctx.eventList=[\"click\",\"mousedown\",\"mousemove\",\"mouseleave\",\"touchstart\",\"touchmove\",\"touchleave\",\"mouseup\",\"touchend\"],this.ctx.animations=new p(this.ctx),this.ctx.axes=new J(this.ctx),this.ctx.core=new Et(this.ctx.el,this.ctx),this.ctx.config=new H({}),this.ctx.data=new O(this.ctx),this.ctx.grid=new _(this.ctx),this.ctx.graphics=new b(this.ctx),this.ctx.coreUtils=new y(this.ctx),this.ctx.crosshairs=new Q(this.ctx),this.ctx.events=new Z(this.ctx),this.ctx.exports=new V(this.ctx),this.ctx.localization=new $(this.ctx),this.ctx.options=new S,this.ctx.responsive=new K(this.ctx),this.ctx.series=new I(this.ctx),this.ctx.theme=new tt(this.ctx),this.ctx.formatters=new W(this.ctx),this.ctx.titleSubtitle=new et(this.ctx),this.ctx.legend=new lt(this.ctx),this.ctx.toolbar=new ht(this.ctx),this.ctx.dimensions=new ot(this.ctx),this.ctx.updateHelpers=new Yt(this.ctx),this.ctx.zoomPanSelection=new ct(this.ctx),this.ctx.w.globals.tooltip=new bt(this.ctx)}}]),t}(),Rt=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:\"clear\",value:function(t){var e=t.isUpdating;this.ctx.zoomPanSelection&&this.ctx.zoomPanSelection.destroy(),this.ctx.toolbar&&this.ctx.toolbar.destroy(),this.ctx.animations=null,this.ctx.axes=null,this.ctx.annotations=null,this.ctx.core=null,this.ctx.data=null,this.ctx.grid=null,this.ctx.series=null,this.ctx.responsive=null,this.ctx.theme=null,this.ctx.formatters=null,this.ctx.titleSubtitle=null,this.ctx.legend=null,this.ctx.dimensions=null,this.ctx.options=null,this.ctx.crosshairs=null,this.ctx.zoomPanSelection=null,this.ctx.updateHelpers=null,this.ctx.toolbar=null,this.ctx.localization=null,this.ctx.w.globals.tooltip=null,this.clearDomElements({isUpdating:e})}},{key:\"killSVG\",value:function(t){t.each((function(t,e){this.removeClass(\"*\"),this.off(),this.stop()}),!0),t.ungroup(),t.clear()}},{key:\"clearDomElements\",value:function(t){var e=this,i=t.isUpdating,a=this.w.globals.dom.Paper.node;a.parentNode&&a.parentNode.parentNode&&!i&&(a.parentNode.parentNode.style.minHeight=\"unset\");var s=this.w.globals.dom.baseEl;s&&this.ctx.eventList.forEach((function(t){s.removeEventListener(t,e.ctx.events.documentEvent)}));var r=this.w.globals.dom;if(null!==this.ctx.el)for(;this.ctx.el.firstChild;)this.ctx.el.removeChild(this.ctx.el.firstChild);this.killSVG(r.Paper),r.Paper.remove(),r.elWrap=null,r.elGraphical=null,r.elAnnotations=null,r.elLegendWrap=null,r.baseEl=null,r.elGridRect=null,r.elGridRectMask=null,r.elGridRectMarkerMask=null,r.elForecastMask=null,r.elNonForecastMask=null,r.elDefs=null}}]),t}();return function(){function t(i,a){e(this,t),this.opts=a,this.ctx=this,this.w=new N(a).init(),this.el=i,this.w.globals.cuid=f.randomId(),this.w.globals.chartID=this.w.config.chart.id?f.escapeString(this.w.config.chart.id):this.w.globals.cuid,new Ft(this).initModules(),this.create=f.bind(this.create,this),this.windowResizeHandler=this._windowResizeHandler.bind(this),this.parentResizeHandler=this._parentResizeCallback.bind(this)}return a(t,[{key:\"render\",value:function(){var t=this;return new Promise((function(e,i){if(null!==t.el){void 0===Apex._chartInstances&&(Apex._chartInstances=[]),t.w.config.chart.id&&Apex._chartInstances.push({id:t.w.globals.chartID,group:t.w.config.chart.group,chart:t}),t.setLocale(t.w.config.chart.defaultLocale);var a=t.w.config.chart.events.beforeMount;\"function\"==typeof a&&a(t,t.w),t.events.fireEvent(\"beforeMount\",[t,t.w]),window.addEventListener(\"resize\",t.windowResizeHandler),window.addResizeListener(t.el.parentNode,t.parentResizeHandler);var s=t.create(t.w.config.series,{});if(!s)return e(t);t.mount(s).then((function(){\"function\"==typeof t.w.config.chart.events.mounted&&t.w.config.chart.events.mounted(t,t.w),t.events.fireEvent(\"mounted\",[t,t.w]),e(s)})).catch((function(t){i(t)}))}else i(new Error(\"Element not found\"))}))}},{key:\"create\",value:function(t,e){var i=this.w;new Ft(this).initModules();var a=this.w.globals;(a.noData=!1,a.animationEnded=!1,this.responsive.checkResponsiveConfig(e),i.config.xaxis.convertedCatToNumeric)&&new R(i.config).convertCatToNumericXaxis(i.config,this.ctx);if(null===this.el)return a.animationEnded=!0,null;if(this.core.setupElements(),\"treemap\"===i.config.chart.type&&(i.config.grid.show=!1,i.config.yaxis[0].show=!1),0===a.svgWidth)return a.animationEnded=!0,null;var s=y.checkComboSeries(t);a.comboCharts=s.comboCharts,a.comboBarCount=s.comboBarCount;var r=t.every((function(t){return t.data&&0===t.data.length}));(0===t.length||r)&&this.series.handleNoData(),this.events.setupEventHandlers(),this.data.parseData(t),this.theme.init(),new P(this).setGlobalMarkerSize(),this.formatters.setLabelFormatters(),this.titleSubtitle.draw(),a.noData&&a.collapsedSeries.length!==a.series.length&&!i.config.legend.showForSingleSeries||this.legend.init(),this.series.hasAllSeriesEqualX(),a.axisCharts&&(this.core.coreCalculations(),\"category\"!==i.config.xaxis.type&&this.formatters.setLabelFormatters(),this.ctx.toolbar.minX=i.globals.minX,this.ctx.toolbar.maxX=i.globals.maxX),this.formatters.heatmapLabelFormatters(),this.dimensions.plotCoords();var o=this.core.xySettings();this.grid.createGridMask();var n=this.core.plotChartType(t,o),l=new M(this);l.bringForward(),i.config.dataLabels.background.enabled&&l.dataLabelsBackground(),this.core.shiftGraphPosition();var h={plot:{left:i.globals.translateX,top:i.globals.translateY,width:i.globals.gridWidth,height:i.globals.gridHeight}};return{elGraph:n,xyRatios:o,elInner:i.globals.dom.elGraphical,dimensions:h}}},{key:\"mount\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=this,a=i.w;return new Promise((function(s,r){if(null===i.el)return r(new Error(\"Not enough data to display or target element not found\"));(null===e||a.globals.allSeriesCollapsed)&&i.series.handleNoData(),\"treemap\"!==a.config.chart.type&&i.axes.drawAxis(a.config.chart.type,e.xyRatios),i.grid=new _(i);var o=i.grid.drawGrid();i.annotations=new C(i),i.annotations.drawImageAnnos(),i.annotations.drawTextAnnos(),\"back\"===a.config.grid.position&&o&&a.globals.dom.elGraphical.add(o.el);var n=new G(t.ctx),l=new q(t.ctx);if(null!==o&&(n.xAxisLabelCorrections(o.xAxisTickWidth),l.setYAxisTextAlignments(),a.config.yaxis.map((function(t,e){-1===a.globals.ignoreYAxisIndexes.indexOf(e)&&l.yAxisTitleRotate(e,t.opposite)}))),\"back\"===a.config.annotations.position&&(a.globals.dom.Paper.add(a.globals.dom.elAnnotations),i.annotations.drawAxesAnnotations()),Array.isArray(e.elGraph))for(var h=0;h0&&a.globals.memory.methodsToExec.forEach((function(t){t.method(t.params,!1,t.context)})),a.globals.axisCharts||a.globals.noData||i.core.resizeNonAxisCharts(),s(i)}))}},{key:\"destroy\",value:function(){window.removeEventListener(\"resize\",this.windowResizeHandler),window.removeResizeListener(this.el.parentNode,this.parentResizeHandler);var t=this.w.config.chart.id;t&&Apex._chartInstances.forEach((function(e,i){e.id===f.escapeString(t)&&Apex._chartInstances.splice(i,1)})),new Rt(this.ctx).clear({isUpdating:!1})}},{key:\"updateOptions\",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=this.w;return o.globals.selection=void 0,t.series&&(this.series.resetSeries(!1,!0,!1),t.series.length&&t.series[0].data&&(t.series=t.series.map((function(t,i){return e.updateHelpers._extendSeries(t,i)}))),this.updateHelpers.revertDefaultAxisMinMax()),t.xaxis&&(t=this.updateHelpers.forceXAxisUpdate(t)),t.yaxis&&(t=this.updateHelpers.forceYAxisUpdate(t)),o.globals.collapsedSeriesIndices.length>0&&this.series.clearPreviousPaths(),t.theme&&(t=this.theme.updateThemeOptions(t)),this.updateHelpers._updateOptions(t,i,a,s,r)}},{key:\"updateSeries\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(t,e,i)}},{key:\"appendSeries\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w.config.series.slice();return a.push(t),this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(a,e,i)}},{key:\"appendData\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.series.resetSeries(t,e)}},{key:\"addEventListener\",value:function(t,e){this.events.addEventListener(t,e)}},{key:\"removeEventListener\",value:function(t,e){this.events.removeEventListener(t,e)}},{key:\"addXaxisAnnotation\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(t,e,a)}},{key:\"addYaxisAnnotation\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(t,e,a)}},{key:\"addPointAnnotation\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(t,e,a)}},{key:\"clearAnnotations\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=this;t&&(e=t),e.annotations.clearAnnotations(e)}},{key:\"removeAnnotation\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this;e&&(i=e),i.annotations.removeAnnotation(i,t)}},{key:\"getChartArea\",value:function(){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-inner\")}},{key:\"getSeriesTotalXRange\",value:function(t,e){return this.coreUtils.getSeriesTotalsXRange(t,e)}},{key:\"getHighestValueInSeries\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new U(this.ctx);return e.getMinYMaxY(t).highestY}},{key:\"getLowestValueInSeries\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new U(this.ctx);return e.getMinYMaxY(t).lowestY}},{key:\"getSeriesTotal\",value:function(){return this.w.globals.seriesTotals}},{key:\"toggleDataPointSelection\",value:function(t,e){return this.updateHelpers.toggleDataPointSelection(t,e)}},{key:\"zoomX\",value:function(t,e){this.ctx.toolbar.zoomUpdateOptions(t,e)}},{key:\"setLocale\",value:function(t){this.localization.setCurrentLocaleValues(t)}},{key:\"dataURI\",value:function(t){return new V(this.ctx).dataURI(t)}},{key:\"paper\",value:function(){return this.w.globals.dom.Paper}},{key:\"_parentResizeCallback\",value:function(){this.w.globals.animationEnded&&this.w.config.chart.redrawOnParentResize&&this._windowResize()}},{key:\"_windowResize\",value:function(){var t=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout((function(){t.w.globals.resized=!0,t.w.globals.dataChanged=!1,t.ctx.update()}),150)}},{key:\"_windowResizeHandler\",value:function(){var t=this.w.config.chart.redrawOnWindowResize;\"function\"==typeof t&&(t=t()),t&&this._windowResize()}}],[{key:\"getChartByID\",value:function(t){var e=f.escapeString(t),i=Apex._chartInstances.filter((function(t){return t.id===e}))[0];return i&&i.chart}},{key:\"initOnLoad\",value:function(){for(var e=document.querySelectorAll(\"[data-apexcharts]\"),i=0;i2?s-2:0),o=2;o-1},get:function(n){return t[e.indexOf(n)]},set:function(n,o){-1===e.indexOf(n)&&(e.push(n),t.push(o))},delete:function(n){var o=e.indexOf(n);o>-1&&(e.splice(o,1),t.splice(o,1))}}),o=function(e){return new Event(e,{bubbles:!0})};try{new Event(\"test\")}catch(e){o=function(e){var t=document.createEvent(\"Event\");return t.initEvent(e,!0,!1),t}}function r(e){var t=n.get(e);t&&t.destroy()}function i(e){var t=n.get(e);t&&t.update()}var l=null;return\"undefined\"==typeof window||\"function\"!=typeof window.getComputedStyle?((l=function(e){return e}).destroy=function(e){return e},l.update=function(e){return e}):((l=function(e,t){return e&&Array.prototype.forEach.call(e.length?e:[e],function(e){return function(e){if(e&&e.nodeName&&\"TEXTAREA\"===e.nodeName&&!n.has(e)){var t,r=null,i=null,l=null,d=function(){e.clientWidth!==i&&c()},u=function(t){window.removeEventListener(\"resize\",d,!1),e.removeEventListener(\"input\",c,!1),e.removeEventListener(\"keyup\",c,!1),e.removeEventListener(\"autosize:destroy\",u,!1),e.removeEventListener(\"autosize:update\",c,!1),Object.keys(t).forEach(function(n){e.style[n]=t[n]}),n.delete(e)}.bind(e,{height:e.style.height,resize:e.style.resize,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener(\"autosize:destroy\",u,!1),\"onpropertychange\"in e&&\"oninput\"in e&&e.addEventListener(\"keyup\",c,!1),window.addEventListener(\"resize\",d,!1),e.addEventListener(\"input\",c,!1),e.addEventListener(\"autosize:update\",c,!1),e.style.overflowX=\"hidden\",e.style.wordWrap=\"break-word\",n.set(e,{destroy:u,update:c}),\"vertical\"===(t=window.getComputedStyle(e,null)).resize?e.style.resize=\"none\":\"both\"===t.resize&&(e.style.resize=\"horizontal\"),r=\"content-box\"===t.boxSizing?-(parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)):parseFloat(t.borderTopWidth)+parseFloat(t.borderBottomWidth),isNaN(r)&&(r=0),c()}function a(t){var n=e.style.width;e.style.width=\"0px\",e.style.width=n,e.style.overflowY=t}function s(){if(0!==e.scrollHeight){var t=function(e){for(var t=[];e&&e.parentNode&&e.parentNode instanceof Element;)e.parentNode.scrollTop&&t.push({node:e.parentNode,scrollTop:e.parentNode.scrollTop}),e=e.parentNode;return t}(e),n=document.documentElement&&document.documentElement.scrollTop;e.style.height=\"\",e.style.height=e.scrollHeight+r+\"px\",i=e.clientWidth,t.forEach(function(e){e.node.scrollTop=e.scrollTop}),n&&(document.documentElement.scrollTop=n)}}function c(){s();var t=Math.round(parseFloat(e.style.height)),n=window.getComputedStyle(e,null),r=\"content-box\"===n.boxSizing?Math.round(parseFloat(n.height)):e.offsetHeight;if(r { eval("module.exports = __webpack_require__(/*! ./lib/axios */ \"./node_modules/axios/lib/axios.js\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsNEZBQXVDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2luZGV4LmpzP2JjM2EiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2xpYi9heGlvcycpOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/index.js\n"); /***/ }), /***/ "./node_modules/axios/lib/adapters/xhr.js": /*!************************************************!*\ !*** ./node_modules/axios/lib/adapters/xhr.js ***! \************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\nvar settle = __webpack_require__(/*! ./../core/settle */ \"./node_modules/axios/lib/core/settle.js\");\nvar cookies = __webpack_require__(/*! ./../helpers/cookies */ \"./node_modules/axios/lib/helpers/cookies.js\");\nvar buildURL = __webpack_require__(/*! ./../helpers/buildURL */ \"./node_modules/axios/lib/helpers/buildURL.js\");\nvar buildFullPath = __webpack_require__(/*! ../core/buildFullPath */ \"./node_modules/axios/lib/core/buildFullPath.js\");\nvar parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ \"./node_modules/axios/lib/helpers/parseHeaders.js\");\nvar isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ \"./node_modules/axios/lib/helpers/isURLSameOrigin.js\");\nvar createError = __webpack_require__(/*! ../core/createError */ \"./node_modules/axios/lib/core/createError.js\");\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2FkYXB0ZXJzL3hoci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixZQUFZLG1CQUFPLENBQUMscURBQVk7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLGlFQUFrQjtBQUN2QyxjQUFjLG1CQUFPLENBQUMseUVBQXNCO0FBQzVDLGVBQWUsbUJBQU8sQ0FBQywyRUFBdUI7QUFDOUMsb0JBQW9CLG1CQUFPLENBQUMsNkVBQXVCO0FBQ25ELG1CQUFtQixtQkFBTyxDQUFDLG1GQUEyQjtBQUN0RCxzQkFBc0IsbUJBQU8sQ0FBQyx5RkFBOEI7QUFDNUQsa0JBQWtCLG1CQUFPLENBQUMseUVBQXFCOztBQUUvQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNkNBQTZDO0FBQzdDOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9hZGFwdGVycy94aHIuanM/YjUwZCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vLi4vdXRpbHMnKTtcbnZhciBzZXR0bGUgPSByZXF1aXJlKCcuLy4uL2NvcmUvc2V0dGxlJyk7XG52YXIgY29va2llcyA9IHJlcXVpcmUoJy4vLi4vaGVscGVycy9jb29raWVzJyk7XG52YXIgYnVpbGRVUkwgPSByZXF1aXJlKCcuLy4uL2hlbHBlcnMvYnVpbGRVUkwnKTtcbnZhciBidWlsZEZ1bGxQYXRoID0gcmVxdWlyZSgnLi4vY29yZS9idWlsZEZ1bGxQYXRoJyk7XG52YXIgcGFyc2VIZWFkZXJzID0gcmVxdWlyZSgnLi8uLi9oZWxwZXJzL3BhcnNlSGVhZGVycycpO1xudmFyIGlzVVJMU2FtZU9yaWdpbiA9IHJlcXVpcmUoJy4vLi4vaGVscGVycy9pc1VSTFNhbWVPcmlnaW4nKTtcbnZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJy4uL2NvcmUvY3JlYXRlRXJyb3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiB4aHJBZGFwdGVyKGNvbmZpZykge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gZGlzcGF0Y2hYaHJSZXF1ZXN0KHJlc29sdmUsIHJlamVjdCkge1xuICAgIHZhciByZXF1ZXN0RGF0YSA9IGNvbmZpZy5kYXRhO1xuICAgIHZhciByZXF1ZXN0SGVhZGVycyA9IGNvbmZpZy5oZWFkZXJzO1xuICAgIHZhciByZXNwb25zZVR5cGUgPSBjb25maWcucmVzcG9uc2VUeXBlO1xuXG4gICAgaWYgKHV0aWxzLmlzRm9ybURhdGEocmVxdWVzdERhdGEpKSB7XG4gICAgICBkZWxldGUgcmVxdWVzdEhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddOyAvLyBMZXQgdGhlIGJyb3dzZXIgc2V0IGl0XG4gICAgfVxuXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcblxuICAgIC8vIEhUVFAgYmFzaWMgYXV0aGVudGljYXRpb25cbiAgICBpZiAoY29uZmlnLmF1dGgpIHtcbiAgICAgIHZhciB1c2VybmFtZSA9IGNvbmZpZy5hdXRoLnVzZXJuYW1lIHx8ICcnO1xuICAgICAgdmFyIHBhc3N3b3JkID0gY29uZmlnLmF1dGgucGFzc3dvcmQgPyB1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoY29uZmlnLmF1dGgucGFzc3dvcmQpKSA6ICcnO1xuICAgICAgcmVxdWVzdEhlYWRlcnMuQXV0aG9yaXphdGlvbiA9ICdCYXNpYyAnICsgYnRvYSh1c2VybmFtZSArICc6JyArIHBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICB2YXIgZnVsbFBhdGggPSBidWlsZEZ1bGxQYXRoKGNvbmZpZy5iYXNlVVJMLCBjb25maWcudXJsKTtcbiAgICByZXF1ZXN0Lm9wZW4oY29uZmlnLm1ldGhvZC50b1VwcGVyQ2FzZSgpLCBidWlsZFVSTChmdWxsUGF0aCwgY29uZmlnLnBhcmFtcywgY29uZmlnLnBhcmFtc1NlcmlhbGl6ZXIpLCB0cnVlKTtcblxuICAgIC8vIFNldCB0aGUgcmVxdWVzdCB0aW1lb3V0IGluIE1TXG4gICAgcmVxdWVzdC50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQ7XG5cbiAgICBmdW5jdGlvbiBvbmxvYWRlbmQoKSB7XG4gICAgICBpZiAoIXJlcXVlc3QpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLy8gUHJlcGFyZSB0aGUgcmVzcG9uc2VcbiAgICAgIHZhciByZXNwb25zZUhlYWRlcnMgPSAnZ2V0QWxsUmVzcG9uc2VIZWFkZXJzJyBpbiByZXF1ZXN0ID8gcGFyc2VIZWFkZXJzKHJlcXVlc3QuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpIDogbnVsbDtcbiAgICAgIHZhciByZXNwb25zZURhdGEgPSAhcmVzcG9uc2VUeXBlIHx8IHJlc3BvbnNlVHlwZSA9PT0gJ3RleHQnIHx8ICByZXNwb25zZVR5cGUgPT09ICdqc29uJyA/XG4gICAgICAgIHJlcXVlc3QucmVzcG9uc2VUZXh0IDogcmVxdWVzdC5yZXNwb25zZTtcbiAgICAgIHZhciByZXNwb25zZSA9IHtcbiAgICAgICAgZGF0YTogcmVzcG9uc2VEYXRhLFxuICAgICAgICBzdGF0dXM6IHJlcXVlc3Quc3RhdHVzLFxuICAgICAgICBzdGF0dXNUZXh0OiByZXF1ZXN0LnN0YXR1c1RleHQsXG4gICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlSGVhZGVycyxcbiAgICAgICAgY29uZmlnOiBjb25maWcsXG4gICAgICAgIHJlcXVlc3Q6IHJlcXVlc3RcbiAgICAgIH07XG5cbiAgICAgIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHJlc3BvbnNlKTtcblxuICAgICAgLy8gQ2xlYW4gdXAgcmVxdWVzdFxuICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCdvbmxvYWRlbmQnIGluIHJlcXVlc3QpIHtcbiAgICAgIC8vIFVzZSBvbmxvYWRlbmQgaWYgYXZhaWxhYmxlXG4gICAgICByZXF1ZXN0Lm9ubG9hZGVuZCA9IG9ubG9hZGVuZDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTGlzdGVuIGZvciByZWFkeSBzdGF0ZSB0byBlbXVsYXRlIG9ubG9hZGVuZFxuICAgICAgcmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiBoYW5kbGVMb2FkKCkge1xuICAgICAgICBpZiAoIXJlcXVlc3QgfHwgcmVxdWVzdC5yZWFkeVN0YXRlICE9PSA0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIHJlcXVlc3QgZXJyb3JlZCBvdXQgYW5kIHdlIGRpZG4ndCBnZXQgYSByZXNwb25zZSwgdGhpcyB3aWxsIGJlXG4gICAgICAgIC8vIGhhbmRsZWQgYnkgb25lcnJvciBpbnN0ZWFkXG4gICAgICAgIC8vIFdpdGggb25lIGV4Y2VwdGlvbjogcmVxdWVzdCB0aGF0IHVzaW5nIGZpbGU6IHByb3RvY29sLCBtb3N0IGJyb3dzZXJzXG4gICAgICAgIC8vIHdpbGwgcmV0dXJuIHN0YXR1cyBhcyAwIGV2ZW4gdGhvdWdoIGl0J3MgYSBzdWNjZXNzZnVsIHJlcXVlc3RcbiAgICAgICAgaWYgKHJlcXVlc3Quc3RhdHVzID09PSAwICYmICEocmVxdWVzdC5yZXNwb25zZVVSTCAmJiByZXF1ZXN0LnJlc3BvbnNlVVJMLmluZGV4T2YoJ2ZpbGU6JykgPT09IDApKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHJlYWR5c3RhdGUgaGFuZGxlciBpcyBjYWxsaW5nIGJlZm9yZSBvbmVycm9yIG9yIG9udGltZW91dCBoYW5kbGVycyxcbiAgICAgICAgLy8gc28gd2Ugc2hvdWxkIGNhbGwgb25sb2FkZW5kIG9uIHRoZSBuZXh0ICd0aWNrJ1xuICAgICAgICBzZXRUaW1lb3V0KG9ubG9hZGVuZCk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBicm93c2VyIHJlcXVlc3QgY2FuY2VsbGF0aW9uIChhcyBvcHBvc2VkIHRvIGEgbWFudWFsIGNhbmNlbGxhdGlvbilcbiAgICByZXF1ZXN0Lm9uYWJvcnQgPSBmdW5jdGlvbiBoYW5kbGVBYm9ydCgpIHtcbiAgICAgIGlmICghcmVxdWVzdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJlamVjdChjcmVhdGVFcnJvcignUmVxdWVzdCBhYm9ydGVkJywgY29uZmlnLCAnRUNPTk5BQk9SVEVEJywgcmVxdWVzdCkpO1xuXG4gICAgICAvLyBDbGVhbiB1cCByZXF1ZXN0XG4gICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICB9O1xuXG4gICAgLy8gSGFuZGxlIGxvdyBsZXZlbCBuZXR3b3JrIGVycm9yc1xuICAgIHJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uIGhhbmRsZUVycm9yKCkge1xuICAgICAgLy8gUmVhbCBlcnJvcnMgYXJlIGhpZGRlbiBmcm9tIHVzIGJ5IHRoZSBicm93c2VyXG4gICAgICAvLyBvbmVycm9yIHNob3VsZCBvbmx5IGZpcmUgaWYgaXQncyBhIG5ldHdvcmsgZXJyb3JcbiAgICAgIHJlamVjdChjcmVhdGVFcnJvcignTmV0d29yayBFcnJvcicsIGNvbmZpZywgbnVsbCwgcmVxdWVzdCkpO1xuXG4gICAgICAvLyBDbGVhbiB1cCByZXF1ZXN0XG4gICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICB9O1xuXG4gICAgLy8gSGFuZGxlIHRpbWVvdXRcbiAgICByZXF1ZXN0Lm9udGltZW91dCA9IGZ1bmN0aW9uIGhhbmRsZVRpbWVvdXQoKSB7XG4gICAgICB2YXIgdGltZW91dEVycm9yTWVzc2FnZSA9ICd0aW1lb3V0IG9mICcgKyBjb25maWcudGltZW91dCArICdtcyBleGNlZWRlZCc7XG4gICAgICBpZiAoY29uZmlnLnRpbWVvdXRFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgdGltZW91dEVycm9yTWVzc2FnZSA9IGNvbmZpZy50aW1lb3V0RXJyb3JNZXNzYWdlO1xuICAgICAgfVxuICAgICAgcmVqZWN0KGNyZWF0ZUVycm9yKFxuICAgICAgICB0aW1lb3V0RXJyb3JNZXNzYWdlLFxuICAgICAgICBjb25maWcsXG4gICAgICAgIGNvbmZpZy50cmFuc2l0aW9uYWwgJiYgY29uZmlnLnRyYW5zaXRpb25hbC5jbGFyaWZ5VGltZW91dEVycm9yID8gJ0VUSU1FRE9VVCcgOiAnRUNPTk5BQk9SVEVEJyxcbiAgICAgICAgcmVxdWVzdCkpO1xuXG4gICAgICAvLyBDbGVhbiB1cCByZXF1ZXN0XG4gICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICB9O1xuXG4gICAgLy8gQWRkIHhzcmYgaGVhZGVyXG4gICAgLy8gVGhpcyBpcyBvbmx5IGRvbmUgaWYgcnVubmluZyBpbiBhIHN0YW5kYXJkIGJyb3dzZXIgZW52aXJvbm1lbnQuXG4gICAgLy8gU3BlY2lmaWNhbGx5IG5vdCBpZiB3ZSdyZSBpbiBhIHdlYiB3b3JrZXIsIG9yIHJlYWN0LW5hdGl2ZS5cbiAgICBpZiAodXRpbHMuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKSkge1xuICAgICAgLy8gQWRkIHhzcmYgaGVhZGVyXG4gICAgICB2YXIgeHNyZlZhbHVlID0gKGNvbmZpZy53aXRoQ3JlZGVudGlhbHMgfHwgaXNVUkxTYW1lT3JpZ2luKGZ1bGxQYXRoKSkgJiYgY29uZmlnLnhzcmZDb29raWVOYW1lID9cbiAgICAgICAgY29va2llcy5yZWFkKGNvbmZpZy54c3JmQ29va2llTmFtZSkgOlxuICAgICAgICB1bmRlZmluZWQ7XG5cbiAgICAgIGlmICh4c3JmVmFsdWUpIHtcbiAgICAgICAgcmVxdWVzdEhlYWRlcnNbY29uZmlnLnhzcmZIZWFkZXJOYW1lXSA9IHhzcmZWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZGQgaGVhZGVycyB0byB0aGUgcmVxdWVzdFxuICAgIGlmICgnc2V0UmVxdWVzdEhlYWRlcicgaW4gcmVxdWVzdCkge1xuICAgICAgdXRpbHMuZm9yRWFjaChyZXF1ZXN0SGVhZGVycywgZnVuY3Rpb24gc2V0UmVxdWVzdEhlYWRlcih2YWwsIGtleSkge1xuICAgICAgICBpZiAodHlwZW9mIHJlcXVlc3REYXRhID09PSAndW5kZWZpbmVkJyAmJiBrZXkudG9Mb3dlckNhc2UoKSA9PT0gJ2NvbnRlbnQtdHlwZScpIHtcbiAgICAgICAgICAvLyBSZW1vdmUgQ29udGVudC1UeXBlIGlmIGRhdGEgaXMgdW5kZWZpbmVkXG4gICAgICAgICAgZGVsZXRlIHJlcXVlc3RIZWFkZXJzW2tleV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gT3RoZXJ3aXNlIGFkZCBoZWFkZXIgdG8gdGhlIHJlcXVlc3RcbiAgICAgICAgICByZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoa2V5LCB2YWwpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBBZGQgd2l0aENyZWRlbnRpYWxzIHRvIHJlcXVlc3QgaWYgbmVlZGVkXG4gICAgaWYgKCF1dGlscy5pc1VuZGVmaW5lZChjb25maWcud2l0aENyZWRlbnRpYWxzKSkge1xuICAgICAgcmVxdWVzdC53aXRoQ3JlZGVudGlhbHMgPSAhIWNvbmZpZy53aXRoQ3JlZGVudGlhbHM7XG4gICAgfVxuXG4gICAgLy8gQWRkIHJlc3BvbnNlVHlwZSB0byByZXF1ZXN0IGlmIG5lZWRlZFxuICAgIGlmIChyZXNwb25zZVR5cGUgJiYgcmVzcG9uc2VUeXBlICE9PSAnanNvbicpIHtcbiAgICAgIHJlcXVlc3QucmVzcG9uc2VUeXBlID0gY29uZmlnLnJlc3BvbnNlVHlwZTtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgcHJvZ3Jlc3MgaWYgbmVlZGVkXG4gICAgaWYgKHR5cGVvZiBjb25maWcub25Eb3dubG9hZFByb2dyZXNzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoJ3Byb2dyZXNzJywgY29uZmlnLm9uRG93bmxvYWRQcm9ncmVzcyk7XG4gICAgfVxuXG4gICAgLy8gTm90IGFsbCBicm93c2VycyBzdXBwb3J0IHVwbG9hZCBldmVudHNcbiAgICBpZiAodHlwZW9mIGNvbmZpZy5vblVwbG9hZFByb2dyZXNzID09PSAnZnVuY3Rpb24nICYmIHJlcXVlc3QudXBsb2FkKSB7XG4gICAgICByZXF1ZXN0LnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCdwcm9ncmVzcycsIGNvbmZpZy5vblVwbG9hZFByb2dyZXNzKTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLmNhbmNlbFRva2VuKSB7XG4gICAgICAvLyBIYW5kbGUgY2FuY2VsbGF0aW9uXG4gICAgICBjb25maWcuY2FuY2VsVG9rZW4ucHJvbWlzZS50aGVuKGZ1bmN0aW9uIG9uQ2FuY2VsZWQoY2FuY2VsKSB7XG4gICAgICAgIGlmICghcmVxdWVzdCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcXVlc3QuYWJvcnQoKTtcbiAgICAgICAgcmVqZWN0KGNhbmNlbCk7XG4gICAgICAgIC8vIENsZWFuIHVwIHJlcXVlc3RcbiAgICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoIXJlcXVlc3REYXRhKSB7XG4gICAgICByZXF1ZXN0RGF0YSA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gU2VuZCB0aGUgcmVxdWVzdFxuICAgIHJlcXVlc3Quc2VuZChyZXF1ZXN0RGF0YSk7XG4gIH0pO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/adapters/xhr.js\n"); /***/ }), /***/ "./node_modules/axios/lib/axios.js": /*!*****************************************!*\ !*** ./node_modules/axios/lib/axios.js ***! \*****************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/axios/lib/utils.js\");\nvar bind = __webpack_require__(/*! ./helpers/bind */ \"./node_modules/axios/lib/helpers/bind.js\");\nvar Axios = __webpack_require__(/*! ./core/Axios */ \"./node_modules/axios/lib/core/Axios.js\");\nvar mergeConfig = __webpack_require__(/*! ./core/mergeConfig */ \"./node_modules/axios/lib/core/mergeConfig.js\");\nvar defaults = __webpack_require__(/*! ./defaults */ \"./node_modules/axios/lib/defaults.js\");\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = __webpack_require__(/*! ./cancel/Cancel */ \"./node_modules/axios/lib/cancel/Cancel.js\");\naxios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ \"./node_modules/axios/lib/cancel/CancelToken.js\");\naxios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ \"./node_modules/axios/lib/cancel/isCancel.js\");\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = __webpack_require__(/*! ./helpers/spread */ \"./node_modules/axios/lib/helpers/spread.js\");\n\n// Expose isAxiosError\naxios.isAxiosError = __webpack_require__(/*! ./helpers/isAxiosError */ \"./node_modules/axios/lib/helpers/isAxiosError.js\");\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports[\"default\"] = axios;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2F4aW9zLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFlBQVksbUJBQU8sQ0FBQyxrREFBUztBQUM3QixXQUFXLG1CQUFPLENBQUMsZ0VBQWdCO0FBQ25DLFlBQVksbUJBQU8sQ0FBQyw0REFBYztBQUNsQyxrQkFBa0IsbUJBQU8sQ0FBQyx3RUFBb0I7QUFDOUMsZUFBZSxtQkFBTyxDQUFDLHdEQUFZOztBQUVuQztBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxPQUFPO0FBQ25CO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGVBQWUsbUJBQU8sQ0FBQyxrRUFBaUI7QUFDeEMsb0JBQW9CLG1CQUFPLENBQUMsNEVBQXNCO0FBQ2xELGlCQUFpQixtQkFBTyxDQUFDLHNFQUFtQjs7QUFFNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1CQUFPLENBQUMsb0VBQWtCOztBQUV6QztBQUNBLHFCQUFxQixtQkFBTyxDQUFDLGdGQUF3Qjs7QUFFckQ7O0FBRUE7QUFDQSx5QkFBc0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2F4aW9zLmpzP2NlZTQiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzJyk7XG52YXIgYmluZCA9IHJlcXVpcmUoJy4vaGVscGVycy9iaW5kJyk7XG52YXIgQXhpb3MgPSByZXF1aXJlKCcuL2NvcmUvQXhpb3MnKTtcbnZhciBtZXJnZUNvbmZpZyA9IHJlcXVpcmUoJy4vY29yZS9tZXJnZUNvbmZpZycpO1xudmFyIGRlZmF1bHRzID0gcmVxdWlyZSgnLi9kZWZhdWx0cycpO1xuXG4vKipcbiAqIENyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBeGlvc1xuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBkZWZhdWx0Q29uZmlnIFRoZSBkZWZhdWx0IGNvbmZpZyBmb3IgdGhlIGluc3RhbmNlXG4gKiBAcmV0dXJuIHtBeGlvc30gQSBuZXcgaW5zdGFuY2Ugb2YgQXhpb3NcbiAqL1xuZnVuY3Rpb24gY3JlYXRlSW5zdGFuY2UoZGVmYXVsdENvbmZpZykge1xuICB2YXIgY29udGV4dCA9IG5ldyBBeGlvcyhkZWZhdWx0Q29uZmlnKTtcbiAgdmFyIGluc3RhbmNlID0gYmluZChBeGlvcy5wcm90b3R5cGUucmVxdWVzdCwgY29udGV4dCk7XG5cbiAgLy8gQ29weSBheGlvcy5wcm90b3R5cGUgdG8gaW5zdGFuY2VcbiAgdXRpbHMuZXh0ZW5kKGluc3RhbmNlLCBBeGlvcy5wcm90b3R5cGUsIGNvbnRleHQpO1xuXG4gIC8vIENvcHkgY29udGV4dCB0byBpbnN0YW5jZVxuICB1dGlscy5leHRlbmQoaW5zdGFuY2UsIGNvbnRleHQpO1xuXG4gIHJldHVybiBpbnN0YW5jZTtcbn1cblxuLy8gQ3JlYXRlIHRoZSBkZWZhdWx0IGluc3RhbmNlIHRvIGJlIGV4cG9ydGVkXG52YXIgYXhpb3MgPSBjcmVhdGVJbnN0YW5jZShkZWZhdWx0cyk7XG5cbi8vIEV4cG9zZSBBeGlvcyBjbGFzcyB0byBhbGxvdyBjbGFzcyBpbmhlcml0YW5jZVxuYXhpb3MuQXhpb3MgPSBBeGlvcztcblxuLy8gRmFjdG9yeSBmb3IgY3JlYXRpbmcgbmV3IGluc3RhbmNlc1xuYXhpb3MuY3JlYXRlID0gZnVuY3Rpb24gY3JlYXRlKGluc3RhbmNlQ29uZmlnKSB7XG4gIHJldHVybiBjcmVhdGVJbnN0YW5jZShtZXJnZUNvbmZpZyhheGlvcy5kZWZhdWx0cywgaW5zdGFuY2VDb25maWcpKTtcbn07XG5cbi8vIEV4cG9zZSBDYW5jZWwgJiBDYW5jZWxUb2tlblxuYXhpb3MuQ2FuY2VsID0gcmVxdWlyZSgnLi9jYW5jZWwvQ2FuY2VsJyk7XG5heGlvcy5DYW5jZWxUb2tlbiA9IHJlcXVpcmUoJy4vY2FuY2VsL0NhbmNlbFRva2VuJyk7XG5heGlvcy5pc0NhbmNlbCA9IHJlcXVpcmUoJy4vY2FuY2VsL2lzQ2FuY2VsJyk7XG5cbi8vIEV4cG9zZSBhbGwvc3ByZWFkXG5heGlvcy5hbGwgPSBmdW5jdGlvbiBhbGwocHJvbWlzZXMpIHtcbiAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKTtcbn07XG5heGlvcy5zcHJlYWQgPSByZXF1aXJlKCcuL2hlbHBlcnMvc3ByZWFkJyk7XG5cbi8vIEV4cG9zZSBpc0F4aW9zRXJyb3JcbmF4aW9zLmlzQXhpb3NFcnJvciA9IHJlcXVpcmUoJy4vaGVscGVycy9pc0F4aW9zRXJyb3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBheGlvcztcblxuLy8gQWxsb3cgdXNlIG9mIGRlZmF1bHQgaW1wb3J0IHN5bnRheCBpbiBUeXBlU2NyaXB0XG5tb2R1bGUuZXhwb3J0cy5kZWZhdWx0ID0gYXhpb3M7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/axios.js\n"); /***/ }), /***/ "./node_modules/axios/lib/cancel/Cancel.js": /*!*************************************************!*\ !*** ./node_modules/axios/lib/cancel/Cancel.js ***! \*************************************************/ /***/ ((module) => { "use strict"; eval("\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NhbmNlbC9DYW5jZWwuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jYW5jZWwvQ2FuY2VsLmpzPzdhNzciXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIEEgYENhbmNlbGAgaXMgYW4gb2JqZWN0IHRoYXQgaXMgdGhyb3duIHdoZW4gYW4gb3BlcmF0aW9uIGlzIGNhbmNlbGVkLlxuICpcbiAqIEBjbGFzc1xuICogQHBhcmFtIHtzdHJpbmc9fSBtZXNzYWdlIFRoZSBtZXNzYWdlLlxuICovXG5mdW5jdGlvbiBDYW5jZWwobWVzc2FnZSkge1xuICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xufVxuXG5DYW5jZWwucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiAnQ2FuY2VsJyArICh0aGlzLm1lc3NhZ2UgPyAnOiAnICsgdGhpcy5tZXNzYWdlIDogJycpO1xufTtcblxuQ2FuY2VsLnByb3RvdHlwZS5fX0NBTkNFTF9fID0gdHJ1ZTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYW5jZWw7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/cancel/Cancel.js\n"); /***/ }), /***/ "./node_modules/axios/lib/cancel/CancelToken.js": /*!******************************************************!*\ !*** ./node_modules/axios/lib/cancel/CancelToken.js ***! \******************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar Cancel = __webpack_require__(/*! ./Cancel */ \"./node_modules/axios/lib/cancel/Cancel.js\");\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NhbmNlbC9DYW5jZWxUb2tlbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixhQUFhLG1CQUFPLENBQUMsMkRBQVU7O0FBRS9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxVQUFVO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY2FuY2VsL0NhbmNlbFRva2VuLmpzPzhkZjQiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgQ2FuY2VsID0gcmVxdWlyZSgnLi9DYW5jZWwnKTtcblxuLyoqXG4gKiBBIGBDYW5jZWxUb2tlbmAgaXMgYW4gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVxdWVzdCBjYW5jZWxsYXRpb24gb2YgYW4gb3BlcmF0aW9uLlxuICpcbiAqIEBjbGFzc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gZXhlY3V0b3IgVGhlIGV4ZWN1dG9yIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBDYW5jZWxUb2tlbihleGVjdXRvcikge1xuICBpZiAodHlwZW9mIGV4ZWN1dG9yICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLicpO1xuICB9XG5cbiAgdmFyIHJlc29sdmVQcm9taXNlO1xuICB0aGlzLnByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiBwcm9taXNlRXhlY3V0b3IocmVzb2x2ZSkge1xuICAgIHJlc29sdmVQcm9taXNlID0gcmVzb2x2ZTtcbiAgfSk7XG5cbiAgdmFyIHRva2VuID0gdGhpcztcbiAgZXhlY3V0b3IoZnVuY3Rpb24gY2FuY2VsKG1lc3NhZ2UpIHtcbiAgICBpZiAodG9rZW4ucmVhc29uKSB7XG4gICAgICAvLyBDYW5jZWxsYXRpb24gaGFzIGFscmVhZHkgYmVlbiByZXF1ZXN0ZWRcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0b2tlbi5yZWFzb24gPSBuZXcgQ2FuY2VsKG1lc3NhZ2UpO1xuICAgIHJlc29sdmVQcm9taXNlKHRva2VuLnJlYXNvbik7XG4gIH0pO1xufVxuXG4vKipcbiAqIFRocm93cyBhIGBDYW5jZWxgIGlmIGNhbmNlbGxhdGlvbiBoYXMgYmVlbiByZXF1ZXN0ZWQuXG4gKi9cbkNhbmNlbFRva2VuLnByb3RvdHlwZS50aHJvd0lmUmVxdWVzdGVkID0gZnVuY3Rpb24gdGhyb3dJZlJlcXVlc3RlZCgpIHtcbiAgaWYgKHRoaXMucmVhc29uKSB7XG4gICAgdGhyb3cgdGhpcy5yZWFzb247XG4gIH1cbn07XG5cbi8qKlxuICogUmV0dXJucyBhbiBvYmplY3QgdGhhdCBjb250YWlucyBhIG5ldyBgQ2FuY2VsVG9rZW5gIGFuZCBhIGZ1bmN0aW9uIHRoYXQsIHdoZW4gY2FsbGVkLFxuICogY2FuY2VscyB0aGUgYENhbmNlbFRva2VuYC5cbiAqL1xuQ2FuY2VsVG9rZW4uc291cmNlID0gZnVuY3Rpb24gc291cmNlKCkge1xuICB2YXIgY2FuY2VsO1xuICB2YXIgdG9rZW4gPSBuZXcgQ2FuY2VsVG9rZW4oZnVuY3Rpb24gZXhlY3V0b3IoYykge1xuICAgIGNhbmNlbCA9IGM7XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHRva2VuOiB0b2tlbixcbiAgICBjYW5jZWw6IGNhbmNlbFxuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYW5jZWxUb2tlbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/cancel/CancelToken.js\n"); /***/ }), /***/ "./node_modules/axios/lib/cancel/isCancel.js": /*!***************************************************!*\ !*** ./node_modules/axios/lib/cancel/isCancel.js ***! \***************************************************/ /***/ ((module) => { "use strict"; eval("\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NhbmNlbC9pc0NhbmNlbC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NhbmNlbC9pc0NhbmNlbC5qcz8yZTY3Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc0NhbmNlbCh2YWx1ZSkge1xuICByZXR1cm4gISEodmFsdWUgJiYgdmFsdWUuX19DQU5DRUxfXyk7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/cancel/isCancel.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/Axios.js": /*!**********************************************!*\ !*** ./node_modules/axios/lib/core/Axios.js ***! \**********************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\nvar buildURL = __webpack_require__(/*! ../helpers/buildURL */ \"./node_modules/axios/lib/helpers/buildURL.js\");\nvar InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ \"./node_modules/axios/lib/core/InterceptorManager.js\");\nvar dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ \"./node_modules/axios/lib/core/dispatchRequest.js\");\nvar mergeConfig = __webpack_require__(/*! ./mergeConfig */ \"./node_modules/axios/lib/core/mergeConfig.js\");\nvar validator = __webpack_require__(/*! ../helpers/validator */ \"./node_modules/axios/lib/helpers/validator.js\");\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvQXhpb3MuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsWUFBWSxtQkFBTyxDQUFDLHFEQUFZO0FBQ2hDLGVBQWUsbUJBQU8sQ0FBQyx5RUFBcUI7QUFDNUMseUJBQXlCLG1CQUFPLENBQUMsaUZBQXNCO0FBQ3ZELHNCQUFzQixtQkFBTyxDQUFDLDJFQUFtQjtBQUNqRCxrQkFBa0IsbUJBQU8sQ0FBQyxtRUFBZTtBQUN6QyxnQkFBZ0IsbUJBQU8sQ0FBQywyRUFBc0I7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRDtBQUNoRDtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCLEtBQUs7QUFDTDtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdEO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLENBQUM7O0FBRUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvQXhpb3MuanM/MGEwNiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vLi4vdXRpbHMnKTtcbnZhciBidWlsZFVSTCA9IHJlcXVpcmUoJy4uL2hlbHBlcnMvYnVpbGRVUkwnKTtcbnZhciBJbnRlcmNlcHRvck1hbmFnZXIgPSByZXF1aXJlKCcuL0ludGVyY2VwdG9yTWFuYWdlcicpO1xudmFyIGRpc3BhdGNoUmVxdWVzdCA9IHJlcXVpcmUoJy4vZGlzcGF0Y2hSZXF1ZXN0Jyk7XG52YXIgbWVyZ2VDb25maWcgPSByZXF1aXJlKCcuL21lcmdlQ29uZmlnJyk7XG52YXIgdmFsaWRhdG9yID0gcmVxdWlyZSgnLi4vaGVscGVycy92YWxpZGF0b3InKTtcblxudmFyIHZhbGlkYXRvcnMgPSB2YWxpZGF0b3IudmFsaWRhdG9ycztcbi8qKlxuICogQ3JlYXRlIGEgbmV3IGluc3RhbmNlIG9mIEF4aW9zXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGluc3RhbmNlQ29uZmlnIFRoZSBkZWZhdWx0IGNvbmZpZyBmb3IgdGhlIGluc3RhbmNlXG4gKi9cbmZ1bmN0aW9uIEF4aW9zKGluc3RhbmNlQ29uZmlnKSB7XG4gIHRoaXMuZGVmYXVsdHMgPSBpbnN0YW5jZUNvbmZpZztcbiAgdGhpcy5pbnRlcmNlcHRvcnMgPSB7XG4gICAgcmVxdWVzdDogbmV3IEludGVyY2VwdG9yTWFuYWdlcigpLFxuICAgIHJlc3BvbnNlOiBuZXcgSW50ZXJjZXB0b3JNYW5hZ2VyKClcbiAgfTtcbn1cblxuLyoqXG4gKiBEaXNwYXRjaCBhIHJlcXVlc3RcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIFRoZSBjb25maWcgc3BlY2lmaWMgZm9yIHRoaXMgcmVxdWVzdCAobWVyZ2VkIHdpdGggdGhpcy5kZWZhdWx0cylcbiAqL1xuQXhpb3MucHJvdG90eXBlLnJlcXVlc3QgPSBmdW5jdGlvbiByZXF1ZXN0KGNvbmZpZykge1xuICAvKmVzbGludCBuby1wYXJhbS1yZWFzc2lnbjowKi9cbiAgLy8gQWxsb3cgZm9yIGF4aW9zKCdleGFtcGxlL3VybCdbLCBjb25maWddKSBhIGxhIGZldGNoIEFQSVxuICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25maWcgPSBhcmd1bWVudHNbMV0gfHwge307XG4gICAgY29uZmlnLnVybCA9IGFyZ3VtZW50c1swXTtcbiAgfSBlbHNlIHtcbiAgICBjb25maWcgPSBjb25maWcgfHwge307XG4gIH1cblxuICBjb25maWcgPSBtZXJnZUNvbmZpZyh0aGlzLmRlZmF1bHRzLCBjb25maWcpO1xuXG4gIC8vIFNldCBjb25maWcubWV0aG9kXG4gIGlmIChjb25maWcubWV0aG9kKSB7XG4gICAgY29uZmlnLm1ldGhvZCA9IGNvbmZpZy5tZXRob2QudG9Mb3dlckNhc2UoKTtcbiAgfSBlbHNlIGlmICh0aGlzLmRlZmF1bHRzLm1ldGhvZCkge1xuICAgIGNvbmZpZy5tZXRob2QgPSB0aGlzLmRlZmF1bHRzLm1ldGhvZC50b0xvd2VyQ2FzZSgpO1xuICB9IGVsc2Uge1xuICAgIGNvbmZpZy5tZXRob2QgPSAnZ2V0JztcbiAgfVxuXG4gIHZhciB0cmFuc2l0aW9uYWwgPSBjb25maWcudHJhbnNpdGlvbmFsO1xuXG4gIGlmICh0cmFuc2l0aW9uYWwgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhbGlkYXRvci5hc3NlcnRPcHRpb25zKHRyYW5zaXRpb25hbCwge1xuICAgICAgc2lsZW50SlNPTlBhcnNpbmc6IHZhbGlkYXRvcnMudHJhbnNpdGlvbmFsKHZhbGlkYXRvcnMuYm9vbGVhbiwgJzEuMC4wJyksXG4gICAgICBmb3JjZWRKU09OUGFyc2luZzogdmFsaWRhdG9ycy50cmFuc2l0aW9uYWwodmFsaWRhdG9ycy5ib29sZWFuLCAnMS4wLjAnKSxcbiAgICAgIGNsYXJpZnlUaW1lb3V0RXJyb3I6IHZhbGlkYXRvcnMudHJhbnNpdGlvbmFsKHZhbGlkYXRvcnMuYm9vbGVhbiwgJzEuMC4wJylcbiAgICB9LCBmYWxzZSk7XG4gIH1cblxuICAvLyBmaWx0ZXIgb3V0IHNraXBwZWQgaW50ZXJjZXB0b3JzXG4gIHZhciByZXF1ZXN0SW50ZXJjZXB0b3JDaGFpbiA9IFtdO1xuICB2YXIgc3luY2hyb25vdXNSZXF1ZXN0SW50ZXJjZXB0b3JzID0gdHJ1ZTtcbiAgdGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uIHVuc2hpZnRSZXF1ZXN0SW50ZXJjZXB0b3JzKGludGVyY2VwdG9yKSB7XG4gICAgaWYgKHR5cGVvZiBpbnRlcmNlcHRvci5ydW5XaGVuID09PSAnZnVuY3Rpb24nICYmIGludGVyY2VwdG9yLnJ1bldoZW4oY29uZmlnKSA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzeW5jaHJvbm91c1JlcXVlc3RJbnRlcmNlcHRvcnMgPSBzeW5jaHJvbm91c1JlcXVlc3RJbnRlcmNlcHRvcnMgJiYgaW50ZXJjZXB0b3Iuc3luY2hyb25vdXM7XG5cbiAgICByZXF1ZXN0SW50ZXJjZXB0b3JDaGFpbi51bnNoaWZ0KGludGVyY2VwdG9yLmZ1bGZpbGxlZCwgaW50ZXJjZXB0b3IucmVqZWN0ZWQpO1xuICB9KTtcblxuICB2YXIgcmVzcG9uc2VJbnRlcmNlcHRvckNoYWluID0gW107XG4gIHRoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24gcHVzaFJlc3BvbnNlSW50ZXJjZXB0b3JzKGludGVyY2VwdG9yKSB7XG4gICAgcmVzcG9uc2VJbnRlcmNlcHRvckNoYWluLnB1c2goaW50ZXJjZXB0b3IuZnVsZmlsbGVkLCBpbnRlcmNlcHRvci5yZWplY3RlZCk7XG4gIH0pO1xuXG4gIHZhciBwcm9taXNlO1xuXG4gIGlmICghc3luY2hyb25vdXNSZXF1ZXN0SW50ZXJjZXB0b3JzKSB7XG4gICAgdmFyIGNoYWluID0gW2Rpc3BhdGNoUmVxdWVzdCwgdW5kZWZpbmVkXTtcblxuICAgIEFycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGNoYWluLCByZXF1ZXN0SW50ZXJjZXB0b3JDaGFpbik7XG4gICAgY2hhaW4gPSBjaGFpbi5jb25jYXQocmVzcG9uc2VJbnRlcmNlcHRvckNoYWluKTtcblxuICAgIHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoY29uZmlnKTtcbiAgICB3aGlsZSAoY2hhaW4ubGVuZ3RoKSB7XG4gICAgICBwcm9taXNlID0gcHJvbWlzZS50aGVuKGNoYWluLnNoaWZ0KCksIGNoYWluLnNoaWZ0KCkpO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9taXNlO1xuICB9XG5cblxuICB2YXIgbmV3Q29uZmlnID0gY29uZmlnO1xuICB3aGlsZSAocmVxdWVzdEludGVyY2VwdG9yQ2hhaW4ubGVuZ3RoKSB7XG4gICAgdmFyIG9uRnVsZmlsbGVkID0gcmVxdWVzdEludGVyY2VwdG9yQ2hhaW4uc2hpZnQoKTtcbiAgICB2YXIgb25SZWplY3RlZCA9IHJlcXVlc3RJbnRlcmNlcHRvckNoYWluLnNoaWZ0KCk7XG4gICAgdHJ5IHtcbiAgICAgIG5ld0NvbmZpZyA9IG9uRnVsZmlsbGVkKG5ld0NvbmZpZyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIG9uUmVqZWN0ZWQoZXJyb3IpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgdHJ5IHtcbiAgICBwcm9taXNlID0gZGlzcGF0Y2hSZXF1ZXN0KG5ld0NvbmZpZyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgfVxuXG4gIHdoaWxlIChyZXNwb25zZUludGVyY2VwdG9yQ2hhaW4ubGVuZ3RoKSB7XG4gICAgcHJvbWlzZSA9IHByb21pc2UudGhlbihyZXNwb25zZUludGVyY2VwdG9yQ2hhaW4uc2hpZnQoKSwgcmVzcG9uc2VJbnRlcmNlcHRvckNoYWluLnNoaWZ0KCkpO1xuICB9XG5cbiAgcmV0dXJuIHByb21pc2U7XG59O1xuXG5BeGlvcy5wcm90b3R5cGUuZ2V0VXJpID0gZnVuY3Rpb24gZ2V0VXJpKGNvbmZpZykge1xuICBjb25maWcgPSBtZXJnZUNvbmZpZyh0aGlzLmRlZmF1bHRzLCBjb25maWcpO1xuICByZXR1cm4gYnVpbGRVUkwoY29uZmlnLnVybCwgY29uZmlnLnBhcmFtcywgY29uZmlnLnBhcmFtc1NlcmlhbGl6ZXIpLnJlcGxhY2UoL15cXD8vLCAnJyk7XG59O1xuXG4vLyBQcm92aWRlIGFsaWFzZXMgZm9yIHN1cHBvcnRlZCByZXF1ZXN0IG1ldGhvZHNcbnV0aWxzLmZvckVhY2goWydkZWxldGUnLCAnZ2V0JywgJ2hlYWQnLCAnb3B0aW9ucyddLCBmdW5jdGlvbiBmb3JFYWNoTWV0aG9kTm9EYXRhKG1ldGhvZCkge1xuICAvKmVzbGludCBmdW5jLW5hbWVzOjAqL1xuICBBeGlvcy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uKHVybCwgY29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdChtZXJnZUNvbmZpZyhjb25maWcgfHwge30sIHtcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBkYXRhOiAoY29uZmlnIHx8IHt9KS5kYXRhXG4gICAgfSkpO1xuICB9O1xufSk7XG5cbnV0aWxzLmZvckVhY2goWydwb3N0JywgJ3B1dCcsICdwYXRjaCddLCBmdW5jdGlvbiBmb3JFYWNoTWV0aG9kV2l0aERhdGEobWV0aG9kKSB7XG4gIC8qZXNsaW50IGZ1bmMtbmFtZXM6MCovXG4gIEF4aW9zLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24odXJsLCBkYXRhLCBjb25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KG1lcmdlQ29uZmlnKGNvbmZpZyB8fCB7fSwge1xuICAgICAgbWV0aG9kOiBtZXRob2QsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIGRhdGE6IGRhdGFcbiAgICB9KSk7XG4gIH07XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBeGlvcztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/Axios.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/InterceptorManager.js": /*!***********************************************************!*\ !*** ./node_modules/axios/lib/core/InterceptorManager.js ***! \***********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvSW50ZXJjZXB0b3JNYW5hZ2VyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFlBQVksbUJBQU8sQ0FBQyxxREFBWTs7QUFFaEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLFVBQVU7QUFDckI7QUFDQSxZQUFZLFFBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvSW50ZXJjZXB0b3JNYW5hZ2VyLmpzP2Y2YjQiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLy4uL3V0aWxzJyk7XG5cbmZ1bmN0aW9uIEludGVyY2VwdG9yTWFuYWdlcigpIHtcbiAgdGhpcy5oYW5kbGVycyA9IFtdO1xufVxuXG4vKipcbiAqIEFkZCBhIG5ldyBpbnRlcmNlcHRvciB0byB0aGUgc3RhY2tcbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdWxmaWxsZWQgVGhlIGZ1bmN0aW9uIHRvIGhhbmRsZSBgdGhlbmAgZm9yIGEgYFByb21pc2VgXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSByZWplY3RlZCBUaGUgZnVuY3Rpb24gdG8gaGFuZGxlIGByZWplY3RgIGZvciBhIGBQcm9taXNlYFxuICpcbiAqIEByZXR1cm4ge051bWJlcn0gQW4gSUQgdXNlZCB0byByZW1vdmUgaW50ZXJjZXB0b3IgbGF0ZXJcbiAqL1xuSW50ZXJjZXB0b3JNYW5hZ2VyLnByb3RvdHlwZS51c2UgPSBmdW5jdGlvbiB1c2UoZnVsZmlsbGVkLCByZWplY3RlZCwgb3B0aW9ucykge1xuICB0aGlzLmhhbmRsZXJzLnB1c2goe1xuICAgIGZ1bGZpbGxlZDogZnVsZmlsbGVkLFxuICAgIHJlamVjdGVkOiByZWplY3RlZCxcbiAgICBzeW5jaHJvbm91czogb3B0aW9ucyA/IG9wdGlvbnMuc3luY2hyb25vdXMgOiBmYWxzZSxcbiAgICBydW5XaGVuOiBvcHRpb25zID8gb3B0aW9ucy5ydW5XaGVuIDogbnVsbFxuICB9KTtcbiAgcmV0dXJuIHRoaXMuaGFuZGxlcnMubGVuZ3RoIC0gMTtcbn07XG5cbi8qKlxuICogUmVtb3ZlIGFuIGludGVyY2VwdG9yIGZyb20gdGhlIHN0YWNrXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IGlkIFRoZSBJRCB0aGF0IHdhcyByZXR1cm5lZCBieSBgdXNlYFxuICovXG5JbnRlcmNlcHRvck1hbmFnZXIucHJvdG90eXBlLmVqZWN0ID0gZnVuY3Rpb24gZWplY3QoaWQpIHtcbiAgaWYgKHRoaXMuaGFuZGxlcnNbaWRdKSB7XG4gICAgdGhpcy5oYW5kbGVyc1tpZF0gPSBudWxsO1xuICB9XG59O1xuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciBhbGwgdGhlIHJlZ2lzdGVyZWQgaW50ZXJjZXB0b3JzXG4gKlxuICogVGhpcyBtZXRob2QgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3Igc2tpcHBpbmcgb3ZlciBhbnlcbiAqIGludGVyY2VwdG9ycyB0aGF0IG1heSBoYXZlIGJlY29tZSBgbnVsbGAgY2FsbGluZyBgZWplY3RgLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBmdW5jdGlvbiB0byBjYWxsIGZvciBlYWNoIGludGVyY2VwdG9yXG4gKi9cbkludGVyY2VwdG9yTWFuYWdlci5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uIGZvckVhY2goZm4pIHtcbiAgdXRpbHMuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLCBmdW5jdGlvbiBmb3JFYWNoSGFuZGxlcihoKSB7XG4gICAgaWYgKGggIT09IG51bGwpIHtcbiAgICAgIGZuKGgpO1xuICAgIH1cbiAgfSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEludGVyY2VwdG9yTWFuYWdlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/InterceptorManager.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/buildFullPath.js": /*!******************************************************!*\ !*** ./node_modules/axios/lib/core/buildFullPath.js ***! \******************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar isAbsoluteURL = __webpack_require__(/*! ../helpers/isAbsoluteURL */ \"./node_modules/axios/lib/helpers/isAbsoluteURL.js\");\nvar combineURLs = __webpack_require__(/*! ../helpers/combineURLs */ \"./node_modules/axios/lib/helpers/combineURLs.js\");\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvYnVpbGRGdWxsUGF0aC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixvQkFBb0IsbUJBQU8sQ0FBQyxtRkFBMEI7QUFDdEQsa0JBQWtCLG1CQUFPLENBQUMsK0VBQXdCOztBQUVsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvYnVpbGRGdWxsUGF0aC5qcz84M2I5Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxudmFyIGlzQWJzb2x1dGVVUkwgPSByZXF1aXJlKCcuLi9oZWxwZXJzL2lzQWJzb2x1dGVVUkwnKTtcbnZhciBjb21iaW5lVVJMcyA9IHJlcXVpcmUoJy4uL2hlbHBlcnMvY29tYmluZVVSTHMnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IFVSTCBieSBjb21iaW5pbmcgdGhlIGJhc2VVUkwgd2l0aCB0aGUgcmVxdWVzdGVkVVJMLFxuICogb25seSB3aGVuIHRoZSByZXF1ZXN0ZWRVUkwgaXMgbm90IGFscmVhZHkgYW4gYWJzb2x1dGUgVVJMLlxuICogSWYgdGhlIHJlcXVlc3RVUkwgaXMgYWJzb2x1dGUsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgcmVxdWVzdGVkVVJMIHVudG91Y2hlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYmFzZVVSTCBUaGUgYmFzZSBVUkxcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXF1ZXN0ZWRVUkwgQWJzb2x1dGUgb3IgcmVsYXRpdmUgVVJMIHRvIGNvbWJpbmVcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjb21iaW5lZCBmdWxsIHBhdGhcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBidWlsZEZ1bGxQYXRoKGJhc2VVUkwsIHJlcXVlc3RlZFVSTCkge1xuICBpZiAoYmFzZVVSTCAmJiAhaXNBYnNvbHV0ZVVSTChyZXF1ZXN0ZWRVUkwpKSB7XG4gICAgcmV0dXJuIGNvbWJpbmVVUkxzKGJhc2VVUkwsIHJlcXVlc3RlZFVSTCk7XG4gIH1cbiAgcmV0dXJuIHJlcXVlc3RlZFVSTDtcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/buildFullPath.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/createError.js": /*!****************************************************!*\ !*** ./node_modules/axios/lib/core/createError.js ***! \****************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar enhanceError = __webpack_require__(/*! ./enhanceError */ \"./node_modules/axios/lib/core/enhanceError.js\");\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvY3JlYXRlRXJyb3IuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsbUJBQW1CLG1CQUFPLENBQUMscUVBQWdCOztBQUUzQztBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL2NyZWF0ZUVycm9yLmpzPzJkODMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZW5oYW5jZUVycm9yID0gcmVxdWlyZSgnLi9lbmhhbmNlRXJyb3InKTtcblxuLyoqXG4gKiBDcmVhdGUgYW4gRXJyb3Igd2l0aCB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UsIGNvbmZpZywgZXJyb3IgY29kZSwgcmVxdWVzdCBhbmQgcmVzcG9uc2UuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIFRoZSBjb25maWcuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2NvZGVdIFRoZSBlcnJvciBjb2RlIChmb3IgZXhhbXBsZSwgJ0VDT05OQUJPUlRFRCcpLlxuICogQHBhcmFtIHtPYmplY3R9IFtyZXF1ZXN0XSBUaGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbcmVzcG9uc2VdIFRoZSByZXNwb25zZS5cbiAqIEByZXR1cm5zIHtFcnJvcn0gVGhlIGNyZWF0ZWQgZXJyb3IuXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlRXJyb3IobWVzc2FnZSwgY29uZmlnLCBjb2RlLCByZXF1ZXN0LCByZXNwb25zZSkge1xuICB2YXIgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIHJldHVybiBlbmhhbmNlRXJyb3IoZXJyb3IsIGNvbmZpZywgY29kZSwgcmVxdWVzdCwgcmVzcG9uc2UpO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/createError.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/dispatchRequest.js": /*!********************************************************!*\ !*** ./node_modules/axios/lib/core/dispatchRequest.js ***! \********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\nvar transformData = __webpack_require__(/*! ./transformData */ \"./node_modules/axios/lib/core/transformData.js\");\nvar isCancel = __webpack_require__(/*! ../cancel/isCancel */ \"./node_modules/axios/lib/cancel/isCancel.js\");\nvar defaults = __webpack_require__(/*! ../defaults */ \"./node_modules/axios/lib/defaults.js\");\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvZGlzcGF0Y2hSZXF1ZXN0LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFlBQVksbUJBQU8sQ0FBQyxxREFBWTtBQUNoQyxvQkFBb0IsbUJBQU8sQ0FBQyx1RUFBaUI7QUFDN0MsZUFBZSxtQkFBTyxDQUFDLHVFQUFvQjtBQUMzQyxlQUFlLG1CQUFPLENBQUMseURBQWE7O0FBRXBDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLHVDQUF1QztBQUN2QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvZGlzcGF0Y2hSZXF1ZXN0LmpzPzUyNzAiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLy4uL3V0aWxzJyk7XG52YXIgdHJhbnNmb3JtRGF0YSA9IHJlcXVpcmUoJy4vdHJhbnNmb3JtRGF0YScpO1xudmFyIGlzQ2FuY2VsID0gcmVxdWlyZSgnLi4vY2FuY2VsL2lzQ2FuY2VsJyk7XG52YXIgZGVmYXVsdHMgPSByZXF1aXJlKCcuLi9kZWZhdWx0cycpO1xuXG4vKipcbiAqIFRocm93cyBhIGBDYW5jZWxgIGlmIGNhbmNlbGxhdGlvbiBoYXMgYmVlbiByZXF1ZXN0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRocm93SWZDYW5jZWxsYXRpb25SZXF1ZXN0ZWQoY29uZmlnKSB7XG4gIGlmIChjb25maWcuY2FuY2VsVG9rZW4pIHtcbiAgICBjb25maWcuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpO1xuICB9XG59XG5cbi8qKlxuICogRGlzcGF0Y2ggYSByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIgdXNpbmcgdGhlIGNvbmZpZ3VyZWQgYWRhcHRlci5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gY29uZmlnIFRoZSBjb25maWcgdGhhdCBpcyB0byBiZSB1c2VkIGZvciB0aGUgcmVxdWVzdFxuICogQHJldHVybnMge1Byb21pc2V9IFRoZSBQcm9taXNlIHRvIGJlIGZ1bGZpbGxlZFxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGRpc3BhdGNoUmVxdWVzdChjb25maWcpIHtcbiAgdGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZChjb25maWcpO1xuXG4gIC8vIEVuc3VyZSBoZWFkZXJzIGV4aXN0XG4gIGNvbmZpZy5oZWFkZXJzID0gY29uZmlnLmhlYWRlcnMgfHwge307XG5cbiAgLy8gVHJhbnNmb3JtIHJlcXVlc3QgZGF0YVxuICBjb25maWcuZGF0YSA9IHRyYW5zZm9ybURhdGEuY2FsbChcbiAgICBjb25maWcsXG4gICAgY29uZmlnLmRhdGEsXG4gICAgY29uZmlnLmhlYWRlcnMsXG4gICAgY29uZmlnLnRyYW5zZm9ybVJlcXVlc3RcbiAgKTtcblxuICAvLyBGbGF0dGVuIGhlYWRlcnNcbiAgY29uZmlnLmhlYWRlcnMgPSB1dGlscy5tZXJnZShcbiAgICBjb25maWcuaGVhZGVycy5jb21tb24gfHwge30sXG4gICAgY29uZmlnLmhlYWRlcnNbY29uZmlnLm1ldGhvZF0gfHwge30sXG4gICAgY29uZmlnLmhlYWRlcnNcbiAgKTtcblxuICB1dGlscy5mb3JFYWNoKFxuICAgIFsnZGVsZXRlJywgJ2dldCcsICdoZWFkJywgJ3Bvc3QnLCAncHV0JywgJ3BhdGNoJywgJ2NvbW1vbiddLFxuICAgIGZ1bmN0aW9uIGNsZWFuSGVhZGVyQ29uZmlnKG1ldGhvZCkge1xuICAgICAgZGVsZXRlIGNvbmZpZy5oZWFkZXJzW21ldGhvZF07XG4gICAgfVxuICApO1xuXG4gIHZhciBhZGFwdGVyID0gY29uZmlnLmFkYXB0ZXIgfHwgZGVmYXVsdHMuYWRhcHRlcjtcblxuICByZXR1cm4gYWRhcHRlcihjb25maWcpLnRoZW4oZnVuY3Rpb24gb25BZGFwdGVyUmVzb2x1dGlvbihyZXNwb25zZSkge1xuICAgIHRocm93SWZDYW5jZWxsYXRpb25SZXF1ZXN0ZWQoY29uZmlnKTtcblxuICAgIC8vIFRyYW5zZm9ybSByZXNwb25zZSBkYXRhXG4gICAgcmVzcG9uc2UuZGF0YSA9IHRyYW5zZm9ybURhdGEuY2FsbChcbiAgICAgIGNvbmZpZyxcbiAgICAgIHJlc3BvbnNlLmRhdGEsXG4gICAgICByZXNwb25zZS5oZWFkZXJzLFxuICAgICAgY29uZmlnLnRyYW5zZm9ybVJlc3BvbnNlXG4gICAgKTtcblxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfSwgZnVuY3Rpb24gb25BZGFwdGVyUmVqZWN0aW9uKHJlYXNvbikge1xuICAgIGlmICghaXNDYW5jZWwocmVhc29uKSkge1xuICAgICAgdGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZChjb25maWcpO1xuXG4gICAgICAvLyBUcmFuc2Zvcm0gcmVzcG9uc2UgZGF0YVxuICAgICAgaWYgKHJlYXNvbiAmJiByZWFzb24ucmVzcG9uc2UpIHtcbiAgICAgICAgcmVhc29uLnJlc3BvbnNlLmRhdGEgPSB0cmFuc2Zvcm1EYXRhLmNhbGwoXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIHJlYXNvbi5yZXNwb25zZS5kYXRhLFxuICAgICAgICAgIHJlYXNvbi5yZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICAgIGNvbmZpZy50cmFuc2Zvcm1SZXNwb25zZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChyZWFzb24pO1xuICB9KTtcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/dispatchRequest.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/enhanceError.js": /*!*****************************************************!*\ !*** ./node_modules/axios/lib/core/enhanceError.js ***! \*****************************************************/ /***/ ((module) => { "use strict"; eval("\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvZW5oYW5jZUVycm9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9lbmhhbmNlRXJyb3IuanM/Mzg3ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogVXBkYXRlIGFuIEVycm9yIHdpdGggdGhlIHNwZWNpZmllZCBjb25maWcsIGVycm9yIGNvZGUsIGFuZCByZXNwb25zZS5cbiAqXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJvciBUaGUgZXJyb3IgdG8gdXBkYXRlLlxuICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyBUaGUgY29uZmlnLlxuICogQHBhcmFtIHtzdHJpbmd9IFtjb2RlXSBUaGUgZXJyb3IgY29kZSAoZm9yIGV4YW1wbGUsICdFQ09OTkFCT1JURUQnKS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbcmVxdWVzdF0gVGhlIHJlcXVlc3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW3Jlc3BvbnNlXSBUaGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJucyB7RXJyb3J9IFRoZSBlcnJvci5cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBlbmhhbmNlRXJyb3IoZXJyb3IsIGNvbmZpZywgY29kZSwgcmVxdWVzdCwgcmVzcG9uc2UpIHtcbiAgZXJyb3IuY29uZmlnID0gY29uZmlnO1xuICBpZiAoY29kZSkge1xuICAgIGVycm9yLmNvZGUgPSBjb2RlO1xuICB9XG5cbiAgZXJyb3IucmVxdWVzdCA9IHJlcXVlc3Q7XG4gIGVycm9yLnJlc3BvbnNlID0gcmVzcG9uc2U7XG4gIGVycm9yLmlzQXhpb3NFcnJvciA9IHRydWU7XG5cbiAgZXJyb3IudG9KU09OID0gZnVuY3Rpb24gdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICAvLyBTdGFuZGFyZFxuICAgICAgbWVzc2FnZTogdGhpcy5tZXNzYWdlLFxuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgLy8gTWljcm9zb2Z0XG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgIG51bWJlcjogdGhpcy5udW1iZXIsXG4gICAgICAvLyBNb3ppbGxhXG4gICAgICBmaWxlTmFtZTogdGhpcy5maWxlTmFtZSxcbiAgICAgIGxpbmVOdW1iZXI6IHRoaXMubGluZU51bWJlcixcbiAgICAgIGNvbHVtbk51bWJlcjogdGhpcy5jb2x1bW5OdW1iZXIsXG4gICAgICBzdGFjazogdGhpcy5zdGFjayxcbiAgICAgIC8vIEF4aW9zXG4gICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxuICAgICAgY29kZTogdGhpcy5jb2RlXG4gICAgfTtcbiAgfTtcbiAgcmV0dXJuIGVycm9yO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/enhanceError.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/mergeConfig.js": /*!****************************************************!*\ !*** ./node_modules/axios/lib/core/mergeConfig.js ***! \****************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/axios/lib/utils.js\");\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvbWVyZ2VDb25maWcuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsWUFBWSxtQkFBTyxDQUFDLG1EQUFVOztBQUU5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLDJCQUEyQjtBQUMzQixNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL21lcmdlQ29uZmlnLmpzPzRhN2IiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscycpO1xuXG4vKipcbiAqIENvbmZpZy1zcGVjaWZpYyBtZXJnZS1mdW5jdGlvbiB3aGljaCBjcmVhdGVzIGEgbmV3IGNvbmZpZy1vYmplY3RcbiAqIGJ5IG1lcmdpbmcgdHdvIGNvbmZpZ3VyYXRpb24gb2JqZWN0cyB0b2dldGhlci5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gY29uZmlnMVxuICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZzJcbiAqIEByZXR1cm5zIHtPYmplY3R9IE5ldyBvYmplY3QgcmVzdWx0aW5nIGZyb20gbWVyZ2luZyBjb25maWcyIHRvIGNvbmZpZzFcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBtZXJnZUNvbmZpZyhjb25maWcxLCBjb25maWcyKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBjb25maWcyID0gY29uZmlnMiB8fCB7fTtcbiAgdmFyIGNvbmZpZyA9IHt9O1xuXG4gIHZhciB2YWx1ZUZyb21Db25maWcyS2V5cyA9IFsndXJsJywgJ21ldGhvZCcsICdkYXRhJ107XG4gIHZhciBtZXJnZURlZXBQcm9wZXJ0aWVzS2V5cyA9IFsnaGVhZGVycycsICdhdXRoJywgJ3Byb3h5JywgJ3BhcmFtcyddO1xuICB2YXIgZGVmYXVsdFRvQ29uZmlnMktleXMgPSBbXG4gICAgJ2Jhc2VVUkwnLCAndHJhbnNmb3JtUmVxdWVzdCcsICd0cmFuc2Zvcm1SZXNwb25zZScsICdwYXJhbXNTZXJpYWxpemVyJyxcbiAgICAndGltZW91dCcsICd0aW1lb3V0TWVzc2FnZScsICd3aXRoQ3JlZGVudGlhbHMnLCAnYWRhcHRlcicsICdyZXNwb25zZVR5cGUnLCAneHNyZkNvb2tpZU5hbWUnLFxuICAgICd4c3JmSGVhZGVyTmFtZScsICdvblVwbG9hZFByb2dyZXNzJywgJ29uRG93bmxvYWRQcm9ncmVzcycsICdkZWNvbXByZXNzJyxcbiAgICAnbWF4Q29udGVudExlbmd0aCcsICdtYXhCb2R5TGVuZ3RoJywgJ21heFJlZGlyZWN0cycsICd0cmFuc3BvcnQnLCAnaHR0cEFnZW50JyxcbiAgICAnaHR0cHNBZ2VudCcsICdjYW5jZWxUb2tlbicsICdzb2NrZXRQYXRoJywgJ3Jlc3BvbnNlRW5jb2RpbmcnXG4gIF07XG4gIHZhciBkaXJlY3RNZXJnZUtleXMgPSBbJ3ZhbGlkYXRlU3RhdHVzJ107XG5cbiAgZnVuY3Rpb24gZ2V0TWVyZ2VkVmFsdWUodGFyZ2V0LCBzb3VyY2UpIHtcbiAgICBpZiAodXRpbHMuaXNQbGFpbk9iamVjdCh0YXJnZXQpICYmIHV0aWxzLmlzUGxhaW5PYmplY3Qoc291cmNlKSkge1xuICAgICAgcmV0dXJuIHV0aWxzLm1lcmdlKHRhcmdldCwgc291cmNlKTtcbiAgICB9IGVsc2UgaWYgKHV0aWxzLmlzUGxhaW5PYmplY3Qoc291cmNlKSkge1xuICAgICAgcmV0dXJuIHV0aWxzLm1lcmdlKHt9LCBzb3VyY2UpO1xuICAgIH0gZWxzZSBpZiAodXRpbHMuaXNBcnJheShzb3VyY2UpKSB7XG4gICAgICByZXR1cm4gc291cmNlLnNsaWNlKCk7XG4gICAgfVxuICAgIHJldHVybiBzb3VyY2U7XG4gIH1cblxuICBmdW5jdGlvbiBtZXJnZURlZXBQcm9wZXJ0aWVzKHByb3ApIHtcbiAgICBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKGNvbmZpZzJbcHJvcF0pKSB7XG4gICAgICBjb25maWdbcHJvcF0gPSBnZXRNZXJnZWRWYWx1ZShjb25maWcxW3Byb3BdLCBjb25maWcyW3Byb3BdKTtcbiAgICB9IGVsc2UgaWYgKCF1dGlscy5pc1VuZGVmaW5lZChjb25maWcxW3Byb3BdKSkge1xuICAgICAgY29uZmlnW3Byb3BdID0gZ2V0TWVyZ2VkVmFsdWUodW5kZWZpbmVkLCBjb25maWcxW3Byb3BdKTtcbiAgICB9XG4gIH1cblxuICB1dGlscy5mb3JFYWNoKHZhbHVlRnJvbUNvbmZpZzJLZXlzLCBmdW5jdGlvbiB2YWx1ZUZyb21Db25maWcyKHByb3ApIHtcbiAgICBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKGNvbmZpZzJbcHJvcF0pKSB7XG4gICAgICBjb25maWdbcHJvcF0gPSBnZXRNZXJnZWRWYWx1ZSh1bmRlZmluZWQsIGNvbmZpZzJbcHJvcF0pO1xuICAgIH1cbiAgfSk7XG5cbiAgdXRpbHMuZm9yRWFjaChtZXJnZURlZXBQcm9wZXJ0aWVzS2V5cywgbWVyZ2VEZWVwUHJvcGVydGllcyk7XG5cbiAgdXRpbHMuZm9yRWFjaChkZWZhdWx0VG9Db25maWcyS2V5cywgZnVuY3Rpb24gZGVmYXVsdFRvQ29uZmlnMihwcm9wKSB7XG4gICAgaWYgKCF1dGlscy5pc1VuZGVmaW5lZChjb25maWcyW3Byb3BdKSkge1xuICAgICAgY29uZmlnW3Byb3BdID0gZ2V0TWVyZ2VkVmFsdWUodW5kZWZpbmVkLCBjb25maWcyW3Byb3BdKTtcbiAgICB9IGVsc2UgaWYgKCF1dGlscy5pc1VuZGVmaW5lZChjb25maWcxW3Byb3BdKSkge1xuICAgICAgY29uZmlnW3Byb3BdID0gZ2V0TWVyZ2VkVmFsdWUodW5kZWZpbmVkLCBjb25maWcxW3Byb3BdKTtcbiAgICB9XG4gIH0pO1xuXG4gIHV0aWxzLmZvckVhY2goZGlyZWN0TWVyZ2VLZXlzLCBmdW5jdGlvbiBtZXJnZShwcm9wKSB7XG4gICAgaWYgKHByb3AgaW4gY29uZmlnMikge1xuICAgICAgY29uZmlnW3Byb3BdID0gZ2V0TWVyZ2VkVmFsdWUoY29uZmlnMVtwcm9wXSwgY29uZmlnMltwcm9wXSk7XG4gICAgfSBlbHNlIGlmIChwcm9wIGluIGNvbmZpZzEpIHtcbiAgICAgIGNvbmZpZ1twcm9wXSA9IGdldE1lcmdlZFZhbHVlKHVuZGVmaW5lZCwgY29uZmlnMVtwcm9wXSk7XG4gICAgfVxuICB9KTtcblxuICB2YXIgYXhpb3NLZXlzID0gdmFsdWVGcm9tQ29uZmlnMktleXNcbiAgICAuY29uY2F0KG1lcmdlRGVlcFByb3BlcnRpZXNLZXlzKVxuICAgIC5jb25jYXQoZGVmYXVsdFRvQ29uZmlnMktleXMpXG4gICAgLmNvbmNhdChkaXJlY3RNZXJnZUtleXMpO1xuXG4gIHZhciBvdGhlcktleXMgPSBPYmplY3RcbiAgICAua2V5cyhjb25maWcxKVxuICAgIC5jb25jYXQoT2JqZWN0LmtleXMoY29uZmlnMikpXG4gICAgLmZpbHRlcihmdW5jdGlvbiBmaWx0ZXJBeGlvc0tleXMoa2V5KSB7XG4gICAgICByZXR1cm4gYXhpb3NLZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTE7XG4gICAgfSk7XG5cbiAgdXRpbHMuZm9yRWFjaChvdGhlcktleXMsIG1lcmdlRGVlcFByb3BlcnRpZXMpO1xuXG4gIHJldHVybiBjb25maWc7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/mergeConfig.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/settle.js": /*!***********************************************!*\ !*** ./node_modules/axios/lib/core/settle.js ***! \***********************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar createError = __webpack_require__(/*! ./createError */ \"./node_modules/axios/lib/core/createError.js\");\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvc2V0dGxlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLGtCQUFrQixtQkFBTyxDQUFDLG1FQUFlOztBQUV6QztBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxVQUFVO0FBQ3JCLFdBQVcsUUFBUTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9zZXR0bGUuanM/NDY3ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJy4vY3JlYXRlRXJyb3InKTtcblxuLyoqXG4gKiBSZXNvbHZlIG9yIHJlamVjdCBhIFByb21pc2UgYmFzZWQgb24gcmVzcG9uc2Ugc3RhdHVzLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHJlc29sdmUgQSBmdW5jdGlvbiB0aGF0IHJlc29sdmVzIHRoZSBwcm9taXNlLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcmVqZWN0IEEgZnVuY3Rpb24gdGhhdCByZWplY3RzIHRoZSBwcm9taXNlLlxuICogQHBhcmFtIHtvYmplY3R9IHJlc3BvbnNlIFRoZSByZXNwb25zZS5cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCByZXNwb25zZSkge1xuICB2YXIgdmFsaWRhdGVTdGF0dXMgPSByZXNwb25zZS5jb25maWcudmFsaWRhdGVTdGF0dXM7XG4gIGlmICghcmVzcG9uc2Uuc3RhdHVzIHx8ICF2YWxpZGF0ZVN0YXR1cyB8fCB2YWxpZGF0ZVN0YXR1cyhyZXNwb25zZS5zdGF0dXMpKSB7XG4gICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gIH0gZWxzZSB7XG4gICAgcmVqZWN0KGNyZWF0ZUVycm9yKFxuICAgICAgJ1JlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgJyArIHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgIHJlc3BvbnNlLmNvbmZpZyxcbiAgICAgIG51bGwsXG4gICAgICByZXNwb25zZS5yZXF1ZXN0LFxuICAgICAgcmVzcG9uc2VcbiAgICApKTtcbiAgfVxufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/settle.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/transformData.js": /*!******************************************************!*\ !*** ./node_modules/axios/lib/core/transformData.js ***! \******************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\nvar defaults = __webpack_require__(/*! ./../defaults */ \"./node_modules/axios/lib/defaults.js\");\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvdHJhbnNmb3JtRGF0YS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixZQUFZLG1CQUFPLENBQUMscURBQVk7QUFDaEMsZUFBZSxtQkFBTyxDQUFDLDJEQUFlOztBQUV0QztBQUNBO0FBQ0E7QUFDQSxXQUFXLGVBQWU7QUFDMUIsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsZ0JBQWdCO0FBQzNCLGFBQWEsR0FBRztBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvdHJhbnNmb3JtRGF0YS5qcz9jNDAxIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi8uLi91dGlscycpO1xudmFyIGRlZmF1bHRzID0gcmVxdWlyZSgnLi8uLi9kZWZhdWx0cycpO1xuXG4vKipcbiAqIFRyYW5zZm9ybSB0aGUgZGF0YSBmb3IgYSByZXF1ZXN0IG9yIGEgcmVzcG9uc2VcbiAqXG4gKiBAcGFyYW0ge09iamVjdHxTdHJpbmd9IGRhdGEgVGhlIGRhdGEgdG8gYmUgdHJhbnNmb3JtZWRcbiAqIEBwYXJhbSB7QXJyYXl9IGhlYWRlcnMgVGhlIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0IG9yIHJlc3BvbnNlXG4gKiBAcGFyYW0ge0FycmF5fEZ1bmN0aW9ufSBmbnMgQSBzaW5nbGUgZnVuY3Rpb24gb3IgQXJyYXkgb2YgZnVuY3Rpb25zXG4gKiBAcmV0dXJucyB7Kn0gVGhlIHJlc3VsdGluZyB0cmFuc2Zvcm1lZCBkYXRhXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gdHJhbnNmb3JtRGF0YShkYXRhLCBoZWFkZXJzLCBmbnMpIHtcbiAgdmFyIGNvbnRleHQgPSB0aGlzIHx8IGRlZmF1bHRzO1xuICAvKmVzbGludCBuby1wYXJhbS1yZWFzc2lnbjowKi9cbiAgdXRpbHMuZm9yRWFjaChmbnMsIGZ1bmN0aW9uIHRyYW5zZm9ybShmbikge1xuICAgIGRhdGEgPSBmbi5jYWxsKGNvbnRleHQsIGRhdGEsIGhlYWRlcnMpO1xuICB9KTtcblxuICByZXR1cm4gZGF0YTtcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/transformData.js\n"); /***/ }), /***/ "./node_modules/axios/lib/defaults.js": /*!********************************************!*\ !*** ./node_modules/axios/lib/defaults.js ***! \********************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("/* provided dependency */ var process = __webpack_require__(/*! process/browser */ \"./node_modules/process/browser.js\");\n\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/axios/lib/utils.js\");\nvar normalizeHeaderName = __webpack_require__(/*! ./helpers/normalizeHeaderName */ \"./node_modules/axios/lib/helpers/normalizeHeaderName.js\");\nvar enhanceError = __webpack_require__(/*! ./core/enhanceError */ \"./node_modules/axios/lib/core/enhanceError.js\");\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = __webpack_require__(/*! ./adapters/xhr */ \"./node_modules/axios/lib/adapters/xhr.js\");\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = __webpack_require__(/*! ./adapters/http */ \"./node_modules/axios/lib/adapters/xhr.js\");\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2RlZmF1bHRzLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7QUFFYixZQUFZLG1CQUFPLENBQUMsa0RBQVM7QUFDN0IsMEJBQTBCLG1CQUFPLENBQUMsOEZBQStCO0FBQ2pFLG1CQUFtQixtQkFBTyxDQUFDLDBFQUFxQjs7QUFFaEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLG1CQUFPLENBQUMsZ0VBQWdCO0FBQ3RDLElBQUksZ0JBQWdCLE9BQU8sbURBQW1ELE9BQU87QUFDckY7QUFDQSxjQUFjLG1CQUFPLENBQUMsaUVBQWlCO0FBQ3ZDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0VBQXdFO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQSxDQUFDOztBQUVEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9kZWZhdWx0cy5qcz8yNDQ0Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xudmFyIG5vcm1hbGl6ZUhlYWRlck5hbWUgPSByZXF1aXJlKCcuL2hlbHBlcnMvbm9ybWFsaXplSGVhZGVyTmFtZScpO1xudmFyIGVuaGFuY2VFcnJvciA9IHJlcXVpcmUoJy4vY29yZS9lbmhhbmNlRXJyb3InKTtcblxudmFyIERFRkFVTFRfQ09OVEVOVF9UWVBFID0ge1xuICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcbn07XG5cbmZ1bmN0aW9uIHNldENvbnRlbnRUeXBlSWZVbnNldChoZWFkZXJzLCB2YWx1ZSkge1xuICBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKGhlYWRlcnMpICYmIHV0aWxzLmlzVW5kZWZpbmVkKGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddKSkge1xuICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gdmFsdWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RGVmYXVsdEFkYXB0ZXIoKSB7XG4gIHZhciBhZGFwdGVyO1xuICBpZiAodHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJykge1xuICAgIC8vIEZvciBicm93c2VycyB1c2UgWEhSIGFkYXB0ZXJcbiAgICBhZGFwdGVyID0gcmVxdWlyZSgnLi9hZGFwdGVycy94aHInKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHByb2Nlc3MpID09PSAnW29iamVjdCBwcm9jZXNzXScpIHtcbiAgICAvLyBGb3Igbm9kZSB1c2UgSFRUUCBhZGFwdGVyXG4gICAgYWRhcHRlciA9IHJlcXVpcmUoJy4vYWRhcHRlcnMvaHR0cCcpO1xuICB9XG4gIHJldHVybiBhZGFwdGVyO1xufVxuXG5mdW5jdGlvbiBzdHJpbmdpZnlTYWZlbHkocmF3VmFsdWUsIHBhcnNlciwgZW5jb2Rlcikge1xuICBpZiAodXRpbHMuaXNTdHJpbmcocmF3VmFsdWUpKSB7XG4gICAgdHJ5IHtcbiAgICAgIChwYXJzZXIgfHwgSlNPTi5wYXJzZSkocmF3VmFsdWUpO1xuICAgICAgcmV0dXJuIHV0aWxzLnRyaW0ocmF3VmFsdWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlLm5hbWUgIT09ICdTeW50YXhFcnJvcicpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gKGVuY29kZXIgfHwgSlNPTi5zdHJpbmdpZnkpKHJhd1ZhbHVlKTtcbn1cblxudmFyIGRlZmF1bHRzID0ge1xuXG4gIHRyYW5zaXRpb25hbDoge1xuICAgIHNpbGVudEpTT05QYXJzaW5nOiB0cnVlLFxuICAgIGZvcmNlZEpTT05QYXJzaW5nOiB0cnVlLFxuICAgIGNsYXJpZnlUaW1lb3V0RXJyb3I6IGZhbHNlXG4gIH0sXG5cbiAgYWRhcHRlcjogZ2V0RGVmYXVsdEFkYXB0ZXIoKSxcblxuICB0cmFuc2Zvcm1SZXF1ZXN0OiBbZnVuY3Rpb24gdHJhbnNmb3JtUmVxdWVzdChkYXRhLCBoZWFkZXJzKSB7XG4gICAgbm9ybWFsaXplSGVhZGVyTmFtZShoZWFkZXJzLCAnQWNjZXB0Jyk7XG4gICAgbm9ybWFsaXplSGVhZGVyTmFtZShoZWFkZXJzLCAnQ29udGVudC1UeXBlJyk7XG5cbiAgICBpZiAodXRpbHMuaXNGb3JtRGF0YShkYXRhKSB8fFxuICAgICAgdXRpbHMuaXNBcnJheUJ1ZmZlcihkYXRhKSB8fFxuICAgICAgdXRpbHMuaXNCdWZmZXIoZGF0YSkgfHxcbiAgICAgIHV0aWxzLmlzU3RyZWFtKGRhdGEpIHx8XG4gICAgICB1dGlscy5pc0ZpbGUoZGF0YSkgfHxcbiAgICAgIHV0aWxzLmlzQmxvYihkYXRhKVxuICAgICkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGlmICh1dGlscy5pc0FycmF5QnVmZmVyVmlldyhkYXRhKSkge1xuICAgICAgcmV0dXJuIGRhdGEuYnVmZmVyO1xuICAgIH1cbiAgICBpZiAodXRpbHMuaXNVUkxTZWFyY2hQYXJhbXMoZGF0YSkpIHtcbiAgICAgIHNldENvbnRlbnRUeXBlSWZVbnNldChoZWFkZXJzLCAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgnKTtcbiAgICAgIHJldHVybiBkYXRhLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIGlmICh1dGlscy5pc09iamVjdChkYXRhKSB8fCAoaGVhZGVycyAmJiBoZWFkZXJzWydDb250ZW50LVR5cGUnXSA9PT0gJ2FwcGxpY2F0aW9uL2pzb24nKSkge1xuICAgICAgc2V0Q29udGVudFR5cGVJZlVuc2V0KGhlYWRlcnMsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgICByZXR1cm4gc3RyaW5naWZ5U2FmZWx5KGRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfV0sXG5cbiAgdHJhbnNmb3JtUmVzcG9uc2U6IFtmdW5jdGlvbiB0cmFuc2Zvcm1SZXNwb25zZShkYXRhKSB7XG4gICAgdmFyIHRyYW5zaXRpb25hbCA9IHRoaXMudHJhbnNpdGlvbmFsO1xuICAgIHZhciBzaWxlbnRKU09OUGFyc2luZyA9IHRyYW5zaXRpb25hbCAmJiB0cmFuc2l0aW9uYWwuc2lsZW50SlNPTlBhcnNpbmc7XG4gICAgdmFyIGZvcmNlZEpTT05QYXJzaW5nID0gdHJhbnNpdGlvbmFsICYmIHRyYW5zaXRpb25hbC5mb3JjZWRKU09OUGFyc2luZztcbiAgICB2YXIgc3RyaWN0SlNPTlBhcnNpbmcgPSAhc2lsZW50SlNPTlBhcnNpbmcgJiYgdGhpcy5yZXNwb25zZVR5cGUgPT09ICdqc29uJztcblxuICAgIGlmIChzdHJpY3RKU09OUGFyc2luZyB8fCAoZm9yY2VkSlNPTlBhcnNpbmcgJiYgdXRpbHMuaXNTdHJpbmcoZGF0YSkgJiYgZGF0YS5sZW5ndGgpKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKHN0cmljdEpTT05QYXJzaW5nKSB7XG4gICAgICAgICAgaWYgKGUubmFtZSA9PT0gJ1N5bnRheEVycm9yJykge1xuICAgICAgICAgICAgdGhyb3cgZW5oYW5jZUVycm9yKGUsIHRoaXMsICdFX0pTT05fUEFSU0UnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuICB9XSxcblxuICAvKipcbiAgICogQSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyB0byBhYm9ydCBhIHJlcXVlc3QuIElmIHNldCB0byAwIChkZWZhdWx0KSBhXG4gICAqIHRpbWVvdXQgaXMgbm90IGNyZWF0ZWQuXG4gICAqL1xuICB0aW1lb3V0OiAwLFxuXG4gIHhzcmZDb29raWVOYW1lOiAnWFNSRi1UT0tFTicsXG4gIHhzcmZIZWFkZXJOYW1lOiAnWC1YU1JGLVRPS0VOJyxcblxuICBtYXhDb250ZW50TGVuZ3RoOiAtMSxcbiAgbWF4Qm9keUxlbmd0aDogLTEsXG5cbiAgdmFsaWRhdGVTdGF0dXM6IGZ1bmN0aW9uIHZhbGlkYXRlU3RhdHVzKHN0YXR1cykge1xuICAgIHJldHVybiBzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMDtcbiAgfVxufTtcblxuZGVmYXVsdHMuaGVhZGVycyA9IHtcbiAgY29tbW9uOiB7XG4gICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyonXG4gIH1cbn07XG5cbnV0aWxzLmZvckVhY2goWydkZWxldGUnLCAnZ2V0JywgJ2hlYWQnXSwgZnVuY3Rpb24gZm9yRWFjaE1ldGhvZE5vRGF0YShtZXRob2QpIHtcbiAgZGVmYXVsdHMuaGVhZGVyc1ttZXRob2RdID0ge307XG59KTtcblxudXRpbHMuZm9yRWFjaChbJ3Bvc3QnLCAncHV0JywgJ3BhdGNoJ10sIGZ1bmN0aW9uIGZvckVhY2hNZXRob2RXaXRoRGF0YShtZXRob2QpIHtcbiAgZGVmYXVsdHMuaGVhZGVyc1ttZXRob2RdID0gdXRpbHMubWVyZ2UoREVGQVVMVF9DT05URU5UX1RZUEUpO1xufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZGVmYXVsdHM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/defaults.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/bind.js": /*!************************************************!*\ !*** ./node_modules/axios/lib/helpers/bind.js ***! \************************************************/ /***/ ((module) => { "use strict"; eval("\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvYmluZC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvYmluZC5qcz8xZDJiIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBiaW5kKGZuLCB0aGlzQXJnKSB7XG4gIHJldHVybiBmdW5jdGlvbiB3cmFwKCkge1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICB9XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICB9O1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/bind.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/buildURL.js": /*!****************************************************!*\ !*** ./node_modules/axios/lib/helpers/buildURL.js ***! \****************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvYnVpbGRVUkwuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsWUFBWSxtQkFBTyxDQUFDLHFEQUFZOztBQUVoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLOztBQUVMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvYnVpbGRVUkwuanM/MzBiNSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vLi4vdXRpbHMnKTtcblxuZnVuY3Rpb24gZW5jb2RlKHZhbCkge1xuICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHZhbCkuXG4gICAgcmVwbGFjZSgvJTNBL2dpLCAnOicpLlxuICAgIHJlcGxhY2UoLyUyNC9nLCAnJCcpLlxuICAgIHJlcGxhY2UoLyUyQy9naSwgJywnKS5cbiAgICByZXBsYWNlKC8lMjAvZywgJysnKS5cbiAgICByZXBsYWNlKC8lNUIvZ2ksICdbJykuXG4gICAgcmVwbGFjZSgvJTVEL2dpLCAnXScpO1xufVxuXG4vKipcbiAqIEJ1aWxkIGEgVVJMIGJ5IGFwcGVuZGluZyBwYXJhbXMgdG8gdGhlIGVuZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIGJhc2Ugb2YgdGhlIHVybCAoZS5nLiwgaHR0cDovL3d3dy5nb29nbGUuY29tKVxuICogQHBhcmFtIHtvYmplY3R9IFtwYXJhbXNdIFRoZSBwYXJhbXMgdG8gYmUgYXBwZW5kZWRcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBmb3JtYXR0ZWQgdXJsXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gYnVpbGRVUkwodXJsLCBwYXJhbXMsIHBhcmFtc1NlcmlhbGl6ZXIpIHtcbiAgLyplc2xpbnQgbm8tcGFyYW0tcmVhc3NpZ246MCovXG4gIGlmICghcGFyYW1zKSB7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIHZhciBzZXJpYWxpemVkUGFyYW1zO1xuICBpZiAocGFyYW1zU2VyaWFsaXplcikge1xuICAgIHNlcmlhbGl6ZWRQYXJhbXMgPSBwYXJhbXNTZXJpYWxpemVyKHBhcmFtcyk7XG4gIH0gZWxzZSBpZiAodXRpbHMuaXNVUkxTZWFyY2hQYXJhbXMocGFyYW1zKSkge1xuICAgIHNlcmlhbGl6ZWRQYXJhbXMgPSBwYXJhbXMudG9TdHJpbmcoKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgcGFydHMgPSBbXTtcblxuICAgIHV0aWxzLmZvckVhY2gocGFyYW1zLCBmdW5jdGlvbiBzZXJpYWxpemUodmFsLCBrZXkpIHtcbiAgICAgIGlmICh2YWwgPT09IG51bGwgfHwgdHlwZW9mIHZhbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodXRpbHMuaXNBcnJheSh2YWwpKSB7XG4gICAgICAgIGtleSA9IGtleSArICdbXSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWwgPSBbdmFsXTtcbiAgICAgIH1cblxuICAgICAgdXRpbHMuZm9yRWFjaCh2YWwsIGZ1bmN0aW9uIHBhcnNlVmFsdWUodikge1xuICAgICAgICBpZiAodXRpbHMuaXNEYXRlKHYpKSB7XG4gICAgICAgICAgdiA9IHYudG9JU09TdHJpbmcoKTtcbiAgICAgICAgfSBlbHNlIGlmICh1dGlscy5pc09iamVjdCh2KSkge1xuICAgICAgICAgIHYgPSBKU09OLnN0cmluZ2lmeSh2KTtcbiAgICAgICAgfVxuICAgICAgICBwYXJ0cy5wdXNoKGVuY29kZShrZXkpICsgJz0nICsgZW5jb2RlKHYpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgc2VyaWFsaXplZFBhcmFtcyA9IHBhcnRzLmpvaW4oJyYnKTtcbiAgfVxuXG4gIGlmIChzZXJpYWxpemVkUGFyYW1zKSB7XG4gICAgdmFyIGhhc2htYXJrSW5kZXggPSB1cmwuaW5kZXhPZignIycpO1xuICAgIGlmIChoYXNobWFya0luZGV4ICE9PSAtMSkge1xuICAgICAgdXJsID0gdXJsLnNsaWNlKDAsIGhhc2htYXJrSW5kZXgpO1xuICAgIH1cblxuICAgIHVybCArPSAodXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJicpICsgc2VyaWFsaXplZFBhcmFtcztcbiAgfVxuXG4gIHJldHVybiB1cmw7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/buildURL.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/combineURLs.js": /*!*******************************************************!*\ !*** ./node_modules/axios/lib/helpers/combineURLs.js ***! \*******************************************************/ /***/ ((module) => { "use strict"; eval("\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvY29tYmluZVVSTHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2NvbWJpbmVVUkxzLmpzP2U2ODMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgVVJMIGJ5IGNvbWJpbmluZyB0aGUgc3BlY2lmaWVkIFVSTHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYmFzZVVSTCBUaGUgYmFzZSBVUkxcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWxhdGl2ZVVSTCBUaGUgcmVsYXRpdmUgVVJMXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgY29tYmluZWQgVVJMXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY29tYmluZVVSTHMoYmFzZVVSTCwgcmVsYXRpdmVVUkwpIHtcbiAgcmV0dXJuIHJlbGF0aXZlVVJMXG4gICAgPyBiYXNlVVJMLnJlcGxhY2UoL1xcLyskLywgJycpICsgJy8nICsgcmVsYXRpdmVVUkwucmVwbGFjZSgvXlxcLysvLCAnJylcbiAgICA6IGJhc2VVUkw7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/combineURLs.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/cookies.js": /*!***************************************************!*\ !*** ./node_modules/axios/lib/helpers/cookies.js ***! \***************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvY29va2llcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixZQUFZLG1CQUFPLENBQUMscURBQVk7O0FBRWhDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSwyQ0FBMkM7QUFDM0MsU0FBUzs7QUFFVDtBQUNBLDREQUE0RCx3QkFBd0I7QUFDcEY7QUFDQSxTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEMsZ0NBQWdDLGNBQWM7QUFDOUM7QUFDQTtBQUNBLEtBQUs7QUFDTCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9jb29raWVzLmpzPzdhYWMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLy4uL3V0aWxzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gKFxuICB1dGlscy5pc1N0YW5kYXJkQnJvd3NlckVudigpID9cblxuICAvLyBTdGFuZGFyZCBicm93c2VyIGVudnMgc3VwcG9ydCBkb2N1bWVudC5jb29raWVcbiAgICAoZnVuY3Rpb24gc3RhbmRhcmRCcm93c2VyRW52KCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd3JpdGU6IGZ1bmN0aW9uIHdyaXRlKG5hbWUsIHZhbHVlLCBleHBpcmVzLCBwYXRoLCBkb21haW4sIHNlY3VyZSkge1xuICAgICAgICAgIHZhciBjb29raWUgPSBbXTtcbiAgICAgICAgICBjb29raWUucHVzaChuYW1lICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKSk7XG5cbiAgICAgICAgICBpZiAodXRpbHMuaXNOdW1iZXIoZXhwaXJlcykpIHtcbiAgICAgICAgICAgIGNvb2tpZS5wdXNoKCdleHBpcmVzPScgKyBuZXcgRGF0ZShleHBpcmVzKS50b0dNVFN0cmluZygpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodXRpbHMuaXNTdHJpbmcocGF0aCkpIHtcbiAgICAgICAgICAgIGNvb2tpZS5wdXNoKCdwYXRoPScgKyBwYXRoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodXRpbHMuaXNTdHJpbmcoZG9tYWluKSkge1xuICAgICAgICAgICAgY29va2llLnB1c2goJ2RvbWFpbj0nICsgZG9tYWluKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoc2VjdXJlID09PSB0cnVlKSB7XG4gICAgICAgICAgICBjb29raWUucHVzaCgnc2VjdXJlJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llLmpvaW4oJzsgJyk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgcmVhZDogZnVuY3Rpb24gcmVhZChuYW1lKSB7XG4gICAgICAgICAgdmFyIG1hdGNoID0gZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoJyhefDtcXFxccyopKCcgKyBuYW1lICsgJyk9KFteO10qKScpKTtcbiAgICAgICAgICByZXR1cm4gKG1hdGNoID8gZGVjb2RlVVJJQ29tcG9uZW50KG1hdGNoWzNdKSA6IG51bGwpO1xuICAgICAgICB9LFxuXG4gICAgICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKG5hbWUpIHtcbiAgICAgICAgICB0aGlzLndyaXRlKG5hbWUsICcnLCBEYXRlLm5vdygpIC0gODY0MDAwMDApO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0pKCkgOlxuXG4gIC8vIE5vbiBzdGFuZGFyZCBicm93c2VyIGVudiAod2ViIHdvcmtlcnMsIHJlYWN0LW5hdGl2ZSkgbGFjayBuZWVkZWQgc3VwcG9ydC5cbiAgICAoZnVuY3Rpb24gbm9uU3RhbmRhcmRCcm93c2VyRW52KCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd3JpdGU6IGZ1bmN0aW9uIHdyaXRlKCkge30sXG4gICAgICAgIHJlYWQ6IGZ1bmN0aW9uIHJlYWQoKSB7IHJldHVybiBudWxsOyB9LFxuICAgICAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHt9XG4gICAgICB9O1xuICAgIH0pKClcbik7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/cookies.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/isAbsoluteURL.js": /*!*********************************************************!*\ !*** ./node_modules/axios/lib/helpers/isAbsoluteURL.js ***! \*********************************************************/ /***/ ((module) => { "use strict"; eval("\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNBYnNvbHV0ZVVSTC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2lzQWJzb2x1dGVVUkwuanM/ZDkyNSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgVVJMIGlzIGFic29sdXRlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgVVJMIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSBzcGVjaWZpZWQgVVJMIGlzIGFic29sdXRlLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc0Fic29sdXRlVVJMKHVybCkge1xuICAvLyBBIFVSTCBpcyBjb25zaWRlcmVkIGFic29sdXRlIGlmIGl0IGJlZ2lucyB3aXRoIFwiPHNjaGVtZT46Ly9cIiBvciBcIi8vXCIgKHByb3RvY29sLXJlbGF0aXZlIFVSTCkuXG4gIC8vIFJGQyAzOTg2IGRlZmluZXMgc2NoZW1lIG5hbWUgYXMgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIGJlZ2lubmluZyB3aXRoIGEgbGV0dGVyIGFuZCBmb2xsb3dlZFxuICAvLyBieSBhbnkgY29tYmluYXRpb24gb2YgbGV0dGVycywgZGlnaXRzLCBwbHVzLCBwZXJpb2QsIG9yIGh5cGhlbi5cbiAgcmV0dXJuIC9eKFthLXpdW2EtelxcZFxcK1xcLVxcLl0qOik/XFwvXFwvL2kudGVzdCh1cmwpO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/isAbsoluteURL.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/isAxiosError.js": /*!********************************************************!*\ !*** ./node_modules/axios/lib/helpers/isAxiosError.js ***! \********************************************************/ /***/ ((module) => { "use strict"; eval("\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNBeGlvc0Vycm9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9pc0F4aW9zRXJyb3IuanM/NWYwMiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwYXlsb2FkIGlzIGFuIGVycm9yIHRocm93biBieSBBeGlvc1xuICpcbiAqIEBwYXJhbSB7Kn0gcGF5bG9hZCBUaGUgdmFsdWUgdG8gdGVzdFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIHBheWxvYWQgaXMgYW4gZXJyb3IgdGhyb3duIGJ5IEF4aW9zLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc0F4aW9zRXJyb3IocGF5bG9hZCkge1xuICByZXR1cm4gKHR5cGVvZiBwYXlsb2FkID09PSAnb2JqZWN0JykgJiYgKHBheWxvYWQuaXNBeGlvc0Vycm9yID09PSB0cnVlKTtcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/isAxiosError.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/isURLSameOrigin.js": /*!***********************************************************!*\ !*** ./node_modules/axios/lib/helpers/isURLSameOrigin.js ***! \***********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNVUkxTYW1lT3JpZ2luLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFlBQVksbUJBQU8sQ0FBQyxxREFBWTs7QUFFaEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsY0FBYyxRQUFRO0FBQ3RCLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsUUFBUTtBQUN0QixnQkFBZ0IsU0FBUztBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNVUkxTYW1lT3JpZ2luLmpzPzM5MzQiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLy4uL3V0aWxzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gKFxuICB1dGlscy5pc1N0YW5kYXJkQnJvd3NlckVudigpID9cblxuICAvLyBTdGFuZGFyZCBicm93c2VyIGVudnMgaGF2ZSBmdWxsIHN1cHBvcnQgb2YgdGhlIEFQSXMgbmVlZGVkIHRvIHRlc3RcbiAgLy8gd2hldGhlciB0aGUgcmVxdWVzdCBVUkwgaXMgb2YgdGhlIHNhbWUgb3JpZ2luIGFzIGN1cnJlbnQgbG9jYXRpb24uXG4gICAgKGZ1bmN0aW9uIHN0YW5kYXJkQnJvd3NlckVudigpIHtcbiAgICAgIHZhciBtc2llID0gLyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcbiAgICAgIHZhciB1cmxQYXJzaW5nTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgIHZhciBvcmlnaW5VUkw7XG5cbiAgICAgIC8qKlxuICAgICogUGFyc2UgYSBVUkwgdG8gZGlzY292ZXIgaXQncyBjb21wb25lbnRzXG4gICAgKlxuICAgICogQHBhcmFtIHtTdHJpbmd9IHVybCBUaGUgVVJMIHRvIGJlIHBhcnNlZFxuICAgICogQHJldHVybnMge09iamVjdH1cbiAgICAqL1xuICAgICAgZnVuY3Rpb24gcmVzb2x2ZVVSTCh1cmwpIHtcbiAgICAgICAgdmFyIGhyZWYgPSB1cmw7XG5cbiAgICAgICAgaWYgKG1zaWUpIHtcbiAgICAgICAgLy8gSUUgbmVlZHMgYXR0cmlidXRlIHNldCB0d2ljZSB0byBub3JtYWxpemUgcHJvcGVydGllc1xuICAgICAgICAgIHVybFBhcnNpbmdOb2RlLnNldEF0dHJpYnV0ZSgnaHJlZicsIGhyZWYpO1xuICAgICAgICAgIGhyZWYgPSB1cmxQYXJzaW5nTm9kZS5ocmVmO1xuICAgICAgICB9XG5cbiAgICAgICAgdXJsUGFyc2luZ05vZGUuc2V0QXR0cmlidXRlKCdocmVmJywgaHJlZik7XG5cbiAgICAgICAgLy8gdXJsUGFyc2luZ05vZGUgcHJvdmlkZXMgdGhlIFVybFV0aWxzIGludGVyZmFjZSAtIGh0dHA6Ly91cmwuc3BlYy53aGF0d2cub3JnLyN1cmx1dGlsc1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGhyZWY6IHVybFBhcnNpbmdOb2RlLmhyZWYsXG4gICAgICAgICAgcHJvdG9jb2w6IHVybFBhcnNpbmdOb2RlLnByb3RvY29sID8gdXJsUGFyc2luZ05vZGUucHJvdG9jb2wucmVwbGFjZSgvOiQvLCAnJykgOiAnJyxcbiAgICAgICAgICBob3N0OiB1cmxQYXJzaW5nTm9kZS5ob3N0LFxuICAgICAgICAgIHNlYXJjaDogdXJsUGFyc2luZ05vZGUuc2VhcmNoID8gdXJsUGFyc2luZ05vZGUuc2VhcmNoLnJlcGxhY2UoL15cXD8vLCAnJykgOiAnJyxcbiAgICAgICAgICBoYXNoOiB1cmxQYXJzaW5nTm9kZS5oYXNoID8gdXJsUGFyc2luZ05vZGUuaGFzaC5yZXBsYWNlKC9eIy8sICcnKSA6ICcnLFxuICAgICAgICAgIGhvc3RuYW1lOiB1cmxQYXJzaW5nTm9kZS5ob3N0bmFtZSxcbiAgICAgICAgICBwb3J0OiB1cmxQYXJzaW5nTm9kZS5wb3J0LFxuICAgICAgICAgIHBhdGhuYW1lOiAodXJsUGFyc2luZ05vZGUucGF0aG5hbWUuY2hhckF0KDApID09PSAnLycpID9cbiAgICAgICAgICAgIHVybFBhcnNpbmdOb2RlLnBhdGhuYW1lIDpcbiAgICAgICAgICAgICcvJyArIHVybFBhcnNpbmdOb2RlLnBhdGhuYW1lXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIG9yaWdpblVSTCA9IHJlc29sdmVVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO1xuXG4gICAgICAvKipcbiAgICAqIERldGVybWluZSBpZiBhIFVSTCBzaGFyZXMgdGhlIHNhbWUgb3JpZ2luIGFzIHRoZSBjdXJyZW50IGxvY2F0aW9uXG4gICAgKlxuICAgICogQHBhcmFtIHtTdHJpbmd9IHJlcXVlc3RVUkwgVGhlIFVSTCB0byB0ZXN0XG4gICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiBVUkwgc2hhcmVzIHRoZSBzYW1lIG9yaWdpbiwgb3RoZXJ3aXNlIGZhbHNlXG4gICAgKi9cbiAgICAgIHJldHVybiBmdW5jdGlvbiBpc1VSTFNhbWVPcmlnaW4ocmVxdWVzdFVSTCkge1xuICAgICAgICB2YXIgcGFyc2VkID0gKHV0aWxzLmlzU3RyaW5nKHJlcXVlc3RVUkwpKSA/IHJlc29sdmVVUkwocmVxdWVzdFVSTCkgOiByZXF1ZXN0VVJMO1xuICAgICAgICByZXR1cm4gKHBhcnNlZC5wcm90b2NvbCA9PT0gb3JpZ2luVVJMLnByb3RvY29sICYmXG4gICAgICAgICAgICBwYXJzZWQuaG9zdCA9PT0gb3JpZ2luVVJMLmhvc3QpO1xuICAgICAgfTtcbiAgICB9KSgpIDpcblxuICAvLyBOb24gc3RhbmRhcmQgYnJvd3NlciBlbnZzICh3ZWIgd29ya2VycywgcmVhY3QtbmF0aXZlKSBsYWNrIG5lZWRlZCBzdXBwb3J0LlxuICAgIChmdW5jdGlvbiBub25TdGFuZGFyZEJyb3dzZXJFbnYoKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gaXNVUkxTYW1lT3JpZ2luKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH07XG4gICAgfSkoKVxuKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/isURLSameOrigin.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/normalizeHeaderName.js": /*!***************************************************************!*\ !*** ./node_modules/axios/lib/helpers/normalizeHeaderName.js ***! \***************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/axios/lib/utils.js\");\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvbm9ybWFsaXplSGVhZGVyTmFtZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixZQUFZLG1CQUFPLENBQUMsbURBQVU7O0FBRTlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9ub3JtYWxpemVIZWFkZXJOYW1lLmpzP2M4YWYiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIG5vcm1hbGl6ZUhlYWRlck5hbWUoaGVhZGVycywgbm9ybWFsaXplZE5hbWUpIHtcbiAgdXRpbHMuZm9yRWFjaChoZWFkZXJzLCBmdW5jdGlvbiBwcm9jZXNzSGVhZGVyKHZhbHVlLCBuYW1lKSB7XG4gICAgaWYgKG5hbWUgIT09IG5vcm1hbGl6ZWROYW1lICYmIG5hbWUudG9VcHBlckNhc2UoKSA9PT0gbm9ybWFsaXplZE5hbWUudG9VcHBlckNhc2UoKSkge1xuICAgICAgaGVhZGVyc1tub3JtYWxpemVkTmFtZV0gPSB2YWx1ZTtcbiAgICAgIGRlbGV0ZSBoZWFkZXJzW25hbWVdO1xuICAgIH1cbiAgfSk7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/normalizeHeaderName.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/parseHeaders.js": /*!********************************************************!*\ !*** ./node_modules/axios/lib/helpers/parseHeaders.js ***! \********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvcGFyc2VIZWFkZXJzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFlBQVksbUJBQU8sQ0FBQyxxREFBWTs7QUFFaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFrQjs7QUFFbEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9wYXJzZUhlYWRlcnMuanM/YzM0NSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vLi4vdXRpbHMnKTtcblxuLy8gSGVhZGVycyB3aG9zZSBkdXBsaWNhdGVzIGFyZSBpZ25vcmVkIGJ5IG5vZGVcbi8vIGMuZi4gaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9odHRwLmh0bWwjaHR0cF9tZXNzYWdlX2hlYWRlcnNcbnZhciBpZ25vcmVEdXBsaWNhdGVPZiA9IFtcbiAgJ2FnZScsICdhdXRob3JpemF0aW9uJywgJ2NvbnRlbnQtbGVuZ3RoJywgJ2NvbnRlbnQtdHlwZScsICdldGFnJyxcbiAgJ2V4cGlyZXMnLCAnZnJvbScsICdob3N0JywgJ2lmLW1vZGlmaWVkLXNpbmNlJywgJ2lmLXVubW9kaWZpZWQtc2luY2UnLFxuICAnbGFzdC1tb2RpZmllZCcsICdsb2NhdGlvbicsICdtYXgtZm9yd2FyZHMnLCAncHJveHktYXV0aG9yaXphdGlvbicsXG4gICdyZWZlcmVyJywgJ3JldHJ5LWFmdGVyJywgJ3VzZXItYWdlbnQnXG5dO1xuXG4vKipcbiAqIFBhcnNlIGhlYWRlcnMgaW50byBhbiBvYmplY3RcbiAqXG4gKiBgYGBcbiAqIERhdGU6IFdlZCwgMjcgQXVnIDIwMTQgMDg6NTg6NDkgR01UXG4gKiBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb25cbiAqIENvbm5lY3Rpb246IGtlZXAtYWxpdmVcbiAqIFRyYW5zZmVyLUVuY29kaW5nOiBjaHVua2VkXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaGVhZGVycyBIZWFkZXJzIG5lZWRpbmcgdG8gYmUgcGFyc2VkXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBIZWFkZXJzIHBhcnNlZCBpbnRvIGFuIG9iamVjdFxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHBhcnNlSGVhZGVycyhoZWFkZXJzKSB7XG4gIHZhciBwYXJzZWQgPSB7fTtcbiAgdmFyIGtleTtcbiAgdmFyIHZhbDtcbiAgdmFyIGk7XG5cbiAgaWYgKCFoZWFkZXJzKSB7IHJldHVybiBwYXJzZWQ7IH1cblxuICB1dGlscy5mb3JFYWNoKGhlYWRlcnMuc3BsaXQoJ1xcbicpLCBmdW5jdGlvbiBwYXJzZXIobGluZSkge1xuICAgIGkgPSBsaW5lLmluZGV4T2YoJzonKTtcbiAgICBrZXkgPSB1dGlscy50cmltKGxpbmUuc3Vic3RyKDAsIGkpKS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhbCA9IHV0aWxzLnRyaW0obGluZS5zdWJzdHIoaSArIDEpKTtcblxuICAgIGlmIChrZXkpIHtcbiAgICAgIGlmIChwYXJzZWRba2V5XSAmJiBpZ25vcmVEdXBsaWNhdGVPZi5pbmRleE9mKGtleSkgPj0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoa2V5ID09PSAnc2V0LWNvb2tpZScpIHtcbiAgICAgICAgcGFyc2VkW2tleV0gPSAocGFyc2VkW2tleV0gPyBwYXJzZWRba2V5XSA6IFtdKS5jb25jYXQoW3ZhbF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyc2VkW2tleV0gPSBwYXJzZWRba2V5XSA/IHBhcnNlZFtrZXldICsgJywgJyArIHZhbCA6IHZhbDtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBwYXJzZWQ7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/parseHeaders.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/spread.js": /*!**************************************************!*\ !*** ./node_modules/axios/lib/helpers/spread.js ***! \**************************************************/ /***/ ((module) => { "use strict"; eval("\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvc3ByZWFkLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3NwcmVhZC5qcz8wZGY2Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBTeW50YWN0aWMgc3VnYXIgZm9yIGludm9raW5nIGEgZnVuY3Rpb24gYW5kIGV4cGFuZGluZyBhbiBhcnJheSBmb3IgYXJndW1lbnRzLlxuICpcbiAqIENvbW1vbiB1c2UgY2FzZSB3b3VsZCBiZSB0byB1c2UgYEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseWAuXG4gKlxuICogIGBgYGpzXG4gKiAgZnVuY3Rpb24gZih4LCB5LCB6KSB7fVxuICogIHZhciBhcmdzID0gWzEsIDIsIDNdO1xuICogIGYuYXBwbHkobnVsbCwgYXJncyk7XG4gKiAgYGBgXG4gKlxuICogV2l0aCBgc3ByZWFkYCB0aGlzIGV4YW1wbGUgY2FuIGJlIHJlLXdyaXR0ZW4uXG4gKlxuICogIGBgYGpzXG4gKiAgc3ByZWFkKGZ1bmN0aW9uKHgsIHksIHopIHt9KShbMSwgMiwgM10pO1xuICogIGBgYFxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259XG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gc3ByZWFkKGNhbGxiYWNrKSB7XG4gIHJldHVybiBmdW5jdGlvbiB3cmFwKGFycikge1xuICAgIHJldHVybiBjYWxsYmFjay5hcHBseShudWxsLCBhcnIpO1xuICB9O1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/spread.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/validator.js": /*!*****************************************************!*\ !*** ./node_modules/axios/lib/helpers/validator.js ***! \*****************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar pkg = __webpack_require__(/*! ./../../package.json */ \"./node_modules/axios/package.json\");\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvdmFsaWRhdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFVBQVUsbUJBQU8sQ0FBQywrREFBc0I7O0FBRXhDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFNBQVM7QUFDcEIsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLE9BQU87QUFDekI7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLG1CQUFtQjtBQUM5QixXQUFXLFNBQVM7QUFDcEIsV0FBVyxRQUFRO0FBQ25CLGFBQWE7QUFDYjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsVUFBVTtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3ZhbGlkYXRvci5qcz84NDhiIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxudmFyIHBrZyA9IHJlcXVpcmUoJy4vLi4vLi4vcGFja2FnZS5qc29uJyk7XG5cbnZhciB2YWxpZGF0b3JzID0ge307XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5bJ29iamVjdCcsICdib29sZWFuJywgJ251bWJlcicsICdmdW5jdGlvbicsICdzdHJpbmcnLCAnc3ltYm9sJ10uZm9yRWFjaChmdW5jdGlvbih0eXBlLCBpKSB7XG4gIHZhbGlkYXRvcnNbdHlwZV0gPSBmdW5jdGlvbiB2YWxpZGF0b3IodGhpbmcpIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaW5nID09PSB0eXBlIHx8ICdhJyArIChpIDwgMSA/ICduICcgOiAnICcpICsgdHlwZTtcbiAgfTtcbn0pO1xuXG52YXIgZGVwcmVjYXRlZFdhcm5pbmdzID0ge307XG52YXIgY3VycmVudFZlckFyciA9IHBrZy52ZXJzaW9uLnNwbGl0KCcuJyk7XG5cbi8qKlxuICogQ29tcGFyZSBwYWNrYWdlIHZlcnNpb25zXG4gKiBAcGFyYW0ge3N0cmluZ30gdmVyc2lvblxuICogQHBhcmFtIHtzdHJpbmc/fSB0aGFuVmVyc2lvblxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzT2xkZXJWZXJzaW9uKHZlcnNpb24sIHRoYW5WZXJzaW9uKSB7XG4gIHZhciBwa2dWZXJzaW9uQXJyID0gdGhhblZlcnNpb24gPyB0aGFuVmVyc2lvbi5zcGxpdCgnLicpIDogY3VycmVudFZlckFycjtcbiAgdmFyIGRlc3RWZXIgPSB2ZXJzaW9uLnNwbGl0KCcuJyk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgMzsgaSsrKSB7XG4gICAgaWYgKHBrZ1ZlcnNpb25BcnJbaV0gPiBkZXN0VmVyW2ldKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHBrZ1ZlcnNpb25BcnJbaV0gPCBkZXN0VmVyW2ldKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBUcmFuc2l0aW9uYWwgb3B0aW9uIHZhbGlkYXRvclxuICogQHBhcmFtIHtmdW5jdGlvbnxib29sZWFuP30gdmFsaWRhdG9yXG4gKiBAcGFyYW0ge3N0cmluZz99IHZlcnNpb25cbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb259XG4gKi9cbnZhbGlkYXRvcnMudHJhbnNpdGlvbmFsID0gZnVuY3Rpb24gdHJhbnNpdGlvbmFsKHZhbGlkYXRvciwgdmVyc2lvbiwgbWVzc2FnZSkge1xuICB2YXIgaXNEZXByZWNhdGVkID0gdmVyc2lvbiAmJiBpc09sZGVyVmVyc2lvbih2ZXJzaW9uKTtcblxuICBmdW5jdGlvbiBmb3JtYXRNZXNzYWdlKG9wdCwgZGVzYykge1xuICAgIHJldHVybiAnW0F4aW9zIHYnICsgcGtnLnZlcnNpb24gKyAnXSBUcmFuc2l0aW9uYWwgb3B0aW9uIFxcJycgKyBvcHQgKyAnXFwnJyArIGRlc2MgKyAobWVzc2FnZSA/ICcuICcgKyBtZXNzYWdlIDogJycpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbiAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlLCBvcHQsIG9wdHMpIHtcbiAgICBpZiAodmFsaWRhdG9yID09PSBmYWxzZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGZvcm1hdE1lc3NhZ2Uob3B0LCAnIGhhcyBiZWVuIHJlbW92ZWQgaW4gJyArIHZlcnNpb24pKTtcbiAgICB9XG5cbiAgICBpZiAoaXNEZXByZWNhdGVkICYmICFkZXByZWNhdGVkV2FybmluZ3Nbb3B0XSkge1xuICAgICAgZGVwcmVjYXRlZFdhcm5pbmdzW29wdF0gPSB0cnVlO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgZm9ybWF0TWVzc2FnZShcbiAgICAgICAgICBvcHQsXG4gICAgICAgICAgJyBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYnICsgdmVyc2lvbiArICcgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUnXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRvciA/IHZhbGlkYXRvcih2YWx1ZSwgb3B0LCBvcHRzKSA6IHRydWU7XG4gIH07XG59O1xuXG4vKipcbiAqIEFzc2VydCBvYmplY3QncyBwcm9wZXJ0aWVzIHR5cGVcbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zXG4gKiBAcGFyYW0ge29iamVjdH0gc2NoZW1hXG4gKiBAcGFyYW0ge2Jvb2xlYW4/fSBhbGxvd1Vua25vd25cbiAqL1xuXG5mdW5jdGlvbiBhc3NlcnRPcHRpb25zKG9wdGlvbnMsIHNjaGVtYSwgYWxsb3dVbmtub3duKSB7XG4gIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ29iamVjdCcpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Jyk7XG4gIH1cbiAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvcHRpb25zKTtcbiAgdmFyIGkgPSBrZXlzLmxlbmd0aDtcbiAgd2hpbGUgKGktLSA+IDApIHtcbiAgICB2YXIgb3B0ID0ga2V5c1tpXTtcbiAgICB2YXIgdmFsaWRhdG9yID0gc2NoZW1hW29wdF07XG4gICAgaWYgKHZhbGlkYXRvcikge1xuICAgICAgdmFyIHZhbHVlID0gb3B0aW9uc1tvcHRdO1xuICAgICAgdmFyIHJlc3VsdCA9IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsaWRhdG9yKHZhbHVlLCBvcHQsIG9wdGlvbnMpO1xuICAgICAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb24gJyArIG9wdCArICcgbXVzdCBiZSAnICsgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoYWxsb3dVbmtub3duICE9PSB0cnVlKSB7XG4gICAgICB0aHJvdyBFcnJvcignVW5rbm93biBvcHRpb24gJyArIG9wdCk7XG4gICAgfVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBpc09sZGVyVmVyc2lvbjogaXNPbGRlclZlcnNpb24sXG4gIGFzc2VydE9wdGlvbnM6IGFzc2VydE9wdGlvbnMsXG4gIHZhbGlkYXRvcnM6IHZhbGlkYXRvcnNcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/validator.js\n"); /***/ }), /***/ "./node_modules/axios/lib/utils.js": /*!*****************************************!*\ !*** ./node_modules/axios/lib/utils.js ***! \*****************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar bind = __webpack_require__(/*! ./helpers/bind */ \"./node_modules/axios/lib/helpers/bind.js\");\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL3V0aWxzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFdBQVcsbUJBQU8sQ0FBQyxnRUFBZ0I7O0FBRW5DOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxTQUFTO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGNBQWM7QUFDekIsV0FBVyxVQUFVO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxvQ0FBb0MsT0FBTztBQUMzQztBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsU0FBUyxHQUFHLFNBQVM7QUFDNUMsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTiw0QkFBNEI7QUFDNUIsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQSx3Q0FBd0MsT0FBTztBQUMvQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixZQUFZLFFBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL3V0aWxzLmpzP2M1MzIiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgYmluZCA9IHJlcXVpcmUoJy4vaGVscGVycy9iaW5kJyk7XG5cbi8vIHV0aWxzIGlzIGEgbGlicmFyeSBvZiBnZW5lcmljIGhlbHBlciBmdW5jdGlvbnMgbm9uLXNwZWNpZmljIHRvIGF4aW9zXG5cbnZhciB0b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYW4gQXJyYXlcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhbiBBcnJheSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXkodmFsKSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKHZhbCkgPT09ICdbb2JqZWN0IEFycmF5XSc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgdW5kZWZpbmVkXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIHZhbHVlIGlzIHVuZGVmaW5lZCwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzVW5kZWZpbmVkKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ3VuZGVmaW5lZCc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBCdWZmZXJcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIEJ1ZmZlciwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQnVmZmVyKHZhbCkge1xuICByZXR1cm4gdmFsICE9PSBudWxsICYmICFpc1VuZGVmaW5lZCh2YWwpICYmIHZhbC5jb25zdHJ1Y3RvciAhPT0gbnVsbCAmJiAhaXNVbmRlZmluZWQodmFsLmNvbnN0cnVjdG9yKVxuICAgICYmIHR5cGVvZiB2YWwuY29uc3RydWN0b3IuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgdmFsLmNvbnN0cnVjdG9yLmlzQnVmZmVyKHZhbCk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYW4gQXJyYXlCdWZmZXJcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhbiBBcnJheUJ1ZmZlciwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlCdWZmZXIodmFsKSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKHZhbCkgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXSc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBGb3JtRGF0YVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGFuIEZvcm1EYXRhLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNGb3JtRGF0YSh2YWwpIHtcbiAgcmV0dXJuICh0eXBlb2YgRm9ybURhdGEgIT09ICd1bmRlZmluZWQnKSAmJiAodmFsIGluc3RhbmNlb2YgRm9ybURhdGEpO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgdmlldyBvbiBhbiBBcnJheUJ1ZmZlclxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgdmlldyBvbiBhbiBBcnJheUJ1ZmZlciwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlCdWZmZXJWaWV3KHZhbCkge1xuICB2YXIgcmVzdWx0O1xuICBpZiAoKHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcpICYmIChBcnJheUJ1ZmZlci5pc1ZpZXcpKSB7XG4gICAgcmVzdWx0ID0gQXJyYXlCdWZmZXIuaXNWaWV3KHZhbCk7XG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0ID0gKHZhbCkgJiYgKHZhbC5idWZmZXIpICYmICh2YWwuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBTdHJpbmdcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIFN0cmluZywgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3RyaW5nKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ3N0cmluZyc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBOdW1iZXJcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIE51bWJlciwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzTnVtYmVyKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ251bWJlcic7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYW4gT2JqZWN0XG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYW4gT2JqZWN0LCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsKSB7XG4gIHJldHVybiB2YWwgIT09IG51bGwgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBwbGFpbiBPYmplY3RcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgcGxhaW4gT2JqZWN0LCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWwpIHtcbiAgaWYgKHRvU3RyaW5nLmNhbGwodmFsKSAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgcHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbCk7XG4gIHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlID09PSBPYmplY3QucHJvdG90eXBlO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRGF0ZVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgRGF0ZSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRGF0ZSh2YWwpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgRGF0ZV0nO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRmlsZVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgRmlsZSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRmlsZSh2YWwpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgRmlsZV0nO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgQmxvYlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgQmxvYiwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQmxvYih2YWwpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgQmxvYl0nO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRnVuY3Rpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIEZ1bmN0aW9uLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNGdW5jdGlvbih2YWwpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIFN0cmVhbVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgU3RyZWFtLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNTdHJlYW0odmFsKSB7XG4gIHJldHVybiBpc09iamVjdCh2YWwpICYmIGlzRnVuY3Rpb24odmFsLnBpcGUpO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgVVJMU2VhcmNoUGFyYW1zIG9iamVjdFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgVVJMU2VhcmNoUGFyYW1zIG9iamVjdCwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzVVJMU2VhcmNoUGFyYW1zKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIFVSTFNlYXJjaFBhcmFtcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsIGluc3RhbmNlb2YgVVJMU2VhcmNoUGFyYW1zO1xufVxuXG4vKipcbiAqIFRyaW0gZXhjZXNzIHdoaXRlc3BhY2Ugb2ZmIHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiBhIHN0cmluZ1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHIgVGhlIFN0cmluZyB0byB0cmltXG4gKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgU3RyaW5nIGZyZWVkIG9mIGV4Y2VzcyB3aGl0ZXNwYWNlXG4gKi9cbmZ1bmN0aW9uIHRyaW0oc3RyKSB7XG4gIHJldHVybiBzdHIudHJpbSA/IHN0ci50cmltKCkgOiBzdHIucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiB3ZSdyZSBydW5uaW5nIGluIGEgc3RhbmRhcmQgYnJvd3NlciBlbnZpcm9ubWVudFxuICpcbiAqIFRoaXMgYWxsb3dzIGF4aW9zIHRvIHJ1biBpbiBhIHdlYiB3b3JrZXIsIGFuZCByZWFjdC1uYXRpdmUuXG4gKiBCb3RoIGVudmlyb25tZW50cyBzdXBwb3J0IFhNTEh0dHBSZXF1ZXN0LCBidXQgbm90IGZ1bGx5IHN0YW5kYXJkIGdsb2JhbHMuXG4gKlxuICogd2ViIHdvcmtlcnM6XG4gKiAgdHlwZW9mIHdpbmRvdyAtPiB1bmRlZmluZWRcbiAqICB0eXBlb2YgZG9jdW1lbnQgLT4gdW5kZWZpbmVkXG4gKlxuICogcmVhY3QtbmF0aXZlOlxuICogIG5hdmlnYXRvci5wcm9kdWN0IC0+ICdSZWFjdE5hdGl2ZSdcbiAqIG5hdGl2ZXNjcmlwdFxuICogIG5hdmlnYXRvci5wcm9kdWN0IC0+ICdOYXRpdmVTY3JpcHQnIG9yICdOUydcbiAqL1xuZnVuY3Rpb24gaXNTdGFuZGFyZEJyb3dzZXJFbnYoKSB7XG4gIGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiAobmF2aWdhdG9yLnByb2R1Y3QgPT09ICdSZWFjdE5hdGl2ZScgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3IucHJvZHVjdCA9PT0gJ05hdGl2ZVNjcmlwdCcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3IucHJvZHVjdCA9PT0gJ05TJykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIChcbiAgICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCdcbiAgKTtcbn1cblxuLyoqXG4gKiBJdGVyYXRlIG92ZXIgYW4gQXJyYXkgb3IgYW4gT2JqZWN0IGludm9raW5nIGEgZnVuY3Rpb24gZm9yIGVhY2ggaXRlbS5cbiAqXG4gKiBJZiBgb2JqYCBpcyBhbiBBcnJheSBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBwYXNzaW5nXG4gKiB0aGUgdmFsdWUsIGluZGV4LCBhbmQgY29tcGxldGUgYXJyYXkgZm9yIGVhY2ggaXRlbS5cbiAqXG4gKiBJZiAnb2JqJyBpcyBhbiBPYmplY3QgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgcGFzc2luZ1xuICogdGhlIHZhbHVlLCBrZXksIGFuZCBjb21wbGV0ZSBvYmplY3QgZm9yIGVhY2ggcHJvcGVydHkuXG4gKlxuICogQHBhcmFtIHtPYmplY3R8QXJyYXl9IG9iaiBUaGUgb2JqZWN0IHRvIGl0ZXJhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBjYWxsYmFjayB0byBpbnZva2UgZm9yIGVhY2ggaXRlbVxuICovXG5mdW5jdGlvbiBmb3JFYWNoKG9iaiwgZm4pIHtcbiAgLy8gRG9uJ3QgYm90aGVyIGlmIG5vIHZhbHVlIHByb3ZpZGVkXG4gIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBGb3JjZSBhbiBhcnJheSBpZiBub3QgYWxyZWFkeSBzb21ldGhpbmcgaXRlcmFibGVcbiAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgLyplc2xpbnQgbm8tcGFyYW0tcmVhc3NpZ246MCovXG4gICAgb2JqID0gW29ial07XG4gIH1cblxuICBpZiAoaXNBcnJheShvYmopKSB7XG4gICAgLy8gSXRlcmF0ZSBvdmVyIGFycmF5IHZhbHVlc1xuICAgIGZvciAodmFyIGkgPSAwLCBsID0gb2JqLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgZm4uY2FsbChudWxsLCBvYmpbaV0sIGksIG9iaik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIEl0ZXJhdGUgb3ZlciBvYmplY3Qga2V5c1xuICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgIGZuLmNhbGwobnVsbCwgb2JqW2tleV0sIGtleSwgb2JqKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBY2NlcHRzIHZhcmFyZ3MgZXhwZWN0aW5nIGVhY2ggYXJndW1lbnQgdG8gYmUgYW4gb2JqZWN0LCB0aGVuXG4gKiBpbW11dGFibHkgbWVyZ2VzIHRoZSBwcm9wZXJ0aWVzIG9mIGVhY2ggb2JqZWN0IGFuZCByZXR1cm5zIHJlc3VsdC5cbiAqXG4gKiBXaGVuIG11bHRpcGxlIG9iamVjdHMgY29udGFpbiB0aGUgc2FtZSBrZXkgdGhlIGxhdGVyIG9iamVjdCBpblxuICogdGhlIGFyZ3VtZW50cyBsaXN0IHdpbGwgdGFrZSBwcmVjZWRlbmNlLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogYGBganNcbiAqIHZhciByZXN1bHQgPSBtZXJnZSh7Zm9vOiAxMjN9LCB7Zm9vOiA0NTZ9KTtcbiAqIGNvbnNvbGUubG9nKHJlc3VsdC5mb28pOyAvLyBvdXRwdXRzIDQ1NlxuICogYGBgXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9iajEgT2JqZWN0IHRvIG1lcmdlXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXN1bHQgb2YgYWxsIG1lcmdlIHByb3BlcnRpZXNcbiAqL1xuZnVuY3Rpb24gbWVyZ2UoLyogb2JqMSwgb2JqMiwgb2JqMywgLi4uICovKSB7XG4gIHZhciByZXN1bHQgPSB7fTtcbiAgZnVuY3Rpb24gYXNzaWduVmFsdWUodmFsLCBrZXkpIHtcbiAgICBpZiAoaXNQbGFpbk9iamVjdChyZXN1bHRba2V5XSkgJiYgaXNQbGFpbk9iamVjdCh2YWwpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IG1lcmdlKHJlc3VsdFtrZXldLCB2YWwpO1xuICAgIH0gZWxzZSBpZiAoaXNQbGFpbk9iamVjdCh2YWwpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IG1lcmdlKHt9LCB2YWwpO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheSh2YWwpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IHZhbC5zbGljZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRba2V5XSA9IHZhbDtcbiAgICB9XG4gIH1cblxuICBmb3IgKHZhciBpID0gMCwgbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBmb3JFYWNoKGFyZ3VtZW50c1tpXSwgYXNzaWduVmFsdWUpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogRXh0ZW5kcyBvYmplY3QgYSBieSBtdXRhYmx5IGFkZGluZyB0byBpdCB0aGUgcHJvcGVydGllcyBvZiBvYmplY3QgYi5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gYSBUaGUgb2JqZWN0IHRvIGJlIGV4dGVuZGVkXG4gKiBAcGFyYW0ge09iamVjdH0gYiBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyBmcm9tXG4gKiBAcGFyYW0ge09iamVjdH0gdGhpc0FyZyBUaGUgb2JqZWN0IHRvIGJpbmQgZnVuY3Rpb24gdG9cbiAqIEByZXR1cm4ge09iamVjdH0gVGhlIHJlc3VsdGluZyB2YWx1ZSBvZiBvYmplY3QgYVxuICovXG5mdW5jdGlvbiBleHRlbmQoYSwgYiwgdGhpc0FyZykge1xuICBmb3JFYWNoKGIsIGZ1bmN0aW9uIGFzc2lnblZhbHVlKHZhbCwga2V5KSB7XG4gICAgaWYgKHRoaXNBcmcgJiYgdHlwZW9mIHZhbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgYVtrZXldID0gYmluZCh2YWwsIHRoaXNBcmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhW2tleV0gPSB2YWw7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGE7XG59XG5cbi8qKlxuICogUmVtb3ZlIGJ5dGUgb3JkZXIgbWFya2VyLiBUaGlzIGNhdGNoZXMgRUYgQkIgQkYgKHRoZSBVVEYtOCBCT00pXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnQgd2l0aCBCT01cbiAqIEByZXR1cm4ge3N0cmluZ30gY29udGVudCB2YWx1ZSB3aXRob3V0IEJPTVxuICovXG5mdW5jdGlvbiBzdHJpcEJPTShjb250ZW50KSB7XG4gIGlmIChjb250ZW50LmNoYXJDb2RlQXQoMCkgPT09IDB4RkVGRikge1xuICAgIGNvbnRlbnQgPSBjb250ZW50LnNsaWNlKDEpO1xuICB9XG4gIHJldHVybiBjb250ZW50O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgaXNBcnJheTogaXNBcnJheSxcbiAgaXNBcnJheUJ1ZmZlcjogaXNBcnJheUJ1ZmZlcixcbiAgaXNCdWZmZXI6IGlzQnVmZmVyLFxuICBpc0Zvcm1EYXRhOiBpc0Zvcm1EYXRhLFxuICBpc0FycmF5QnVmZmVyVmlldzogaXNBcnJheUJ1ZmZlclZpZXcsXG4gIGlzU3RyaW5nOiBpc1N0cmluZyxcbiAgaXNOdW1iZXI6IGlzTnVtYmVyLFxuICBpc09iamVjdDogaXNPYmplY3QsXG4gIGlzUGxhaW5PYmplY3Q6IGlzUGxhaW5PYmplY3QsXG4gIGlzVW5kZWZpbmVkOiBpc1VuZGVmaW5lZCxcbiAgaXNEYXRlOiBpc0RhdGUsXG4gIGlzRmlsZTogaXNGaWxlLFxuICBpc0Jsb2I6IGlzQmxvYixcbiAgaXNGdW5jdGlvbjogaXNGdW5jdGlvbixcbiAgaXNTdHJlYW06IGlzU3RyZWFtLFxuICBpc1VSTFNlYXJjaFBhcmFtczogaXNVUkxTZWFyY2hQYXJhbXMsXG4gIGlzU3RhbmRhcmRCcm93c2VyRW52OiBpc1N0YW5kYXJkQnJvd3NlckVudixcbiAgZm9yRWFjaDogZm9yRWFjaCxcbiAgbWVyZ2U6IG1lcmdlLFxuICBleHRlbmQ6IGV4dGVuZCxcbiAgdHJpbTogdHJpbSxcbiAgc3RyaXBCT006IHN0cmlwQk9NXG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/utils.js\n"); /***/ }), /***/ "./resources/assets/core/js/vendors/plugins/dropzone.init.js": /*!*******************************************************************!*\ !*** ./resources/assets/core/js/vendors/plugins/dropzone.init.js ***! \*******************************************************************/ /***/ (() => { "use strict"; eval(" //\n// Dropzone Initialization\n//\n// Set Defaults\n\nDropzone.autoDiscover = false;\nDropzone.prototype.previewTemplate = \"
\\n
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n \\n
\\n \\n Check\\n \\n \\n \\n \\n
\\n\\n
\\n \\n Error\\n \\n \\n \\n \\n \\n \\n
\\n
\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvanMvdmVuZG9ycy9wbHVnaW5zL2Ryb3B6b25lLmluaXQuanMuanMiLCJtYXBwaW5ncyI6IkNBRUE7QUFDQTtBQUNBO0FBRUE7O0FBQ0FBLFFBQVEsQ0FBQ0MsWUFBVCxHQUF3QixLQUF4QjtBQUNBRCxRQUFRLENBQUNFLFNBQVQsQ0FBbUJDLGVBQW5CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9jb3JlL2pzL3ZlbmRvcnMvcGx1Z2lucy9kcm9wem9uZS5pbml0LmpzPzA5MzUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4vL1xyXG4vLyBEcm9wem9uZSBJbml0aWFsaXphdGlvblxyXG4vL1xyXG5cclxuLy8gU2V0IERlZmF1bHRzXHJcbkRyb3B6b25lLmF1dG9EaXNjb3ZlciA9IGZhbHNlO1xyXG5Ecm9wem9uZS5wcm90b3R5cGUucHJldmlld1RlbXBsYXRlID0gYFxcXHJcbiAgICA8ZGl2IGNsYXNzPVwiZHotcHJldmlldyBkei1maWxlLXByZXZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHotaW1hZ2VcIj48aW1nIGRhdGEtZHotdGh1bWJuYWlsIC8+PC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImR6LWRldGFpbHNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImR6LXNpemVcIj48c3BhbiBkYXRhLWR6LXNpemU+PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHotZmlsZW5hbWVcIj48c3BhbiBkYXRhLWR6LW5hbWU+PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHotcHJvZ3Jlc3NcIj48c3BhbiBjbGFzcz1cImR6LXVwbG9hZFwiIGRhdGEtZHotdXBsb2FkcHJvZ3Jlc3M+PC9zcGFuPjwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHotZXJyb3ItbWVzc2FnZVwiPjxzcGFuIGRhdGEtZHotZXJyb3JtZXNzYWdlPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHotc3VjY2Vzcy1tYXJrXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI1NHB4XCIgaGVpZ2h0PVwiNTRweFwiIHZpZXdCb3g9XCIwIDAgNTQgNTRcIiB2ZXJzaW9uPVwiMS4xXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxyXG4gICAgICAgICAgICAgICAgPHRpdGxlPkNoZWNrPC90aXRsZT5cclxuICAgICAgICAgICAgICAgIDxnIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIxXCIgZmlsbD1cIm5vbmVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMy41LDMxLjg0MzE0NTggTDE3LjU4NTI0MTksMjUuOTI4Mzg3NyBDMTYuMDI0ODI1MywyNC4zNjc5NzExIDEzLjQ5MTAyOTQsMjQuMzY2ODM1IDExLjkyODkzMjIsMjUuOTI4OTMyMiBDMTAuMzcwMDEzNiwyNy40ODc4NTA4IDEwLjM2NjU5MTIsMzAuMDIzNDQ1NSAxMS45MjgzODc3LDMxLjU4NTI0MTkgTDIwLjQxNDc1ODEsNDAuMDcxNjEyMyBDMjAuNTEzMzk5OSw0MC4xNzAyNTQxIDIwLjYxNTkzMTUsNDAuMjYyNjY0OSAyMC43MjE4NjE1LDQwLjM0ODg0MzUgQzIyLjI4MzU2NjksNDEuODcyNTY1MSAyNC43OTQyMzQsNDEuODYyNjIwMiAyNi4zNDYxNTY0LDQwLjMxMDY5NzggTDQzLjMxMDY5NzgsMjMuMzQ2MTU2NCBDNDQuODc3MTAyMSwyMS43Nzk3NTIxIDQ0Ljg3NTgwNTcsMTkuMjQ4Mzg4NyA0My4zMTM3MDg1LDE3LjY4NjI5MTUgQzQxLjc1NDc4OTksMTYuMTI3MzcyOSAzOS4yMTc2MDM1LDE2LjEyNTU0MjIgMzcuNjUzODQzNiwxNy42ODkzMDIyIEwyMy41LDMxLjg0MzE0NTggWiBNMjcsNTMgQzQxLjM1OTQwMzUsNTMgNTMsNDEuMzU5NDAzNSA1MywyNyBDNTMsMTIuNjQwNTk2NSA0MS4zNTk0MDM1LDEgMjcsMSBDMTIuNjQwNTk2NSwxIDEsMTIuNjQwNTk2NSAxLDI3IEMxLDQxLjM1OTQwMzUgMTIuNjQwNTk2NSw1MyAyNyw1MyBaXCIgc3Ryb2tlLW9wYWNpdHk9XCIwLjE5ODc5NDE1OFwiIHN0cm9rZT1cIiM3NDc0NzRcIiBmaWxsLW9wYWNpdHk9XCIwLjgxNjUxOTQ3NVwiIGZpbGw9XCIjRkZGRkZGXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImR6LWVycm9yLW1hcmtcIj5cclxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjU0cHhcIiBoZWlnaHQ9XCI1NHB4XCIgdmlld0JveD1cIjAgMCA1NCA1NFwiIHZlcnNpb249XCIxLjFcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI+XHJcbiAgICAgICAgICAgICAgICA8dGl0bGU+RXJyb3I8L3RpdGxlPlxyXG4gICAgICAgICAgICAgICAgPGcgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjFcIiBmaWxsPVwibm9uZVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZyBzdHJva2U9XCIjNzQ3NDc0XCIgc3Ryb2tlLW9wYWNpdHk9XCIwLjE5ODc5NDE1OFwiIGZpbGw9XCIjRkZGRkZGXCIgZmlsbC1vcGFjaXR5PVwiMC44MTY1MTk0NzVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMyLjY1Njg1NDIsMjkgTDM4LjMxMDY5NzgsMjMuMzQ2MTU2NCBDMzkuODc3MTAyMSwyMS43Nzk3NTIxIDM5Ljg3NTgwNTcsMTkuMjQ4Mzg4NyAzOC4zMTM3MDg1LDE3LjY4NjI5MTUgQzM2Ljc1NDc4OTksMTYuMTI3MzcyOSAzNC4yMTc2MDM1LDE2LjEyNTU0MjIgMzIuNjUzODQzNiwxNy42ODkzMDIyIEwyNywyMy4zNDMxNDU4IEwyMS4zNDYxNTY0LDE3LjY4OTMwMjIgQzE5Ljc4MjM5NjUsMTYuMTI1NTQyMiAxNy4yNDUyMTAxLDE2LjEyNzM3MjkgMTUuNjg2MjkxNSwxNy42ODYyOTE1IEMxNC4xMjQxOTQzLDE5LjI0ODM4ODcgMTQuMTIyODk3OSwyMS43Nzk3NTIxIDE1LjY4OTMwMjIsMjMuMzQ2MTU2NCBMMjEuMzQzMTQ1OCwyOSBMMTUuNjg5MzAyMiwzNC42NTM4NDM2IEMxNC4xMjI4OTc5LDM2LjIyMDI0NzkgMTQuMTI0MTk0MywzOC43NTE2MTEzIDE1LjY4NjI5MTUsNDAuMzEzNzA4NSBDMTcuMjQ1MjEwMSw0MS44NzI2MjcxIDE5Ljc4MjM5NjUsNDEuODc0NDU3OCAyMS4zNDYxNTY0LDQwLjMxMDY5NzggTDI3LDM0LjY1Njg1NDIgTDMyLjY1Mzg0MzYsNDAuMzEwNjk3OCBDMzQuMjE3NjAzNSw0MS44NzQ0NTc4IDM2Ljc1NDc4OTksNDEuODcyNjI3MSAzOC4zMTM3MDg1LDQwLjMxMzcwODUgQzM5Ljg3NTgwNTcsMzguNzUxNjExMyAzOS44NzcxMDIxLDM2LjIyMDI0NzkgMzguMzEwNjk3OCwzNC42NTM4NDM2IEwzMi42NTY4NTQyLDI5IFogTTI3LDUzIEM0MS4zNTk0MDM1LDUzIDUzLDQxLjM1OTQwMzUgNTMsMjcgQzUzLDEyLjY0MDU5NjUgNDEuMzU5NDAzNSwxIDI3LDEgQzEyLjY0MDU5NjUsMSAxLDEyLjY0MDU5NjUgMSwyNyBDMSw0MS4zNTk0MDM1IDEyLjY0MDU5NjUsNTMgMjcsNTMgWlwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XFxcclxuYDsiXSwibmFtZXMiOlsiRHJvcHpvbmUiLCJhdXRvRGlzY292ZXIiLCJwcm90b3R5cGUiLCJwcmV2aWV3VGVtcGxhdGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/assets/core/js/vendors/plugins/dropzone.init.js\n"); /***/ }), /***/ "./resources/assets/core/js/vendors/plugins/sweetalert2.init.js": /*!**********************************************************************!*\ !*** ./resources/assets/core/js/vendors/plugins/sweetalert2.init.js ***! \**********************************************************************/ /***/ (() => { "use strict"; eval(" //\n// SweetAlert2 Initialization\n//\n// Set Defaults\n\nswal.mixin({\n width: 400,\n heightAuto: false,\n padding: '2.5rem',\n buttonsStyling: false,\n confirmButtonClass: 'btn btn-success',\n confirmButtonColor: null,\n cancelButtonClass: 'btn btn-secondary',\n cancelButtonColor: null\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvanMvdmVuZG9ycy9wbHVnaW5zL3N3ZWV0YWxlcnQyLmluaXQuanMuanMiLCJtYXBwaW5ncyI6IkNBRUE7QUFDQTtBQUNBO0FBRUE7O0FBQ0FBLElBQUksQ0FBQ0MsS0FBTCxDQUFXO0FBQ1ZDLEVBQUFBLEtBQUssRUFBRSxHQURHO0FBRVZDLEVBQUFBLFVBQVUsRUFBRSxLQUZGO0FBR1ZDLEVBQUFBLE9BQU8sRUFBRSxRQUhDO0FBSVZDLEVBQUFBLGNBQWMsRUFBRSxLQUpOO0FBS1ZDLEVBQUFBLGtCQUFrQixFQUFFLGlCQUxWO0FBTVZDLEVBQUFBLGtCQUFrQixFQUFFLElBTlY7QUFPVkMsRUFBQUEsaUJBQWlCLEVBQUUsbUJBUFQ7QUFRVkMsRUFBQUEsaUJBQWlCLEVBQUU7QUFSVCxDQUFYIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9jb3JlL2pzL3ZlbmRvcnMvcGx1Z2lucy9zd2VldGFsZXJ0Mi5pbml0LmpzPzY5NTciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4vL1xyXG4vLyBTd2VldEFsZXJ0MiBJbml0aWFsaXphdGlvblxyXG4vL1xyXG5cclxuLy8gU2V0IERlZmF1bHRzXHJcbnN3YWwubWl4aW4oe1xyXG5cdHdpZHRoOiA0MDAsXHJcblx0aGVpZ2h0QXV0bzogZmFsc2UsXHJcblx0cGFkZGluZzogJzIuNXJlbScsXHJcblx0YnV0dG9uc1N0eWxpbmc6IGZhbHNlLFxyXG5cdGNvbmZpcm1CdXR0b25DbGFzczogJ2J0biBidG4tc3VjY2VzcycsXHJcblx0Y29uZmlybUJ1dHRvbkNvbG9yOiBudWxsLFxyXG5cdGNhbmNlbEJ1dHRvbkNsYXNzOiAnYnRuIGJ0bi1zZWNvbmRhcnknLFxyXG5cdGNhbmNlbEJ1dHRvbkNvbG9yOiBudWxsXHJcbn0pO1xyXG4iXSwibmFtZXMiOlsic3dhbCIsIm1peGluIiwid2lkdGgiLCJoZWlnaHRBdXRvIiwicGFkZGluZyIsImJ1dHRvbnNTdHlsaW5nIiwiY29uZmlybUJ1dHRvbkNsYXNzIiwiY29uZmlybUJ1dHRvbkNvbG9yIiwiY2FuY2VsQnV0dG9uQ2xhc3MiLCJjYW5jZWxCdXR0b25Db2xvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/assets/core/js/vendors/plugins/sweetalert2.init.js\n"); /***/ }), /***/ "./resources/assets/core/plugins/bootstrap-multiselectsplitter/bootstrap-multiselectsplitter.min.js": /*!**********************************************************************************************************!*\ !*** ./resources/assets/core/plugins/bootstrap-multiselectsplitter/bootstrap-multiselectsplitter.min.js ***! \**********************************************************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { eval("/* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n+function (a) {\n \"use strict\";\n\n function c(c) {\n return this.each(function () {\n var d = a(this),\n e = d.data(\"multiselectsplitter\"),\n f = \"object\" == _typeof(c) && c;\n (e || \"destroy\" != c) && (e || d.data(\"multiselectsplitter\", e = new b(this, f)), \"string\" == typeof c && e[c]());\n });\n }\n\n var b = function b(a, _b) {\n this.init(\"multiselectsplitter\", a, _b);\n };\n\n b.DEFAULTS = {\n selectSize: null,\n maxSelectSize: null,\n clearOnFirstChange: !1,\n onlySameGroup: !1,\n groupCounter: !1,\n maximumSelected: null,\n afterInitialize: null,\n maximumAlert: function maximumAlert(a) {\n alert(\"Only \" + a + \" values can be selected\");\n },\n createFirstSelect: function createFirstSelect(a, b) {\n return \"\";\n },\n createSecondSelect: function createSecondSelect(a, b) {\n return \"\";\n },\n template: '
'\n }, b.prototype.init = function (c, d, e) {\n var f = this;\n f.type = c, f.last$ElementSelected = [], f.initialized = !1, f.$element = a(d), f.$element.hide(), f.options = a.extend({}, b.DEFAULTS, e), f.$element.after(f.options.template), f.$wrapper = f.$element.next(\"div[data-multiselectsplitter-wrapper-selector]\"), f.$firstSelect = a(\"select[data-multiselectsplitter-firstselect-selector]\", f.$wrapper), f.$secondSelect = a(\"select[data-multiselectsplitter-secondselect-selector]\", f.$wrapper);\n var g = 0,\n h = 0;\n\n if (0 != f.$element.find(\"optgroup\").length) {\n f.$element.find(\"optgroup\").each(function () {\n var b = a(this).attr(\"label\"),\n c = a(f.options.createFirstSelect(b, f.$element));\n c.val(b), c.attr(\"data-current-label\", c.text()), f.$firstSelect.append(c);\n var d = a(this).find(\"option\").length;\n d > h && (h = d), g++;\n });\n var i = Math.max(g, h);\n i = Math.min(i, 10), f.options.selectSize ? i = f.options.selectSize : f.options.maxSelectSize && (i = Math.min(i, f.options.maxSelectSize)), f.$firstSelect.attr(\"size\", i), f.$secondSelect.attr(\"size\", i), f.$element.attr(\"multiple\") && f.$secondSelect.attr(\"multiple\", \"multiple\"), f.$element.is(\":disabled\") && f.disable(), f.$firstSelect.on(\"change\", a.proxy(f.updateParentCategory, f)), f.$secondSelect.on(\"click change\", a.proxy(f.updateChildCategory, f)), f.update = function () {\n if (!(f.$element.find(\"option\").length < 1)) {\n var b,\n a = f.$element.find(\"option:selected:first\");\n b = a.length ? a.parent().attr(\"label\") : f.$element.find(\"option:first\").parent().attr(\"label\"), f.$firstSelect.find('option[value=\"' + b + '\"]').prop(\"selected\", !0), f.$firstSelect.trigger(\"change\");\n }\n }, f.update(), f.initialized = !0, f.options.afterInitialize && f.options.afterInitialize(f.$firstSelect, f.$secondSelect);\n }\n }, b.prototype.disable = function () {\n this.$secondSelect.prop(\"disabled\", !0), this.$firstSelect.prop(\"disabled\", !0);\n }, b.prototype.enable = function () {\n this.$secondSelect.prop(\"disabled\", !1), this.$firstSelect.prop(\"disabled\", !1);\n }, b.prototype.createSecondSelect = function () {\n var b = this;\n b.$secondSelect.empty(), a.each(b.$element.find('optgroup[label=\"' + b.$firstSelect.val() + '\"] option'), function (c, d) {\n var e = a(this).val(),\n f = a(this).text(),\n g = a(b.options.createSecondSelect(f, b.$firstSelect));\n g.val(e), a.each(b.$element.find(\"option:selected\"), function (b, c) {\n a(c).val() == e && g.prop(\"selected\", !0);\n }), b.$secondSelect.append(g);\n });\n }, b.prototype.updateParentCategory = function () {\n var a = this;\n a.last$ElementSelected = a.$element.find(\"option:selected\"), a.options.clearOnFirstChange && a.initialized && a.$element.find(\"option:selected\").prop(\"selected\", !1), a.createSecondSelect(), a.checkSelected(), a.updateCounter();\n }, b.prototype.updateCounter = function () {\n var b = this;\n b.$element.attr(\"multiple\") && b.options.groupCounter && a.each(b.$firstSelect.find(\"option\"), function (c, d) {\n var e = a(d).val(),\n f = a(d).data(\"currentLabel\"),\n g = b.$element.find('optgroup[label=\"' + e + '\"] option:selected').length;\n g > 0 && (f += \" (\" + g + \")\"), a(d).html(f);\n });\n }, b.prototype.checkSelected = function () {\n var b = this;\n\n if (b.$element.attr(\"multiple\") && b.options.maximumSelected) {\n var c = 0;\n\n if (c = \"function\" == typeof b.options.maximumSelected ? b.options.maximumSelected(b.$firstSelect, b.$secondSelect) : b.options.maximumSelected, !(c < 1)) {\n var d = b.$element.find(\"option:selected\");\n\n if (d.length > c) {\n b.$firstSelect.find(\"option:selected\").prop(\"selected\", !1), b.$secondSelect.find(\"option:selected\").prop(\"selected\", !1), b.initialized ? (b.$element.find(\"option:selected\").prop(\"selected\", !1), b.last$ElementSelected.prop(\"selected\", !0)) : a.each(b.$element.find(\"option:selected\"), function (b, d) {\n b > c - 1 && a(d).prop(\"selected\", !1);\n });\n var e = b.last$ElementSelected.first().parent().attr(\"label\");\n b.$firstSelect.find('option[value=\"' + e + '\"]').prop(\"selected\", !0), b.createSecondSelect(), b.options.maximumAlert(c);\n }\n }\n }\n }, b.prototype.basicUpdateChildCategory = function (b, c) {\n var d = this;\n d.last$ElementSelected = d.$element.find(\"option:selected\");\n var e = d.$secondSelect.val();\n a.isArray(e) || (e = [e]);\n var f = d.$firstSelect.val(),\n g = !1;\n d.$element.attr(\"multiple\") ? d.options.onlySameGroup ? a.each(d.$element.find(\"option:selected\"), function (b, c) {\n if (a(c).parent().attr(\"label\") != f) return g = !0, !1;\n }) : c || (g = !0) : g = !0, g ? d.$element.find(\"option:selected\").prop(\"selected\", !1) : a.each(d.$element.find(\"option:selected\"), function (b, c) {\n f == a(c).parent().attr(\"label\") && a.inArray(a(c).val(), e) == -1 && a(c).prop(\"selected\", !1);\n }), a.each(e, function (a, b) {\n d.$element.find('option[value=\"' + b + '\"]').prop(\"selected\", !0);\n }), d.checkSelected(), d.updateCounter(), d.$element.trigger(\"change\");\n }, b.prototype.updateChildCategory = function (b) {\n \"change\" == b.type ? this.timeOut = setTimeout(a.proxy(function () {\n this.basicUpdateChildCategory(b, b.ctrlKey);\n }, this), 10) : \"click\" == b.type && (clearTimeout(this.timeOut), this.basicUpdateChildCategory(b, b.ctrlKey));\n }, b.prototype.destroy = function () {\n this.$wrapper.remove(), this.$element.removeData(this.type), this.$element.show();\n }, a.fn.multiselectsplitter = c, a.fn.multiselectsplitter.Constructor = b, a.fn.multiselectsplitter.VERSION = \"1.0.1\";\n}(jQuery);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvcGx1Z2lucy9ib290c3RyYXAtbXVsdGlzZWxlY3RzcGxpdHRlci9ib290c3RyYXAtbXVsdGlzZWxlY3RzcGxpdHRlci5taW4uanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUEsQ0FBQyxVQUFTQSxDQUFULEVBQVc7QUFBQzs7QUFBYSxXQUFTQyxDQUFULENBQVdBLENBQVgsRUFBYTtBQUFDLFdBQU8sS0FBS0MsSUFBTCxDQUFVLFlBQVU7QUFBQyxVQUFJQyxDQUFDLEdBQUNILENBQUMsQ0FBQyxJQUFELENBQVA7QUFBQSxVQUFjSSxDQUFDLEdBQUNELENBQUMsQ0FBQ0UsSUFBRixDQUFPLHFCQUFQLENBQWhCO0FBQUEsVUFBOENDLENBQUMsR0FBQyxvQkFBaUJMLENBQWpCLEtBQW9CQSxDQUFwRTtBQUFzRSxPQUFDRyxDQUFDLElBQUUsYUFBV0gsQ0FBZixNQUFvQkcsQ0FBQyxJQUFFRCxDQUFDLENBQUNFLElBQUYsQ0FBTyxxQkFBUCxFQUE2QkQsQ0FBQyxHQUFDLElBQUlHLENBQUosQ0FBTSxJQUFOLEVBQVdELENBQVgsQ0FBL0IsQ0FBSCxFQUFpRCxZQUFVLE9BQU9MLENBQWpCLElBQW9CRyxDQUFDLENBQUNILENBQUQsQ0FBRCxFQUF6RjtBQUFpRyxLQUE1TCxDQUFQO0FBQXFNOztBQUFBLE1BQUlNLENBQUMsR0FBQyxXQUFTUCxDQUFULEVBQVdPLEVBQVgsRUFBYTtBQUFDLFNBQUtDLElBQUwsQ0FBVSxxQkFBVixFQUFnQ1IsQ0FBaEMsRUFBa0NPLEVBQWxDO0FBQXFDLEdBQXpEOztBQUEwREEsRUFBQUEsQ0FBQyxDQUFDRSxRQUFGLEdBQVc7QUFBQ0MsSUFBQUEsVUFBVSxFQUFDLElBQVo7QUFBaUJDLElBQUFBLGFBQWEsRUFBQyxJQUEvQjtBQUFvQ0MsSUFBQUEsa0JBQWtCLEVBQUMsQ0FBQyxDQUF4RDtBQUEwREMsSUFBQUEsYUFBYSxFQUFDLENBQUMsQ0FBekU7QUFBMkVDLElBQUFBLFlBQVksRUFBQyxDQUFDLENBQXpGO0FBQTJGQyxJQUFBQSxlQUFlLEVBQUMsSUFBM0c7QUFBZ0hDLElBQUFBLGVBQWUsRUFBQyxJQUFoSTtBQUFxSUMsSUFBQUEsWUFBWSxFQUFDLHNCQUFTakIsQ0FBVCxFQUFXO0FBQUNrQixNQUFBQSxLQUFLLENBQUMsVUFBUWxCLENBQVIsR0FBVSx5QkFBWCxDQUFMO0FBQTJDLEtBQXpNO0FBQTBNbUIsSUFBQUEsaUJBQWlCLEVBQUMsMkJBQVNuQixDQUFULEVBQVdPLENBQVgsRUFBYTtBQUFDLGFBQU0sYUFBV1AsQ0FBWCxHQUFhLFdBQW5CO0FBQStCLEtBQXpRO0FBQTBRb0IsSUFBQUEsa0JBQWtCLEVBQUMsNEJBQVNwQixDQUFULEVBQVdPLENBQVgsRUFBYTtBQUFDLGFBQU0sYUFBV1AsQ0FBWCxHQUFhLFdBQW5CO0FBQStCLEtBQTFVO0FBQTJVcUIsSUFBQUEsUUFBUSxFQUFDO0FBQXBWLEdBQVgsRUFBc3RCZCxDQUFDLENBQUNlLFNBQUYsQ0FBWWQsSUFBWixHQUFpQixVQUFTUCxDQUFULEVBQVdFLENBQVgsRUFBYUMsQ0FBYixFQUFlO0FBQUMsUUFBSUUsQ0FBQyxHQUFDLElBQU47QUFBV0EsSUFBQUEsQ0FBQyxDQUFDaUIsSUFBRixHQUFPdEIsQ0FBUCxFQUFTSyxDQUFDLENBQUNrQixvQkFBRixHQUF1QixFQUFoQyxFQUFtQ2xCLENBQUMsQ0FBQ21CLFdBQUYsR0FBYyxDQUFDLENBQWxELEVBQW9EbkIsQ0FBQyxDQUFDb0IsUUFBRixHQUFXMUIsQ0FBQyxDQUFDRyxDQUFELENBQWhFLEVBQW9FRyxDQUFDLENBQUNvQixRQUFGLENBQVdDLElBQVgsRUFBcEUsRUFBc0ZyQixDQUFDLENBQUNzQixPQUFGLEdBQVU1QixDQUFDLENBQUM2QixNQUFGLENBQVMsRUFBVCxFQUFZdEIsQ0FBQyxDQUFDRSxRQUFkLEVBQXVCTCxDQUF2QixDQUFoRyxFQUEwSEUsQ0FBQyxDQUFDb0IsUUFBRixDQUFXSSxLQUFYLENBQWlCeEIsQ0FBQyxDQUFDc0IsT0FBRixDQUFVUCxRQUEzQixDQUExSCxFQUErSmYsQ0FBQyxDQUFDeUIsUUFBRixHQUFXekIsQ0FBQyxDQUFDb0IsUUFBRixDQUFXTSxJQUFYLENBQWdCLGdEQUFoQixDQUExSyxFQUE0TzFCLENBQUMsQ0FBQzJCLFlBQUYsR0FBZWpDLENBQUMsQ0FBQyx1REFBRCxFQUF5RE0sQ0FBQyxDQUFDeUIsUUFBM0QsQ0FBNVAsRUFBaVV6QixDQUFDLENBQUM0QixhQUFGLEdBQWdCbEMsQ0FBQyxDQUFDLHdEQUFELEVBQTBETSxDQUFDLENBQUN5QixRQUE1RCxDQUFsVjtBQUF3WixRQUFJSSxDQUFDLEdBQUMsQ0FBTjtBQUFBLFFBQVFDLENBQUMsR0FBQyxDQUFWOztBQUFZLFFBQUcsS0FBRzlCLENBQUMsQ0FBQ29CLFFBQUYsQ0FBV1csSUFBWCxDQUFnQixVQUFoQixFQUE0QkMsTUFBbEMsRUFBeUM7QUFBQ2hDLE1BQUFBLENBQUMsQ0FBQ29CLFFBQUYsQ0FBV1csSUFBWCxDQUFnQixVQUFoQixFQUE0Qm5DLElBQTVCLENBQWlDLFlBQVU7QUFBQyxZQUFJSyxDQUFDLEdBQUNQLENBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUXVDLElBQVIsQ0FBYSxPQUFiLENBQU47QUFBQSxZQUE0QnRDLENBQUMsR0FBQ0QsQ0FBQyxDQUFDTSxDQUFDLENBQUNzQixPQUFGLENBQVVULGlCQUFWLENBQTRCWixDQUE1QixFQUE4QkQsQ0FBQyxDQUFDb0IsUUFBaEMsQ0FBRCxDQUEvQjtBQUEyRXpCLFFBQUFBLENBQUMsQ0FBQ3VDLEdBQUYsQ0FBTWpDLENBQU4sR0FBU04sQ0FBQyxDQUFDc0MsSUFBRixDQUFPLG9CQUFQLEVBQTRCdEMsQ0FBQyxDQUFDd0MsSUFBRixFQUE1QixDQUFULEVBQStDbkMsQ0FBQyxDQUFDMkIsWUFBRixDQUFlUyxNQUFmLENBQXNCekMsQ0FBdEIsQ0FBL0M7QUFBd0UsWUFBSUUsQ0FBQyxHQUFDSCxDQUFDLENBQUMsSUFBRCxDQUFELENBQVFxQyxJQUFSLENBQWEsUUFBYixFQUF1QkMsTUFBN0I7QUFBb0NuQyxRQUFBQSxDQUFDLEdBQUNpQyxDQUFGLEtBQU1BLENBQUMsR0FBQ2pDLENBQVIsR0FBV2dDLENBQUMsRUFBWjtBQUFlLE9BQWxQO0FBQW9QLFVBQUlRLENBQUMsR0FBQ0MsSUFBSSxDQUFDQyxHQUFMLENBQVNWLENBQVQsRUFBV0MsQ0FBWCxDQUFOO0FBQW9CTyxNQUFBQSxDQUFDLEdBQUNDLElBQUksQ0FBQ0UsR0FBTCxDQUFTSCxDQUFULEVBQVcsRUFBWCxDQUFGLEVBQWlCckMsQ0FBQyxDQUFDc0IsT0FBRixDQUFVbEIsVUFBVixHQUFxQmlDLENBQUMsR0FBQ3JDLENBQUMsQ0FBQ3NCLE9BQUYsQ0FBVWxCLFVBQWpDLEdBQTRDSixDQUFDLENBQUNzQixPQUFGLENBQVVqQixhQUFWLEtBQTBCZ0MsQ0FBQyxHQUFDQyxJQUFJLENBQUNFLEdBQUwsQ0FBU0gsQ0FBVCxFQUFXckMsQ0FBQyxDQUFDc0IsT0FBRixDQUFVakIsYUFBckIsQ0FBNUIsQ0FBN0QsRUFBOEhMLENBQUMsQ0FBQzJCLFlBQUYsQ0FBZU0sSUFBZixDQUFvQixNQUFwQixFQUEyQkksQ0FBM0IsQ0FBOUgsRUFBNEpyQyxDQUFDLENBQUM0QixhQUFGLENBQWdCSyxJQUFoQixDQUFxQixNQUFyQixFQUE0QkksQ0FBNUIsQ0FBNUosRUFBMkxyQyxDQUFDLENBQUNvQixRQUFGLENBQVdhLElBQVgsQ0FBZ0IsVUFBaEIsS0FBNkJqQyxDQUFDLENBQUM0QixhQUFGLENBQWdCSyxJQUFoQixDQUFxQixVQUFyQixFQUFnQyxVQUFoQyxDQUF4TixFQUFvUWpDLENBQUMsQ0FBQ29CLFFBQUYsQ0FBV3FCLEVBQVgsQ0FBYyxXQUFkLEtBQTRCekMsQ0FBQyxDQUFDMEMsT0FBRixFQUFoUyxFQUE0UzFDLENBQUMsQ0FBQzJCLFlBQUYsQ0FBZWdCLEVBQWYsQ0FBa0IsUUFBbEIsRUFBMkJqRCxDQUFDLENBQUNrRCxLQUFGLENBQVE1QyxDQUFDLENBQUM2QyxvQkFBVixFQUErQjdDLENBQS9CLENBQTNCLENBQTVTLEVBQTBXQSxDQUFDLENBQUM0QixhQUFGLENBQWdCZSxFQUFoQixDQUFtQixjQUFuQixFQUFrQ2pELENBQUMsQ0FBQ2tELEtBQUYsQ0FBUTVDLENBQUMsQ0FBQzhDLG1CQUFWLEVBQThCOUMsQ0FBOUIsQ0FBbEMsQ0FBMVcsRUFBOGFBLENBQUMsQ0FBQytDLE1BQUYsR0FBUyxZQUFVO0FBQUMsWUFBRyxFQUFFL0MsQ0FBQyxDQUFDb0IsUUFBRixDQUFXVyxJQUFYLENBQWdCLFFBQWhCLEVBQTBCQyxNQUExQixHQUFpQyxDQUFuQyxDQUFILEVBQXlDO0FBQUMsY0FBSS9CLENBQUo7QUFBQSxjQUFNUCxDQUFDLEdBQUNNLENBQUMsQ0FBQ29CLFFBQUYsQ0FBV1csSUFBWCxDQUFnQix1QkFBaEIsQ0FBUjtBQUFpRDlCLFVBQUFBLENBQUMsR0FBQ1AsQ0FBQyxDQUFDc0MsTUFBRixHQUFTdEMsQ0FBQyxDQUFDc0QsTUFBRixHQUFXZixJQUFYLENBQWdCLE9BQWhCLENBQVQsR0FBa0NqQyxDQUFDLENBQUNvQixRQUFGLENBQVdXLElBQVgsQ0FBZ0IsY0FBaEIsRUFBZ0NpQixNQUFoQyxHQUF5Q2YsSUFBekMsQ0FBOEMsT0FBOUMsQ0FBcEMsRUFBMkZqQyxDQUFDLENBQUMyQixZQUFGLENBQWVJLElBQWYsQ0FBb0IsbUJBQWlCOUIsQ0FBakIsR0FBbUIsSUFBdkMsRUFBNkNnRCxJQUE3QyxDQUFrRCxVQUFsRCxFQUE2RCxDQUFDLENBQTlELENBQTNGLEVBQTRKakQsQ0FBQyxDQUFDMkIsWUFBRixDQUFldUIsT0FBZixDQUF1QixRQUF2QixDQUE1SjtBQUE2TDtBQUFDLE9BQTN0QixFQUE0dEJsRCxDQUFDLENBQUMrQyxNQUFGLEVBQTV0QixFQUF1dUIvQyxDQUFDLENBQUNtQixXQUFGLEdBQWMsQ0FBQyxDQUF0dkIsRUFBd3ZCbkIsQ0FBQyxDQUFDc0IsT0FBRixDQUFVWixlQUFWLElBQTJCVixDQUFDLENBQUNzQixPQUFGLENBQVVaLGVBQVYsQ0FBMEJWLENBQUMsQ0FBQzJCLFlBQTVCLEVBQXlDM0IsQ0FBQyxDQUFDNEIsYUFBM0MsQ0FBbnhCO0FBQTYwQjtBQUFDLEdBQXR5RSxFQUF1eUUzQixDQUFDLENBQUNlLFNBQUYsQ0FBWTBCLE9BQVosR0FBb0IsWUFBVTtBQUFDLFNBQUtkLGFBQUwsQ0FBbUJxQixJQUFuQixDQUF3QixVQUF4QixFQUFtQyxDQUFDLENBQXBDLEdBQXVDLEtBQUt0QixZQUFMLENBQWtCc0IsSUFBbEIsQ0FBdUIsVUFBdkIsRUFBa0MsQ0FBQyxDQUFuQyxDQUF2QztBQUE2RSxHQUFuNUUsRUFBbzVFaEQsQ0FBQyxDQUFDZSxTQUFGLENBQVltQyxNQUFaLEdBQW1CLFlBQVU7QUFBQyxTQUFLdkIsYUFBTCxDQUFtQnFCLElBQW5CLENBQXdCLFVBQXhCLEVBQW1DLENBQUMsQ0FBcEMsR0FBdUMsS0FBS3RCLFlBQUwsQ0FBa0JzQixJQUFsQixDQUF1QixVQUF2QixFQUFrQyxDQUFDLENBQW5DLENBQXZDO0FBQTZFLEdBQS8vRSxFQUFnZ0ZoRCxDQUFDLENBQUNlLFNBQUYsQ0FBWUYsa0JBQVosR0FBK0IsWUFBVTtBQUFDLFFBQUliLENBQUMsR0FBQyxJQUFOO0FBQVdBLElBQUFBLENBQUMsQ0FBQzJCLGFBQUYsQ0FBZ0J3QixLQUFoQixJQUF3QjFELENBQUMsQ0FBQ0UsSUFBRixDQUFPSyxDQUFDLENBQUNtQixRQUFGLENBQVdXLElBQVgsQ0FBZ0IscUJBQW1COUIsQ0FBQyxDQUFDMEIsWUFBRixDQUFlTyxHQUFmLEVBQW5CLEdBQXdDLFdBQXhELENBQVAsRUFBNEUsVUFBU3ZDLENBQVQsRUFBV0UsQ0FBWCxFQUFhO0FBQUMsVUFBSUMsQ0FBQyxHQUFDSixDQUFDLENBQUMsSUFBRCxDQUFELENBQVF3QyxHQUFSLEVBQU47QUFBQSxVQUFvQmxDLENBQUMsR0FBQ04sQ0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFReUMsSUFBUixFQUF0QjtBQUFBLFVBQXFDTixDQUFDLEdBQUNuQyxDQUFDLENBQUNPLENBQUMsQ0FBQ3FCLE9BQUYsQ0FBVVIsa0JBQVYsQ0FBNkJkLENBQTdCLEVBQStCQyxDQUFDLENBQUMwQixZQUFqQyxDQUFELENBQXhDO0FBQXlGRSxNQUFBQSxDQUFDLENBQUNLLEdBQUYsQ0FBTXBDLENBQU4sR0FBU0osQ0FBQyxDQUFDRSxJQUFGLENBQU9LLENBQUMsQ0FBQ21CLFFBQUYsQ0FBV1csSUFBWCxDQUFnQixpQkFBaEIsQ0FBUCxFQUEwQyxVQUFTOUIsQ0FBVCxFQUFXTixDQUFYLEVBQWE7QUFBQ0QsUUFBQUEsQ0FBQyxDQUFDQyxDQUFELENBQUQsQ0FBS3VDLEdBQUwsTUFBWXBDLENBQVosSUFBZStCLENBQUMsQ0FBQ29CLElBQUYsQ0FBTyxVQUFQLEVBQWtCLENBQUMsQ0FBbkIsQ0FBZjtBQUFxQyxPQUE3RixDQUFULEVBQXdHaEQsQ0FBQyxDQUFDMkIsYUFBRixDQUFnQlEsTUFBaEIsQ0FBdUJQLENBQXZCLENBQXhHO0FBQWtJLEtBQXJULENBQXhCO0FBQStVLEdBQXA0RixFQUFxNEY1QixDQUFDLENBQUNlLFNBQUYsQ0FBWTZCLG9CQUFaLEdBQWlDLFlBQVU7QUFBQyxRQUFJbkQsQ0FBQyxHQUFDLElBQU47QUFBV0EsSUFBQUEsQ0FBQyxDQUFDd0Isb0JBQUYsR0FBdUJ4QixDQUFDLENBQUMwQixRQUFGLENBQVdXLElBQVgsQ0FBZ0IsaUJBQWhCLENBQXZCLEVBQTBEckMsQ0FBQyxDQUFDNEIsT0FBRixDQUFVaEIsa0JBQVYsSUFBOEJaLENBQUMsQ0FBQ3lCLFdBQWhDLElBQTZDekIsQ0FBQyxDQUFDMEIsUUFBRixDQUFXVyxJQUFYLENBQWdCLGlCQUFoQixFQUFtQ2tCLElBQW5DLENBQXdDLFVBQXhDLEVBQW1ELENBQUMsQ0FBcEQsQ0FBdkcsRUFBOEp2RCxDQUFDLENBQUNvQixrQkFBRixFQUE5SixFQUFxTHBCLENBQUMsQ0FBQzJELGFBQUYsRUFBckwsRUFBdU0zRCxDQUFDLENBQUM0RCxhQUFGLEVBQXZNO0FBQXlOLEdBQXJwRyxFQUFzcEdyRCxDQUFDLENBQUNlLFNBQUYsQ0FBWXNDLGFBQVosR0FBMEIsWUFBVTtBQUFDLFFBQUlyRCxDQUFDLEdBQUMsSUFBTjtBQUFXQSxJQUFBQSxDQUFDLENBQUNtQixRQUFGLENBQVdhLElBQVgsQ0FBZ0IsVUFBaEIsS0FBNkJoQyxDQUFDLENBQUNxQixPQUFGLENBQVVkLFlBQXZDLElBQXFEZCxDQUFDLENBQUNFLElBQUYsQ0FBT0ssQ0FBQyxDQUFDMEIsWUFBRixDQUFlSSxJQUFmLENBQW9CLFFBQXBCLENBQVAsRUFBcUMsVUFBU3BDLENBQVQsRUFBV0UsQ0FBWCxFQUFhO0FBQUMsVUFBSUMsQ0FBQyxHQUFDSixDQUFDLENBQUNHLENBQUQsQ0FBRCxDQUFLcUMsR0FBTCxFQUFOO0FBQUEsVUFBaUJsQyxDQUFDLEdBQUNOLENBQUMsQ0FBQ0csQ0FBRCxDQUFELENBQUtFLElBQUwsQ0FBVSxjQUFWLENBQW5CO0FBQUEsVUFBNkM4QixDQUFDLEdBQUM1QixDQUFDLENBQUNtQixRQUFGLENBQVdXLElBQVgsQ0FBZ0IscUJBQW1CakMsQ0FBbkIsR0FBcUIsb0JBQXJDLEVBQTJEa0MsTUFBMUc7QUFBaUhILE1BQUFBLENBQUMsR0FBQyxDQUFGLEtBQU03QixDQUFDLElBQUUsT0FBSzZCLENBQUwsR0FBTyxHQUFoQixHQUFxQm5DLENBQUMsQ0FBQ0csQ0FBRCxDQUFELENBQUswRCxJQUFMLENBQVV2RCxDQUFWLENBQXJCO0FBQWtDLEtBQXRNLENBQXJEO0FBQTZQLEdBQW44RyxFQUFvOEdDLENBQUMsQ0FBQ2UsU0FBRixDQUFZcUMsYUFBWixHQUEwQixZQUFVO0FBQUMsUUFBSXBELENBQUMsR0FBQyxJQUFOOztBQUFXLFFBQUdBLENBQUMsQ0FBQ21CLFFBQUYsQ0FBV2EsSUFBWCxDQUFnQixVQUFoQixLQUE2QmhDLENBQUMsQ0FBQ3FCLE9BQUYsQ0FBVWIsZUFBMUMsRUFBMEQ7QUFBQyxVQUFJZCxDQUFDLEdBQUMsQ0FBTjs7QUFBUSxVQUFHQSxDQUFDLEdBQUMsY0FBWSxPQUFPTSxDQUFDLENBQUNxQixPQUFGLENBQVViLGVBQTdCLEdBQTZDUixDQUFDLENBQUNxQixPQUFGLENBQVViLGVBQVYsQ0FBMEJSLENBQUMsQ0FBQzBCLFlBQTVCLEVBQXlDMUIsQ0FBQyxDQUFDMkIsYUFBM0MsQ0FBN0MsR0FBdUczQixDQUFDLENBQUNxQixPQUFGLENBQVViLGVBQW5ILEVBQW1JLEVBQUVkLENBQUMsR0FBQyxDQUFKLENBQXRJLEVBQTZJO0FBQUMsWUFBSUUsQ0FBQyxHQUFDSSxDQUFDLENBQUNtQixRQUFGLENBQVdXLElBQVgsQ0FBZ0IsaUJBQWhCLENBQU47O0FBQXlDLFlBQUdsQyxDQUFDLENBQUNtQyxNQUFGLEdBQVNyQyxDQUFaLEVBQWM7QUFBQ00sVUFBQUEsQ0FBQyxDQUFDMEIsWUFBRixDQUFlSSxJQUFmLENBQW9CLGlCQUFwQixFQUF1Q2tCLElBQXZDLENBQTRDLFVBQTVDLEVBQXVELENBQUMsQ0FBeEQsR0FBMkRoRCxDQUFDLENBQUMyQixhQUFGLENBQWdCRyxJQUFoQixDQUFxQixpQkFBckIsRUFBd0NrQixJQUF4QyxDQUE2QyxVQUE3QyxFQUF3RCxDQUFDLENBQXpELENBQTNELEVBQXVIaEQsQ0FBQyxDQUFDa0IsV0FBRixJQUFlbEIsQ0FBQyxDQUFDbUIsUUFBRixDQUFXVyxJQUFYLENBQWdCLGlCQUFoQixFQUFtQ2tCLElBQW5DLENBQXdDLFVBQXhDLEVBQW1ELENBQUMsQ0FBcEQsR0FBdURoRCxDQUFDLENBQUNpQixvQkFBRixDQUF1QitCLElBQXZCLENBQTRCLFVBQTVCLEVBQXVDLENBQUMsQ0FBeEMsQ0FBdEUsSUFBa0h2RCxDQUFDLENBQUNFLElBQUYsQ0FBT0ssQ0FBQyxDQUFDbUIsUUFBRixDQUFXVyxJQUFYLENBQWdCLGlCQUFoQixDQUFQLEVBQTBDLFVBQVM5QixDQUFULEVBQVdKLENBQVgsRUFBYTtBQUFDSSxZQUFBQSxDQUFDLEdBQUNOLENBQUMsR0FBQyxDQUFKLElBQU9ELENBQUMsQ0FBQ0csQ0FBRCxDQUFELENBQUtvRCxJQUFMLENBQVUsVUFBVixFQUFxQixDQUFDLENBQXRCLENBQVA7QUFBZ0MsV0FBeEYsQ0FBek87QUFBbVUsY0FBSW5ELENBQUMsR0FBQ0csQ0FBQyxDQUFDaUIsb0JBQUYsQ0FBdUJzQyxLQUF2QixHQUErQlIsTUFBL0IsR0FBd0NmLElBQXhDLENBQTZDLE9BQTdDLENBQU47QUFBNERoQyxVQUFBQSxDQUFDLENBQUMwQixZQUFGLENBQWVJLElBQWYsQ0FBb0IsbUJBQWlCakMsQ0FBakIsR0FBbUIsSUFBdkMsRUFBNkNtRCxJQUE3QyxDQUFrRCxVQUFsRCxFQUE2RCxDQUFDLENBQTlELEdBQWlFaEQsQ0FBQyxDQUFDYSxrQkFBRixFQUFqRSxFQUF3RmIsQ0FBQyxDQUFDcUIsT0FBRixDQUFVWCxZQUFWLENBQXVCaEIsQ0FBdkIsQ0FBeEY7QUFBa0g7QUFBQztBQUFDO0FBQUMsR0FBanZJLEVBQWt2SU0sQ0FBQyxDQUFDZSxTQUFGLENBQVl5Qyx3QkFBWixHQUFxQyxVQUFTeEQsQ0FBVCxFQUFXTixDQUFYLEVBQWE7QUFBQyxRQUFJRSxDQUFDLEdBQUMsSUFBTjtBQUFXQSxJQUFBQSxDQUFDLENBQUNxQixvQkFBRixHQUF1QnJCLENBQUMsQ0FBQ3VCLFFBQUYsQ0FBV1csSUFBWCxDQUFnQixpQkFBaEIsQ0FBdkI7QUFBMEQsUUFBSWpDLENBQUMsR0FBQ0QsQ0FBQyxDQUFDK0IsYUFBRixDQUFnQk0sR0FBaEIsRUFBTjtBQUE0QnhDLElBQUFBLENBQUMsQ0FBQ2dFLE9BQUYsQ0FBVTVELENBQVYsTUFBZUEsQ0FBQyxHQUFDLENBQUNBLENBQUQsQ0FBakI7QUFBc0IsUUFBSUUsQ0FBQyxHQUFDSCxDQUFDLENBQUM4QixZQUFGLENBQWVPLEdBQWYsRUFBTjtBQUFBLFFBQTJCTCxDQUFDLEdBQUMsQ0FBQyxDQUE5QjtBQUFnQ2hDLElBQUFBLENBQUMsQ0FBQ3VCLFFBQUYsQ0FBV2EsSUFBWCxDQUFnQixVQUFoQixJQUE0QnBDLENBQUMsQ0FBQ3lCLE9BQUYsQ0FBVWYsYUFBVixHQUF3QmIsQ0FBQyxDQUFDRSxJQUFGLENBQU9DLENBQUMsQ0FBQ3VCLFFBQUYsQ0FBV1csSUFBWCxDQUFnQixpQkFBaEIsQ0FBUCxFQUEwQyxVQUFTOUIsQ0FBVCxFQUFXTixDQUFYLEVBQWE7QUFBQyxVQUFHRCxDQUFDLENBQUNDLENBQUQsQ0FBRCxDQUFLcUQsTUFBTCxHQUFjZixJQUFkLENBQW1CLE9BQW5CLEtBQTZCakMsQ0FBaEMsRUFBa0MsT0FBTzZCLENBQUMsR0FBQyxDQUFDLENBQUgsRUFBSyxDQUFDLENBQWI7QUFBZSxLQUF6RyxDQUF4QixHQUFtSWxDLENBQUMsS0FBR2tDLENBQUMsR0FBQyxDQUFDLENBQU4sQ0FBaEssR0FBeUtBLENBQUMsR0FBQyxDQUFDLENBQTVLLEVBQThLQSxDQUFDLEdBQUNoQyxDQUFDLENBQUN1QixRQUFGLENBQVdXLElBQVgsQ0FBZ0IsaUJBQWhCLEVBQW1Da0IsSUFBbkMsQ0FBd0MsVUFBeEMsRUFBbUQsQ0FBQyxDQUFwRCxDQUFELEdBQXdEdkQsQ0FBQyxDQUFDRSxJQUFGLENBQU9DLENBQUMsQ0FBQ3VCLFFBQUYsQ0FBV1csSUFBWCxDQUFnQixpQkFBaEIsQ0FBUCxFQUEwQyxVQUFTOUIsQ0FBVCxFQUFXTixDQUFYLEVBQWE7QUFBQ0ssTUFBQUEsQ0FBQyxJQUFFTixDQUFDLENBQUNDLENBQUQsQ0FBRCxDQUFLcUQsTUFBTCxHQUFjZixJQUFkLENBQW1CLE9BQW5CLENBQUgsSUFBZ0N2QyxDQUFDLENBQUNpRSxPQUFGLENBQVVqRSxDQUFDLENBQUNDLENBQUQsQ0FBRCxDQUFLdUMsR0FBTCxFQUFWLEVBQXFCcEMsQ0FBckIsS0FBeUIsQ0FBQyxDQUExRCxJQUE2REosQ0FBQyxDQUFDQyxDQUFELENBQUQsQ0FBS3NELElBQUwsQ0FBVSxVQUFWLEVBQXFCLENBQUMsQ0FBdEIsQ0FBN0Q7QUFBc0YsS0FBOUksQ0FBdk8sRUFBdVh2RCxDQUFDLENBQUNFLElBQUYsQ0FBT0UsQ0FBUCxFQUFTLFVBQVNKLENBQVQsRUFBV08sQ0FBWCxFQUFhO0FBQUNKLE1BQUFBLENBQUMsQ0FBQ3VCLFFBQUYsQ0FBV1csSUFBWCxDQUFnQixtQkFBaUI5QixDQUFqQixHQUFtQixJQUFuQyxFQUF5Q2dELElBQXpDLENBQThDLFVBQTlDLEVBQXlELENBQUMsQ0FBMUQ7QUFBNkQsS0FBcEYsQ0FBdlgsRUFBNmNwRCxDQUFDLENBQUN3RCxhQUFGLEVBQTdjLEVBQStkeEQsQ0FBQyxDQUFDeUQsYUFBRixFQUEvZCxFQUFpZnpELENBQUMsQ0FBQ3VCLFFBQUYsQ0FBVzhCLE9BQVgsQ0FBbUIsUUFBbkIsQ0FBamY7QUFBOGdCLEdBQTE4SixFQUEyOEpqRCxDQUFDLENBQUNlLFNBQUYsQ0FBWThCLG1CQUFaLEdBQWdDLFVBQVM3QyxDQUFULEVBQVc7QUFBQyxnQkFBVUEsQ0FBQyxDQUFDZ0IsSUFBWixHQUFpQixLQUFLMkMsT0FBTCxHQUFhQyxVQUFVLENBQUNuRSxDQUFDLENBQUNrRCxLQUFGLENBQVEsWUFBVTtBQUFDLFdBQUthLHdCQUFMLENBQThCeEQsQ0FBOUIsRUFBZ0NBLENBQUMsQ0FBQzZELE9BQWxDO0FBQTJDLEtBQTlELEVBQStELElBQS9ELENBQUQsRUFBc0UsRUFBdEUsQ0FBeEMsR0FBa0gsV0FBUzdELENBQUMsQ0FBQ2dCLElBQVgsS0FBa0I4QyxZQUFZLENBQUMsS0FBS0gsT0FBTixDQUFaLEVBQTJCLEtBQUtILHdCQUFMLENBQThCeEQsQ0FBOUIsRUFBZ0NBLENBQUMsQ0FBQzZELE9BQWxDLENBQTdDLENBQWxIO0FBQTJNLEdBQWxzSyxFQUFtc0s3RCxDQUFDLENBQUNlLFNBQUYsQ0FBWWdELE9BQVosR0FBb0IsWUFBVTtBQUFDLFNBQUt2QyxRQUFMLENBQWN3QyxNQUFkLElBQXVCLEtBQUs3QyxRQUFMLENBQWM4QyxVQUFkLENBQXlCLEtBQUtqRCxJQUE5QixDQUF2QixFQUEyRCxLQUFLRyxRQUFMLENBQWMrQyxJQUFkLEVBQTNEO0FBQWdGLEdBQWx6SyxFQUFtekt6RSxDQUFDLENBQUMwRSxFQUFGLENBQUtDLG1CQUFMLEdBQXlCMUUsQ0FBNTBLLEVBQTgwS0QsQ0FBQyxDQUFDMEUsRUFBRixDQUFLQyxtQkFBTCxDQUF5QkMsV0FBekIsR0FBcUNyRSxDQUFuM0ssRUFBcTNLUCxDQUFDLENBQUMwRSxFQUFGLENBQUtDLG1CQUFMLENBQXlCRSxPQUF6QixHQUFpQyxPQUF0NUs7QUFBODVLLENBQXBzTCxDQUFxc0xDLE1BQXJzTCxDQUFEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9jb3JlL3BsdWdpbnMvYm9vdHN0cmFwLW11bHRpc2VsZWN0c3BsaXR0ZXIvYm9vdHN0cmFwLW11bHRpc2VsZWN0c3BsaXR0ZXIubWluLmpzPzk4MWMiXSwic291cmNlc0NvbnRlbnQiOlsiK2Z1bmN0aW9uKGEpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGMoYyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoXCJtdWx0aXNlbGVjdHNwbGl0dGVyXCIpLGY9XCJvYmplY3RcIj09dHlwZW9mIGMmJmM7KGV8fFwiZGVzdHJveVwiIT1jKSYmKGV8fGQuZGF0YShcIm11bHRpc2VsZWN0c3BsaXR0ZXJcIixlPW5ldyBiKHRoaXMsZikpLFwic3RyaW5nXCI9PXR5cGVvZiBjJiZlW2NdKCkpfSl9dmFyIGI9ZnVuY3Rpb24oYSxiKXt0aGlzLmluaXQoXCJtdWx0aXNlbGVjdHNwbGl0dGVyXCIsYSxiKX07Yi5ERUZBVUxUUz17c2VsZWN0U2l6ZTpudWxsLG1heFNlbGVjdFNpemU6bnVsbCxjbGVhck9uRmlyc3RDaGFuZ2U6ITEsb25seVNhbWVHcm91cDohMSxncm91cENvdW50ZXI6ITEsbWF4aW11bVNlbGVjdGVkOm51bGwsYWZ0ZXJJbml0aWFsaXplOm51bGwsbWF4aW11bUFsZXJ0OmZ1bmN0aW9uKGEpe2FsZXJ0KFwiT25seSBcIithK1wiIHZhbHVlcyBjYW4gYmUgc2VsZWN0ZWRcIil9LGNyZWF0ZUZpcnN0U2VsZWN0OmZ1bmN0aW9uKGEsYil7cmV0dXJuXCI8b3B0aW9uPlwiK2ErXCI8L29wdGlvbj5cIn0sY3JlYXRlU2Vjb25kU2VsZWN0OmZ1bmN0aW9uKGEsYil7cmV0dXJuXCI8b3B0aW9uPlwiK2ErXCI8L29wdGlvbj5cIn0sdGVtcGxhdGU6JzxkaXYgY2xhc3M9XCJyb3dcIiBkYXRhLW11bHRpc2VsZWN0c3BsaXR0ZXItd3JhcHBlci1zZWxlY3Rvcj48ZGl2IGNsYXNzPVwiY29sLXhzLTYgY29sLXNtLTZcIj48c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZGF0YS1tdWx0aXNlbGVjdHNwbGl0dGVyLWZpcnN0c2VsZWN0LXNlbGVjdG9yPjwvc2VsZWN0PjwvZGl2PiA8IS0tIEFkZCB0aGUgZXh0cmEgY2xlYXJmaXggZm9yIG9ubHkgdGhlIHJlcXVpcmVkIHZpZXdwb3J0IC0tPjxkaXYgY2xhc3M9XCJjb2wteHMtNiBjb2wtc20tNlwiPjxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBkYXRhLW11bHRpc2VsZWN0c3BsaXR0ZXItc2Vjb25kc2VsZWN0LXNlbGVjdG9yPjwvc2VsZWN0PjwvZGl2PjwvZGl2Pid9LGIucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oYyxkLGUpe3ZhciBmPXRoaXM7Zi50eXBlPWMsZi5sYXN0JEVsZW1lbnRTZWxlY3RlZD1bXSxmLmluaXRpYWxpemVkPSExLGYuJGVsZW1lbnQ9YShkKSxmLiRlbGVtZW50LmhpZGUoKSxmLm9wdGlvbnM9YS5leHRlbmQoe30sYi5ERUZBVUxUUyxlKSxmLiRlbGVtZW50LmFmdGVyKGYub3B0aW9ucy50ZW1wbGF0ZSksZi4kd3JhcHBlcj1mLiRlbGVtZW50Lm5leHQoXCJkaXZbZGF0YS1tdWx0aXNlbGVjdHNwbGl0dGVyLXdyYXBwZXItc2VsZWN0b3JdXCIpLGYuJGZpcnN0U2VsZWN0PWEoXCJzZWxlY3RbZGF0YS1tdWx0aXNlbGVjdHNwbGl0dGVyLWZpcnN0c2VsZWN0LXNlbGVjdG9yXVwiLGYuJHdyYXBwZXIpLGYuJHNlY29uZFNlbGVjdD1hKFwic2VsZWN0W2RhdGEtbXVsdGlzZWxlY3RzcGxpdHRlci1zZWNvbmRzZWxlY3Qtc2VsZWN0b3JdXCIsZi4kd3JhcHBlcik7dmFyIGc9MCxoPTA7aWYoMCE9Zi4kZWxlbWVudC5maW5kKFwib3B0Z3JvdXBcIikubGVuZ3RoKXtmLiRlbGVtZW50LmZpbmQoXCJvcHRncm91cFwiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9YSh0aGlzKS5hdHRyKFwibGFiZWxcIiksYz1hKGYub3B0aW9ucy5jcmVhdGVGaXJzdFNlbGVjdChiLGYuJGVsZW1lbnQpKTtjLnZhbChiKSxjLmF0dHIoXCJkYXRhLWN1cnJlbnQtbGFiZWxcIixjLnRleHQoKSksZi4kZmlyc3RTZWxlY3QuYXBwZW5kKGMpO3ZhciBkPWEodGhpcykuZmluZChcIm9wdGlvblwiKS5sZW5ndGg7ZD5oJiYoaD1kKSxnKyt9KTt2YXIgaT1NYXRoLm1heChnLGgpO2k9TWF0aC5taW4oaSwxMCksZi5vcHRpb25zLnNlbGVjdFNpemU/aT1mLm9wdGlvbnMuc2VsZWN0U2l6ZTpmLm9wdGlvbnMubWF4U2VsZWN0U2l6ZSYmKGk9TWF0aC5taW4oaSxmLm9wdGlvbnMubWF4U2VsZWN0U2l6ZSkpLGYuJGZpcnN0U2VsZWN0LmF0dHIoXCJzaXplXCIsaSksZi4kc2Vjb25kU2VsZWN0LmF0dHIoXCJzaXplXCIsaSksZi4kZWxlbWVudC5hdHRyKFwibXVsdGlwbGVcIikmJmYuJHNlY29uZFNlbGVjdC5hdHRyKFwibXVsdGlwbGVcIixcIm11bHRpcGxlXCIpLGYuJGVsZW1lbnQuaXMoXCI6ZGlzYWJsZWRcIikmJmYuZGlzYWJsZSgpLGYuJGZpcnN0U2VsZWN0Lm9uKFwiY2hhbmdlXCIsYS5wcm94eShmLnVwZGF0ZVBhcmVudENhdGVnb3J5LGYpKSxmLiRzZWNvbmRTZWxlY3Qub24oXCJjbGljayBjaGFuZ2VcIixhLnByb3h5KGYudXBkYXRlQ2hpbGRDYXRlZ29yeSxmKSksZi51cGRhdGU9ZnVuY3Rpb24oKXtpZighKGYuJGVsZW1lbnQuZmluZChcIm9wdGlvblwiKS5sZW5ndGg8MSkpe3ZhciBiLGE9Zi4kZWxlbWVudC5maW5kKFwib3B0aW9uOnNlbGVjdGVkOmZpcnN0XCIpO2I9YS5sZW5ndGg/YS5wYXJlbnQoKS5hdHRyKFwibGFiZWxcIik6Zi4kZWxlbWVudC5maW5kKFwib3B0aW9uOmZpcnN0XCIpLnBhcmVudCgpLmF0dHIoXCJsYWJlbFwiKSxmLiRmaXJzdFNlbGVjdC5maW5kKCdvcHRpb25bdmFsdWU9XCInK2IrJ1wiXScpLnByb3AoXCJzZWxlY3RlZFwiLCEwKSxmLiRmaXJzdFNlbGVjdC50cmlnZ2VyKFwiY2hhbmdlXCIpfX0sZi51cGRhdGUoKSxmLmluaXRpYWxpemVkPSEwLGYub3B0aW9ucy5hZnRlckluaXRpYWxpemUmJmYub3B0aW9ucy5hZnRlckluaXRpYWxpemUoZi4kZmlyc3RTZWxlY3QsZi4kc2Vjb25kU2VsZWN0KX19LGIucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLiRzZWNvbmRTZWxlY3QucHJvcChcImRpc2FibGVkXCIsITApLHRoaXMuJGZpcnN0U2VsZWN0LnByb3AoXCJkaXNhYmxlZFwiLCEwKX0sYi5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy4kc2Vjb25kU2VsZWN0LnByb3AoXCJkaXNhYmxlZFwiLCExKSx0aGlzLiRmaXJzdFNlbGVjdC5wcm9wKFwiZGlzYWJsZWRcIiwhMSl9LGIucHJvdG90eXBlLmNyZWF0ZVNlY29uZFNlbGVjdD1mdW5jdGlvbigpe3ZhciBiPXRoaXM7Yi4kc2Vjb25kU2VsZWN0LmVtcHR5KCksYS5lYWNoKGIuJGVsZW1lbnQuZmluZCgnb3B0Z3JvdXBbbGFiZWw9XCInK2IuJGZpcnN0U2VsZWN0LnZhbCgpKydcIl0gb3B0aW9uJyksZnVuY3Rpb24oYyxkKXt2YXIgZT1hKHRoaXMpLnZhbCgpLGY9YSh0aGlzKS50ZXh0KCksZz1hKGIub3B0aW9ucy5jcmVhdGVTZWNvbmRTZWxlY3QoZixiLiRmaXJzdFNlbGVjdCkpO2cudmFsKGUpLGEuZWFjaChiLiRlbGVtZW50LmZpbmQoXCJvcHRpb246c2VsZWN0ZWRcIiksZnVuY3Rpb24oYixjKXthKGMpLnZhbCgpPT1lJiZnLnByb3AoXCJzZWxlY3RlZFwiLCEwKX0pLGIuJHNlY29uZFNlbGVjdC5hcHBlbmQoZyl9KX0sYi5wcm90b3R5cGUudXBkYXRlUGFyZW50Q2F0ZWdvcnk9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2EubGFzdCRFbGVtZW50U2VsZWN0ZWQ9YS4kZWxlbWVudC5maW5kKFwib3B0aW9uOnNlbGVjdGVkXCIpLGEub3B0aW9ucy5jbGVhck9uRmlyc3RDaGFuZ2UmJmEuaW5pdGlhbGl6ZWQmJmEuJGVsZW1lbnQuZmluZChcIm9wdGlvbjpzZWxlY3RlZFwiKS5wcm9wKFwic2VsZWN0ZWRcIiwhMSksYS5jcmVhdGVTZWNvbmRTZWxlY3QoKSxhLmNoZWNrU2VsZWN0ZWQoKSxhLnVwZGF0ZUNvdW50ZXIoKX0sYi5wcm90b3R5cGUudXBkYXRlQ291bnRlcj1mdW5jdGlvbigpe3ZhciBiPXRoaXM7Yi4kZWxlbWVudC5hdHRyKFwibXVsdGlwbGVcIikmJmIub3B0aW9ucy5ncm91cENvdW50ZXImJmEuZWFjaChiLiRmaXJzdFNlbGVjdC5maW5kKFwib3B0aW9uXCIpLGZ1bmN0aW9uKGMsZCl7dmFyIGU9YShkKS52YWwoKSxmPWEoZCkuZGF0YShcImN1cnJlbnRMYWJlbFwiKSxnPWIuJGVsZW1lbnQuZmluZCgnb3B0Z3JvdXBbbGFiZWw9XCInK2UrJ1wiXSBvcHRpb246c2VsZWN0ZWQnKS5sZW5ndGg7Zz4wJiYoZis9XCIgKFwiK2crXCIpXCIpLGEoZCkuaHRtbChmKX0pfSxiLnByb3RvdHlwZS5jaGVja1NlbGVjdGVkPWZ1bmN0aW9uKCl7dmFyIGI9dGhpcztpZihiLiRlbGVtZW50LmF0dHIoXCJtdWx0aXBsZVwiKSYmYi5vcHRpb25zLm1heGltdW1TZWxlY3RlZCl7dmFyIGM9MDtpZihjPVwiZnVuY3Rpb25cIj09dHlwZW9mIGIub3B0aW9ucy5tYXhpbXVtU2VsZWN0ZWQ/Yi5vcHRpb25zLm1heGltdW1TZWxlY3RlZChiLiRmaXJzdFNlbGVjdCxiLiRzZWNvbmRTZWxlY3QpOmIub3B0aW9ucy5tYXhpbXVtU2VsZWN0ZWQsIShjPDEpKXt2YXIgZD1iLiRlbGVtZW50LmZpbmQoXCJvcHRpb246c2VsZWN0ZWRcIik7aWYoZC5sZW5ndGg+Yyl7Yi4kZmlyc3RTZWxlY3QuZmluZChcIm9wdGlvbjpzZWxlY3RlZFwiKS5wcm9wKFwic2VsZWN0ZWRcIiwhMSksYi4kc2Vjb25kU2VsZWN0LmZpbmQoXCJvcHRpb246c2VsZWN0ZWRcIikucHJvcChcInNlbGVjdGVkXCIsITEpLGIuaW5pdGlhbGl6ZWQ/KGIuJGVsZW1lbnQuZmluZChcIm9wdGlvbjpzZWxlY3RlZFwiKS5wcm9wKFwic2VsZWN0ZWRcIiwhMSksYi5sYXN0JEVsZW1lbnRTZWxlY3RlZC5wcm9wKFwic2VsZWN0ZWRcIiwhMCkpOmEuZWFjaChiLiRlbGVtZW50LmZpbmQoXCJvcHRpb246c2VsZWN0ZWRcIiksZnVuY3Rpb24oYixkKXtiPmMtMSYmYShkKS5wcm9wKFwic2VsZWN0ZWRcIiwhMSl9KTt2YXIgZT1iLmxhc3QkRWxlbWVudFNlbGVjdGVkLmZpcnN0KCkucGFyZW50KCkuYXR0cihcImxhYmVsXCIpO2IuJGZpcnN0U2VsZWN0LmZpbmQoJ29wdGlvblt2YWx1ZT1cIicrZSsnXCJdJykucHJvcChcInNlbGVjdGVkXCIsITApLGIuY3JlYXRlU2Vjb25kU2VsZWN0KCksYi5vcHRpb25zLm1heGltdW1BbGVydChjKX19fX0sYi5wcm90b3R5cGUuYmFzaWNVcGRhdGVDaGlsZENhdGVnb3J5PWZ1bmN0aW9uKGIsYyl7dmFyIGQ9dGhpcztkLmxhc3QkRWxlbWVudFNlbGVjdGVkPWQuJGVsZW1lbnQuZmluZChcIm9wdGlvbjpzZWxlY3RlZFwiKTt2YXIgZT1kLiRzZWNvbmRTZWxlY3QudmFsKCk7YS5pc0FycmF5KGUpfHwoZT1bZV0pO3ZhciBmPWQuJGZpcnN0U2VsZWN0LnZhbCgpLGc9ITE7ZC4kZWxlbWVudC5hdHRyKFwibXVsdGlwbGVcIik/ZC5vcHRpb25zLm9ubHlTYW1lR3JvdXA/YS5lYWNoKGQuJGVsZW1lbnQuZmluZChcIm9wdGlvbjpzZWxlY3RlZFwiKSxmdW5jdGlvbihiLGMpe2lmKGEoYykucGFyZW50KCkuYXR0cihcImxhYmVsXCIpIT1mKXJldHVybiBnPSEwLCExfSk6Y3x8KGc9ITApOmc9ITAsZz9kLiRlbGVtZW50LmZpbmQoXCJvcHRpb246c2VsZWN0ZWRcIikucHJvcChcInNlbGVjdGVkXCIsITEpOmEuZWFjaChkLiRlbGVtZW50LmZpbmQoXCJvcHRpb246c2VsZWN0ZWRcIiksZnVuY3Rpb24oYixjKXtmPT1hKGMpLnBhcmVudCgpLmF0dHIoXCJsYWJlbFwiKSYmYS5pbkFycmF5KGEoYykudmFsKCksZSk9PS0xJiZhKGMpLnByb3AoXCJzZWxlY3RlZFwiLCExKX0pLGEuZWFjaChlLGZ1bmN0aW9uKGEsYil7ZC4kZWxlbWVudC5maW5kKCdvcHRpb25bdmFsdWU9XCInK2IrJ1wiXScpLnByb3AoXCJzZWxlY3RlZFwiLCEwKX0pLGQuY2hlY2tTZWxlY3RlZCgpLGQudXBkYXRlQ291bnRlcigpLGQuJGVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKX0sYi5wcm90b3R5cGUudXBkYXRlQ2hpbGRDYXRlZ29yeT1mdW5jdGlvbihiKXtcImNoYW5nZVwiPT1iLnR5cGU/dGhpcy50aW1lT3V0PXNldFRpbWVvdXQoYS5wcm94eShmdW5jdGlvbigpe3RoaXMuYmFzaWNVcGRhdGVDaGlsZENhdGVnb3J5KGIsYi5jdHJsS2V5KX0sdGhpcyksMTApOlwiY2xpY2tcIj09Yi50eXBlJiYoY2xlYXJUaW1lb3V0KHRoaXMudGltZU91dCksdGhpcy5iYXNpY1VwZGF0ZUNoaWxkQ2F0ZWdvcnkoYixiLmN0cmxLZXkpKX0sYi5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuJHdyYXBwZXIucmVtb3ZlKCksdGhpcy4kZWxlbWVudC5yZW1vdmVEYXRhKHRoaXMudHlwZSksdGhpcy4kZWxlbWVudC5zaG93KCl9LGEuZm4ubXVsdGlzZWxlY3RzcGxpdHRlcj1jLGEuZm4ubXVsdGlzZWxlY3RzcGxpdHRlci5Db25zdHJ1Y3Rvcj1iLGEuZm4ubXVsdGlzZWxlY3RzcGxpdHRlci5WRVJTSU9OPVwiMS4wLjFcIn0oalF1ZXJ5KTsiXSwibmFtZXMiOlsiYSIsImMiLCJlYWNoIiwiZCIsImUiLCJkYXRhIiwiZiIsImIiLCJpbml0IiwiREVGQVVMVFMiLCJzZWxlY3RTaXplIiwibWF4U2VsZWN0U2l6ZSIsImNsZWFyT25GaXJzdENoYW5nZSIsIm9ubHlTYW1lR3JvdXAiLCJncm91cENvdW50ZXIiLCJtYXhpbXVtU2VsZWN0ZWQiLCJhZnRlckluaXRpYWxpemUiLCJtYXhpbXVtQWxlcnQiLCJhbGVydCIsImNyZWF0ZUZpcnN0U2VsZWN0IiwiY3JlYXRlU2Vjb25kU2VsZWN0IiwidGVtcGxhdGUiLCJwcm90b3R5cGUiLCJ0eXBlIiwibGFzdCRFbGVtZW50U2VsZWN0ZWQiLCJpbml0aWFsaXplZCIsIiRlbGVtZW50IiwiaGlkZSIsIm9wdGlvbnMiLCJleHRlbmQiLCJhZnRlciIsIiR3cmFwcGVyIiwibmV4dCIsIiRmaXJzdFNlbGVjdCIsIiRzZWNvbmRTZWxlY3QiLCJnIiwiaCIsImZpbmQiLCJsZW5ndGgiLCJhdHRyIiwidmFsIiwidGV4dCIsImFwcGVuZCIsImkiLCJNYXRoIiwibWF4IiwibWluIiwiaXMiLCJkaXNhYmxlIiwib24iLCJwcm94eSIsInVwZGF0ZVBhcmVudENhdGVnb3J5IiwidXBkYXRlQ2hpbGRDYXRlZ29yeSIsInVwZGF0ZSIsInBhcmVudCIsInByb3AiLCJ0cmlnZ2VyIiwiZW5hYmxlIiwiZW1wdHkiLCJjaGVja1NlbGVjdGVkIiwidXBkYXRlQ291bnRlciIsImh0bWwiLCJmaXJzdCIsImJhc2ljVXBkYXRlQ2hpbGRDYXRlZ29yeSIsImlzQXJyYXkiLCJpbkFycmF5IiwidGltZU91dCIsInNldFRpbWVvdXQiLCJjdHJsS2V5IiwiY2xlYXJUaW1lb3V0IiwiZGVzdHJveSIsInJlbW92ZSIsInJlbW92ZURhdGEiLCJzaG93IiwiZm4iLCJtdWx0aXNlbGVjdHNwbGl0dGVyIiwiQ29uc3RydWN0b3IiLCJWRVJTSU9OIiwialF1ZXJ5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/assets/core/plugins/bootstrap-multiselectsplitter/bootstrap-multiselectsplitter.min.js\n"); /***/ }), /***/ "./resources/assets/core/plugins/bootstrap-session-timeout/dist/bootstrap-session-timeout.min.js": /*!*******************************************************************************************************!*\ !*** ./resources/assets/core/plugins/bootstrap-session-timeout/dist/bootstrap-session-timeout.min.js ***! \*******************************************************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { eval("/* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\n!function (a) {\n \"use strict\";\n\n a.sessionTimeout = function (b) {\n function c() {\n n || (a.ajax({\n type: i.ajaxType,\n url: i.keepAliveUrl,\n data: i.ajaxData\n }), n = !0, setTimeout(function () {\n n = !1;\n }, i.keepAliveInterval));\n }\n\n function d() {\n clearTimeout(g), (i.countdownMessage || i.countdownBar) && f(\"session\", !0), \"function\" == typeof i.onStart && i.onStart(i), i.keepAlive && c(), g = setTimeout(function () {\n \"function\" != typeof i.onWarn ? a(\"#session-timeout-dialog\").modal(\"show\") : i.onWarn(i), e();\n }, i.warnAfter);\n }\n\n function e() {\n clearTimeout(g), a(\"#session-timeout-dialog\").hasClass(\"in\") || !i.countdownMessage && !i.countdownBar || f(\"dialog\", !0), g = setTimeout(function () {\n \"function\" != typeof i.onRedir ? window.location = i.redirUrl : i.onRedir(i);\n }, i.redirAfter - i.warnAfter);\n }\n\n function f(b, c) {\n clearTimeout(j.timer), \"dialog\" === b && c ? j.timeLeft = Math.floor((i.redirAfter - i.warnAfter) / 1e3) : \"session\" === b && c && (j.timeLeft = Math.floor(i.redirAfter / 1e3)), i.countdownBar && \"dialog\" === b ? j.percentLeft = Math.floor(j.timeLeft / ((i.redirAfter - i.warnAfter) / 1e3) * 100) : i.countdownBar && \"session\" === b && (j.percentLeft = Math.floor(j.timeLeft / (i.redirAfter / 1e3) * 100));\n var d = a(\".countdown-holder\"),\n e = j.timeLeft >= 0 ? j.timeLeft : 0;\n\n if (i.countdownSmart) {\n var g = Math.floor(e / 60),\n h = e % 60,\n k = g > 0 ? g + \"m\" : \"\";\n k.length > 0 && (k += \" \"), k += h + \"s\", d.text(k);\n } else d.text(e + \"s\");\n\n i.countdownBar && a(\".countdown-bar\").css(\"width\", j.percentLeft + \"%\"), j.timeLeft = j.timeLeft - 1, j.timer = setTimeout(function () {\n f(b);\n }, 1e3);\n }\n\n var g,\n h = {\n title: \"Your Session is About to Expire!\",\n message: \"Your session is about to expire.\",\n logoutButton: \"Logout\",\n keepAliveButton: \"Stay Connected\",\n keepAliveUrl: \"/keep-alive\",\n ajaxType: \"POST\",\n ajaxData: \"\",\n redirUrl: \"/timed-out\",\n logoutUrl: \"/log-out\",\n warnAfter: 9e5,\n redirAfter: 12e5,\n keepAliveInterval: 5e3,\n keepAlive: !0,\n ignoreUserActivity: !1,\n onStart: !1,\n onWarn: !1,\n onRedir: !1,\n countdownMessage: !1,\n countdownBar: !1,\n countdownSmart: !1\n },\n i = h,\n j = {};\n if (b && (i = a.extend(h, b)), i.warnAfter >= i.redirAfter) return console.error('Bootstrap-session-timeout plugin is miss-configured. Option \"redirAfter\" must be equal or greater than \"warnAfter\".'), !1;\n\n if (\"function\" != typeof i.onWarn) {\n var k = i.countdownMessage ? \"

\" + i.countdownMessage.replace(/{timer}/g, '') + \"

\" : \"\",\n l = i.countdownBar ? '
' : \"\";\n a(\"body\").append('

' + i.title + '

' + i.message + \"

\" + k + \" \" + l + '
\"), a(\"#session-timeout-dialog-logout\").on(\"click\", function () {\n window.location = i.logoutUrl;\n }), a(\"#session-timeout-dialog\").on(\"hide.bs.modal\", function () {\n d();\n });\n }\n\n if (!i.ignoreUserActivity) {\n var m = [-1, -1];\n a(document).on(\"keyup mouseup mousemove touchend touchmove\", function (b) {\n if (\"mousemove\" === b.type) {\n if (b.clientX === m[0] && b.clientY === m[1]) return;\n m[0] = b.clientX, m[1] = b.clientY;\n }\n\n d(), a(\"#session-timeout-dialog\").length > 0 && a(\"#session-timeout-dialog\").data(\"bs.modal\") && a(\"#session-timeout-dialog\").data(\"bs.modal\").isShown && (a(\"#session-timeout-dialog\").modal(\"hide\"), a(\"body\").removeClass(\"modal-open\"), a(\"div.modal-backdrop\").remove());\n });\n }\n\n var n = !1;\n d();\n };\n}(jQuery);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvcGx1Z2lucy9ib290c3RyYXAtc2Vzc2lvbi10aW1lb3V0L2Rpc3QvYm9vdHN0cmFwLXNlc3Npb24tdGltZW91dC5taW4uanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBLENBQUMsVUFBU0EsQ0FBVCxFQUFXO0FBQUM7O0FBQWFBLEVBQUFBLENBQUMsQ0FBQ0MsY0FBRixHQUFpQixVQUFTQyxDQUFULEVBQVc7QUFBQyxhQUFTQyxDQUFULEdBQVk7QUFBQ0MsTUFBQUEsQ0FBQyxLQUFHSixDQUFDLENBQUNLLElBQUYsQ0FBTztBQUFDQyxRQUFBQSxJQUFJLEVBQUNDLENBQUMsQ0FBQ0MsUUFBUjtBQUFpQkMsUUFBQUEsR0FBRyxFQUFDRixDQUFDLENBQUNHLFlBQXZCO0FBQW9DQyxRQUFBQSxJQUFJLEVBQUNKLENBQUMsQ0FBQ0s7QUFBM0MsT0FBUCxHQUE2RFIsQ0FBQyxHQUFDLENBQUMsQ0FBaEUsRUFBa0VTLFVBQVUsQ0FBQyxZQUFVO0FBQUNULFFBQUFBLENBQUMsR0FBQyxDQUFDLENBQUg7QUFBSyxPQUFqQixFQUFrQkcsQ0FBQyxDQUFDTyxpQkFBcEIsQ0FBL0UsQ0FBRDtBQUF3SDs7QUFBQSxhQUFTQyxDQUFULEdBQVk7QUFBQ0MsTUFBQUEsWUFBWSxDQUFDQyxDQUFELENBQVosRUFBZ0IsQ0FBQ1YsQ0FBQyxDQUFDVyxnQkFBRixJQUFvQlgsQ0FBQyxDQUFDWSxZQUF2QixLQUFzQ0MsQ0FBQyxDQUFDLFNBQUQsRUFBVyxDQUFDLENBQVosQ0FBdkQsRUFBc0UsY0FBWSxPQUFPYixDQUFDLENBQUNjLE9BQXJCLElBQThCZCxDQUFDLENBQUNjLE9BQUYsQ0FBVWQsQ0FBVixDQUFwRyxFQUFpSEEsQ0FBQyxDQUFDZSxTQUFGLElBQWFuQixDQUFDLEVBQS9ILEVBQWtJYyxDQUFDLEdBQUNKLFVBQVUsQ0FBQyxZQUFVO0FBQUMsc0JBQVksT0FBT04sQ0FBQyxDQUFDZ0IsTUFBckIsR0FBNEJ2QixDQUFDLENBQUMseUJBQUQs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OEk5RCxDQUFDLENBQUMseUJBQUQsQ0FBRCxDQUE2QndCLEtBQTdCLENBQW1DLE1BQW5DLEdBQTJDeEIsQ0FBQyxDQUFDLE1BQUQsQ0FBRCxDQUFVK0QsV0FBVixDQUFzQixZQUF0QixDQUEzQyxFQUErRS9ELENBQUMsQ0FBQyxvQkFBRCxDQUFELENBQXdCZ0UsTUFBeEIsRUFBN04sQ0FBSjtBQUFtUSxPQUEvYTtBQUFpYjs7QUFBQSxRQUFJNUQsQ0FBQyxHQUFDLENBQUMsQ0FBUDtBQUFTVyxJQUFBQSxDQUFDO0FBQUcsR0FBaDlIO0FBQWk5SCxDQUExK0gsQ0FBMitIa0QsTUFBMytILENBQUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvcGx1Z2lucy9ib290c3RyYXAtc2Vzc2lvbi10aW1lb3V0L2Rpc3QvYm9vdHN0cmFwLXNlc3Npb24tdGltZW91dC5taW4uanM/YjM4YyJdLCJzb3VyY2VzQ29udGVudCI6WyIhZnVuY3Rpb24oYSl7XCJ1c2Ugc3RyaWN0XCI7YS5zZXNzaW9uVGltZW91dD1mdW5jdGlvbihiKXtmdW5jdGlvbiBjKCl7bnx8KGEuYWpheCh7dHlwZTppLmFqYXhUeXBlLHVybDppLmtlZXBBbGl2ZVVybCxkYXRhOmkuYWpheERhdGF9KSxuPSEwLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtuPSExfSxpLmtlZXBBbGl2ZUludGVydmFsKSl9ZnVuY3Rpb24gZCgpe2NsZWFyVGltZW91dChnKSwoaS5jb3VudGRvd25NZXNzYWdlfHxpLmNvdW50ZG93bkJhcikmJmYoXCJzZXNzaW9uXCIsITApLFwiZnVuY3Rpb25cIj09dHlwZW9mIGkub25TdGFydCYmaS5vblN0YXJ0KGkpLGkua2VlcEFsaXZlJiZjKCksZz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XCJmdW5jdGlvblwiIT10eXBlb2YgaS5vbldhcm4/YShcIiNzZXNzaW9uLXRpbWVvdXQtZGlhbG9nXCIpLm1vZGFsKFwic2hvd1wiKTppLm9uV2FybihpKSxlKCl9LGkud2FybkFmdGVyKX1mdW5jdGlvbiBlKCl7Y2xlYXJUaW1lb3V0KGcpLGEoXCIjc2Vzc2lvbi10aW1lb3V0LWRpYWxvZ1wiKS5oYXNDbGFzcyhcImluXCIpfHwhaS5jb3VudGRvd25NZXNzYWdlJiYhaS5jb3VudGRvd25CYXJ8fGYoXCJkaWFsb2dcIiwhMCksZz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XCJmdW5jdGlvblwiIT10eXBlb2YgaS5vblJlZGlyP3dpbmRvdy5sb2NhdGlvbj1pLnJlZGlyVXJsOmkub25SZWRpcihpKX0saS5yZWRpckFmdGVyLWkud2FybkFmdGVyKX1mdW5jdGlvbiBmKGIsYyl7Y2xlYXJUaW1lb3V0KGoudGltZXIpLFwiZGlhbG9nXCI9PT1iJiZjP2oudGltZUxlZnQ9TWF0aC5mbG9vcigoaS5yZWRpckFmdGVyLWkud2FybkFmdGVyKS8xZTMpOlwic2Vzc2lvblwiPT09YiYmYyYmKGoudGltZUxlZnQ9TWF0aC5mbG9vcihpLnJlZGlyQWZ0ZXIvMWUzKSksaS5jb3VudGRvd25CYXImJlwiZGlhbG9nXCI9PT1iP2oucGVyY2VudExlZnQ9TWF0aC5mbG9vcihqLnRpbWVMZWZ0LygoaS5yZWRpckFmdGVyLWkud2FybkFmdGVyKS8xZTMpKjEwMCk6aS5jb3VudGRvd25CYXImJlwic2Vzc2lvblwiPT09YiYmKGoucGVyY2VudExlZnQ9TWF0aC5mbG9vcihqLnRpbWVMZWZ0LyhpLnJlZGlyQWZ0ZXIvMWUzKSoxMDApKTt2YXIgZD1hKFwiLmNvdW50ZG93bi1ob2xkZXJcIiksZT1qLnRpbWVMZWZ0Pj0wP2oudGltZUxlZnQ6MDtpZihpLmNvdW50ZG93blNtYXJ0KXt2YXIgZz1NYXRoLmZsb29yKGUvNjApLGg9ZSU2MCxrPWc+MD9nK1wibVwiOlwiXCI7ay5sZW5ndGg+MCYmKGsrPVwiIFwiKSxrKz1oK1wic1wiLGQudGV4dChrKX1lbHNlIGQudGV4dChlK1wic1wiKTtpLmNvdW50ZG93bkJhciYmYShcIi5jb3VudGRvd24tYmFyXCIpLmNzcyhcIndpZHRoXCIsai5wZXJjZW50TGVmdCtcIiVcIiksai50aW1lTGVmdD1qLnRpbWVMZWZ0LTEsai50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZihiKX0sMWUzKX12YXIgZyxoPXt0aXRsZTpcIllvdXIgU2Vzc2lvbiBpcyBBYm91dCB0byBFeHBpcmUhXCIsbWVzc2FnZTpcIllvdXIgc2Vzc2lvbiBpcyBhYm91dCB0byBleHBpcmUuXCIsbG9nb3V0QnV0dG9uOlwiTG9nb3V0XCIsa2VlcEFsaXZlQnV0dG9uOlwiU3RheSBDb25uZWN0ZWRcIixrZWVwQWxpdmVVcmw6XCIva2VlcC1hbGl2ZVwiLGFqYXhUeXBlOlwiUE9TVFwiLGFqYXhEYXRhOlwiXCIscmVkaXJVcmw6XCIvdGltZWQtb3V0XCIsbG9nb3V0VXJsOlwiL2xvZy1vdXRcIix3YXJuQWZ0ZXI6OWU1LHJlZGlyQWZ0ZXI6MTJlNSxrZWVwQWxpdmVJbnRlcnZhbDo1ZTMsa2VlcEFsaXZlOiEwLGlnbm9yZVVzZXJBY3Rpdml0eTohMSxvblN0YXJ0OiExLG9uV2FybjohMSxvblJlZGlyOiExLGNvdW50ZG93bk1lc3NhZ2U6ITEsY291bnRkb3duQmFyOiExLGNvdW50ZG93blNtYXJ0OiExfSxpPWgsaj17fTtpZihiJiYoaT1hLmV4dGVuZChoLGIpKSxpLndhcm5BZnRlcj49aS5yZWRpckFmdGVyKXJldHVybiBjb25zb2xlLmVycm9yKCdCb290c3RyYXAtc2Vzc2lvbi10aW1lb3V0IHBsdWdpbiBpcyBtaXNzLWNvbmZpZ3VyZWQuIE9wdGlvbiBcInJlZGlyQWZ0ZXJcIiBtdXN0IGJlIGVxdWFsIG9yIGdyZWF0ZXIgdGhhbiBcIndhcm5BZnRlclwiLicpLCExO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGkub25XYXJuKXt2YXIgaz1pLmNvdW50ZG93bk1lc3NhZ2U/XCI8cD5cIitpLmNvdW50ZG93bk1lc3NhZ2UucmVwbGFjZSgve3RpbWVyfS9nLCc8c3BhbiBjbGFzcz1cImNvdW50ZG93bi1ob2xkZXJcIj48L3NwYW4+JykrXCI8L3A+XCI6XCJcIixsPWkuY291bnRkb3duQmFyPyc8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NcIj4gICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWJhciBwcm9ncmVzcy1iYXItc3RyaXBlZCBjb3VudGRvd24tYmFyIGFjdGl2ZVwiIHJvbGU9XCJwcm9ncmVzc2JhclwiIHN0eWxlPVwibWluLXdpZHRoOiAxNXB4OyB3aWR0aDogMTAwJTtcIj4gICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZG93bi1ob2xkZXJcIj48L3NwYW4+ICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgPC9kaXY+JzpcIlwiO2EoXCJib2R5XCIpLmFwcGVuZCgnPGRpdiBjbGFzcz1cIm1vZGFsIGZhZGVcIiBpZD1cInNlc3Npb24tdGltZW91dC1kaWFsb2dcIj4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nXCI+ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPiAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+ICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvYnV0dG9uPiAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+JytpLnRpdGxlKyc8L2g0PiAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj4gICAgICAgICAgICAgICAgICAgICA8cD4nK2kubWVzc2FnZStcIjwvcD4gICAgICAgICAgICAgICAgICAgICBcIitrK1wiICAgICAgICAgICAgICAgICAgICAgXCIrbCsnICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+ICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD1cInNlc3Npb24tdGltZW91dC1kaWFsb2ctbG9nb3V0XCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCI+JytpLmxvZ291dEJ1dHRvbisnPC9idXR0b24+ICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD1cInNlc3Npb24tdGltZW91dC1kaWFsb2cta2VlcGFsaXZlXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIj4nK2kua2VlcEFsaXZlQnV0dG9uK1wiPC9idXR0b24+ICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICA8L2Rpdj5cIiksYShcIiNzZXNzaW9uLXRpbWVvdXQtZGlhbG9nLWxvZ291dFwiKS5vbihcImNsaWNrXCIsZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb249aS5sb2dvdXRVcmx9KSxhKFwiI3Nlc3Npb24tdGltZW91dC1kaWFsb2dcIikub24oXCJoaWRlLmJzLm1vZGFsXCIsZnVuY3Rpb24oKXtkKCl9KX1pZighaS5pZ25vcmVVc2VyQWN0aXZpdHkpe3ZhciBtPVstMSwtMV07YShkb2N1bWVudCkub24oXCJrZXl1cCBtb3VzZXVwIG1vdXNlbW92ZSB0b3VjaGVuZCB0b3VjaG1vdmVcIixmdW5jdGlvbihiKXtpZihcIm1vdXNlbW92ZVwiPT09Yi50eXBlKXtpZihiLmNsaWVudFg9PT1tWzBdJiZiLmNsaWVudFk9PT1tWzFdKXJldHVybjttWzBdPWIuY2xpZW50WCxtWzFdPWIuY2xpZW50WX1kKCksYShcIiNzZXNzaW9uLXRpbWVvdXQtZGlhbG9nXCIpLmxlbmd0aD4wJiZhKFwiI3Nlc3Npb24tdGltZW91dC1kaWFsb2dcIikuZGF0YShcImJzLm1vZGFsXCIpJiZhKFwiI3Nlc3Npb24tdGltZW91dC1kaWFsb2dcIikuZGF0YShcImJzLm1vZGFsXCIpLmlzU2hvd24mJihhKFwiI3Nlc3Npb24tdGltZW91dC1kaWFsb2dcIikubW9kYWwoXCJoaWRlXCIpLGEoXCJib2R5XCIpLnJlbW92ZUNsYXNzKFwibW9kYWwtb3BlblwiKSxhKFwiZGl2Lm1vZGFsLWJhY2tkcm9wXCIpLnJlbW92ZSgpKX0pfXZhciBuPSExO2QoKX19KGpRdWVyeSk7Il0sIm5hbWVzIjpbImEiLCJzZXNzaW9uVGltZW91dCIsImIiLCJjIiwibiIsImFqYXgiLCJ0eXBlIiwiaSIsImFqYXhUeXBlIiwidXJsIiwia2VlcEFsaXZlVXJsIiwiZGF0YSIsImFqYXhEYXRhIiwic2V0VGltZW91dCIsImtlZXBBbGl2ZUludGVydmFsIiwiZCIsImNsZWFyVGltZW91dCIsImciLCJjb3VudGRvd25NZXNzYWdlIiwiY291bnRkb3duQmFyIiwiZiIsIm9uU3RhcnQiLCJrZWVwQWxpdmUiLCJvbldhcm4iLCJtb2RhbCIsImUiLCJ3YXJuQWZ0ZXIiLCJoYXNDbGFzcyIsIm9uUmVkaXIiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInJlZGlyVXJsIiwicmVkaXJBZnRlciIsImoiLCJ0aW1lciIsInRpbWVMZWZ0IiwiTWF0aCIsImZsb29yIiwicGVyY2VudExlZnQiLCJjb3VudGRvd25TbWFydCIsImgiLCJrIiwibGVuZ3RoIiwidGV4dCIsImNzcyIsInRpdGxlIiwibWVzc2FnZSIsImxvZ291dEJ1dHRvbiIsImtlZXBBbGl2ZUJ1dHRvbiIsImxvZ291dFVybCIsImlnbm9yZVVzZXJBY3Rpdml0eSIsImV4dGVuZCIsImNvbnNvbGUiLCJlcnJvciIsInJlcGxhY2UiLCJsIiwiYXBwZW5kIiwib24iLCJtIiwiZG9jdW1lbnQiLCJjbGllbnRYIiwiY2xpZW50WSIsImlzU2hvd24iLCJyZW1vdmVDbGFzcyIsInJlbW92ZSIsImpRdWVyeSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/assets/core/plugins/bootstrap-session-timeout/dist/bootstrap-session-timeout.min.js\n"); /***/ }), /***/ "./resources/assets/core/plugins/formvalidation/dist/amd/core/Plugin.js": /*!******************************************************************************!*\ !*** ./resources/assets/core/plugins/formvalidation/dist/amd/core/Plugin.js ***! \******************************************************************************/ /***/ ((module, exports, __webpack_require__) => { eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", ({\n value: true\n }));\n\n var Plugin = function () {\n function Plugin(opts) {\n this.opts = opts;\n }\n\n Plugin.prototype.setCore = function (core) {\n this.core = core;\n return this;\n };\n\n Plugin.prototype.install = function () {};\n\n Plugin.prototype.uninstall = function () {};\n\n return Plugin;\n }();\n\n exports[\"default\"] = Plugin;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvcGx1Z2lucy9mb3JtdmFsaWRhdGlvbi9kaXN0L2FtZC9jb3JlL1BsdWdpbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQUEsZ0VBQUFBLGlDQUFPLENBQUMsbUJBQUQsRUFBWSxPQUFaLENBQUQsbUNBQXlCLFVBQVVDLE9BQVYsRUFBbUJDLE9BQW5CLEVBQTRCO0FBQ3ZEOztBQUNBQyxFQUFBQSw4Q0FBNkM7QUFBRUUsSUFBQUEsS0FBSyxFQUFFO0FBQVQsR0FBN0M7O0FBQ0EsTUFBSUMsTUFBTSxHQUFJLFlBQVk7QUFDdEIsYUFBU0EsTUFBVCxDQUFnQkMsSUFBaEIsRUFBc0I7QUFDbEIsV0FBS0EsSUFBTCxHQUFZQSxJQUFaO0FBQ0g7O0FBQ0RELElBQUFBLE1BQU0sQ0FBQ0UsU0FBUCxDQUFpQkMsT0FBakIsR0FBMkIsVUFBVUMsSUFBVixFQUFnQjtBQUN2QyxXQUFLQSxJQUFMLEdBQVlBLElBQVo7QUFDQSxhQUFPLElBQVA7QUFDSCxLQUhEOztBQUlBSixJQUFBQSxNQUFNLENBQUNFLFNBQVAsQ0FBaUJHLE9BQWpCLEdBQTJCLFlBQVksQ0FBRyxDQUExQzs7QUFDQUwsSUFBQUEsTUFBTSxDQUFDRSxTQUFQLENBQWlCSSxTQUFqQixHQUE2QixZQUFZLENBQUcsQ0FBNUM7O0FBQ0EsV0FBT04sTUFBUDtBQUNILEdBWGEsRUFBZDs7QUFZQUosRUFBQUEsa0JBQUEsR0FBa0JJLE1BQWxCO0FBQ0gsQ0FoQks7QUFBQSxrR0FBTiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvY29yZS9wbHVnaW5zL2Zvcm12YWxpZGF0aW9uL2Rpc3QvYW1kL2NvcmUvUGx1Z2luLmpzPzlmNGEiXSwic291cmNlc0NvbnRlbnQiOlsiZGVmaW5lKFtcInJlcXVpcmVcIiwgXCJleHBvcnRzXCJdLCBmdW5jdGlvbiAocmVxdWlyZSwgZXhwb3J0cykge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbiAgICB2YXIgUGx1Z2luID0gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmdW5jdGlvbiBQbHVnaW4ob3B0cykge1xyXG4gICAgICAgICAgICB0aGlzLm9wdHMgPSBvcHRzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBQbHVnaW4ucHJvdG90eXBlLnNldENvcmUgPSBmdW5jdGlvbiAoY29yZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvcmUgPSBjb3JlO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9O1xyXG4gICAgICAgIFBsdWdpbi5wcm90b3R5cGUuaW5zdGFsbCA9IGZ1bmN0aW9uICgpIHsgfTtcclxuICAgICAgICBQbHVnaW4ucHJvdG90eXBlLnVuaW5zdGFsbCA9IGZ1bmN0aW9uICgpIHsgfTtcclxuICAgICAgICByZXR1cm4gUGx1Z2luO1xyXG4gICAgfSgpKTtcclxuICAgIGV4cG9ydHMuZGVmYXVsdCA9IFBsdWdpbjtcclxufSk7XHJcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJyZXF1aXJlIiwiZXhwb3J0cyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJQbHVnaW4iLCJvcHRzIiwicHJvdG90eXBlIiwic2V0Q29yZSIsImNvcmUiLCJpbnN0YWxsIiwidW5pbnN0YWxsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/assets/core/plugins/formvalidation/dist/amd/core/Plugin.js\n"); /***/ }), /***/ "./resources/assets/core/plugins/formvalidation/dist/amd/plugins/Bootstrap5.js": /*!*************************************************************************************!*\ !*** ./resources/assets/core/plugins/formvalidation/dist/amd/plugins/Bootstrap5.js ***! \*************************************************************************************/ /***/ (function(module, exports, __webpack_require__) { eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(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) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ../utils/classSet */ \"./resources/assets/core/plugins/formvalidation/dist/amd/utils/classSet.js\"), __webpack_require__(/*! ../utils/hasClass */ \"./resources/assets/core/plugins/formvalidation/dist/amd/utils/hasClass.js\"), __webpack_require__(/*! ./Framework */ \"./resources/assets/core/plugins/formvalidation/dist/amd/plugins/Framework.js\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, classSet_1, hasClass_1, Framework_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", ({\n value: true\n }));\n\n var Bootstrap5 = function (_super) {\n __extends(Bootstrap5, _super);\n\n function Bootstrap5(opts) {\n var _this = _super.call(this, Object.assign({}, {\n eleInvalidClass: 'is-invalid',\n eleValidClass: 'is-valid',\n formClass: 'fv-plugins-bootstrap5',\n rowInvalidClass: 'fv-plugins-bootstrap5-row-invalid',\n rowPattern: /^(.*)(col|offset)(-(sm|md|lg|xl))*-[0-9]+(.*)$/,\n rowSelector: '.row',\n rowValidClass: 'fv-plugins-bootstrap5-row-valid'\n }, opts)) || this;\n\n _this.eleValidatedHandler = _this.handleElementValidated.bind(_this);\n return _this;\n }\n\n Bootstrap5.prototype.install = function () {\n _super.prototype.install.call(this);\n\n this.core.on('core.element.validated', this.eleValidatedHandler);\n };\n\n Bootstrap5.prototype.uninstall = function () {\n _super.prototype.install.call(this);\n\n this.core.off('core.element.validated', this.eleValidatedHandler);\n };\n\n Bootstrap5.prototype.handleElementValidated = function (e) {\n var type = e.element.getAttribute('type');\n\n if (('checkbox' === type || 'radio' === type) && e.elements.length > 1 && hasClass_1[\"default\"](e.element, 'form-check-input')) {\n var inputParent = e.element.parentElement;\n\n if (hasClass_1[\"default\"](inputParent, 'form-check') && hasClass_1[\"default\"](inputParent, 'form-check-inline')) {\n classSet_1[\"default\"](inputParent, {\n 'is-invalid': !e.valid,\n 'is-valid': e.valid\n });\n }\n }\n };\n\n Bootstrap5.prototype.onIconPlaced = function (e) {\n classSet_1[\"default\"](e.element, {\n 'fv-plugins-icon-input': true\n });\n var parent = e.element.parentElement;\n\n if (hasClass_1[\"default\"](parent, 'input-group')) {\n parent.parentElement.insertBefore(e.iconElement, parent.nextSibling);\n\n if (e.element.nextElementSibling && hasClass_1[\"default\"](e.element.nextElementSibling, 'input-group-text')) {\n classSet_1[\"default\"](e.iconElement, {\n 'fv-plugins-icon-input-group': true\n });\n }\n }\n\n var type = e.element.getAttribute('type');\n\n if ('checkbox' === type || 'radio' === type) {\n var grandParent = parent.parentElement;\n\n if (hasClass_1[\"default\"](parent, 'form-check')) {\n classSet_1[\"default\"](e.iconElement, {\n 'fv-plugins-icon-check': true\n });\n parent.parentElement.insertBefore(e.iconElement, parent.nextSibling);\n } else if (hasClass_1[\"default\"](parent.parentElement, 'form-check')) {\n classSet_1[\"default\"](e.iconElement, {\n 'fv-plugins-icon-check': true\n });\n grandParent.parentElement.insertBefore(e.iconElement, grandParent.nextSibling);\n }\n }\n };\n\n Bootstrap5.prototype.onMessagePlaced = function (e) {\n e.messageElement.classList.add('invalid-feedback');\n var inputParent = e.element.parentElement;\n\n if (hasClass_1[\"default\"](inputParent, 'input-group')) {\n inputParent.appendChild(e.messageElement);\n classSet_1[\"default\"](inputParent, {\n 'has-validation': true\n });\n return;\n }\n\n var type = e.element.getAttribute('type');\n\n if (('checkbox' === type || 'radio' === type) && hasClass_1[\"default\"](e.element, 'form-check-input') && hasClass_1[\"default\"](inputParent, 'form-check') && !hasClass_1[\"default\"](inputParent, 'form-check-inline')) {\n e.elements[e.elements.length - 1].parentElement.appendChild(e.messageElement);\n }\n };\n\n return Bootstrap5;\n }(Framework_1[\"default\"]);\n\n exports[\"default\"] = Bootstrap5;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvcGx1Z2lucy9mb3JtdmFsaWRhdGlvbi9kaXN0L2FtZC9wbHVnaW5zL0Jvb3RzdHJhcDUuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsb0VBQUlBLFNBQVMsR0FBSSxRQUFRLEtBQUtBLFNBQWQsSUFBNkIsWUFBWTtBQUNyRCxNQUFJQyxjQUFhLEdBQUcsdUJBQVVDLENBQVYsRUFBYUMsQ0FBYixFQUFnQjtBQUNoQ0YsSUFBQUEsY0FBYSxHQUFHRyxNQUFNLENBQUNDLGNBQVAsSUFDWDtBQUFFQyxNQUFBQSxTQUFTLEVBQUU7QUFBYixpQkFBNkJDLEtBQTdCLElBQXNDLFVBQVVMLENBQVYsRUFBYUMsQ0FBYixFQUFnQjtBQUFFRCxNQUFBQSxDQUFDLENBQUNJLFNBQUYsR0FBY0gsQ0FBZDtBQUFrQixLQUQvRCxJQUVaLFVBQVVELENBQVYsRUFBYUMsQ0FBYixFQUFnQjtBQUFFLFdBQUssSUFBSUssQ0FBVCxJQUFjTCxDQUFkO0FBQWlCLFlBQUlBLENBQUMsQ0FBQ00sY0FBRixDQUFpQkQsQ0FBakIsQ0FBSixFQUF5Qk4sQ0FBQyxDQUFDTSxDQUFELENBQUQsR0FBT0wsQ0FBQyxDQUFDSyxDQUFELENBQVI7QUFBMUM7QUFBd0QsS0FGOUU7O0FBR0EsV0FBT1AsY0FBYSxDQUFDQyxDQUFELEVBQUlDLENBQUosQ0FBcEI7QUFDSCxHQUxEOztBQU1BLFNBQU8sVUFBVUQsQ0FBVixFQUFhQyxDQUFiLEVBQWdCO0FBQ25CRixJQUFBQSxjQUFhLENBQUNDLENBQUQsRUFBSUMsQ0FBSixDQUFiOztBQUNBLGFBQVNPLEVBQVQsR0FBYztBQUFFLFdBQUtDLFdBQUwsR0FBbUJULENBQW5CO0FBQXVCOztBQUN2Q0EsSUFBQUEsQ0FBQyxDQUFDVSxTQUFGLEdBQWNULENBQUMsS0FBSyxJQUFOLEdBQWFDLE1BQU0sQ0FBQ1MsTUFBUCxDQUFjVixDQUFkLENBQWIsSUFBaUNPLEVBQUUsQ0FBQ0UsU0FBSCxHQUFlVCxDQUFDLENBQUNTLFNBQWpCLEVBQTRCLElBQUlGLEVBQUosRUFBN0QsQ0FBZDtBQUNILEdBSkQ7QUFLSCxDQVoyQyxFQUE1Qzs7QUFhQUksaUNBQU8sQ0FBQyxtQkFBRCxFQUFZLE9BQVosRUFBdUIseUhBQXZCLEVBQTRDLHlIQUE1QyxFQUFpRSxzSEFBakUsQ0FBRCxtQ0FBa0YsVUFBVUMsT0FBVixFQUFtQkMsT0FBbkIsRUFBNEJDLFVBQTVCLEVBQXdDQyxVQUF4QyxFQUFvREMsV0FBcEQsRUFBaUU7QUFDcko7O0FBQ0FmLEVBQUFBLDhDQUE2QztBQUFFaUIsSUFBQUEsS0FBSyxFQUFFO0FBQVQsR0FBN0M7O0FBQ0EsTUFBSUMsVUFBVSxHQUFJLFVBQVVDLE1BQVYsRUFBa0I7QUFDaEN2QixJQUFBQSxTQUFTLENBQUNzQixVQUFELEVBQWFDLE1BQWIsQ0FBVDs7QUFDQSxhQUFTRCxVQUFULENBQW9CRSxJQUFwQixFQUEwQjtBQUN0QixVQUFJQyxLQUFLLEdBQUdGLE1BQU0sQ0FBQ0csSUFBUCxDQUFZLElBQVosRUFBa0J0QixNQUFNLENBQUN1QixNQUFQLENBQWMsRUFBZCxFQUFrQjtBQUM1Q0MsUUFBQUEsZUFBZSxFQUFFLFlBRDJCO0FBRTVDQyxRQUFBQSxhQUFhLEVBQUUsVUFGNkI7QUFHNUNDLFFBQUFBLFNBQVMsRUFBRSx1QkFIaUM7QUFJNUNDLFFBQUFBLGVBQWUsRUFBRSxtQ0FKMkI7QUFLNUNDLFFBQUFBLFVBQVUsRUFBRSxnREFMZ0M7QUFNNUNDLFFBQUFBLFdBQVcsRUFBRSxNQU4rQjtBQU81Q0MsUUFBQUEsYUFBYSxFQUFFO0FBUDZCLE9BQWxCLEVBUTNCVixJQVIyQixDQUFsQixLQVFDLElBUmI7O0FBU0FDLE1BQUFBLEtBQUssQ0FBQ1UsbUJBQU4sR0FBNEJWLEtBQUssQ0FBQ1csc0JBQU4sQ0FBNkJDLElBQTdCLENBQWtDWixLQUFsQyxDQUE1QjtBQUNBLGFBQU9BLEtBQVA7QUFDSDs7QUFDREgsSUFBQUEsVUFBVSxDQUFDVixTQUFYLENBQXFCMEIsT0FBckIsR0FBK0IsWUFBWTtBQUN2Q2YsTUFBQUEsTUFBTSxDQUFDWCxTQUFQLENBQWlCMEIsT0FBakIsQ0FBeUJaLElBQXpCLENBQThCLElBQTlCOztBQUNBLFdBQUthLElBQUwsQ0FBVUMsRUFBVixDQUFhLHdCQUFiLEVBQXVDLEtBQUtMLG1CQUE1QztBQUNILEtBSEQ7O0FBSUFiLElBQUFBLFVBQVUsQ0FBQ1YsU0FBWCxDQUFxQjZCLFNBQXJCLEdBQWlDLFlBQVk7QUFDekNsQixNQUFBQSxNQUFNLENBQUNYLFNBQVAsQ0FBaUIwQixPQUFqQixDQUF5QlosSUFBekIsQ0FBOEIsSUFBOUI7O0FBQ0EsV0FBS2EsSUFBTCxDQUFVRyxHQUFWLENBQWMsd0JBQWQsRUFBd0MsS0FBS1AsbUJBQTdDO0FBQ0gsS0FIRDs7QUFJQWIsSUFBQUEsVUFBVSxDQUFDVixTQUFYLENBQXFCd0Isc0JBQXJCLEdBQThDLFVBQVVPLENBQVYsRUFBYTtBQUN2RCxVQUFJQyxJQUFJLEdBQUdELENBQUMsQ0FBQ0UsT0FBRixDQUFVQyxZQUFWLENBQXVCLE1BQXZCLENBQVg7O0FBQ0EsVUFBSSxDQUFDLGVBQWVGLElBQWYsSUFBdUIsWUFBWUEsSUFBcEMsS0FDQUQsQ0FBQyxDQUFDSSxRQUFGLENBQVdDLE1BQVgsR0FBb0IsQ0FEcEIsSUFFQTlCLFVBQVUsV0FBVixDQUFtQnlCLENBQUMsQ0FBQ0UsT0FBckIsRUFBOEIsa0JBQTlCLENBRkosRUFFdUQ7QUFDbkQsWUFBSUksV0FBVyxHQUFHTixDQUFDLENBQUNFLE9BQUYsQ0FBVUssYUFBNUI7O0FBQ0EsWUFBSWhDLFVBQVUsV0FBVixDQUFtQitCLFdBQW5CLEVBQWdDLFlBQWhDLEtBQ0EvQixVQUFVLFdBQVYsQ0FBbUIrQixXQUFuQixFQUFnQyxtQkFBaEMsQ0FESixFQUMwRDtBQUN0RGhDLFVBQUFBLFVBQVUsV0FBVixDQUFtQmdDLFdBQW5CLEVBQWdDO0FBQzVCLDBCQUFjLENBQUNOLENBQUMsQ0FBQ1EsS0FEVztBQUU1Qix3QkFBWVIsQ0FBQyxDQUFDUTtBQUZjLFdBQWhDO0FBSUg7QUFDSjtBQUNKLEtBZEQ7O0FBZUE3QixJQUFBQSxVQUFVLENBQUNWLFNBQVgsQ0FBcUJ3QyxZQUFyQixHQUFvQyxVQUFVVCxDQUFWLEVBQWE7QUFDN0MxQixNQUFBQSxVQUFVLFdBQVYsQ0FBbUIwQixDQUFDLENBQUNFLE9BQXJCLEVBQThCO0FBQzFCLGlDQUF5QjtBQURDLE9BQTlCO0FBR0EsVUFBSVEsTUFBTSxHQUFHVixDQUFDLENBQUNFLE9BQUYsQ0FBVUssYUFBdkI7O0FBQ0EsVUFBSWhDLFVBQVUsV0FBVixDQUFtQm1DLE1BQW5CLEVBQTJCLGFBQTNCLENBQUosRUFBK0M7QUFDM0NBLFFBQUFBLE1BQU0sQ0FBQ0gsYUFBUCxDQUFxQkksWUFBckIsQ0FBa0NYLENBQUMsQ0FBQ1ksV0FBcEMsRUFBaURGLE1BQU0sQ0FBQ0csV0FBeEQ7O0FBQ0EsWUFBSWIsQ0FBQyxDQUFDRSxPQUFGLENBQVVZLGtCQUFWLElBQ0F2QyxVQUFVLFdBQVYsQ0FBbUJ5QixDQUFDLENBQUNFLE9BQUYsQ0FBVVksa0JBQTdCLEVBQWlELGtCQUFqRCxDQURKLEVBQzBFO0FBQ3RFeEMsVUFBQUEsVUFBVSxXQUFWLENBQW1CMEIsQ0FBQyxDQUFDWSxXQUFyQixFQUFrQztBQUM5QiwyQ0FBK0I7QUFERCxXQUFsQztBQUdIO0FBQ0o7O0FBQ0QsVUFBSVgsSUFBSSxHQUFHRCxDQUFDLENBQUNFLE9BQUYsQ0FBVUMsWUFBVixDQUF1QixNQUF2QixDQUFYOztBQUNBLFVBQUksZUFBZUYsSUFBZixJQUF1QixZQUFZQSxJQUF2QyxFQUE2QztBQUN6QyxZQUFJYyxXQUFXLEdBQUdMLE1BQU0sQ0FBQ0gsYUFBekI7O0FBQ0EsWUFBSWhDLFVBQVUsV0FBVixDQUFtQm1DLE1BQW5CLEVBQTJCLFlBQTNCLENBQUosRUFBOEM7QUFDMUNwQyxVQUFBQSxVQUFVLFdBQVYsQ0FBbUIwQixDQUFDLENBQUNZLFdBQXJCLEVBQWtDO0FBQzlCLHFDQUF5QjtBQURLLFdBQWxDO0FBR0FGLFVBQUFBLE1BQU0sQ0FBQ0gsYUFBUCxDQUFxQkksWUFBckIsQ0FBa0NYLENBQUMsQ0FBQ1ksV0FBcEMsRUFBaURGLE1BQU0sQ0FBQ0csV0FBeEQ7QUFDSCxTQUxELE1BTUssSUFBSXRDLFVBQVUsV0FBVixDQUFtQm1DLE1BQU0sQ0FBQ0gsYUFBMUIsRUFBeUMsWUFBekMsQ0FBSixFQUE0RDtBQUM3RGpDLFVBQUFBLFVBQVUsV0FBVixDQUFtQjBCLENBQUMsQ0FBQ1ksV0FBckIsRUFBa0M7QUFDOUIscUNBQXlCO0FBREssV0FBbEM7QUFHQUcsVUFBQUEsV0FBVyxDQUFDUixhQUFaLENBQTBCSSxZQUExQixDQUF1Q1gsQ0FBQyxDQUFDWSxXQUF6QyxFQUFzREcsV0FBVyxDQUFDRixXQUFsRTtBQUNIO0FBQ0o7QUFDSixLQTlCRDs7QUErQkFsQyxJQUFBQSxVQUFVLENBQUNWLFNBQVgsQ0FBcUIrQyxlQUFyQixHQUF1QyxVQUFVaEIsQ0FBVixFQUFhO0FBQ2hEQSxNQUFBQSxDQUFDLENBQUNpQixjQUFGLENBQWlCQyxTQUFqQixDQUEyQkMsR0FBM0IsQ0FBK0Isa0JBQS9CO0FBQ0EsVUFBSWIsV0FBVyxHQUFHTixDQUFDLENBQUNFLE9BQUYsQ0FBVUssYUFBNUI7O0FBQ0EsVUFBSWhDLFVBQVUsV0FBVixDQUFtQitCLFdBQW5CLEVBQWdDLGFBQWhDLENBQUosRUFBb0Q7QUFDaERBLFFBQUFBLFdBQVcsQ0FBQ2MsV0FBWixDQUF3QnBCLENBQUMsQ0FBQ2lCLGNBQTFCO0FBQ0EzQyxRQUFBQSxVQUFVLFdBQVYsQ0FBbUJnQyxXQUFuQixFQUFnQztBQUM1Qiw0QkFBa0I7QUFEVSxTQUFoQztBQUdBO0FBQ0g7O0FBQ0QsVUFBSUwsSUFBSSxHQUFHRCxDQUFDLENBQUNFLE9BQUYsQ0FBVUMsWUFBVixDQUF1QixNQUF2QixDQUFYOztBQUNBLFVBQUksQ0FBQyxlQUFlRixJQUFmLElBQXVCLFlBQVlBLElBQXBDLEtBQ0ExQixVQUFVLFdBQVYsQ0FBbUJ5QixDQUFDLENBQUNFLE9BQXJCLEVBQThCLGtCQUE5QixDQURBLElBRUEzQixVQUFVLFdBQVYsQ0FBbUIrQixXQUFuQixFQUFnQyxZQUFoQyxDQUZBLElBR0EsQ0FBQy9CLFVBQVUsV0FBVixDQUFtQitCLFdBQW5CLEVBQWdDLG1CQUFoQyxDQUhMLEVBRzJEO0FBQ3ZETixRQUFBQSxDQUFDLENBQUNJLFFBQUYsQ0FBV0osQ0FBQyxDQUFDSSxRQUFGLENBQVdDLE1BQVgsR0FBb0IsQ0FBL0IsRUFBa0NFLGFBQWxDLENBQWdEYSxXQUFoRCxDQUE0RHBCLENBQUMsQ0FBQ2lCLGNBQTlEO0FBQ0g7QUFDSixLQWpCRDs7QUFrQkEsV0FBT3RDLFVBQVA7QUFDSCxHQXhGaUIsQ0F3RmhCSCxXQUFXLFdBeEZLLENBQWxCOztBQXlGQUgsRUFBQUEsa0JBQUEsR0FBa0JNLFVBQWxCO0FBQ0gsQ0E3Rks7QUFBQSxrR0FBTiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvY29yZS9wbHVnaW5zL2Zvcm12YWxpZGF0aW9uL2Rpc3QvYW1kL3BsdWdpbnMvQm9vdHN0cmFwNS5qcz80Y2JkIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHtcclxuICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XHJcbiAgICAgICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XHJcbiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XHJcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbiAgICB9O1xyXG59KSgpO1xyXG5kZWZpbmUoW1wicmVxdWlyZVwiLCBcImV4cG9ydHNcIiwgXCIuLi91dGlscy9jbGFzc1NldFwiLCBcIi4uL3V0aWxzL2hhc0NsYXNzXCIsIFwiLi9GcmFtZXdvcmtcIl0sIGZ1bmN0aW9uIChyZXF1aXJlLCBleHBvcnRzLCBjbGFzc1NldF8xLCBoYXNDbGFzc18xLCBGcmFtZXdvcmtfMSkge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbiAgICB2YXIgQm9vdHN0cmFwNSA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICAgICAgX19leHRlbmRzKEJvb3RzdHJhcDUsIF9zdXBlcik7XHJcbiAgICAgICAgZnVuY3Rpb24gQm9vdHN0cmFwNShvcHRzKSB7XHJcbiAgICAgICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIE9iamVjdC5hc3NpZ24oe30sIHtcclxuICAgICAgICAgICAgICAgIGVsZUludmFsaWRDbGFzczogJ2lzLWludmFsaWQnLFxyXG4gICAgICAgICAgICAgICAgZWxlVmFsaWRDbGFzczogJ2lzLXZhbGlkJyxcclxuICAgICAgICAgICAgICAgIGZvcm1DbGFzczogJ2Z2LXBsdWdpbnMtYm9vdHN0cmFwNScsXHJcbiAgICAgICAgICAgICAgICByb3dJbnZhbGlkQ2xhc3M6ICdmdi1wbHVnaW5zLWJvb3RzdHJhcDUtcm93LWludmFsaWQnLFxyXG4gICAgICAgICAgICAgICAgcm93UGF0dGVybjogL14oLiopKGNvbHxvZmZzZXQpKC0oc218bWR8bGd8eGwpKSotWzAtOV0rKC4qKSQvLFxyXG4gICAgICAgICAgICAgICAgcm93U2VsZWN0b3I6ICcucm93JyxcclxuICAgICAgICAgICAgICAgIHJvd1ZhbGlkQ2xhc3M6ICdmdi1wbHVnaW5zLWJvb3RzdHJhcDUtcm93LXZhbGlkJyxcclxuICAgICAgICAgICAgfSwgb3B0cykpIHx8IHRoaXM7XHJcbiAgICAgICAgICAgIF90aGlzLmVsZVZhbGlkYXRlZEhhbmRsZXIgPSBfdGhpcy5oYW5kbGVFbGVtZW50VmFsaWRhdGVkLmJpbmQoX3RoaXMpO1xyXG4gICAgICAgICAgICByZXR1cm4gX3RoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEJvb3RzdHJhcDUucHJvdG90eXBlLmluc3RhbGwgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIF9zdXBlci5wcm90b3R5cGUuaW5zdGFsbC5jYWxsKHRoaXMpO1xyXG4gICAgICAgICAgICB0aGlzLmNvcmUub24oJ2NvcmUuZWxlbWVudC52YWxpZGF0ZWQnLCB0aGlzLmVsZVZhbGlkYXRlZEhhbmRsZXIpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgQm9vdHN0cmFwNS5wcm90b3R5cGUudW5pbnN0YWxsID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfc3VwZXIucHJvdG90eXBlLmluc3RhbGwuY2FsbCh0aGlzKTtcclxuICAgICAgICAgICAgdGhpcy5jb3JlLm9mZignY29yZS5lbGVtZW50LnZhbGlkYXRlZCcsIHRoaXMuZWxlVmFsaWRhdGVkSGFuZGxlcik7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBCb290c3RyYXA1LnByb3RvdHlwZS5oYW5kbGVFbGVtZW50VmFsaWRhdGVkID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICAgICAgdmFyIHR5cGUgPSBlLmVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0eXBlJyk7XHJcbiAgICAgICAgICAgIGlmICgoJ2NoZWNrYm94JyA9PT0gdHlwZSB8fCAncmFkaW8nID09PSB0eXBlKSAmJlxyXG4gICAgICAgICAgICAgICAgZS5lbGVtZW50cy5sZW5ndGggPiAxICYmXHJcbiAgICAgICAgICAgICAgICBoYXNDbGFzc18xLmRlZmF1bHQoZS5lbGVtZW50LCAnZm9ybS1jaGVjay1pbnB1dCcpKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgaW5wdXRQYXJlbnQgPSBlLmVsZW1lbnQucGFyZW50RWxlbWVudDtcclxuICAgICAgICAgICAgICAgIGlmIChoYXNDbGFzc18xLmRlZmF1bHQoaW5wdXRQYXJlbnQsICdmb3JtLWNoZWNrJykgJiZcclxuICAgICAgICAgICAgICAgICAgICBoYXNDbGFzc18xLmRlZmF1bHQoaW5wdXRQYXJlbnQsICdmb3JtLWNoZWNrLWlubGluZScpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NTZXRfMS5kZWZhdWx0KGlucHV0UGFyZW50LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdpcy1pbnZhbGlkJzogIWUudmFsaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdpcy12YWxpZCc6IGUudmFsaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIEJvb3RzdHJhcDUucHJvdG90eXBlLm9uSWNvblBsYWNlZCA9IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICAgIGNsYXNzU2V0XzEuZGVmYXVsdChlLmVsZW1lbnQsIHtcclxuICAgICAgICAgICAgICAgICdmdi1wbHVnaW5zLWljb24taW5wdXQnOiB0cnVlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdmFyIHBhcmVudCA9IGUuZWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG4gICAgICAgICAgICBpZiAoaGFzQ2xhc3NfMS5kZWZhdWx0KHBhcmVudCwgJ2lucHV0LWdyb3VwJykpIHtcclxuICAgICAgICAgICAgICAgIHBhcmVudC5wYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZShlLmljb25FbGVtZW50LCBwYXJlbnQubmV4dFNpYmxpbmcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGUuZWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmcgJiZcclxuICAgICAgICAgICAgICAgICAgICBoYXNDbGFzc18xLmRlZmF1bHQoZS5lbGVtZW50Lm5leHRFbGVtZW50U2libGluZywgJ2lucHV0LWdyb3VwLXRleHQnKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzU2V0XzEuZGVmYXVsdChlLmljb25FbGVtZW50LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdmdi1wbHVnaW5zLWljb24taW5wdXQtZ3JvdXAnOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciB0eXBlID0gZS5lbGVtZW50LmdldEF0dHJpYnV0ZSgndHlwZScpO1xyXG4gICAgICAgICAgICBpZiAoJ2NoZWNrYm94JyA9PT0gdHlwZSB8fCAncmFkaW8nID09PSB0eXBlKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZ3JhbmRQYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudDtcclxuICAgICAgICAgICAgICAgIGlmIChoYXNDbGFzc18xLmRlZmF1bHQocGFyZW50LCAnZm9ybS1jaGVjaycpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NTZXRfMS5kZWZhdWx0KGUuaWNvbkVsZW1lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ2Z2LXBsdWdpbnMtaWNvbi1jaGVjayc6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50LnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKGUuaWNvbkVsZW1lbnQsIHBhcmVudC5uZXh0U2libGluZyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChoYXNDbGFzc18xLmRlZmF1bHQocGFyZW50LnBhcmVudEVsZW1lbnQsICdmb3JtLWNoZWNrJykpIHtcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc1NldF8xLmRlZmF1bHQoZS5pY29uRWxlbWVudCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnZnYtcGx1Z2lucy1pY29uLWNoZWNrJzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBncmFuZFBhcmVudC5wYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZShlLmljb25FbGVtZW50LCBncmFuZFBhcmVudC5uZXh0U2libGluZyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIEJvb3RzdHJhcDUucHJvdG90eXBlLm9uTWVzc2FnZVBsYWNlZCA9IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICAgIGUubWVzc2FnZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnaW52YWxpZC1mZWVkYmFjaycpO1xyXG4gICAgICAgICAgICB2YXIgaW5wdXRQYXJlbnQgPSBlLmVsZW1lbnQucGFyZW50RWxlbWVudDtcclxuICAgICAgICAgICAgaWYgKGhhc0NsYXNzXzEuZGVmYXVsdChpbnB1dFBhcmVudCwgJ2lucHV0LWdyb3VwJykpIHtcclxuICAgICAgICAgICAgICAgIGlucHV0UGFyZW50LmFwcGVuZENoaWxkKGUubWVzc2FnZUVsZW1lbnQpO1xyXG4gICAgICAgICAgICAgICAgY2xhc3NTZXRfMS5kZWZhdWx0KGlucHV0UGFyZW50LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgJ2hhcy12YWxpZGF0aW9uJzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciB0eXBlID0gZS5lbGVtZW50LmdldEF0dHJpYnV0ZSgndHlwZScpO1xyXG4gICAgICAgICAgICBpZiAoKCdjaGVja2JveCcgPT09IHR5cGUgfHwgJ3JhZGlvJyA9PT0gdHlwZSkgJiZcclxuICAgICAgICAgICAgICAgIGhhc0NsYXNzXzEuZGVmYXVsdChlLmVsZW1lbnQsICdmb3JtLWNoZWNrLWlucHV0JykgJiZcclxuICAgICAgICAgICAgICAgIGhhc0NsYXNzXzEuZGVmYXVsdChpbnB1dFBhcmVudCwgJ2Zvcm0tY2hlY2snKSAmJlxyXG4gICAgICAgICAgICAgICAgIWhhc0NsYXNzXzEuZGVmYXVsdChpbnB1dFBhcmVudCwgJ2Zvcm0tY2hlY2staW5saW5lJykpIHtcclxuICAgICAgICAgICAgICAgIGUuZWxlbWVudHNbZS5lbGVtZW50cy5sZW5ndGggLSAxXS5wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGUubWVzc2FnZUVsZW1lbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gQm9vdHN0cmFwNTtcclxuICAgIH0oRnJhbWV3b3JrXzEuZGVmYXVsdCkpO1xyXG4gICAgZXhwb3J0cy5kZWZhdWx0ID0gQm9vdHN0cmFwNTtcclxufSk7XHJcbiJdLCJuYW1lcyI6WyJfX2V4dGVuZHMiLCJleHRlbmRTdGF0aWNzIiwiZCIsImIiLCJPYmplY3QiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsIkFycmF5IiwicCIsImhhc093blByb3BlcnR5IiwiX18iLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsImNyZWF0ZSIsImRlZmluZSIsInJlcXVpcmUiLCJleHBvcnRzIiwiY2xhc3NTZXRfMSIsImhhc0NsYXNzXzEiLCJGcmFtZXdvcmtfMSIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJCb290c3RyYXA1IiwiX3N1cGVyIiwib3B0cyIsIl90aGlzIiwiY2FsbCIsImFzc2lnbiIsImVsZUludmFsaWRDbGFzcyIsImVsZVZhbGlkQ2xhc3MiLCJmb3JtQ2xhc3MiLCJyb3dJbnZhbGlkQ2xhc3MiLCJyb3dQYXR0ZXJuIiwicm93U2VsZWN0b3IiLCJyb3dWYWxpZENsYXNzIiwiZWxlVmFsaWRhdGVkSGFuZGxlciIsImhhbmRsZUVsZW1lbnRWYWxpZGF0ZWQiLCJiaW5kIiwiaW5zdGFsbCIsImNvcmUiLCJvbiIsInVuaW5zdGFsbCIsIm9mZiIsImUiLCJ0eXBlIiwiZWxlbWVudCIsImdldEF0dHJpYnV0ZSIsImVsZW1lbnRzIiwibGVuZ3RoIiwiaW5wdXRQYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidmFsaWQiLCJvbkljb25QbGFjZWQiLCJwYXJlbnQiLCJpbnNlcnRCZWZvcmUiLCJpY29uRWxlbWVudCIsIm5leHRTaWJsaW5nIiwibmV4dEVsZW1lbnRTaWJsaW5nIiwiZ3JhbmRQYXJlbnQiLCJvbk1lc3NhZ2VQbGFjZWQiLCJtZXNzYWdlRWxlbWVudCIsImNsYXNzTGlzdCIsImFkZCIsImFwcGVuZENoaWxkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/assets/core/plugins/formvalidation/dist/amd/plugins/Bootstrap5.js\n"); /***/ }), /***/ "./resources/assets/core/plugins/formvalidation/dist/amd/plugins/Framework.js": /*!************************************************************************************!*\ !*** ./resources/assets/core/plugins/formvalidation/dist/amd/plugins/Framework.js ***! \************************************************************************************/ /***/ (function(module, exports, __webpack_require__) { eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(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) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ../core/Plugin */ \"./resources/assets/core/plugins/formvalidation/dist/amd/core/Plugin.js\"), __webpack_require__(/*! ../utils/classSet */ \"./resources/assets/core/plugins/formvalidation/dist/amd/utils/classSet.js\"), __webpack_require__(/*! ../utils/closest */ \"./resources/assets/core/plugins/formvalidation/dist/amd/utils/closest.js\"), __webpack_require__(/*! ./Message */ \"./resources/assets/core/plugins/formvalidation/dist/amd/plugins/Message.js\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, Plugin_1, classSet_1, closest_1, Message_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", ({\n value: true\n }));\n\n var Framework = function (_super) {\n __extends(Framework, _super);\n\n function Framework(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.results = new Map();\n _this.containers = new Map();\n _this.opts = Object.assign({}, {\n defaultMessageContainer: true,\n eleInvalidClass: '',\n eleValidClass: '',\n rowClasses: '',\n rowValidatingClass: ''\n }, opts);\n _this.elementIgnoredHandler = _this.onElementIgnored.bind(_this);\n _this.elementValidatingHandler = _this.onElementValidating.bind(_this);\n _this.elementValidatedHandler = _this.onElementValidated.bind(_this);\n _this.elementNotValidatedHandler = _this.onElementNotValidated.bind(_this);\n _this.iconPlacedHandler = _this.onIconPlaced.bind(_this);\n _this.fieldAddedHandler = _this.onFieldAdded.bind(_this);\n _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_this);\n _this.messagePlacedHandler = _this.onMessagePlaced.bind(_this);\n return _this;\n }\n\n Framework.prototype.install = function () {\n var _a;\n\n var _this = this;\n\n classSet_1[\"default\"](this.core.getFormElement(), (_a = {}, _a[this.opts.formClass] = true, _a['fv-plugins-framework'] = true, _a));\n this.core.on('core.element.ignored', this.elementIgnoredHandler).on('core.element.validating', this.elementValidatingHandler).on('core.element.validated', this.elementValidatedHandler).on('core.element.notvalidated', this.elementNotValidatedHandler).on('plugins.icon.placed', this.iconPlacedHandler).on('core.field.added', this.fieldAddedHandler).on('core.field.removed', this.fieldRemovedHandler);\n\n if (this.opts.defaultMessageContainer) {\n this.core.registerPlugin('___frameworkMessage', new Message_1[\"default\"]({\n clazz: this.opts.messageClass,\n container: function container(field, element) {\n var selector = 'string' === typeof _this.opts.rowSelector ? _this.opts.rowSelector : _this.opts.rowSelector(field, element);\n var groupEle = closest_1[\"default\"](element, selector);\n return Message_1[\"default\"].getClosestContainer(element, groupEle, _this.opts.rowPattern);\n }\n }));\n this.core.on('plugins.message.placed', this.messagePlacedHandler);\n }\n };\n\n Framework.prototype.uninstall = function () {\n var _a;\n\n this.results.clear();\n this.containers.clear();\n classSet_1[\"default\"](this.core.getFormElement(), (_a = {}, _a[this.opts.formClass] = false, _a['fv-plugins-framework'] = false, _a));\n this.core.off('core.element.ignored', this.elementIgnoredHandler).off('core.element.validating', this.elementValidatingHandler).off('core.element.validated', this.elementValidatedHandler).off('core.element.notvalidated', this.elementNotValidatedHandler).off('plugins.icon.placed', this.iconPlacedHandler).off('core.field.added', this.fieldAddedHandler).off('core.field.removed', this.fieldRemovedHandler);\n\n if (this.opts.defaultMessageContainer) {\n this.core.off('plugins.message.placed', this.messagePlacedHandler);\n }\n };\n\n Framework.prototype.onIconPlaced = function (_e) {};\n\n Framework.prototype.onMessagePlaced = function (_e) {};\n\n Framework.prototype.onFieldAdded = function (e) {\n var _this = this;\n\n var elements = e.elements;\n\n if (elements) {\n elements.forEach(function (ele) {\n var _a;\n\n var groupEle = _this.containers.get(ele);\n\n if (groupEle) {\n classSet_1[\"default\"](groupEle, (_a = {}, _a[_this.opts.rowInvalidClass] = false, _a[_this.opts.rowValidatingClass] = false, _a[_this.opts.rowValidClass] = false, _a['fv-plugins-icon-container'] = false, _a));\n\n _this.containers[\"delete\"](ele);\n }\n });\n this.prepareFieldContainer(e.field, elements);\n }\n };\n\n Framework.prototype.onFieldRemoved = function (e) {\n var _this = this;\n\n e.elements.forEach(function (ele) {\n var _a;\n\n var groupEle = _this.containers.get(ele);\n\n if (groupEle) {\n classSet_1[\"default\"](groupEle, (_a = {}, _a[_this.opts.rowInvalidClass] = false, _a[_this.opts.rowValidatingClass] = false, _a[_this.opts.rowValidClass] = false, _a));\n }\n });\n };\n\n Framework.prototype.prepareFieldContainer = function (field, elements) {\n var _this = this;\n\n if (elements.length) {\n var type = elements[0].getAttribute('type');\n\n if ('radio' === type || 'checkbox' === type) {\n this.prepareElementContainer(field, elements[0]);\n } else {\n elements.forEach(function (ele) {\n return _this.prepareElementContainer(field, ele);\n });\n }\n }\n };\n\n Framework.prototype.prepareElementContainer = function (field, element) {\n var _a;\n\n var selector = 'string' === typeof this.opts.rowSelector ? this.opts.rowSelector : this.opts.rowSelector(field, element);\n var groupEle = closest_1[\"default\"](element, selector);\n\n if (groupEle !== element) {\n classSet_1[\"default\"](groupEle, (_a = {}, _a[this.opts.rowClasses] = true, _a['fv-plugins-icon-container'] = true, _a));\n this.containers.set(element, groupEle);\n }\n };\n\n Framework.prototype.onElementValidating = function (e) {\n var _a;\n\n var elements = e.elements;\n var type = e.element.getAttribute('type');\n var element = 'radio' === type || 'checkbox' === type ? elements[0] : e.element;\n var groupEle = this.containers.get(element);\n\n if (groupEle) {\n classSet_1[\"default\"](groupEle, (_a = {}, _a[this.opts.rowInvalidClass] = false, _a[this.opts.rowValidatingClass] = true, _a[this.opts.rowValidClass] = false, _a));\n }\n };\n\n Framework.prototype.onElementNotValidated = function (e) {\n this.removeClasses(e.element, e.elements);\n };\n\n Framework.prototype.onElementIgnored = function (e) {\n this.removeClasses(e.element, e.elements);\n };\n\n Framework.prototype.removeClasses = function (element, elements) {\n var _a, _b;\n\n var type = element.getAttribute('type');\n var ele = 'radio' === type || 'checkbox' === type ? elements[0] : element;\n classSet_1[\"default\"](ele, (_a = {}, _a[this.opts.eleValidClass] = false, _a[this.opts.eleInvalidClass] = false, _a));\n var groupEle = this.containers.get(ele);\n\n if (groupEle) {\n classSet_1[\"default\"](groupEle, (_b = {}, _b[this.opts.rowInvalidClass] = false, _b[this.opts.rowValidatingClass] = false, _b[this.opts.rowValidClass] = false, _b));\n }\n };\n\n Framework.prototype.onElementValidated = function (e) {\n var _a, _b;\n\n var _this = this;\n\n var elements = e.elements;\n var type = e.element.getAttribute('type');\n var element = 'radio' === type || 'checkbox' === type ? elements[0] : e.element;\n elements.forEach(function (ele) {\n var _a;\n\n classSet_1[\"default\"](ele, (_a = {}, _a[_this.opts.eleValidClass] = e.valid, _a[_this.opts.eleInvalidClass] = !e.valid, _a));\n });\n var groupEle = this.containers.get(element);\n\n if (groupEle) {\n if (!e.valid) {\n this.results.set(element, false);\n classSet_1[\"default\"](groupEle, (_a = {}, _a[this.opts.rowInvalidClass] = true, _a[this.opts.rowValidatingClass] = false, _a[this.opts.rowValidClass] = false, _a));\n } else {\n this.results[\"delete\"](element);\n var isValid_1 = true;\n this.containers.forEach(function (value, key) {\n if (value === groupEle && _this.results.get(key) === false) {\n isValid_1 = false;\n }\n });\n\n if (isValid_1) {\n classSet_1[\"default\"](groupEle, (_b = {}, _b[this.opts.rowInvalidClass] = false, _b[this.opts.rowValidatingClass] = false, _b[this.opts.rowValidClass] = true, _b));\n }\n }\n }\n };\n\n return Framework;\n }(Plugin_1[\"default\"]);\n\n exports[\"default\"] = Framework;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvcGx1Z2lucy9mb3JtdmFsaWRhdGlvbi9kaXN0L2FtZC9wbHVnaW5zL0ZyYW1ld29yay5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxvRUFBSUEsU0FBUyxHQUFJLFFBQVEsS0FBS0EsU0FBZCxJQUE2QixZQUFZO0FBQ3JELE1BQUlDLGNBQWEsR0FBRyx1QkFBVUMsQ0FBVixFQUFhQyxDQUFiLEVBQWdCO0FBQ2hDRixJQUFBQSxjQUFhLEdBQUdHLE1BQU0sQ0FBQ0MsY0FBUCxJQUNYO0FBQUVDLE1BQUFBLFNBQVMsRUFBRTtBQUFiLGlCQUE2QkMsS0FBN0IsSUFBc0MsVUFBVUwsQ0FBVixFQUFhQyxDQUFiLEVBQWdCO0FBQUVELE1BQUFBLENBQUMsQ0FBQ0ksU0FBRixHQUFjSCxDQUFkO0FBQWtCLEtBRC9ELElBRVosVUFBVUQsQ0FBVixFQUFhQyxDQUFiLEVBQWdCO0FBQUUsV0FBSyxJQUFJSyxDQUFULElBQWNMLENBQWQ7QUFBaUIsWUFBSUEsQ0FBQyxDQUFDTSxjQUFGLENBQWlCRCxDQUFqQixDQUFKLEVBQXlCTixDQUFDLENBQUNNLENBQUQsQ0FBRCxHQUFPTCxDQUFDLENBQUNLLENBQUQsQ0FBUjtBQUExQztBQUF3RCxLQUY5RTs7QUFHQSxXQUFPUCxjQUFhLENBQUNDLENBQUQsRUFBSUMsQ0FBSixDQUFwQjtBQUNILEdBTEQ7O0FBTUEsU0FBTyxVQUFVRCxDQUFWLEVBQWFDLENBQWIsRUFBZ0I7QUFDbkJGLElBQUFBLGNBQWEsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLENBQWI7O0FBQ0EsYUFBU08sRUFBVCxHQUFjO0FBQUUsV0FBS0MsV0FBTCxHQUFtQlQsQ0FBbkI7QUFBdUI7O0FBQ3ZDQSxJQUFBQSxDQUFDLENBQUNVLFNBQUYsR0FBY1QsQ0FBQyxLQUFLLElBQU4sR0FBYUMsTUFBTSxDQUFDUyxNQUFQLENBQWNWLENBQWQsQ0FBYixJQUFpQ08sRUFBRSxDQUFDRSxTQUFILEdBQWVULENBQUMsQ0FBQ1MsU0FBakIs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RUFBaUJzRSxHQUFqQixFQUFzQjtBQUMxQyxnQkFBSXRFLEtBQUssS0FBSzhDLFFBQVYsSUFBc0IxQyxLQUFLLENBQUNFLE9BQU4sQ0FBY21ELEdBQWQsQ0FBa0JhLEdBQWxCLE1BQTJCLEtBQXJELEVBQTREO0FBQ3hERCxjQUFBQSxTQUFTLEdBQUcsS0FBWjtBQUNIO0FBQ0osV0FKRDs7QUFLQSxjQUFJQSxTQUFKLEVBQWU7QUFDWHpFLFlBQUFBLFVBQVUsV0FBVixDQUFtQmtELFFBQW5CLEdBQThCcUIsRUFBRSxHQUFHLEVBQUwsRUFDMUJBLEVBQUUsQ0FBQyxLQUFLaEUsSUFBTCxDQUFVdUQsZUFBWCxDQUFGLEdBQWdDLEtBRE4sRUFFMUJTLEVBQUUsQ0FBQyxLQUFLaEUsSUFBTCxDQUFVVyxrQkFBWCxDQUFGLEdBQW1DLEtBRlQsRUFHMUJxRCxFQUFFLENBQUMsS0FBS2hFLElBQUwsQ0FBVXdELGFBQVgsQ0FBRixHQUE4QixJQUhKLEVBSTFCUSxFQUpKO0FBS0g7QUFDSjtBQUNKO0FBQ0osS0F4Q0Q7O0FBeUNBLFdBQU9sRSxTQUFQO0FBQ0gsR0F2TmdCLENBdU5mTixRQUFRLFdBdk5PLENBQWpCOztBQXdOQUQsRUFBQUEsa0JBQUEsR0FBa0JPLFNBQWxCO0FBQ0gsQ0E1Tks7QUFBQSxrR0FBTiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvY29yZS9wbHVnaW5zL2Zvcm12YWxpZGF0aW9uL2Rpc3QvYW1kL3BsdWdpbnMvRnJhbWV3b3JrLmpzPzJiODAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikge1xyXG4gICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcclxuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxyXG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxuICAgIH07XHJcbn0pKCk7XHJcbmRlZmluZShbXCJyZXF1aXJlXCIsIFwiZXhwb3J0c1wiLCBcIi4uL2NvcmUvUGx1Z2luXCIsIFwiLi4vdXRpbHMvY2xhc3NTZXRcIiwgXCIuLi91dGlscy9jbG9zZXN0XCIsIFwiLi9NZXNzYWdlXCJdLCBmdW5jdGlvbiAocmVxdWlyZSwgZXhwb3J0cywgUGx1Z2luXzEsIGNsYXNzU2V0XzEsIGNsb3Nlc3RfMSwgTWVzc2FnZV8xKSB7XHJcbiAgICBcInVzZSBzdHJpY3RcIjtcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuICAgIHZhciBGcmFtZXdvcmsgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xyXG4gICAgICAgIF9fZXh0ZW5kcyhGcmFtZXdvcmssIF9zdXBlcik7XHJcbiAgICAgICAgZnVuY3Rpb24gRnJhbWV3b3JrKG9wdHMpIHtcclxuICAgICAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgb3B0cykgfHwgdGhpcztcclxuICAgICAgICAgICAgX3RoaXMucmVzdWx0cyA9IG5ldyBNYXAoKTtcclxuICAgICAgICAgICAgX3RoaXMuY29udGFpbmVycyA9IG5ldyBNYXAoKTtcclxuICAgICAgICAgICAgX3RoaXMub3B0cyA9IE9iamVjdC5hc3NpZ24oe30sIHtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHRNZXNzYWdlQ29udGFpbmVyOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgZWxlSW52YWxpZENsYXNzOiAnJyxcclxuICAgICAgICAgICAgICAgIGVsZVZhbGlkQ2xhc3M6ICcnLFxyXG4gICAgICAgICAgICAgICAgcm93Q2xhc3NlczogJycsXHJcbiAgICAgICAgICAgICAgICByb3dWYWxpZGF0aW5nQ2xhc3M6ICcnLFxyXG4gICAgICAgICAgICB9LCBvcHRzKTtcclxuICAgICAgICAgICAgX3RoaXMuZWxlbWVudElnbm9yZWRIYW5kbGVyID0gX3RoaXMub25FbGVtZW50SWdub3JlZC5iaW5kKF90aGlzKTtcclxuICAgICAgICAgICAgX3RoaXMuZWxlbWVudFZhbGlkYXRpbmdIYW5kbGVyID0gX3RoaXMub25FbGVtZW50VmFsaWRhdGluZy5iaW5kKF90aGlzKTtcclxuICAgICAgICAgICAgX3RoaXMuZWxlbWVudFZhbGlkYXRlZEhhbmRsZXIgPSBfdGhpcy5vbkVsZW1lbnRWYWxpZGF0ZWQuYmluZChfdGhpcyk7XHJcbiAgICAgICAgICAgIF90aGlzLmVsZW1lbnROb3RWYWxpZGF0ZWRIYW5kbGVyID0gX3RoaXMub25FbGVtZW50Tm90VmFsaWRhdGVkLmJpbmQoX3RoaXMpO1xyXG4gICAgICAgICAgICBfdGhpcy5pY29uUGxhY2VkSGFuZGxlciA9IF90aGlzLm9uSWNvblBsYWNlZC5iaW5kKF90aGlzKTtcclxuICAgICAgICAgICAgX3RoaXMuZmllbGRBZGRlZEhhbmRsZXIgPSBfdGhpcy5vbkZpZWxkQWRkZWQuYmluZChfdGhpcyk7XHJcbiAgICAgICAgICAgIF90aGlzLmZpZWxkUmVtb3ZlZEhhbmRsZXIgPSBfdGhpcy5vbkZpZWxkUmVtb3ZlZC5iaW5kKF90aGlzKTtcclxuICAgICAgICAgICAgX3RoaXMubWVzc2FnZVBsYWNlZEhhbmRsZXIgPSBfdGhpcy5vbk1lc3NhZ2VQbGFjZWQuYmluZChfdGhpcyk7XHJcbiAgICAgICAgICAgIHJldHVybiBfdGhpcztcclxuICAgICAgICB9XHJcbiAgICAgICAgRnJhbWV3b3JrLnByb3RvdHlwZS5pbnN0YWxsID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgICAgIGNsYXNzU2V0XzEuZGVmYXVsdCh0aGlzLmNvcmUuZ2V0Rm9ybUVsZW1lbnQoKSwgKF9hID0ge30sXHJcbiAgICAgICAgICAgICAgICBfYVt0aGlzLm9wdHMuZm9ybUNsYXNzXSA9IHRydWUsXHJcbiAgICAgICAgICAgICAgICBfYVsnZnYtcGx1Z2lucy1mcmFtZXdvcmsnXSA9IHRydWUsXHJcbiAgICAgICAgICAgICAgICBfYSkpO1xyXG4gICAgICAgICAgICB0aGlzLmNvcmVcclxuICAgICAgICAgICAgICAgIC5vbignY29yZS5lbGVtZW50Lmlnbm9yZWQnLCB0aGlzLmVsZW1lbnRJZ25vcmVkSGFuZGxlcilcclxuICAgICAgICAgICAgICAgIC5vbignY29yZS5lbGVtZW50LnZhbGlkYXRpbmcnLCB0aGlzLmVsZW1lbnRWYWxpZGF0aW5nSGFuZGxlcilcclxuICAgICAgICAgICAgICAgIC5vbignY29yZS5lbGVtZW50LnZhbGlkYXRlZCcsIHRoaXMuZWxlbWVudFZhbGlkYXRlZEhhbmRsZXIpXHJcbiAgICAgICAgICAgICAgICAub24oJ2NvcmUuZWxlbWVudC5ub3R2YWxpZGF0ZWQnLCB0aGlzLmVsZW1lbnROb3RWYWxpZGF0ZWRIYW5kbGVyKVxyXG4gICAgICAgICAgICAgICAgLm9uKCdwbHVnaW5zLmljb24ucGxhY2VkJywgdGhpcy5pY29uUGxhY2VkSGFuZGxlcilcclxuICAgICAgICAgICAgICAgIC5vbignY29yZS5maWVsZC5hZGRlZCcsIHRoaXMuZmllbGRBZGRlZEhhbmRsZXIpXHJcbiAgICAgICAgICAgICAgICAub24oJ2NvcmUuZmllbGQucmVtb3ZlZCcsIHRoaXMuZmllbGRSZW1vdmVkSGFuZGxlcik7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdHMuZGVmYXVsdE1lc3NhZ2VDb250YWluZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29yZS5yZWdpc3RlclBsdWdpbignX19fZnJhbWV3b3JrTWVzc2FnZScsIG5ldyBNZXNzYWdlXzEuZGVmYXVsdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xheno6IHRoaXMub3B0cy5tZXNzYWdlQ2xhc3MsXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyOiBmdW5jdGlvbiAoZmllbGQsIGVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdG9yID0gJ3N0cmluZycgPT09IHR5cGVvZiBfdGhpcy5vcHRzLnJvd1NlbGVjdG9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IF90aGlzLm9wdHMucm93U2VsZWN0b3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogX3RoaXMub3B0cy5yb3dTZWxlY3RvcihmaWVsZCwgZWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBncm91cEVsZSA9IGNsb3Nlc3RfMS5kZWZhdWx0KGVsZW1lbnQsIHNlbGVjdG9yKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1lc3NhZ2VfMS5kZWZhdWx0LmdldENsb3Nlc3RDb250YWluZXIoZWxlbWVudCwgZ3JvdXBFbGUsIF90aGlzLm9wdHMucm93UGF0dGVybik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29yZS5vbigncGx1Z2lucy5tZXNzYWdlLnBsYWNlZCcsIHRoaXMubWVzc2FnZVBsYWNlZEhhbmRsZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBGcmFtZXdvcmsucHJvdG90eXBlLnVuaW5zdGFsbCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgICAgICB0aGlzLnJlc3VsdHMuY2xlYXIoKTtcclxuICAgICAgICAgICAgdGhpcy5jb250YWluZXJzLmNsZWFyKCk7XHJcbiAgICAgICAgICAgIGNsYXNzU2V0XzEuZGVmYXVsdCh0aGlzLmNvcmUuZ2V0Rm9ybUVsZW1lbnQoKSwgKF9hID0ge30sXHJcbiAgICAgICAgICAgICAgICBfYVt0aGlzLm9wdHMuZm9ybUNsYXNzXSA9IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgX2FbJ2Z2LXBsdWdpbnMtZnJhbWV3b3JrJ10gPSBmYWxzZSxcclxuICAgICAgICAgICAgICAgIF9hKSk7XHJcbiAgICAgICAgICAgIHRoaXMuY29yZVxyXG4gICAgICAgICAgICAgICAgLm9mZignY29yZS5lbGVtZW50Lmlnbm9yZWQnLCB0aGlzLmVsZW1lbnRJZ25vcmVkSGFuZGxlcilcclxuICAgICAgICAgICAgICAgIC5vZmYoJ2NvcmUuZWxlbWVudC52YWxpZGF0aW5nJywgdGhpcy5lbGVtZW50VmFsaWRhdGluZ0hhbmRsZXIpXHJcbiAgICAgICAgICAgICAgICAub2ZmKCdjb3JlLmVsZW1lbnQudmFsaWRhdGVkJywgdGhpcy5lbGVtZW50VmFsaWRhdGVkSGFuZGxlcilcclxuICAgICAgICAgICAgICAgIC5vZmYoJ2NvcmUuZWxlbWVudC5ub3R2YWxpZGF0ZWQnLCB0aGlzLmVsZW1lbnROb3RWYWxpZGF0ZWRIYW5kbGVyKVxyXG4gICAgICAgICAgICAgICAgLm9mZigncGx1Z2lucy5pY29uLnBsYWNlZCcsIHRoaXMuaWNvblBsYWNlZEhhbmRsZXIpXHJcbiAgICAgICAgICAgICAgICAub2ZmKCdjb3JlLmZpZWxkLmFkZGVkJywgdGhpcy5maWVsZEFkZGVkSGFuZGxlcilcclxuICAgICAgICAgICAgICAgIC5vZmYoJ2NvcmUuZmllbGQucmVtb3ZlZCcsIHRoaXMuZmllbGRSZW1vdmVkSGFuZGxlcik7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdHMuZGVmYXVsdE1lc3NhZ2VDb250YWluZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29yZS5vZmYoJ3BsdWdpbnMubWVzc2FnZS5wbGFjZWQnLCB0aGlzLm1lc3NhZ2VQbGFjZWRIYW5kbGVyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgRnJhbWV3b3JrLnByb3RvdHlwZS5vbkljb25QbGFjZWQgPSBmdW5jdGlvbiAoX2UpIHsgfTtcclxuICAgICAgICBGcmFtZXdvcmsucHJvdG90eXBlLm9uTWVzc2FnZVBsYWNlZCA9IGZ1bmN0aW9uIChfZSkgeyB9O1xyXG4gICAgICAgIEZyYW1ld29yay5wcm90b3R5cGUub25GaWVsZEFkZGVkID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICAgICAgdmFyIGVsZW1lbnRzID0gZS5lbGVtZW50cztcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnRzKSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChlbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3VwRWxlID0gX3RoaXMuY29udGFpbmVycy5nZXQoZWxlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBFbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NTZXRfMS5kZWZhdWx0KGdyb3VwRWxlLCAoX2EgPSB7fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hW190aGlzLm9wdHMucm93SW52YWxpZENsYXNzXSA9IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2FbX3RoaXMub3B0cy5yb3dWYWxpZGF0aW5nQ2xhc3NdID0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYVtfdGhpcy5vcHRzLnJvd1ZhbGlkQ2xhc3NdID0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYVsnZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciddID0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5jb250YWluZXJzLmRlbGV0ZShlbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlRmllbGRDb250YWluZXIoZS5maWVsZCwgZWxlbWVudHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBGcmFtZXdvcmsucHJvdG90eXBlLm9uRmllbGRSZW1vdmVkID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICAgICAgZS5lbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChlbGUpIHtcclxuICAgICAgICAgICAgICAgIHZhciBfYTtcclxuICAgICAgICAgICAgICAgIHZhciBncm91cEVsZSA9IF90aGlzLmNvbnRhaW5lcnMuZ2V0KGVsZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZ3JvdXBFbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc1NldF8xLmRlZmF1bHQoZ3JvdXBFbGUsIChfYSA9IHt9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfYVtfdGhpcy5vcHRzLnJvd0ludmFsaWRDbGFzc10gPSBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2FbX3RoaXMub3B0cy5yb3dWYWxpZGF0aW5nQ2xhc3NdID0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hW190aGlzLm9wdHMucm93VmFsaWRDbGFzc10gPSBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2EpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBGcmFtZXdvcmsucHJvdG90eXBlLnByZXBhcmVGaWVsZENvbnRhaW5lciA9IGZ1bmN0aW9uIChmaWVsZCwgZWxlbWVudHMpIHtcclxuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnRzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHR5cGUgPSBlbGVtZW50c1swXS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKTtcclxuICAgICAgICAgICAgICAgIGlmICgncmFkaW8nID09PSB0eXBlIHx8ICdjaGVja2JveCcgPT09IHR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVFbGVtZW50Q29udGFpbmVyKGZpZWxkLCBlbGVtZW50c1swXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChlbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF90aGlzLnByZXBhcmVFbGVtZW50Q29udGFpbmVyKGZpZWxkLCBlbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBGcmFtZXdvcmsucHJvdG90eXBlLnByZXBhcmVFbGVtZW50Q29udGFpbmVyID0gZnVuY3Rpb24gKGZpZWxkLCBlbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHZhciBfYTtcclxuICAgICAgICAgICAgdmFyIHNlbGVjdG9yID0gJ3N0cmluZycgPT09IHR5cGVvZiB0aGlzLm9wdHMucm93U2VsZWN0b3JcclxuICAgICAgICAgICAgICAgID8gdGhpcy5vcHRzLnJvd1NlbGVjdG9yXHJcbiAgICAgICAgICAgICAgICA6IHRoaXMub3B0cy5yb3dTZWxlY3RvcihmaWVsZCwgZWxlbWVudCk7XHJcbiAgICAgICAgICAgIHZhciBncm91cEVsZSA9IGNsb3Nlc3RfMS5kZWZhdWx0KGVsZW1lbnQsIHNlbGVjdG9yKTtcclxuICAgICAgICAgICAgaWYgKGdyb3VwRWxlICE9PSBlbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICBjbGFzc1NldF8xLmRlZmF1bHQoZ3JvdXBFbGUsIChfYSA9IHt9LFxyXG4gICAgICAgICAgICAgICAgICAgIF9hW3RoaXMub3B0cy5yb3dDbGFzc2VzXSA9IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgX2FbJ2Z2LXBsdWdpbnMtaWNvbi1jb250YWluZXInXSA9IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgX2EpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVycy5zZXQoZWxlbWVudCwgZ3JvdXBFbGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBGcmFtZXdvcmsucHJvdG90eXBlLm9uRWxlbWVudFZhbGlkYXRpbmcgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgICAgIHZhciBlbGVtZW50cyA9IGUuZWxlbWVudHM7XHJcbiAgICAgICAgICAgIHZhciB0eXBlID0gZS5lbGVtZW50LmdldEF0dHJpYnV0ZSgndHlwZScpO1xyXG4gICAgICAgICAgICB2YXIgZWxlbWVudCA9ICdyYWRpbycgPT09IHR5cGUgfHwgJ2NoZWNrYm94JyA9PT0gdHlwZSA/IGVsZW1lbnRzWzBdIDogZS5lbGVtZW50O1xyXG4gICAgICAgICAgICB2YXIgZ3JvdXBFbGUgPSB0aGlzLmNvbnRhaW5lcnMuZ2V0KGVsZW1lbnQpO1xyXG4gICAgICAgICAgICBpZiAoZ3JvdXBFbGUpIHtcclxuICAgICAgICAgICAgICAgIGNsYXNzU2V0XzEuZGVmYXVsdChncm91cEVsZSwgKF9hID0ge30sXHJcbiAgICAgICAgICAgICAgICAgICAgX2FbdGhpcy5vcHRzLnJvd0ludmFsaWRDbGFzc10gPSBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBfYVt0aGlzLm9wdHMucm93VmFsaWRhdGluZ0NsYXNzXSA9IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgX2FbdGhpcy5vcHRzLnJvd1ZhbGlkQ2xhc3NdID0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgX2EpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgRnJhbWV3b3JrLnByb3RvdHlwZS5vbkVsZW1lbnROb3RWYWxpZGF0ZWQgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUNsYXNzZXMoZS5lbGVtZW50LCBlLmVsZW1lbnRzKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIEZyYW1ld29yay5wcm90b3R5cGUub25FbGVtZW50SWdub3JlZCA9IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2xhc3NlcyhlLmVsZW1lbnQsIGUuZWxlbWVudHMpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgRnJhbWV3b3JrLnByb3RvdHlwZS5yZW1vdmVDbGFzc2VzID0gZnVuY3Rpb24gKGVsZW1lbnQsIGVsZW1lbnRzKSB7XHJcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XHJcbiAgICAgICAgICAgIHZhciB0eXBlID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3R5cGUnKTtcclxuICAgICAgICAgICAgdmFyIGVsZSA9ICdyYWRpbycgPT09IHR5cGUgfHwgJ2NoZWNrYm94JyA9PT0gdHlwZSA/IGVsZW1lbnRzWzBdIDogZWxlbWVudDtcclxuICAgICAgICAgICAgY2xhc3NTZXRfMS5kZWZhdWx0KGVsZSwgKF9hID0ge30sXHJcbiAgICAgICAgICAgICAgICBfYVt0aGlzLm9wdHMuZWxlVmFsaWRDbGFzc10gPSBmYWxzZSxcclxuICAgICAgICAgICAgICAgIF9hW3RoaXMub3B0cy5lbGVJbnZhbGlkQ2xhc3NdID0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBfYSkpO1xyXG4gICAgICAgICAgICB2YXIgZ3JvdXBFbGUgPSB0aGlzLmNvbnRhaW5lcnMuZ2V0KGVsZSk7XHJcbiAgICAgICAgICAgIGlmIChncm91cEVsZSkge1xyXG4gICAgICAgICAgICAgICAgY2xhc3NTZXRfMS5kZWZhdWx0KGdyb3VwRWxlLCAoX2IgPSB7fSxcclxuICAgICAgICAgICAgICAgICAgICBfYlt0aGlzLm9wdHMucm93SW52YWxpZENsYXNzXSA9IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIF9iW3RoaXMub3B0cy5yb3dWYWxpZGF0aW5nQ2xhc3NdID0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgX2JbdGhpcy5vcHRzLnJvd1ZhbGlkQ2xhc3NdID0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgX2IpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgRnJhbWV3b3JrLnByb3RvdHlwZS5vbkVsZW1lbnRWYWxpZGF0ZWQgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgICB2YXIgX2EsIF9iO1xyXG4gICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgICAgICB2YXIgZWxlbWVudHMgPSBlLmVsZW1lbnRzO1xyXG4gICAgICAgICAgICB2YXIgdHlwZSA9IGUuZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3R5cGUnKTtcclxuICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSAncmFkaW8nID09PSB0eXBlIHx8ICdjaGVja2JveCcgPT09IHR5cGUgPyBlbGVtZW50c1swXSA6IGUuZWxlbWVudDtcclxuICAgICAgICAgICAgZWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbiAoZWxlKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgICAgICAgICBjbGFzc1NldF8xLmRlZmF1bHQoZWxlLCAoX2EgPSB7fSxcclxuICAgICAgICAgICAgICAgICAgICBfYVtfdGhpcy5vcHRzLmVsZVZhbGlkQ2xhc3NdID0gZS52YWxpZCxcclxuICAgICAgICAgICAgICAgICAgICBfYVtfdGhpcy5vcHRzLmVsZUludmFsaWRDbGFzc10gPSAhZS52YWxpZCxcclxuICAgICAgICAgICAgICAgICAgICBfYSkpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdmFyIGdyb3VwRWxlID0gdGhpcy5jb250YWluZXJzLmdldChlbGVtZW50KTtcclxuICAgICAgICAgICAgaWYgKGdyb3VwRWxlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWUudmFsaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3VsdHMuc2V0KGVsZW1lbnQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc1NldF8xLmRlZmF1bHQoZ3JvdXBFbGUsIChfYSA9IHt9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfYVt0aGlzLm9wdHMucm93SW52YWxpZENsYXNzXSA9IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hW3RoaXMub3B0cy5yb3dWYWxpZGF0aW5nQ2xhc3NdID0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hW3RoaXMub3B0cy5yb3dWYWxpZENsYXNzXSA9IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfYSkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXN1bHRzLmRlbGV0ZShlbGVtZW50KTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgaXNWYWxpZF8xID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lcnMuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUsIGtleSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IGdyb3VwRWxlICYmIF90aGlzLnJlc3VsdHMuZ2V0KGtleSkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkXzEgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkXzEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NTZXRfMS5kZWZhdWx0KGdyb3VwRWxlLCAoX2IgPSB7fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9iW3RoaXMub3B0cy5yb3dJbnZhbGlkQ2xhc3NdID0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYlt0aGlzLm9wdHMucm93VmFsaWRhdGluZ0NsYXNzXSA9IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2JbdGhpcy5vcHRzLnJvd1ZhbGlkQ2xhc3NdID0gdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9iKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gRnJhbWV3b3JrO1xyXG4gICAgfShQbHVnaW5fMS5kZWZhdWx0KSk7XHJcbiAgICBleHBvcnRzLmRlZmF1bHQgPSBGcmFtZXdvcms7XHJcbn0pO1xyXG4iXSwibmFtZXMiOlsiX19leHRlbmRzIiwiZXh0ZW5kU3RhdGljcyIsImQiLCJiIiwiT2JqZWN0Iiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJBcnJheSIsInAiLCJoYXNPd25Qcm9wZXJ0eSIsIl9fIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJjcmVhdGUiLCJkZWZpbmUiLCJyZXF1aXJlIiwiZXhwb3J0cyIsIlBsdWdpbl8xIiwiY2xhc3NTZXRfMSIsImNsb3Nlc3RfMSIsIk1lc3NhZ2VfMSIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJGcmFtZXdvcmsiLCJfc3VwZXIiLCJvcHRzIiwiX3RoaXMiLCJjYWxsIiwicmVzdWx0cyIsIk1hcCIsImNvbnRhaW5lcnMiLCJhc3NpZ24iLCJkZWZhdWx0TWVzc2FnZUNvbnRhaW5lciIsImVsZUludmFsaWRDbGFzcyIsImVsZVZhbGlkQ2xhc3MiLCJyb3dDbGFzc2VzIiwicm93VmFsaWRhdGluZ0NsYXNzIiwiZWxlbWVudElnbm9yZWRIYW5kbGVyIiwib25FbGVtZW50SWdub3JlZCIsImJpbmQiLCJlbGVtZW50VmFsaWRhdGluZ0hhbmRsZXIiLCJvbkVsZW1lbnRWYWxpZGF0aW5nIiwiZWxlbWVudFZhbGlkYXRlZEhhbmRsZXIiLCJvbkVsZW1lbnRWYWxpZGF0ZWQiLCJlbGVtZW50Tm90VmFsaWRhdGVkSGFuZGxlciIsIm9uRWxlbWVudE5vdFZhbGlkYXRlZCIsImljb25QbGFjZWRIYW5kbGVyIiwib25JY29uUGxhY2VkIiwiZmllbGRBZGRlZEhhbmRsZXIiLCJvbkZpZWxkQWRkZWQiLCJmaWVsZFJlbW92ZWRIYW5kbGVyIiwib25GaWVsZFJlbW92ZWQiLCJtZXNzYWdlUGxhY2VkSGFuZGxlciIsIm9uTWVzc2FnZVBsYWNlZCIsImluc3RhbGwiLCJfYSIsImNvcmUiLCJnZXRGb3JtRWxlbWVudCIsImZvcm1DbGFzcyIsIm9uIiwicmVnaXN0ZXJQbHVnaW4iLCJjbGF6eiIsIm1lc3NhZ2VDbGFzcyIsImNvbnRhaW5lciIsImZpZWxkIiwiZWxlbWVudCIsInNlbGVjdG9yIiwicm93U2VsZWN0b3IiLCJncm91cEVsZSIsImdldENsb3Nlc3RDb250YWluZXIiLCJyb3dQYXR0ZXJuIiwidW5pbnN0YWxsIiwiY2xlYXIiLCJvZmYiLCJfZSIsImUiLCJlbGVtZW50cyIsImZvckVhY2giLCJlbGUiLCJnZXQiLCJyb3dJbnZhbGlkQ2xhc3MiLCJyb3dWYWxpZENsYXNzIiwicHJlcGFyZUZpZWxkQ29udGFpbmVyIiwibGVuZ3RoIiwidHlwZSIsImdldEF0dHJpYnV0ZSIsInByZXBhcmVFbGVtZW50Q29udGFpbmVyIiwic2V0IiwicmVtb3ZlQ2xhc3NlcyIsIl9iIiwidmFsaWQiLCJpc1ZhbGlkXzEiLCJrZXkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/assets/core/plugins/formvalidation/dist/amd/plugins/Framework.js\n"); /***/ }), /***/ "./resources/assets/core/plugins/formvalidation/dist/amd/plugins/Message.js": /*!**********************************************************************************!*\ !*** ./resources/assets/core/plugins/formvalidation/dist/amd/plugins/Message.js ***! \**********************************************************************************/ /***/ (function(module, exports, __webpack_require__) { eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(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) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ../core/Plugin */ \"./resources/assets/core/plugins/formvalidation/dist/amd/core/Plugin.js\"), __webpack_require__(/*! ../utils/classSet */ \"./resources/assets/core/plugins/formvalidation/dist/amd/utils/classSet.js\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, Plugin_1, classSet_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", ({\n value: true\n }));\n\n var Message = function (_super) {\n __extends(Message, _super);\n\n function Message(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.messages = new Map();\n _this.defaultContainer = document.createElement('div');\n _this.opts = Object.assign({}, {\n container: function container(_field, _element) {\n return _this.defaultContainer;\n }\n }, opts);\n _this.elementIgnoredHandler = _this.onElementIgnored.bind(_this);\n _this.fieldAddedHandler = _this.onFieldAdded.bind(_this);\n _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_this);\n _this.validatorValidatedHandler = _this.onValidatorValidated.bind(_this);\n _this.validatorNotValidatedHandler = _this.onValidatorNotValidated.bind(_this);\n return _this;\n }\n\n Message.getClosestContainer = function (element, upper, pattern) {\n var ele = element;\n\n while (ele) {\n if (ele === upper) {\n break;\n }\n\n ele = ele.parentElement;\n\n if (pattern.test(ele.className)) {\n break;\n }\n }\n\n return ele;\n };\n\n Message.prototype.install = function () {\n this.core.getFormElement().appendChild(this.defaultContainer);\n this.core.on('core.element.ignored', this.elementIgnoredHandler).on('core.field.added', this.fieldAddedHandler).on('core.field.removed', this.fieldRemovedHandler).on('core.validator.validated', this.validatorValidatedHandler).on('core.validator.notvalidated', this.validatorNotValidatedHandler);\n };\n\n Message.prototype.uninstall = function () {\n this.core.getFormElement().removeChild(this.defaultContainer);\n this.messages.forEach(function (message) {\n return message.parentNode.removeChild(message);\n });\n this.messages.clear();\n this.core.off('core.element.ignored', this.elementIgnoredHandler).off('core.field.added', this.fieldAddedHandler).off('core.field.removed', this.fieldRemovedHandler).off('core.validator.validated', this.validatorValidatedHandler).off('core.validator.notvalidated', this.validatorNotValidatedHandler);\n };\n\n Message.prototype.onFieldAdded = function (e) {\n var _this = this;\n\n var elements = e.elements;\n\n if (elements) {\n elements.forEach(function (ele) {\n var msg = _this.messages.get(ele);\n\n if (msg) {\n msg.parentNode.removeChild(msg);\n\n _this.messages[\"delete\"](ele);\n }\n });\n this.prepareFieldContainer(e.field, elements);\n }\n };\n\n Message.prototype.onFieldRemoved = function (e) {\n var _this = this;\n\n if (!e.elements.length || !e.field) {\n return;\n }\n\n var type = e.elements[0].getAttribute('type');\n var elements = 'radio' === type || 'checkbox' === type ? [e.elements[0]] : e.elements;\n elements.forEach(function (ele) {\n if (_this.messages.has(ele)) {\n var container = _this.messages.get(ele);\n\n container.parentNode.removeChild(container);\n\n _this.messages[\"delete\"](ele);\n }\n });\n };\n\n Message.prototype.prepareFieldContainer = function (field, elements) {\n var _this = this;\n\n if (elements.length) {\n var type = elements[0].getAttribute('type');\n\n if ('radio' === type || 'checkbox' === type) {\n this.prepareElementContainer(field, elements[0], elements);\n } else {\n elements.forEach(function (ele) {\n return _this.prepareElementContainer(field, ele, elements);\n });\n }\n }\n };\n\n Message.prototype.prepareElementContainer = function (field, element, elements) {\n var container;\n\n if ('string' === typeof this.opts.container) {\n var selector = '#' === this.opts.container.charAt(0) ? \"[id=\\\"\" + this.opts.container.substring(1) + \"\\\"]\" : this.opts.container;\n container = this.core.getFormElement().querySelector(selector);\n } else {\n container = this.opts.container(field, element);\n }\n\n var message = document.createElement('div');\n container.appendChild(message);\n classSet_1[\"default\"](message, {\n 'fv-plugins-message-container': true\n });\n this.core.emit('plugins.message.placed', {\n element: element,\n elements: elements,\n field: field,\n messageElement: message\n });\n this.messages.set(element, message);\n };\n\n Message.prototype.getMessage = function (result) {\n return typeof result.message === 'string' ? result.message : result.message[this.core.getLocale()];\n };\n\n Message.prototype.onValidatorValidated = function (e) {\n var _a;\n\n var elements = e.elements;\n var type = e.element.getAttribute('type');\n var element = 'radio' === type || 'checkbox' === type ? elements[0] : e.element;\n\n if (this.messages.has(element)) {\n var container = this.messages.get(element);\n var messageEle = container.querySelector(\"[data-field=\\\"\" + e.field + \"\\\"][data-validator=\\\"\" + e.validator + \"\\\"]\");\n\n if (!messageEle && !e.result.valid) {\n var ele = document.createElement('div');\n ele.innerHTML = this.getMessage(e.result);\n ele.setAttribute('data-field', e.field);\n ele.setAttribute('data-validator', e.validator);\n\n if (this.opts.clazz) {\n classSet_1[\"default\"](ele, (_a = {}, _a[this.opts.clazz] = true, _a));\n }\n\n container.appendChild(ele);\n this.core.emit('plugins.message.displayed', {\n element: e.element,\n field: e.field,\n message: e.result.message,\n messageElement: ele,\n meta: e.result.meta,\n validator: e.validator\n });\n } else if (messageEle && !e.result.valid) {\n messageEle.innerHTML = this.getMessage(e.result);\n this.core.emit('plugins.message.displayed', {\n element: e.element,\n field: e.field,\n message: e.result.message,\n messageElement: messageEle,\n meta: e.result.meta,\n validator: e.validator\n });\n } else if (messageEle && e.result.valid) {\n container.removeChild(messageEle);\n }\n }\n };\n\n Message.prototype.onValidatorNotValidated = function (e) {\n var elements = e.elements;\n var type = e.element.getAttribute('type');\n var element = 'radio' === type || 'checkbox' === type ? elements[0] : e.element;\n\n if (this.messages.has(element)) {\n var container = this.messages.get(element);\n var messageEle = container.querySelector(\"[data-field=\\\"\" + e.field + \"\\\"][data-validator=\\\"\" + e.validator + \"\\\"]\");\n\n if (messageEle) {\n container.removeChild(messageEle);\n }\n }\n };\n\n Message.prototype.onElementIgnored = function (e) {\n var elements = e.elements;\n var type = e.element.getAttribute('type');\n var element = 'radio' === type || 'checkbox' === type ? elements[0] : e.element;\n\n if (this.messages.has(element)) {\n var container_1 = this.messages.get(element);\n var messageElements = [].slice.call(container_1.querySelectorAll(\"[data-field=\\\"\" + e.field + \"\\\"]\"));\n messageElements.forEach(function (messageEle) {\n container_1.removeChild(messageEle);\n });\n }\n };\n\n return Message;\n }(Plugin_1[\"default\"]);\n\n exports[\"default\"] = Message;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvcGx1Z2lucy9mb3JtdmFsaWRhdGlvbi9kaXN0L2FtZC9wbHVnaW5zL01lc3NhZ2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsb0VBQUlBLFNBQVMsR0FBSSxRQUFRLEtBQUtBLFNBQWQsSUFBNkIsWUFBWTtBQUNyRCxNQUFJQyxjQUFhLEdBQUcsdUJBQVVDLENBQVYsRUFBYUMsQ0FBYixFQUFnQjtBQUNoQ0YsSUFBQUEsY0FBYSxHQUFHRyxNQUFNLENBQUNDLGNBQVAsSUFDWDtBQUFFQyxNQUFBQSxTQUFTLEVBQUU7QUFBYixpQkFBNkJDLEtBQTdCLElBQXNDLFVBQVVMLENBQVYsRUFBYUMsQ0FBYixFQUFnQjtBQUFFRCxNQUFBQSxDQUFDLENBQUNJLFNBQUYsR0FBY0gsQ0FBZDtBQUFrQixLQUQvRCxJQUVaLFVBQVVELENBQVYsRUFBYUMsQ0FBYixFQUFnQjtBQUFFLFdBQUssSUFBSUssQ0FBVCxJQUFjTCxDQUFkO0FBQWlCLFlBQUlBLENBQUMsQ0FBQ00sY0FBRixDQUFpQkQsQ0FBakIsQ0FBSixFQUF5Qk4sQ0FBQyxDQUFDTSxDQUFELENBQUQsR0FBT0wsQ0FBQyxDQUFDSyxDQUFELENBQVI7QUFBMUM7QUFBd0QsS0FGOUU7O0FBR0EsV0FBT1AsY0FBYSxDQUFDQyxDQUFELEVBQUlDLENBQUosQ0FBcEI7QUFDSCxHQUxEOztBQU1BLFNBQU8sVUFBVUQsQ0FBVixFQUFhQyxDQUFiLEVBQWdCO0FBQ25CRixJQUFBQSxjQUFhLENBQUNDLENBQUQsRUFBSUMsQ0FBSixDQUFiOztBQUNBLGFBQVNPLEVBQVQsR0FBYztBQUFFLFdBQUtDLFdBQUwsR0FBbUJULENBQW5CO0FBQXVCOztBQUN2Q0EsSUFBQUEsQ0FBQyxDQUFDVSxTQUFGLEdBQWNULENBQUMsS0FBSyxJQUFOLEdBQWFDLE1BQU0sQ0FBQ1MsTUFBUCxDQUFjVixDQUFkLENBQWIsSUFBaUNPLEVBQUUsQ0FBQ0UsU0FBSCxHQUFlVCxDQUFDLENBQUNTLFNBQWpCLEVB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LFFBQVEsQ0FBQyxDQUFELENBQWxELEdBQXdERCxDQUFDLENBQUNuQixPQUF4RTs7QUFDQSxVQUFJLEtBQUtyQixRQUFMLENBQWNpRCxHQUFkLENBQWtCNUIsT0FBbEIsQ0FBSixFQUFnQztBQUM1QixZQUFJZ0QsV0FBVyxHQUFHLEtBQUtyRSxRQUFMLENBQWMyQyxHQUFkLENBQWtCdEIsT0FBbEIsQ0FBbEI7QUFDQSxZQUFJaUQsZUFBZSxHQUFHLEdBQUdDLEtBQUgsQ0FBU3hFLElBQVQsQ0FBY3NFLFdBQVcsQ0FBQ0csZ0JBQVosQ0FBNkIsbUJBQW1CaEMsQ0FBQyxDQUFDSyxLQUFyQixHQUE2QixLQUExRCxDQUFkLENBQXRCO0FBQ0F5QixRQUFBQSxlQUFlLENBQUNuQyxPQUFoQixDQUF3QixVQUFVMkIsVUFBVixFQUFzQjtBQUMxQ08sVUFBQUEsV0FBVyxDQUFDbkMsV0FBWixDQUF3QjRCLFVBQXhCO0FBQ0gsU0FGRDtBQUdIO0FBQ0osS0FYRDs7QUFZQSxXQUFPbkUsT0FBUDtBQUNILEdBdk1jLENBdU1iSixRQUFRLFdBdk1LLENBQWY7O0FBd01BRCxFQUFBQSxrQkFBQSxHQUFrQkssT0FBbEI7QUFDSCxDQTVNSztBQUFBLGtHQUFOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9jb3JlL3BsdWdpbnMvZm9ybXZhbGlkYXRpb24vZGlzdC9hbWQvcGx1Z2lucy9NZXNzYWdlLmpzPzZkMzAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikge1xyXG4gICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcclxuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxyXG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxuICAgIH07XHJcbn0pKCk7XHJcbmRlZmluZShbXCJyZXF1aXJlXCIsIFwiZXhwb3J0c1wiLCBcIi4uL2NvcmUvUGx1Z2luXCIsIFwiLi4vdXRpbHMvY2xhc3NTZXRcIl0sIGZ1bmN0aW9uIChyZXF1aXJlLCBleHBvcnRzLCBQbHVnaW5fMSwgY2xhc3NTZXRfMSkge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbiAgICB2YXIgTWVzc2FnZSA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICAgICAgX19leHRlbmRzKE1lc3NhZ2UsIF9zdXBlcik7XHJcbiAgICAgICAgZnVuY3Rpb24gTWVzc2FnZShvcHRzKSB7XHJcbiAgICAgICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIG9wdHMpIHx8IHRoaXM7XHJcbiAgICAgICAgICAgIF90aGlzLm1lc3NhZ2VzID0gbmV3IE1hcCgpO1xyXG4gICAgICAgICAgICBfdGhpcy5kZWZhdWx0Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgICAgIF90aGlzLm9wdHMgPSBPYmplY3QuYXNzaWduKHt9LCB7XHJcbiAgICAgICAgICAgICAgICBjb250YWluZXI6IGZ1bmN0aW9uIChfZmllbGQsIF9lbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF90aGlzLmRlZmF1bHRDb250YWluZXI7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9LCBvcHRzKTtcclxuICAgICAgICAgICAgX3RoaXMuZWxlbWVudElnbm9yZWRIYW5kbGVyID0gX3RoaXMub25FbGVtZW50SWdub3JlZC5iaW5kKF90aGlzKTtcclxuICAgICAgICAgICAgX3RoaXMuZmllbGRBZGRlZEhhbmRsZXIgPSBfdGhpcy5vbkZpZWxkQWRkZWQuYmluZChfdGhpcyk7XHJcbiAgICAgICAgICAgIF90aGlzLmZpZWxkUmVtb3ZlZEhhbmRsZXIgPSBfdGhpcy5vbkZpZWxkUmVtb3ZlZC5iaW5kKF90aGlzKTtcclxuICAgICAgICAgICAgX3RoaXMudmFsaWRhdG9yVmFsaWRhdGVkSGFuZGxlciA9IF90aGlzLm9uVmFsaWRhdG9yVmFsaWRhdGVkLmJpbmQoX3RoaXMpO1xyXG4gICAgICAgICAgICBfdGhpcy52YWxpZGF0b3JOb3RWYWxpZGF0ZWRIYW5kbGVyID1cclxuICAgICAgICAgICAgICAgIF90aGlzLm9uVmFsaWRhdG9yTm90VmFsaWRhdGVkLmJpbmQoX3RoaXMpO1xyXG4gICAgICAgICAgICByZXR1cm4gX3RoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIE1lc3NhZ2UuZ2V0Q2xvc2VzdENvbnRhaW5lciA9IGZ1bmN0aW9uIChlbGVtZW50LCB1cHBlciwgcGF0dGVybikge1xyXG4gICAgICAgICAgICB2YXIgZWxlID0gZWxlbWVudDtcclxuICAgICAgICAgICAgd2hpbGUgKGVsZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVsZSA9PT0gdXBwZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsZSA9IGVsZS5wYXJlbnRFbGVtZW50O1xyXG4gICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChlbGUuY2xhc3NOYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBlbGU7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBNZXNzYWdlLnByb3RvdHlwZS5pbnN0YWxsID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvcmUuZ2V0Rm9ybUVsZW1lbnQoKS5hcHBlbmRDaGlsZCh0aGlzLmRlZmF1bHRDb250YWluZXIpO1xyXG4gICAgICAgICAgICB0aGlzLmNvcmVcclxuICAgICAgICAgICAgICAgIC5vbignY29yZS5lbGVtZW50Lmlnbm9yZWQnLCB0aGlzLmVsZW1lbnRJZ25vcmVkSGFuZGxlcilcclxuICAgICAgICAgICAgICAgIC5vbignY29yZS5maWVsZC5hZGRlZCcsIHRoaXMuZmllbGRBZGRlZEhhbmRsZXIpXHJcbiAgICAgICAgICAgICAgICAub24oJ2NvcmUuZmllbGQucmVtb3ZlZCcsIHRoaXMuZmllbGRSZW1vdmVkSGFuZGxlcilcclxuICAgICAgICAgICAgICAgIC5vbignY29yZS52YWxpZGF0b3IudmFsaWRhdGVkJywgdGhpcy52YWxpZGF0b3JWYWxpZGF0ZWRIYW5kbGVyKVxyXG4gICAgICAgICAgICAgICAgLm9uKCdjb3JlLnZhbGlkYXRvci5ub3R2YWxpZGF0ZWQnLCB0aGlzLnZhbGlkYXRvck5vdFZhbGlkYXRlZEhhbmRsZXIpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgTWVzc2FnZS5wcm90b3R5cGUudW5pbnN0YWxsID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvcmUuZ2V0Rm9ybUVsZW1lbnQoKS5yZW1vdmVDaGlsZCh0aGlzLmRlZmF1bHRDb250YWluZXIpO1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzLmZvckVhY2goZnVuY3Rpb24gKG1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzLmNsZWFyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29yZVxyXG4gICAgICAgICAgICAgICAgLm9mZignY29yZS5lbGVtZW50Lmlnbm9yZWQnLCB0aGlzLmVsZW1lbnRJZ25vcmVkSGFuZGxlcilcclxuICAgICAgICAgICAgICAgIC5vZmYoJ2NvcmUuZmllbGQuYWRkZWQnLCB0aGlzLmZpZWxkQWRkZWRIYW5kbGVyKVxyXG4gICAgICAgICAgICAgICAgLm9mZignY29yZS5maWVsZC5yZW1vdmVkJywgdGhpcy5maWVsZFJlbW92ZWRIYW5kbGVyKVxyXG4gICAgICAgICAgICAgICAgLm9mZignY29yZS52YWxpZGF0b3IudmFsaWRhdGVkJywgdGhpcy52YWxpZGF0b3JWYWxpZGF0ZWRIYW5kbGVyKVxyXG4gICAgICAgICAgICAgICAgLm9mZignY29yZS52YWxpZGF0b3Iubm90dmFsaWRhdGVkJywgdGhpcy52YWxpZGF0b3JOb3RWYWxpZGF0ZWRIYW5kbGVyKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIE1lc3NhZ2UucHJvdG90eXBlLm9uRmllbGRBZGRlZCA9IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgICAgIHZhciBlbGVtZW50cyA9IGUuZWxlbWVudHM7XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50cykge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbiAoZWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIG1zZyA9IF90aGlzLm1lc3NhZ2VzLmdldChlbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtc2cpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbXNnLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobXNnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMubWVzc2FnZXMuZGVsZXRlKGVsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVGaWVsZENvbnRhaW5lcihlLmZpZWxkLCBlbGVtZW50cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIE1lc3NhZ2UucHJvdG90eXBlLm9uRmllbGRSZW1vdmVkID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICAgICAgaWYgKCFlLmVsZW1lbnRzLmxlbmd0aCB8fCAhZS5maWVsZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciB0eXBlID0gZS5lbGVtZW50c1swXS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKTtcclxuICAgICAgICAgICAgdmFyIGVsZW1lbnRzID0gJ3JhZGlvJyA9PT0gdHlwZSB8fCAnY2hlY2tib3gnID09PSB0eXBlXHJcbiAgICAgICAgICAgICAgICA/IFtlLmVsZW1lbnRzWzBdXVxyXG4gICAgICAgICAgICAgICAgOiBlLmVsZW1lbnRzO1xyXG4gICAgICAgICAgICBlbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChlbGUpIHtcclxuICAgICAgICAgICAgICAgIGlmIChfdGhpcy5tZXNzYWdlcy5oYXMoZWxlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBjb250YWluZXIgPSBfdGhpcy5tZXNzYWdlcy5nZXQoZWxlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjb250YWluZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIF90aGlzLm1lc3NhZ2VzLmRlbGV0ZShlbGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIE1lc3NhZ2UucHJvdG90eXBlLnByZXBhcmVGaWVsZENvbnRhaW5lciA9IGZ1bmN0aW9uIChmaWVsZCwgZWxlbWVudHMpIHtcclxuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnRzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHR5cGUgPSBlbGVtZW50c1swXS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKTtcclxuICAgICAgICAgICAgICAgIGlmICgncmFkaW8nID09PSB0eXBlIHx8ICdjaGVja2JveCcgPT09IHR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVFbGVtZW50Q29udGFpbmVyKGZpZWxkLCBlbGVtZW50c1swXSwgZWxlbWVudHMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbiAoZWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfdGhpcy5wcmVwYXJlRWxlbWVudENvbnRhaW5lcihmaWVsZCwgZWxlLCBlbGVtZW50cyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIE1lc3NhZ2UucHJvdG90eXBlLnByZXBhcmVFbGVtZW50Q29udGFpbmVyID0gZnVuY3Rpb24gKGZpZWxkLCBlbGVtZW50LCBlbGVtZW50cykge1xyXG4gICAgICAgICAgICB2YXIgY29udGFpbmVyO1xyXG4gICAgICAgICAgICBpZiAoJ3N0cmluZycgPT09IHR5cGVvZiB0aGlzLm9wdHMuY29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0b3IgPSAnIycgPT09IHRoaXMub3B0cy5jb250YWluZXIuY2hhckF0KDApXHJcbiAgICAgICAgICAgICAgICAgICAgPyBcIltpZD1cXFwiXCIgKyB0aGlzLm9wdHMuY29udGFpbmVyLnN1YnN0cmluZygxKSArIFwiXFxcIl1cIlxyXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5vcHRzLmNvbnRhaW5lcjtcclxuICAgICAgICAgICAgICAgIGNvbnRhaW5lciA9IHRoaXMuY29yZVxyXG4gICAgICAgICAgICAgICAgICAgIC5nZXRGb3JtRWxlbWVudCgpXHJcbiAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29udGFpbmVyID0gdGhpcy5vcHRzLmNvbnRhaW5lcihmaWVsZCwgZWxlbWVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICBjbGFzc1NldF8xLmRlZmF1bHQobWVzc2FnZSwge1xyXG4gICAgICAgICAgICAgICAgJ2Z2LXBsdWdpbnMtbWVzc2FnZS1jb250YWluZXInOiB0cnVlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5jb3JlLmVtaXQoJ3BsdWdpbnMubWVzc2FnZS5wbGFjZWQnLCB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBlbGVtZW50LFxyXG4gICAgICAgICAgICAgICAgZWxlbWVudHM6IGVsZW1lbnRzLFxyXG4gICAgICAgICAgICAgICAgZmllbGQ6IGZpZWxkLFxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZUVsZW1lbnQ6IG1lc3NhZ2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzLnNldChlbGVtZW50LCBtZXNzYWdlKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIE1lc3NhZ2UucHJvdG90eXBlLmdldE1lc3NhZ2UgPSBmdW5jdGlvbiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgcmVzdWx0Lm1lc3NhZ2UgPT09ICdzdHJpbmcnXHJcbiAgICAgICAgICAgICAgICA/IHJlc3VsdC5tZXNzYWdlXHJcbiAgICAgICAgICAgICAgICA6IHJlc3VsdC5tZXNzYWdlW3RoaXMuY29yZS5nZXRMb2NhbGUoKV07XHJcbiAgICAgICAgfTtcclxuICAgICAgICBNZXNzYWdlLnByb3RvdHlwZS5vblZhbGlkYXRvclZhbGlkYXRlZCA9IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICAgIHZhciBfYTtcclxuICAgICAgICAgICAgdmFyIGVsZW1lbnRzID0gZS5lbGVtZW50cztcclxuICAgICAgICAgICAgdmFyIHR5cGUgPSBlLmVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0eXBlJyk7XHJcbiAgICAgICAgICAgIHZhciBlbGVtZW50ID0gJ3JhZGlvJyA9PT0gdHlwZSB8fCAnY2hlY2tib3gnID09PSB0eXBlID8gZWxlbWVudHNbMF0gOiBlLmVsZW1lbnQ7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VzLmhhcyhlbGVtZW50KSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGNvbnRhaW5lciA9IHRoaXMubWVzc2FnZXMuZ2V0KGVsZW1lbnQpO1xyXG4gICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2VFbGUgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcihcIltkYXRhLWZpZWxkPVxcXCJcIiArIGUuZmllbGQgKyBcIlxcXCJdW2RhdGEtdmFsaWRhdG9yPVxcXCJcIiArIGUudmFsaWRhdG9yICsgXCJcXFwiXVwiKTtcclxuICAgICAgICAgICAgICAgIGlmICghbWVzc2FnZUVsZSAmJiAhZS5yZXN1bHQudmFsaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlLmlubmVySFRNTCA9IHRoaXMuZ2V0TWVzc2FnZShlLnJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlLnNldEF0dHJpYnV0ZSgnZGF0YS1maWVsZCcsIGUuZmllbGQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtdmFsaWRhdG9yJywgZS52YWxpZGF0b3IpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdHMuY2xhenopIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NTZXRfMS5kZWZhdWx0KGVsZSwgKF9hID0ge30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYVt0aGlzLm9wdHMuY2xhenpdID0gdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChlbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29yZS5lbWl0KCdwbHVnaW5zLm1lc3NhZ2UuZGlzcGxheWVkJywge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBlLmVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkOiBlLmZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBlLnJlc3VsdC5tZXNzYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlRWxlbWVudDogZWxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhOiBlLnJlc3VsdC5tZXRhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3I6IGUudmFsaWRhdG9yLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobWVzc2FnZUVsZSAmJiAhZS5yZXN1bHQudmFsaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlRWxlLmlubmVySFRNTCA9IHRoaXMuZ2V0TWVzc2FnZShlLnJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3JlLmVtaXQoJ3BsdWdpbnMubWVzc2FnZS5kaXNwbGF5ZWQnLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6IGUuZWxlbWVudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQ6IGUuZmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGUucmVzdWx0Lm1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VFbGVtZW50OiBtZXNzYWdlRWxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhOiBlLnJlc3VsdC5tZXRhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3I6IGUudmFsaWRhdG9yLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobWVzc2FnZUVsZSAmJiBlLnJlc3VsdC52YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChtZXNzYWdlRWxlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgTWVzc2FnZS5wcm90b3R5cGUub25WYWxpZGF0b3JOb3RWYWxpZGF0ZWQgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgICB2YXIgZWxlbWVudHMgPSBlLmVsZW1lbnRzO1xyXG4gICAgICAgICAgICB2YXIgdHlwZSA9IGUuZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3R5cGUnKTtcclxuICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSAncmFkaW8nID09PSB0eXBlIHx8ICdjaGVja2JveCcgPT09IHR5cGUgPyBlbGVtZW50c1swXSA6IGUuZWxlbWVudDtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWVzc2FnZXMuaGFzKGVsZW1lbnQpKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgY29udGFpbmVyID0gdGhpcy5tZXNzYWdlcy5nZXQoZWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZUVsZSA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFwiW2RhdGEtZmllbGQ9XFxcIlwiICsgZS5maWVsZCArIFwiXFxcIl1bZGF0YS12YWxpZGF0b3I9XFxcIlwiICsgZS52YWxpZGF0b3IgKyBcIlxcXCJdXCIpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2VFbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIucmVtb3ZlQ2hpbGQobWVzc2FnZUVsZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIE1lc3NhZ2UucHJvdG90eXBlLm9uRWxlbWVudElnbm9yZWQgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgICB2YXIgZWxlbWVudHMgPSBlLmVsZW1lbnRzO1xyXG4gICAgICAgICAgICB2YXIgdHlwZSA9IGUuZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3R5cGUnKTtcclxuICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSAncmFkaW8nID09PSB0eXBlIHx8ICdjaGVja2JveCcgPT09IHR5cGUgPyBlbGVtZW50c1swXSA6IGUuZWxlbWVudDtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWVzc2FnZXMuaGFzKGVsZW1lbnQpKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgY29udGFpbmVyXzEgPSB0aGlzLm1lc3NhZ2VzLmdldChlbGVtZW50KTtcclxuICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlRWxlbWVudHMgPSBbXS5zbGljZS5jYWxsKGNvbnRhaW5lcl8xLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbZGF0YS1maWVsZD1cXFwiXCIgKyBlLmZpZWxkICsgXCJcXFwiXVwiKSk7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlRWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbiAobWVzc2FnZUVsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcl8xLnJlbW92ZUNoaWxkKG1lc3NhZ2VFbGUpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBNZXNzYWdlO1xyXG4gICAgfShQbHVnaW5fMS5kZWZhdWx0KSk7XHJcbiAgICBleHBvcnRzLmRlZmF1bHQgPSBNZXNzYWdlO1xyXG59KTtcclxuIl0sIm5hbWVzIjpbIl9fZXh0ZW5kcyIsImV4dGVuZFN0YXRpY3MiLCJkIiwiYiIsIk9iamVjdCIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiQXJyYXkiLCJwIiwiaGFzT3duUHJvcGVydHkiLCJfXyIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiY3JlYXRlIiwiZGVmaW5lIiwicmVxdWlyZSIsImV4cG9ydHMiLCJQbHVnaW5fMSIsImNsYXNzU2V0XzEiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiTWVzc2FnZSIsIl9zdXBlciIsIm9wdHMiLCJfdGhpcyIsImNhbGwiLCJtZXNzYWdlcyIsIk1hcCIsImRlZmF1bHRDb250YWluZXIiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJhc3NpZ24iLCJjb250YWluZXIiLCJfZmllbGQiLCJfZWxlbWVudCIsImVsZW1lbnRJZ25vcmVkSGFuZGxlciIsIm9uRWxlbWVudElnbm9yZWQiLCJiaW5kIiwiZmllbGRBZGRlZEhhbmRsZXIiLCJvbkZpZWxkQWRkZWQiLCJmaWVsZFJlbW92ZWRIYW5kbGVyIiwib25GaWVsZFJlbW92ZWQiLCJ2YWxpZGF0b3JWYWxpZGF0ZWRIYW5kbGVyIiwib25WYWxpZGF0b3JWYWxpZGF0ZWQiLCJ2YWxpZGF0b3JOb3RWYWxpZGF0ZWRIYW5kbGVyIiwib25WYWxpZGF0b3JOb3RWYWxpZGF0ZWQiLCJnZXRDbG9zZXN0Q29udGFpbmVyIiwiZWxlbWVudCIsInVwcGVyIiwicGF0dGVybiIsImVsZSIsInBhcmVudEVsZW1lbnQiLCJ0ZXN0IiwiY2xhc3NOYW1lIiwiaW5zdGFsbCIsImNvcmUiLCJnZXRGb3JtRWxlbWVudCIsImFwcGVuZENoaWxkIiwib24iLCJ1bmluc3RhbGwiLCJyZW1vdmVDaGlsZCIsImZvckVhY2giLCJtZXNzYWdlIiwicGFyZW50Tm9kZSIsImNsZWFyIiwib2ZmIiwiZSIsImVsZW1lbnRzIiwibXNnIiwiZ2V0IiwicHJlcGFyZUZpZWxkQ29udGFpbmVyIiwiZmllbGQiLCJsZW5ndGgiLCJ0eXBlIiwiZ2V0QXR0cmlidXRlIiwiaGFzIiwicHJlcGFyZUVsZW1lbnRDb250YWluZXIiLCJzZWxlY3RvciIsImNoYXJBdCIsInN1YnN0cmluZyIsInF1ZXJ5U2VsZWN0b3IiLCJlbWl0IiwibWVzc2FnZUVsZW1lbnQiLCJzZXQiLCJnZXRNZXNzYWdlIiwicmVzdWx0IiwiZ2V0TG9jYWxlIiwiX2EiLCJtZXNzYWdlRWxlIiwidmFsaWRhdG9yIiwidmFsaWQiLCJpbm5lckhUTUwiLCJzZXRBdHRyaWJ1dGUiLCJjbGF6eiIsIm1ldGEiLCJjb250YWluZXJfMSIsIm1lc3NhZ2VFbGVtZW50cyIsInNsaWNlIiwicXVlcnlTZWxlY3RvckFsbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/assets/core/plugins/formvalidation/dist/amd/plugins/Message.js\n"); /***/ }), /***/ "./resources/assets/core/plugins/formvalidation/dist/amd/utils/classSet.js": /*!*********************************************************************************!*\ !*** ./resources/assets/core/plugins/formvalidation/dist/amd/utils/classSet.js ***! \*********************************************************************************/ /***/ ((module, exports, __webpack_require__) => { eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", ({\n value: true\n }));\n\n function addClass(element, classes) {\n classes.split(' ').forEach(function (clazz) {\n if (element.classList) {\n element.classList.add(clazz);\n } else if ((\" \" + element.className + \" \").indexOf(\" \" + clazz + \" \")) {\n element.className += \" \" + clazz;\n }\n });\n }\n\n function removeClass(element, classes) {\n classes.split(' ').forEach(function (clazz) {\n element.classList ? element.classList.remove(clazz) : element.className = element.className.replace(clazz, '');\n });\n }\n\n function classSet(element, classes) {\n var adding = [];\n var removing = [];\n Object.keys(classes).forEach(function (clazz) {\n if (clazz) {\n classes[clazz] ? adding.push(clazz) : removing.push(clazz);\n }\n });\n removing.forEach(function (clazz) {\n return removeClass(element, clazz);\n });\n adding.forEach(function (clazz) {\n return addClass(element, clazz);\n });\n }\n\n exports[\"default\"] = classSet;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvcGx1Z2lucy9mb3JtdmFsaWRhdGlvbi9kaXN0L2FtZC91dGlscy9jbGFzc1NldC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQUEsZ0VBQUFBLGlDQUFPLENBQUMsbUJBQUQsRUFBWSxPQUFaLENBQUQsbUNBQXlCLFVBQVVDLE9BQVYsRUFBbUJDLE9BQW5CLEVBQTRCO0FBQ3ZEOztBQUNBQyxFQUFBQSw4Q0FBNkM7QUFBRUUsSUFBQUEsS0FBSyxFQUFFO0FBQVQsR0FBN0M7O0FBQ0EsV0FBU0MsUUFBVCxDQUFrQkMsT0FBbEIsRUFBMkJDLE9BQTNCLEVBQW9DO0FBQ2hDQSxJQUFBQSxPQUFPLENBQUNDLEtBQVIsQ0FBYyxHQUFkLEVBQW1CQyxPQUFuQixDQUEyQixVQUFVQyxLQUFWLEVBQWlCO0FBQ3hDLFVBQUlKLE9BQU8sQ0FBQ0ssU0FBWixFQUF1QjtBQUNuQkwsUUFBQUEsT0FBTyxDQUFDSyxTQUFSLENBQWtCQyxHQUFsQixDQUFzQkYsS0FBdEI7QUFDSCxPQUZELE1BR0ssSUFBSSxDQUFDLE1BQU1KLE9BQU8sQ0FBQ08sU0FBZCxHQUEwQixHQUEzQixFQUFnQ0MsT0FBaEMsQ0FBd0MsTUFBTUosS0FBTixHQUFjLEdBQXRELENBQUosRUFBZ0U7QUFDakVKLFFBQUFBLE9BQU8sQ0FBQ08sU0FBUixJQUFxQixNQUFNSCxLQUEzQjtBQUNIO0FBQ0osS0FQRDtBQVFIOztBQUNELFdBQVNLLFdBQVQsQ0FBcUJULE9BQXJCLEVBQThCQyxPQUE5QixFQUF1QztBQUNuQ0EsSUFBQUEsT0FBTyxDQUFDQyxLQUFSLENBQWMsR0FBZCxFQUFtQkMsT0FBbkIsQ0FBMkIsVUFBVUMsS0FBVixFQUFpQjtBQUN4Q0osTUFBQUEsT0FBTyxDQUFDSyxTQUFSLEdBQ01MLE9BQU8sQ0FBQ0ssU0FBUixDQUFrQkssTUFBbEIsQ0FBeUJOLEtBQXpCLENBRE4sR0FFT0osT0FBTyxDQUFDTyxTQUFSLEdBQW9CUCxPQUFPLENBQUNPLFNBQVIsQ0FBa0JJLE9BQWxCLENBQTBCUCxLQUExQixFQUFpQyxFQUFqQyxDQUYzQjtBQUdILEtBSkQ7QUFLSDs7QUFDRCxXQUFTUSxRQUFULENBQWtCWixPQUFsQixFQUEyQkMsT0FBM0IsRUFBb0M7QUFDaEMsUUFBSVksTUFBTSxHQUFHLEVBQWI7QUFDQSxRQUFJQyxRQUFRLEdBQUcsRUFBZjtBQUNBbEIsSUFBQUEsTUFBTSxDQUFDbUIsSUFBUCxDQUFZZCxPQUFaLEVBQXFCRSxPQUFyQixDQUE2QixVQUFVQyxLQUFWLEVBQWlCO0FBQzFDLFVBQUlBLEtBQUosRUFBVztBQUNQSCxRQUFBQSxPQUFPLENBQUNHLEtBQUQsQ0FBUCxHQUFpQlMsTUFBTSxDQUFDRyxJQUFQLENBQVlaLEtBQVosQ0FBakIsR0FBc0NVLFFBQVEsQ0FBQ0UsSUFBVCxDQUFjWixLQUFkLENBQXRDO0FBQ0g7QUFDSixLQUpEO0FBS0FVLElBQUFBLFFBQVEsQ0FBQ1gsT0FBVCxDQUFpQixVQUFVQyxLQUFWLEVBQWlCO0FBQUUsYUFBT0ssV0FBVyxDQUFDVCxPQUFELEVBQVVJLEtBQVYsQ0FBbEI7QUFBcUMsS0FBekU7QUFDQVMsSUFBQUEsTUFBTSxDQUFDVixPQUFQLENBQWUsVUFBVUMsS0FBVixFQUFpQjtBQUFFLGFBQU9MLFFBQVEsQ0FBQ0MsT0FBRCxFQUFVSSxLQUFWLENBQWY7QUFBa0MsS0FBcEU7QUFDSDs7QUFDRFQsRUFBQUEsa0JBQUEsR0FBa0JpQixRQUFsQjtBQUNILENBaENLO0FBQUEsa0dBQU4iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvcGx1Z2lucy9mb3JtdmFsaWRhdGlvbi9kaXN0L2FtZC91dGlscy9jbGFzc1NldC5qcz81NDc4Il0sInNvdXJjZXNDb250ZW50IjpbImRlZmluZShbXCJyZXF1aXJlXCIsIFwiZXhwb3J0c1wiXSwgZnVuY3Rpb24gKHJlcXVpcmUsIGV4cG9ydHMpIHtcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG4gICAgZnVuY3Rpb24gYWRkQ2xhc3MoZWxlbWVudCwgY2xhc3Nlcykge1xyXG4gICAgICAgIGNsYXNzZXMuc3BsaXQoJyAnKS5mb3JFYWNoKGZ1bmN0aW9uIChjbGF6eikge1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudC5jbGFzc0xpc3QpIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGF6eik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKFwiIFwiICsgZWxlbWVudC5jbGFzc05hbWUgKyBcIiBcIikuaW5kZXhPZihcIiBcIiArIGNsYXp6ICsgXCIgXCIpKSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSArPSBcIiBcIiArIGNsYXp6O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiByZW1vdmVDbGFzcyhlbGVtZW50LCBjbGFzc2VzKSB7XHJcbiAgICAgICAgY2xhc3Nlcy5zcGxpdCgnICcpLmZvckVhY2goZnVuY3Rpb24gKGNsYXp6KSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0XHJcbiAgICAgICAgICAgICAgICA/IGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShjbGF6eilcclxuICAgICAgICAgICAgICAgIDogKGVsZW1lbnQuY2xhc3NOYW1lID0gZWxlbWVudC5jbGFzc05hbWUucmVwbGFjZShjbGF6eiwgJycpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGNsYXNzU2V0KGVsZW1lbnQsIGNsYXNzZXMpIHtcclxuICAgICAgICB2YXIgYWRkaW5nID0gW107XHJcbiAgICAgICAgdmFyIHJlbW92aW5nID0gW107XHJcbiAgICAgICAgT2JqZWN0LmtleXMoY2xhc3NlcykuZm9yRWFjaChmdW5jdGlvbiAoY2xhenopIHtcclxuICAgICAgICAgICAgaWYgKGNsYXp6KSB7XHJcbiAgICAgICAgICAgICAgICBjbGFzc2VzW2NsYXp6XSA/IGFkZGluZy5wdXNoKGNsYXp6KSA6IHJlbW92aW5nLnB1c2goY2xhenopO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmVtb3ZpbmcuZm9yRWFjaChmdW5jdGlvbiAoY2xhenopIHsgcmV0dXJuIHJlbW92ZUNsYXNzKGVsZW1lbnQsIGNsYXp6KTsgfSk7XHJcbiAgICAgICAgYWRkaW5nLmZvckVhY2goZnVuY3Rpb24gKGNsYXp6KSB7IHJldHVybiBhZGRDbGFzcyhlbGVtZW50LCBjbGF6eik7IH0pO1xyXG4gICAgfVxyXG4gICAgZXhwb3J0cy5kZWZhdWx0ID0gY2xhc3NTZXQ7XHJcbn0pO1xyXG4iXSwibmFtZXMiOlsiZGVmaW5lIiwicmVxdWlyZSIsImV4cG9ydHMiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiYWRkQ2xhc3MiLCJlbGVtZW50IiwiY2xhc3NlcyIsInNwbGl0IiwiZm9yRWFjaCIsImNsYXp6IiwiY2xhc3NMaXN0IiwiYWRkIiwiY2xhc3NOYW1lIiwiaW5kZXhPZiIsInJlbW92ZUNsYXNzIiwicmVtb3ZlIiwicmVwbGFjZSIsImNsYXNzU2V0IiwiYWRkaW5nIiwicmVtb3ZpbmciLCJrZXlzIiwicHVzaCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/assets/core/plugins/formvalidation/dist/amd/utils/classSet.js\n"); /***/ }), /***/ "./resources/assets/core/plugins/formvalidation/dist/amd/utils/closest.js": /*!********************************************************************************!*\ !*** ./resources/assets/core/plugins/formvalidation/dist/amd/utils/closest.js ***! \********************************************************************************/ /***/ ((module, exports, __webpack_require__) => { eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", ({\n value: true\n }));\n\n function matches(element, selector) {\n var nativeMatches = element.matches || element.webkitMatchesSelector || element['mozMatchesSelector'] || element['msMatchesSelector'];\n\n if (nativeMatches) {\n return nativeMatches.call(element, selector);\n }\n\n var nodes = [].slice.call(element.parentElement.querySelectorAll(selector));\n return nodes.indexOf(element) >= 0;\n }\n\n function closest(element, selector) {\n var ele = element;\n\n while (ele) {\n if (matches(ele, selector)) {\n break;\n }\n\n ele = ele.parentElement;\n }\n\n return ele;\n }\n\n exports[\"default\"] = closest;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvcGx1Z2lucy9mb3JtdmFsaWRhdGlvbi9kaXN0L2FtZC91dGlscy9jbG9zZXN0LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBQSxnRUFBQUEsaUNBQU8sQ0FBQyxtQkFBRCxFQUFZLE9BQVosQ0FBRCxtQ0FBeUIsVUFBVUMsT0FBVixFQUFtQkMsT0FBbkIsRUFBNEI7QUFDdkQ7O0FBQ0FDLEVBQUFBLDhDQUE2QztBQUFFRSxJQUFBQSxLQUFLLEVBQUU7QUFBVCxHQUE3Qzs7QUFDQSxXQUFTQyxPQUFULENBQWlCQyxPQUFqQixFQUEwQkMsUUFBMUIsRUFBb0M7QUFDaEMsUUFBSUMsYUFBYSxHQUFHRixPQUFPLENBQUNELE9BQVIsSUFDaEJDLE9BQU8sQ0FBQ0cscUJBRFEsSUFFaEJILE9BQU8sQ0FBQyxvQkFBRCxDQUZTLElBR2hCQSxPQUFPLENBQUMsbUJBQUQsQ0FIWDs7QUFJQSxRQUFJRSxhQUFKLEVBQW1CO0FBQ2YsYUFBT0EsYUFBYSxDQUFDRSxJQUFkLENBQW1CSixPQUFuQixFQUE0QkMsUUFBNUIsQ0FBUDtBQUNIOztBQUNELFFBQUlJLEtBQUssR0FBRyxHQUFHQyxLQUFILENBQVNGLElBQVQsQ0FBY0osT0FBTyxDQUFDTyxhQUFSLENBQXNCQyxnQkFBdEIsQ0FBdUNQLFFBQXZDLENBQWQsQ0FBWjtBQUNBLFdBQU9JLEtBQUssQ0FBQ0ksT0FBTixDQUFjVCxPQUFkLEtBQTBCLENBQWpDO0FBQ0g7O0FBQ0QsV0FBU1UsT0FBVCxDQUFpQlYsT0FBakIsRUFBMEJDLFFBQTFCLEVBQW9DO0FBQ2hDLFFBQUlVLEdBQUcsR0FBR1gsT0FBVjs7QUFDQSxXQUFPVyxHQUFQLEVBQVk7QUFDUixVQUFJWixPQUFPLENBQUNZLEdBQUQsRUFBTVYsUUFBTixDQUFYLEVBQTRCO0FBQ3hCO0FBQ0g7O0FBQ0RVLE1BQUFBLEdBQUcsR0FBR0EsR0FBRyxDQUFDSixhQUFWO0FBQ0g7O0FBQ0QsV0FBT0ksR0FBUDtBQUNIOztBQUNEaEIsRUFBQUEsa0JBQUEsR0FBa0JlLE9BQWxCO0FBQ0gsQ0F6Qks7QUFBQSxrR0FBTiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvY29yZS9wbHVnaW5zL2Zvcm12YWxpZGF0aW9uL2Rpc3QvYW1kL3V0aWxzL2Nsb3Nlc3QuanM/ZWFiZiJdLCJzb3VyY2VzQ29udGVudCI6WyJkZWZpbmUoW1wicmVxdWlyZVwiLCBcImV4cG9ydHNcIl0sIGZ1bmN0aW9uIChyZXF1aXJlLCBleHBvcnRzKSB7XHJcbiAgICBcInVzZSBzdHJpY3RcIjtcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuICAgIGZ1bmN0aW9uIG1hdGNoZXMoZWxlbWVudCwgc2VsZWN0b3IpIHtcclxuICAgICAgICB2YXIgbmF0aXZlTWF0Y2hlcyA9IGVsZW1lbnQubWF0Y2hlcyB8fFxyXG4gICAgICAgICAgICBlbGVtZW50LndlYmtpdE1hdGNoZXNTZWxlY3RvciB8fFxyXG4gICAgICAgICAgICBlbGVtZW50Wydtb3pNYXRjaGVzU2VsZWN0b3InXSB8fFxyXG4gICAgICAgICAgICBlbGVtZW50Wydtc01hdGNoZXNTZWxlY3RvciddO1xyXG4gICAgICAgIGlmIChuYXRpdmVNYXRjaGVzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuYXRpdmVNYXRjaGVzLmNhbGwoZWxlbWVudCwgc2VsZWN0b3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgbm9kZXMgPSBbXS5zbGljZS5jYWxsKGVsZW1lbnQucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKSk7XHJcbiAgICAgICAgcmV0dXJuIG5vZGVzLmluZGV4T2YoZWxlbWVudCkgPj0gMDtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGNsb3Nlc3QoZWxlbWVudCwgc2VsZWN0b3IpIHtcclxuICAgICAgICB2YXIgZWxlID0gZWxlbWVudDtcclxuICAgICAgICB3aGlsZSAoZWxlKSB7XHJcbiAgICAgICAgICAgIGlmIChtYXRjaGVzKGVsZSwgc2VsZWN0b3IpKSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbGUgPSBlbGUucGFyZW50RWxlbWVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGVsZTtcclxuICAgIH1cclxuICAgIGV4cG9ydHMuZGVmYXVsdCA9IGNsb3Nlc3Q7XHJcbn0pO1xyXG4iXSwibmFtZXMiOlsiZGVmaW5lIiwicmVxdWlyZSIsImV4cG9ydHMiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwibWF0Y2hlcyIsImVsZW1lbnQiLCJzZWxlY3RvciIsIm5hdGl2ZU1hdGNoZXMiLCJ3ZWJraXRNYXRjaGVzU2VsZWN0b3IiLCJjYWxsIiwibm9kZXMiLCJzbGljZSIsInBhcmVudEVsZW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiaW5kZXhPZiIsImNsb3Nlc3QiLCJlbGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/assets/core/plugins/formvalidation/dist/amd/utils/closest.js\n"); /***/ }), /***/ "./resources/assets/core/plugins/formvalidation/dist/amd/utils/hasClass.js": /*!*********************************************************************************!*\ !*** ./resources/assets/core/plugins/formvalidation/dist/amd/utils/hasClass.js ***! \*********************************************************************************/ /***/ ((module, exports, __webpack_require__) => { eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", ({\n value: true\n }));\n\n function hasClass(element, clazz) {\n return element.classList ? element.classList.contains(clazz) : new RegExp(\"(^| )\" + clazz + \"( |$)\", 'gi').test(element.className);\n }\n\n exports[\"default\"] = hasClass;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvcGx1Z2lucy9mb3JtdmFsaWRhdGlvbi9kaXN0L2FtZC91dGlscy9oYXNDbGFzcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQUEsZ0VBQUFBLGlDQUFPLENBQUMsbUJBQUQsRUFBWSxPQUFaLENBQUQsbUNBQXlCLFVBQVVDLE9BQVYsRUFBbUJDLE9BQW5CLEVBQTRCO0FBQ3ZEOztBQUNBQyxFQUFBQSw4Q0FBNkM7QUFBRUUsSUFBQUEsS0FBSyxFQUFFO0FBQVQsR0FBN0M7O0FBQ0EsV0FBU0MsUUFBVCxDQUFrQkMsT0FBbEIsRUFBMkJDLEtBQTNCLEVBQWtDO0FBQzlCLFdBQU9ELE9BQU8sQ0FBQ0UsU0FBUixHQUNERixPQUFPLENBQUNFLFNBQVIsQ0FBa0JDLFFBQWxCLENBQTJCRixLQUEzQixDQURDLEdBRUQsSUFBSUcsTUFBSixDQUFXLFVBQVVILEtBQVYsR0FBa0IsT0FBN0IsRUFBc0MsSUFBdEMsRUFBNENJLElBQTVDLENBQWlETCxPQUFPLENBQUNNLFNBQXpELENBRk47QUFHSDs7QUFDRFgsRUFBQUEsa0JBQUEsR0FBa0JJLFFBQWxCO0FBQ0gsQ0FUSztBQUFBLGtHQUFOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9jb3JlL3BsdWdpbnMvZm9ybXZhbGlkYXRpb24vZGlzdC9hbWQvdXRpbHMvaGFzQ2xhc3MuanM/ZWYzMiJdLCJzb3VyY2VzQ29udGVudCI6WyJkZWZpbmUoW1wicmVxdWlyZVwiLCBcImV4cG9ydHNcIl0sIGZ1bmN0aW9uIChyZXF1aXJlLCBleHBvcnRzKSB7XHJcbiAgICBcInVzZSBzdHJpY3RcIjtcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuICAgIGZ1bmN0aW9uIGhhc0NsYXNzKGVsZW1lbnQsIGNsYXp6KSB7XHJcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuY2xhc3NMaXN0XHJcbiAgICAgICAgICAgID8gZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoY2xhenopXHJcbiAgICAgICAgICAgIDogbmV3IFJlZ0V4cChcIihefCApXCIgKyBjbGF6eiArIFwiKCB8JClcIiwgJ2dpJykudGVzdChlbGVtZW50LmNsYXNzTmFtZSk7XHJcbiAgICB9XHJcbiAgICBleHBvcnRzLmRlZmF1bHQgPSBoYXNDbGFzcztcclxufSk7XHJcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJyZXF1aXJlIiwiZXhwb3J0cyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJoYXNDbGFzcyIsImVsZW1lbnQiLCJjbGF6eiIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwiUmVnRXhwIiwidGVzdCIsImNsYXNzTmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/assets/core/plugins/formvalidation/dist/amd/utils/hasClass.js\n"); /***/ }), /***/ "./resources/assets/core/plugins/formvalidation/dist/js/FormValidation.full.min.js": /*!*****************************************************************************************!*\ !*** ./resources/assets/core/plugins/formvalidation/dist/js/FormValidation.full.min.js ***! \*****************************************************************************************/ /***/ (function(module, exports) { eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (global, factory) {\n ( false ? 0 : _typeof(exports)) === \"object\" && \"object\" !== \"undefined\" ? factory(exports) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0);\n})(this, function (exports) {\n \"use strict\";\n\n function t(t) {\n var e = t.length;\n var l = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 2, 4, 6, 8, 1, 3, 5, 7, 9]];\n var n = 0;\n var r = 0;\n\n while (e--) {\n r += l[n][parseInt(t.charAt(e), 10)];\n n = 1 - n;\n }\n\n return r % 10 === 0 && r > 0;\n }\n\n function t$1(t) {\n var e = t.length;\n var n = 5;\n\n for (var r = 0; r < e; r++) {\n n = ((n || 10) * 2 % 11 + parseInt(t.charAt(r), 10)) % 10;\n }\n\n return n === 1;\n }\n\n function t$2(t) {\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n var n = t.length;\n var o = e.length;\n var l = Math.floor(o / 2);\n\n for (var r = 0; r < n; r++) {\n l = ((l || o) * 2 % (o + 1) + e.indexOf(t.charAt(r))) % o;\n }\n\n return l === 1;\n }\n\n function t$3(t) {\n var e = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]];\n var n = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]];\n var o = t.reverse();\n var r = 0;\n\n for (var _t = 0; _t < o.length; _t++) {\n r = e[r][n[_t % 8][o[_t]]];\n }\n\n return r === 0;\n }\n\n var index = {\n luhn: t,\n mod11And10: t$1,\n mod37And36: t$2,\n verhoeff: t$3\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\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\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _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\n return obj;\n }\n\n function _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\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 }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _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 }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\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(_e5) {\n throw _e5;\n },\n f: 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\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e6) {\n didErr = true;\n err = _e6;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n }\n\n function s() {\n return {\n fns: {},\n clear: function clear() {\n this.fns = {};\n },\n emit: function emit(s) {\n for (var _len = arguments.length, f = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n f[_key - 1] = arguments[_key];\n }\n\n (this.fns[s] || []).map(function (s) {\n return s.apply(s, f);\n });\n },\n off: function off(s, f) {\n if (this.fns[s]) {\n var n = this.fns[s].indexOf(f);\n\n if (n >= 0) {\n this.fns[s].splice(n, 1);\n }\n }\n },\n on: function on(s, f) {\n (this.fns[s] = this.fns[s] || []).push(f);\n }\n };\n }\n\n function t$4() {\n return {\n filters: {},\n add: function add(t, e) {\n (this.filters[t] = this.filters[t] || []).push(e);\n },\n clear: function clear() {\n this.filters = {};\n },\n execute: function execute(t, e, i) {\n if (!this.filters[t] || !this.filters[t].length) {\n return e;\n }\n\n var s = e;\n var r = this.filters[t];\n var l = r.length;\n\n for (var _t = 0; _t < l; _t++) {\n s = r[_t].apply(s, i);\n }\n\n return s;\n },\n remove: function remove(t, e) {\n if (this.filters[t]) {\n this.filters[t] = this.filters[t].filter(function (t) {\n return t !== e;\n });\n }\n }\n };\n }\n\n function e(e, t, r, n) {\n var o = (r.getAttribute(\"type\") || \"\").toLowerCase();\n var c = r.tagName.toLowerCase();\n\n if (c === \"textarea\") {\n return r.value;\n }\n\n if (c === \"select\") {\n var _e = r;\n var _t = _e.selectedIndex;\n return _t >= 0 ? _e.options.item(_t).value : \"\";\n }\n\n if (c === \"input\") {\n if (\"radio\" === o || \"checkbox\" === o) {\n var _e2 = n.filter(function (e) {\n return e.checked;\n }).length;\n return _e2 === 0 ? \"\" : _e2 + \"\";\n } else {\n return r.value;\n }\n }\n\n return \"\";\n }\n\n function r(r, e) {\n var t = Array.isArray(e) ? e : [e];\n var a = r;\n t.forEach(function (r) {\n a = a.replace(\"%s\", r);\n });\n return a;\n }\n\n function s$1() {\n var s = function s(e) {\n return parseFloat(\"\".concat(e).replace(\",\", \".\"));\n };\n\n return {\n validate: function validate(a) {\n var t = a.value;\n\n if (t === \"\") {\n return {\n valid: true\n };\n }\n\n var n = Object.assign({}, {\n inclusive: true,\n message: \"\"\n }, a.options);\n var l = s(n.min);\n var o = s(n.max);\n return n.inclusive ? {\n message: r(a.l10n ? n.message || a.l10n.between[\"default\"] : n.message, [\"\".concat(l), \"\".concat(o)]),\n valid: parseFloat(t) >= l && parseFloat(t) <= o\n } : {\n message: r(a.l10n ? n.message || a.l10n.between.notInclusive : n.message, [\"\".concat(l), \"\".concat(o)]),\n valid: parseFloat(t) > l && parseFloat(t) < o\n };\n }\n };\n }\n\n function t$5() {\n return {\n validate: function validate(t) {\n return {\n valid: true\n };\n }\n };\n }\n\n function t$6(t, n) {\n if (\"function\" === typeof t) {\n return t.apply(this, n);\n } else if (\"string\" === typeof t) {\n var e = t;\n\n if (\"()\" === e.substring(e.length - 2)) {\n e = e.substring(0, e.length - 2);\n }\n\n var i = e.split(\".\");\n var o = i.pop();\n var f = window;\n\n var _iterator = _createForOfIteratorHelper(i),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _t = _step.value;\n f = f[_t];\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return typeof f[o] === \"undefined\" ? null : f[o].apply(this, n);\n }\n }\n\n function o() {\n return {\n validate: function validate(o) {\n var l = t$6(o.options.callback, [o]);\n return \"boolean\" === typeof l ? {\n valid: l\n } : l;\n }\n };\n }\n\n function t$7() {\n return {\n validate: function validate(t) {\n var o = \"select\" === t.element.tagName.toLowerCase() ? t.element.querySelectorAll(\"option:checked\").length : t.elements.filter(function (e) {\n return e.checked;\n }).length;\n var s = t.options.min ? \"\".concat(t.options.min) : \"\";\n var n = t.options.max ? \"\".concat(t.options.max) : \"\";\n var a = t.l10n ? t.options.message || t.l10n.choice[\"default\"] : t.options.message;\n var l = !(s && o < parseInt(s, 10) || n && o > parseInt(n, 10));\n\n switch (true) {\n case !!s && !!n:\n a = r(t.l10n ? t.l10n.choice.between : t.options.message, [s, n]);\n break;\n\n case !!s:\n a = r(t.l10n ? t.l10n.choice.more : t.options.message, s);\n break;\n\n case !!n:\n a = r(t.l10n ? t.l10n.choice.less : t.options.message, n);\n break;\n }\n\n return {\n message: a,\n valid: l\n };\n }\n };\n }\n\n var t$8 = {\n AMERICAN_EXPRESS: {\n length: [15],\n prefix: [\"34\", \"37\"]\n },\n DANKORT: {\n length: [16],\n prefix: [\"5019\"]\n },\n DINERS_CLUB: {\n length: [14],\n prefix: [\"300\", \"301\", \"302\", \"303\", \"304\", \"305\", \"36\"]\n },\n DINERS_CLUB_US: {\n length: [16],\n prefix: [\"54\", \"55\"]\n },\n DISCOVER: {\n length: [16],\n prefix: [\"6011\", \"622126\", \"622127\", \"622128\", \"622129\", \"62213\", \"62214\", \"62215\", \"62216\", \"62217\", \"62218\", \"62219\", \"6222\", \"6223\", \"6224\", \"6225\", \"6226\", \"6227\", \"6228\", \"62290\", \"62291\", \"622920\", \"622921\", \"622922\", \"622923\", \"622924\", \"622925\", \"644\", \"645\", \"646\", \"647\", \"648\", \"649\", \"65\"]\n },\n ELO: {\n length: [16],\n prefix: [\"4011\", \"4312\", \"4389\", \"4514\", \"4573\", \"4576\", \"5041\", \"5066\", \"5067\", \"509\", \"6277\", \"6362\", \"6363\", \"650\", \"6516\", \"6550\"]\n },\n FORBRUGSFORENINGEN: {\n length: [16],\n prefix: [\"600722\"]\n },\n JCB: {\n length: [16],\n prefix: [\"3528\", \"3529\", \"353\", \"354\", \"355\", \"356\", \"357\", \"358\"]\n },\n LASER: {\n length: [16, 17, 18, 19],\n prefix: [\"6304\", \"6706\", \"6771\", \"6709\"]\n },\n MAESTRO: {\n length: [12, 13, 14, 15, 16, 17, 18, 19],\n prefix: [\"5018\", \"5020\", \"5038\", \"5868\", \"6304\", \"6759\", \"6761\", \"6762\", \"6763\", \"6764\", \"6765\", \"6766\"]\n },\n MASTERCARD: {\n length: [16],\n prefix: [\"51\", \"52\", \"53\", \"54\", \"55\"]\n },\n SOLO: {\n length: [16, 18, 19],\n prefix: [\"6334\", \"6767\"]\n },\n UNIONPAY: {\n length: [16, 17, 18, 19],\n prefix: [\"622126\", \"622127\", \"622128\", \"622129\", \"62213\", \"62214\", \"62215\", \"62216\", \"62217\", \"62218\", \"62219\", \"6222\", \"6223\", \"6224\", \"6225\", \"6226\", \"6227\", \"6228\", \"62290\", \"62291\", \"622920\", \"622921\", \"622922\", \"622923\", \"622924\", \"622925\"]\n },\n VISA: {\n length: [16],\n prefix: [\"4\"]\n },\n VISA_ELECTRON: {\n length: [16],\n prefix: [\"4026\", \"417500\", \"4405\", \"4508\", \"4844\", \"4913\", \"4917\"]\n }\n };\n\n function l() {\n return {\n validate: function validate(l) {\n if (l.value === \"\") {\n return {\n meta: {\n type: null\n },\n valid: true\n };\n }\n\n if (/[^0-9-\\s]+/.test(l.value)) {\n return {\n meta: {\n type: null\n },\n valid: false\n };\n }\n\n var r = l.value.replace(/\\D/g, \"\");\n\n if (!t(r)) {\n return {\n meta: {\n type: null\n },\n valid: false\n };\n }\n\n for (var _i = 0, _Object$keys = Object.keys(t$8); _i < _Object$keys.length; _i++) {\n var _e = _Object$keys[_i];\n\n for (var n in t$8[_e].prefix) {\n if (l.value.substr(0, t$8[_e].prefix[n].length) === t$8[_e].prefix[n] && t$8[_e].length.indexOf(r.length) !== -1) {\n return {\n meta: {\n type: _e\n },\n valid: true\n };\n }\n }\n }\n\n return {\n meta: {\n type: null\n },\n valid: false\n };\n }\n };\n }\n\n function t$9(t, e, n, r) {\n if (isNaN(t) || isNaN(e) || isNaN(n)) {\n return false;\n }\n\n if (t < 1e3 || t > 9999 || e <= 0 || e > 12) {\n return false;\n }\n\n var s = [31, t % 400 === 0 || t % 100 !== 0 && t % 4 === 0 ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n if (n <= 0 || n > s[e - 1]) {\n return false;\n }\n\n if (r === true) {\n var _r = new Date();\n\n var _s = _r.getFullYear();\n\n var a = _r.getMonth();\n\n var u = _r.getDate();\n\n return t < _s || t === _s && e - 1 < a || t === _s && e - 1 === a && n < u;\n }\n\n return true;\n }\n\n function n() {\n var n = function n(t, e, _n) {\n var s = e.indexOf(\"YYYY\");\n var a = e.indexOf(\"MM\");\n var l = e.indexOf(\"DD\");\n\n if (s === -1 || a === -1 || l === -1) {\n return null;\n }\n\n var o = t.split(\" \");\n var r = o[0].split(_n);\n\n if (r.length < 3) {\n return null;\n }\n\n var c = new Date(parseInt(r[s], 10), parseInt(r[a], 10) - 1, parseInt(r[l], 10));\n\n if (o.length > 1) {\n var _t = o[1].split(\":\");\n\n c.setHours(_t.length > 0 ? parseInt(_t[0], 10) : 0);\n c.setMinutes(_t.length > 1 ? parseInt(_t[1], 10) : 0);\n c.setSeconds(_t.length > 2 ? parseInt(_t[2], 10) : 0);\n }\n\n return c;\n };\n\n var s = function s(t, e) {\n var n = e.replace(/Y/g, \"y\").replace(/M/g, \"m\").replace(/D/g, \"d\").replace(/:m/g, \":M\").replace(/:mm/g, \":MM\").replace(/:S/, \":s\").replace(/:SS/, \":ss\");\n var s = t.getDate();\n var a = s < 10 ? \"0\".concat(s) : s;\n var l = t.getMonth() + 1;\n var o = l < 10 ? \"0\".concat(l) : l;\n var r = \"\".concat(t.getFullYear()).substr(2);\n var c = t.getFullYear();\n var i = t.getHours() % 12 || 12;\n var g = i < 10 ? \"0\".concat(i) : i;\n var u = t.getHours();\n var m = u < 10 ? \"0\".concat(u) : u;\n var d = t.getMinutes();\n var f = d < 10 ? \"0\".concat(d) : d;\n var p = t.getSeconds();\n var h = p < 10 ? \"0\".concat(p) : p;\n var $ = {\n H: \"\".concat(u),\n HH: \"\".concat(m),\n M: \"\".concat(d),\n MM: \"\".concat(f),\n d: \"\".concat(s),\n dd: \"\".concat(a),\n h: \"\".concat(i),\n hh: \"\".concat(g),\n m: \"\".concat(l),\n mm: \"\".concat(o),\n s: \"\".concat(p),\n ss: \"\".concat(h),\n yy: \"\".concat(r),\n yyyy: \"\".concat(c)\n };\n return n.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMs])\\1?|\"[^\"]*\"|'[^']*'/g, function (t) {\n return $[t] ? $[t] : t.slice(1, t.length - 1);\n });\n };\n\n return {\n validate: function validate(a) {\n if (a.value === \"\") {\n return {\n meta: {\n date: null\n },\n valid: true\n };\n }\n\n var l = Object.assign({}, {\n format: a.element && a.element.getAttribute(\"type\") === \"date\" ? \"YYYY-MM-DD\" : \"MM/DD/YYYY\",\n message: \"\"\n }, a.options);\n var o = a.l10n ? a.l10n.date[\"default\"] : l.message;\n var r$1 = {\n message: \"\".concat(o),\n meta: {\n date: null\n },\n valid: false\n };\n var c = l.format.split(\" \");\n var i = c.length > 1 ? c[1] : null;\n var g = c.length > 2 ? c[2] : null;\n var u = a.value.split(\" \");\n var m = u[0];\n var d = u.length > 1 ? u[1] : null;\n\n if (c.length !== u.length) {\n return r$1;\n }\n\n var f = l.separator || (m.indexOf(\"/\") !== -1 ? \"/\" : m.indexOf(\"-\") !== -1 ? \"-\" : m.indexOf(\".\") !== -1 ? \".\" : \"/\");\n\n if (f === null || m.indexOf(f) === -1) {\n return r$1;\n }\n\n var p = m.split(f);\n var h = c[0].split(f);\n\n if (p.length !== h.length) {\n return r$1;\n }\n\n var $ = p[h.indexOf(\"YYYY\")];\n var M = p[h.indexOf(\"MM\")];\n var Y = p[h.indexOf(\"DD\")];\n\n if (!/^\\d+$/.test($) || !/^\\d+$/.test(M) || !/^\\d+$/.test(Y) || $.length > 4 || M.length > 2 || Y.length > 2) {\n return r$1;\n }\n\n var D = parseInt($, 10);\n var x = parseInt(M, 10);\n var y = parseInt(Y, 10);\n\n if (!t$9(D, x, y)) {\n return r$1;\n }\n\n var I = new Date(D, x - 1, y);\n\n if (i) {\n var _t2 = d.split(\":\");\n\n if (i.split(\":\").length !== _t2.length) {\n return r$1;\n }\n\n var _e = _t2.length > 0 ? _t2[0].length <= 2 && /^\\d+$/.test(_t2[0]) ? parseInt(_t2[0], 10) : -1 : 0;\n\n var _n2 = _t2.length > 1 ? _t2[1].length <= 2 && /^\\d+$/.test(_t2[1]) ? parseInt(_t2[1], 10) : -1 : 0;\n\n var _s = _t2.length > 2 ? _t2[2].length <= 2 && /^\\d+$/.test(_t2[2]) ? parseInt(_t2[2], 10) : -1 : 0;\n\n if (_e === -1 || _n2 === -1 || _s === -1) {\n return r$1;\n }\n\n if (_s < 0 || _s > 60) {\n return r$1;\n }\n\n if (_e < 0 || _e >= 24 || g && _e > 12) {\n return r$1;\n }\n\n if (_n2 < 0 || _n2 > 59) {\n return r$1;\n }\n\n I.setHours(_e);\n I.setMinutes(_n2);\n I.setSeconds(_s);\n }\n\n var O = typeof l.min === \"function\" ? l.min() : l.min;\n var v = O instanceof Date ? O : O ? n(O, h, f) : I;\n var H = typeof l.max === \"function\" ? l.max() : l.max;\n var T = H instanceof Date ? H : H ? n(H, h, f) : I;\n var S = O instanceof Date ? s(v, l.format) : O;\n var b = H instanceof Date ? s(T, l.format) : H;\n\n switch (true) {\n case !!S && !b:\n return {\n message: r(a.l10n ? a.l10n.date.min : o, S),\n meta: {\n date: I\n },\n valid: I.getTime() >= v.getTime()\n };\n\n case !!b && !S:\n return {\n message: r(a.l10n ? a.l10n.date.max : o, b),\n meta: {\n date: I\n },\n valid: I.getTime() <= T.getTime()\n };\n\n case !!b && !!S:\n return {\n message: r(a.l10n ? a.l10n.date.range : o, [S, b]),\n meta: {\n date: I\n },\n valid: I.getTime() <= T.getTime() && I.getTime() >= v.getTime()\n };\n\n default:\n return {\n message: \"\".concat(o),\n meta: {\n date: I\n },\n valid: true\n };\n }\n }\n };\n }\n\n function o$1() {\n return {\n validate: function validate(o) {\n var t = \"function\" === typeof o.options.compare ? o.options.compare.call(this) : o.options.compare;\n return {\n valid: t === \"\" || o.value !== t\n };\n }\n };\n }\n\n function e$1() {\n return {\n validate: function validate(e) {\n return {\n valid: e.value === \"\" || /^\\d+$/.test(e.value)\n };\n }\n };\n }\n\n function t$a() {\n var t = function t(_t3, e) {\n var s = _t3.split(/\"/);\n\n var l = s.length;\n var n = [];\n var r = \"\";\n\n for (var _t = 0; _t < l; _t++) {\n if (_t % 2 === 0) {\n var _l = s[_t].split(e);\n\n var a = _l.length;\n\n if (a === 1) {\n r += _l[0];\n } else {\n n.push(r + _l[0]);\n\n for (var _t2 = 1; _t2 < a - 1; _t2++) {\n n.push(_l[_t2]);\n }\n\n r = _l[a - 1];\n }\n } else {\n r += '\"' + s[_t];\n\n if (_t < l - 1) {\n r += '\"';\n }\n }\n }\n\n n.push(r);\n return n;\n };\n\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n valid: true\n };\n }\n\n var s = Object.assign({}, {\n multiple: false,\n separator: /[,;]/\n }, e.options);\n var l = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n var n = s.multiple === true || \"\".concat(s.multiple) === \"true\";\n\n if (n) {\n var _n = s.separator || /[,;]/;\n\n var r = t(e.value, _n);\n var a = r.length;\n\n for (var _t4 = 0; _t4 < a; _t4++) {\n if (!l.test(r[_t4])) {\n return {\n valid: false\n };\n }\n }\n\n return {\n valid: true\n };\n } else {\n return {\n valid: l.test(e.value)\n };\n }\n }\n };\n }\n\n function e$2() {\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n valid: true\n };\n }\n\n var t;\n var i = e.options.extension ? e.options.extension.toLowerCase().split(\",\") : null;\n var s = e.options.type ? e.options.type.toLowerCase().split(\",\") : null;\n var n = window[\"File\"] && window[\"FileList\"] && window[\"FileReader\"];\n\n if (n) {\n var _n = e.element.files;\n var o = _n.length;\n var a = 0;\n\n if (e.options.maxFiles && o > parseInt(\"\".concat(e.options.maxFiles), 10)) {\n return {\n meta: {\n error: \"INVALID_MAX_FILES\"\n },\n valid: false\n };\n }\n\n if (e.options.minFiles && o < parseInt(\"\".concat(e.options.minFiles), 10)) {\n return {\n meta: {\n error: \"INVALID_MIN_FILES\"\n },\n valid: false\n };\n }\n\n var r = {};\n\n for (var l = 0; l < o; l++) {\n a += _n[l].size;\n t = _n[l].name.substr(_n[l].name.lastIndexOf(\".\") + 1);\n r = {\n ext: t,\n file: _n[l],\n size: _n[l].size,\n type: _n[l].type\n };\n\n if (e.options.minSize && _n[l].size < parseInt(\"\".concat(e.options.minSize), 10)) {\n return {\n meta: Object.assign({}, {\n error: \"INVALID_MIN_SIZE\"\n }, r),\n valid: false\n };\n }\n\n if (e.options.maxSize && _n[l].size > parseInt(\"\".concat(e.options.maxSize), 10)) {\n return {\n meta: Object.assign({}, {\n error: \"INVALID_MAX_SIZE\"\n }, r),\n valid: false\n };\n }\n\n if (i && i.indexOf(t.toLowerCase()) === -1) {\n return {\n meta: Object.assign({}, {\n error: \"INVALID_EXTENSION\"\n }, r),\n valid: false\n };\n }\n\n if (_n[l].type && s && s.indexOf(_n[l].type.toLowerCase()) === -1) {\n return {\n meta: Object.assign({}, {\n error: \"INVALID_TYPE\"\n }, r),\n valid: false\n };\n }\n }\n\n if (e.options.maxTotalSize && a > parseInt(\"\".concat(e.options.maxTotalSize), 10)) {\n return {\n meta: Object.assign({}, {\n error: \"INVALID_MAX_TOTAL_SIZE\",\n totalSize: a\n }, r),\n valid: false\n };\n }\n\n if (e.options.minTotalSize && a < parseInt(\"\".concat(e.options.minTotalSize), 10)) {\n return {\n meta: Object.assign({}, {\n error: \"INVALID_MIN_TOTAL_SIZE\",\n totalSize: a\n }, r),\n valid: false\n };\n }\n } else {\n t = e.value.substr(e.value.lastIndexOf(\".\") + 1);\n\n if (i && i.indexOf(t.toLowerCase()) === -1) {\n return {\n meta: {\n error: \"INVALID_EXTENSION\",\n ext: t\n },\n valid: false\n };\n }\n }\n\n return {\n valid: true\n };\n }\n };\n }\n\n function a() {\n return {\n validate: function validate(a) {\n if (a.value === \"\") {\n return {\n valid: true\n };\n }\n\n var s = Object.assign({}, {\n inclusive: true,\n message: \"\"\n }, a.options);\n var t = parseFloat(\"\".concat(s.min).replace(\",\", \".\"));\n return s.inclusive ? {\n message: r(a.l10n ? s.message || a.l10n.greaterThan[\"default\"] : s.message, \"\".concat(t)),\n valid: parseFloat(a.value) >= t\n } : {\n message: r(a.l10n ? s.message || a.l10n.greaterThan.notInclusive : s.message, \"\".concat(t)),\n valid: parseFloat(a.value) > t\n };\n }\n };\n }\n\n function o$2() {\n return {\n validate: function validate(o) {\n var t = \"function\" === typeof o.options.compare ? o.options.compare.call(this) : o.options.compare;\n return {\n valid: t === \"\" || o.value === t\n };\n }\n };\n }\n\n function a$1() {\n return {\n validate: function validate(a) {\n if (a.value === \"\") {\n return {\n valid: true\n };\n }\n\n var e = Object.assign({}, {\n decimalSeparator: \".\",\n thousandsSeparator: \"\"\n }, a.options);\n var t = e.decimalSeparator === \".\" ? \"\\\\.\" : e.decimalSeparator;\n var r = e.thousandsSeparator === \".\" ? \"\\\\.\" : e.thousandsSeparator;\n var o = new RegExp(\"^-?[0-9]{1,3}(\".concat(r, \"[0-9]{3})*(\").concat(t, \"[0-9]+)?$\"));\n var n = new RegExp(r, \"g\");\n var s = \"\".concat(a.value);\n\n if (!o.test(s)) {\n return {\n valid: false\n };\n }\n\n if (r) {\n s = s.replace(n, \"\");\n }\n\n if (t) {\n s = s.replace(t, \".\");\n }\n\n var i = parseFloat(s);\n return {\n valid: !isNaN(i) && isFinite(i) && Math.floor(i) === i\n };\n }\n };\n }\n\n function d() {\n return {\n validate: function validate(d) {\n if (d.value === \"\") {\n return {\n valid: true\n };\n }\n\n var a = Object.assign({}, {\n ipv4: true,\n ipv6: true\n }, d.options);\n var e = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\/([0-9]|[1-2][0-9]|3[0-2]))?$/;\n var s = /^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*(\\/(\\d|\\d\\d|1[0-1]\\d|12[0-8]))?$/;\n\n switch (true) {\n case a.ipv4 && !a.ipv6:\n return {\n message: d.l10n ? a.message || d.l10n.ip.ipv4 : a.message,\n valid: e.test(d.value)\n };\n\n case !a.ipv4 && a.ipv6:\n return {\n message: d.l10n ? a.message || d.l10n.ip.ipv6 : a.message,\n valid: s.test(d.value)\n };\n\n case a.ipv4 && a.ipv6:\n default:\n return {\n message: d.l10n ? a.message || d.l10n.ip[\"default\"] : a.message,\n valid: e.test(d.value) || s.test(d.value)\n };\n }\n }\n };\n }\n\n function s$2() {\n return {\n validate: function validate(s) {\n if (s.value === \"\") {\n return {\n valid: true\n };\n }\n\n var a = Object.assign({}, {\n inclusive: true,\n message: \"\"\n }, s.options);\n var l = parseFloat(\"\".concat(a.max).replace(\",\", \".\"));\n return a.inclusive ? {\n message: r(s.l10n ? a.message || s.l10n.lessThan[\"default\"] : a.message, \"\".concat(l)),\n valid: parseFloat(s.value) <= l\n } : {\n message: r(s.l10n ? a.message || s.l10n.lessThan.notInclusive : a.message, \"\".concat(l)),\n valid: parseFloat(s.value) < l\n };\n }\n };\n }\n\n function t$b() {\n return {\n validate: function validate(t) {\n var n = !!t.options && !!t.options.trim;\n var o = t.value;\n return {\n valid: !n && o !== \"\" || n && o !== \"\" && o.trim() !== \"\"\n };\n }\n };\n }\n\n function a$2() {\n return {\n validate: function validate(a) {\n if (a.value === \"\") {\n return {\n valid: true\n };\n }\n\n var e = Object.assign({}, {\n decimalSeparator: \".\",\n thousandsSeparator: \"\"\n }, a.options);\n var t = \"\".concat(a.value);\n\n if (t.substr(0, 1) === e.decimalSeparator) {\n t = \"0\".concat(e.decimalSeparator).concat(t.substr(1));\n } else if (t.substr(0, 2) === \"-\".concat(e.decimalSeparator)) {\n t = \"-0\".concat(e.decimalSeparator).concat(t.substr(2));\n }\n\n var r = e.decimalSeparator === \".\" ? \"\\\\.\" : e.decimalSeparator;\n var s = e.thousandsSeparator === \".\" ? \"\\\\.\" : e.thousandsSeparator;\n var i = new RegExp(\"^-?[0-9]{1,3}(\".concat(s, \"[0-9]{3})*(\").concat(r, \"[0-9]+)?$\"));\n var o = new RegExp(s, \"g\");\n\n if (!i.test(t)) {\n return {\n valid: false\n };\n }\n\n if (s) {\n t = t.replace(o, \"\");\n }\n\n if (r) {\n t = t.replace(r, \".\");\n }\n\n var l = parseFloat(t);\n return {\n valid: !isNaN(l) && isFinite(l)\n };\n }\n };\n }\n\n function r$1() {\n return {\n validate: function validate(r) {\n return t$6(r.options.promise, [r]);\n }\n };\n }\n\n function e$3() {\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n valid: true\n };\n }\n\n var t = e.options.regexp;\n\n if (t instanceof RegExp) {\n return {\n valid: t.test(e.value)\n };\n } else {\n var n = t.toString();\n var o = e.options.flags ? new RegExp(n, e.options.flags) : new RegExp(n);\n return {\n valid: o.test(e.value)\n };\n }\n }\n };\n }\n\n function e$4(e, t) {\n var n = function n(e) {\n return Object.keys(e).map(function (t) {\n return \"\".concat(encodeURIComponent(t), \"=\").concat(encodeURIComponent(e[t]));\n }).join(\"&\");\n };\n\n return new Promise(function (o, s) {\n var d = Object.assign({}, {\n crossDomain: false,\n headers: {},\n method: \"GET\",\n params: {}\n }, t);\n var a = Object.keys(d.params).map(function (e) {\n return \"\".concat(encodeURIComponent(e), \"=\").concat(encodeURIComponent(d.params[e]));\n }).join(\"&\");\n var r = e.indexOf(\"?\");\n var c = \"GET\" === d.method ? \"\".concat(e).concat(r ? \"?\" : \"&\").concat(a) : e;\n\n if (d.crossDomain) {\n var _e = document.createElement(\"script\");\n\n var _t = \"___fetch\".concat(Date.now(), \"___\");\n\n window[_t] = function (e) {\n delete window[_t];\n o(e);\n };\n\n _e.src = \"\".concat(c).concat(r ? \"&\" : \"?\", \"callback=\").concat(_t);\n _e.async = true;\n\n _e.addEventListener(\"load\", function () {\n _e.parentNode.removeChild(_e);\n });\n\n _e.addEventListener(\"error\", function () {\n return s;\n });\n\n document.head.appendChild(_e);\n } else {\n var _e2 = new XMLHttpRequest();\n\n _e2.open(d.method, c);\n\n _e2.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n\n if (\"POST\" === d.method) {\n _e2.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n }\n\n Object.keys(d.headers).forEach(function (t) {\n return _e2.setRequestHeader(t, d.headers[t]);\n });\n\n _e2.addEventListener(\"load\", function () {\n o(JSON.parse(this.responseText));\n });\n\n _e2.addEventListener(\"error\", function () {\n return s;\n });\n\n _e2.send(n(d.params));\n }\n });\n }\n\n function a$3() {\n var a = {\n crossDomain: false,\n data: {},\n headers: {},\n method: \"GET\",\n validKey: \"valid\"\n };\n return {\n validate: function validate(t) {\n if (t.value === \"\") {\n return Promise.resolve({\n valid: true\n });\n }\n\n var s = Object.assign({}, a, t.options);\n var r = s.data;\n\n if (\"function\" === typeof s.data) {\n r = s.data.call(this, t);\n }\n\n if (\"string\" === typeof r) {\n r = JSON.parse(r);\n }\n\n r[s.name || t.field] = t.value;\n var o = \"function\" === typeof s.url ? s.url.call(this, t) : s.url;\n return e$4(o, {\n crossDomain: s.crossDomain,\n headers: s.headers,\n method: s.method,\n params: r\n }).then(function (e) {\n return Promise.resolve({\n message: e[\"message\"],\n meta: e,\n valid: \"\".concat(e[s.validKey]) === \"true\"\n });\n })[\"catch\"](function (e) {\n return Promise.reject({\n valid: false\n });\n });\n }\n };\n }\n\n function e$5() {\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n valid: true\n };\n }\n\n var a = Object.assign({}, {\n \"case\": \"lower\"\n }, e.options);\n var s = (a[\"case\"] || \"lower\").toLowerCase();\n return {\n message: a.message || (e.l10n ? \"upper\" === s ? e.l10n.stringCase.upper : e.l10n.stringCase[\"default\"] : a.message),\n valid: \"upper\" === s ? e.value === e.value.toUpperCase() : e.value === e.value.toLowerCase()\n };\n }\n };\n }\n\n function t$c() {\n var t = function t(e) {\n var t = e.length;\n\n for (var s = e.length - 1; s >= 0; s--) {\n var n = e.charCodeAt(s);\n\n if (n > 127 && n <= 2047) {\n t++;\n } else if (n > 2047 && n <= 65535) {\n t += 2;\n }\n\n if (n >= 56320 && n <= 57343) {\n s--;\n }\n }\n\n return \"\".concat(t);\n };\n\n return {\n validate: function validate(s) {\n var n = Object.assign({}, {\n message: \"\",\n trim: false,\n utf8Bytes: false\n }, s.options);\n var a = n.trim === true || \"\".concat(n.trim) === \"true\" ? s.value.trim() : s.value;\n\n if (a === \"\") {\n return {\n valid: true\n };\n }\n\n var r$1 = n.min ? \"\".concat(n.min) : \"\";\n var l = n.max ? \"\".concat(n.max) : \"\";\n var i = n.utf8Bytes ? t(a) : a.length;\n var g = true;\n var m = s.l10n ? n.message || s.l10n.stringLength[\"default\"] : n.message;\n\n if (r$1 && i < parseInt(r$1, 10) || l && i > parseInt(l, 10)) {\n g = false;\n }\n\n switch (true) {\n case !!r$1 && !!l:\n m = r(s.l10n ? n.message || s.l10n.stringLength.between : n.message, [r$1, l]);\n break;\n\n case !!r$1:\n m = r(s.l10n ? n.message || s.l10n.stringLength.more : n.message, \"\".concat(parseInt(r$1, 10)));\n break;\n\n case !!l:\n m = r(s.l10n ? n.message || s.l10n.stringLength.less : n.message, \"\".concat(parseInt(l, 10)));\n break;\n }\n\n return {\n message: m,\n valid: g\n };\n }\n };\n }\n\n function t$d() {\n var t = {\n allowEmptyProtocol: false,\n allowLocal: false,\n protocol: \"http, https, ftp\"\n };\n return {\n validate: function validate(o) {\n if (o.value === \"\") {\n return {\n valid: true\n };\n }\n\n var a = Object.assign({}, t, o.options);\n var l = a.allowLocal === true || \"\".concat(a.allowLocal) === \"true\";\n var f = a.allowEmptyProtocol === true || \"\".concat(a.allowEmptyProtocol) === \"true\";\n var u = a.protocol.split(\",\").join(\"|\").replace(/\\s/g, \"\");\n var e = new RegExp(\"^\" + \"(?:(?:\" + u + \")://)\" + (f ? \"?\" : \"\") + \"(?:\\\\S+(?::\\\\S*)?@)?\" + \"(?:\" + (l ? \"\" : \"(?!(?:10|127)(?:\\\\.\\\\d{1,3}){3})\" + \"(?!(?:169\\\\.254|192\\\\.168)(?:\\\\.\\\\d{1,3}){2})\" + \"(?!172\\\\.(?:1[6-9]|2\\\\d|3[0-1])(?:\\\\.\\\\d{1,3}){2})\") + \"(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])\" + \"(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}\" + \"(?:\\\\.(?:[1-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))\" + \"|\" + \"(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]-?)*[a-z\\\\u00a1-\\\\uffff0-9]+)\" + \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-?)*[a-z\\\\u00a1-\\\\uffff0-9])*\" + \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))\" + (l ? \"?\" : \"\") + \")\" + \"(?::\\\\d{2,5})?\" + \"(?:/[^\\\\s]*)?$\", \"i\");\n return {\n valid: e.test(o.value)\n };\n }\n };\n }\n\n function a$4() {\n return {\n validate: function validate(a) {\n return {\n valid: a.value === \"\" || /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/.test(a.value)\n };\n }\n };\n }\n\n function a$5() {\n return {\n validate: function validate(a) {\n return {\n valid: a.value === \"\" || /^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?$/.test(a.value)\n };\n }\n };\n }\n\n function e$6() {\n var e = [\"hex\", \"rgb\", \"rgba\", \"hsl\", \"hsla\", \"keyword\"];\n var a = [\"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\", \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\", \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\", \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\", \"darkgray\", \"darkgreen\", \"darkgrey\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\", \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\", \"darkslateblue\", \"darkslategray\", \"darkslategrey\", \"darkturquoise\", \"darkviolet\", \"deeppink\", \"deepskyblue\", \"dimgray\", \"dimgrey\", \"dodgerblue\", \"firebrick\", \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\", \"gold\", \"goldenrod\", \"gray\", \"green\", \"greenyellow\", \"grey\", \"honeydew\", \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\", \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\", \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightgrey\", \"lightpink\", \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\", \"lightslategrey\", \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\", \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\", \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\", \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\", \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\", \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\", \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\", \"purple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\", \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\", \"slateblue\", \"slategray\", \"slategrey\", \"snow\", \"springgreen\", \"steelblue\", \"tan\", \"teal\", \"thistle\", \"tomato\", \"transparent\", \"turquoise\", \"violet\", \"wheat\", \"white\", \"whitesmoke\", \"yellow\", \"yellowgreen\"];\n\n var r = function r(e) {\n return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e);\n };\n\n var l = function l(e) {\n return /^hsl\\((\\s*(-?\\d+)\\s*,)(\\s*(\\b(0?\\d{1,2}|100)\\b%)\\s*,)(\\s*(\\b(0?\\d{1,2}|100)\\b%)\\s*)\\)$/.test(e);\n };\n\n var s = function s(e) {\n return /^hsla\\((\\s*(-?\\d+)\\s*,)(\\s*(\\b(0?\\d{1,2}|100)\\b%)\\s*,){2}(\\s*(0?(\\.\\d+)?|1(\\.0+)?)\\s*)\\)$/.test(e);\n };\n\n var t = function t(e) {\n return a.indexOf(e) >= 0;\n };\n\n var i = function i(e) {\n return /^rgb\\((\\s*(\\b([01]?\\d{1,2}|2[0-4]\\d|25[0-5])\\b)\\s*,){2}(\\s*(\\b([01]?\\d{1,2}|2[0-4]\\d|25[0-5])\\b)\\s*)\\)$/.test(e) || /^rgb\\((\\s*(\\b(0?\\d{1,2}|100)\\b%)\\s*,){2}(\\s*(\\b(0?\\d{1,2}|100)\\b%)\\s*)\\)$/.test(e);\n };\n\n var o = function o(e) {\n return /^rgba\\((\\s*(\\b([01]?\\d{1,2}|2[0-4]\\d|25[0-5])\\b)\\s*,){3}(\\s*(0?(\\.\\d+)?|1(\\.0+)?)\\s*)\\)$/.test(e) || /^rgba\\((\\s*(\\b(0?\\d{1,2}|100)\\b%)\\s*,){3}(\\s*(0?(\\.\\d+)?|1(\\.0+)?)\\s*)\\)$/.test(e);\n };\n\n return {\n validate: function validate(a) {\n if (a.value === \"\") {\n return {\n valid: true\n };\n }\n\n var n = typeof a.options.type === \"string\" ? a.options.type.toString().replace(/s/g, \"\").split(\",\") : a.options.type || e;\n\n var _iterator = _createForOfIteratorHelper(n),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var d = _step.value;\n\n var _n = d.toLowerCase();\n\n if (e.indexOf(_n) === -1) {\n continue;\n }\n\n var g = true;\n\n switch (_n) {\n case \"hex\":\n g = r(a.value);\n break;\n\n case \"hsl\":\n g = l(a.value);\n break;\n\n case \"hsla\":\n g = s(a.value);\n break;\n\n case \"keyword\":\n g = t(a.value);\n break;\n\n case \"rgb\":\n g = i(a.value);\n break;\n\n case \"rgba\":\n g = o(a.value);\n break;\n }\n\n if (g) {\n return {\n valid: true\n };\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return {\n valid: false\n };\n }\n };\n }\n\n function t$e() {\n return {\n validate: function validate(t) {\n if (t.value === \"\") {\n return {\n valid: true\n };\n }\n\n var e = t.value.toUpperCase();\n\n if (!/^[0123456789ABCDEFGHJKLMNPQRSTUVWXYZ*@#]{9}$/.test(e)) {\n return {\n valid: false\n };\n }\n\n var r = e.split(\"\");\n var a = r.pop();\n var n = r.map(function (t) {\n var e = t.charCodeAt(0);\n\n switch (true) {\n case t === \"*\":\n return 36;\n\n case t === \"@\":\n return 37;\n\n case t === \"#\":\n return 38;\n\n case e >= \"A\".charCodeAt(0) && e <= \"Z\".charCodeAt(0):\n return e - \"A\".charCodeAt(0) + 10;\n\n default:\n return parseInt(t, 10);\n }\n });\n var c = n.map(function (t, e) {\n var r = e % 2 === 0 ? t : 2 * t;\n return Math.floor(r / 10) + r % 10;\n }).reduce(function (t, e) {\n return t + e;\n }, 0);\n var o = (10 - c % 10) % 10;\n return {\n valid: a === \"\".concat(o)\n };\n }\n };\n }\n\n function e$7() {\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n valid: true\n };\n }\n\n if (!/^(\\d{8}|\\d{12}|\\d{13}|\\d{14})$/.test(e.value)) {\n return {\n valid: false\n };\n }\n\n var t = e.value.length;\n var a = 0;\n var l = t === 8 ? [3, 1] : [1, 3];\n\n for (var r = 0; r < t - 1; r++) {\n a += parseInt(e.value.charAt(r), 10) * l[r % 2];\n }\n\n a = (10 - a % 10) % 10;\n return {\n valid: \"\".concat(a) === e.value.charAt(t - 1)\n };\n }\n };\n }\n\n function e$8() {\n var e = {\n ANDOVER: [\"10\", \"12\"],\n ATLANTA: [\"60\", \"67\"],\n AUSTIN: [\"50\", \"53\"],\n BROOKHAVEN: [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"11\", \"13\", \"14\", \"16\", \"21\", \"22\", \"23\", \"25\", \"34\", \"51\", \"52\", \"54\", \"55\", \"56\", \"57\", \"58\", \"59\", \"65\"],\n CINCINNATI: [\"30\", \"32\", \"35\", \"36\", \"37\", \"38\", \"61\"],\n FRESNO: [\"15\", \"24\"],\n INTERNET: [\"20\", \"26\", \"27\", \"45\", \"46\", \"47\"],\n KANSAS_CITY: [\"40\", \"44\"],\n MEMPHIS: [\"94\", \"95\"],\n OGDEN: [\"80\", \"90\"],\n PHILADELPHIA: [\"33\", \"39\", \"41\", \"42\", \"43\", \"48\", \"62\", \"63\", \"64\", \"66\", \"68\", \"71\", \"72\", \"73\", \"74\", \"75\", \"76\", \"77\", \"81\", \"82\", \"83\", \"84\", \"85\", \"86\", \"87\", \"88\", \"91\", \"92\", \"93\", \"98\", \"99\"],\n SMALL_BUSINESS_ADMINISTRATION: [\"31\"]\n };\n return {\n validate: function validate(t) {\n if (t.value === \"\") {\n return {\n meta: null,\n valid: true\n };\n }\n\n if (!/^[0-9]{2}-?[0-9]{7}$/.test(t.value)) {\n return {\n meta: null,\n valid: false\n };\n }\n\n var a = \"\".concat(t.value.substr(0, 2));\n\n for (var _t in e) {\n if (e[_t].indexOf(a) !== -1) {\n return {\n meta: {\n campus: _t\n },\n valid: true\n };\n }\n }\n\n return {\n meta: null,\n valid: false\n };\n }\n };\n }\n\n function r$2() {\n return {\n validate: function validate(r) {\n if (r.value === \"\") {\n return {\n valid: true\n };\n }\n\n var t = r.value.toUpperCase();\n\n if (!/^[GRID:]*([0-9A-Z]{2})[-\\s]*([0-9A-Z]{5})[-\\s]*([0-9A-Z]{10})[-\\s]*([0-9A-Z]{1})$/g.test(t)) {\n return {\n valid: false\n };\n }\n\n t = t.replace(/\\s/g, \"\").replace(/-/g, \"\");\n\n if (\"GRID:\" === t.substr(0, 5)) {\n t = t.substr(5);\n }\n\n return {\n valid: t$2(t)\n };\n }\n };\n }\n\n function e$9() {\n return {\n validate: function validate(e) {\n return {\n valid: e.value === \"\" || /^[0-9a-fA-F]+$/.test(e.value)\n };\n }\n };\n }\n\n function Z() {\n var Z = {\n AD: \"AD[0-9]{2}[0-9]{4}[0-9]{4}[A-Z0-9]{12}\",\n AE: \"AE[0-9]{2}[0-9]{3}[0-9]{16}\",\n AL: \"AL[0-9]{2}[0-9]{8}[A-Z0-9]{16}\",\n AO: \"AO[0-9]{2}[0-9]{21}\",\n AT: \"AT[0-9]{2}[0-9]{5}[0-9]{11}\",\n AZ: \"AZ[0-9]{2}[A-Z]{4}[A-Z0-9]{20}\",\n BA: \"BA[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{8}[0-9]{2}\",\n BE: \"BE[0-9]{2}[0-9]{3}[0-9]{7}[0-9]{2}\",\n BF: \"BF[0-9]{2}[0-9]{23}\",\n BG: \"BG[0-9]{2}[A-Z]{4}[0-9]{4}[0-9]{2}[A-Z0-9]{8}\",\n BH: \"BH[0-9]{2}[A-Z]{4}[A-Z0-9]{14}\",\n BI: \"BI[0-9]{2}[0-9]{12}\",\n BJ: \"BJ[0-9]{2}[A-Z]{1}[0-9]{23}\",\n BR: \"BR[0-9]{2}[0-9]{8}[0-9]{5}[0-9]{10}[A-Z][A-Z0-9]\",\n CH: \"CH[0-9]{2}[0-9]{5}[A-Z0-9]{12}\",\n CI: \"CI[0-9]{2}[A-Z]{1}[0-9]{23}\",\n CM: \"CM[0-9]{2}[0-9]{23}\",\n CR: \"CR[0-9]{2}[0-9][0-9]{3}[0-9]{14}\",\n CV: \"CV[0-9]{2}[0-9]{21}\",\n CY: \"CY[0-9]{2}[0-9]{3}[0-9]{5}[A-Z0-9]{16}\",\n CZ: \"CZ[0-9]{2}[0-9]{20}\",\n DE: \"DE[0-9]{2}[0-9]{8}[0-9]{10}\",\n DK: \"DK[0-9]{2}[0-9]{14}\",\n DO: \"DO[0-9]{2}[A-Z0-9]{4}[0-9]{20}\",\n DZ: \"DZ[0-9]{2}[0-9]{20}\",\n EE: \"EE[0-9]{2}[0-9]{2}[0-9]{2}[0-9]{11}[0-9]{1}\",\n ES: \"ES[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{1}[0-9]{1}[0-9]{10}\",\n FI: \"FI[0-9]{2}[0-9]{6}[0-9]{7}[0-9]{1}\",\n FO: \"FO[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}\",\n FR: \"FR[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}\",\n GB: \"GB[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}\",\n GE: \"GE[0-9]{2}[A-Z]{2}[0-9]{16}\",\n GI: \"GI[0-9]{2}[A-Z]{4}[A-Z0-9]{15}\",\n GL: \"GL[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}\",\n GR: \"GR[0-9]{2}[0-9]{3}[0-9]{4}[A-Z0-9]{16}\",\n GT: \"GT[0-9]{2}[A-Z0-9]{4}[A-Z0-9]{20}\",\n HR: \"HR[0-9]{2}[0-9]{7}[0-9]{10}\",\n HU: \"HU[0-9]{2}[0-9]{3}[0-9]{4}[0-9]{1}[0-9]{15}[0-9]{1}\",\n IE: \"IE[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}\",\n IL: \"IL[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{13}\",\n IR: \"IR[0-9]{2}[0-9]{22}\",\n IS: \"IS[0-9]{2}[0-9]{4}[0-9]{2}[0-9]{6}[0-9]{10}\",\n IT: \"IT[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}\",\n JO: \"JO[0-9]{2}[A-Z]{4}[0-9]{4}[0]{8}[A-Z0-9]{10}\",\n KW: \"KW[0-9]{2}[A-Z]{4}[0-9]{22}\",\n KZ: \"KZ[0-9]{2}[0-9]{3}[A-Z0-9]{13}\",\n LB: \"LB[0-9]{2}[0-9]{4}[A-Z0-9]{20}\",\n LI: \"LI[0-9]{2}[0-9]{5}[A-Z0-9]{12}\",\n LT: \"LT[0-9]{2}[0-9]{5}[0-9]{11}\",\n LU: \"LU[0-9]{2}[0-9]{3}[A-Z0-9]{13}\",\n LV: \"LV[0-9]{2}[A-Z]{4}[A-Z0-9]{13}\",\n MC: \"MC[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}\",\n MD: \"MD[0-9]{2}[A-Z0-9]{20}\",\n ME: \"ME[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}\",\n MG: \"MG[0-9]{2}[0-9]{23}\",\n MK: \"MK[0-9]{2}[0-9]{3}[A-Z0-9]{10}[0-9]{2}\",\n ML: \"ML[0-9]{2}[A-Z]{1}[0-9]{23}\",\n MR: \"MR13[0-9]{5}[0-9]{5}[0-9]{11}[0-9]{2}\",\n MT: \"MT[0-9]{2}[A-Z]{4}[0-9]{5}[A-Z0-9]{18}\",\n MU: \"MU[0-9]{2}[A-Z]{4}[0-9]{2}[0-9]{2}[0-9]{12}[0-9]{3}[A-Z]{3}\",\n MZ: \"MZ[0-9]{2}[0-9]{21}\",\n NL: \"NL[0-9]{2}[A-Z]{4}[0-9]{10}\",\n NO: \"NO[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{1}\",\n PK: \"PK[0-9]{2}[A-Z]{4}[A-Z0-9]{16}\",\n PL: \"PL[0-9]{2}[0-9]{8}[0-9]{16}\",\n PS: \"PS[0-9]{2}[A-Z]{4}[A-Z0-9]{21}\",\n PT: \"PT[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{11}[0-9]{2}\",\n QA: \"QA[0-9]{2}[A-Z]{4}[A-Z0-9]{21}\",\n RO: \"RO[0-9]{2}[A-Z]{4}[A-Z0-9]{16}\",\n RS: \"RS[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}\",\n SA: \"SA[0-9]{2}[0-9]{2}[A-Z0-9]{18}\",\n SE: \"SE[0-9]{2}[0-9]{3}[0-9]{16}[0-9]{1}\",\n SI: \"SI[0-9]{2}[0-9]{5}[0-9]{8}[0-9]{2}\",\n SK: \"SK[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{10}\",\n SM: \"SM[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}\",\n SN: \"SN[0-9]{2}[A-Z]{1}[0-9]{23}\",\n TL: \"TL38[0-9]{3}[0-9]{14}[0-9]{2}\",\n TN: \"TN59[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}\",\n TR: \"TR[0-9]{2}[0-9]{5}[A-Z0-9]{1}[A-Z0-9]{16}\",\n VG: \"VG[0-9]{2}[A-Z]{4}[0-9]{16}\",\n XK: \"XK[0-9]{2}[0-9]{4}[0-9]{10}[0-9]{2}\"\n };\n var e = [\"AT\", \"BE\", \"BG\", \"CH\", \"CY\", \"CZ\", \"DE\", \"DK\", \"EE\", \"ES\", \"FI\", \"FR\", \"GB\", \"GI\", \"GR\", \"HR\", \"HU\", \"IE\", \"IS\", \"IT\", \"LI\", \"LT\", \"LU\", \"LV\", \"MC\", \"MT\", \"NL\", \"NO\", \"PL\", \"PT\", \"RO\", \"SE\", \"SI\", \"SK\", \"SM\"];\n return {\n validate: function validate(s) {\n if (s.value === \"\") {\n return {\n valid: true\n };\n }\n\n var t = Object.assign({}, {\n message: \"\"\n }, s.options);\n var a = s.value.replace(/[^a-zA-Z0-9]/g, \"\").toUpperCase();\n var r$1 = t.country || a.substr(0, 2);\n\n if (!Z[r$1]) {\n return {\n message: t.message,\n valid: false\n };\n }\n\n if (t.sepa !== undefined) {\n var _A = e.indexOf(r$1) !== -1;\n\n if ((t.sepa === \"true\" || t.sepa === true) && !_A || (t.sepa === \"false\" || t.sepa === false) && _A) {\n return {\n message: t.message,\n valid: false\n };\n }\n }\n\n var n = r(s.l10n ? t.message || s.l10n.iban.country : t.message, s.l10n ? s.l10n.iban.countries[r$1] : r$1);\n\n if (!new RegExp(\"^\".concat(Z[r$1], \"$\")).test(s.value)) {\n return {\n message: n,\n valid: false\n };\n }\n\n a = \"\".concat(a.substr(4)).concat(a.substr(0, 4));\n a = a.split(\"\").map(function (A) {\n var Z = A.charCodeAt(0);\n return Z >= \"A\".charCodeAt(0) && Z <= \"Z\".charCodeAt(0) ? Z - \"A\".charCodeAt(0) + 10 : A;\n }).join(\"\");\n var I = parseInt(a.substr(0, 1), 10);\n var L = a.length;\n\n for (var _A2 = 1; _A2 < L; ++_A2) {\n I = (I * 10 + parseInt(a.substr(_A2, 1), 10)) % 97;\n }\n\n return {\n message: n,\n valid: I === 1\n };\n }\n };\n }\n\n function t$f(t) {\n var e = t.replace(/\\./g, \"\");\n return {\n meta: {},\n valid: /^\\d{7,8}$/.test(e)\n };\n }\n\n function t$g(t, r) {\n if (!/^\\d{13}$/.test(t)) {\n return false;\n }\n\n var e = parseInt(t.substr(0, 2), 10);\n var s = parseInt(t.substr(2, 2), 10);\n var n = parseInt(t.substr(7, 2), 10);\n var a = parseInt(t.substr(12, 1), 10);\n\n if (e > 31 || s > 12) {\n return false;\n }\n\n var u = 0;\n\n for (var _r = 0; _r < 6; _r++) {\n u += (7 - _r) * (parseInt(t.charAt(_r), 10) + parseInt(t.charAt(_r + 6), 10));\n }\n\n u = 11 - u % 11;\n\n if (u === 10 || u === 11) {\n u = 0;\n }\n\n if (u !== a) {\n return false;\n }\n\n switch (r.toUpperCase()) {\n case \"BA\":\n return 10 <= n && n <= 19;\n\n case \"MK\":\n return 41 <= n && n <= 49;\n\n case \"ME\":\n return 20 <= n && n <= 29;\n\n case \"RS\":\n return 70 <= n && n <= 99;\n\n case \"SI\":\n return 50 <= n && n <= 59;\n\n default:\n return true;\n }\n }\n\n function r$3(r) {\n return {\n meta: {},\n valid: t$g(r, \"BA\")\n };\n }\n\n function e$a(e) {\n if (!/^\\d{10}$/.test(e) && !/^\\d{6}\\s\\d{3}\\s\\d{1}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var s = e.replace(/\\s/g, \"\");\n var r = parseInt(s.substr(0, 2), 10) + 1900;\n var a = parseInt(s.substr(2, 2), 10);\n var l = parseInt(s.substr(4, 2), 10);\n\n if (a > 40) {\n r += 100;\n a -= 40;\n } else if (a > 20) {\n r -= 100;\n a -= 20;\n }\n\n if (!t$9(r, a, l)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var i = 0;\n var n = [2, 4, 8, 5, 10, 9, 7, 3, 6];\n\n for (var _t = 0; _t < 9; _t++) {\n i += parseInt(s.charAt(_t), 10) * n[_t];\n }\n\n i = i % 11 % 10;\n return {\n meta: {},\n valid: \"\".concat(i) === s.substr(9, 1)\n };\n }\n\n function t$h(t) {\n var e = t.replace(/\\D/g, \"\");\n\n if (!/^\\d{11}$/.test(e) || /^1{11}|2{11}|3{11}|4{11}|5{11}|6{11}|7{11}|8{11}|9{11}|0{11}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var a = 0;\n var r;\n\n for (r = 0; r < 9; r++) {\n a += (10 - r) * parseInt(e.charAt(r), 10);\n }\n\n a = 11 - a % 11;\n\n if (a === 10 || a === 11) {\n a = 0;\n }\n\n if (\"\".concat(a) !== e.charAt(9)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var f = 0;\n\n for (r = 0; r < 10; r++) {\n f += (11 - r) * parseInt(e.charAt(r), 10);\n }\n\n f = 11 - f % 11;\n\n if (f === 10 || f === 11) {\n f = 0;\n }\n\n return {\n meta: {},\n valid: \"\".concat(f) === e.charAt(10)\n };\n }\n\n function t$i(t) {\n if (!/^756[.]{0,1}[0-9]{4}[.]{0,1}[0-9]{4}[.]{0,1}[0-9]{2}$/.test(t)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var e = t.replace(/\\D/g, \"\").substr(3);\n var r = e.length;\n var a = r === 8 ? [3, 1] : [1, 3];\n var n = 0;\n\n for (var _t = 0; _t < r - 1; _t++) {\n n += parseInt(e.charAt(_t), 10) * a[_t % 2];\n }\n\n n = 10 - n % 10;\n return {\n meta: {},\n valid: \"\".concat(n) === e.charAt(r - 1)\n };\n }\n\n function e$b(e) {\n if (!/^\\d{7,8}[-]{0,1}[0-9K]$/i.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var t = e.replace(/-/g, \"\");\n\n while (t.length < 9) {\n t = \"0\".concat(t);\n }\n\n var l = [3, 2, 7, 6, 5, 4, 3, 2];\n var a = 0;\n\n for (var _e = 0; _e < 8; _e++) {\n a += parseInt(t.charAt(_e), 10) * l[_e];\n }\n\n a = 11 - a % 11;\n var r = \"\".concat(a);\n\n if (a === 11) {\n r = \"0\";\n } else if (a === 10) {\n r = \"K\";\n }\n\n return {\n meta: {},\n valid: r === t.charAt(8).toUpperCase()\n };\n }\n\n function r$4(r) {\n var s = r.trim();\n\n if (!/^\\d{15}$/.test(s) && !/^\\d{17}[\\dXx]{1}$/.test(s)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var e = {\n 11: {\n 0: [0],\n 1: [[0, 9], [11, 17]],\n 2: [0, 28, 29]\n },\n 12: {\n 0: [0],\n 1: [[0, 16]],\n 2: [0, 21, 23, 25]\n },\n 13: {\n 0: [0],\n 1: [[0, 5], 7, 8, 21, [23, 33], [81, 85]],\n 2: [[0, 5], [7, 9], [23, 25], 27, 29, 30, 81, 83],\n 3: [[0, 4], [21, 24]],\n 4: [[0, 4], 6, 21, [23, 35], 81],\n 5: [[0, 3], [21, 35], 81, 82],\n 6: [[0, 4], [21, 38], [81, 84]],\n 7: [[0, 3], 5, 6, [21, 33]],\n 8: [[0, 4], [21, 28]],\n 9: [[0, 3], [21, 30], [81, 84]],\n 10: [[0, 3], [22, 26], 28, 81, 82],\n 11: [[0, 2], [21, 28], 81, 82]\n },\n 14: {\n 0: [0],\n 1: [0, 1, [5, 10], [21, 23], 81],\n 2: [[0, 3], 11, 12, [21, 27]],\n 3: [[0, 3], 11, 21, 22],\n 4: [[0, 2], 11, 21, [23, 31], 81],\n 5: [[0, 2], 21, 22, 24, 25, 81],\n 6: [[0, 3], [21, 24]],\n 7: [[0, 2], [21, 29], 81],\n 8: [[0, 2], [21, 30], 81, 82],\n 9: [[0, 2], [21, 32], 81],\n 10: [[0, 2], [21, 34], 81, 82],\n 11: [[0, 2], [21, 30], 81, 82],\n 23: [[0, 3], 22, 23, [25, 30], 32, 33]\n },\n 15: {\n 0: [0],\n 1: [[0, 5], [21, 25]],\n 2: [[0, 7], [21, 23]],\n 3: [[0, 4]],\n 4: [[0, 4], [21, 26], [28, 30]],\n 5: [[0, 2], [21, 26], 81],\n 6: [[0, 2], [21, 27]],\n 7: [[0, 3], [21, 27], [81, 85]],\n 8: [[0, 2], [21, 26]],\n 9: [[0, 2], [21, 29], 81],\n 22: [[0, 2], [21, 24]],\n 25: [[0, 2], [22, 31]],\n 26: [[0, 2], [24, 27], [29, 32], 34],\n 28: [0, 1, [22, 27]],\n 29: [0, [21, 23]]\n },\n 21: {\n 0: [0],\n 1: [[0, 6], [11, 14], [22, 24], 81],\n 2: [[0, 4], [11, 13], 24, [81, 83]],\n 3: [[0, 4], 11, 21, 23, 81],\n 4: [[0, 4], 11, [21, 23]],\n 5: [[0, 5], 21, 22],\n 6: [[0, 4], 24, 81, 82],\n 7: [[0, 3], 11, 26, 27, 81, 82],\n 8: [[0, 4], 11, 81, 82],\n 9: [[0, 5], 11, 21, 22],\n 10: [[0, 5], 11, 21, 81],\n 11: [[0, 3], 21, 22],\n 12: [[0, 2], 4, 21, 23, 24, 81, 82],\n 13: [[0, 3], 21, 22, 24, 81, 82],\n 14: [[0, 4], 21, 22, 81]\n },\n 22: {\n 0: [0],\n 1: [[0, 6], 12, 22, [81, 83]],\n 2: [[0, 4], 11, 21, [81, 84]],\n 3: [[0, 3], 22, 23, 81, 82],\n 4: [[0, 3], 21, 22],\n 5: [[0, 3], 21, 23, 24, 81, 82],\n 6: [[0, 2], 4, 5, [21, 23], 25, 81],\n 7: [[0, 2], [21, 24], 81],\n 8: [[0, 2], 21, 22, 81, 82],\n 24: [[0, 6], 24, 26]\n },\n 23: {\n 0: [0],\n 1: [[0, 12], 21, [23, 29], [81, 84]],\n 2: [[0, 8], 21, [23, 25], 27, [29, 31], 81],\n 3: [[0, 7], 21, 81, 82],\n 4: [[0, 7], 21, 22],\n 5: [[0, 3], 5, 6, [21, 24]],\n 6: [[0, 6], [21, 24]],\n 7: [[0, 16], 22, 81],\n 8: [[0, 5], 11, 22, 26, 28, 33, 81, 82],\n 9: [[0, 4], 21],\n 10: [[0, 5], 24, 25, 81, [83, 85]],\n 11: [[0, 2], 21, 23, 24, 81, 82],\n 12: [[0, 2], [21, 26], [81, 83]],\n 27: [[0, 4], [21, 23]]\n },\n 31: {\n 0: [0],\n 1: [0, 1, [3, 10], [12, 20]],\n 2: [0, 30]\n },\n 32: {\n 0: [0],\n 1: [[0, 7], 11, [13, 18], 24, 25],\n 2: [[0, 6], 11, 81, 82],\n 3: [[0, 5], 11, 12, [21, 24], 81, 82],\n 4: [[0, 2], 4, 5, 11, 12, 81, 82],\n 5: [[0, 9], [81, 85]],\n 6: [[0, 2], 11, 12, 21, 23, [81, 84]],\n 7: [0, 1, 3, 5, 6, [21, 24]],\n 8: [[0, 4], 11, 26, [29, 31]],\n 9: [[0, 3], [21, 25], 28, 81, 82],\n 10: [[0, 3], 11, 12, 23, 81, 84, 88],\n 11: [[0, 2], 11, 12, [81, 83]],\n 12: [[0, 4], [81, 84]],\n 13: [[0, 2], 11, [21, 24]]\n },\n 33: {\n 0: [0],\n 1: [[0, 6], [8, 10], 22, 27, 82, 83, 85],\n 2: [0, 1, [3, 6], 11, 12, 25, 26, [81, 83]],\n 3: [[0, 4], 22, 24, [26, 29], 81, 82],\n 4: [[0, 2], 11, 21, 24, [81, 83]],\n 5: [[0, 3], [21, 23]],\n 6: [[0, 2], 21, 24, [81, 83]],\n 7: [[0, 3], 23, 26, 27, [81, 84]],\n 8: [[0, 3], 22, 24, 25, 81],\n 9: [[0, 3], 21, 22],\n 10: [[0, 4], [21, 24], 81, 82],\n 11: [[0, 2], [21, 27], 81]\n },\n 34: {\n 0: [0],\n 1: [[0, 4], 11, [21, 24], 81],\n 2: [[0, 4], 7, 8, [21, 23], 25],\n 3: [[0, 4], 11, [21, 23]],\n 4: [[0, 6], 21],\n 5: [[0, 4], 6, [21, 23]],\n 6: [[0, 4], 21],\n 7: [[0, 3], 11, 21],\n 8: [[0, 3], 11, [22, 28], 81],\n 10: [[0, 4], [21, 24]],\n 11: [[0, 3], 22, [24, 26], 81, 82],\n 12: [[0, 4], 21, 22, 25, 26, 82],\n 13: [[0, 2], [21, 24]],\n 14: [[0, 2], [21, 24]],\n 15: [[0, 3], [21, 25]],\n 16: [[0, 2], [21, 23]],\n 17: [[0, 2], [21, 23]],\n 18: [[0, 2], [21, 25], 81]\n },\n 35: {\n 0: [0],\n 1: [[0, 5], 11, [21, 25], 28, 81, 82],\n 2: [[0, 6], [11, 13]],\n 3: [[0, 5], 22],\n 4: [[0, 3], 21, [23, 30], 81],\n 5: [[0, 5], 21, [24, 27], [81, 83]],\n 6: [[0, 3], [22, 29], 81],\n 7: [[0, 2], [21, 25], [81, 84]],\n 8: [[0, 2], [21, 25], 81],\n 9: [[0, 2], [21, 26], 81, 82]\n },\n 36: {\n 0: [0],\n 1: [[0, 5], 11, [21, 24]],\n 2: [[0, 3], 22, 81],\n 3: [[0, 2], 13, [21, 23]],\n 4: [[0, 3], 21, [23, 30], 81, 82],\n 5: [[0, 2], 21],\n 6: [[0, 2], 22, 81],\n 7: [[0, 2], [21, 35], 81, 82],\n 8: [[0, 3], [21, 30], 81],\n 9: [[0, 2], [21, 26], [81, 83]],\n 10: [[0, 2], [21, 30]],\n 11: [[0, 2], [21, 30], 81]\n },\n 37: {\n 0: [0],\n 1: [[0, 5], 12, 13, [24, 26], 81],\n 2: [[0, 3], 5, [11, 14], [81, 85]],\n 3: [[0, 6], [21, 23]],\n 4: [[0, 6], 81],\n 5: [[0, 3], [21, 23]],\n 6: [[0, 2], [11, 13], 34, [81, 87]],\n 7: [[0, 5], 24, 25, [81, 86]],\n 8: [[0, 2], 11, [26, 32], [81, 83]],\n 9: [[0, 3], 11, 21, 23, 82, 83],\n 10: [[0, 2], [81, 83]],\n 11: [[0, 3], 21, 22],\n 12: [[0, 3]],\n 13: [[0, 2], 11, 12, [21, 29]],\n 14: [[0, 2], [21, 28], 81, 82],\n 15: [[0, 2], [21, 26], 81],\n 16: [[0, 2], [21, 26]],\n 17: [[0, 2], [21, 28]]\n },\n 41: {\n 0: [0],\n 1: [[0, 6], 8, 22, [81, 85]],\n 2: [[0, 5], 11, [21, 25]],\n 3: [[0, 7], 11, [22, 29], 81],\n 4: [[0, 4], 11, [21, 23], 25, 81, 82],\n 5: [[0, 3], 5, 6, 22, 23, 26, 27, 81],\n 6: [[0, 3], 11, 21, 22],\n 7: [[0, 4], 11, 21, [24, 28], 81, 82],\n 8: [[0, 4], 11, [21, 23], 25, [81, 83]],\n 9: [[0, 2], 22, 23, [26, 28]],\n 10: [[0, 2], [23, 25], 81, 82],\n 11: [[0, 4], [21, 23]],\n 12: [[0, 2], 21, 22, 24, 81, 82],\n 13: [[0, 3], [21, 30], 81],\n 14: [[0, 3], [21, 26], 81],\n 15: [[0, 3], [21, 28]],\n 16: [[0, 2], [21, 28], 81],\n 17: [[0, 2], [21, 29]],\n 90: [0, 1]\n },\n 42: {\n 0: [0],\n 1: [[0, 7], [11, 17]],\n 2: [[0, 5], 22, 81],\n 3: [[0, 3], [21, 25], 81],\n 5: [[0, 6], [25, 29], [81, 83]],\n 6: [[0, 2], 6, 7, [24, 26], [82, 84]],\n 7: [[0, 4]],\n 8: [[0, 2], 4, 21, 22, 81],\n 9: [[0, 2], [21, 23], 81, 82, 84],\n 10: [[0, 3], [22, 24], 81, 83, 87],\n 11: [[0, 2], [21, 27], 81, 82],\n 12: [[0, 2], [21, 24], 81],\n 13: [[0, 3], 21, 81],\n 28: [[0, 2], 22, 23, [25, 28]],\n 90: [0, [4, 6], 21]\n },\n 43: {\n 0: [0],\n 1: [[0, 5], 11, 12, 21, 22, 24, 81],\n 2: [[0, 4], 11, 21, [23, 25], 81],\n 3: [[0, 2], 4, 21, 81, 82],\n 4: [0, 1, [5, 8], 12, [21, 24], 26, 81, 82],\n 5: [[0, 3], 11, [21, 25], [27, 29], 81],\n 6: [[0, 3], 11, 21, 23, 24, 26, 81, 82],\n 7: [[0, 3], [21, 26], 81],\n 8: [[0, 2], 11, 21, 22],\n 9: [[0, 3], [21, 23], 81],\n 10: [[0, 3], [21, 28], 81],\n 11: [[0, 3], [21, 29]],\n 12: [[0, 2], [21, 30], 81],\n 13: [[0, 2], 21, 22, 81, 82],\n 31: [0, 1, [22, 27], 30]\n },\n 44: {\n 0: [0],\n 1: [[0, 7], [11, 16], 83, 84],\n 2: [[0, 5], 21, 22, 24, 29, 32, 33, 81, 82],\n 3: [0, 1, [3, 8]],\n 4: [[0, 4]],\n 5: [0, 1, [6, 15], 23, 82, 83],\n 6: [0, 1, [4, 8]],\n 7: [0, 1, [3, 5], 81, [83, 85]],\n 8: [[0, 4], 11, 23, 25, [81, 83]],\n 9: [[0, 3], 23, [81, 83]],\n 12: [[0, 3], [23, 26], 83, 84],\n 13: [[0, 3], [22, 24], 81],\n 14: [[0, 2], [21, 24], 26, 27, 81],\n 15: [[0, 2], 21, 23, 81],\n 16: [[0, 2], [21, 25]],\n 17: [[0, 2], 21, 23, 81],\n 18: [[0, 3], 21, 23, [25, 27], 81, 82],\n 19: [0],\n 20: [0],\n 51: [[0, 3], 21, 22],\n 52: [[0, 3], 21, 22, 24, 81],\n 53: [[0, 2], [21, 23], 81]\n },\n 45: {\n 0: [0],\n 1: [[0, 9], [21, 27]],\n 2: [[0, 5], [21, 26]],\n 3: [[0, 5], 11, 12, [21, 32]],\n 4: [0, 1, [3, 6], 11, [21, 23], 81],\n 5: [[0, 3], 12, 21],\n 6: [[0, 3], 21, 81],\n 7: [[0, 3], 21, 22],\n 8: [[0, 4], 21, 81],\n 9: [[0, 3], [21, 24], 81],\n 10: [[0, 2], [21, 31]],\n 11: [[0, 2], [21, 23]],\n 12: [[0, 2], [21, 29], 81],\n 13: [[0, 2], [21, 24], 81],\n 14: [[0, 2], [21, 25], 81]\n },\n 46: {\n 0: [0],\n 1: [0, 1, [5, 8]],\n 2: [0, 1],\n 3: [0, [21, 23]],\n 90: [[0, 3], [5, 7], [21, 39]]\n },\n 50: {\n 0: [0],\n 1: [[0, 19]],\n 2: [0, [22, 38], [40, 43]],\n 3: [0, [81, 84]]\n },\n 51: {\n 0: [0],\n 1: [0, 1, [4, 8], [12, 15], [21, 24], 29, 31, 32, [81, 84]],\n 3: [[0, 4], 11, 21, 22],\n 4: [[0, 3], 11, 21, 22],\n 5: [[0, 4], 21, 22, 24, 25],\n 6: [0, 1, 3, 23, 26, [81, 83]],\n 7: [0, 1, 3, 4, [22, 27], 81],\n 8: [[0, 2], 11, 12, [21, 24]],\n 9: [[0, 4], [21, 23]],\n 10: [[0, 2], 11, 24, 25, 28],\n 11: [[0, 2], [11, 13], 23, 24, 26, 29, 32, 33, 81],\n 13: [[0, 4], [21, 25], 81],\n 14: [[0, 2], [21, 25]],\n 15: [[0, 3], [21, 29]],\n 16: [[0, 3], [21, 23], 81],\n 17: [[0, 3], [21, 25], 81],\n 18: [[0, 3], [21, 27]],\n 19: [[0, 3], [21, 23]],\n 20: [[0, 2], 21, 22, 81],\n 32: [0, [21, 33]],\n 33: [0, [21, 38]],\n 34: [0, 1, [22, 37]]\n },\n 52: {\n 0: [0],\n 1: [[0, 3], [11, 15], [21, 23], 81],\n 2: [0, 1, 3, 21, 22],\n 3: [[0, 3], [21, 30], 81, 82],\n 4: [[0, 2], [21, 25]],\n 5: [[0, 2], [21, 27]],\n 6: [[0, 3], [21, 28]],\n 22: [0, 1, [22, 30]],\n 23: [0, 1, [22, 28]],\n 24: [0, 1, [22, 28]],\n 26: [0, 1, [22, 36]],\n 27: [[0, 2], 22, 23, [25, 32]]\n },\n 53: {\n 0: [0],\n 1: [[0, 3], [11, 14], 21, 22, [24, 29], 81],\n 3: [[0, 2], [21, 26], 28, 81],\n 4: [[0, 2], [21, 28]],\n 5: [[0, 2], [21, 24]],\n 6: [[0, 2], [21, 30]],\n 7: [[0, 2], [21, 24]],\n 8: [[0, 2], [21, 29]],\n 9: [[0, 2], [21, 27]],\n 23: [0, 1, [22, 29], 31],\n 25: [[0, 4], [22, 32]],\n 26: [0, 1, [21, 28]],\n 27: [0, 1, [22, 30]],\n 28: [0, 1, 22, 23],\n 29: [0, 1, [22, 32]],\n 31: [0, 2, 3, [22, 24]],\n 34: [0, [21, 23]],\n 33: [0, 21, [23, 25]],\n 35: [0, [21, 28]]\n },\n 54: {\n 0: [0],\n 1: [[0, 2], [21, 27]],\n 21: [0, [21, 29], 32, 33],\n 22: [0, [21, 29], [31, 33]],\n 23: [0, 1, [22, 38]],\n 24: [0, [21, 31]],\n 25: [0, [21, 27]],\n 26: [0, [21, 27]]\n },\n 61: {\n 0: [0],\n 1: [[0, 4], [11, 16], 22, [24, 26]],\n 2: [[0, 4], 22],\n 3: [[0, 4], [21, 24], [26, 31]],\n 4: [[0, 4], [22, 31], 81],\n 5: [[0, 2], [21, 28], 81, 82],\n 6: [[0, 2], [21, 32]],\n 7: [[0, 2], [21, 30]],\n 8: [[0, 2], [21, 31]],\n 9: [[0, 2], [21, 29]],\n 10: [[0, 2], [21, 26]]\n },\n 62: {\n 0: [0],\n 1: [[0, 5], 11, [21, 23]],\n 2: [0, 1],\n 3: [[0, 2], 21],\n 4: [[0, 3], [21, 23]],\n 5: [[0, 3], [21, 25]],\n 6: [[0, 2], [21, 23]],\n 7: [[0, 2], [21, 25]],\n 8: [[0, 2], [21, 26]],\n 9: [[0, 2], [21, 24], 81, 82],\n 10: [[0, 2], [21, 27]],\n 11: [[0, 2], [21, 26]],\n 12: [[0, 2], [21, 28]],\n 24: [0, 21, [24, 29]],\n 26: [0, 21, [23, 30]],\n 29: [0, 1, [21, 27]],\n 30: [0, 1, [21, 27]]\n },\n 63: {\n 0: [0],\n 1: [[0, 5], [21, 23]],\n 2: [0, 2, [21, 25]],\n 21: [0, [21, 23], [26, 28]],\n 22: [0, [21, 24]],\n 23: [0, [21, 24]],\n 25: [0, [21, 25]],\n 26: [0, [21, 26]],\n 27: [0, 1, [21, 26]],\n 28: [[0, 2], [21, 23]]\n },\n 64: {\n 0: [0],\n 1: [0, 1, [4, 6], 21, 22, 81],\n 2: [[0, 3], 5, [21, 23]],\n 3: [[0, 3], [21, 24], 81],\n 4: [[0, 2], [21, 25]],\n 5: [[0, 2], 21, 22]\n },\n 65: {\n 0: [0],\n 1: [[0, 9], 21],\n 2: [[0, 5]],\n 21: [0, 1, 22, 23],\n 22: [0, 1, 22, 23],\n 23: [[0, 3], [23, 25], 27, 28],\n 28: [0, 1, [22, 29]],\n 29: [0, 1, [22, 29]],\n 30: [0, 1, [22, 24]],\n 31: [0, 1, [21, 31]],\n 32: [0, 1, [21, 27]],\n 40: [0, 2, 3, [21, 28]],\n 42: [[0, 2], 21, [23, 26]],\n 43: [0, 1, [21, 26]],\n 90: [[0, 4]],\n 27: [[0, 2], 22, 23]\n },\n 71: {\n 0: [0]\n },\n 81: {\n 0: [0]\n },\n 82: {\n 0: [0]\n }\n };\n var a = parseInt(s.substr(0, 2), 10);\n var n = parseInt(s.substr(2, 2), 10);\n var l = parseInt(s.substr(4, 2), 10);\n\n if (!e[a] || !e[a][n]) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var i = false;\n var u = e[a][n];\n var o;\n\n for (o = 0; o < u.length; o++) {\n if (Array.isArray(u[o]) && u[o][0] <= l && l <= u[o][1] || !Array.isArray(u[o]) && l === u[o]) {\n i = true;\n break;\n }\n }\n\n if (!i) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var f;\n\n if (s.length === 18) {\n f = s.substr(6, 8);\n } else {\n f = \"19\".concat(s.substr(6, 6));\n }\n\n var c = parseInt(f.substr(0, 4), 10);\n var p = parseInt(f.substr(4, 2), 10);\n var d = parseInt(f.substr(6, 2), 10);\n\n if (!t$9(c, p, d)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n if (s.length === 18) {\n var _t = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];\n var _r = 0;\n\n for (o = 0; o < 17; o++) {\n _r += parseInt(s.charAt(o), 10) * _t[o];\n }\n\n _r = (12 - _r % 11) % 11;\n\n var _e = s.charAt(17).toUpperCase() !== \"X\" ? parseInt(s.charAt(17), 10) : 10;\n\n return {\n meta: {},\n valid: _e === _r\n };\n }\n\n return {\n meta: {},\n valid: true\n };\n }\n\n function t$j(t) {\n var e = t.replace(/\\./g, \"\").replace(\"-\", \"\");\n\n if (!/^\\d{8,16}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = e.length;\n var a = [3, 7, 13, 17, 19, 23, 29, 37, 41, 43, 47, 53, 59, 67, 71];\n var l = 0;\n\n for (var _t = r - 2; _t >= 0; _t--) {\n l += parseInt(e.charAt(_t), 10) * a[_t];\n }\n\n l = l % 11;\n\n if (l >= 2) {\n l = 11 - l;\n }\n\n return {\n meta: {},\n valid: \"\".concat(l) === e.substr(r - 1)\n };\n }\n\n function e$c(e) {\n if (!/^\\d{9,10}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = 1900 + parseInt(e.substr(0, 2), 10);\n var s = parseInt(e.substr(2, 2), 10) % 50 % 20;\n var a = parseInt(e.substr(4, 2), 10);\n\n if (e.length === 9) {\n if (r >= 1980) {\n r -= 100;\n }\n\n if (r > 1953) {\n return {\n meta: {},\n valid: false\n };\n }\n } else if (r < 1954) {\n r += 100;\n }\n\n if (!t$9(r, s, a)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n if (e.length === 10) {\n var _t = parseInt(e.substr(0, 9), 10) % 11;\n\n if (r < 1985) {\n _t = _t % 10;\n }\n\n return {\n meta: {},\n valid: \"\".concat(_t) === e.substr(9, 1)\n };\n }\n\n return {\n meta: {},\n valid: true\n };\n }\n\n function e$d(e) {\n if (!/^[0-9]{6}[-]{0,1}[0-9]{4}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var a = e.replace(/-/g, \"\");\n var r = parseInt(a.substr(0, 2), 10);\n var s = parseInt(a.substr(2, 2), 10);\n var n = parseInt(a.substr(4, 2), 10);\n\n switch (true) {\n case \"5678\".indexOf(a.charAt(6)) !== -1 && n >= 58:\n n += 1800;\n break;\n\n case \"0123\".indexOf(a.charAt(6)) !== -1:\n case \"49\".indexOf(a.charAt(6)) !== -1 && n >= 37:\n n += 1900;\n break;\n\n default:\n n += 2e3;\n break;\n }\n\n return {\n meta: {},\n valid: t$9(n, s, r)\n };\n }\n\n function t$k(t) {\n var e = /^[0-9]{8}[-]{0,1}[A-HJ-NP-TV-Z]$/.test(t);\n var s = /^[XYZ][-]{0,1}[0-9]{7}[-]{0,1}[A-HJ-NP-TV-Z]$/.test(t);\n var n = /^[A-HNPQS][-]{0,1}[0-9]{7}[-]{0,1}[0-9A-J]$/.test(t);\n\n if (!e && !s && !n) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = t.replace(/-/g, \"\");\n var l;\n var a;\n var f = true;\n\n if (e || s) {\n a = \"DNI\";\n\n var _t = \"XYZ\".indexOf(r.charAt(0));\n\n if (_t !== -1) {\n r = _t + r.substr(1) + \"\";\n a = \"NIE\";\n }\n\n l = parseInt(r.substr(0, 8), 10);\n l = \"TRWAGMYFPDXBNJZSQVHLCKE\"[l % 23];\n return {\n meta: {\n type: a\n },\n valid: l === r.substr(8, 1)\n };\n } else {\n l = r.substr(1, 7);\n a = \"CIF\";\n var _t2 = r[0];\n\n var _e = r.substr(-1);\n\n var _s = 0;\n\n for (var _t3 = 0; _t3 < l.length; _t3++) {\n if (_t3 % 2 !== 0) {\n _s += parseInt(l[_t3], 10);\n } else {\n var _e2 = \"\" + parseInt(l[_t3], 10) * 2;\n\n _s += parseInt(_e2[0], 10);\n\n if (_e2.length === 2) {\n _s += parseInt(_e2[1], 10);\n }\n }\n }\n\n var _n = _s - Math.floor(_s / 10) * 10;\n\n if (_n !== 0) {\n _n = 10 - _n;\n }\n\n if (\"KQS\".indexOf(_t2) !== -1) {\n f = _e === \"JABCDEFGHI\"[_n];\n } else if (\"ABEH\".indexOf(_t2) !== -1) {\n f = _e === \"\" + _n;\n } else {\n f = _e === \"\" + _n || _e === \"JABCDEFGHI\"[_n];\n }\n\n return {\n meta: {\n type: a\n },\n valid: f\n };\n }\n }\n\n function s$3(s) {\n if (!/^[0-9]{6}[-+A][0-9]{3}[0-9ABCDEFHJKLMNPRSTUVWXY]$/.test(s)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = parseInt(s.substr(0, 2), 10);\n var a = parseInt(s.substr(2, 2), 10);\n var e = parseInt(s.substr(4, 2), 10);\n var n = {\n \"+\": 1800,\n \"-\": 1900,\n A: 2e3\n };\n e = n[s.charAt(6)] + e;\n\n if (!t$9(e, a, r)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var u = parseInt(s.substr(7, 3), 10);\n\n if (u < 2) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var i = parseInt(s.substr(0, 6) + s.substr(7, 3) + \"\", 10);\n return {\n meta: {},\n valid: \"0123456789ABCDEFHJKLMNPRSTUVWXY\".charAt(i % 31) === s.charAt(10)\n };\n }\n\n function t$l(t) {\n var s = t.toUpperCase();\n\n if (!/^(1|2)\\d{2}\\d{2}(\\d{2}|\\d[A-Z]|\\d{3})\\d{2,3}\\d{3}\\d{2}$/.test(s)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var e = s.substr(5, 2);\n\n switch (true) {\n case /^\\d{2}$/.test(e):\n s = t;\n break;\n\n case e === \"2A\":\n s = \"\".concat(t.substr(0, 5), \"19\").concat(t.substr(7));\n break;\n\n case e === \"2B\":\n s = \"\".concat(t.substr(0, 5), \"18\").concat(t.substr(7));\n break;\n\n default:\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = 97 - parseInt(s.substr(0, 13), 10) % 97;\n var a = r < 10 ? \"0\".concat(r) : \"\".concat(r);\n return {\n meta: {},\n valid: a === s.substr(13)\n };\n }\n\n function t$m(t) {\n var e = t.toUpperCase();\n\n if (!/^[A-MP-Z]{1,2}[0-9]{6}[0-9A]$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var s = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n var n = e.charAt(0);\n var r = e.charAt(1);\n var a = 0;\n var c = e;\n\n if (/^[A-Z]$/.test(r)) {\n a += 9 * (10 + s.indexOf(n));\n a += 8 * (10 + s.indexOf(r));\n c = e.substr(2);\n } else {\n a += 9 * 36;\n a += 8 * (10 + s.indexOf(n));\n c = e.substr(1);\n }\n\n var o = c.length;\n\n for (var _t = 0; _t < o - 1; _t++) {\n a += (7 - _t) * parseInt(c.charAt(_t), 10);\n }\n\n var f = a % 11;\n var l = f === 0 ? \"0\" : 11 - f === 10 ? \"A\" : \"\".concat(11 - f);\n return {\n meta: {},\n valid: l === c.charAt(o - 1)\n };\n }\n\n function o$3(o) {\n return {\n meta: {},\n valid: /^[0-9]{11}$/.test(o) && t$1(o)\n };\n }\n\n function e$e(e) {\n if (!/^[2-9]\\d{11}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = e.split(\"\").map(function (t) {\n return parseInt(t, 10);\n });\n return {\n meta: {},\n valid: t$3(r)\n };\n }\n\n function t$n(t) {\n if (!/^\\d{7}[A-W][AHWTX]?$/.test(t)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = function r(t) {\n var r = t;\n\n while (r.length < 7) {\n r = \"0\".concat(r);\n }\n\n var e = \"WABCDEFGHIJKLMNOPQRSTUV\";\n var s = 0;\n\n for (var _t = 0; _t < 7; _t++) {\n s += parseInt(r.charAt(_t), 10) * (8 - _t);\n }\n\n s += 9 * e.indexOf(r.substr(7));\n return e[s % 23];\n };\n\n var e = t.length === 9 && (\"A\" === t.charAt(8) || \"H\" === t.charAt(8)) ? t.charAt(7) === r(t.substr(0, 7) + t.substr(8) + \"\") : t.charAt(7) === r(t.substr(0, 7));\n return {\n meta: {},\n valid: e\n };\n }\n\n function e$f(e) {\n if (!/^\\d{1,9}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n return {\n meta: {},\n valid: t(e)\n };\n }\n\n function e$g(e) {\n if (!/^[0-9]{6}[-]{0,1}[0-9]{4}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = e.replace(/-/g, \"\");\n var s = parseInt(r.substr(0, 2), 10);\n var a = parseInt(r.substr(2, 2), 10);\n var n = parseInt(r.substr(4, 2), 10);\n var l = parseInt(r.charAt(9), 10);\n n = l === 9 ? 1900 + n : (20 + l) * 100 + n;\n\n if (!t$9(n, a, s, true)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var c = [3, 2, 7, 6, 5, 4, 3, 2];\n var i = 0;\n\n for (var _t = 0; _t < 8; _t++) {\n i += parseInt(r.charAt(_t), 10) * c[_t];\n }\n\n i = 11 - i % 11;\n return {\n meta: {},\n valid: \"\".concat(i) === r.charAt(8)\n };\n }\n\n function e$h(e) {\n var a = e.replace(\"-\", \"\");\n\n if (!/^\\d{13}$/.test(a)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var s = a.charAt(6);\n var r = parseInt(a.substr(0, 2), 10);\n var c = parseInt(a.substr(2, 2), 10);\n var n = parseInt(a.substr(4, 2), 10);\n\n switch (s) {\n case \"1\":\n case \"2\":\n case \"5\":\n case \"6\":\n r += 1900;\n break;\n\n case \"3\":\n case \"4\":\n case \"7\":\n case \"8\":\n r += 2e3;\n break;\n\n default:\n r += 1800;\n break;\n }\n\n if (!t$9(r, c, n)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var l = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5];\n var o = a.length;\n var i = 0;\n\n for (var _t = 0; _t < o - 1; _t++) {\n i += l[_t] * parseInt(a.charAt(_t), 10);\n }\n\n var u = (11 - i % 11) % 10;\n return {\n meta: {},\n valid: \"\".concat(u) === a.charAt(o - 1)\n };\n }\n\n function r$5(r) {\n if (!/^[0-9]{11}$/.test(r)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var e = parseInt(r.charAt(0), 10);\n var a = parseInt(r.substr(1, 2), 10);\n var s = parseInt(r.substr(3, 2), 10);\n var n = parseInt(r.substr(5, 2), 10);\n var i = e % 2 === 0 ? 17 + e / 2 : 17 + (e + 1) / 2;\n a = i * 100 + a;\n\n if (!t$9(a, s, n, true)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1];\n var f = 0;\n var u;\n\n for (u = 0; u < 10; u++) {\n f += parseInt(r.charAt(u), 10) * l[u];\n }\n\n f = f % 11;\n\n if (f !== 10) {\n return {\n meta: {},\n valid: \"\".concat(f) === r.charAt(10)\n };\n }\n\n f = 0;\n l = [3, 4, 5, 6, 7, 8, 9, 1, 2, 3];\n\n for (u = 0; u < 10; u++) {\n f += parseInt(r.charAt(u), 10) * l[u];\n }\n\n f = f % 11;\n\n if (f === 10) {\n f = 0;\n }\n\n return {\n meta: {},\n valid: \"\".concat(f) === r.charAt(10)\n };\n }\n\n function e$i(e) {\n if (!/^[0-9]{6}[-]{0,1}[0-9]{5}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = e.replace(/\\D/g, \"\");\n var a = parseInt(r.substr(0, 2), 10);\n var s = parseInt(r.substr(2, 2), 10);\n var n = parseInt(r.substr(4, 2), 10);\n n = n + 1800 + parseInt(r.charAt(6), 10) * 100;\n\n if (!t$9(n, s, a, true)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var l = 0;\n var i = [10, 5, 8, 4, 2, 1, 6, 3, 7, 9];\n\n for (var _t = 0; _t < 10; _t++) {\n l += parseInt(r.charAt(_t), 10) * i[_t];\n }\n\n l = (l + 1) % 11 % 10;\n return {\n meta: {},\n valid: \"\".concat(l) === r.charAt(10)\n };\n }\n\n function r$6(r) {\n return {\n meta: {},\n valid: t$g(r, \"ME\")\n };\n }\n\n function r$7(r) {\n return {\n meta: {},\n valid: t$g(r, \"MK\")\n };\n }\n\n function O(O) {\n var t = O.toUpperCase();\n\n if (!/^[A-Z]{4}\\d{6}[A-Z]{6}[0-9A-Z]\\d$/.test(t)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var C = [\"BACA\", \"BAKA\", \"BUEI\", \"BUEY\", \"CACA\", \"CACO\", \"CAGA\", \"CAGO\", \"CAKA\", \"CAKO\", \"COGE\", \"COGI\", \"COJA\", \"COJE\", \"COJI\", \"COJO\", \"COLA\", \"CULO\", \"FALO\", \"FETO\", \"GETA\", \"GUEI\", \"GUEY\", \"JETA\", \"JOTO\", \"KACA\", \"KACO\", \"KAGA\", \"KAGO\", \"KAKA\", \"KAKO\", \"KOGE\", \"KOGI\", \"KOJA\", \"KOJE\", \"KOJI\", \"KOJO\", \"KOLA\", \"KULO\", \"LILO\", \"LOCA\", \"LOCO\", \"LOKA\", \"LOKO\", \"MAME\", \"MAMO\", \"MEAR\", \"MEAS\", \"MEON\", \"MIAR\", \"MION\", \"MOCO\", \"MOKO\", \"MULA\", \"MULO\", \"NACA\", \"NACO\", \"PEDA\", \"PEDO\", \"PENE\", \"PIPI\", \"PITO\", \"POPO\", \"PUTA\", \"PUTO\", \"QULO\", \"RATA\", \"ROBA\", \"ROBE\", \"ROBO\", \"RUIN\", \"SENO\", \"TETA\", \"VACA\", \"VAGA\", \"VAGO\", \"VAKA\", \"VUEI\", \"VUEY\", \"WUEI\", \"WUEY\"];\n var e = t.substr(0, 4);\n\n if (C.indexOf(e) >= 0) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var s = parseInt(t.substr(4, 2), 10);\n var r = parseInt(t.substr(6, 2), 10);\n var a = parseInt(t.substr(6, 2), 10);\n\n if (/^[0-9]$/.test(t.charAt(16))) {\n s += 1900;\n } else {\n s += 2e3;\n }\n\n if (!t$9(s, r, a)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var E = t.charAt(10);\n\n if (E !== \"H\" && E !== \"M\") {\n return {\n meta: {},\n valid: false\n };\n }\n\n var n = t.substr(11, 2);\n var K = [\"AS\", \"BC\", \"BS\", \"CC\", \"CH\", \"CL\", \"CM\", \"CS\", \"DF\", \"DG\", \"GR\", \"GT\", \"HG\", \"JC\", \"MC\", \"MN\", \"MS\", \"NE\", \"NL\", \"NT\", \"OC\", \"PL\", \"QR\", \"QT\", \"SL\", \"SP\", \"SR\", \"TC\", \"TL\", \"TS\", \"VZ\", \"YN\", \"ZS\"];\n\n if (K.indexOf(n) === -1) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var i = \"0123456789ABCDEFGHIJKLMN&OPQRSTUVWXYZ\";\n var L = 0;\n var l = t.length;\n\n for (var _A = 0; _A < l - 1; _A++) {\n L += (18 - _A) * i.indexOf(t.charAt(_A));\n }\n\n L = (10 - L % 10) % 10;\n return {\n meta: {},\n valid: \"\".concat(L) === t.charAt(l - 1)\n };\n }\n\n function s$4(s) {\n if (!/^\\d{12}$/.test(s)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var e = parseInt(s.substr(0, 2), 10);\n var r = parseInt(s.substr(2, 2), 10);\n var a = parseInt(s.substr(4, 2), 10);\n\n if (!t$9(e + 1900, r, a) && !t$9(e + 2e3, r, a)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var n = s.substr(6, 2);\n var i = [\"17\", \"18\", \"19\", \"20\", \"69\", \"70\", \"73\", \"80\", \"81\", \"94\", \"95\", \"96\", \"97\"];\n return {\n meta: {},\n valid: i.indexOf(n) === -1\n };\n }\n\n function e$j(e) {\n if (e.length < 8) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var t = e;\n\n if (t.length === 8) {\n t = \"0\".concat(t);\n }\n\n if (!/^[0-9]{4}[.]{0,1}[0-9]{2}[.]{0,1}[0-9]{3}$/.test(t)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n t = t.replace(/\\./g, \"\");\n\n if (parseInt(t, 10) === 0) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var a = 0;\n var l = t.length;\n\n for (var _e = 0; _e < l - 1; _e++) {\n a += (9 - _e) * parseInt(t.charAt(_e), 10);\n }\n\n a = a % 11;\n\n if (a === 10) {\n a = 0;\n }\n\n return {\n meta: {},\n valid: \"\".concat(a) === t.charAt(l - 1)\n };\n }\n\n function t$o(t) {\n if (!/^\\d{11}$/.test(t)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = function r(t) {\n var r = [3, 7, 6, 1, 8, 9, 4, 5, 2];\n var e = 0;\n\n for (var n = 0; n < 9; n++) {\n e += r[n] * parseInt(t.charAt(n), 10);\n }\n\n return 11 - e % 11;\n };\n\n var e = function e(t) {\n var r = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];\n var e = 0;\n\n for (var n = 0; n < 10; n++) {\n e += r[n] * parseInt(t.charAt(n), 10);\n }\n\n return 11 - e % 11;\n };\n\n return {\n meta: {},\n valid: \"\".concat(r(t)) === t.substr(-2, 1) && \"\".concat(e(t)) === t.substr(-1)\n };\n }\n\n function t$p(t) {\n if (!/^\\d{8}[0-9A-Z]*$/.test(t)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n if (t.length === 8) {\n return {\n meta: {},\n valid: true\n };\n }\n\n var e = [3, 2, 7, 6, 5, 4, 3, 2];\n var r = 0;\n\n for (var _a = 0; _a < 8; _a++) {\n r += e[_a] * parseInt(t.charAt(_a), 10);\n }\n\n var a = r % 11;\n var n = [6, 5, 4, 3, 2, 1, 1, 0, 9, 8, 7][a];\n var c = \"KJIHGFEDCBA\".charAt(a);\n return {\n meta: {},\n valid: t.charAt(8) === \"\".concat(n) || t.charAt(8) === c\n };\n }\n\n function t$q(t) {\n if (!/^[0-9]{11}$/.test(t)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var e = 0;\n var a = t.length;\n var r = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3, 7];\n\n for (var n = 0; n < a - 1; n++) {\n e += r[n] * parseInt(t.charAt(n), 10);\n }\n\n e = e % 10;\n\n if (e === 0) {\n e = 10;\n }\n\n e = 10 - e;\n return {\n meta: {},\n valid: \"\".concat(e) === t.charAt(a - 1)\n };\n }\n\n function e$k(e) {\n if (!/^[0-9]{13}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var a = parseInt(e.charAt(0), 10);\n\n if (a === 0 || a === 7 || a === 8) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = parseInt(e.substr(1, 2), 10);\n var s = parseInt(e.substr(3, 2), 10);\n var n = parseInt(e.substr(5, 2), 10);\n var i = {\n 1: 1900,\n 2: 1900,\n 3: 1800,\n 4: 1800,\n 5: 2e3,\n 6: 2e3\n };\n\n if (n > 31 && s > 12) {\n return {\n meta: {},\n valid: false\n };\n }\n\n if (a !== 9) {\n r = i[a + \"\"] + r;\n\n if (!t$9(r, s, n)) {\n return {\n meta: {},\n valid: false\n };\n }\n }\n\n var l = 0;\n var f = [2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9];\n var o = e.length;\n\n for (var _t = 0; _t < o - 1; _t++) {\n l += parseInt(e.charAt(_t), 10) * f[_t];\n }\n\n l = l % 11;\n\n if (l === 10) {\n l = 1;\n }\n\n return {\n meta: {},\n valid: \"\".concat(l) === e.charAt(o - 1)\n };\n }\n\n function r$8(r) {\n return {\n meta: {},\n valid: t$g(r, \"RS\")\n };\n }\n\n function r$9(r) {\n if (!/^[0-9]{10}$/.test(r) && !/^[0-9]{6}[-|+][0-9]{4}$/.test(r)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var e = r.replace(/[^0-9]/g, \"\");\n var a = parseInt(e.substr(0, 2), 10) + 1900;\n var n = parseInt(e.substr(2, 2), 10);\n var i = parseInt(e.substr(4, 2), 10);\n\n if (!t$9(a, n, i)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n return {\n meta: {},\n valid: t(e)\n };\n }\n\n function r$a(r) {\n return {\n meta: {},\n valid: t$g(r, \"SI\")\n };\n }\n\n function t$r(t) {\n return {\n meta: {},\n valid: /^\\d{5}$/.test(t)\n };\n }\n\n function t$s(t) {\n if (t.length !== 13) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var e = 0;\n\n for (var a = 0; a < 12; a++) {\n e += parseInt(t.charAt(a), 10) * (13 - a);\n }\n\n return {\n meta: {},\n valid: (11 - e % 11) % 10 === parseInt(t.charAt(12), 10)\n };\n }\n\n function t$t(t) {\n if (t.length !== 11) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var e = 0;\n\n for (var a = 0; a < 10; a++) {\n e += parseInt(t.charAt(a), 10);\n }\n\n return {\n meta: {},\n valid: e % 10 === parseInt(t.charAt(10), 10)\n };\n }\n\n function t$u(t) {\n var e = t.toUpperCase();\n\n if (!/^[A-Z][12][0-9]{8}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var a = e.length;\n var n = \"ABCDEFGHJKLMNPQRSTUVXYWZIO\";\n var r = n.indexOf(e.charAt(0)) + 10;\n var o = Math.floor(r / 10) + r % 10 * (a - 1);\n var s = 0;\n\n for (var _t = 1; _t < a - 1; _t++) {\n s += parseInt(e.charAt(_t), 10) * (a - 1 - _t);\n }\n\n return {\n meta: {},\n valid: (o + s + parseInt(e.charAt(a - 1), 10)) % 10 === 0\n };\n }\n\n function t$v(t) {\n if (!/^\\d{8}$/.test(t)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var e = [2, 9, 8, 7, 6, 3, 4];\n var a = 0;\n\n for (var r = 0; r < 7; r++) {\n a += parseInt(t.charAt(r), 10) * e[r];\n }\n\n a = a % 10;\n\n if (a > 0) {\n a = 10 - a;\n }\n\n return {\n meta: {},\n valid: \"\".concat(a) === t.charAt(7)\n };\n }\n\n function r$b(r) {\n if (!/^[0-9]{10}[0|1][8|9][0-9]$/.test(r)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var s = parseInt(r.substr(0, 2), 10);\n var a = new Date().getFullYear() % 100;\n var l = parseInt(r.substr(2, 2), 10);\n var n = parseInt(r.substr(4, 2), 10);\n s = s >= a ? s + 1900 : s + 2e3;\n\n if (!t$9(s, l, n)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n return {\n meta: {},\n valid: t(r)\n };\n }\n\n function F() {\n var F = [\"AR\", \"BA\", \"BG\", \"BR\", \"CH\", \"CL\", \"CN\", \"CO\", \"CZ\", \"DK\", \"EE\", \"ES\", \"FI\", \"FR\", \"HK\", \"HR\", \"ID\", \"IE\", \"IL\", \"IS\", \"KR\", \"LT\", \"LV\", \"ME\", \"MK\", \"MX\", \"MY\", \"NL\", \"NO\", \"PE\", \"PL\", \"RO\", \"RS\", \"SE\", \"SI\", \"SK\", \"SM\", \"TH\", \"TR\", \"TW\", \"UY\", \"ZA\"];\n return {\n validate: function validate(P) {\n if (P.value === \"\") {\n return {\n valid: true\n };\n }\n\n var Y = Object.assign({}, {\n message: \"\"\n }, P.options);\n var Z = P.value.substr(0, 2);\n\n if (\"function\" === typeof Y.country) {\n Z = Y.country.call(this);\n } else {\n Z = Y.country;\n }\n\n if (F.indexOf(Z) === -1) {\n return {\n valid: true\n };\n }\n\n var G = {\n meta: {},\n valid: true\n };\n\n switch (Z.toLowerCase()) {\n case \"ar\":\n G = t$f(P.value);\n break;\n\n case \"ba\":\n G = r$3(P.value);\n break;\n\n case \"bg\":\n G = e$a(P.value);\n break;\n\n case \"br\":\n G = t$h(P.value);\n break;\n\n case \"ch\":\n G = t$i(P.value);\n break;\n\n case \"cl\":\n G = e$b(P.value);\n break;\n\n case \"cn\":\n G = r$4(P.value);\n break;\n\n case \"co\":\n G = t$j(P.value);\n break;\n\n case \"cz\":\n G = e$c(P.value);\n break;\n\n case \"dk\":\n G = e$d(P.value);\n break;\n\n case \"ee\":\n G = r$5(P.value);\n break;\n\n case \"es\":\n G = t$k(P.value);\n break;\n\n case \"fi\":\n G = s$3(P.value);\n break;\n\n case \"fr\":\n G = t$l(P.value);\n break;\n\n case \"hk\":\n G = t$m(P.value);\n break;\n\n case \"hr\":\n G = o$3(P.value);\n break;\n\n case \"id\":\n G = e$e(P.value);\n break;\n\n case \"ie\":\n G = t$n(P.value);\n break;\n\n case \"il\":\n G = e$f(P.value);\n break;\n\n case \"is\":\n G = e$g(P.value);\n break;\n\n case \"kr\":\n G = e$h(P.value);\n break;\n\n case \"lt\":\n G = r$5(P.value);\n break;\n\n case \"lv\":\n G = e$i(P.value);\n break;\n\n case \"me\":\n G = r$6(P.value);\n break;\n\n case \"mk\":\n G = r$7(P.value);\n break;\n\n case \"mx\":\n G = O(P.value);\n break;\n\n case \"my\":\n G = s$4(P.value);\n break;\n\n case \"nl\":\n G = e$j(P.value);\n break;\n\n case \"no\":\n G = t$o(P.value);\n break;\n\n case \"pe\":\n G = t$p(P.value);\n break;\n\n case \"pl\":\n G = t$q(P.value);\n break;\n\n case \"ro\":\n G = e$k(P.value);\n break;\n\n case \"rs\":\n G = r$8(P.value);\n break;\n\n case \"se\":\n G = r$9(P.value);\n break;\n\n case \"si\":\n G = r$a(P.value);\n break;\n\n case \"sk\":\n G = e$c(P.value);\n break;\n\n case \"sm\":\n G = t$r(P.value);\n break;\n\n case \"th\":\n G = t$s(P.value);\n break;\n\n case \"tr\":\n G = t$t(P.value);\n break;\n\n case \"tw\":\n G = t$u(P.value);\n break;\n\n case \"uy\":\n G = t$v(P.value);\n break;\n\n case \"za\":\n G = r$b(P.value);\n break;\n }\n\n var V = r(P.l10n ? Y.message || P.l10n.id.country : Y.message, P.l10n ? P.l10n.id.countries[Z.toUpperCase()] : Z.toUpperCase());\n return Object.assign({}, {\n message: V\n }, G);\n }\n };\n }\n\n function t$w() {\n return {\n validate: function validate(t$1) {\n if (t$1.value === \"\") {\n return {\n valid: true\n };\n }\n\n switch (true) {\n case /^\\d{15}$/.test(t$1.value):\n case /^\\d{2}-\\d{6}-\\d{6}-\\d{1}$/.test(t$1.value):\n case /^\\d{2}\\s\\d{6}\\s\\d{6}\\s\\d{1}$/.test(t$1.value):\n return {\n valid: t(t$1.value.replace(/[^0-9]/g, \"\"))\n };\n\n case /^\\d{14}$/.test(t$1.value):\n case /^\\d{16}$/.test(t$1.value):\n case /^\\d{2}-\\d{6}-\\d{6}(|-\\d{2})$/.test(t$1.value):\n case /^\\d{2}\\s\\d{6}\\s\\d{6}(|\\s\\d{2})$/.test(t$1.value):\n return {\n valid: true\n };\n\n default:\n return {\n valid: false\n };\n }\n }\n };\n }\n\n function e$l() {\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n valid: true\n };\n }\n\n if (!/^IMO \\d{7}$/i.test(e.value)) {\n return {\n valid: false\n };\n }\n\n var t = e.value.replace(/^.*(\\d{7})$/, \"$1\");\n var r = 0;\n\n for (var _e = 6; _e >= 1; _e--) {\n r += parseInt(t.slice(6 - _e, -_e), 10) * (_e + 1);\n }\n\n return {\n valid: r % 10 === parseInt(t.charAt(6), 10)\n };\n }\n };\n }\n\n function e$m() {\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n meta: {\n type: null\n },\n valid: true\n };\n }\n\n var t;\n\n switch (true) {\n case /^\\d{9}[\\dX]$/.test(e.value):\n case e.value.length === 13 && /^(\\d+)-(\\d+)-(\\d+)-([\\dX])$/.test(e.value):\n case e.value.length === 13 && /^(\\d+)\\s(\\d+)\\s(\\d+)\\s([\\dX])$/.test(e.value):\n t = \"ISBN10\";\n break;\n\n case /^(978|979)\\d{9}[\\dX]$/.test(e.value):\n case e.value.length === 17 && /^(978|979)-(\\d+)-(\\d+)-(\\d+)-([\\dX])$/.test(e.value):\n case e.value.length === 17 && /^(978|979)\\s(\\d+)\\s(\\d+)\\s(\\d+)\\s([\\dX])$/.test(e.value):\n t = \"ISBN13\";\n break;\n\n default:\n return {\n meta: {\n type: null\n },\n valid: false\n };\n }\n\n var a = e.value.replace(/[^0-9X]/gi, \"\").split(\"\");\n var l = a.length;\n var s = 0;\n var d;\n var u;\n\n switch (t) {\n case \"ISBN10\":\n s = 0;\n\n for (d = 0; d < l - 1; d++) {\n s += parseInt(a[d], 10) * (10 - d);\n }\n\n u = 11 - s % 11;\n\n if (u === 11) {\n u = 0;\n } else if (u === 10) {\n u = \"X\";\n }\n\n return {\n meta: {\n type: t\n },\n valid: \"\".concat(u) === a[l - 1]\n };\n\n case \"ISBN13\":\n s = 0;\n\n for (d = 0; d < l - 1; d++) {\n s += d % 2 === 0 ? parseInt(a[d], 10) : parseInt(a[d], 10) * 3;\n }\n\n u = 10 - s % 10;\n\n if (u === 10) {\n u = \"0\";\n }\n\n return {\n meta: {\n type: t\n },\n valid: \"\".concat(u) === a[l - 1]\n };\n }\n }\n };\n }\n\n function M() {\n var M = \"AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|\" + \"BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|\" + \"SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|\" + \"IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|\" + \"MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|\" + \"PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|\" + \"SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|\" + \"YE|ZM|ZW\";\n return {\n validate: function validate(t) {\n if (t.value === \"\") {\n return {\n valid: true\n };\n }\n\n var S = t.value.toUpperCase();\n var A = new RegExp(\"^(\" + M + \")[0-9A-Z]{10}$\");\n\n if (!A.test(t.value)) {\n return {\n valid: false\n };\n }\n\n var G = S.length;\n var C = \"\";\n var T;\n\n for (T = 0; T < G - 1; T++) {\n var _M = S.charCodeAt(T);\n\n C += _M > 57 ? (_M - 55).toString() : S.charAt(T);\n }\n\n var e = \"\";\n var B = C.length;\n var E = B % 2 !== 0 ? 0 : 1;\n\n for (T = 0; T < B; T++) {\n e += parseInt(C[T], 10) * (T % 2 === E ? 2 : 1) + \"\";\n }\n\n var N = 0;\n\n for (T = 0; T < e.length; T++) {\n N += parseInt(e.charAt(T), 10);\n }\n\n N = (10 - N % 10) % 10;\n return {\n valid: \"\".concat(N) === S.charAt(G - 1)\n };\n }\n };\n }\n\n function e$n() {\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n meta: null,\n valid: true\n };\n }\n\n var t;\n\n switch (true) {\n case /^M\\d{9}$/.test(e.value):\n case /^M-\\d{4}-\\d{4}-\\d{1}$/.test(e.value):\n case /^M\\s\\d{4}\\s\\d{4}\\s\\d{1}$/.test(e.value):\n t = \"ISMN10\";\n break;\n\n case /^9790\\d{9}$/.test(e.value):\n case /^979-0-\\d{4}-\\d{4}-\\d{1}$/.test(e.value):\n case /^979\\s0\\s\\d{4}\\s\\d{4}\\s\\d{1}$/.test(e.value):\n t = \"ISMN13\";\n break;\n\n default:\n return {\n meta: null,\n valid: false\n };\n }\n\n var a = e.value;\n\n if (\"ISMN10\" === t) {\n a = \"9790\".concat(a.substr(1));\n }\n\n a = a.replace(/[^0-9]/gi, \"\");\n var s = 0;\n var l = a.length;\n var d = [1, 3];\n\n for (var _e = 0; _e < l - 1; _e++) {\n s += parseInt(a.charAt(_e), 10) * d[_e % 2];\n }\n\n s = (10 - s % 10) % 10;\n return {\n meta: {\n type: t\n },\n valid: \"\".concat(s) === a.charAt(l - 1)\n };\n }\n };\n }\n\n function e$o() {\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n valid: true\n };\n }\n\n if (!/^\\d{4}-\\d{3}[\\dX]$/.test(e.value)) {\n return {\n valid: false\n };\n }\n\n var t = e.value.replace(/[^0-9X]/gi, \"\").split(\"\");\n var l = t.length;\n var r = 0;\n\n if (t[7] === \"X\") {\n t[7] = \"10\";\n }\n\n for (var _e = 0; _e < l; _e++) {\n r += parseInt(t[_e], 10) * (8 - _e);\n }\n\n return {\n valid: r % 11 === 0\n };\n }\n };\n }\n\n function a$6() {\n return {\n validate: function validate(a) {\n return {\n valid: a.value === \"\" || /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/.test(a.value) || /^([0-9A-Fa-f]{4}\\.){2}([0-9A-Fa-f]{4})$/.test(a.value)\n };\n }\n };\n }\n\n function e$p() {\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n valid: true\n };\n }\n\n var r = e.value;\n\n if (/^[0-9A-F]{15}$/i.test(r) || /^[0-9A-F]{2}[- ][0-9A-F]{6}[- ][0-9A-F]{6}[- ][0-9A-F]$/i.test(r) || /^\\d{19}$/.test(r) || /^\\d{5}[- ]\\d{5}[- ]\\d{4}[- ]\\d{4}[- ]\\d$/.test(r)) {\n var _e = r.charAt(r.length - 1).toUpperCase();\n\n r = r.replace(/[- ]/g, \"\");\n\n if (r.match(/^\\d*$/i)) {\n return {\n valid: t(r)\n };\n }\n\n r = r.slice(0, -1);\n var a = \"\";\n var i;\n\n for (i = 1; i <= 13; i += 2) {\n a += (parseInt(r.charAt(i), 16) * 2).toString(16);\n }\n\n var l = 0;\n\n for (i = 0; i < a.length; i++) {\n l += parseInt(a.charAt(i), 16);\n }\n\n return {\n valid: l % 10 === 0 ? _e === \"0\" : _e === ((Math.floor((l + 10) / 10) * 10 - l) * 2).toString(16).toUpperCase()\n };\n }\n\n if (/^[0-9A-F]{14}$/i.test(r) || /^[0-9A-F]{2}[- ][0-9A-F]{6}[- ][0-9A-F]{6}$/i.test(r) || /^\\d{18}$/.test(r) || /^\\d{5}[- ]\\d{5}[- ]\\d{4}[- ]\\d{4}$/.test(r)) {\n return {\n valid: true\n };\n }\n\n return {\n valid: false\n };\n }\n };\n }\n\n function e$q() {\n var e = [\"AE\", \"BG\", \"BR\", \"CN\", \"CZ\", \"DE\", \"DK\", \"ES\", \"FR\", \"GB\", \"IN\", \"MA\", \"NL\", \"PK\", \"RO\", \"RU\", \"SK\", \"TH\", \"US\", \"VE\"];\n return {\n validate: function validate(t) {\n if (t.value === \"\") {\n return {\n valid: true\n };\n }\n\n var a = Object.assign({}, {\n message: \"\"\n }, t.options);\n var d = t.value.trim();\n var r$1 = d.substr(0, 2);\n\n if (\"function\" === typeof a.country) {\n r$1 = a.country.call(this);\n } else {\n r$1 = a.country;\n }\n\n if (!r$1 || e.indexOf(r$1.toUpperCase()) === -1) {\n return {\n valid: true\n };\n }\n\n var c = true;\n\n switch (r$1.toUpperCase()) {\n case \"AE\":\n c = /^(((\\+|00)?971[\\s.-]?(\\(0\\)[\\s.-]?)?|0)(\\(5(0|2|5|6)\\)|5(0|2|5|6)|2|3|4|6|7|9)|60)([\\s.-]?[0-9]){7}$/.test(d);\n break;\n\n case \"BG\":\n c = /^(0|359|00)(((700|900)[0-9]{5}|((800)[0-9]{5}|(800)[0-9]{4}))|(87|88|89)([0-9]{7})|((2[0-9]{7})|(([3-9][0-9])(([0-9]{6})|([0-9]{5})))))$/.test(d.replace(/\\+|\\s|-|\\/|\\(|\\)/gi, \"\"));\n break;\n\n case \"BR\":\n c = /^(([\\d]{4}[-.\\s]{1}[\\d]{2,3}[-.\\s]{1}[\\d]{2}[-.\\s]{1}[\\d]{2})|([\\d]{4}[-.\\s]{1}[\\d]{3}[-.\\s]{1}[\\d]{4})|((\\(?\\+?[0-9]{2}\\)?\\s?)?(\\(?\\d{2}\\)?\\s?)?\\d{4,5}[-.\\s]?\\d{4}))$/.test(d);\n break;\n\n case \"CN\":\n c = /^((00|\\+)?(86(?:-| )))?((\\d{11})|(\\d{3}[- ]{1}\\d{4}[- ]{1}\\d{4})|((\\d{2,4}[- ]){1}(\\d{7,8}|(\\d{3,4}[- ]{1}\\d{4}))([- ]{1}\\d{1,4})?))$/.test(d);\n break;\n\n case \"CZ\":\n c = /^(((00)([- ]?)|\\+)(420)([- ]?))?((\\d{3})([- ]?)){2}(\\d{3})$/.test(d);\n break;\n\n case \"DE\":\n c = /^(((((((00|\\+)49[ \\-/]?)|0)[1-9][0-9]{1,4})[ \\-/]?)|((((00|\\+)49\\()|\\(0)[1-9][0-9]{1,4}\\)[ \\-/]?))[0-9]{1,7}([ \\-/]?[0-9]{1,5})?)$/.test(d);\n break;\n\n case \"DK\":\n c = /^(\\+45|0045|\\(45\\))?\\s?[2-9](\\s?\\d){7}$/.test(d);\n break;\n\n case \"ES\":\n c = /^(?:(?:(?:\\+|00)34\\D?))?(?:5|6|7|8|9)(?:\\d\\D?){8}$/.test(d);\n break;\n\n case \"FR\":\n c = /^(?:(?:(?:\\+|00)33[ ]?(?:\\(0\\)[ ]?)?)|0){1}[1-9]{1}([ .-]?)(?:\\d{2}\\1?){3}\\d{2}$/.test(d);\n break;\n\n case \"GB\":\n c = /^\\(?(?:(?:0(?:0|11)\\)?[\\s-]?\\(?|\\+)44\\)?[\\s-]?\\(?(?:0\\)?[\\s-]?\\(?)?|0)(?:\\d{2}\\)?[\\s-]?\\d{4}[\\s-]?\\d{4}|\\d{3}\\)?[\\s-]?\\d{3}[\\s-]?\\d{3,4}|\\d{4}\\)?[\\s-]?(?:\\d{5}|\\d{3}[\\s-]?\\d{3})|\\d{5}\\)?[\\s-]?\\d{4,5}|8(?:00[\\s-]?11[\\s-]?11|45[\\s-]?46[\\s-]?4\\d))(?:(?:[\\s-]?(?:x|ext\\.?\\s?|#)\\d+)?)$/.test(d);\n break;\n\n case \"IN\":\n c = /((\\+?)((0[ -]+)*|(91 )*)(\\d{12}|\\d{10}))|\\d{5}([- ]*)\\d{6}/.test(d);\n break;\n\n case \"MA\":\n c = /^(?:(?:(?:\\+|00)212[\\s]?(?:[\\s]?\\(0\\)[\\s]?)?)|0){1}(?:5[\\s.-]?[2-3]|6[\\s.-]?[13-9]){1}[0-9]{1}(?:[\\s.-]?\\d{2}){3}$/.test(d);\n break;\n\n case \"NL\":\n c = /^((\\+|00(\\s|\\s?-\\s?)?)31(\\s|\\s?-\\s?)?(\\(0\\)[-\\s]?)?|0)[1-9]((\\s|\\s?-\\s?)?[0-9])((\\s|\\s?-\\s?)?[0-9])((\\s|\\s?-\\s?)?[0-9])\\s?[0-9]\\s?[0-9]\\s?[0-9]\\s?[0-9]\\s?[0-9]$/gm.test(d);\n break;\n\n case \"PK\":\n c = /^0?3[0-9]{2}[0-9]{7}$/.test(d);\n break;\n\n case \"RO\":\n c = /^(\\+4|)?(07[0-8]{1}[0-9]{1}|02[0-9]{2}|03[0-9]{2}){1}?(\\s|\\.|-)?([0-9]{3}(\\s|\\.|-|)){2}$/g.test(d);\n break;\n\n case \"RU\":\n c = /^((8|\\+7|007)[-./ ]?)?([(/.]?\\d{3}[)/.]?[-./ ]?)?[\\d\\-./ ]{7,10}$/g.test(d);\n break;\n\n case \"SK\":\n c = /^(((00)([- ]?)|\\+)(421)([- ]?))?((\\d{3})([- ]?)){2}(\\d{3})$/.test(d);\n break;\n\n case \"TH\":\n c = /^0\\(?([6|8-9]{2})*-([0-9]{3})*-([0-9]{4})$/.test(d);\n break;\n\n case \"VE\":\n c = /^0(?:2(?:12|4[0-9]|5[1-9]|6[0-9]|7[0-8]|8[1-35-8]|9[1-5]|3[45789])|4(?:1[246]|2[46]))\\d{7}$/.test(d);\n break;\n\n case \"US\":\n default:\n c = /^(?:(1-?)|(\\+1 ?))?\\(?\\d{3}\\)?[-.\\s]?\\d{3}[-.\\s]?\\d{4}$/.test(d);\n break;\n }\n\n return {\n message: r(t.l10n ? a.message || t.l10n.phone.country : a.message, t.l10n ? t.l10n.phone.countries[r$1] : r$1),\n valid: c\n };\n }\n };\n }\n\n function e$r() {\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n valid: true\n };\n }\n\n if (!/^\\d{9}$/.test(e.value)) {\n return {\n valid: false\n };\n }\n\n var t = 0;\n\n for (var a = 0; a < e.value.length; a += 3) {\n t += parseInt(e.value.charAt(a), 10) * 3 + parseInt(e.value.charAt(a + 1), 10) * 7 + parseInt(e.value.charAt(a + 2), 10);\n }\n\n return {\n valid: t !== 0 && t % 10 === 0\n };\n }\n };\n }\n\n function t$x() {\n return {\n validate: function validate(t) {\n if (t.value === \"\") {\n return {\n valid: true\n };\n }\n\n var e = t.value.toUpperCase();\n\n if (!/^[0-9A-Z]{7}$/.test(e)) {\n return {\n valid: false\n };\n }\n\n var r = [1, 3, 1, 7, 3, 9, 1];\n var a = e.length;\n var l = 0;\n\n for (var _t = 0; _t < a - 1; _t++) {\n l += r[_t] * parseInt(e.charAt(_t), 36);\n }\n\n l = (10 - l % 10) % 10;\n return {\n valid: \"\".concat(l) === e.charAt(a - 1)\n };\n }\n };\n }\n\n function e$s() {\n return {\n validate: function validate(e) {\n return {\n valid: e.value === \"\" || /^\\d{9}$/.test(e.value) && t(e.value)\n };\n }\n };\n }\n\n function e$t() {\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n valid: true\n };\n }\n\n var t = e.value.length;\n var l = 0;\n var r;\n\n for (var a = 0; a < t; a++) {\n r = parseInt(e.value.charAt(a), 10);\n\n if (a % 2 === 0) {\n r = r * 2;\n\n if (r > 9) {\n r -= 9;\n }\n }\n\n l += r;\n }\n\n return {\n valid: l % 10 === 0\n };\n }\n };\n }\n\n function e$u() {\n var e = function e(t, _e) {\n var s = Math.pow(10, _e);\n var a = t * s;\n var n;\n\n switch (true) {\n case a === 0:\n n = 0;\n break;\n\n case a > 0:\n n = 1;\n break;\n\n case a < 0:\n n = -1;\n break;\n }\n\n var r = a % 1 === .5 * n;\n return r ? (Math.floor(a) + (n > 0 ? 1 : 0)) / s : Math.round(a) / s;\n };\n\n var s = function s(t, _s) {\n if (_s === 0) {\n return 1;\n }\n\n var a = \"\".concat(t).split(\".\");\n var n = \"\".concat(_s).split(\".\");\n var r = (a.length === 1 ? 0 : a[1].length) + (n.length === 1 ? 0 : n[1].length);\n return e(t - _s * Math.floor(t / _s), r);\n };\n\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n valid: true\n };\n }\n\n var a = parseFloat(e.value);\n\n if (isNaN(a) || !isFinite(a)) {\n return {\n valid: false\n };\n }\n\n var n = Object.assign({}, {\n baseValue: 0,\n message: \"\",\n step: 1\n }, e.options);\n var r$1 = s(a - n.baseValue, n.step);\n return {\n message: r(e.l10n ? n.message || e.l10n.step[\"default\"] : n.message, \"\".concat(n.step)),\n valid: r$1 === 0 || r$1 === n.step\n };\n }\n };\n }\n\n function s$5() {\n return {\n validate: function validate(s) {\n if (s.value === \"\") {\n return {\n valid: true\n };\n }\n\n var A = Object.assign({}, {\n message: \"\"\n }, s.options);\n var i = {\n 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i\n };\n var n = A.version ? \"\".concat(A.version) : \"all\";\n return {\n message: A.version ? r(s.l10n ? A.message || s.l10n.uuid.version : A.message, A.version) : s.l10n ? s.l10n.uuid[\"default\"] : A.message,\n valid: null === i[n] ? true : i[n].test(s.value)\n };\n }\n };\n }\n\n function t$y(t) {\n var e = t.replace(\"-\", \"\");\n\n if (/^AR[0-9]{11}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0-9]{11}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];\n var a = 0;\n\n for (var _t = 0; _t < 10; _t++) {\n a += parseInt(e.charAt(_t), 10) * r[_t];\n }\n\n a = 11 - a % 11;\n\n if (a === 11) {\n a = 0;\n }\n\n return {\n meta: {},\n valid: \"\".concat(a) === e.substr(10)\n };\n }\n\n function t$z(t) {\n var e = t;\n\n if (/^ATU[0-9]{8}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^U[0-9]{8}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n e = e.substr(1);\n var r = [1, 2, 1, 2, 1, 2, 1];\n var s = 0;\n var a = 0;\n\n for (var _t = 0; _t < 7; _t++) {\n a = parseInt(e.charAt(_t), 10) * r[_t];\n\n if (a > 9) {\n a = Math.floor(a / 10) + a % 10;\n }\n\n s += a;\n }\n\n s = 10 - (s + 4) % 10;\n\n if (s === 10) {\n s = 0;\n }\n\n return {\n meta: {},\n valid: \"\".concat(s) === e.substr(7, 1)\n };\n }\n\n function t$A(t) {\n var e = t;\n\n if (/^BE[0]?[0-9]{9}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0]?[0-9]{9}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n if (e.length === 9) {\n e = \"0\".concat(e);\n }\n\n if (e.substr(1, 1) === \"0\") {\n return {\n meta: {},\n valid: false\n };\n }\n\n var s = parseInt(e.substr(0, 8), 10) + parseInt(e.substr(8, 2), 10);\n return {\n meta: {},\n valid: s % 97 === 0\n };\n }\n\n function r$c(r) {\n var e = r;\n\n if (/^BG[0-9]{9,10}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0-9]{9,10}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var s = 0;\n var n = 0;\n\n if (e.length === 9) {\n for (n = 0; n < 8; n++) {\n s += parseInt(e.charAt(n), 10) * (n + 1);\n }\n\n s = s % 11;\n\n if (s === 10) {\n s = 0;\n\n for (n = 0; n < 8; n++) {\n s += parseInt(e.charAt(n), 10) * (n + 3);\n }\n\n s = s % 11;\n }\n\n s = s % 10;\n return {\n meta: {},\n valid: \"\".concat(s) === e.substr(8)\n };\n } else {\n var _r = function _r(r) {\n var e = parseInt(r.substr(0, 2), 10) + 1900;\n var s = parseInt(r.substr(2, 2), 10);\n var n = parseInt(r.substr(4, 2), 10);\n\n if (s > 40) {\n e += 100;\n s -= 40;\n } else if (s > 20) {\n e -= 100;\n s -= 20;\n }\n\n if (!t$9(e, s, n)) {\n return false;\n }\n\n var a = [2, 4, 8, 5, 10, 9, 7, 3, 6];\n var l = 0;\n\n for (var _t = 0; _t < 9; _t++) {\n l += parseInt(r.charAt(_t), 10) * a[_t];\n }\n\n l = l % 11 % 10;\n return \"\".concat(l) === r.substr(9, 1);\n };\n\n var _s = function _s(t) {\n var r = [21, 19, 17, 13, 11, 9, 7, 3, 1];\n var e = 0;\n\n for (var _s2 = 0; _s2 < 9; _s2++) {\n e += parseInt(t.charAt(_s2), 10) * r[_s2];\n }\n\n e = e % 10;\n return \"\".concat(e) === t.substr(9, 1);\n };\n\n var _n = function _n(t) {\n var r = [4, 3, 2, 7, 6, 5, 4, 3, 2];\n var e = 0;\n\n for (var _s3 = 0; _s3 < 9; _s3++) {\n e += parseInt(t.charAt(_s3), 10) * r[_s3];\n }\n\n e = 11 - e % 11;\n\n if (e === 10) {\n return false;\n }\n\n if (e === 11) {\n e = 0;\n }\n\n return \"\".concat(e) === t.substr(9, 1);\n };\n\n return {\n meta: {},\n valid: _r(e) || _s(e) || _n(e)\n };\n }\n }\n\n function t$B(t) {\n if (t === \"\") {\n return {\n meta: {},\n valid: true\n };\n }\n\n var e = t.replace(/[^\\d]+/g, \"\");\n\n if (e === \"\" || e.length !== 14) {\n return {\n meta: {},\n valid: false\n };\n }\n\n if (e === \"00000000000000\" || e === \"11111111111111\" || e === \"22222222222222\" || e === \"33333333333333\" || e === \"44444444444444\" || e === \"55555555555555\" || e === \"66666666666666\" || e === \"77777777777777\" || e === \"88888888888888\" || e === \"99999999999999\") {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = e.length - 2;\n var a = e.substring(0, r);\n var l = e.substring(r);\n var n = 0;\n var i = r - 7;\n var s;\n\n for (s = r; s >= 1; s--) {\n n += parseInt(a.charAt(r - s), 10) * i--;\n\n if (i < 2) {\n i = 9;\n }\n }\n\n var f = n % 11 < 2 ? 0 : 11 - n % 11;\n\n if (f !== parseInt(l.charAt(0), 10)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n r = r + 1;\n a = e.substring(0, r);\n n = 0;\n i = r - 7;\n\n for (s = r; s >= 1; s--) {\n n += parseInt(a.charAt(r - s), 10) * i--;\n\n if (i < 2) {\n i = 9;\n }\n }\n\n f = n % 11 < 2 ? 0 : 11 - n % 11;\n return {\n meta: {},\n valid: f === parseInt(l.charAt(1), 10)\n };\n }\n\n function t$C(t) {\n var e = t;\n\n if (/^CHE[0-9]{9}(MWST|TVA|IVA|TPV)?$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^E[0-9]{9}(MWST|TVA|IVA|TPV)?$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n e = e.substr(1);\n var r = [5, 4, 3, 2, 7, 6, 5, 4];\n var s = 0;\n\n for (var _t = 0; _t < 8; _t++) {\n s += parseInt(e.charAt(_t), 10) * r[_t];\n }\n\n s = 11 - s % 11;\n\n if (s === 10) {\n return {\n meta: {},\n valid: false\n };\n }\n\n if (s === 11) {\n s = 0;\n }\n\n return {\n meta: {},\n valid: \"\".concat(s) === e.substr(8, 1)\n };\n }\n\n function t$D(t) {\n var e = t;\n\n if (/^CY[0-5|9][0-9]{7}[A-Z]$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0-5|9][0-9]{7}[A-Z]$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n if (e.substr(0, 2) === \"12\") {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = 0;\n var s = {\n 0: 1,\n 1: 0,\n 2: 5,\n 3: 7,\n 4: 9,\n 5: 13,\n 6: 15,\n 7: 17,\n 8: 19,\n 9: 21\n };\n\n for (var _t = 0; _t < 8; _t++) {\n var a = parseInt(e.charAt(_t), 10);\n\n if (_t % 2 === 0) {\n a = s[\"\".concat(a)];\n }\n\n r += a;\n }\n\n return {\n meta: {},\n valid: \"\".concat(\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\"[r % 26]) === e.substr(8, 1)\n };\n }\n\n function e$v(e) {\n var r = e;\n\n if (/^CZ[0-9]{8,10}$/.test(r)) {\n r = r.substr(2);\n }\n\n if (!/^[0-9]{8,10}$/.test(r)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var a = 0;\n var s = 0;\n\n if (r.length === 8) {\n if (\"\".concat(r.charAt(0)) === \"9\") {\n return {\n meta: {},\n valid: false\n };\n }\n\n a = 0;\n\n for (s = 0; s < 7; s++) {\n a += parseInt(r.charAt(s), 10) * (8 - s);\n }\n\n a = 11 - a % 11;\n\n if (a === 10) {\n a = 0;\n }\n\n if (a === 11) {\n a = 1;\n }\n\n return {\n meta: {},\n valid: \"\".concat(a) === r.substr(7, 1)\n };\n } else if (r.length === 9 && \"\".concat(r.charAt(0)) === \"6\") {\n a = 0;\n\n for (s = 0; s < 7; s++) {\n a += parseInt(r.charAt(s + 1), 10) * (8 - s);\n }\n\n a = 11 - a % 11;\n\n if (a === 10) {\n a = 0;\n }\n\n if (a === 11) {\n a = 1;\n }\n\n a = [8, 7, 6, 5, 4, 3, 2, 1, 0, 9, 10][a - 1];\n return {\n meta: {},\n valid: \"\".concat(a) === r.substr(8, 1)\n };\n } else if (r.length === 9 || r.length === 10) {\n var _e = 1900 + parseInt(r.substr(0, 2), 10);\n\n var _a = parseInt(r.substr(2, 2), 10) % 50 % 20;\n\n var _s = parseInt(r.substr(4, 2), 10);\n\n if (r.length === 9) {\n if (_e >= 1980) {\n _e -= 100;\n }\n\n if (_e > 1953) {\n return {\n meta: {},\n valid: false\n };\n }\n } else if (_e < 1954) {\n _e += 100;\n }\n\n if (!t$9(_e, _a, _s)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n if (r.length === 10) {\n var _t = parseInt(r.substr(0, 9), 10) % 11;\n\n if (_e < 1985) {\n _t = _t % 10;\n }\n\n return {\n meta: {},\n valid: \"\".concat(_t) === r.substr(9, 1)\n };\n }\n\n return {\n meta: {},\n valid: true\n };\n }\n\n return {\n meta: {},\n valid: false\n };\n }\n\n function e$w(e) {\n var r = e;\n\n if (/^DE[0-9]{9}$/.test(r)) {\n r = r.substr(2);\n }\n\n if (!/^[0-9]{9}$/.test(r)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n return {\n meta: {},\n valid: t$1(r)\n };\n }\n\n function t$E(t) {\n var e = t;\n\n if (/^DK[0-9]{8}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0-9]{8}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = 0;\n var a = [2, 7, 6, 5, 4, 3, 2, 1];\n\n for (var _t = 0; _t < 8; _t++) {\n r += parseInt(e.charAt(_t), 10) * a[_t];\n }\n\n return {\n meta: {},\n valid: r % 11 === 0\n };\n }\n\n function t$F(t) {\n var e = t;\n\n if (/^EE[0-9]{9}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0-9]{9}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = 0;\n var a = [3, 7, 1, 3, 7, 1, 3, 7, 1];\n\n for (var _t = 0; _t < 9; _t++) {\n r += parseInt(e.charAt(_t), 10) * a[_t];\n }\n\n return {\n meta: {},\n valid: r % 10 === 0\n };\n }\n\n function t$G(t) {\n var e = t;\n\n if (/^ES[0-9A-Z][0-9]{7}[0-9A-Z]$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0-9A-Z][0-9]{7}[0-9A-Z]$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var s = function s(t) {\n var e = parseInt(t.substr(0, 8), 10);\n return \"\".concat(\"TRWAGMYFPDXBNJZSQVHLCKE\"[e % 23]) === t.substr(8, 1);\n };\n\n var r = function r(t) {\n var e = [\"XYZ\".indexOf(t.charAt(0)), t.substr(1)].join(\"\");\n var s = \"TRWAGMYFPDXBNJZSQVHLCKE\"[parseInt(e, 10) % 23];\n return \"\".concat(s) === t.substr(8, 1);\n };\n\n var n = function n(t) {\n var e = t.charAt(0);\n var s;\n\n if (\"KLM\".indexOf(e) !== -1) {\n s = parseInt(t.substr(1, 8), 10);\n s = \"TRWAGMYFPDXBNJZSQVHLCKE\"[s % 23];\n return \"\".concat(s) === t.substr(8, 1);\n } else if (\"ABCDEFGHJNPQRSUVW\".indexOf(e) !== -1) {\n var _e = [2, 1, 2, 1, 2, 1, 2];\n var _s = 0;\n var _r = 0;\n\n for (var _n = 0; _n < 7; _n++) {\n _r = parseInt(t.charAt(_n + 1), 10) * _e[_n];\n\n if (_r > 9) {\n _r = Math.floor(_r / 10) + _r % 10;\n }\n\n _s += _r;\n }\n\n _s = 10 - _s % 10;\n\n if (_s === 10) {\n _s = 0;\n }\n\n return \"\".concat(_s) === t.substr(8, 1) || \"JABCDEFGHI\"[_s] === t.substr(8, 1);\n }\n\n return false;\n };\n\n var a = e.charAt(0);\n\n if (/^[0-9]$/.test(a)) {\n return {\n meta: {\n type: \"DNI\"\n },\n valid: s(e)\n };\n } else if (/^[XYZ]$/.test(a)) {\n return {\n meta: {\n type: \"NIE\"\n },\n valid: r(e)\n };\n } else {\n return {\n meta: {\n type: \"CIF\"\n },\n valid: n(e)\n };\n }\n }\n\n function t$H(t) {\n var e = t;\n\n if (/^FI[0-9]{8}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0-9]{8}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = [7, 9, 10, 5, 8, 4, 2, 1];\n var a = 0;\n\n for (var _t = 0; _t < 8; _t++) {\n a += parseInt(e.charAt(_t), 10) * r[_t];\n }\n\n return {\n meta: {},\n valid: a % 11 === 0\n };\n }\n\n function e$x(e) {\n var r = e;\n\n if (/^FR[0-9A-Z]{2}[0-9]{9}$/.test(r)) {\n r = r.substr(2);\n }\n\n if (!/^[0-9A-Z]{2}[0-9]{9}$/.test(r)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n if (r.substr(2, 4) !== \"000\") {\n return {\n meta: {},\n valid: t(r.substr(2))\n };\n }\n\n if (/^[0-9]{2}$/.test(r.substr(0, 2))) {\n return {\n meta: {},\n valid: r.substr(0, 2) === \"\".concat(parseInt(r.substr(2) + \"12\", 10) % 97)\n };\n } else {\n var _t = \"0123456789ABCDEFGHJKLMNPQRSTUVWXYZ\";\n\n var _e;\n\n if (/^[0-9]$/.test(r.charAt(0))) {\n _e = _t.indexOf(r.charAt(0)) * 24 + _t.indexOf(r.charAt(1)) - 10;\n } else {\n _e = _t.indexOf(r.charAt(0)) * 34 + _t.indexOf(r.charAt(1)) - 100;\n }\n\n return {\n meta: {},\n valid: (parseInt(r.substr(2), 10) + 1 + Math.floor(_e / 11)) % 11 === _e % 11\n };\n }\n }\n\n function t$I(t) {\n var s = t;\n\n if (/^GB[0-9]{9}$/.test(s) || /^GB[0-9]{12}$/.test(s) || /^GBGD[0-9]{3}$/.test(s) || /^GBHA[0-9]{3}$/.test(s) || /^GB(GD|HA)8888[0-9]{5}$/.test(s)) {\n s = s.substr(2);\n }\n\n if (!/^[0-9]{9}$/.test(s) && !/^[0-9]{12}$/.test(s) && !/^GD[0-9]{3}$/.test(s) && !/^HA[0-9]{3}$/.test(s) && !/^(GD|HA)8888[0-9]{5}$/.test(s)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var e = s.length;\n\n if (e === 5) {\n var _t = s.substr(0, 2);\n\n var _e = parseInt(s.substr(2), 10);\n\n return {\n meta: {},\n valid: \"GD\" === _t && _e < 500 || \"HA\" === _t && _e >= 500\n };\n } else if (e === 11 && (\"GD8888\" === s.substr(0, 6) || \"HA8888\" === s.substr(0, 6))) {\n if (\"GD\" === s.substr(0, 2) && parseInt(s.substr(6, 3), 10) >= 500 || \"HA\" === s.substr(0, 2) && parseInt(s.substr(6, 3), 10) < 500) {\n return {\n meta: {},\n valid: false\n };\n }\n\n return {\n meta: {},\n valid: parseInt(s.substr(6, 3), 10) % 97 === parseInt(s.substr(9, 2), 10)\n };\n } else if (e === 9 || e === 12) {\n var _t2 = [8, 7, 6, 5, 4, 3, 2, 10, 1];\n var _e2 = 0;\n\n for (var _r = 0; _r < 9; _r++) {\n _e2 += parseInt(s.charAt(_r), 10) * _t2[_r];\n }\n\n _e2 = _e2 % 97;\n var r = parseInt(s.substr(0, 3), 10) >= 100 ? _e2 === 0 || _e2 === 42 || _e2 === 55 : _e2 === 0;\n return {\n meta: {},\n valid: r\n };\n }\n\n return {\n meta: {},\n valid: true\n };\n }\n\n function t$J(t) {\n var e = t;\n\n if (/^(GR|EL)[0-9]{9}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0-9]{9}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n if (e.length === 8) {\n e = \"0\".concat(e);\n }\n\n var r = [256, 128, 64, 32, 16, 8, 4, 2];\n var s = 0;\n\n for (var _t = 0; _t < 8; _t++) {\n s += parseInt(e.charAt(_t), 10) * r[_t];\n }\n\n s = s % 11 % 10;\n return {\n meta: {},\n valid: \"\".concat(s) === e.substr(8, 1)\n };\n }\n\n function e$y(e) {\n var r = e;\n\n if (/^HR[0-9]{11}$/.test(r)) {\n r = r.substr(2);\n }\n\n if (!/^[0-9]{11}$/.test(r)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n return {\n meta: {},\n valid: t$1(r)\n };\n }\n\n function t$K(t) {\n var e = t;\n\n if (/^HU[0-9]{8}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0-9]{8}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = [9, 7, 3, 1, 9, 7, 3, 1];\n var a = 0;\n\n for (var _t = 0; _t < 8; _t++) {\n a += parseInt(e.charAt(_t), 10) * r[_t];\n }\n\n return {\n meta: {},\n valid: a % 10 === 0\n };\n }\n\n function t$L(t) {\n var e = t;\n\n if (/^IE[0-9][0-9A-Z*+][0-9]{5}[A-Z]{1,2}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0-9][0-9A-Z*+][0-9]{5}[A-Z]{1,2}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = function r(t) {\n var e = t;\n\n while (e.length < 7) {\n e = \"0\".concat(e);\n }\n\n var r = \"WABCDEFGHIJKLMNOPQRSTUV\";\n var s = 0;\n\n for (var _t = 0; _t < 7; _t++) {\n s += parseInt(e.charAt(_t), 10) * (8 - _t);\n }\n\n s += 9 * r.indexOf(e.substr(7));\n return r[s % 23];\n };\n\n if (/^[0-9]+$/.test(e.substr(0, 7))) {\n return {\n meta: {},\n valid: e.charAt(7) === r(\"\".concat(e.substr(0, 7)).concat(e.substr(8)))\n };\n } else if (\"ABCDEFGHIJKLMNOPQRSTUVWXYZ+*\".indexOf(e.charAt(1)) !== -1) {\n return {\n meta: {},\n valid: e.charAt(7) === r(\"\".concat(e.substr(2, 5)).concat(e.substr(0, 1)))\n };\n }\n\n return {\n meta: {},\n valid: true\n };\n }\n\n function t$M(t) {\n var e = t;\n\n if (/^IS[0-9]{5,6}$/.test(e)) {\n e = e.substr(2);\n }\n\n return {\n meta: {},\n valid: /^[0-9]{5,6}$/.test(e)\n };\n }\n\n function e$z(e) {\n var r = e;\n\n if (/^IT[0-9]{11}$/.test(r)) {\n r = r.substr(2);\n }\n\n if (!/^[0-9]{11}$/.test(r)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n if (parseInt(r.substr(0, 7), 10) === 0) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var a = parseInt(r.substr(7, 3), 10);\n\n if (a < 1 || a > 201 && a !== 999 && a !== 888) {\n return {\n meta: {},\n valid: false\n };\n }\n\n return {\n meta: {},\n valid: t(r)\n };\n }\n\n function t$N(t) {\n var e = t;\n\n if (/^LT([0-9]{7}1[0-9]|[0-9]{10}1[0-9])$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^([0-9]{7}1[0-9]|[0-9]{10}1[0-9])$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = e.length;\n var a = 0;\n var l;\n\n for (l = 0; l < r - 1; l++) {\n a += parseInt(e.charAt(l), 10) * (1 + l % 9);\n }\n\n var f = a % 11;\n\n if (f === 10) {\n a = 0;\n\n for (l = 0; l < r - 1; l++) {\n a += parseInt(e.charAt(l), 10) * (1 + (l + 2) % 9);\n }\n }\n\n f = f % 11 % 10;\n return {\n meta: {},\n valid: \"\".concat(f) === e.charAt(r - 1)\n };\n }\n\n function t$O(t) {\n var e = t;\n\n if (/^LU[0-9]{8}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0-9]{8}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n return {\n meta: {},\n valid: \"\".concat(parseInt(e.substr(0, 6), 10) % 89) === e.substr(6, 2)\n };\n }\n\n function e$A(e) {\n var r = e;\n\n if (/^LV[0-9]{11}$/.test(r)) {\n r = r.substr(2);\n }\n\n if (!/^[0-9]{11}$/.test(r)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var s = parseInt(r.charAt(0), 10);\n var a = r.length;\n var n = 0;\n var l = [];\n var i;\n\n if (s > 3) {\n n = 0;\n l = [9, 1, 4, 8, 3, 10, 2, 5, 7, 6, 1];\n\n for (i = 0; i < a; i++) {\n n += parseInt(r.charAt(i), 10) * l[i];\n }\n\n n = n % 11;\n return {\n meta: {},\n valid: n === 3\n };\n } else {\n var _e = parseInt(r.substr(0, 2), 10);\n\n var _s = parseInt(r.substr(2, 2), 10);\n\n var f = parseInt(r.substr(4, 2), 10);\n f = f + 1800 + parseInt(r.charAt(6), 10) * 100;\n\n if (!t$9(f, _s, _e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n n = 0;\n l = [10, 5, 8, 4, 2, 1, 6, 3, 7, 9];\n\n for (i = 0; i < a - 1; i++) {\n n += parseInt(r.charAt(i), 10) * l[i];\n }\n\n n = (n + 1) % 11 % 10;\n return {\n meta: {},\n valid: \"\".concat(n) === r.charAt(a - 1)\n };\n }\n }\n\n function t$P(t) {\n var e = t;\n\n if (/^MT[0-9]{8}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0-9]{8}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = [3, 4, 6, 7, 8, 9, 10, 1];\n var a = 0;\n\n for (var _t = 0; _t < 8; _t++) {\n a += parseInt(e.charAt(_t), 10) * r[_t];\n }\n\n return {\n meta: {},\n valid: a % 37 === 0\n };\n }\n\n function t$Q(t) {\n return t.split(\"\").map(function (t) {\n var n = t.charCodeAt(0);\n return n >= 65 && n <= 90 ? n - 55 : t;\n }).join(\"\").split(\"\").map(function (t) {\n return parseInt(t, 10);\n });\n }\n\n function n$1(n) {\n var e = t$Q(n);\n var r = 0;\n var o = e.length;\n\n for (var _t = 0; _t < o - 1; ++_t) {\n r = (r + e[_t]) * 10 % 97;\n }\n\n r += e[o - 1];\n return r % 97 === 1;\n }\n\n function e$B(e) {\n var i = e;\n\n if (/^NL[0-9]{9}B[0-9]{2}$/.test(i)) {\n i = i.substr(2);\n }\n\n if (!/^[0-9]{9}B[0-9]{2}$/.test(i)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var o = i.substr(0, 9);\n return {\n meta: {},\n valid: e$j(o).valid || n$1(\"NL\".concat(i))\n };\n }\n\n function t$R(t) {\n var e = t;\n\n if (/^NO[0-9]{9}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0-9]{9}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = [3, 2, 7, 6, 5, 4, 3, 2];\n var s = 0;\n\n for (var _t = 0; _t < 8; _t++) {\n s += parseInt(e.charAt(_t), 10) * r[_t];\n }\n\n s = 11 - s % 11;\n\n if (s === 11) {\n s = 0;\n }\n\n return {\n meta: {},\n valid: \"\".concat(s) === e.substr(8, 1)\n };\n }\n\n function t$S(t) {\n var e = t;\n\n if (/^PL[0-9]{10}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0-9]{10}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = [6, 5, 7, 2, 3, 4, 5, 6, 7, -1];\n var a = 0;\n\n for (var _t = 0; _t < 10; _t++) {\n a += parseInt(e.charAt(_t), 10) * r[_t];\n }\n\n return {\n meta: {},\n valid: a % 11 === 0\n };\n }\n\n function t$T(t) {\n var e = t;\n\n if (/^PT[0-9]{9}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0-9]{9}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = [9, 8, 7, 6, 5, 4, 3, 2];\n var s = 0;\n\n for (var _t = 0; _t < 8; _t++) {\n s += parseInt(e.charAt(_t), 10) * r[_t];\n }\n\n s = 11 - s % 11;\n\n if (s > 9) {\n s = 0;\n }\n\n return {\n meta: {},\n valid: \"\".concat(s) === e.substr(8, 1)\n };\n }\n\n function t$U(t) {\n var e = t;\n\n if (/^RO[1-9][0-9]{1,9}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[1-9][0-9]{1,9}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var s = e.length;\n var r = [7, 5, 3, 2, 1, 7, 5, 3, 2].slice(10 - s);\n var l = 0;\n\n for (var _t = 0; _t < s - 1; _t++) {\n l += parseInt(e.charAt(_t), 10) * r[_t];\n }\n\n l = 10 * l % 11 % 10;\n return {\n meta: {},\n valid: \"\".concat(l) === e.substr(s - 1, 1)\n };\n }\n\n function t$V(t) {\n var e = t;\n\n if (/^RS[0-9]{9}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[0-9]{9}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = 10;\n var a = 0;\n\n for (var _t = 0; _t < 8; _t++) {\n a = (parseInt(e.charAt(_t), 10) + r) % 10;\n\n if (a === 0) {\n a = 10;\n }\n\n r = 2 * a % 11;\n }\n\n return {\n meta: {},\n valid: (r + parseInt(e.substr(8, 1), 10)) % 10 === 1\n };\n }\n\n function t$W(t) {\n var e = t;\n\n if (/^RU([0-9]{10}|[0-9]{12})$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^([0-9]{10}|[0-9]{12})$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = 0;\n\n if (e.length === 10) {\n var _t = [2, 4, 10, 3, 5, 9, 4, 6, 8, 0];\n var s = 0;\n\n for (r = 0; r < 10; r++) {\n s += parseInt(e.charAt(r), 10) * _t[r];\n }\n\n s = s % 11;\n\n if (s > 9) {\n s = s % 10;\n }\n\n return {\n meta: {},\n valid: \"\".concat(s) === e.substr(9, 1)\n };\n } else if (e.length === 12) {\n var _t2 = [7, 2, 4, 10, 3, 5, 9, 4, 6, 8, 0];\n var _s = [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8, 0];\n var a = 0;\n var l = 0;\n\n for (r = 0; r < 11; r++) {\n a += parseInt(e.charAt(r), 10) * _t2[r];\n l += parseInt(e.charAt(r), 10) * _s[r];\n }\n\n a = a % 11;\n\n if (a > 9) {\n a = a % 10;\n }\n\n l = l % 11;\n\n if (l > 9) {\n l = l % 10;\n }\n\n return {\n meta: {},\n valid: \"\".concat(a) === e.substr(10, 1) && \"\".concat(l) === e.substr(11, 1)\n };\n }\n\n return {\n meta: {},\n valid: true\n };\n }\n\n function e$C(e) {\n var r = e;\n\n if (/^SE[0-9]{10}01$/.test(r)) {\n r = r.substr(2);\n }\n\n if (!/^[0-9]{10}01$/.test(r)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n r = r.substr(0, 10);\n return {\n meta: {},\n valid: t(r)\n };\n }\n\n function t$X(t) {\n var e = t.match(/^(SI)?([1-9][0-9]{7})$/);\n\n if (!e) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = e[1] ? t.substr(2) : t;\n var a = [8, 7, 6, 5, 4, 3, 2];\n var s = 0;\n\n for (var _t = 0; _t < 7; _t++) {\n s += parseInt(r.charAt(_t), 10) * a[_t];\n }\n\n s = 11 - s % 11;\n\n if (s === 10) {\n s = 0;\n }\n\n return {\n meta: {},\n valid: \"\".concat(s) === r.substr(7, 1)\n };\n }\n\n function t$Y(t) {\n var e = t;\n\n if (/^SK[1-9][0-9][(2-4)|(6-9)][0-9]{7}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[1-9][0-9][(2-4)|(6-9)][0-9]{7}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n return {\n meta: {},\n valid: parseInt(e, 10) % 11 === 0\n };\n }\n\n function t$Z(t) {\n var e = t;\n\n if (/^VE[VEJPG][0-9]{9}$/.test(e)) {\n e = e.substr(2);\n }\n\n if (!/^[VEJPG][0-9]{9}$/.test(e)) {\n return {\n meta: {},\n valid: false\n };\n }\n\n var r = {\n E: 8,\n G: 20,\n J: 12,\n P: 16,\n V: 4\n };\n var s = [3, 2, 7, 6, 5, 4, 3, 2];\n var a = r[e.charAt(0)];\n\n for (var _t = 0; _t < 8; _t++) {\n a += parseInt(e.charAt(_t + 1), 10) * s[_t];\n }\n\n a = 11 - a % 11;\n\n if (a === 11 || a === 10) {\n a = 0;\n }\n\n return {\n meta: {},\n valid: \"\".concat(a) === e.substr(9, 1)\n };\n }\n\n function t$_(t) {\n var e = t;\n\n if (/^ZA4[0-9]{9}$/.test(e)) {\n e = e.substr(2);\n }\n\n return {\n meta: {},\n valid: /^4[0-9]{9}$/.test(e)\n };\n }\n\n function x() {\n var x = [\"AR\", \"AT\", \"BE\", \"BG\", \"BR\", \"CH\", \"CY\", \"CZ\", \"DE\", \"DK\", \"EE\", \"EL\", \"ES\", \"FI\", \"FR\", \"GB\", \"GR\", \"HR\", \"HU\", \"IE\", \"IS\", \"IT\", \"LT\", \"LU\", \"LV\", \"MT\", \"NL\", \"NO\", \"PL\", \"PT\", \"RO\", \"RU\", \"RS\", \"SE\", \"SK\", \"SI\", \"VE\", \"ZA\"];\n return {\n validate: function validate(D) {\n var F = D.value;\n\n if (F === \"\") {\n return {\n valid: true\n };\n }\n\n var K = Object.assign({}, {\n message: \"\"\n }, D.options);\n var N = F.substr(0, 2);\n\n if (\"function\" === typeof K.country) {\n N = K.country.call(this);\n } else {\n N = K.country;\n }\n\n if (x.indexOf(N) === -1) {\n return {\n valid: true\n };\n }\n\n var P = {\n meta: {},\n valid: true\n };\n\n switch (N.toLowerCase()) {\n case \"ar\":\n P = t$y(F);\n break;\n\n case \"at\":\n P = t$z(F);\n break;\n\n case \"be\":\n P = t$A(F);\n break;\n\n case \"bg\":\n P = r$c(F);\n break;\n\n case \"br\":\n P = t$B(F);\n break;\n\n case \"ch\":\n P = t$C(F);\n break;\n\n case \"cy\":\n P = t$D(F);\n break;\n\n case \"cz\":\n P = e$v(F);\n break;\n\n case \"de\":\n P = e$w(F);\n break;\n\n case \"dk\":\n P = t$E(F);\n break;\n\n case \"ee\":\n P = t$F(F);\n break;\n\n case \"el\":\n P = t$J(F);\n break;\n\n case \"es\":\n P = t$G(F);\n break;\n\n case \"fi\":\n P = t$H(F);\n break;\n\n case \"fr\":\n P = e$x(F);\n break;\n\n case \"gb\":\n P = t$I(F);\n break;\n\n case \"gr\":\n P = t$J(F);\n break;\n\n case \"hr\":\n P = e$y(F);\n break;\n\n case \"hu\":\n P = t$K(F);\n break;\n\n case \"ie\":\n P = t$L(F);\n break;\n\n case \"is\":\n P = t$M(F);\n break;\n\n case \"it\":\n P = e$z(F);\n break;\n\n case \"lt\":\n P = t$N(F);\n break;\n\n case \"lu\":\n P = t$O(F);\n break;\n\n case \"lv\":\n P = e$A(F);\n break;\n\n case \"mt\":\n P = t$P(F);\n break;\n\n case \"nl\":\n P = e$B(F);\n break;\n\n case \"no\":\n P = t$R(F);\n break;\n\n case \"pl\":\n P = t$S(F);\n break;\n\n case \"pt\":\n P = t$T(F);\n break;\n\n case \"ro\":\n P = t$U(F);\n break;\n\n case \"rs\":\n P = t$V(F);\n break;\n\n case \"ru\":\n P = t$W(F);\n break;\n\n case \"se\":\n P = e$C(F);\n break;\n\n case \"si\":\n P = t$X(F);\n break;\n\n case \"sk\":\n P = t$Y(F);\n break;\n\n case \"ve\":\n P = t$Z(F);\n break;\n\n case \"za\":\n P = t$_(F);\n break;\n }\n\n var Z = r(D.l10n ? K.message || D.l10n.vat.country : K.message, D.l10n ? D.l10n.vat.countries[N.toUpperCase()] : N.toUpperCase());\n return Object.assign({}, {\n message: Z\n }, P);\n }\n };\n }\n\n function t$$() {\n return {\n validate: function validate(t) {\n if (t.value === \"\") {\n return {\n valid: true\n };\n }\n\n if (!/^[a-hj-npr-z0-9]{8}[0-9xX][a-hj-npr-z0-9]{8}$/i.test(t.value)) {\n return {\n valid: false\n };\n }\n\n var e = t.value.toUpperCase();\n var r = {\n A: 1,\n B: 2,\n C: 3,\n D: 4,\n E: 5,\n F: 6,\n G: 7,\n H: 8,\n J: 1,\n K: 2,\n L: 3,\n M: 4,\n N: 5,\n P: 7,\n R: 9,\n S: 2,\n T: 3,\n U: 4,\n V: 5,\n W: 6,\n X: 7,\n Y: 8,\n Z: 9,\n 0: 0,\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 };\n var a = [8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2];\n var l = e.length;\n var n = 0;\n\n for (var _t = 0; _t < l; _t++) {\n n += r[\"\".concat(e.charAt(_t))] * a[_t];\n }\n\n var u = \"\".concat(n % 11);\n\n if (u === \"10\") {\n u = \"X\";\n }\n\n return {\n valid: u === e.charAt(8)\n };\n }\n };\n }\n\n function s$6() {\n var s = [\"AT\", \"BG\", \"BR\", \"CA\", \"CH\", \"CZ\", \"DE\", \"DK\", \"ES\", \"FR\", \"GB\", \"IE\", \"IN\", \"IT\", \"MA\", \"NL\", \"PL\", \"PT\", \"RO\", \"RU\", \"SE\", \"SG\", \"SK\", \"US\"];\n\n var a = function a(e) {\n var s = \"[ABCDEFGHIJKLMNOPRSTUWYZ]\";\n var a = \"[ABCDEFGHKLMNOPQRSTUVWXY]\";\n var t = \"[ABCDEFGHJKPMNRSTUVWXY]\";\n var r = \"[ABEHMNPRVWXY]\";\n var u = \"[ABDEFGHJLNPQRSTUWXYZ]\";\n var c = [new RegExp(\"^(\".concat(s, \"{1}\").concat(a, \"?[0-9]{1,2})(\\\\s*)([0-9]{1}\").concat(u, \"{2})$\"), \"i\"), new RegExp(\"^(\".concat(s, \"{1}[0-9]{1}\").concat(t, \"{1})(\\\\s*)([0-9]{1}\").concat(u, \"{2})$\"), \"i\"), new RegExp(\"^(\".concat(s, \"{1}\").concat(a, \"{1}?[0-9]{1}\").concat(r, \"{1})(\\\\s*)([0-9]{1}\").concat(u, \"{2})$\"), \"i\"), new RegExp(\"^(BF1)(\\\\s*)([0-6]{1}[ABDEFGHJLNPQRST]{1}[ABDEFGHJLNPQRSTUWZYZ]{1})$\", \"i\"), /^(GIR)(\\s*)(0AA)$/i, /^(BFPO)(\\s*)([0-9]{1,4})$/i, /^(BFPO)(\\s*)(c\\/o\\s*[0-9]{1,3})$/i, /^([A-Z]{4})(\\s*)(1ZZ)$/i, /^(AI-2640)$/i];\n\n for (var _i = 0, _c = c; _i < _c.length; _i++) {\n var _s = _c[_i];\n\n if (_s.test(e)) {\n return true;\n }\n }\n\n return false;\n };\n\n return {\n validate: function validate(t) {\n var r$1 = Object.assign({}, t.options);\n\n if (t.value === \"\" || !r$1.country) {\n return {\n valid: true\n };\n }\n\n var u = t.value.substr(0, 2);\n\n if (\"function\" === typeof r$1.country) {\n u = r$1.country.call(this);\n } else {\n u = r$1.country;\n }\n\n if (!u || s.indexOf(u.toUpperCase()) === -1) {\n return {\n valid: true\n };\n }\n\n var c = false;\n u = u.toUpperCase();\n\n switch (u) {\n case \"AT\":\n c = /^([1-9]{1})(\\d{3})$/.test(t.value);\n break;\n\n case \"BG\":\n c = /^([1-9]{1}[0-9]{3})$/.test(t.value);\n break;\n\n case \"BR\":\n c = /^(\\d{2})([.]?)(\\d{3})([-]?)(\\d{3})$/.test(t.value);\n break;\n\n case \"CA\":\n c = /^(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|X|Y){1}[0-9]{1}(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|W|X|Y|Z){1}\\s?[0-9]{1}(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|W|X|Y|Z){1}[0-9]{1}$/i.test(t.value);\n break;\n\n case \"CH\":\n c = /^([1-9]{1})(\\d{3})$/.test(t.value);\n break;\n\n case \"CZ\":\n c = /^(\\d{3})([ ]?)(\\d{2})$/.test(t.value);\n break;\n\n case \"DE\":\n c = /^(?!01000|99999)(0[1-9]\\d{3}|[1-9]\\d{4})$/.test(t.value);\n break;\n\n case \"DK\":\n c = /^(DK(-|\\s)?)?\\d{4}$/i.test(t.value);\n break;\n\n case \"ES\":\n c = /^(?:0[1-9]|[1-4][0-9]|5[0-2])\\d{3}$/.test(t.value);\n break;\n\n case \"FR\":\n c = /^[0-9]{5}$/i.test(t.value);\n break;\n\n case \"GB\":\n c = a(t.value);\n break;\n\n case \"IN\":\n c = /^\\d{3}\\s?\\d{3}$/.test(t.value);\n break;\n\n case \"IE\":\n c = /^(D6W|[ACDEFHKNPRTVWXY]\\d{2})\\s[0-9ACDEFHKNPRTVWXY]{4}$/.test(t.value);\n break;\n\n case \"IT\":\n c = /^(I-|IT-)?\\d{5}$/i.test(t.value);\n break;\n\n case \"MA\":\n c = /^[1-9][0-9]{4}$/i.test(t.value);\n break;\n\n case \"NL\":\n c = /^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i.test(t.value);\n break;\n\n case \"PL\":\n c = /^[0-9]{2}-[0-9]{3}$/.test(t.value);\n break;\n\n case \"PT\":\n c = /^[1-9]\\d{3}-\\d{3}$/.test(t.value);\n break;\n\n case \"RO\":\n c = /^(0[1-8]{1}|[1-9]{1}[0-5]{1})?[0-9]{4}$/i.test(t.value);\n break;\n\n case \"RU\":\n c = /^[0-9]{6}$/i.test(t.value);\n break;\n\n case \"SE\":\n c = /^(S-)?\\d{3}\\s?\\d{2}$/i.test(t.value);\n break;\n\n case \"SG\":\n c = /^([0][1-9]|[1-6][0-9]|[7]([0-3]|[5-9])|[8][0-2])(\\d{4})$/i.test(t.value);\n break;\n\n case \"SK\":\n c = /^(\\d{3})([ ]?)(\\d{2})$/.test(t.value);\n break;\n\n case \"US\":\n default:\n c = /^\\d{4,5}([-]?\\d{4})?$/.test(t.value);\n break;\n }\n\n return {\n message: r(t.l10n ? r$1.message || t.l10n.zipCode.country : r$1.message, t.l10n ? t.l10n.zipCode.countries[u] : u),\n valid: c\n };\n }\n };\n }\n\n var s$7 = {\n between: s$1,\n blank: t$5,\n callback: o,\n choice: t$7,\n creditCard: l,\n date: n,\n different: o$1,\n digits: e$1,\n emailAddress: t$a,\n file: e$2,\n greaterThan: a,\n identical: o$2,\n integer: a$1,\n ip: d,\n lessThan: s$2,\n notEmpty: t$b,\n numeric: a$2,\n promise: r$1,\n regexp: e$3,\n remote: a$3,\n stringCase: e$5,\n stringLength: t$c,\n uri: t$d,\n base64: a$4,\n bic: a$5,\n color: e$6,\n cusip: t$e,\n ean: e$7,\n ein: e$8,\n grid: r$2,\n hex: e$9,\n iban: Z,\n id: F,\n imei: t$w,\n imo: e$l,\n isbn: e$m,\n isin: M,\n ismn: e$n,\n issn: e$o,\n mac: a$6,\n meid: e$p,\n phone: e$q,\n rtn: e$r,\n sedol: t$x,\n siren: e$s,\n siret: e$t,\n step: e$u,\n uuid: s$5,\n vat: x,\n vin: t$$,\n zipCode: s$6\n };\n\n var l$1 = function () {\n function l(i, s$1) {\n _classCallCheck(this, l);\n\n this.elements = {};\n this.ee = s();\n this.filter = t$4();\n this.plugins = {};\n this.results = new Map();\n this.validators = {};\n this.form = i;\n this.fields = s$1;\n }\n\n _createClass(l, [{\n key: \"on\",\n value: function on(e, t) {\n this.ee.on(e, t);\n return this;\n }\n }, {\n key: \"off\",\n value: function off(e, t) {\n this.ee.off(e, t);\n return this;\n }\n }, {\n key: \"emit\",\n value: function emit(e) {\n var _this$ee;\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\n (_this$ee = this.ee).emit.apply(_this$ee, [e].concat(t));\n\n return this;\n }\n }, {\n key: \"registerPlugin\",\n value: function registerPlugin(e, t) {\n if (this.plugins[e]) {\n throw new Error(\"The plguin \".concat(e, \" is registered\"));\n }\n\n t.setCore(this);\n t.install();\n this.plugins[e] = t;\n return this;\n }\n }, {\n key: \"deregisterPlugin\",\n value: function deregisterPlugin(e) {\n var t = this.plugins[e];\n\n if (t) {\n t.uninstall();\n }\n\n delete this.plugins[e];\n return this;\n }\n }, {\n key: \"registerValidator\",\n value: function registerValidator(e, t) {\n if (this.validators[e]) {\n throw new Error(\"The validator \".concat(e, \" is registered\"));\n }\n\n this.validators[e] = t;\n return this;\n }\n }, {\n key: \"registerFilter\",\n value: function registerFilter(e, t) {\n this.filter.add(e, t);\n return this;\n }\n }, {\n key: \"deregisterFilter\",\n value: function deregisterFilter(e, t) {\n this.filter.remove(e, t);\n return this;\n }\n }, {\n key: \"executeFilter\",\n value: function executeFilter(e, t, i) {\n return this.filter.execute(e, t, i);\n }\n }, {\n key: \"addField\",\n value: function addField(e, t) {\n var i = Object.assign({}, {\n selector: \"\",\n validators: {}\n }, t);\n this.fields[e] = this.fields[e] ? {\n selector: i.selector || this.fields[e].selector,\n validators: Object.assign({}, this.fields[e].validators, i.validators)\n } : i;\n this.elements[e] = this.queryElements(e);\n this.emit(\"core.field.added\", {\n elements: this.elements[e],\n field: e,\n options: this.fields[e]\n });\n return this;\n }\n }, {\n key: \"removeField\",\n value: function removeField(e) {\n if (!this.fields[e]) {\n throw new Error(\"The field \".concat(e, \" validators are not defined. Please ensure the field is added first\"));\n }\n\n var t = this.elements[e];\n var i = this.fields[e];\n delete this.elements[e];\n delete this.fields[e];\n this.emit(\"core.field.removed\", {\n elements: t,\n field: e,\n options: i\n });\n return this;\n }\n }, {\n key: \"validate\",\n value: function validate() {\n var _this = this;\n\n this.emit(\"core.form.validating\");\n return this.filter.execute(\"validate-pre\", Promise.resolve(), []).then(function () {\n return Promise.all(Object.keys(_this.fields).map(function (e) {\n return _this.validateField(e);\n })).then(function (e) {\n switch (true) {\n case e.indexOf(\"Invalid\") !== -1:\n _this.emit(\"core.form.invalid\");\n\n return Promise.resolve(\"Invalid\");\n\n case e.indexOf(\"NotValidated\") !== -1:\n _this.emit(\"core.form.notvalidated\");\n\n return Promise.resolve(\"NotValidated\");\n\n default:\n _this.emit(\"core.form.valid\");\n\n return Promise.resolve(\"Valid\");\n }\n });\n });\n }\n }, {\n key: \"validateField\",\n value: function validateField(e) {\n var _this2 = this;\n\n var t = this.results.get(e);\n\n if (t === \"Valid\" || t === \"Invalid\") {\n return Promise.resolve(t);\n }\n\n this.emit(\"core.field.validating\", e);\n var i = this.elements[e];\n\n if (i.length === 0) {\n this.emit(\"core.field.valid\", e);\n return Promise.resolve(\"Valid\");\n }\n\n var s = i[0].getAttribute(\"type\");\n\n if (\"radio\" === s || \"checkbox\" === s || i.length === 1) {\n return this.validateElement(e, i[0]);\n } else {\n return Promise.all(i.map(function (t) {\n return _this2.validateElement(e, t);\n })).then(function (t) {\n switch (true) {\n case t.indexOf(\"Invalid\") !== -1:\n _this2.emit(\"core.field.invalid\", e);\n\n _this2.results.set(e, \"Invalid\");\n\n return Promise.resolve(\"Invalid\");\n\n case t.indexOf(\"NotValidated\") !== -1:\n _this2.emit(\"core.field.notvalidated\", e);\n\n _this2.results[\"delete\"](e);\n\n return Promise.resolve(\"NotValidated\");\n\n default:\n _this2.emit(\"core.field.valid\", e);\n\n _this2.results.set(e, \"Valid\");\n\n return Promise.resolve(\"Valid\");\n }\n });\n }\n }\n }, {\n key: \"validateElement\",\n value: function validateElement(e, t) {\n var _this3 = this;\n\n this.results[\"delete\"](e);\n var i = this.elements[e];\n var s = this.filter.execute(\"element-ignored\", false, [e, t, i]);\n\n if (s) {\n this.emit(\"core.element.ignored\", {\n element: t,\n elements: i,\n field: e\n });\n return Promise.resolve(\"Ignored\");\n }\n\n var l = this.fields[e].validators;\n this.emit(\"core.element.validating\", {\n element: t,\n elements: i,\n field: e\n });\n var r = Object.keys(l).map(function (i) {\n return function () {\n return _this3.executeValidator(e, t, i, l[i]);\n };\n });\n return this.waterfall(r).then(function (s) {\n var l = s.indexOf(\"Invalid\") === -1;\n\n _this3.emit(\"core.element.validated\", {\n element: t,\n elements: i,\n field: e,\n valid: l\n });\n\n var r = t.getAttribute(\"type\");\n\n if (\"radio\" === r || \"checkbox\" === r || i.length === 1) {\n _this3.emit(l ? \"core.field.valid\" : \"core.field.invalid\", e);\n }\n\n return Promise.resolve(l ? \"Valid\" : \"Invalid\");\n })[\"catch\"](function (s) {\n _this3.emit(\"core.element.notvalidated\", {\n element: t,\n elements: i,\n field: e\n });\n\n return Promise.resolve(s);\n });\n }\n }, {\n key: \"executeValidator\",\n value: function executeValidator(e, t, i, s) {\n var _this4 = this;\n\n var l = this.elements[e];\n var r = this.filter.execute(\"validator-name\", i, [i, e]);\n s.message = this.filter.execute(\"validator-message\", s.message, [this.locale, e, r]);\n\n if (!this.validators[r] || s.enabled === false) {\n this.emit(\"core.validator.validated\", {\n element: t,\n elements: l,\n field: e,\n result: this.normalizeResult(e, r, {\n valid: true\n }),\n validator: r\n });\n return Promise.resolve(\"Valid\");\n }\n\n var a = this.validators[r];\n var d = this.getElementValue(e, t, r);\n var o = this.filter.execute(\"field-should-validate\", true, [e, t, d, i]);\n\n if (!o) {\n this.emit(\"core.validator.notvalidated\", {\n element: t,\n elements: l,\n field: e,\n validator: i\n });\n return Promise.resolve(\"NotValidated\");\n }\n\n this.emit(\"core.validator.validating\", {\n element: t,\n elements: l,\n field: e,\n validator: i\n });\n var n = a().validate({\n element: t,\n elements: l,\n field: e,\n l10n: this.localization,\n options: s,\n value: d\n });\n var h = \"function\" === typeof n[\"then\"];\n\n if (h) {\n return n.then(function (s) {\n var r = _this4.normalizeResult(e, i, s);\n\n _this4.emit(\"core.validator.validated\", {\n element: t,\n elements: l,\n field: e,\n result: r,\n validator: i\n });\n\n return r.valid ? \"Valid\" : \"Invalid\";\n });\n } else {\n var _s = this.normalizeResult(e, i, n);\n\n this.emit(\"core.validator.validated\", {\n element: t,\n elements: l,\n field: e,\n result: _s,\n validator: i\n });\n return Promise.resolve(_s.valid ? \"Valid\" : \"Invalid\");\n }\n }\n }, {\n key: \"getElementValue\",\n value: function getElementValue(e$1, t, s) {\n var l = e(this.form, e$1, t, this.elements[e$1]);\n return this.filter.execute(\"field-value\", l, [l, e$1, t, s]);\n }\n }, {\n key: \"getElements\",\n value: function getElements(e) {\n return this.elements[e];\n }\n }, {\n key: \"getFields\",\n value: function getFields() {\n return this.fields;\n }\n }, {\n key: \"getFormElement\",\n value: function getFormElement() {\n return this.form;\n }\n }, {\n key: \"getLocale\",\n value: function getLocale() {\n return this.locale;\n }\n }, {\n key: \"getPlugin\",\n value: function getPlugin(e) {\n return this.plugins[e];\n }\n }, {\n key: \"updateFieldStatus\",\n value: function updateFieldStatus(e, t, i) {\n var _this5 = this;\n\n var s = this.elements[e];\n var l = s[0].getAttribute(\"type\");\n var r = \"radio\" === l || \"checkbox\" === l ? [s[0]] : s;\n r.forEach(function (s) {\n return _this5.updateElementStatus(e, s, t, i);\n });\n\n if (!i) {\n switch (t) {\n case \"NotValidated\":\n this.emit(\"core.field.notvalidated\", e);\n this.results[\"delete\"](e);\n break;\n\n case \"Validating\":\n this.emit(\"core.field.validating\", e);\n this.results[\"delete\"](e);\n break;\n\n case \"Valid\":\n this.emit(\"core.field.valid\", e);\n this.results.set(e, \"Valid\");\n break;\n\n case \"Invalid\":\n this.emit(\"core.field.invalid\", e);\n this.results.set(e, \"Invalid\");\n break;\n }\n }\n\n return this;\n }\n }, {\n key: \"updateElementStatus\",\n value: function updateElementStatus(e, t, i, s) {\n var _this6 = this;\n\n var l = this.elements[e];\n var r = this.fields[e].validators;\n var a = s ? [s] : Object.keys(r);\n\n switch (i) {\n case \"NotValidated\":\n a.forEach(function (i) {\n return _this6.emit(\"core.validator.notvalidated\", {\n element: t,\n elements: l,\n field: e,\n validator: i\n });\n });\n this.emit(\"core.element.notvalidated\", {\n element: t,\n elements: l,\n field: e\n });\n break;\n\n case \"Validating\":\n a.forEach(function (i) {\n return _this6.emit(\"core.validator.validating\", {\n element: t,\n elements: l,\n field: e,\n validator: i\n });\n });\n this.emit(\"core.element.validating\", {\n element: t,\n elements: l,\n field: e\n });\n break;\n\n case \"Valid\":\n a.forEach(function (i) {\n return _this6.emit(\"core.validator.validated\", {\n element: t,\n field: e,\n result: {\n message: r[i].message,\n valid: true\n },\n validator: i\n });\n });\n this.emit(\"core.element.validated\", {\n element: t,\n elements: l,\n field: e,\n valid: true\n });\n break;\n\n case \"Invalid\":\n a.forEach(function (i) {\n return _this6.emit(\"core.validator.validated\", {\n element: t,\n field: e,\n result: {\n message: r[i].message,\n valid: false\n },\n validator: i\n });\n });\n this.emit(\"core.element.validated\", {\n element: t,\n elements: l,\n field: e,\n valid: false\n });\n break;\n }\n\n return this;\n }\n }, {\n key: \"resetForm\",\n value: function resetForm(e) {\n var _this7 = this;\n\n Object.keys(this.fields).forEach(function (t) {\n return _this7.resetField(t, e);\n });\n this.emit(\"core.form.reset\", {\n reset: e\n });\n return this;\n }\n }, {\n key: \"resetField\",\n value: function resetField(e, t) {\n if (t) {\n var _t = this.elements[e];\n\n var _i = _t[0].getAttribute(\"type\");\n\n _t.forEach(function (e) {\n if (\"radio\" === _i || \"checkbox\" === _i) {\n e.removeAttribute(\"selected\");\n e.removeAttribute(\"checked\");\n e.checked = false;\n } else {\n e.setAttribute(\"value\", \"\");\n\n if (e instanceof HTMLInputElement || e instanceof HTMLTextAreaElement) {\n e.value = \"\";\n }\n }\n });\n }\n\n this.updateFieldStatus(e, \"NotValidated\");\n this.emit(\"core.field.reset\", {\n field: e,\n reset: t\n });\n return this;\n }\n }, {\n key: \"revalidateField\",\n value: function revalidateField(e) {\n this.updateFieldStatus(e, \"NotValidated\");\n return this.validateField(e);\n }\n }, {\n key: \"disableValidator\",\n value: function disableValidator(e, t) {\n return this.toggleValidator(false, e, t);\n }\n }, {\n key: \"enableValidator\",\n value: function enableValidator(e, t) {\n return this.toggleValidator(true, e, t);\n }\n }, {\n key: \"updateValidatorOption\",\n value: function updateValidatorOption(e, t, i, s) {\n if (this.fields[e] && this.fields[e].validators && this.fields[e].validators[t]) {\n this.fields[e].validators[t][i] = s;\n }\n\n return this;\n }\n }, {\n key: \"setFieldOptions\",\n value: function setFieldOptions(e, t) {\n this.fields[e] = t;\n return this;\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var _this8 = this;\n\n Object.keys(this.plugins).forEach(function (e) {\n return _this8.plugins[e].uninstall();\n });\n this.ee.clear();\n this.filter.clear();\n this.results.clear();\n this.plugins = {};\n return this;\n }\n }, {\n key: \"setLocale\",\n value: function setLocale(e, t) {\n this.locale = e;\n this.localization = t;\n return this;\n }\n }, {\n key: \"waterfall\",\n value: function waterfall(e) {\n return e.reduce(function (e, t) {\n return e.then(function (e) {\n return t().then(function (t) {\n e.push(t);\n return e;\n });\n });\n }, Promise.resolve([]));\n }\n }, {\n key: \"queryElements\",\n value: function queryElements(e) {\n var t = this.fields[e].selector ? \"#\" === this.fields[e].selector.charAt(0) ? '[id=\"'.concat(this.fields[e].selector.substring(1), '\"]') : this.fields[e].selector : '[name=\"'.concat(e, '\"]');\n return [].slice.call(this.form.querySelectorAll(t));\n }\n }, {\n key: \"normalizeResult\",\n value: function normalizeResult(e, t, i) {\n var s = this.fields[e].validators[t];\n return Object.assign({}, i, {\n message: i.message || (s ? s.message : \"\") || (this.localization && this.localization[t] && this.localization[t][\"default\"] ? this.localization[t][\"default\"] : \"\") || \"The field \".concat(e, \" is not valid\")\n });\n }\n }, {\n key: \"toggleValidator\",\n value: function toggleValidator(e, t, i) {\n var _this9 = this;\n\n var s = this.fields[t].validators;\n\n if (i && s && s[i]) {\n this.fields[t].validators[i].enabled = e;\n } else if (!i) {\n Object.keys(s).forEach(function (i) {\n return _this9.fields[t].validators[i].enabled = e;\n });\n }\n\n return this.updateFieldStatus(t, \"NotValidated\", i);\n }\n }]);\n\n return l;\n }();\n\n function r$d(e, t) {\n var i = Object.assign({}, {\n fields: {},\n locale: \"en_US\",\n plugins: {}\n }, t);\n var r = new l$1(e, i.fields);\n r.setLocale(i.locale, i.localization);\n Object.keys(i.plugins).forEach(function (e) {\n return r.registerPlugin(e, i.plugins[e]);\n });\n Object.keys(s$7).forEach(function (e) {\n return r.registerValidator(e, s$7[e]);\n });\n Object.keys(i.fields).forEach(function (e) {\n return r.addField(e, i.fields[e]);\n });\n return r;\n }\n\n var t$10 = function () {\n function t(_t) {\n _classCallCheck(this, t);\n\n this.opts = _t;\n }\n\n _createClass(t, [{\n key: \"setCore\",\n value: function setCore(t) {\n this.core = t;\n return this;\n }\n }, {\n key: \"install\",\n value: function install() {}\n }, {\n key: \"uninstall\",\n value: function uninstall() {}\n }]);\n\n return t;\n }();\n\n var index$1 = {\n getFieldValue: e\n };\n\n var e$D = function (_t) {\n _inherits(e, _t);\n\n var _super = _createSuper(e);\n\n function e(t) {\n var _this;\n\n _classCallCheck(this, e);\n\n _this = _super.call(this, t);\n _this.opts = t || {};\n _this.validatorNameFilter = _this.getValidatorName.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(e, [{\n key: \"install\",\n value: function install() {\n this.core.registerFilter(\"validator-name\", this.validatorNameFilter);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.core.deregisterFilter(\"validator-name\", this.validatorNameFilter);\n }\n }, {\n key: \"getValidatorName\",\n value: function getValidatorName(t, e) {\n return this.opts[t] || t;\n }\n }]);\n\n return e;\n }(t$10);\n\n var i = function (_e) {\n _inherits(i, _e);\n\n var _super = _createSuper(i);\n\n function i() {\n var _this;\n\n _classCallCheck(this, i);\n\n _this = _super.call(this, {});\n _this.elementValidatedHandler = _this.onElementValidated.bind(_assertThisInitialized(_this));\n _this.fieldValidHandler = _this.onFieldValid.bind(_assertThisInitialized(_this));\n _this.fieldInvalidHandler = _this.onFieldInvalid.bind(_assertThisInitialized(_this));\n _this.messageDisplayedHandler = _this.onMessageDisplayed.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(i, [{\n key: \"install\",\n value: function install() {\n this.core.on(\"core.field.valid\", this.fieldValidHandler).on(\"core.field.invalid\", this.fieldInvalidHandler).on(\"core.element.validated\", this.elementValidatedHandler).on(\"plugins.message.displayed\", this.messageDisplayedHandler);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.core.off(\"core.field.valid\", this.fieldValidHandler).off(\"core.field.invalid\", this.fieldInvalidHandler).off(\"core.element.validated\", this.elementValidatedHandler).off(\"plugins.message.displayed\", this.messageDisplayedHandler);\n }\n }, {\n key: \"onElementValidated\",\n value: function onElementValidated(e) {\n if (e.valid) {\n e.element.setAttribute(\"aria-invalid\", \"false\");\n e.element.removeAttribute(\"aria-describedby\");\n }\n }\n }, {\n key: \"onFieldValid\",\n value: function onFieldValid(e) {\n var i = this.core.getElements(e);\n\n if (i) {\n i.forEach(function (e) {\n e.setAttribute(\"aria-invalid\", \"false\");\n e.removeAttribute(\"aria-describedby\");\n });\n }\n }\n }, {\n key: \"onFieldInvalid\",\n value: function onFieldInvalid(e) {\n var i = this.core.getElements(e);\n\n if (i) {\n i.forEach(function (e) {\n return e.setAttribute(\"aria-invalid\", \"true\");\n });\n }\n }\n }, {\n key: \"onMessageDisplayed\",\n value: function onMessageDisplayed(e) {\n e.messageElement.setAttribute(\"role\", \"alert\");\n e.messageElement.setAttribute(\"aria-hidden\", \"false\");\n var i = this.core.getElements(e.field);\n var t = i.indexOf(e.element);\n var l = \"js-fv-\".concat(e.field, \"-\").concat(t, \"-\").concat(Date.now(), \"-message\");\n e.messageElement.setAttribute(\"id\", l);\n e.element.setAttribute(\"aria-describedby\", l);\n var a = e.element.getAttribute(\"type\");\n\n if (\"radio\" === a || \"checkbox\" === a) {\n i.forEach(function (e) {\n return e.setAttribute(\"aria-describedby\", l);\n });\n }\n }\n }]);\n\n return i;\n }(t$10);\n\n var t$11 = function (_e) {\n _inherits(t, _e);\n\n var _super = _createSuper(t);\n\n function t(e) {\n var _this;\n\n _classCallCheck(this, t);\n\n _this = _super.call(this, e);\n _this.addedFields = new Map();\n _this.opts = Object.assign({}, {\n html5Input: false,\n pluginPrefix: \"data-fvp-\",\n prefix: \"data-fv-\"\n }, e);\n _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this));\n _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(t, [{\n key: \"install\",\n value: function install() {\n var _this2 = this;\n\n this.parsePlugins();\n var e = this.parseOptions();\n Object.keys(e).forEach(function (t) {\n if (!_this2.addedFields.has(t)) {\n _this2.addedFields.set(t, true);\n }\n\n _this2.core.addField(t, e[t]);\n });\n this.core.on(\"core.field.added\", this.fieldAddedHandler).on(\"core.field.removed\", this.fieldRemovedHandler);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.addedFields.clear();\n this.core.off(\"core.field.added\", this.fieldAddedHandler).off(\"core.field.removed\", this.fieldRemovedHandler);\n }\n }, {\n key: \"onFieldAdded\",\n value: function onFieldAdded(e) {\n var _this3 = this;\n\n var t = e.elements;\n\n if (!t || t.length === 0 || this.addedFields.has(e.field)) {\n return;\n }\n\n this.addedFields.set(e.field, true);\n t.forEach(function (t) {\n var s = _this3.parseElement(t);\n\n if (!_this3.isEmptyOption(s)) {\n var _t = {\n selector: e.options.selector,\n validators: Object.assign({}, e.options.validators || {}, s.validators)\n };\n\n _this3.core.setFieldOptions(e.field, _t);\n }\n });\n }\n }, {\n key: \"onFieldRemoved\",\n value: function onFieldRemoved(e) {\n if (e.field && this.addedFields.has(e.field)) {\n this.addedFields[\"delete\"](e.field);\n }\n }\n }, {\n key: \"parseOptions\",\n value: function parseOptions() {\n var _this4 = this;\n\n var e = this.opts.prefix;\n var t = {};\n var s = this.core.getFields();\n var a = this.core.getFormElement();\n var i = [].slice.call(a.querySelectorAll(\"[name], [\".concat(e, \"field]\")));\n i.forEach(function (s) {\n var a = _this4.parseElement(s);\n\n if (!_this4.isEmptyOption(a)) {\n var _i = s.getAttribute(\"name\") || s.getAttribute(\"\".concat(e, \"field\"));\n\n t[_i] = Object.assign({}, t[_i], a);\n }\n });\n Object.keys(t).forEach(function (e) {\n Object.keys(t[e].validators).forEach(function (a) {\n t[e].validators[a].enabled = t[e].validators[a].enabled || false;\n\n if (s[e] && s[e].validators && s[e].validators[a]) {\n Object.assign(t[e].validators[a], s[e].validators[a]);\n }\n });\n });\n return Object.assign({}, s, t);\n }\n }, {\n key: \"createPluginInstance\",\n value: function createPluginInstance(e, t) {\n var s = e.split(\".\");\n var a = window || this;\n\n for (var _e2 = 0, _t2 = s.length; _e2 < _t2; _e2++) {\n a = a[s[_e2]];\n }\n\n if (typeof a !== \"function\") {\n throw new Error(\"the plugin \".concat(e, \" doesn't exist\"));\n }\n\n return new a(t);\n }\n }, {\n key: \"parsePlugins\",\n value: function parsePlugins() {\n var _this5 = this;\n\n var e = this.core.getFormElement();\n var t = new RegExp(\"^\".concat(this.opts.pluginPrefix, \"([a-z0-9-]+)(___)*([a-z0-9-]+)*$\"));\n var s = e.attributes.length;\n var a = {};\n\n for (var i = 0; i < s; i++) {\n var _s = e.attributes[i].name;\n var n = e.attributes[i].value;\n var r = t.exec(_s);\n\n if (r && r.length === 4) {\n var _e3 = this.toCamelCase(r[1]);\n\n a[_e3] = Object.assign({}, r[3] ? _defineProperty({}, this.toCamelCase(r[3]), n) : {\n enabled: \"\" === n || \"true\" === n\n }, a[_e3]);\n }\n }\n\n Object.keys(a).forEach(function (e) {\n var t = a[e];\n var s = t[\"enabled\"];\n var i = t[\"class\"];\n\n if (s && i) {\n delete t[\"enabled\"];\n delete t[\"clazz\"];\n\n var _s2 = _this5.createPluginInstance(i, t);\n\n _this5.core.registerPlugin(e, _s2);\n }\n });\n }\n }, {\n key: \"isEmptyOption\",\n value: function isEmptyOption(e) {\n var t = e.validators;\n return Object.keys(t).length === 0 && t.constructor === Object;\n }\n }, {\n key: \"parseElement\",\n value: function parseElement(e) {\n var t = new RegExp(\"^\".concat(this.opts.prefix, \"([a-z0-9-]+)(___)*([a-z0-9-]+)*$\"));\n var s = e.attributes.length;\n var a = {};\n var i = e.getAttribute(\"type\");\n\n for (var n = 0; n < s; n++) {\n var _s3 = e.attributes[n].name;\n var r = e.attributes[n].value;\n\n if (this.opts.html5Input) {\n switch (true) {\n case \"minlength\" === _s3:\n a[\"stringLength\"] = Object.assign({}, {\n enabled: true,\n min: parseInt(r, 10)\n }, a[\"stringLength\"]);\n break;\n\n case \"maxlength\" === _s3:\n a[\"stringLength\"] = Object.assign({}, {\n enabled: true,\n max: parseInt(r, 10)\n }, a[\"stringLength\"]);\n break;\n\n case \"pattern\" === _s3:\n a[\"regexp\"] = Object.assign({}, {\n enabled: true,\n regexp: r\n }, a[\"regexp\"]);\n break;\n\n case \"required\" === _s3:\n a[\"notEmpty\"] = Object.assign({}, {\n enabled: true\n }, a[\"notEmpty\"]);\n break;\n\n case \"type\" === _s3 && \"color\" === r:\n a[\"color\"] = Object.assign({}, {\n enabled: true,\n type: \"hex\"\n }, a[\"color\"]);\n break;\n\n case \"type\" === _s3 && \"email\" === r:\n a[\"emailAddress\"] = Object.assign({}, {\n enabled: true\n }, a[\"emailAddress\"]);\n break;\n\n case \"type\" === _s3 && \"url\" === r:\n a[\"uri\"] = Object.assign({}, {\n enabled: true\n }, a[\"uri\"]);\n break;\n\n case \"type\" === _s3 && \"range\" === r:\n a[\"between\"] = Object.assign({}, {\n enabled: true,\n max: parseFloat(e.getAttribute(\"max\")),\n min: parseFloat(e.getAttribute(\"min\"))\n }, a[\"between\"]);\n break;\n\n case \"min\" === _s3 && i !== \"date\" && i !== \"range\":\n a[\"greaterThan\"] = Object.assign({}, {\n enabled: true,\n min: parseFloat(r)\n }, a[\"greaterThan\"]);\n break;\n\n case \"max\" === _s3 && i !== \"date\" && i !== \"range\":\n a[\"lessThan\"] = Object.assign({}, {\n enabled: true,\n max: parseFloat(r)\n }, a[\"lessThan\"]);\n break;\n }\n }\n\n var l = t.exec(_s3);\n\n if (l && l.length === 4) {\n var _e4 = this.toCamelCase(l[1]);\n\n a[_e4] = Object.assign({}, l[3] ? _defineProperty({}, this.toCamelCase(l[3]), this.normalizeValue(r)) : {\n enabled: \"\" === r || \"true\" === r\n }, a[_e4]);\n }\n }\n\n return {\n validators: a\n };\n }\n }, {\n key: \"normalizeValue\",\n value: function normalizeValue(e) {\n return e === \"true\" ? true : e === \"false\" ? false : e;\n }\n }, {\n key: \"toUpperCase\",\n value: function toUpperCase(e) {\n return e.charAt(1).toUpperCase();\n }\n }, {\n key: \"toCamelCase\",\n value: function toCamelCase(e) {\n return e.replace(/-./g, this.toUpperCase);\n }\n }]);\n\n return t;\n }(t$10);\n\n var o$4 = function (_t) {\n _inherits(o, _t);\n\n var _super = _createSuper(o);\n\n function o() {\n var _this;\n\n _classCallCheck(this, o);\n\n _this = _super.call(this, {});\n _this.onValidHandler = _this.onFormValid.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(o, [{\n key: \"install\",\n value: function install() {\n var t = this.core.getFormElement();\n\n if (t.querySelectorAll('[type=\"submit\"][name=\"submit\"]').length) {\n throw new Error(\"Do not use `submit` for the name attribute of submit button\");\n }\n\n this.core.on(\"core.form.valid\", this.onValidHandler);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.core.off(\"core.form.valid\", this.onValidHandler);\n }\n }, {\n key: \"onFormValid\",\n value: function onFormValid() {\n var t = this.core.getFormElement();\n\n if (t instanceof HTMLFormElement) {\n t.submit();\n }\n }\n }]);\n\n return o;\n }(t$10);\n\n var e$E = function (_t) {\n _inherits(e, _t);\n\n var _super = _createSuper(e);\n\n function e(t) {\n var _this;\n\n _classCallCheck(this, e);\n\n _this = _super.call(this, t);\n _this.opts = t || {};\n _this.triggerExecutedHandler = _this.onTriggerExecuted.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(e, [{\n key: \"install\",\n value: function install() {\n this.core.on(\"plugins.trigger.executed\", this.triggerExecutedHandler);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.core.off(\"plugins.trigger.executed\", this.triggerExecutedHandler);\n }\n }, {\n key: \"onTriggerExecuted\",\n value: function onTriggerExecuted(t) {\n if (this.opts[t.field]) {\n var _e = this.opts[t.field].split(\" \");\n\n var _iterator = _createForOfIteratorHelper(_e),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _t2 = _step.value;\n\n var _e2 = _t2.trim();\n\n if (this.opts[_e2]) {\n this.core.revalidateField(_e2);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }\n }]);\n\n return e;\n }(t$10);\n\n var e$F = function (_t) {\n _inherits(e, _t);\n\n var _super = _createSuper(e);\n\n function e(t) {\n var _this;\n\n _classCallCheck(this, e);\n\n _this = _super.call(this, t);\n _this.opts = Object.assign({}, {\n excluded: e.defaultIgnore\n }, t);\n _this.ignoreValidationFilter = _this.ignoreValidation.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(e, [{\n key: \"install\",\n value: function install() {\n this.core.registerFilter(\"element-ignored\", this.ignoreValidationFilter);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.core.deregisterFilter(\"element-ignored\", this.ignoreValidationFilter);\n }\n }, {\n key: \"ignoreValidation\",\n value: function ignoreValidation(t, e, i) {\n return this.opts.excluded.apply(this, [t, e, i]);\n }\n }], [{\n key: \"defaultIgnore\",\n value: function defaultIgnore(t, e, i) {\n var r = !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length);\n var n = e.getAttribute(\"disabled\");\n return n === \"\" || n === \"disabled\" || e.getAttribute(\"type\") === \"hidden\" || !r;\n }\n }]);\n\n return e;\n }(t$10);\n\n var t$12 = function (_e) {\n _inherits(t, _e);\n\n var _super = _createSuper(t);\n\n function t(e) {\n var _this;\n\n _classCallCheck(this, t);\n\n _this = _super.call(this, e);\n _this.statuses = new Map();\n _this.opts = Object.assign({}, {\n onStatusChanged: function onStatusChanged() {}\n }, e);\n _this.elementValidatingHandler = _this.onElementValidating.bind(_assertThisInitialized(_this));\n _this.elementValidatedHandler = _this.onElementValidated.bind(_assertThisInitialized(_this));\n _this.elementNotValidatedHandler = _this.onElementNotValidated.bind(_assertThisInitialized(_this));\n _this.elementIgnoredHandler = _this.onElementIgnored.bind(_assertThisInitialized(_this));\n _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this));\n _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(t, [{\n key: \"install\",\n value: function install() {\n this.core.on(\"core.element.validating\", this.elementValidatingHandler).on(\"core.element.validated\", this.elementValidatedHandler).on(\"core.element.notvalidated\", this.elementNotValidatedHandler).on(\"core.element.ignored\", this.elementIgnoredHandler).on(\"core.field.added\", this.fieldAddedHandler).on(\"core.field.removed\", this.fieldRemovedHandler);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.statuses.clear();\n this.core.off(\"core.element.validating\", this.elementValidatingHandler).off(\"core.element.validated\", this.elementValidatedHandler).off(\"core.element.notvalidated\", this.elementNotValidatedHandler).off(\"core.element.ignored\", this.elementIgnoredHandler).off(\"core.field.added\", this.fieldAddedHandler).off(\"core.field.removed\", this.fieldRemovedHandler);\n }\n }, {\n key: \"areFieldsValid\",\n value: function areFieldsValid() {\n return Array.from(this.statuses.values()).every(function (e) {\n return e === \"Valid\" || e === \"NotValidated\" || e === \"Ignored\";\n });\n }\n }, {\n key: \"getStatuses\",\n value: function getStatuses() {\n return this.statuses;\n }\n }, {\n key: \"onFieldAdded\",\n value: function onFieldAdded(e) {\n this.statuses.set(e.field, \"NotValidated\");\n }\n }, {\n key: \"onFieldRemoved\",\n value: function onFieldRemoved(e) {\n if (this.statuses.has(e.field)) {\n this.statuses[\"delete\"](e.field);\n }\n\n this.opts.onStatusChanged(this.areFieldsValid());\n }\n }, {\n key: \"onElementValidating\",\n value: function onElementValidating(e) {\n this.statuses.set(e.field, \"Validating\");\n this.opts.onStatusChanged(false);\n }\n }, {\n key: \"onElementValidated\",\n value: function onElementValidated(e) {\n this.statuses.set(e.field, e.valid ? \"Valid\" : \"Invalid\");\n\n if (e.valid) {\n this.opts.onStatusChanged(this.areFieldsValid());\n } else {\n this.opts.onStatusChanged(false);\n }\n }\n }, {\n key: \"onElementNotValidated\",\n value: function onElementNotValidated(e) {\n this.statuses.set(e.field, \"NotValidated\");\n this.opts.onStatusChanged(false);\n }\n }, {\n key: \"onElementIgnored\",\n value: function onElementIgnored(e) {\n this.statuses.set(e.field, \"Ignored\");\n this.opts.onStatusChanged(this.areFieldsValid());\n }\n }]);\n\n return t;\n }(t$10);\n\n function s$8(s, a) {\n a.split(\" \").forEach(function (a) {\n if (s.classList) {\n s.classList.add(a);\n } else if (\" \".concat(s.className, \" \").indexOf(\" \".concat(a, \" \"))) {\n s.className += \" \".concat(a);\n }\n });\n }\n\n function a$7(s, a) {\n a.split(\" \").forEach(function (a) {\n s.classList ? s.classList.remove(a) : s.className = s.className.replace(a, \"\");\n });\n }\n\n function c(c, e) {\n var t = [];\n var f = [];\n Object.keys(e).forEach(function (s) {\n if (s) {\n e[s] ? t.push(s) : f.push(s);\n }\n });\n f.forEach(function (s) {\n return a$7(c, s);\n });\n t.forEach(function (a) {\n return s$8(c, a);\n });\n }\n\n function e$G(e, t) {\n var l = e.matches || e.webkitMatchesSelector || e[\"mozMatchesSelector\"] || e[\"msMatchesSelector\"];\n\n if (l) {\n return l.call(e, t);\n }\n\n var c = [].slice.call(e.parentElement.querySelectorAll(t));\n return c.indexOf(e) >= 0;\n }\n\n function t$13(t, l) {\n var c = t;\n\n while (c) {\n if (e$G(c, l)) {\n break;\n }\n\n c = c.parentElement;\n }\n\n return c;\n }\n\n var s$9 = function (_e) {\n _inherits(s, _e);\n\n var _super = _createSuper(s);\n\n function s(e) {\n var _this;\n\n _classCallCheck(this, s);\n\n _this = _super.call(this, e);\n _this.messages = new Map();\n _this.defaultContainer = document.createElement(\"div\");\n _this.opts = Object.assign({}, {\n container: function container(e, t) {\n return _this.defaultContainer;\n }\n }, e);\n _this.elementIgnoredHandler = _this.onElementIgnored.bind(_assertThisInitialized(_this));\n _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this));\n _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_assertThisInitialized(_this));\n _this.validatorValidatedHandler = _this.onValidatorValidated.bind(_assertThisInitialized(_this));\n _this.validatorNotValidatedHandler = _this.onValidatorNotValidated.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(s, [{\n key: \"install\",\n value: function install() {\n this.core.getFormElement().appendChild(this.defaultContainer);\n this.core.on(\"core.element.ignored\", this.elementIgnoredHandler).on(\"core.field.added\", this.fieldAddedHandler).on(\"core.field.removed\", this.fieldRemovedHandler).on(\"core.validator.validated\", this.validatorValidatedHandler).on(\"core.validator.notvalidated\", this.validatorNotValidatedHandler);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.core.getFormElement().removeChild(this.defaultContainer);\n this.messages.forEach(function (e) {\n return e.parentNode.removeChild(e);\n });\n this.messages.clear();\n this.core.off(\"core.element.ignored\", this.elementIgnoredHandler).off(\"core.field.added\", this.fieldAddedHandler).off(\"core.field.removed\", this.fieldRemovedHandler).off(\"core.validator.validated\", this.validatorValidatedHandler).off(\"core.validator.notvalidated\", this.validatorNotValidatedHandler);\n }\n }, {\n key: \"onFieldAdded\",\n value: function onFieldAdded(e) {\n var _this2 = this;\n\n var t = e.elements;\n\n if (t) {\n t.forEach(function (e) {\n var t = _this2.messages.get(e);\n\n if (t) {\n t.parentNode.removeChild(t);\n\n _this2.messages[\"delete\"](e);\n }\n });\n this.prepareFieldContainer(e.field, t);\n }\n }\n }, {\n key: \"onFieldRemoved\",\n value: function onFieldRemoved(e) {\n var _this3 = this;\n\n if (!e.elements.length || !e.field) {\n return;\n }\n\n var t = e.elements[0].getAttribute(\"type\");\n var s = \"radio\" === t || \"checkbox\" === t ? [e.elements[0]] : e.elements;\n s.forEach(function (e) {\n if (_this3.messages.has(e)) {\n var _t = _this3.messages.get(e);\n\n _t.parentNode.removeChild(_t);\n\n _this3.messages[\"delete\"](e);\n }\n });\n }\n }, {\n key: \"prepareFieldContainer\",\n value: function prepareFieldContainer(e, t) {\n var _this4 = this;\n\n if (t.length) {\n var _s = t[0].getAttribute(\"type\");\n\n if (\"radio\" === _s || \"checkbox\" === _s) {\n this.prepareElementContainer(e, t[0], t);\n } else {\n t.forEach(function (s) {\n return _this4.prepareElementContainer(e, s, t);\n });\n }\n }\n }\n }, {\n key: \"prepareElementContainer\",\n value: function prepareElementContainer(e, s, i) {\n var a;\n\n if (\"string\" === typeof this.opts.container) {\n var _e2 = \"#\" === this.opts.container.charAt(0) ? '[id=\"'.concat(this.opts.container.substring(1), '\"]') : this.opts.container;\n\n a = this.core.getFormElement().querySelector(_e2);\n } else {\n a = this.opts.container(e, s);\n }\n\n var l = document.createElement(\"div\");\n a.appendChild(l);\n c(l, {\n \"fv-plugins-message-container\": true\n });\n this.core.emit(\"plugins.message.placed\", {\n element: s,\n elements: i,\n field: e,\n messageElement: l\n });\n this.messages.set(s, l);\n }\n }, {\n key: \"getMessage\",\n value: function getMessage(e) {\n return typeof e.message === \"string\" ? e.message : e.message[this.core.getLocale()];\n }\n }, {\n key: \"onValidatorValidated\",\n value: function onValidatorValidated(e) {\n var s = e.elements;\n var i = e.element.getAttribute(\"type\");\n var a = \"radio\" === i || \"checkbox\" === i ? s[0] : e.element;\n\n if (this.messages.has(a)) {\n var _s2 = this.messages.get(a);\n\n var _i = _s2.querySelector('[data-field=\"'.concat(e.field, '\"][data-validator=\"').concat(e.validator, '\"]'));\n\n if (!_i && !e.result.valid) {\n var _i2 = document.createElement(\"div\");\n\n _i2.innerHTML = this.getMessage(e.result);\n\n _i2.setAttribute(\"data-field\", e.field);\n\n _i2.setAttribute(\"data-validator\", e.validator);\n\n if (this.opts.clazz) {\n c(_i2, _defineProperty({}, this.opts.clazz, true));\n }\n\n _s2.appendChild(_i2);\n\n this.core.emit(\"plugins.message.displayed\", {\n element: e.element,\n field: e.field,\n message: e.result.message,\n messageElement: _i2,\n meta: e.result.meta,\n validator: e.validator\n });\n } else if (_i && !e.result.valid) {\n _i.innerHTML = this.getMessage(e.result);\n this.core.emit(\"plugins.message.displayed\", {\n element: e.element,\n field: e.field,\n message: e.result.message,\n messageElement: _i,\n meta: e.result.meta,\n validator: e.validator\n });\n } else if (_i && e.result.valid) {\n _s2.removeChild(_i);\n }\n }\n }\n }, {\n key: \"onValidatorNotValidated\",\n value: function onValidatorNotValidated(e) {\n var t = e.elements;\n var s = e.element.getAttribute(\"type\");\n var i = \"radio\" === s || \"checkbox\" === s ? t[0] : e.element;\n\n if (this.messages.has(i)) {\n var _t3 = this.messages.get(i);\n\n var _s3 = _t3.querySelector('[data-field=\"'.concat(e.field, '\"][data-validator=\"').concat(e.validator, '\"]'));\n\n if (_s3) {\n _t3.removeChild(_s3);\n }\n }\n }\n }, {\n key: \"onElementIgnored\",\n value: function onElementIgnored(e) {\n var t = e.elements;\n var s = e.element.getAttribute(\"type\");\n var i = \"radio\" === s || \"checkbox\" === s ? t[0] : e.element;\n\n if (this.messages.has(i)) {\n var _t4 = this.messages.get(i);\n\n var _s4 = [].slice.call(_t4.querySelectorAll('[data-field=\"'.concat(e.field, '\"]')));\n\n _s4.forEach(function (e) {\n _t4.removeChild(e);\n });\n }\n }\n }], [{\n key: \"getClosestContainer\",\n value: function getClosestContainer(e, t, s) {\n var i = e;\n\n while (i) {\n if (i === t) {\n break;\n }\n\n i = i.parentElement;\n\n if (s.test(i.className)) {\n break;\n }\n }\n\n return i;\n }\n }]);\n\n return s;\n }(t$10);\n\n var l$2 = function (_e) {\n _inherits(l, _e);\n\n var _super = _createSuper(l);\n\n function l(e) {\n var _this;\n\n _classCallCheck(this, l);\n\n _this = _super.call(this, e);\n _this.results = new Map();\n _this.containers = new Map();\n _this.opts = Object.assign({}, {\n defaultMessageContainer: true,\n eleInvalidClass: \"\",\n eleValidClass: \"\",\n rowClasses: \"\",\n rowValidatingClass: \"\"\n }, e);\n _this.elementIgnoredHandler = _this.onElementIgnored.bind(_assertThisInitialized(_this));\n _this.elementValidatingHandler = _this.onElementValidating.bind(_assertThisInitialized(_this));\n _this.elementValidatedHandler = _this.onElementValidated.bind(_assertThisInitialized(_this));\n _this.elementNotValidatedHandler = _this.onElementNotValidated.bind(_assertThisInitialized(_this));\n _this.iconPlacedHandler = _this.onIconPlaced.bind(_assertThisInitialized(_this));\n _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this));\n _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_assertThisInitialized(_this));\n _this.messagePlacedHandler = _this.onMessagePlaced.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(l, [{\n key: \"install\",\n value: function install() {\n var _t,\n _this2 = this;\n\n c(this.core.getFormElement(), (_t = {}, _defineProperty(_t, this.opts.formClass, true), _defineProperty(_t, \"fv-plugins-framework\", true), _t));\n this.core.on(\"core.element.ignored\", this.elementIgnoredHandler).on(\"core.element.validating\", this.elementValidatingHandler).on(\"core.element.validated\", this.elementValidatedHandler).on(\"core.element.notvalidated\", this.elementNotValidatedHandler).on(\"plugins.icon.placed\", this.iconPlacedHandler).on(\"core.field.added\", this.fieldAddedHandler).on(\"core.field.removed\", this.fieldRemovedHandler);\n\n if (this.opts.defaultMessageContainer) {\n this.core.registerPlugin(\"___frameworkMessage\", new s$9({\n clazz: this.opts.messageClass,\n container: function container(e, t) {\n var l = \"string\" === typeof _this2.opts.rowSelector ? _this2.opts.rowSelector : _this2.opts.rowSelector(e, t);\n var a = t$13(t, l);\n return s$9.getClosestContainer(t, a, _this2.opts.rowPattern);\n }\n }));\n this.core.on(\"plugins.message.placed\", this.messagePlacedHandler);\n }\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n var _t2;\n\n this.results.clear();\n this.containers.clear();\n c(this.core.getFormElement(), (_t2 = {}, _defineProperty(_t2, this.opts.formClass, false), _defineProperty(_t2, \"fv-plugins-framework\", false), _t2));\n this.core.off(\"core.element.ignored\", this.elementIgnoredHandler).off(\"core.element.validating\", this.elementValidatingHandler).off(\"core.element.validated\", this.elementValidatedHandler).off(\"core.element.notvalidated\", this.elementNotValidatedHandler).off(\"plugins.icon.placed\", this.iconPlacedHandler).off(\"core.field.added\", this.fieldAddedHandler).off(\"core.field.removed\", this.fieldRemovedHandler);\n\n if (this.opts.defaultMessageContainer) {\n this.core.off(\"plugins.message.placed\", this.messagePlacedHandler);\n }\n }\n }, {\n key: \"onIconPlaced\",\n value: function onIconPlaced(e) {}\n }, {\n key: \"onMessagePlaced\",\n value: function onMessagePlaced(e) {}\n }, {\n key: \"onFieldAdded\",\n value: function onFieldAdded(e) {\n var _this3 = this;\n\n var s = e.elements;\n\n if (s) {\n s.forEach(function (e) {\n var s = _this3.containers.get(e);\n\n if (s) {\n var _t3;\n\n c(s, (_t3 = {}, _defineProperty(_t3, _this3.opts.rowInvalidClass, false), _defineProperty(_t3, _this3.opts.rowValidatingClass, false), _defineProperty(_t3, _this3.opts.rowValidClass, false), _defineProperty(_t3, \"fv-plugins-icon-container\", false), _t3));\n\n _this3.containers[\"delete\"](e);\n }\n });\n this.prepareFieldContainer(e.field, s);\n }\n }\n }, {\n key: \"onFieldRemoved\",\n value: function onFieldRemoved(e) {\n var _this4 = this;\n\n e.elements.forEach(function (e) {\n var s = _this4.containers.get(e);\n\n if (s) {\n var _t4;\n\n c(s, (_t4 = {}, _defineProperty(_t4, _this4.opts.rowInvalidClass, false), _defineProperty(_t4, _this4.opts.rowValidatingClass, false), _defineProperty(_t4, _this4.opts.rowValidClass, false), _t4));\n }\n });\n }\n }, {\n key: \"prepareFieldContainer\",\n value: function prepareFieldContainer(e, t) {\n var _this5 = this;\n\n if (t.length) {\n var _s = t[0].getAttribute(\"type\");\n\n if (\"radio\" === _s || \"checkbox\" === _s) {\n this.prepareElementContainer(e, t[0]);\n } else {\n t.forEach(function (t) {\n return _this5.prepareElementContainer(e, t);\n });\n }\n }\n }\n }, {\n key: \"prepareElementContainer\",\n value: function prepareElementContainer(e, i) {\n var l = \"string\" === typeof this.opts.rowSelector ? this.opts.rowSelector : this.opts.rowSelector(e, i);\n var a = t$13(i, l);\n\n if (a !== i) {\n var _t5;\n\n c(a, (_t5 = {}, _defineProperty(_t5, this.opts.rowClasses, true), _defineProperty(_t5, \"fv-plugins-icon-container\", true), _t5));\n this.containers.set(i, a);\n }\n }\n }, {\n key: \"onElementValidating\",\n value: function onElementValidating(e) {\n var s = e.elements;\n var i = e.element.getAttribute(\"type\");\n var l = \"radio\" === i || \"checkbox\" === i ? s[0] : e.element;\n var a = this.containers.get(l);\n\n if (a) {\n var _t6;\n\n c(a, (_t6 = {}, _defineProperty(_t6, this.opts.rowInvalidClass, false), _defineProperty(_t6, this.opts.rowValidatingClass, true), _defineProperty(_t6, this.opts.rowValidClass, false), _t6));\n }\n }\n }, {\n key: \"onElementNotValidated\",\n value: function onElementNotValidated(e) {\n this.removeClasses(e.element, e.elements);\n }\n }, {\n key: \"onElementIgnored\",\n value: function onElementIgnored(e) {\n this.removeClasses(e.element, e.elements);\n }\n }, {\n key: \"removeClasses\",\n value: function removeClasses(e, s) {\n var _t7;\n\n var i = e.getAttribute(\"type\");\n var l = \"radio\" === i || \"checkbox\" === i ? s[0] : e;\n c(l, (_t7 = {}, _defineProperty(_t7, this.opts.eleValidClass, false), _defineProperty(_t7, this.opts.eleInvalidClass, false), _t7));\n var a = this.containers.get(l);\n\n if (a) {\n var _t8;\n\n c(a, (_t8 = {}, _defineProperty(_t8, this.opts.rowInvalidClass, false), _defineProperty(_t8, this.opts.rowValidatingClass, false), _defineProperty(_t8, this.opts.rowValidClass, false), _t8));\n }\n }\n }, {\n key: \"onElementValidated\",\n value: function onElementValidated(e) {\n var _this6 = this;\n\n var s = e.elements;\n var i = e.element.getAttribute(\"type\");\n var l = \"radio\" === i || \"checkbox\" === i ? s[0] : e.element;\n s.forEach(function (s) {\n var _t9;\n\n c(s, (_t9 = {}, _defineProperty(_t9, _this6.opts.eleValidClass, e.valid), _defineProperty(_t9, _this6.opts.eleInvalidClass, !e.valid), _t9));\n });\n var a = this.containers.get(l);\n\n if (a) {\n if (!e.valid) {\n var _t10;\n\n this.results.set(l, false);\n c(a, (_t10 = {}, _defineProperty(_t10, this.opts.rowInvalidClass, true), _defineProperty(_t10, this.opts.rowValidatingClass, false), _defineProperty(_t10, this.opts.rowValidClass, false), _t10));\n } else {\n this.results[\"delete\"](l);\n var _e2 = true;\n this.containers.forEach(function (t, s) {\n if (t === a && _this6.results.get(s) === false) {\n _e2 = false;\n }\n });\n\n if (_e2) {\n var _t11;\n\n c(a, (_t11 = {}, _defineProperty(_t11, this.opts.rowInvalidClass, false), _defineProperty(_t11, this.opts.rowValidatingClass, false), _defineProperty(_t11, this.opts.rowValidClass, true), _t11));\n }\n }\n }\n }\n }]);\n\n return l;\n }(t$10);\n\n var i$1 = function (_e) {\n _inherits(i, _e);\n\n var _super = _createSuper(i);\n\n function i(e) {\n var _this;\n\n _classCallCheck(this, i);\n\n _this = _super.call(this, e);\n _this.icons = new Map();\n _this.opts = Object.assign({}, {\n invalid: \"fv-plugins-icon--invalid\",\n onPlaced: function onPlaced() {},\n onSet: function onSet() {},\n valid: \"fv-plugins-icon--valid\",\n validating: \"fv-plugins-icon--validating\"\n }, e);\n _this.elementValidatingHandler = _this.onElementValidating.bind(_assertThisInitialized(_this));\n _this.elementValidatedHandler = _this.onElementValidated.bind(_assertThisInitialized(_this));\n _this.elementNotValidatedHandler = _this.onElementNotValidated.bind(_assertThisInitialized(_this));\n _this.elementIgnoredHandler = _this.onElementIgnored.bind(_assertThisInitialized(_this));\n _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(i, [{\n key: \"install\",\n value: function install() {\n this.core.on(\"core.element.validating\", this.elementValidatingHandler).on(\"core.element.validated\", this.elementValidatedHandler).on(\"core.element.notvalidated\", this.elementNotValidatedHandler).on(\"core.element.ignored\", this.elementIgnoredHandler).on(\"core.field.added\", this.fieldAddedHandler);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.icons.forEach(function (e) {\n return e.parentNode.removeChild(e);\n });\n this.icons.clear();\n this.core.off(\"core.element.validating\", this.elementValidatingHandler).off(\"core.element.validated\", this.elementValidatedHandler).off(\"core.element.notvalidated\", this.elementNotValidatedHandler).off(\"core.element.ignored\", this.elementIgnoredHandler).off(\"core.field.added\", this.fieldAddedHandler);\n }\n }, {\n key: \"onFieldAdded\",\n value: function onFieldAdded(e) {\n var _this2 = this;\n\n var t = e.elements;\n\n if (t) {\n t.forEach(function (e) {\n var t = _this2.icons.get(e);\n\n if (t) {\n t.parentNode.removeChild(t);\n\n _this2.icons[\"delete\"](e);\n }\n });\n this.prepareFieldIcon(e.field, t);\n }\n }\n }, {\n key: \"prepareFieldIcon\",\n value: function prepareFieldIcon(e, t) {\n var _this3 = this;\n\n if (t.length) {\n var _i = t[0].getAttribute(\"type\");\n\n if (\"radio\" === _i || \"checkbox\" === _i) {\n this.prepareElementIcon(e, t[0]);\n } else {\n t.forEach(function (t) {\n return _this3.prepareElementIcon(e, t);\n });\n }\n }\n }\n }, {\n key: \"prepareElementIcon\",\n value: function prepareElementIcon(e, i) {\n var n = document.createElement(\"i\");\n n.setAttribute(\"data-field\", e);\n i.parentNode.insertBefore(n, i.nextSibling);\n c(n, {\n \"fv-plugins-icon\": true\n });\n var l = {\n classes: {\n invalid: this.opts.invalid,\n valid: this.opts.valid,\n validating: this.opts.validating\n },\n element: i,\n field: e,\n iconElement: n\n };\n this.core.emit(\"plugins.icon.placed\", l);\n this.opts.onPlaced(l);\n this.icons.set(i, n);\n }\n }, {\n key: \"onElementValidating\",\n value: function onElementValidating(e) {\n var _this$setClasses;\n\n var t = this.setClasses(e.field, e.element, e.elements, (_this$setClasses = {}, _defineProperty(_this$setClasses, this.opts.invalid, false), _defineProperty(_this$setClasses, this.opts.valid, false), _defineProperty(_this$setClasses, this.opts.validating, true), _this$setClasses));\n var i = {\n element: e.element,\n field: e.field,\n iconElement: t,\n status: \"Validating\"\n };\n this.core.emit(\"plugins.icon.set\", i);\n this.opts.onSet(i);\n }\n }, {\n key: \"onElementValidated\",\n value: function onElementValidated(e) {\n var _this$setClasses2;\n\n var t = this.setClasses(e.field, e.element, e.elements, (_this$setClasses2 = {}, _defineProperty(_this$setClasses2, this.opts.invalid, !e.valid), _defineProperty(_this$setClasses2, this.opts.valid, e.valid), _defineProperty(_this$setClasses2, this.opts.validating, false), _this$setClasses2));\n var i = {\n element: e.element,\n field: e.field,\n iconElement: t,\n status: e.valid ? \"Valid\" : \"Invalid\"\n };\n this.core.emit(\"plugins.icon.set\", i);\n this.opts.onSet(i);\n }\n }, {\n key: \"onElementNotValidated\",\n value: function onElementNotValidated(e) {\n var _this$setClasses3;\n\n var t = this.setClasses(e.field, e.element, e.elements, (_this$setClasses3 = {}, _defineProperty(_this$setClasses3, this.opts.invalid, false), _defineProperty(_this$setClasses3, this.opts.valid, false), _defineProperty(_this$setClasses3, this.opts.validating, false), _this$setClasses3));\n var i = {\n element: e.element,\n field: e.field,\n iconElement: t,\n status: \"NotValidated\"\n };\n this.core.emit(\"plugins.icon.set\", i);\n this.opts.onSet(i);\n }\n }, {\n key: \"onElementIgnored\",\n value: function onElementIgnored(e) {\n var _this$setClasses4;\n\n var t = this.setClasses(e.field, e.element, e.elements, (_this$setClasses4 = {}, _defineProperty(_this$setClasses4, this.opts.invalid, false), _defineProperty(_this$setClasses4, this.opts.valid, false), _defineProperty(_this$setClasses4, this.opts.validating, false), _this$setClasses4));\n var i = {\n element: e.element,\n field: e.field,\n iconElement: t,\n status: \"Ignored\"\n };\n this.core.emit(\"plugins.icon.set\", i);\n this.opts.onSet(i);\n }\n }, {\n key: \"setClasses\",\n value: function setClasses(e, i, n, l) {\n var s = i.getAttribute(\"type\");\n var d = \"radio\" === s || \"checkbox\" === s ? n[0] : i;\n\n if (this.icons.has(d)) {\n var _e2 = this.icons.get(d);\n\n c(_e2, l);\n return _e2;\n } else {\n return null;\n }\n }\n }]);\n\n return i;\n }(t$10);\n\n var i$2 = function (_e) {\n _inherits(i, _e);\n\n var _super = _createSuper(i);\n\n function i(e) {\n var _this;\n\n _classCallCheck(this, i);\n\n _this = _super.call(this, e);\n _this.invalidFields = new Map();\n _this.opts = Object.assign({}, {\n enabled: true\n }, e);\n _this.validatorHandler = _this.onValidatorValidated.bind(_assertThisInitialized(_this));\n _this.shouldValidateFilter = _this.shouldValidate.bind(_assertThisInitialized(_this));\n _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this));\n _this.elementNotValidatedHandler = _this.onElementNotValidated.bind(_assertThisInitialized(_this));\n _this.elementValidatingHandler = _this.onElementValidating.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(i, [{\n key: \"install\",\n value: function install() {\n this.core.on(\"core.validator.validated\", this.validatorHandler).on(\"core.field.added\", this.fieldAddedHandler).on(\"core.element.notvalidated\", this.elementNotValidatedHandler).on(\"core.element.validating\", this.elementValidatingHandler).registerFilter(\"field-should-validate\", this.shouldValidateFilter);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.invalidFields.clear();\n this.core.off(\"core.validator.validated\", this.validatorHandler).off(\"core.field.added\", this.fieldAddedHandler).off(\"core.element.notvalidated\", this.elementNotValidatedHandler).off(\"core.element.validating\", this.elementValidatingHandler).deregisterFilter(\"field-should-validate\", this.shouldValidateFilter);\n }\n }, {\n key: \"shouldValidate\",\n value: function shouldValidate(e, i, t, l) {\n var d = (this.opts.enabled === true || this.opts.enabled[e] === true) && this.invalidFields.has(i) && !!this.invalidFields.get(i).length && this.invalidFields.get(i).indexOf(l) === -1;\n return !d;\n }\n }, {\n key: \"onValidatorValidated\",\n value: function onValidatorValidated(e) {\n var i = this.invalidFields.has(e.element) ? this.invalidFields.get(e.element) : [];\n var t = i.indexOf(e.validator);\n\n if (e.result.valid && t >= 0) {\n i.splice(t, 1);\n } else if (!e.result.valid && t === -1) {\n i.push(e.validator);\n }\n\n this.invalidFields.set(e.element, i);\n }\n }, {\n key: \"onFieldAdded\",\n value: function onFieldAdded(e) {\n if (e.elements) {\n this.clearInvalidFields(e.elements);\n }\n }\n }, {\n key: \"onElementNotValidated\",\n value: function onElementNotValidated(e) {\n this.clearInvalidFields(e.elements);\n }\n }, {\n key: \"onElementValidating\",\n value: function onElementValidating(e) {\n this.clearInvalidFields(e.elements);\n }\n }, {\n key: \"clearInvalidFields\",\n value: function clearInvalidFields(e) {\n var _this2 = this;\n\n e.forEach(function (e) {\n return _this2.invalidFields[\"delete\"](e);\n });\n }\n }]);\n\n return i;\n }(t$10);\n\n var e$H = function (_t) {\n _inherits(e, _t);\n\n var _super = _createSuper(e);\n\n function e(t) {\n var _this;\n\n _classCallCheck(this, e);\n\n _this = _super.call(this, t);\n _this.isFormValid = false;\n _this.opts = Object.assign({}, {\n aspNetButton: false,\n buttons: function buttons(t) {\n return [].slice.call(t.querySelectorAll('[type=\"submit\"]:not([formnovalidate])'));\n }\n }, t);\n _this.submitHandler = _this.handleSubmitEvent.bind(_assertThisInitialized(_this));\n _this.buttonClickHandler = _this.handleClickEvent.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(e, [{\n key: \"install\",\n value: function install() {\n var _this2 = this;\n\n if (!(this.core.getFormElement() instanceof HTMLFormElement)) {\n return;\n }\n\n var t = this.core.getFormElement();\n this.submitButtons = this.opts.buttons(t);\n t.setAttribute(\"novalidate\", \"novalidate\");\n t.addEventListener(\"submit\", this.submitHandler);\n this.hiddenClickedEle = document.createElement(\"input\");\n this.hiddenClickedEle.setAttribute(\"type\", \"hidden\");\n t.appendChild(this.hiddenClickedEle);\n this.submitButtons.forEach(function (t) {\n t.addEventListener(\"click\", _this2.buttonClickHandler);\n });\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n var _this3 = this;\n\n var t = this.core.getFormElement();\n\n if (t instanceof HTMLFormElement) {\n t.removeEventListener(\"submit\", this.submitHandler);\n }\n\n this.submitButtons.forEach(function (t) {\n t.removeEventListener(\"click\", _this3.buttonClickHandler);\n });\n this.hiddenClickedEle.parentElement.removeChild(this.hiddenClickedEle);\n }\n }, {\n key: \"handleSubmitEvent\",\n value: function handleSubmitEvent(t) {\n this.validateForm(t);\n }\n }, {\n key: \"handleClickEvent\",\n value: function handleClickEvent(t) {\n var e = t.currentTarget;\n\n if (e instanceof HTMLElement) {\n if (this.opts.aspNetButton && this.isFormValid === true) ;else {\n var _e = this.core.getFormElement();\n\n _e.removeEventListener(\"submit\", this.submitHandler);\n\n this.clickedButton = t.target;\n var i = this.clickedButton.getAttribute(\"name\");\n var s = this.clickedButton.getAttribute(\"value\");\n\n if (i && s) {\n this.hiddenClickedEle.setAttribute(\"name\", i);\n this.hiddenClickedEle.setAttribute(\"value\", s);\n }\n\n this.validateForm(t);\n }\n }\n }\n }, {\n key: \"validateForm\",\n value: function validateForm(t) {\n var _this4 = this;\n\n t.preventDefault();\n this.core.validate().then(function (t) {\n if (t === \"Valid\" && _this4.opts.aspNetButton && !_this4.isFormValid && _this4.clickedButton) {\n _this4.isFormValid = true;\n\n _this4.clickedButton.removeEventListener(\"click\", _this4.buttonClickHandler);\n\n _this4.clickedButton.click();\n }\n });\n }\n }]);\n\n return e;\n }(t$10);\n\n var i$3 = function (_t) {\n _inherits(i, _t);\n\n var _super = _createSuper(i);\n\n function i(t) {\n var _this;\n\n _classCallCheck(this, i);\n\n _this = _super.call(this, t);\n _this.messages = new Map();\n _this.opts = Object.assign({}, {\n placement: \"top\",\n trigger: \"click\"\n }, t);\n _this.iconPlacedHandler = _this.onIconPlaced.bind(_assertThisInitialized(_this));\n _this.validatorValidatedHandler = _this.onValidatorValidated.bind(_assertThisInitialized(_this));\n _this.elementValidatedHandler = _this.onElementValidated.bind(_assertThisInitialized(_this));\n _this.documentClickHandler = _this.onDocumentClicked.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(i, [{\n key: \"install\",\n value: function install() {\n this.tip = document.createElement(\"div\");\n c(this.tip, _defineProperty({\n \"fv-plugins-tooltip\": true\n }, \"fv-plugins-tooltip--\".concat(this.opts.placement), true));\n document.body.appendChild(this.tip);\n this.core.on(\"plugins.icon.placed\", this.iconPlacedHandler).on(\"core.validator.validated\", this.validatorValidatedHandler).on(\"core.element.validated\", this.elementValidatedHandler);\n\n if (\"click\" === this.opts.trigger) {\n document.addEventListener(\"click\", this.documentClickHandler);\n }\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.messages.clear();\n document.body.removeChild(this.tip);\n this.core.off(\"plugins.icon.placed\", this.iconPlacedHandler).off(\"core.validator.validated\", this.validatorValidatedHandler).off(\"core.element.validated\", this.elementValidatedHandler);\n\n if (\"click\" === this.opts.trigger) {\n document.removeEventListener(\"click\", this.documentClickHandler);\n }\n }\n }, {\n key: \"onIconPlaced\",\n value: function onIconPlaced(t) {\n var _this2 = this;\n\n c(t.iconElement, {\n \"fv-plugins-tooltip-icon\": true\n });\n\n switch (this.opts.trigger) {\n case \"hover\":\n t.iconElement.addEventListener(\"mouseenter\", function (e) {\n return _this2.show(t.element, e);\n });\n t.iconElement.addEventListener(\"mouseleave\", function (t) {\n return _this2.hide();\n });\n break;\n\n case \"click\":\n default:\n t.iconElement.addEventListener(\"click\", function (e) {\n return _this2.show(t.element, e);\n });\n break;\n }\n }\n }, {\n key: \"onValidatorValidated\",\n value: function onValidatorValidated(t) {\n if (!t.result.valid) {\n var _e2 = t.elements;\n\n var _i = t.element.getAttribute(\"type\");\n\n var s = \"radio\" === _i || \"checkbox\" === _i ? _e2[0] : t.element;\n var o = typeof t.result.message === \"string\" ? t.result.message : t.result.message[this.core.getLocale()];\n this.messages.set(s, o);\n }\n }\n }, {\n key: \"onElementValidated\",\n value: function onElementValidated(t) {\n if (t.valid) {\n var _e3 = t.elements;\n\n var _i2 = t.element.getAttribute(\"type\");\n\n var s = \"radio\" === _i2 || \"checkbox\" === _i2 ? _e3[0] : t.element;\n this.messages[\"delete\"](s);\n }\n }\n }, {\n key: \"onDocumentClicked\",\n value: function onDocumentClicked(t) {\n this.hide();\n }\n }, {\n key: \"show\",\n value: function show(t, i) {\n i.preventDefault();\n i.stopPropagation();\n\n if (!this.messages.has(t)) {\n return;\n }\n\n c(this.tip, {\n \"fv-plugins-tooltip--hide\": false\n });\n this.tip.innerHTML = '
'.concat(this.messages.get(t), \"
\");\n var s = i.target;\n var o = s.getBoundingClientRect();\n\n var _this$tip$getBounding = this.tip.getBoundingClientRect(),\n l = _this$tip$getBounding.height,\n n = _this$tip$getBounding.width;\n\n var a = 0;\n var d = 0;\n\n switch (this.opts.placement) {\n case \"bottom\":\n a = o.top + o.height;\n d = o.left + o.width / 2 - n / 2;\n break;\n\n case \"bottom-left\":\n a = o.top + o.height;\n d = o.left;\n break;\n\n case \"bottom-right\":\n a = o.top + o.height;\n d = o.left + o.width - n;\n break;\n\n case \"left\":\n a = o.top + o.height / 2 - l / 2;\n d = o.left - n;\n break;\n\n case \"right\":\n a = o.top + o.height / 2 - l / 2;\n d = o.left + o.width;\n break;\n\n case \"top-left\":\n a = o.top - l;\n d = o.left;\n break;\n\n case \"top-right\":\n a = o.top - l;\n d = o.left + o.width - n;\n break;\n\n case \"top\":\n default:\n a = o.top - l;\n d = o.left + o.width / 2 - n / 2;\n break;\n }\n\n var c$1 = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n var r = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;\n a = a + c$1;\n d = d + r;\n this.tip.setAttribute(\"style\", \"top: \".concat(a, \"px; left: \").concat(d, \"px\"));\n }\n }, {\n key: \"hide\",\n value: function hide() {\n c(this.tip, {\n \"fv-plugins-tooltip--hide\": true\n });\n }\n }]);\n\n return i;\n }(t$10);\n\n var t$14 = function (_e) {\n _inherits(t, _e);\n\n var _super = _createSuper(t);\n\n function t(e) {\n var _this;\n\n _classCallCheck(this, t);\n\n _this = _super.call(this, e);\n _this.handlers = [];\n _this.timers = new Map();\n\n var _t = document.createElement(\"div\");\n\n _this.defaultEvent = !(\"oninput\" in _t) ? \"keyup\" : \"input\";\n _this.opts = Object.assign({}, {\n delay: 0,\n event: _this.defaultEvent,\n threshold: 0\n }, e);\n _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this));\n _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(t, [{\n key: \"install\",\n value: function install() {\n this.core.on(\"core.field.added\", this.fieldAddedHandler).on(\"core.field.removed\", this.fieldRemovedHandler);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.handlers.forEach(function (e) {\n return e.element.removeEventListener(e.event, e.handler);\n });\n this.handlers = [];\n this.timers.forEach(function (e) {\n return window.clearTimeout(e);\n });\n this.timers.clear();\n this.core.off(\"core.field.added\", this.fieldAddedHandler).off(\"core.field.removed\", this.fieldRemovedHandler);\n }\n }, {\n key: \"prepareHandler\",\n value: function prepareHandler(e, t) {\n var _this2 = this;\n\n t.forEach(function (t) {\n var i = [];\n\n if (!!_this2.opts.event && _this2.opts.event[e] === false) {\n i = [];\n } else if (!!_this2.opts.event && !!_this2.opts.event[e]) {\n i = _this2.opts.event[e].split(\" \");\n } else if (\"string\" === typeof _this2.opts.event && _this2.opts.event !== _this2.defaultEvent) {\n i = _this2.opts.event.split(\" \");\n } else {\n var _e2 = t.getAttribute(\"type\");\n\n var s = t.tagName.toLowerCase();\n var n = \"radio\" === _e2 || \"checkbox\" === _e2 || \"file\" === _e2 || \"select\" === s ? \"change\" : _this2.ieVersion >= 10 && t.getAttribute(\"placeholder\") ? \"keyup\" : _this2.defaultEvent;\n i = [n];\n }\n\n i.forEach(function (i) {\n var s = function s(i) {\n return _this2.handleEvent(i, e, t);\n };\n\n _this2.handlers.push({\n element: t,\n event: i,\n field: e,\n handler: s\n });\n\n t.addEventListener(i, s);\n });\n });\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(e, t, i) {\n var _this3 = this;\n\n if (this.exceedThreshold(t, i) && this.core.executeFilter(\"plugins-trigger-should-validate\", true, [t, i])) {\n var s = function s() {\n return _this3.core.validateElement(t, i).then(function (s) {\n _this3.core.emit(\"plugins.trigger.executed\", {\n element: i,\n event: e,\n field: t\n });\n });\n };\n\n var n = this.opts.delay[t] || this.opts.delay;\n\n if (n === 0) {\n s();\n } else {\n var _e3 = this.timers.get(i);\n\n if (_e3) {\n window.clearTimeout(_e3);\n }\n\n this.timers.set(i, window.setTimeout(s, n * 1e3));\n }\n }\n }\n }, {\n key: \"onFieldAdded\",\n value: function onFieldAdded(e) {\n this.handlers.filter(function (t) {\n return t.field === e.field;\n }).forEach(function (e) {\n return e.element.removeEventListener(e.event, e.handler);\n });\n this.prepareHandler(e.field, e.elements);\n }\n }, {\n key: \"onFieldRemoved\",\n value: function onFieldRemoved(e) {\n this.handlers.filter(function (t) {\n return t.field === e.field && e.elements.indexOf(t.element) >= 0;\n }).forEach(function (e) {\n return e.element.removeEventListener(e.event, e.handler);\n });\n }\n }, {\n key: \"exceedThreshold\",\n value: function exceedThreshold(e, t) {\n var i = this.opts.threshold[e] === 0 || this.opts.threshold === 0 ? false : this.opts.threshold[e] || this.opts.threshold;\n\n if (!i) {\n return true;\n }\n\n var s = t.getAttribute(\"type\");\n\n if ([\"button\", \"checkbox\", \"file\", \"hidden\", \"image\", \"radio\", \"reset\", \"submit\"].indexOf(s) !== -1) {\n return true;\n }\n\n var n = this.core.getElementValue(e, t);\n return n.length >= i;\n }\n }]);\n\n return t;\n }(t$10);\n\n var index$2 = {\n Alias: e$D,\n Aria: i,\n Declarative: t$11,\n DefaultSubmit: o$4,\n Dependency: e$E,\n Excluded: e$F,\n FieldStatus: t$12,\n Framework: l$2,\n Icon: i$1,\n Message: s$9,\n Sequence: i$2,\n SubmitButton: e$H,\n Tooltip: i$3,\n Trigger: t$14\n };\n\n function s$a(s, t) {\n return s.classList ? s.classList.contains(t) : new RegExp(\"(^| )\".concat(t, \"( |$)\"), \"gi\").test(s.className);\n }\n\n var index$3 = {\n call: t$6,\n classSet: c,\n closest: t$13,\n fetch: e$4,\n format: r,\n hasClass: s$a,\n isValidDate: t$9\n };\n var p = {};\n exports.Plugin = t$10;\n exports.algorithms = index;\n exports.filters = index$1;\n exports.formValidation = r$d;\n exports.locales = p;\n exports.plugins = index$2;\n exports.utils = index$3;\n exports.validators = s$7;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvcGx1Z2lucy9mb3JtdmFsaWRhdGlvbi9kaXN0L2pzL0Zvcm1WYWxpZGF0aW9uLmZ1bGwubWluLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQUEsQ0FBQyxVQUFTQSxNQUFULEVBQWdCQyxPQUFoQixFQUF3QjtBQUFDLHdCQUFPQyxPQUFQLE9BQWlCLFFBQWpCLElBQTJCLGFBQWdCLFdBQTNDLEdBQXVERCxPQUFPLENBQUNDLE9BQUQsQ0FBOUQsR0FBd0UsUUFBdUNFLGlDQUFPLENBQUMsT0FBRCxDQUFELG9DQUFhSCxPQUFiO0FBQUE7QUFBQTtBQUFBLGtHQUE3QyxJQUFvRUQsQ0FBcEUsQ0FBeEU7QUFBbU0sQ0FBN04sRUFBK04sSUFBL04sRUFBcU8sVUFBU0UsT0FBVCxFQUFpQjtBQUFDOztBQUFhLFdBQVNNLENBQVQsQ0FBV0EsQ0FBWCxFQUFhO0FBQUMsUUFBSUMsQ0FBQyxHQUFDRCxDQUFDLENBQUNFLE1BQVI7QUFBZSxRQUFJQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUQsRUFBRyxDQUFILEVBQUssQ0FBTCxFQUFPLENBQVAsRUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhLENBQWIsRUFBZSxDQUFmLEVBQWlCLENBQWpCLEVBQW1CLENBQW5CLENBQUQsRUFBdUIsQ0FBQyxDQUFELEVBQUcsQ0FBSCxFQUFLLENBQUwsRUFBTyxDQUFQLEVBQVMsQ0FBVCxFQUFXLENBQVgsRUFBYSxDQUFiLEVBQWUsQ0FBZixFQUFpQixDQUFqQixFQUFtQixDQUFuQixDQUF2QixDQUFOO0FBQW9ELFFBQUlDLENBQUMsR0FBQyxDQUFOO0FBQVEsUUFBSUMsQ0FBQyxHQUFDLENBQU47O0FBQVEsV0FBTUosQ0FBQyxFQUFQLEVBQVU7QUFBQ0ksTUFBQUEsQ0FBQyxJQUFFRixDQUFDLENBQUNDLENBQUQsQ0FBRCxDQUFLRSxRQUFRLENBQUNOLENBQUMsQ0FBQ08sTUFBRixDQUFTTixDQUFULENBQUQsRUFBYSxFQUFiLENBQWIsQ0FBSDtBQUFr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N0I7QUFBa0M0SSxJQUFBQSxLQUFLLEVBQUNybEIsR0FBeEM7QUFBNEMzRCxJQUFBQSxNQUFNLEVBQUNqTixDQUFuRDtBQUFxRGsyQixJQUFBQSxRQUFRLEVBQUNOLEdBQTlEO0FBQWtFTyxJQUFBQSxXQUFXLEVBQUNqckI7QUFBOUUsR0FBWjtBQUErRixNQUFJL0gsQ0FBQyxHQUFDLEVBQU47QUFBUzlELEVBQUFBLE9BQU8sQ0FBQysyQixNQUFSLEdBQWUzTixJQUFmO0FBQW9CcHBCLEVBQUFBLE9BQU8sQ0FBQ2czQixVQUFSLEdBQW1CdjFCLEtBQW5CO0FBQXlCekIsRUFBQUEsT0FBTyxDQUFDdUgsT0FBUixHQUFnQmdpQixPQUFoQjtBQUF3QnZwQixFQUFBQSxPQUFPLENBQUNpM0IsY0FBUixHQUF1QjlOLEdBQXZCO0FBQTJCbnBCLEVBQUFBLE9BQU8sQ0FBQ2szQixPQUFSLEdBQWdCcHpCLENBQWhCO0FBQWtCOUQsRUFBQUEsT0FBTyxDQUFDbWxCLE9BQVIsR0FBZ0JxUSxPQUFoQjtBQUF3QngxQixFQUFBQSxPQUFPLENBQUNtM0IsS0FBUixHQUFjVixPQUFkO0FBQXNCejJCLEVBQUFBLE9BQU8sQ0FBQ3NsQixVQUFSLEdBQW1CdEMsR0FBbkI7QUFBdUJ0Z0IsRUFBQUEsTUFBTSxDQUFDQyxjQUFQLENBQXNCM0MsT0FBdEIsRUFBOEIsWUFBOUIsRUFBMkM7QUFBQ21ELElBQUFBLEtBQUssRUFBQztBQUFQLEdBQTNDO0FBQXlELENBQXYyZ0oiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvcGx1Z2lucy9mb3JtdmFsaWRhdGlvbi9kaXN0L2pzL0Zvcm1WYWxpZGF0aW9uLmZ1bGwubWluLmpzPzk5NDQiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKGdsb2JhbCxmYWN0b3J5KXt0eXBlb2YgZXhwb3J0cz09PVwib2JqZWN0XCImJnR5cGVvZiBtb2R1bGUhPT1cInVuZGVmaW5lZFwiP2ZhY3RvcnkoZXhwb3J0cyk6dHlwZW9mIGRlZmluZT09PVwiZnVuY3Rpb25cIiYmZGVmaW5lLmFtZD9kZWZpbmUoW1wiZXhwb3J0c1wiXSxmYWN0b3J5KTooZ2xvYmFsPWdsb2JhbHx8c2VsZixmYWN0b3J5KGdsb2JhbC5Gb3JtVmFsaWRhdGlvbj17fSkpfSkodGhpcywoZnVuY3Rpb24oZXhwb3J0cyl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gdCh0KXt2YXIgZT10Lmxlbmd0aDt2YXIgbD1bWzAsMSwyLDMsNCw1LDYsNyw4LDldLFswLDIsNCw2LDgsMSwzLDUsNyw5XV07dmFyIG49MDt2YXIgcj0wO3doaWxlKGUtLSl7cis9bFtuXVtwYXJzZUludCh0LmNoYXJBdChlKSwxMCldO249MS1ufXJldHVybiByJTEwPT09MCYmcj4wfWZ1bmN0aW9uIHQkMSh0KXt2YXIgZT10Lmxlbmd0aDt2YXIgbj01O2Zvcih2YXIgcj0wO3I8ZTtyKyspe249KChufHwxMCkqMiUxMStwYXJzZUludCh0LmNoYXJBdChyKSwxMCkpJTEwfXJldHVybiBuPT09MX1mdW5jdGlvbiB0JDIodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzFdOlwiMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaXCI7dmFyIG49dC5sZW5ndGg7dmFyIG89ZS5sZW5ndGg7dmFyIGw9TWF0aC5mbG9vcihvLzIpO2Zvcih2YXIgcj0wO3I8bjtyKyspe2w9KChsfHxvKSoyJShvKzEpK2UuaW5kZXhPZih0LmNoYXJBdChyKSkpJW99cmV0dXJuIGw9PT0xfWZ1bmN0aW9uIHQkMyh0KXt2YXIgZT1bWzAsMSwyLDMsNCw1LDYsNyw4LDldLFsxLDIsMyw0LDAsNiw3LDgsOSw1XSxbMiwzLDQsMCwxLDcsOCw5LDUsNl0sWzMsNCwwLDEsMiw4LDksNSw2LDddLFs0LDAsMSwyLDMsOSw1LDYsNyw4XSxbNSw5LDgsNyw2LDAsNCwzLDIsMV0sWzYsNSw5LDgsNywxLDAsNCwzLDJdLFs3LDYsNSw5LDgsMiwxLDAsNCwzXSxbOCw3LDYsNSw5LDMsMiwxLDAsNF0sWzksOCw3LDYsNSw0LDMsMiwxLDBdXTt2YXIgbj1bWzAsMSwyLDMsNCw1LDYsNyw4LDldLFsxLDUsNyw2LDIsOCwzLDAsOSw0XSxbNSw4LDAsMyw3LDksNiwxLDQsMl0sWzgsOSwxLDYsMCw0LDMsNSwyLDddLFs5LDQsNSwzLDEsMiw2LDgsNywwXSxbNCwyLDgsNiw1LDcsMyw5LDAsMV0sWzIsNyw5LDMsOCwwLDYsNCwxLDVdLFs3LDAsNCw2LDksMSwzLDIsNSw4XV07dmFyIG89dC5yZXZlcnNlKCk7dmFyIHI9MDtmb3IodmFyIF90PTA7X3Q8by5sZW5ndGg7X3QrKyl7cj1lW3JdW25bX3QlOF1bb1tfdF1dXX1yZXR1cm4gcj09PTB9dmFyIGluZGV4PXtsdWhuOnQsbW9kMTFBbmQxMDp0JDEsbW9kMzdBbmQzNjp0JDIsdmVyaG9lZmY6dCQzfTtmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsQ29uc3RydWN0b3Ipe2lmKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3Rvcikpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9fWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCxwcm9wcyl7Zm9yKHZhciBpPTA7aTxwcm9wcy5sZW5ndGg7aSsrKXt2YXIgZGVzY3JpcHRvcj1wcm9wc1tpXTtkZXNjcmlwdG9yLmVudW1lcmFibGU9ZGVzY3JpcHRvci5lbnVtZXJhYmxlfHxmYWxzZTtkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZT10cnVlO2lmKFwidmFsdWVcImluIGRlc2NyaXB0b3IpZGVzY3JpcHRvci53cml0YWJsZT10cnVlO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsZGVzY3JpcHRvci5rZXksZGVzY3JpcHRvcil9fWZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3Rvcixwcm90b1Byb3BzLHN0YXRpY1Byb3BzKXtpZihwcm90b1Byb3BzKV9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSxwcm90b1Byb3BzKTtpZihzdGF0aWNQcm9wcylfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3RvcixzdGF0aWNQcm9wcyk7cmV0dXJuIENvbnN0cnVjdG9yfWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosa2V5LHZhbHVlKXtpZihrZXkgaW4gb2JqKXtPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLGtleSx7dmFsdWU6dmFsdWUsZW51bWVyYWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTp0cnVlLHdyaXRhYmxlOnRydWV9KX1lbHNle29ialtrZXldPXZhbHVlfXJldHVybiBvYmp9ZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLHN1cGVyQ2xhc3Mpe2lmKHR5cGVvZiBzdXBlckNsYXNzIT09XCJmdW5jdGlvblwiJiZzdXBlckNsYXNzIT09bnVsbCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpfXN1YkNsYXNzLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MmJnN1cGVyQ2xhc3MucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6c3ViQ2xhc3Msd3JpdGFibGU6dHJ1ZSxjb25maWd1cmFibGU6dHJ1ZX19KTtpZihzdXBlckNsYXNzKV9zZXRQcm90b3R5cGVPZihzdWJDbGFzcyxzdXBlckNsYXNzKX1mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobyl7X2dldFByb3RvdHlwZU9mPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pe3JldHVybiBvLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG8pfTtyZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pfWZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLHApe19zZXRQcm90b3R5cGVPZj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLHApe28uX19wcm90b19fPXA7cmV0dXJuIG99O3JldHVybiBfc2V0UHJvdG90eXBlT2YobyxwKX1mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCl7aWYodHlwZW9mIFJlZmxlY3Q9PT1cInVuZGVmaW5lZFwifHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuIGZhbHNlO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuIGZhbHNlO2lmKHR5cGVvZiBQcm94eT09PVwiZnVuY3Rpb25cIilyZXR1cm4gdHJ1ZTt0cnl7RGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLFtdLChmdW5jdGlvbigpe30pKSk7cmV0dXJuIHRydWV9Y2F0Y2goZSl7cmV0dXJuIGZhbHNlfX1mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpe2lmKHNlbGY9PT12b2lkIDApe3Rocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKX1yZXR1cm4gc2VsZn1mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLGNhbGwpe2lmKGNhbGwmJih0eXBlb2YgY2FsbD09PVwib2JqZWN0XCJ8fHR5cGVvZiBjYWxsPT09XCJmdW5jdGlvblwiKSl7cmV0dXJuIGNhbGx9cmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZil9ZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpe3ZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0PV9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTtyZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKXt2YXIgU3VwZXI9X2dldFByb3RvdHlwZU9mKERlcml2ZWQpLHJlc3VsdDtpZihoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KXt2YXIgTmV3VGFyZ2V0PV9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjtyZXN1bHQ9UmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsYXJndW1lbnRzLE5ld1RhcmdldCl9ZWxzZXtyZXN1bHQ9U3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLHJlc3VsdCl9fWZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLG1pbkxlbil7aWYoIW8pcmV0dXJuO2lmKHR5cGVvZiBvPT09XCJzdHJpbmdcIilyZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobyxtaW5MZW4pO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LC0xKTtpZihuPT09XCJPYmplY3RcIiYmby5jb25zdHJ1Y3RvciluPW8uY29uc3RydWN0b3IubmFtZTtpZihuPT09XCJNYXBcInx8bj09PVwiU2V0XCIpcmV0dXJuIEFycmF5LmZyb20obyk7aWYobj09PVwiQXJndW1lbnRzXCJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLG1pbkxlbil9ZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLGxlbil7aWYobGVuPT1udWxsfHxsZW4+YXJyLmxlbmd0aClsZW49YXJyLmxlbmd0aDtmb3IodmFyIGk9MCxhcnIyPW5ldyBBcnJheShsZW4pO2k8bGVuO2krKylhcnIyW2ldPWFycltpXTtyZXR1cm4gYXJyMn1mdW5jdGlvbiBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlcihvLGFsbG93QXJyYXlMaWtlKXt2YXIgaXQ7aWYodHlwZW9mIFN5bWJvbD09PVwidW5kZWZpbmVkXCJ8fG9bU3ltYm9sLml0ZXJhdG9yXT09bnVsbCl7aWYoQXJyYXkuaXNBcnJheShvKXx8KGl0PV91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvKSl8fGFsbG93QXJyYXlMaWtlJiZvJiZ0eXBlb2Ygby5sZW5ndGg9PT1cIm51bWJlclwiKXtpZihpdClvPWl0O3ZhciBpPTA7dmFyIEY9ZnVuY3Rpb24oKXt9O3JldHVybntzOkYsbjpmdW5jdGlvbigpe2lmKGk+PW8ubGVuZ3RoKXJldHVybntkb25lOnRydWV9O3JldHVybntkb25lOmZhbHNlLHZhbHVlOm9baSsrXX19LGU6ZnVuY3Rpb24oZSl7dGhyb3cgZX0sZjpGfX10aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9dmFyIG5vcm1hbENvbXBsZXRpb249dHJ1ZSxkaWRFcnI9ZmFsc2UsZXJyO3JldHVybntzOmZ1bmN0aW9uKCl7aXQ9b1tTeW1ib2wuaXRlcmF0b3JdKCl9LG46ZnVuY3Rpb24oKXt2YXIgc3RlcD1pdC5uZXh0KCk7bm9ybWFsQ29tcGxldGlvbj1zdGVwLmRvbmU7cmV0dXJuIHN0ZXB9LGU6ZnVuY3Rpb24oZSl7ZGlkRXJyPXRydWU7ZXJyPWV9LGY6ZnVuY3Rpb24oKXt0cnl7aWYoIW5vcm1hbENvbXBsZXRpb24mJml0LnJldHVybiE9bnVsbClpdC5yZXR1cm4oKX1maW5hbGx5e2lmKGRpZEVycil0aHJvdyBlcnJ9fX19ZnVuY3Rpb24gcygpe3JldHVybntmbnM6e30sY2xlYXI6ZnVuY3Rpb24gY2xlYXIoKXt0aGlzLmZucz17fX0sZW1pdDpmdW5jdGlvbiBlbWl0KHMpe2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGY9bmV3IEFycmF5KF9sZW4+MT9fbGVuLTE6MCksX2tleT0xO19rZXk8X2xlbjtfa2V5Kyspe2ZbX2tleS0xXT1hcmd1bWVudHNbX2tleV19KHRoaXMuZm5zW3NdfHxbXSkubWFwKChmdW5jdGlvbihzKXtyZXR1cm4gcy5hcHBseShzLGYpfSkpfSxvZmY6ZnVuY3Rpb24gb2ZmKHMsZil7aWYodGhpcy5mbnNbc10pe3ZhciBuPXRoaXMuZm5zW3NdLmluZGV4T2YoZik7aWYobj49MCl7dGhpcy5mbnNbc10uc3BsaWNlKG4sMSl9fX0sb246ZnVuY3Rpb24gb24ocyxmKXsodGhpcy5mbnNbc109dGhpcy5mbnNbc118fFtdKS5wdXNoKGYpfX19ZnVuY3Rpb24gdCQ0KCl7cmV0dXJue2ZpbHRlcnM6e30sYWRkOmZ1bmN0aW9uIGFkZCh0LGUpeyh0aGlzLmZpbHRlcnNbdF09dGhpcy5maWx0ZXJzW3RdfHxbXSkucHVzaChlKX0sY2xlYXI6ZnVuY3Rpb24gY2xlYXIoKXt0aGlzLmZpbHRlcnM9e319LGV4ZWN1dGU6ZnVuY3Rpb24gZXhlY3V0ZSh0LGUsaSl7aWYoIXRoaXMuZmlsdGVyc1t0XXx8IXRoaXMuZmlsdGVyc1t0XS5sZW5ndGgpe3JldHVybiBlfXZhciBzPWU7dmFyIHI9dGhpcy5maWx0ZXJzW3RdO3ZhciBsPXIubGVuZ3RoO2Zvcih2YXIgX3Q9MDtfdDxsO190Kyspe3M9cltfdF0uYXBwbHkocyxpKX1yZXR1cm4gc30scmVtb3ZlOmZ1bmN0aW9uIHJlbW92ZSh0LGUpe2lmKHRoaXMuZmlsdGVyc1t0XSl7dGhpcy5maWx0ZXJzW3RdPXRoaXMuZmlsdGVyc1t0XS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09ZX0pKX19fX1mdW5jdGlvbiBlKGUsdCxyLG4pe3ZhciBvPShyLmdldEF0dHJpYnV0ZShcInR5cGVcIil8fFwiXCIpLnRvTG93ZXJDYXNlKCk7dmFyIGM9ci50YWdOYW1lLnRvTG93ZXJDYXNlKCk7aWYoYz09PVwidGV4dGFyZWFcIil7cmV0dXJuIHIudmFsdWV9aWYoYz09PVwic2VsZWN0XCIpe3ZhciBfZT1yO3ZhciBfdD1fZS5zZWxlY3RlZEluZGV4O3JldHVybiBfdD49MD9fZS5vcHRpb25zLml0ZW0oX3QpLnZhbHVlOlwiXCJ9aWYoYz09PVwiaW5wdXRcIil7aWYoXCJyYWRpb1wiPT09b3x8XCJjaGVja2JveFwiPT09byl7dmFyIF9lMj1uLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2hlY2tlZH0pKS5sZW5ndGg7cmV0dXJuIF9lMj09PTA/XCJcIjpfZTIrXCJcIn1lbHNle3JldHVybiByLnZhbHVlfX1yZXR1cm5cIlwifWZ1bmN0aW9uIHIocixlKXt2YXIgdD1BcnJheS5pc0FycmF5KGUpP2U6W2VdO3ZhciBhPXI7dC5mb3JFYWNoKChmdW5jdGlvbihyKXthPWEucmVwbGFjZShcIiVzXCIscil9KSk7cmV0dXJuIGF9ZnVuY3Rpb24gcyQxKCl7dmFyIHM9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gcGFyc2VGbG9hdChcIlwiLmNvbmNhdChlKS5yZXBsYWNlKFwiLFwiLFwiLlwiKSl9O3JldHVybnt2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZShhKXt2YXIgdD1hLnZhbHVlO2lmKHQ9PT1cIlwiKXtyZXR1cm57dmFsaWQ6dHJ1ZX19dmFyIG49T2JqZWN0LmFzc2lnbih7fSx7aW5jbHVzaXZlOnRydWUsbWVzc2FnZTpcIlwifSxhLm9wdGlvbnMpO3ZhciBsPXMobi5taW4pO3ZhciBvPXMobi5tYXgpO3JldHVybiBuLmluY2x1c2l2ZT97bWVzc2FnZTpyKGEubDEwbj9uLm1lc3NhZ2V8fGEubDEwbi5iZXR3ZWVuW1wiZGVmYXVsdFwiXTpuLm1lc3NhZ2UsW1wiXCIuY29uY2F0KGwpLFwiXCIuY29uY2F0KG8pXSksdmFsaWQ6cGFyc2VGbG9hdCh0KT49bCYmcGFyc2VGbG9hdCh0KTw9b306e21lc3NhZ2U6cihhLmwxMG4/bi5tZXNzYWdlfHxhLmwxMG4uYmV0d2Vlbi5ub3RJbmNsdXNpdmU6bi5tZXNzYWdlLFtcIlwiLmNvbmNhdChsKSxcIlwiLmNvbmNhdChvKV0pLHZhbGlkOnBhcnNlRmxvYXQodCk+bCYmcGFyc2VGbG9hdCh0KTxvfX19fWZ1bmN0aW9uIHQkNSgpe3JldHVybnt2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZSh0KXtyZXR1cm57dmFsaWQ6dHJ1ZX19fX1mdW5jdGlvbiB0JDYodCxuKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgdCl7cmV0dXJuIHQuYXBwbHkodGhpcyxuKX1lbHNlIGlmKFwic3RyaW5nXCI9PT10eXBlb2YgdCl7dmFyIGU9dDtpZihcIigpXCI9PT1lLnN1YnN0cmluZyhlLmxlbmd0aC0yKSl7ZT1lLnN1YnN0cmluZygwLGUubGVuZ3RoLTIpfXZhciBpPWUuc3BsaXQoXCIuXCIpO3ZhciBvPWkucG9wKCk7dmFyIGY9d2luZG93O3ZhciBfaXRlcmF0b3I9X2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIoaSksX3N0ZXA7dHJ5e2ZvcihfaXRlcmF0b3IucygpOyEoX3N0ZXA9X2l0ZXJhdG9yLm4oKSkuZG9uZTspe3ZhciBfdD1fc3RlcC52YWx1ZTtmPWZbX3RdfX1jYXRjaChlcnIpe19pdGVyYXRvci5lKGVycil9ZmluYWxseXtfaXRlcmF0b3IuZigpfXJldHVybiB0eXBlb2YgZltvXT09PVwidW5kZWZpbmVkXCI/bnVsbDpmW29dLmFwcGx5KHRoaXMsbil9fWZ1bmN0aW9uIG8oKXtyZXR1cm57dmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUobyl7dmFyIGw9dCQ2KG8ub3B0aW9ucy5jYWxsYmFjayxbb10pO3JldHVyblwiYm9vbGVhblwiPT09dHlwZW9mIGw/e3ZhbGlkOmx9Omx9fX1mdW5jdGlvbiB0JDcoKXtyZXR1cm57dmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUodCl7dmFyIG89XCJzZWxlY3RcIj09PXQuZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCk/dC5lbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJvcHRpb246Y2hlY2tlZFwiKS5sZW5ndGg6dC5lbGVtZW50cy5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmNoZWNrZWR9KSkubGVuZ3RoO3ZhciBzPXQub3B0aW9ucy5taW4/XCJcIi5jb25jYXQodC5vcHRpb25zLm1pbik6XCJcIjt2YXIgbj10Lm9wdGlvbnMubWF4P1wiXCIuY29uY2F0KHQub3B0aW9ucy5tYXgpOlwiXCI7dmFyIGE9dC5sMTBuP3Qub3B0aW9ucy5tZXNzYWdlfHx0LmwxMG4uY2hvaWNlW1wiZGVmYXVsdFwiXTp0Lm9wdGlvbnMubWVzc2FnZTt2YXIgbD0hKHMmJm88cGFyc2VJbnQocywxMCl8fG4mJm8+cGFyc2VJbnQobiwxMCkpO3N3aXRjaCh0cnVlKXtjYXNlISFzJiYhIW46YT1yKHQubDEwbj90LmwxMG4uY2hvaWNlLmJldHdlZW46dC5vcHRpb25zLm1lc3NhZ2UsW3Msbl0pO2JyZWFrO2Nhc2UhIXM6YT1yKHQubDEwbj90LmwxMG4uY2hvaWNlLm1vcmU6dC5vcHRpb25zLm1lc3NhZ2Uscyk7YnJlYWs7Y2FzZSEhbjphPXIodC5sMTBuP3QubDEwbi5jaG9pY2UubGVzczp0Lm9wdGlvbnMubWVzc2FnZSxuKTticmVha31yZXR1cm57bWVzc2FnZTphLHZhbGlkOmx9fX19dmFyIHQkOD17QU1FUklDQU5fRVhQUkVTUzp7bGVuZ3RoOlsxNV0scHJlZml4OltcIjM0XCIsXCIzN1wiXX0sREFOS09SVDp7bGVuZ3RoOlsxNl0scHJlZml4OltcIjUwMTlcIl19LERJTkVSU19DTFVCOntsZW5ndGg6WzE0XSxwcmVmaXg6W1wiMzAwXCIsXCIzMDFcIixcIjMwMlwiLFwiMzAzXCIsXCIzMDRcIixcIjMwNVwiLFwiMzZcIl19LERJTkVSU19DTFVCX1VTOntsZW5ndGg6WzE2XSxwcmVmaXg6W1wiNTRcIixcIjU1XCJdfSxESVNDT1ZFUjp7bGVuZ3RoOlsxNl0scHJlZml4OltcIjYwMTFcIixcIjYyMjEyNlwiLFwiNjIyMTI3XCIsXCI2MjIxMjhcIixcIjYyMjEyOVwiLFwiNjIyMTNcIixcIjYyMjE0XCIsXCI2MjIxNVwiLFwiNjIyMTZcIixcIjYyMjE3XCIsXCI2MjIxOFwiLFwiNjIyMTlcIixcIjYyMjJcIixcIjYyMjNcIixcIjYyMjRcIixcIjYyMjVcIixcIjYyMjZcIixcIjYyMjdcIixcIjYyMjhcIixcIjYyMjkwXCIsXCI2MjI5MVwiLFwiNjIyOTIwXCIsXCI2MjI5MjFcIixcIjYyMjkyMlwiLFwiNjIyOTIzXCIsXCI2MjI5MjRcIixcIjYyMjkyNVwiLFwiNjQ0XCIsXCI2NDVcIixcIjY0NlwiLFwiNjQ3XCIsXCI2NDhcIixcIjY0OVwiLFwiNjVcIl19LEVMTzp7bGVuZ3RoOlsxNl0scHJlZml4OltcIjQwMTFcIixcIjQzMTJcIixcIjQzODlcIixcIjQ1MTRcIixcIjQ1NzNcIixcIjQ1NzZcIixcIjUwNDFcIixcIjUwNjZcIixcIjUwNjdcIixcIjUwOVwiLFwiNjI3N1wiLFwiNjM2MlwiLFwiNjM2M1wiLFwiNjUwXCIsXCI2NTE2XCIsXCI2NTUwXCJdfSxGT1JCUlVHU0ZPUkVOSU5HRU46e2xlbmd0aDpbMTZdLHByZWZpeDpbXCI2MDA3MjJcIl19LEpDQjp7bGVuZ3RoOlsxNl0scHJlZml4OltcIjM1MjhcIixcIjM1MjlcIixcIjM1M1wiLFwiMzU0XCIsXCIzNTVcIixcIjM1NlwiLFwiMzU3XCIsXCIzNThcIl19LExBU0VSOntsZW5ndGg6WzE2LDE3LDE4LDE5XSxwcmVmaXg6W1wiNjMwNFwiLFwiNjcwNlwiLFwiNjc3MVwiLFwiNjcwOVwiXX0sTUFFU1RSTzp7bGVuZ3RoOlsxMiwxMywxNCwxNSwxNiwxNywxOCwxOV0scHJlZml4OltcIjUwMThcIixcIjUwMjBcIixcIjUwMzhcIixcIjU4NjhcIixcIjYzMDRcIixcIjY3NTlcIixcIjY3NjFcIixcIjY3NjJcIixcIjY3NjNcIixcIjY3NjRcIixcIjY3NjVcIixcIjY3NjZcIl19LE1BU1RFUkNBUkQ6e2xlbmd0aDpbMTZdLHByZWZpeDpbXCI1MVwiLFwiNTJcIixcIjUzXCIsXCI1NFwiLFwiNTVcIl19LFNPTE86e2xlbmd0aDpbMTYsMTgsMTldLHByZWZpeDpbXCI2MzM0XCIsXCI2NzY3XCJdfSxVTklPTlBBWTp7bGVuZ3RoOlsxNiwxNywxOCwxOV0scHJlZml4OltcIjYyMjEyNlwiLFwiNjIyMTI3XCIsXCI2MjIxMjhcIixcIjYyMjEyOVwiLFwiNjIyMTNcIixcIjYyMjE0XCIsXCI2MjIxNVwiLFwiNjIyMTZcIixcIjYyMjE3XCIsXCI2MjIxOFwiLFwiNjIyMTlcIixcIjYyMjJcIixcIjYyMjNcIixcIjYyMjRcIixcIjYyMjVcIixcIjYyMjZcIixcIjYyMjdcIixcIjYyMjhcIixcIjYyMjkwXCIsXCI2MjI5MVwiLFwiNjIyOTIwXCIsXCI2MjI5MjFcIixcIjYyMjkyMlwiLFwiNjIyOTIzXCIsXCI2MjI5MjRcIixcIjYyMjkyNVwiXX0sVklTQTp7bGVuZ3RoOlsxNl0scHJlZml4OltcIjRcIl19LFZJU0FfRUxFQ1RST046e2xlbmd0aDpbMTZdLHByZWZpeDpbXCI0MDI2XCIsXCI0MTc1MDBcIixcIjQ0MDVcIixcIjQ1MDhcIixcIjQ4NDRcIixcIjQ5MTNcIixcIjQ5MTdcIl19fTtmdW5jdGlvbiBsKCl7cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKGwpe2lmKGwudmFsdWU9PT1cIlwiKXtyZXR1cm57bWV0YTp7dHlwZTpudWxsfSx2YWxpZDp0cnVlfX1pZigvW14wLTktXFxzXSsvLnRlc3QobC52YWx1ZSkpe3JldHVybnttZXRhOnt0eXBlOm51bGx9LHZhbGlkOmZhbHNlfX12YXIgcj1sLnZhbHVlLnJlcGxhY2UoL1xcRC9nLFwiXCIpO2lmKCF0KHIpKXtyZXR1cm57bWV0YTp7dHlwZTpudWxsfSx2YWxpZDpmYWxzZX19Zm9yKHZhciBfaT0wLF9PYmplY3Qka2V5cz1PYmplY3Qua2V5cyh0JDgpO19pPF9PYmplY3Qka2V5cy5sZW5ndGg7X2krKyl7dmFyIF9lPV9PYmplY3Qka2V5c1tfaV07Zm9yKHZhciBuIGluIHQkOFtfZV0ucHJlZml4KXtpZihsLnZhbHVlLnN1YnN0cigwLHQkOFtfZV0ucHJlZml4W25dLmxlbmd0aCk9PT10JDhbX2VdLnByZWZpeFtuXSYmdCQ4W19lXS5sZW5ndGguaW5kZXhPZihyLmxlbmd0aCkhPT0tMSl7cmV0dXJue21ldGE6e3R5cGU6X2V9LHZhbGlkOnRydWV9fX19cmV0dXJue21ldGE6e3R5cGU6bnVsbH0sdmFsaWQ6ZmFsc2V9fX19ZnVuY3Rpb24gdCQ5KHQsZSxuLHIpe2lmKGlzTmFOKHQpfHxpc05hTihlKXx8aXNOYU4obikpe3JldHVybiBmYWxzZX1pZih0PDFlM3x8dD45OTk5fHxlPD0wfHxlPjEyKXtyZXR1cm4gZmFsc2V9dmFyIHM9WzMxLHQlNDAwPT09MHx8dCUxMDAhPT0wJiZ0JTQ9PT0wPzI5OjI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXTtpZihuPD0wfHxuPnNbZS0xXSl7cmV0dXJuIGZhbHNlfWlmKHI9PT10cnVlKXt2YXIgX3I9bmV3IERhdGU7dmFyIF9zPV9yLmdldEZ1bGxZZWFyKCk7dmFyIGE9X3IuZ2V0TW9udGgoKTt2YXIgdT1fci5nZXREYXRlKCk7cmV0dXJuIHQ8X3N8fHQ9PT1fcyYmZS0xPGF8fHQ9PT1fcyYmZS0xPT09YSYmbjx1fXJldHVybiB0cnVlfWZ1bmN0aW9uIG4oKXt2YXIgbj1mdW5jdGlvbiBuKHQsZSxfbil7dmFyIHM9ZS5pbmRleE9mKFwiWVlZWVwiKTt2YXIgYT1lLmluZGV4T2YoXCJNTVwiKTt2YXIgbD1lLmluZGV4T2YoXCJERFwiKTtpZihzPT09LTF8fGE9PT0tMXx8bD09PS0xKXtyZXR1cm4gbnVsbH12YXIgbz10LnNwbGl0KFwiIFwiKTt2YXIgcj1vWzBdLnNwbGl0KF9uKTtpZihyLmxlbmd0aDwzKXtyZXR1cm4gbnVsbH12YXIgYz1uZXcgRGF0ZShwYXJzZUludChyW3NdLDEwKSxwYXJzZUludChyW2FdLDEwKS0xLHBhcnNlSW50KHJbbF0sMTApKTtpZihvLmxlbmd0aD4xKXt2YXIgX3Q9b1sxXS5zcGxpdChcIjpcIik7Yy5zZXRIb3VycyhfdC5sZW5ndGg+MD9wYXJzZUludChfdFswXSwxMCk6MCk7Yy5zZXRNaW51dGVzKF90Lmxlbmd0aD4xP3BhcnNlSW50KF90WzFdLDEwKTowKTtjLnNldFNlY29uZHMoX3QubGVuZ3RoPjI/cGFyc2VJbnQoX3RbMl0sMTApOjApfXJldHVybiBjfTt2YXIgcz1mdW5jdGlvbiBzKHQsZSl7dmFyIG49ZS5yZXBsYWNlKC9ZL2csXCJ5XCIpLnJlcGxhY2UoL00vZyxcIm1cIikucmVwbGFjZSgvRC9nLFwiZFwiKS5yZXBsYWNlKC86bS9nLFwiOk1cIikucmVwbGFjZSgvOm1tL2csXCI6TU1cIikucmVwbGFjZSgvOlMvLFwiOnNcIikucmVwbGFjZSgvOlNTLyxcIjpzc1wiKTt2YXIgcz10LmdldERhdGUoKTt2YXIgYT1zPDEwP1wiMFwiLmNvbmNhdChzKTpzO3ZhciBsPXQuZ2V0TW9udGgoKSsxO3ZhciBvPWw8MTA/XCIwXCIuY29uY2F0KGwpOmw7dmFyIHI9XCJcIi5jb25jYXQodC5nZXRGdWxsWWVhcigpKS5zdWJzdHIoMik7dmFyIGM9dC5nZXRGdWxsWWVhcigpO3ZhciBpPXQuZ2V0SG91cnMoKSUxMnx8MTI7dmFyIGc9aTwxMD9cIjBcIi5jb25jYXQoaSk6aTt2YXIgdT10LmdldEhvdXJzKCk7dmFyIG09dTwxMD9cIjBcIi5jb25jYXQodSk6dTt2YXIgZD10LmdldE1pbnV0ZXMoKTt2YXIgZj1kPDEwP1wiMFwiLmNvbmNhdChkKTpkO3ZhciBwPXQuZ2V0U2Vjb25kcygpO3ZhciBoPXA8MTA/XCIwXCIuY29uY2F0KHApOnA7dmFyICQ9e0g6XCJcIi5jb25jYXQodSksSEg6XCJcIi5jb25jYXQobSksTTpcIlwiLmNvbmNhdChkKSxNTTpcIlwiLmNvbmNhdChmKSxkOlwiXCIuY29uY2F0KHMpLGRkOlwiXCIuY29uY2F0KGEpLGg6XCJcIi5jb25jYXQoaSksaGg6XCJcIi5jb25jYXQoZyksbTpcIlwiLmNvbmNhdChsKSxtbTpcIlwiLmNvbmNhdChvKSxzOlwiXCIuY29uY2F0KHApLHNzOlwiXCIuY29uY2F0KGgpLHl5OlwiXCIuY29uY2F0KHIpLHl5eXk6XCJcIi5jb25jYXQoYyl9O3JldHVybiBuLnJlcGxhY2UoL2R7MSw0fXxtezEsNH18eXkoPzp5eSk/fChbSGhNc10pXFwxP3xcIlteXCJdKlwifCdbXiddKicvZywoZnVuY3Rpb24odCl7cmV0dXJuICRbdF0/JFt0XTp0LnNsaWNlKDEsdC5sZW5ndGgtMSl9KSl9O3JldHVybnt2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZShhKXtpZihhLnZhbHVlPT09XCJcIil7cmV0dXJue21ldGE6e2RhdGU6bnVsbH0sdmFsaWQ6dHJ1ZX19dmFyIGw9T2JqZWN0LmFzc2lnbih7fSx7Zm9ybWF0OmEuZWxlbWVudCYmYS5lbGVtZW50LmdldEF0dHJpYnV0ZShcInR5cGVcIik9PT1cImRhdGVcIj9cIllZWVktTU0tRERcIjpcIk1NL0REL1lZWVlcIixtZXNzYWdlOlwiXCJ9LGEub3B0aW9ucyk7dmFyIG89YS5sMTBuP2EubDEwbi5kYXRlW1wiZGVmYXVsdFwiXTpsLm1lc3NhZ2U7dmFyIHIkMT17bWVzc2FnZTpcIlwiLmNvbmNhdChvKSxtZXRhOntkYXRlOm51bGx9LHZhbGlkOmZhbHNlfTt2YXIgYz1sLmZvcm1hdC5zcGxpdChcIiBcIik7dmFyIGk9Yy5sZW5ndGg+MT9jWzFdOm51bGw7dmFyIGc9Yy5sZW5ndGg+Mj9jWzJdOm51bGw7dmFyIHU9YS52YWx1ZS5zcGxpdChcIiBcIik7dmFyIG09dVswXTt2YXIgZD11Lmxlbmd0aD4xP3VbMV06bnVsbDtpZihjLmxlbmd0aCE9PXUubGVuZ3RoKXtyZXR1cm4gciQxfXZhciBmPWwuc2VwYXJhdG9yfHwobS5pbmRleE9mKFwiL1wiKSE9PS0xP1wiL1wiOm0uaW5kZXhPZihcIi1cIikhPT0tMT9cIi1cIjptLmluZGV4T2YoXCIuXCIpIT09LTE/XCIuXCI6XCIvXCIpO2lmKGY9PT1udWxsfHxtLmluZGV4T2YoZik9PT0tMSl7cmV0dXJuIHIkMX12YXIgcD1tLnNwbGl0KGYpO3ZhciBoPWNbMF0uc3BsaXQoZik7aWYocC5sZW5ndGghPT1oLmxlbmd0aCl7cmV0dXJuIHIkMX12YXIgJD1wW2guaW5kZXhPZihcIllZWVlcIildO3ZhciBNPXBbaC5pbmRleE9mKFwiTU1cIildO3ZhciBZPXBbaC5pbmRleE9mKFwiRERcIildO2lmKCEvXlxcZCskLy50ZXN0KCQpfHwhL15cXGQrJC8udGVzdChNKXx8IS9eXFxkKyQvLnRlc3QoWSl8fCQubGVuZ3RoPjR8fE0ubGVuZ3RoPjJ8fFkubGVuZ3RoPjIpe3JldHVybiByJDF9dmFyIEQ9cGFyc2VJbnQoJCwxMCk7dmFyIHg9cGFyc2VJbnQoTSwxMCk7dmFyIHk9cGFyc2VJbnQoWSwxMCk7aWYoIXQkOShELHgseSkpe3JldHVybiByJDF9dmFyIEk9bmV3IERhdGUoRCx4LTEseSk7aWYoaSl7dmFyIF90Mj1kLnNwbGl0KFwiOlwiKTtpZihpLnNwbGl0KFwiOlwiKS5sZW5ndGghPT1fdDIubGVuZ3RoKXtyZXR1cm4gciQxfXZhciBfZT1fdDIubGVuZ3RoPjA/X3QyWzBdLmxlbmd0aDw9MiYmL15cXGQrJC8udGVzdChfdDJbMF0pP3BhcnNlSW50KF90MlswXSwxMCk6LTE6MDt2YXIgX24yPV90Mi5sZW5ndGg+MT9fdDJbMV0ubGVuZ3RoPD0yJiYvXlxcZCskLy50ZXN0KF90MlsxXSk/cGFyc2VJbnQoX3QyWzFdLDEwKTotMTowO3ZhciBfcz1fdDIubGVuZ3RoPjI/X3QyWzJdLmxlbmd0aDw9MiYmL15cXGQrJC8udGVzdChfdDJbMl0pP3BhcnNlSW50KF90MlsyXSwxMCk6LTE6MDtpZihfZT09PS0xfHxfbjI9PT0tMXx8X3M9PT0tMSl7cmV0dXJuIHIkMX1pZihfczwwfHxfcz42MCl7cmV0dXJuIHIkMX1pZihfZTwwfHxfZT49MjR8fGcmJl9lPjEyKXtyZXR1cm4gciQxfWlmKF9uMjwwfHxfbjI+NTkpe3JldHVybiByJDF9SS5zZXRIb3VycyhfZSk7SS5zZXRNaW51dGVzKF9uMik7SS5zZXRTZWNvbmRzKF9zKX12YXIgTz10eXBlb2YgbC5taW49PT1cImZ1bmN0aW9uXCI/bC5taW4oKTpsLm1pbjt2YXIgdj1PIGluc3RhbmNlb2YgRGF0ZT9POk8/bihPLGgsZik6STt2YXIgSD10eXBlb2YgbC5tYXg9PT1cImZ1bmN0aW9uXCI/bC5tYXgoKTpsLm1heDt2YXIgVD1IIGluc3RhbmNlb2YgRGF0ZT9IOkg/bihILGgsZik6STt2YXIgUz1PIGluc3RhbmNlb2YgRGF0ZT9zKHYsbC5mb3JtYXQpOk87dmFyIGI9SCBpbnN0YW5jZW9mIERhdGU/cyhULGwuZm9ybWF0KTpIO3N3aXRjaCh0cnVlKXtjYXNlISFTJiYhYjpyZXR1cm57bWVzc2FnZTpyKGEubDEwbj9hLmwxMG4uZGF0ZS5taW46byxTKSxtZXRhOntkYXRlOkl9LHZhbGlkOkkuZ2V0VGltZSgpPj12LmdldFRpbWUoKX07Y2FzZSEhYiYmIVM6cmV0dXJue21lc3NhZ2U6cihhLmwxMG4/YS5sMTBuLmRhdGUubWF4Om8sYiksbWV0YTp7ZGF0ZTpJfSx2YWxpZDpJLmdldFRpbWUoKTw9VC5nZXRUaW1lKCl9O2Nhc2UhIWImJiEhUzpyZXR1cm57bWVzc2FnZTpyKGEubDEwbj9hLmwxMG4uZGF0ZS5yYW5nZTpvLFtTLGJdKSxtZXRhOntkYXRlOkl9LHZhbGlkOkkuZ2V0VGltZSgpPD1ULmdldFRpbWUoKSYmSS5nZXRUaW1lKCk+PXYuZ2V0VGltZSgpfTtkZWZhdWx0OnJldHVybnttZXNzYWdlOlwiXCIuY29uY2F0KG8pLG1ldGE6e2RhdGU6SX0sdmFsaWQ6dHJ1ZX19fX19ZnVuY3Rpb24gbyQxKCl7cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKG8pe3ZhciB0PVwiZnVuY3Rpb25cIj09PXR5cGVvZiBvLm9wdGlvbnMuY29tcGFyZT9vLm9wdGlvbnMuY29tcGFyZS5jYWxsKHRoaXMpOm8ub3B0aW9ucy5jb21wYXJlO3JldHVybnt2YWxpZDp0PT09XCJcInx8by52YWx1ZSE9PXR9fX19ZnVuY3Rpb24gZSQxKCl7cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKGUpe3JldHVybnt2YWxpZDplLnZhbHVlPT09XCJcInx8L15cXGQrJC8udGVzdChlLnZhbHVlKX19fX1mdW5jdGlvbiB0JGEoKXt2YXIgdD1mdW5jdGlvbiB0KF90MyxlKXt2YXIgcz1fdDMuc3BsaXQoL1wiLyk7dmFyIGw9cy5sZW5ndGg7dmFyIG49W107dmFyIHI9XCJcIjtmb3IodmFyIF90PTA7X3Q8bDtfdCsrKXtpZihfdCUyPT09MCl7dmFyIF9sPXNbX3RdLnNwbGl0KGUpO3ZhciBhPV9sLmxlbmd0aDtpZihhPT09MSl7cis9X2xbMF19ZWxzZXtuLnB1c2gocitfbFswXSk7Zm9yKHZhciBfdDI9MTtfdDI8YS0xO190MisrKXtuLnB1c2goX2xbX3QyXSl9cj1fbFthLTFdfX1lbHNle3IrPSdcIicrc1tfdF07aWYoX3Q8bC0xKXtyKz0nXCInfX19bi5wdXNoKHIpO3JldHVybiBufTtyZXR1cm57dmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoZSl7aWYoZS52YWx1ZT09PVwiXCIpe3JldHVybnt2YWxpZDp0cnVlfX12YXIgcz1PYmplY3QuYXNzaWduKHt9LHttdWx0aXBsZTpmYWxzZSxzZXBhcmF0b3I6L1ssO10vfSxlLm9wdGlvbnMpO3ZhciBsPS9eKChbXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KD86XFwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSokLzt2YXIgbj1zLm11bHRpcGxlPT09dHJ1ZXx8XCJcIi5jb25jYXQocy5tdWx0aXBsZSk9PT1cInRydWVcIjtpZihuKXt2YXIgX249cy5zZXBhcmF0b3J8fC9bLDtdLzt2YXIgcj10KGUudmFsdWUsX24pO3ZhciBhPXIubGVuZ3RoO2Zvcih2YXIgX3Q0PTA7X3Q0PGE7X3Q0Kyspe2lmKCFsLnRlc3QocltfdDRdKSl7cmV0dXJue3ZhbGlkOmZhbHNlfX19cmV0dXJue3ZhbGlkOnRydWV9fWVsc2V7cmV0dXJue3ZhbGlkOmwudGVzdChlLnZhbHVlKX19fX19ZnVuY3Rpb24gZSQyKCl7cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKGUpe2lmKGUudmFsdWU9PT1cIlwiKXtyZXR1cm57dmFsaWQ6dHJ1ZX19dmFyIHQ7dmFyIGk9ZS5vcHRpb25zLmV4dGVuc2lvbj9lLm9wdGlvbnMuZXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCkuc3BsaXQoXCIsXCIpOm51bGw7dmFyIHM9ZS5vcHRpb25zLnR5cGU/ZS5vcHRpb25zLnR5cGUudG9Mb3dlckNhc2UoKS5zcGxpdChcIixcIik6bnVsbDt2YXIgbj13aW5kb3dbXCJGaWxlXCJdJiZ3aW5kb3dbXCJGaWxlTGlzdFwiXSYmd2luZG93W1wiRmlsZVJlYWRlclwiXTtpZihuKXt2YXIgX249ZS5lbGVtZW50LmZpbGVzO3ZhciBvPV9uLmxlbmd0aDt2YXIgYT0wO2lmKGUub3B0aW9ucy5tYXhGaWxlcyYmbz5wYXJzZUludChcIlwiLmNvbmNhdChlLm9wdGlvbnMubWF4RmlsZXMpLDEwKSl7cmV0dXJue21ldGE6e2Vycm9yOlwiSU5WQUxJRF9NQVhfRklMRVNcIn0sdmFsaWQ6ZmFsc2V9fWlmKGUub3B0aW9ucy5taW5GaWxlcyYmbzxwYXJzZUludChcIlwiLmNvbmNhdChlLm9wdGlvbnMubWluRmlsZXMpLDEwKSl7cmV0dXJue21ldGE6e2Vycm9yOlwiSU5WQUxJRF9NSU5fRklMRVNcIn0sdmFsaWQ6ZmFsc2V9fXZhciByPXt9O2Zvcih2YXIgbD0wO2w8bztsKyspe2ErPV9uW2xdLnNpemU7dD1fbltsXS5uYW1lLnN1YnN0cihfbltsXS5uYW1lLmxhc3RJbmRleE9mKFwiLlwiKSsxKTtyPXtleHQ6dCxmaWxlOl9uW2xdLHNpemU6X25bbF0uc2l6ZSx0eXBlOl9uW2xdLnR5cGV9O2lmKGUub3B0aW9ucy5taW5TaXplJiZfbltsXS5zaXplPHBhcnNlSW50KFwiXCIuY29uY2F0KGUub3B0aW9ucy5taW5TaXplKSwxMCkpe3JldHVybnttZXRhOk9iamVjdC5hc3NpZ24oe30se2Vycm9yOlwiSU5WQUxJRF9NSU5fU0laRVwifSxyKSx2YWxpZDpmYWxzZX19aWYoZS5vcHRpb25zLm1heFNpemUmJl9uW2xdLnNpemU+cGFyc2VJbnQoXCJcIi5jb25jYXQoZS5vcHRpb25zLm1heFNpemUpLDEwKSl7cmV0dXJue21ldGE6T2JqZWN0LmFzc2lnbih7fSx7ZXJyb3I6XCJJTlZBTElEX01BWF9TSVpFXCJ9LHIpLHZhbGlkOmZhbHNlfX1pZihpJiZpLmluZGV4T2YodC50b0xvd2VyQ2FzZSgpKT09PS0xKXtyZXR1cm57bWV0YTpPYmplY3QuYXNzaWduKHt9LHtlcnJvcjpcIklOVkFMSURfRVhURU5TSU9OXCJ9LHIpLHZhbGlkOmZhbHNlfX1pZihfbltsXS50eXBlJiZzJiZzLmluZGV4T2YoX25bbF0udHlwZS50b0xvd2VyQ2FzZSgpKT09PS0xKXtyZXR1cm57bWV0YTpPYmplY3QuYXNzaWduKHt9LHtlcnJvcjpcIklOVkFMSURfVFlQRVwifSxyKSx2YWxpZDpmYWxzZX19fWlmKGUub3B0aW9ucy5tYXhUb3RhbFNpemUmJmE+cGFyc2VJbnQoXCJcIi5jb25jYXQoZS5vcHRpb25zLm1heFRvdGFsU2l6ZSksMTApKXtyZXR1cm57bWV0YTpPYmplY3QuYXNzaWduKHt9LHtlcnJvcjpcIklOVkFMSURfTUFYX1RPVEFMX1NJWkVcIix0b3RhbFNpemU6YX0sciksdmFsaWQ6ZmFsc2V9fWlmKGUub3B0aW9ucy5taW5Ub3RhbFNpemUmJmE8cGFyc2VJbnQoXCJcIi5jb25jYXQoZS5vcHRpb25zLm1pblRvdGFsU2l6ZSksMTApKXtyZXR1cm57bWV0YTpPYmplY3QuYXNzaWduKHt9LHtlcnJvcjpcIklOVkFMSURfTUlOX1RPVEFMX1NJWkVcIix0b3RhbFNpemU6YX0sciksdmFsaWQ6ZmFsc2V9fX1lbHNle3Q9ZS52YWx1ZS5zdWJzdHIoZS52YWx1ZS5sYXN0SW5kZXhPZihcIi5cIikrMSk7aWYoaSYmaS5pbmRleE9mKHQudG9Mb3dlckNhc2UoKSk9PT0tMSl7cmV0dXJue21ldGE6e2Vycm9yOlwiSU5WQUxJRF9FWFRFTlNJT05cIixleHQ6dH0sdmFsaWQ6ZmFsc2V9fX1yZXR1cm57dmFsaWQ6dHJ1ZX19fX1mdW5jdGlvbiBhKCl7cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKGEpe2lmKGEudmFsdWU9PT1cIlwiKXtyZXR1cm57dmFsaWQ6dHJ1ZX19dmFyIHM9T2JqZWN0LmFzc2lnbih7fSx7aW5jbHVzaXZlOnRydWUsbWVzc2FnZTpcIlwifSxhLm9wdGlvbnMpO3ZhciB0PXBhcnNlRmxvYXQoXCJcIi5jb25jYXQocy5taW4pLnJlcGxhY2UoXCIsXCIsXCIuXCIpKTtyZXR1cm4gcy5pbmNsdXNpdmU/e21lc3NhZ2U6cihhLmwxMG4/cy5tZXNzYWdlfHxhLmwxMG4uZ3JlYXRlclRoYW5bXCJkZWZhdWx0XCJdOnMubWVzc2FnZSxcIlwiLmNvbmNhdCh0KSksdmFsaWQ6cGFyc2VGbG9hdChhLnZhbHVlKT49dH06e21lc3NhZ2U6cihhLmwxMG4/cy5tZXNzYWdlfHxhLmwxMG4uZ3JlYXRlclRoYW4ubm90SW5jbHVzaXZlOnMubWVzc2FnZSxcIlwiLmNvbmNhdCh0KSksdmFsaWQ6cGFyc2VGbG9hdChhLnZhbHVlKT50fX19fWZ1bmN0aW9uIG8kMigpe3JldHVybnt2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZShvKXt2YXIgdD1cImZ1bmN0aW9uXCI9PT10eXBlb2Ygby5vcHRpb25zLmNvbXBhcmU/by5vcHRpb25zLmNvbXBhcmUuY2FsbCh0aGlzKTpvLm9wdGlvbnMuY29tcGFyZTtyZXR1cm57dmFsaWQ6dD09PVwiXCJ8fG8udmFsdWU9PT10fX19fWZ1bmN0aW9uIGEkMSgpe3JldHVybnt2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZShhKXtpZihhLnZhbHVlPT09XCJcIil7cmV0dXJue3ZhbGlkOnRydWV9fXZhciBlPU9iamVjdC5hc3NpZ24oe30se2RlY2ltYWxTZXBhcmF0b3I6XCIuXCIsdGhvdXNhbmRzU2VwYXJhdG9yOlwiXCJ9LGEub3B0aW9ucyk7dmFyIHQ9ZS5kZWNpbWFsU2VwYXJhdG9yPT09XCIuXCI/XCJcXFxcLlwiOmUuZGVjaW1hbFNlcGFyYXRvcjt2YXIgcj1lLnRob3VzYW5kc1NlcGFyYXRvcj09PVwiLlwiP1wiXFxcXC5cIjplLnRob3VzYW5kc1NlcGFyYXRvcjt2YXIgbz1uZXcgUmVnRXhwKFwiXi0/WzAtOV17MSwzfShcIi5jb25jYXQocixcIlswLTldezN9KSooXCIpLmNvbmNhdCh0LFwiWzAtOV0rKT8kXCIpKTt2YXIgbj1uZXcgUmVnRXhwKHIsXCJnXCIpO3ZhciBzPVwiXCIuY29uY2F0KGEudmFsdWUpO2lmKCFvLnRlc3Qocykpe3JldHVybnt2YWxpZDpmYWxzZX19aWYocil7cz1zLnJlcGxhY2UobixcIlwiKX1pZih0KXtzPXMucmVwbGFjZSh0LFwiLlwiKX12YXIgaT1wYXJzZUZsb2F0KHMpO3JldHVybnt2YWxpZDohaXNOYU4oaSkmJmlzRmluaXRlKGkpJiZNYXRoLmZsb29yKGkpPT09aX19fX1mdW5jdGlvbiBkKCl7cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKGQpe2lmKGQudmFsdWU9PT1cIlwiKXtyZXR1cm57dmFsaWQ6dHJ1ZX19dmFyIGE9T2JqZWN0LmFzc2lnbih7fSx7aXB2NDp0cnVlLGlwdjY6dHJ1ZX0sZC5vcHRpb25zKTt2YXIgZT0vXig/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KShcXC8oWzAtOV18WzEtMl1bMC05XXwzWzAtMl0pKT8kLzt2YXIgcz0vXlxccyooKChbMC05QS1GYS1mXXsxLDR9Oil7N30oWzAtOUEtRmEtZl17MSw0fXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7Nn0oOlswLTlBLUZhLWZdezEsNH18KCgyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoXFwuKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs1fSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDJ9KXw6KCgyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoXFwuKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs0fSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDN9KXwoKDpbMC05QS1GYS1mXXsxLDR9KT86KCgyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoXFwuKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7M30oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw0fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCwyfTooKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXsyfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDV9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDN9OigoMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKFxcLigyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezF9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNn0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsNH06KCgyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoXFwuKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pKXw6KSl8KDooKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw3fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCw1fTooKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKSkoJS4rKT9cXHMqKFxcLyhcXGR8XFxkXFxkfDFbMC0xXVxcZHwxMlswLThdKSk/JC87c3dpdGNoKHRydWUpe2Nhc2UgYS5pcHY0JiYhYS5pcHY2OnJldHVybnttZXNzYWdlOmQubDEwbj9hLm1lc3NhZ2V8fGQubDEwbi5pcC5pcHY0OmEubWVzc2FnZSx2YWxpZDplLnRlc3QoZC52YWx1ZSl9O2Nhc2UhYS5pcHY0JiZhLmlwdjY6cmV0dXJue21lc3NhZ2U6ZC5sMTBuP2EubWVzc2FnZXx8ZC5sMTBuLmlwLmlwdjY6YS5tZXNzYWdlLHZhbGlkOnMudGVzdChkLnZhbHVlKX07Y2FzZSBhLmlwdjQmJmEuaXB2NjpkZWZhdWx0OnJldHVybnttZXNzYWdlOmQubDEwbj9hLm1lc3NhZ2V8fGQubDEwbi5pcFtcImRlZmF1bHRcIl06YS5tZXNzYWdlLHZhbGlkOmUudGVzdChkLnZhbHVlKXx8cy50ZXN0KGQudmFsdWUpfX19fX1mdW5jdGlvbiBzJDIoKXtyZXR1cm57dmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUocyl7aWYocy52YWx1ZT09PVwiXCIpe3JldHVybnt2YWxpZDp0cnVlfX12YXIgYT1PYmplY3QuYXNzaWduKHt9LHtpbmNsdXNpdmU6dHJ1ZSxtZXNzYWdlOlwiXCJ9LHMub3B0aW9ucyk7dmFyIGw9cGFyc2VGbG9hdChcIlwiLmNvbmNhdChhLm1heCkucmVwbGFjZShcIixcIixcIi5cIikpO3JldHVybiBhLmluY2x1c2l2ZT97bWVzc2FnZTpyKHMubDEwbj9hLm1lc3NhZ2V8fHMubDEwbi5sZXNzVGhhbltcImRlZmF1bHRcIl06YS5tZXNzYWdlLFwiXCIuY29uY2F0KGwpKSx2YWxpZDpwYXJzZUZsb2F0KHMudmFsdWUpPD1sfTp7bWVzc2FnZTpyKHMubDEwbj9hLm1lc3NhZ2V8fHMubDEwbi5sZXNzVGhhbi5ub3RJbmNsdXNpdmU6YS5tZXNzYWdlLFwiXCIuY29uY2F0KGwpKSx2YWxpZDpwYXJzZUZsb2F0KHMudmFsdWUpPGx9fX19ZnVuY3Rpb24gdCRiKCl7cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKHQpe3ZhciBuPSEhdC5vcHRpb25zJiYhIXQub3B0aW9ucy50cmltO3ZhciBvPXQudmFsdWU7cmV0dXJue3ZhbGlkOiFuJiZvIT09XCJcInx8biYmbyE9PVwiXCImJm8udHJpbSgpIT09XCJcIn19fX1mdW5jdGlvbiBhJDIoKXtyZXR1cm57dmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoYSl7aWYoYS52YWx1ZT09PVwiXCIpe3JldHVybnt2YWxpZDp0cnVlfX12YXIgZT1PYmplY3QuYXNzaWduKHt9LHtkZWNpbWFsU2VwYXJhdG9yOlwiLlwiLHRob3VzYW5kc1NlcGFyYXRvcjpcIlwifSxhLm9wdGlvbnMpO3ZhciB0PVwiXCIuY29uY2F0KGEudmFsdWUpO2lmKHQuc3Vic3RyKDAsMSk9PT1lLmRlY2ltYWxTZXBhcmF0b3Ipe3Q9XCIwXCIuY29uY2F0KGUuZGVjaW1hbFNlcGFyYXRvcikuY29uY2F0KHQuc3Vic3RyKDEpKX1lbHNlIGlmKHQuc3Vic3RyKDAsMik9PT1cIi1cIi5jb25jYXQoZS5kZWNpbWFsU2VwYXJhdG9yKSl7dD1cIi0wXCIuY29uY2F0KGUuZGVjaW1hbFNlcGFyYXRvcikuY29uY2F0KHQuc3Vic3RyKDIpKX12YXIgcj1lLmRlY2ltYWxTZXBhcmF0b3I9PT1cIi5cIj9cIlxcXFwuXCI6ZS5kZWNpbWFsU2VwYXJhdG9yO3ZhciBzPWUudGhvdXNhbmRzU2VwYXJhdG9yPT09XCIuXCI/XCJcXFxcLlwiOmUudGhvdXNhbmRzU2VwYXJhdG9yO3ZhciBpPW5ldyBSZWdFeHAoXCJeLT9bMC05XXsxLDN9KFwiLmNvbmNhdChzLFwiWzAtOV17M30pKihcIikuY29uY2F0KHIsXCJbMC05XSspPyRcIikpO3ZhciBvPW5ldyBSZWdFeHAocyxcImdcIik7aWYoIWkudGVzdCh0KSl7cmV0dXJue3ZhbGlkOmZhbHNlfX1pZihzKXt0PXQucmVwbGFjZShvLFwiXCIpfWlmKHIpe3Q9dC5yZXBsYWNlKHIsXCIuXCIpfXZhciBsPXBhcnNlRmxvYXQodCk7cmV0dXJue3ZhbGlkOiFpc05hTihsKSYmaXNGaW5pdGUobCl9fX19ZnVuY3Rpb24gciQxKCl7cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKHIpe3JldHVybiB0JDYoci5vcHRpb25zLnByb21pc2UsW3JdKX19fWZ1bmN0aW9uIGUkMygpe3JldHVybnt2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZShlKXtpZihlLnZhbHVlPT09XCJcIil7cmV0dXJue3ZhbGlkOnRydWV9fXZhciB0PWUub3B0aW9ucy5yZWdleHA7aWYodCBpbnN0YW5jZW9mIFJlZ0V4cCl7cmV0dXJue3ZhbGlkOnQudGVzdChlLnZhbHVlKX19ZWxzZXt2YXIgbj10LnRvU3RyaW5nKCk7dmFyIG89ZS5vcHRpb25zLmZsYWdzP25ldyBSZWdFeHAobixlLm9wdGlvbnMuZmxhZ3MpOm5ldyBSZWdFeHAobik7cmV0dXJue3ZhbGlkOm8udGVzdChlLnZhbHVlKX19fX19ZnVuY3Rpb24gZSQ0KGUsdCl7dmFyIG49ZnVuY3Rpb24gbihlKXtyZXR1cm4gT2JqZWN0LmtleXMoZSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm5cIlwiLmNvbmNhdChlbmNvZGVVUklDb21wb25lbnQodCksXCI9XCIpLmNvbmNhdChlbmNvZGVVUklDb21wb25lbnQoZVt0XSkpfSkpLmpvaW4oXCImXCIpfTtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG8scyl7dmFyIGQ9T2JqZWN0LmFzc2lnbih7fSx7Y3Jvc3NEb21haW46ZmFsc2UsaGVhZGVyczp7fSxtZXRob2Q6XCJHRVRcIixwYXJhbXM6e319LHQpO3ZhciBhPU9iamVjdC5rZXlzKGQucGFyYW1zKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVyblwiXCIuY29uY2F0KGVuY29kZVVSSUNvbXBvbmVudChlKSxcIj1cIikuY29uY2F0KGVuY29kZVVSSUNvbXBvbmVudChkLnBhcmFtc1tlXSkpfSkpLmpvaW4oXCImXCIpO3ZhciByPWUuaW5kZXhPZihcIj9cIik7dmFyIGM9XCJHRVRcIj09PWQubWV0aG9kP1wiXCIuY29uY2F0KGUpLmNvbmNhdChyP1wiP1wiOlwiJlwiKS5jb25jYXQoYSk6ZTtpZihkLmNyb3NzRG9tYWluKXt2YXIgX2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTt2YXIgX3Q9XCJfX19mZXRjaFwiLmNvbmNhdChEYXRlLm5vdygpLFwiX19fXCIpO3dpbmRvd1tfdF09ZnVuY3Rpb24oZSl7ZGVsZXRlIHdpbmRvd1tfdF07byhlKX07X2Uuc3JjPVwiXCIuY29uY2F0KGMpLmNvbmNhdChyP1wiJlwiOlwiP1wiLFwiY2FsbGJhY2s9XCIpLmNvbmNhdChfdCk7X2UuYXN5bmM9dHJ1ZTtfZS5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLChmdW5jdGlvbigpe19lLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoX2UpfSkpO19lLmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLChmdW5jdGlvbigpe3JldHVybiBzfSkpO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoX2UpfWVsc2V7dmFyIF9lMj1uZXcgWE1MSHR0cFJlcXVlc3Q7X2UyLm9wZW4oZC5tZXRob2QsYyk7X2UyLnNldFJlcXVlc3RIZWFkZXIoXCJYLVJlcXVlc3RlZC1XaXRoXCIsXCJYTUxIdHRwUmVxdWVzdFwiKTtpZihcIlBPU1RcIj09PWQubWV0aG9kKXtfZTIuc2V0UmVxdWVzdEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIpfU9iamVjdC5rZXlzKGQuaGVhZGVycykuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIF9lMi5zZXRSZXF1ZXN0SGVhZGVyKHQsZC5oZWFkZXJzW3RdKX0pKTtfZTIuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwoZnVuY3Rpb24oKXtvKEpTT04ucGFyc2UodGhpcy5yZXNwb25zZVRleHQpKX0pKTtfZTIuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsKGZ1bmN0aW9uKCl7cmV0dXJuIHN9KSk7X2UyLnNlbmQobihkLnBhcmFtcykpfX0pKX1mdW5jdGlvbiBhJDMoKXt2YXIgYT17Y3Jvc3NEb21haW46ZmFsc2UsZGF0YTp7fSxoZWFkZXJzOnt9LG1ldGhvZDpcIkdFVFwiLHZhbGlkS2V5OlwidmFsaWRcIn07cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKHQpe2lmKHQudmFsdWU9PT1cIlwiKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt2YWxpZDp0cnVlfSl9dmFyIHM9T2JqZWN0LmFzc2lnbih7fSxhLHQub3B0aW9ucyk7dmFyIHI9cy5kYXRhO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBzLmRhdGEpe3I9cy5kYXRhLmNhbGwodGhpcyx0KX1pZihcInN0cmluZ1wiPT09dHlwZW9mIHIpe3I9SlNPTi5wYXJzZShyKX1yW3MubmFtZXx8dC5maWVsZF09dC52YWx1ZTt2YXIgbz1cImZ1bmN0aW9uXCI9PT10eXBlb2Ygcy51cmw/cy51cmwuY2FsbCh0aGlzLHQpOnMudXJsO3JldHVybiBlJDQobyx7Y3Jvc3NEb21haW46cy5jcm9zc0RvbWFpbixoZWFkZXJzOnMuaGVhZGVycyxtZXRob2Q6cy5tZXRob2QscGFyYW1zOnJ9KS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHttZXNzYWdlOmVbXCJtZXNzYWdlXCJdLG1ldGE6ZSx2YWxpZDpcIlwiLmNvbmNhdChlW3MudmFsaWRLZXldKT09PVwidHJ1ZVwifSl9KSlbXCJjYXRjaFwiXSgoZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UucmVqZWN0KHt2YWxpZDpmYWxzZX0pfSkpfX19ZnVuY3Rpb24gZSQ1KCl7cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKGUpe2lmKGUudmFsdWU9PT1cIlwiKXtyZXR1cm57dmFsaWQ6dHJ1ZX19dmFyIGE9T2JqZWN0LmFzc2lnbih7fSx7Y2FzZTpcImxvd2VyXCJ9LGUub3B0aW9ucyk7dmFyIHM9KGFbXCJjYXNlXCJdfHxcImxvd2VyXCIpLnRvTG93ZXJDYXNlKCk7cmV0dXJue21lc3NhZ2U6YS5tZXNzYWdlfHwoZS5sMTBuP1widXBwZXJcIj09PXM/ZS5sMTBuLnN0cmluZ0Nhc2UudXBwZXI6ZS5sMTBuLnN0cmluZ0Nhc2VbXCJkZWZhdWx0XCJdOmEubWVzc2FnZSksdmFsaWQ6XCJ1cHBlclwiPT09cz9lLnZhbHVlPT09ZS52YWx1ZS50b1VwcGVyQ2FzZSgpOmUudmFsdWU9PT1lLnZhbHVlLnRvTG93ZXJDYXNlKCl9fX19ZnVuY3Rpb24gdCRjKCl7dmFyIHQ9ZnVuY3Rpb24gdChlKXt2YXIgdD1lLmxlbmd0aDtmb3IodmFyIHM9ZS5sZW5ndGgtMTtzPj0wO3MtLSl7dmFyIG49ZS5jaGFyQ29kZUF0KHMpO2lmKG4+MTI3JiZuPD0yMDQ3KXt0Kyt9ZWxzZSBpZihuPjIwNDcmJm48PTY1NTM1KXt0Kz0yfWlmKG4+PTU2MzIwJiZuPD01NzM0Myl7cy0tfX1yZXR1cm5cIlwiLmNvbmNhdCh0KX07cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKHMpe3ZhciBuPU9iamVjdC5hc3NpZ24oe30se21lc3NhZ2U6XCJcIix0cmltOmZhbHNlLHV0ZjhCeXRlczpmYWxzZX0scy5vcHRpb25zKTt2YXIgYT1uLnRyaW09PT10cnVlfHxcIlwiLmNvbmNhdChuLnRyaW0pPT09XCJ0cnVlXCI/cy52YWx1ZS50cmltKCk6cy52YWx1ZTtpZihhPT09XCJcIil7cmV0dXJue3ZhbGlkOnRydWV9fXZhciByJDE9bi5taW4/XCJcIi5jb25jYXQobi5taW4pOlwiXCI7dmFyIGw9bi5tYXg/XCJcIi5jb25jYXQobi5tYXgpOlwiXCI7dmFyIGk9bi51dGY4Qnl0ZXM/dChhKTphLmxlbmd0aDt2YXIgZz10cnVlO3ZhciBtPXMubDEwbj9uLm1lc3NhZ2V8fHMubDEwbi5zdHJpbmdMZW5ndGhbXCJkZWZhdWx0XCJdOm4ubWVzc2FnZTtpZihyJDEmJmk8cGFyc2VJbnQociQxLDEwKXx8bCYmaT5wYXJzZUludChsLDEwKSl7Zz1mYWxzZX1zd2l0Y2godHJ1ZSl7Y2FzZSEhciQxJiYhIWw6bT1yKHMubDEwbj9uLm1lc3NhZ2V8fHMubDEwbi5zdHJpbmdMZW5ndGguYmV0d2VlbjpuLm1lc3NhZ2UsW3IkMSxsXSk7YnJlYWs7Y2FzZSEhciQxOm09cihzLmwxMG4/bi5tZXNzYWdlfHxzLmwxMG4uc3RyaW5nTGVuZ3RoLm1vcmU6bi5tZXNzYWdlLFwiXCIuY29uY2F0KHBhcnNlSW50KHIkMSwxMCkpKTticmVhaztjYXNlISFsOm09cihzLmwxMG4/bi5tZXNzYWdlfHxzLmwxMG4uc3RyaW5nTGVuZ3RoLmxlc3M6bi5tZXNzYWdlLFwiXCIuY29uY2F0KHBhcnNlSW50KGwsMTApKSk7YnJlYWt9cmV0dXJue21lc3NhZ2U6bSx2YWxpZDpnfX19fWZ1bmN0aW9uIHQkZCgpe3ZhciB0PXthbGxvd0VtcHR5UHJvdG9jb2w6ZmFsc2UsYWxsb3dMb2NhbDpmYWxzZSxwcm90b2NvbDpcImh0dHAsIGh0dHBzLCBmdHBcIn07cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKG8pe2lmKG8udmFsdWU9PT1cIlwiKXtyZXR1cm57dmFsaWQ6dHJ1ZX19dmFyIGE9T2JqZWN0LmFzc2lnbih7fSx0LG8ub3B0aW9ucyk7dmFyIGw9YS5hbGxvd0xvY2FsPT09dHJ1ZXx8XCJcIi5jb25jYXQoYS5hbGxvd0xvY2FsKT09PVwidHJ1ZVwiO3ZhciBmPWEuYWxsb3dFbXB0eVByb3RvY29sPT09dHJ1ZXx8XCJcIi5jb25jYXQoYS5hbGxvd0VtcHR5UHJvdG9jb2wpPT09XCJ0cnVlXCI7dmFyIHU9YS5wcm90b2NvbC5zcGxpdChcIixcIikuam9pbihcInxcIikucmVwbGFjZSgvXFxzL2csXCJcIik7dmFyIGU9bmV3IFJlZ0V4cChcIl5cIitcIig/Oig/OlwiK3UrXCIpOi8vKVwiKyhmP1wiP1wiOlwiXCIpK1wiKD86XFxcXFMrKD86OlxcXFxTKik/QCk/XCIrXCIoPzpcIisobD9cIlwiOlwiKD8hKD86MTB8MTI3KSg/OlxcXFwuXFxcXGR7MSwzfSl7M30pXCIrXCIoPyEoPzoxNjlcXFxcLjI1NHwxOTJcXFxcLjE2OCkoPzpcXFxcLlxcXFxkezEsM30pezJ9KVwiK1wiKD8hMTcyXFxcXC4oPzoxWzYtOV18MlxcXFxkfDNbMC0xXSkoPzpcXFxcLlxcXFxkezEsM30pezJ9KVwiKStcIig/OlsxLTldXFxcXGQ/fDFcXFxcZFxcXFxkfDJbMDFdXFxcXGR8MjJbMC0zXSlcIitcIig/OlxcXFwuKD86MT9cXFxcZHsxLDJ9fDJbMC00XVxcXFxkfDI1WzAtNV0pKXsyfVwiK1wiKD86XFxcXC4oPzpbMS05XVxcXFxkP3wxXFxcXGRcXFxcZHwyWzAtNF1cXFxcZHwyNVswLTRdKSlcIitcInxcIitcIig/Oig/OlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XS0/KSpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0rKVwiK1wiKD86XFxcXC4oPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0tPykqW2EtelxcXFx1MDBhMS1cXFxcdWZmZmYwLTldKSpcIitcIig/OlxcXFwuKD86W2EtelxcXFx1MDBhMS1cXFxcdWZmZmZdezIsfSkpXCIrKGw/XCI/XCI6XCJcIikrXCIpXCIrXCIoPzo6XFxcXGR7Miw1fSk/XCIrXCIoPzovW15cXFxcc10qKT8kXCIsXCJpXCIpO3JldHVybnt2YWxpZDplLnRlc3Qoby52YWx1ZSl9fX19ZnVuY3Rpb24gYSQ0KCl7cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKGEpe3JldHVybnt2YWxpZDphLnZhbHVlPT09XCJcInx8L14oPzpbQS1aYS16MC05Ky9dezR9KSooPzpbQS1aYS16MC05Ky9dezJ9PT18W0EtWmEtejAtOSsvXXszfT18W0EtWmEtejAtOSsvXXs0fSkkLy50ZXN0KGEudmFsdWUpfX19fWZ1bmN0aW9uIGEkNSgpe3JldHVybnt2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZShhKXtyZXR1cm57dmFsaWQ6YS52YWx1ZT09PVwiXCJ8fC9eW2EtekEtWl17Nn1bYS16QS1aMC05XXsyfShbYS16QS1aMC05XXszfSk/JC8udGVzdChhLnZhbHVlKX19fX1mdW5jdGlvbiBlJDYoKXt2YXIgZT1bXCJoZXhcIixcInJnYlwiLFwicmdiYVwiLFwiaHNsXCIsXCJoc2xhXCIsXCJrZXl3b3JkXCJdO3ZhciBhPVtcImFsaWNlYmx1ZVwiLFwiYW50aXF1ZXdoaXRlXCIsXCJhcXVhXCIsXCJhcXVhbWFyaW5lXCIsXCJhenVyZVwiLFwiYmVpZ2VcIixcImJpc3F1ZVwiLFwiYmxhY2tcIixcImJsYW5jaGVkYWxtb25kXCIsXCJibHVlXCIsXCJibHVldmlvbGV0XCIsXCJicm93blwiLFwiYnVybHl3b29kXCIsXCJjYWRldGJsdWVcIixcImNoYXJ0cmV1c2VcIixcImNob2NvbGF0ZVwiLFwiY29yYWxcIixcImNvcm5mbG93ZXJibHVlXCIsXCJjb3Juc2lsa1wiLFwiY3JpbXNvblwiLFwiY3lhblwiLFwiZGFya2JsdWVcIixcImRhcmtjeWFuXCIsXCJkYXJrZ29sZGVucm9kXCIsXCJkYXJrZ3JheVwiLFwiZGFya2dyZWVuXCIsXCJkYXJrZ3JleVwiLFwiZGFya2toYWtpXCIsXCJkYXJrbWFnZW50YVwiLFwiZGFya29saXZlZ3JlZW5cIixcImRhcmtvcmFuZ2VcIixcImRhcmtvcmNoaWRcIixcImRhcmtyZWRcIixcImRhcmtzYWxtb25cIixcImRhcmtzZWFncmVlblwiLFwiZGFya3NsYXRlYmx1ZVwiLFwiZGFya3NsYXRlZ3JheVwiLFwiZGFya3NsYXRlZ3JleVwiLFwiZGFya3R1cnF1b2lzZVwiLFwiZGFya3Zpb2xldFwiLFwiZGVlcHBpbmtcIixcImRlZXBza3libHVlXCIsXCJkaW1ncmF5XCIsXCJkaW1ncmV5XCIsXCJkb2RnZXJibHVlXCIsXCJmaXJlYnJpY2tcIixcImZsb3JhbHdoaXRlXCIsXCJmb3Jlc3RncmVlblwiLFwiZnVjaHNpYVwiLFwiZ2FpbnNib3JvXCIsXCJnaG9zdHdoaXRlXCIsXCJnb2xkXCIsXCJnb2xkZW5yb2RcIixcImdyYXlcIixcImdyZWVuXCIsXCJncmVlbnllbGxvd1wiLFwiZ3JleVwiLFwiaG9uZXlkZXdcIixcImhvdHBpbmtcIixcImluZGlhbnJlZFwiLFwiaW5kaWdvXCIsXCJpdm9yeVwiLFwia2hha2lcIixcImxhdmVuZGVyXCIsXCJsYXZlbmRlcmJsdXNoXCIsXCJsYXduZ3JlZW5cIixcImxlbW9uY2hpZmZvblwiLFwibGlnaHRibHVlXCIsXCJsaWdodGNvcmFsXCIsXCJsaWdodGN5YW5cIixcImxpZ2h0Z29sZGVucm9keWVsbG93XCIsXCJsaWdodGdyYXlcIixcImxpZ2h0Z3JlZW5cIixcImxpZ2h0Z3JleVwiLFwibGlnaHRwaW5rXCIsXCJsaWdodHNhbG1vblwiLFwibGlnaHRzZWFncmVlblwiLFwibGlnaHRza3libHVlXCIsXCJsaWdodHNsYXRlZ3JheVwiLFwibGlnaHRzbGF0ZWdyZXlcIixcImxpZ2h0c3RlZWxibHVlXCIsXCJsaWdodHllbGxvd1wiLFwibGltZVwiLFwibGltZWdyZWVuXCIsXCJsaW5lblwiLFwibWFnZW50YVwiLFwibWFyb29uXCIsXCJtZWRpdW1hcXVhbWFyaW5lXCIsXCJtZWRpdW1ibHVlXCIsXCJtZWRpdW1vcmNoaWRcIixcIm1lZGl1bXB1cnBsZVwiLFwibWVkaXVtc2VhZ3JlZW5cIixcIm1lZGl1bXNsYXRlYmx1ZVwiLFwibWVkaXVtc3ByaW5nZ3JlZW5cIixcIm1lZGl1bXR1cnF1b2lzZVwiLFwibWVkaXVtdmlvbGV0cmVkXCIsXCJtaWRuaWdodGJsdWVcIixcIm1pbnRjcmVhbVwiLFwibWlzdHlyb3NlXCIsXCJtb2NjYXNpblwiLFwibmF2YWpvd2hpdGVcIixcIm5hdnlcIixcIm9sZGxhY2VcIixcIm9saXZlXCIsXCJvbGl2ZWRyYWJcIixcIm9yYW5nZVwiLFwib3JhbmdlcmVkXCIsXCJvcmNoaWRcIixcInBhbGVnb2xkZW5yb2RcIixcInBhbGVncmVlblwiLFwicGFsZXR1cnF1b2lzZVwiLFwicGFsZXZpb2xldHJlZFwiLFwicGFwYXlhd2hpcFwiLFwicGVhY2hwdWZmXCIsXCJwZXJ1XCIsXCJwaW5rXCIsXCJwbHVtXCIsXCJwb3dkZXJibHVlXCIsXCJwdXJwbGVcIixcInJlZFwiLFwicm9zeWJyb3duXCIsXCJyb3lhbGJsdWVcIixcInNhZGRsZWJyb3duXCIsXCJzYWxtb25cIixcInNhbmR5YnJvd25cIixcInNlYWdyZWVuXCIsXCJzZWFzaGVsbFwiLFwic2llbm5hXCIsXCJzaWx2ZXJcIixcInNreWJsdWVcIixcInNsYXRlYmx1ZVwiLFwic2xhdGVncmF5XCIsXCJzbGF0ZWdyZXlcIixcInNub3dcIixcInNwcmluZ2dyZWVuXCIsXCJzdGVlbGJsdWVcIixcInRhblwiLFwidGVhbFwiLFwidGhpc3RsZVwiLFwidG9tYXRvXCIsXCJ0cmFuc3BhcmVudFwiLFwidHVycXVvaXNlXCIsXCJ2aW9sZXRcIixcIndoZWF0XCIsXCJ3aGl0ZVwiLFwid2hpdGVzbW9rZVwiLFwieWVsbG93XCIsXCJ5ZWxsb3dncmVlblwiXTt2YXIgcj1mdW5jdGlvbiByKGUpe3JldHVybi8oXiNbMC05QS1GXXs2fSQpfCheI1swLTlBLUZdezN9JCkvaS50ZXN0KGUpfTt2YXIgbD1mdW5jdGlvbiBsKGUpe3JldHVybi9eaHNsXFwoKFxccyooLT9cXGQrKVxccyosKShcXHMqKFxcYigwP1xcZHsxLDJ9fDEwMClcXGIlKVxccyosKShcXHMqKFxcYigwP1xcZHsxLDJ9fDEwMClcXGIlKVxccyopXFwpJC8udGVzdChlKX07dmFyIHM9ZnVuY3Rpb24gcyhlKXtyZXR1cm4vXmhzbGFcXCgoXFxzKigtP1xcZCspXFxzKiwpKFxccyooXFxiKDA/XFxkezEsMn18MTAwKVxcYiUpXFxzKiwpezJ9KFxccyooMD8oXFwuXFxkKyk/fDEoXFwuMCspPylcXHMqKVxcKSQvLnRlc3QoZSl9O3ZhciB0PWZ1bmN0aW9uIHQoZSl7cmV0dXJuIGEuaW5kZXhPZihlKT49MH07dmFyIGk9ZnVuY3Rpb24gaShlKXtyZXR1cm4vXnJnYlxcKChcXHMqKFxcYihbMDFdP1xcZHsxLDJ9fDJbMC00XVxcZHwyNVswLTVdKVxcYilcXHMqLCl7Mn0oXFxzKihcXGIoWzAxXT9cXGR7MSwyfXwyWzAtNF1cXGR8MjVbMC01XSlcXGIpXFxzKilcXCkkLy50ZXN0KGUpfHwvXnJnYlxcKChcXHMqKFxcYigwP1xcZHsxLDJ9fDEwMClcXGIlKVxccyosKXsyfShcXHMqKFxcYigwP1xcZHsxLDJ9fDEwMClcXGIlKVxccyopXFwpJC8udGVzdChlKX07dmFyIG89ZnVuY3Rpb24gbyhlKXtyZXR1cm4vXnJnYmFcXCgoXFxzKihcXGIoWzAxXT9cXGR7MSwyfXwyWzAtNF1cXGR8MjVbMC01XSlcXGIpXFxzKiwpezN9KFxccyooMD8oXFwuXFxkKyk/fDEoXFwuMCspPylcXHMqKVxcKSQvLnRlc3QoZSl8fC9ecmdiYVxcKChcXHMqKFxcYigwP1xcZHsxLDJ9fDEwMClcXGIlKVxccyosKXszfShcXHMqKDA/KFxcLlxcZCspP3wxKFxcLjArKT8pXFxzKilcXCkkLy50ZXN0KGUpfTtyZXR1cm57dmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoYSl7aWYoYS52YWx1ZT09PVwiXCIpe3JldHVybnt2YWxpZDp0cnVlfX12YXIgbj10eXBlb2YgYS5vcHRpb25zLnR5cGU9PT1cInN0cmluZ1wiP2Eub3B0aW9ucy50eXBlLnRvU3RyaW5nKCkucmVwbGFjZSgvcy9nLFwiXCIpLnNwbGl0KFwiLFwiKTphLm9wdGlvbnMudHlwZXx8ZTt2YXIgX2l0ZXJhdG9yPV9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyKG4pLF9zdGVwO3RyeXtmb3IoX2l0ZXJhdG9yLnMoKTshKF9zdGVwPV9pdGVyYXRvci5uKCkpLmRvbmU7KXt2YXIgZD1fc3RlcC52YWx1ZTt2YXIgX249ZC50b0xvd2VyQ2FzZSgpO2lmKGUuaW5kZXhPZihfbik9PT0tMSl7Y29udGludWV9dmFyIGc9dHJ1ZTtzd2l0Y2goX24pe2Nhc2VcImhleFwiOmc9cihhLnZhbHVlKTticmVhaztjYXNlXCJoc2xcIjpnPWwoYS52YWx1ZSk7YnJlYWs7Y2FzZVwiaHNsYVwiOmc9cyhhLnZhbHVlKTticmVhaztjYXNlXCJrZXl3b3JkXCI6Zz10KGEudmFsdWUpO2JyZWFrO2Nhc2VcInJnYlwiOmc9aShhLnZhbHVlKTticmVhaztjYXNlXCJyZ2JhXCI6Zz1vKGEudmFsdWUpO2JyZWFrfWlmKGcpe3JldHVybnt2YWxpZDp0cnVlfX19fWNhdGNoKGVycil7X2l0ZXJhdG9yLmUoZXJyKX1maW5hbGx5e19pdGVyYXRvci5mKCl9cmV0dXJue3ZhbGlkOmZhbHNlfX19fWZ1bmN0aW9uIHQkZSgpe3JldHVybnt2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZSh0KXtpZih0LnZhbHVlPT09XCJcIil7cmV0dXJue3ZhbGlkOnRydWV9fXZhciBlPXQudmFsdWUudG9VcHBlckNhc2UoKTtpZighL15bMDEyMzQ1Njc4OUFCQ0RFRkdISktMTU5QUVJTVFVWV1hZWipAI117OX0kLy50ZXN0KGUpKXtyZXR1cm57dmFsaWQ6ZmFsc2V9fXZhciByPWUuc3BsaXQoXCJcIik7dmFyIGE9ci5wb3AoKTt2YXIgbj1yLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9dC5jaGFyQ29kZUF0KDApO3N3aXRjaCh0cnVlKXtjYXNlIHQ9PT1cIipcIjpyZXR1cm4gMzY7Y2FzZSB0PT09XCJAXCI6cmV0dXJuIDM3O2Nhc2UgdD09PVwiI1wiOnJldHVybiAzODtjYXNlIGU+PVwiQVwiLmNoYXJDb2RlQXQoMCkmJmU8PVwiWlwiLmNoYXJDb2RlQXQoMCk6cmV0dXJuIGUtXCJBXCIuY2hhckNvZGVBdCgwKSsxMDtkZWZhdWx0OnJldHVybiBwYXJzZUludCh0LDEwKX19KSk7dmFyIGM9bi5tYXAoKGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZSUyPT09MD90OjIqdDtyZXR1cm4gTWF0aC5mbG9vcihyLzEwKStyJTEwfSkpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSksMCk7dmFyIG89KDEwLWMlMTApJTEwO3JldHVybnt2YWxpZDphPT09XCJcIi5jb25jYXQobyl9fX19ZnVuY3Rpb24gZSQ3KCl7cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKGUpe2lmKGUudmFsdWU9PT1cIlwiKXtyZXR1cm57dmFsaWQ6dHJ1ZX19aWYoIS9eKFxcZHs4fXxcXGR7MTJ9fFxcZHsxM318XFxkezE0fSkkLy50ZXN0KGUudmFsdWUpKXtyZXR1cm57dmFsaWQ6ZmFsc2V9fXZhciB0PWUudmFsdWUubGVuZ3RoO3ZhciBhPTA7dmFyIGw9dD09PTg/WzMsMV06WzEsM107Zm9yKHZhciByPTA7cjx0LTE7cisrKXthKz1wYXJzZUludChlLnZhbHVlLmNoYXJBdChyKSwxMCkqbFtyJTJdfWE9KDEwLWElMTApJTEwO3JldHVybnt2YWxpZDpcIlwiLmNvbmNhdChhKT09PWUudmFsdWUuY2hhckF0KHQtMSl9fX19ZnVuY3Rpb24gZSQ4KCl7dmFyIGU9e0FORE9WRVI6W1wiMTBcIixcIjEyXCJdLEFUTEFOVEE6W1wiNjBcIixcIjY3XCJdLEFVU1RJTjpbXCI1MFwiLFwiNTNcIl0sQlJPT0tIQVZFTjpbXCIwMVwiLFwiMDJcIixcIjAzXCIsXCIwNFwiLFwiMDVcIixcIjA2XCIsXCIxMVwiLFwiMTNcIixcIjE0XCIsXCIxNlwiLFwiMjFcIixcIjIyXCIsXCIyM1wiLFwiMjVcIixcIjM0XCIsXCI1MVwiLFwiNTJcIixcIjU0XCIsXCI1NVwiLFwiNTZcIixcIjU3XCIsXCI1OFwiLFwiNTlcIixcIjY1XCJdLENJTkNJTk5BVEk6W1wiMzBcIixcIjMyXCIsXCIzNVwiLFwiMzZcIixcIjM3XCIsXCIzOFwiLFwiNjFcIl0sRlJFU05POltcIjE1XCIsXCIyNFwiXSxJTlRFUk5FVDpbXCIyMFwiLFwiMjZcIixcIjI3XCIsXCI0NVwiLFwiNDZcIixcIjQ3XCJdLEtBTlNBU19DSVRZOltcIjQwXCIsXCI0NFwiXSxNRU1QSElTOltcIjk0XCIsXCI5NVwiXSxPR0RFTjpbXCI4MFwiLFwiOTBcIl0sUEhJTEFERUxQSElBOltcIjMzXCIsXCIzOVwiLFwiNDFcIixcIjQyXCIsXCI0M1wiLFwiNDhcIixcIjYyXCIsXCI2M1wiLFwiNjRcIixcIjY2XCIsXCI2OFwiLFwiNzFcIixcIjcyXCIsXCI3M1wiLFwiNzRcIixcIjc1XCIsXCI3NlwiLFwiNzdcIixcIjgxXCIsXCI4MlwiLFwiODNcIixcIjg0XCIsXCI4NVwiLFwiODZcIixcIjg3XCIsXCI4OFwiLFwiOTFcIixcIjkyXCIsXCI5M1wiLFwiOThcIixcIjk5XCJdLFNNQUxMX0JVU0lORVNTX0FETUlOSVNUUkFUSU9OOltcIjMxXCJdfTtyZXR1cm57dmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUodCl7aWYodC52YWx1ZT09PVwiXCIpe3JldHVybnttZXRhOm51bGwsdmFsaWQ6dHJ1ZX19aWYoIS9eWzAtOV17Mn0tP1swLTldezd9JC8udGVzdCh0LnZhbHVlKSl7cmV0dXJue21ldGE6bnVsbCx2YWxpZDpmYWxzZX19dmFyIGE9XCJcIi5jb25jYXQodC52YWx1ZS5zdWJzdHIoMCwyKSk7Zm9yKHZhciBfdCBpbiBlKXtpZihlW190XS5pbmRleE9mKGEpIT09LTEpe3JldHVybnttZXRhOntjYW1wdXM6X3R9LHZhbGlkOnRydWV9fX1yZXR1cm57bWV0YTpudWxsLHZhbGlkOmZhbHNlfX19fWZ1bmN0aW9uIHIkMigpe3JldHVybnt2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZShyKXtpZihyLnZhbHVlPT09XCJcIil7cmV0dXJue3ZhbGlkOnRydWV9fXZhciB0PXIudmFsdWUudG9VcHBlckNhc2UoKTtpZighL15bR1JJRDpdKihbMC05QS1aXXsyfSlbLVxcc10qKFswLTlBLVpdezV9KVstXFxzXSooWzAtOUEtWl17MTB9KVstXFxzXSooWzAtOUEtWl17MX0pJC9nLnRlc3QodCkpe3JldHVybnt2YWxpZDpmYWxzZX19dD10LnJlcGxhY2UoL1xccy9nLFwiXCIpLnJlcGxhY2UoLy0vZyxcIlwiKTtpZihcIkdSSUQ6XCI9PT10LnN1YnN0cigwLDUpKXt0PXQuc3Vic3RyKDUpfXJldHVybnt2YWxpZDp0JDIodCl9fX19ZnVuY3Rpb24gZSQ5KCl7cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKGUpe3JldHVybnt2YWxpZDplLnZhbHVlPT09XCJcInx8L15bMC05YS1mQS1GXSskLy50ZXN0KGUudmFsdWUpfX19fWZ1bmN0aW9uIFooKXt2YXIgWj17QUQ6XCJBRFswLTldezJ9WzAtOV17NH1bMC05XXs0fVtBLVowLTldezEyfVwiLEFFOlwiQUVbMC05XXsyfVswLTldezN9WzAtOV17MTZ9XCIsQUw6XCJBTFswLTldezJ9WzAtOV17OH1bQS1aMC05XXsxNn1cIixBTzpcIkFPWzAtOV17Mn1bMC05XXsyMX1cIixBVDpcIkFUWzAtOV17Mn1bMC05XXs1fVswLTldezExfVwiLEFaOlwiQVpbMC05XXsyfVtBLVpdezR9W0EtWjAtOV17MjB9XCIsQkE6XCJCQVswLTldezJ9WzAtOV17M31bMC05XXszfVswLTldezh9WzAtOV17Mn1cIixCRTpcIkJFWzAtOV17Mn1bMC05XXszfVswLTldezd9WzAtOV17Mn1cIixCRjpcIkJGWzAtOV17Mn1bMC05XXsyM31cIixCRzpcIkJHWzAtOV17Mn1bQS1aXXs0fVswLTldezR9WzAtOV17Mn1bQS1aMC05XXs4fVwiLEJIOlwiQkhbMC05XXsyfVtBLVpdezR9W0EtWjAtOV17MTR9XCIsQkk6XCJCSVswLTldezJ9WzAtOV17MTJ9XCIsQko6XCJCSlswLTldezJ9W0EtWl17MX1bMC05XXsyM31cIixCUjpcIkJSWzAtOV17Mn1bMC05XXs4fVswLTldezV9WzAtOV17MTB9W0EtWl1bQS1aMC05XVwiLENIOlwiQ0hbMC05XXsyfVswLTldezV9W0EtWjAtOV17MTJ9XCIsQ0k6XCJDSVswLTldezJ9W0EtWl17MX1bMC05XXsyM31cIixDTTpcIkNNWzAtOV17Mn1bMC05XXsyM31cIixDUjpcIkNSWzAtOV17Mn1bMC05XVswLTldezN9WzAtOV17MTR9XCIsQ1Y6XCJDVlswLTldezJ9WzAtOV17MjF9XCIsQ1k6XCJDWVswLTldezJ9WzAtOV17M31bMC05XXs1fVtBLVowLTldezE2fVwiLENaOlwiQ1pbMC05XXsyfVswLTldezIwfVwiLERFOlwiREVbMC05XXsyfVswLTldezh9WzAtOV17MTB9XCIsREs6XCJES1swLTldezJ9WzAtOV17MTR9XCIsRE86XCJET1swLTldezJ9W0EtWjAtOV17NH1bMC05XXsyMH1cIixEWjpcIkRaWzAtOV17Mn1bMC05XXsyMH1cIixFRTpcIkVFWzAtOV17Mn1bMC05XXsyfVswLTldezJ9WzAtOV17MTF9WzAtOV17MX1cIixFUzpcIkVTWzAtOV17Mn1bMC05XXs0fVswLTldezR9WzAtOV17MX1bMC05XXsxfVswLTldezEwfVwiLEZJOlwiRklbMC05XXsyfVswLTldezZ9WzAtOV17N31bMC05XXsxfVwiLEZPOlwiRk9bMC05XXsyfVswLTldezR9WzAtOV17OX1bMC05XXsxfVwiLEZSOlwiRlJbMC05XXsyfVswLTldezV9WzAtOV17NX1bQS1aMC05XXsxMX1bMC05XXsyfVwiLEdCOlwiR0JbMC05XXsyfVtBLVpdezR9WzAtOV17Nn1bMC05XXs4fVwiLEdFOlwiR0VbMC05XXsyfVtBLVpdezJ9WzAtOV17MTZ9XCIsR0k6XCJHSVswLTldezJ9W0EtWl17NH1bQS1aMC05XXsxNX1cIixHTDpcIkdMWzAtOV17Mn1bMC05XXs0fVswLTldezl9WzAtOV17MX1cIixHUjpcIkdSWzAtOV17Mn1bMC05XXszfVswLTldezR9W0EtWjAtOV17MTZ9XCIsR1Q6XCJHVFswLTldezJ9W0EtWjAtOV17NH1bQS1aMC05XXsyMH1cIixIUjpcIkhSWzAtOV17Mn1bMC05XXs3fVswLTldezEwfVwiLEhVOlwiSFVbMC05XXsyfVswLTldezN9WzAtOV17NH1bMC05XXsxfVswLTldezE1fVswLTldezF9XCIsSUU6XCJJRVswLTldezJ9W0EtWl17NH1bMC05XXs2fVswLTldezh9XCIsSUw6XCJJTFswLTldezJ9WzAtOV17M31bMC05XXszfVswLTldezEzfVwiLElSOlwiSVJbMC05XXsyfVswLTldezIyfVwiLElTOlwiSVNbMC05XXsyfVswLTldezR9WzAtOV17Mn1bMC05XXs2fVswLTldezEwfVwiLElUOlwiSVRbMC05XXsyfVtBLVpdezF9WzAtOV17NX1bMC05XXs1fVtBLVowLTldezEyfVwiLEpPOlwiSk9bMC05XXsyfVtBLVpdezR9WzAtOV17NH1bMF17OH1bQS1aMC05XXsxMH1cIixLVzpcIktXWzAtOV17Mn1bQS1aXXs0fVswLTldezIyfVwiLEtaOlwiS1pbMC05XXsyfVswLTldezN9W0EtWjAtOV17MTN9XCIsTEI6XCJMQlswLTldezJ9WzAtOV17NH1bQS1aMC05XXsyMH1cIixMSTpcIkxJWzAtOV17Mn1bMC05XXs1fVtBLVowLTldezEyfVwiLExUOlwiTFRbMC05XXsyfVswLTldezV9WzAtOV17MTF9XCIsTFU6XCJMVVswLTldezJ9WzAtOV17M31bQS1aMC05XXsxM31cIixMVjpcIkxWWzAtOV17Mn1bQS1aXXs0fVtBLVowLTldezEzfVwiLE1DOlwiTUNbMC05XXsyfVswLTldezV9WzAtOV17NX1bQS1aMC05XXsxMX1bMC05XXsyfVwiLE1EOlwiTURbMC05XXsyfVtBLVowLTldezIwfVwiLE1FOlwiTUVbMC05XXsyfVswLTldezN9WzAtOV17MTN9WzAtOV17Mn1cIixNRzpcIk1HWzAtOV17Mn1bMC05XXsyM31cIixNSzpcIk1LWzAtOV17Mn1bMC05XXszfVtBLVowLTldezEwfVswLTldezJ9XCIsTUw6XCJNTFswLTldezJ9W0EtWl17MX1bMC05XXsyM31cIixNUjpcIk1SMTNbMC05XXs1fVswLTldezV9WzAtOV17MTF9WzAtOV17Mn1cIixNVDpcIk1UWzAtOV17Mn1bQS1aXXs0fVswLTldezV9W0EtWjAtOV17MTh9XCIsTVU6XCJNVVswLTldezJ9W0EtWl17NH1bMC05XXsyfVswLTldezJ9WzAtOV17MTJ9WzAtOV17M31bQS1aXXszfVwiLE1aOlwiTVpbMC05XXsyfVswLTldezIxfVwiLE5MOlwiTkxbMC05XXsyfVtBLVpdezR9WzAtOV17MTB9XCIsTk86XCJOT1swLTldezJ9WzAtOV17NH1bMC05XXs2fVswLTldezF9XCIsUEs6XCJQS1swLTldezJ9W0EtWl17NH1bQS1aMC05XXsxNn1cIixQTDpcIlBMWzAtOV17Mn1bMC05XXs4fVswLTldezE2fVwiLFBTOlwiUFNbMC05XXsyfVtBLVpdezR9W0EtWjAtOV17MjF9XCIsUFQ6XCJQVFswLTldezJ9WzAtOV17NH1bMC05XXs0fVswLTldezExfVswLTldezJ9XCIsUUE6XCJRQVswLTldezJ9W0EtWl17NH1bQS1aMC05XXsyMX1cIixSTzpcIlJPWzAtOV17Mn1bQS1aXXs0fVtBLVowLTldezE2fVwiLFJTOlwiUlNbMC05XXsyfVswLTldezN9WzAtOV17MTN9WzAtOV17Mn1cIixTQTpcIlNBWzAtOV17Mn1bMC05XXsyfVtBLVowLTldezE4fVwiLFNFOlwiU0VbMC05XXsyfVswLTldezN9WzAtOV17MTZ9WzAtOV17MX1cIixTSTpcIlNJWzAtOV17Mn1bMC05XXs1fVswLTldezh9WzAtOV17Mn1cIixTSzpcIlNLWzAtOV17Mn1bMC05XXs0fVswLTldezZ9WzAtOV17MTB9XCIsU006XCJTTVswLTldezJ9W0EtWl17MX1bMC05XXs1fVswLTldezV9W0EtWjAtOV17MTJ9XCIsU046XCJTTlswLTldezJ9W0EtWl17MX1bMC05XXsyM31cIixUTDpcIlRMMzhbMC05XXszfVswLTldezE0fVswLTldezJ9XCIsVE46XCJUTjU5WzAtOV17Mn1bMC05XXszfVswLTldezEzfVswLTldezJ9XCIsVFI6XCJUUlswLTldezJ9WzAtOV17NX1bQS1aMC05XXsxfVtBLVowLTldezE2fVwiLFZHOlwiVkdbMC05XXsyfVtBLVpdezR9WzAtOV17MTZ9XCIsWEs6XCJYS1swLTldezJ9WzAtOV17NH1bMC05XXsxMH1bMC05XXsyfVwifTt2YXIgZT1bXCJBVFwiLFwiQkVcIixcIkJHXCIsXCJDSFwiLFwiQ1lcIixcIkNaXCIsXCJERVwiLFwiREtcIixcIkVFXCIsXCJFU1wiLFwiRklcIixcIkZSXCIsXCJHQlwiLFwiR0lcIixcIkdSXCIsXCJIUlwiLFwiSFVcIixcIklFXCIsXCJJU1wiLFwiSVRcIixcIkxJXCIsXCJMVFwiLFwiTFVcIixcIkxWXCIsXCJNQ1wiLFwiTVRcIixcIk5MXCIsXCJOT1wiLFwiUExcIixcIlBUXCIsXCJST1wiLFwiU0VcIixcIlNJXCIsXCJTS1wiLFwiU01cIl07cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKHMpe2lmKHMudmFsdWU9PT1cIlwiKXtyZXR1cm57dmFsaWQ6dHJ1ZX19dmFyIHQ9T2JqZWN0LmFzc2lnbih7fSx7bWVzc2FnZTpcIlwifSxzLm9wdGlvbnMpO3ZhciBhPXMudmFsdWUucmVwbGFjZSgvW15hLXpBLVowLTldL2csXCJcIikudG9VcHBlckNhc2UoKTt2YXIgciQxPXQuY291bnRyeXx8YS5zdWJzdHIoMCwyKTtpZighWltyJDFdKXtyZXR1cm57bWVzc2FnZTp0Lm1lc3NhZ2UsdmFsaWQ6ZmFsc2V9fWlmKHQuc2VwYSE9PXVuZGVmaW5lZCl7dmFyIF9BPWUuaW5kZXhPZihyJDEpIT09LTE7aWYoKHQuc2VwYT09PVwidHJ1ZVwifHx0LnNlcGE9PT10cnVlKSYmIV9BfHwodC5zZXBhPT09XCJmYWxzZVwifHx0LnNlcGE9PT1mYWxzZSkmJl9BKXtyZXR1cm57bWVzc2FnZTp0Lm1lc3NhZ2UsdmFsaWQ6ZmFsc2V9fX12YXIgbj1yKHMubDEwbj90Lm1lc3NhZ2V8fHMubDEwbi5pYmFuLmNvdW50cnk6dC5tZXNzYWdlLHMubDEwbj9zLmwxMG4uaWJhbi5jb3VudHJpZXNbciQxXTpyJDEpO2lmKCFuZXcgUmVnRXhwKFwiXlwiLmNvbmNhdChaW3IkMV0sXCIkXCIpKS50ZXN0KHMudmFsdWUpKXtyZXR1cm57bWVzc2FnZTpuLHZhbGlkOmZhbHNlfX1hPVwiXCIuY29uY2F0KGEuc3Vic3RyKDQpKS5jb25jYXQoYS5zdWJzdHIoMCw0KSk7YT1hLnNwbGl0KFwiXCIpLm1hcCgoZnVuY3Rpb24oQSl7dmFyIFo9QS5jaGFyQ29kZUF0KDApO3JldHVybiBaPj1cIkFcIi5jaGFyQ29kZUF0KDApJiZaPD1cIlpcIi5jaGFyQ29kZUF0KDApP1otXCJBXCIuY2hhckNvZGVBdCgwKSsxMDpBfSkpLmpvaW4oXCJcIik7dmFyIEk9cGFyc2VJbnQoYS5zdWJzdHIoMCwxKSwxMCk7dmFyIEw9YS5sZW5ndGg7Zm9yKHZhciBfQTI9MTtfQTI8TDsrK19BMil7ST0oSSoxMCtwYXJzZUludChhLnN1YnN0cihfQTIsMSksMTApKSU5N31yZXR1cm57bWVzc2FnZTpuLHZhbGlkOkk9PT0xfX19fWZ1bmN0aW9uIHQkZih0KXt2YXIgZT10LnJlcGxhY2UoL1xcLi9nLFwiXCIpO3JldHVybnttZXRhOnt9LHZhbGlkOi9eXFxkezcsOH0kLy50ZXN0KGUpfX1mdW5jdGlvbiB0JGcodCxyKXtpZighL15cXGR7MTN9JC8udGVzdCh0KSl7cmV0dXJuIGZhbHNlfXZhciBlPXBhcnNlSW50KHQuc3Vic3RyKDAsMiksMTApO3ZhciBzPXBhcnNlSW50KHQuc3Vic3RyKDIsMiksMTApO3ZhciBuPXBhcnNlSW50KHQuc3Vic3RyKDcsMiksMTApO3ZhciBhPXBhcnNlSW50KHQuc3Vic3RyKDEyLDEpLDEwKTtpZihlPjMxfHxzPjEyKXtyZXR1cm4gZmFsc2V9dmFyIHU9MDtmb3IodmFyIF9yPTA7X3I8NjtfcisrKXt1Kz0oNy1fcikqKHBhcnNlSW50KHQuY2hhckF0KF9yKSwxMCkrcGFyc2VJbnQodC5jaGFyQXQoX3IrNiksMTApKX11PTExLXUlMTE7aWYodT09PTEwfHx1PT09MTEpe3U9MH1pZih1IT09YSl7cmV0dXJuIGZhbHNlfXN3aXRjaChyLnRvVXBwZXJDYXNlKCkpe2Nhc2VcIkJBXCI6cmV0dXJuIDEwPD1uJiZuPD0xOTtjYXNlXCJNS1wiOnJldHVybiA0MTw9biYmbjw9NDk7Y2FzZVwiTUVcIjpyZXR1cm4gMjA8PW4mJm48PTI5O2Nhc2VcIlJTXCI6cmV0dXJuIDcwPD1uJiZuPD05OTtjYXNlXCJTSVwiOnJldHVybiA1MDw9biYmbjw9NTk7ZGVmYXVsdDpyZXR1cm4gdHJ1ZX19ZnVuY3Rpb24gciQzKHIpe3JldHVybnttZXRhOnt9LHZhbGlkOnQkZyhyLFwiQkFcIil9fWZ1bmN0aW9uIGUkYShlKXtpZighL15cXGR7MTB9JC8udGVzdChlKSYmIS9eXFxkezZ9XFxzXFxkezN9XFxzXFxkezF9JC8udGVzdChlKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciBzPWUucmVwbGFjZSgvXFxzL2csXCJcIik7dmFyIHI9cGFyc2VJbnQocy5zdWJzdHIoMCwyKSwxMCkrMTkwMDt2YXIgYT1wYXJzZUludChzLnN1YnN0cigyLDIpLDEwKTt2YXIgbD1wYXJzZUludChzLnN1YnN0cig0LDIpLDEwKTtpZihhPjQwKXtyKz0xMDA7YS09NDB9ZWxzZSBpZihhPjIwKXtyLT0xMDA7YS09MjB9aWYoIXQkOShyLGEsbCkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgaT0wO3ZhciBuPVsyLDQsOCw1LDEwLDksNywzLDZdO2Zvcih2YXIgX3Q9MDtfdDw5O190Kyspe2krPXBhcnNlSW50KHMuY2hhckF0KF90KSwxMCkqbltfdF19aT1pJTExJTEwO3JldHVybnttZXRhOnt9LHZhbGlkOlwiXCIuY29uY2F0KGkpPT09cy5zdWJzdHIoOSwxKX19ZnVuY3Rpb24gdCRoKHQpe3ZhciBlPXQucmVwbGFjZSgvXFxEL2csXCJcIik7aWYoIS9eXFxkezExfSQvLnRlc3QoZSl8fC9eMXsxMX18MnsxMX18M3sxMX18NHsxMX18NXsxMX18NnsxMX18N3sxMX18OHsxMX18OXsxMX18MHsxMX0kLy50ZXN0KGUpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIGE9MDt2YXIgcjtmb3Iocj0wO3I8OTtyKyspe2ErPSgxMC1yKSpwYXJzZUludChlLmNoYXJBdChyKSwxMCl9YT0xMS1hJTExO2lmKGE9PT0xMHx8YT09PTExKXthPTB9aWYoXCJcIi5jb25jYXQoYSkhPT1lLmNoYXJBdCg5KSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciBmPTA7Zm9yKHI9MDtyPDEwO3IrKyl7Zis9KDExLXIpKnBhcnNlSW50KGUuY2hhckF0KHIpLDEwKX1mPTExLWYlMTE7aWYoZj09PTEwfHxmPT09MTEpe2Y9MH1yZXR1cm57bWV0YTp7fSx2YWxpZDpcIlwiLmNvbmNhdChmKT09PWUuY2hhckF0KDEwKX19ZnVuY3Rpb24gdCRpKHQpe2lmKCEvXjc1NlsuXXswLDF9WzAtOV17NH1bLl17MCwxfVswLTldezR9Wy5dezAsMX1bMC05XXsyfSQvLnRlc3QodCkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgZT10LnJlcGxhY2UoL1xcRC9nLFwiXCIpLnN1YnN0cigzKTt2YXIgcj1lLmxlbmd0aDt2YXIgYT1yPT09OD9bMywxXTpbMSwzXTt2YXIgbj0wO2Zvcih2YXIgX3Q9MDtfdDxyLTE7X3QrKyl7bis9cGFyc2VJbnQoZS5jaGFyQXQoX3QpLDEwKSphW190JTJdfW49MTAtbiUxMDtyZXR1cm57bWV0YTp7fSx2YWxpZDpcIlwiLmNvbmNhdChuKT09PWUuY2hhckF0KHItMSl9fWZ1bmN0aW9uIGUkYihlKXtpZighL15cXGR7Nyw4fVstXXswLDF9WzAtOUtdJC9pLnRlc3QoZSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgdD1lLnJlcGxhY2UoLy0vZyxcIlwiKTt3aGlsZSh0Lmxlbmd0aDw5KXt0PVwiMFwiLmNvbmNhdCh0KX12YXIgbD1bMywyLDcsNiw1LDQsMywyXTt2YXIgYT0wO2Zvcih2YXIgX2U9MDtfZTw4O19lKyspe2ErPXBhcnNlSW50KHQuY2hhckF0KF9lKSwxMCkqbFtfZV19YT0xMS1hJTExO3ZhciByPVwiXCIuY29uY2F0KGEpO2lmKGE9PT0xMSl7cj1cIjBcIn1lbHNlIGlmKGE9PT0xMCl7cj1cIktcIn1yZXR1cm57bWV0YTp7fSx2YWxpZDpyPT09dC5jaGFyQXQoOCkudG9VcHBlckNhc2UoKX19ZnVuY3Rpb24gciQ0KHIpe3ZhciBzPXIudHJpbSgpO2lmKCEvXlxcZHsxNX0kLy50ZXN0KHMpJiYhL15cXGR7MTd9W1xcZFh4XXsxfSQvLnRlc3Qocykpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgZT17MTE6ezA6WzBdLDE6W1swLDldLFsxMSwxN11dLDI6WzAsMjgsMjldfSwxMjp7MDpbMF0sMTpbWzAsMTZdXSwyOlswLDIxLDIzLDI1XX0sMTM6ezA6WzBdLDE6W1swLDVdLDcsOCwyMSxbMjMsMzNdLFs4MSw4NV1dLDI6W1swLDVdLFs3LDldLFsyMywyNV0sMjcsMjksMzAsODEsODNdLDM6W1swLDRdLFsyMSwyNF1dLDQ6W1swLDRdLDYsMjEsWzIzLDM1XSw4MV0sNTpbWzAsM10sWzIxLDM1XSw4MSw4Ml0sNjpbWzAsNF0sWzIxLDM4XSxbODEsODRdXSw3OltbMCwzXSw1LDYsWzIxLDMzXV0sODpbWzAsNF0sWzIxLDI4XV0sOTpbWzAsM10sWzIxLDMwXSxbODEsODRdXSwxMDpbWzAsM10sWzIyLDI2XSwyOCw4MSw4Ml0sMTE6W1swLDJdLFsyMSwyOF0sODEsODJdfSwxNDp7MDpbMF0sMTpbMCwxLFs1LDEwXSxbMjEsMjNdLDgxXSwyOltbMCwzXSwxMSwxMixbMjEsMjddXSwzOltbMCwzXSwxMSwyMSwyMl0sNDpbWzAsMl0sMTEsMjEsWzIzLDMxXSw4MV0sNTpbWzAsMl0sMjEsMjIsMjQsMjUsODFdLDY6W1swLDNdLFsyMSwyNF1dLDc6W1swLDJdLFsyMSwyOV0sODFdLDg6W1swLDJdLFsyMSwzMF0sODEsODJdLDk6W1swLDJdLFsyMSwzMl0sODFdLDEwOltbMCwyXSxbMjEsMzRdLDgxLDgyXSwxMTpbWzAsMl0sWzIxLDMwXSw4MSw4Ml0sMjM6W1swLDNdLDIyLDIzLFsyNSwzMF0sMzIsMzNdfSwxNTp7MDpbMF0sMTpbWzAsNV0sWzIxLDI1XV0sMjpbWzAsN10sWzIxLDIzXV0sMzpbWzAsNF1dLDQ6W1swLDRdLFsyMSwyNl0sWzI4LDMwXV0sNTpbWzAsMl0sWzIxLDI2XSw4MV0sNjpbWzAsMl0sWzIxLDI3XV0sNzpbWzAsM10sWzIxLDI3XSxbODEsODVdXSw4OltbMCwyXSxbMjEsMjZdXSw5OltbMCwyXSxbMjEsMjldLDgxXSwyMjpbWzAsMl0sWzIxLDI0XV0sMjU6W1swLDJdLFsyMiwzMV1dLDI2OltbMCwyXSxbMjQsMjddLFsyOSwzMl0sMzRdLDI4OlswLDEsWzIyLDI3XV0sMjk6WzAsWzIxLDIzXV19LDIxOnswOlswXSwxOltbMCw2XSxbMTEsMTRdLFsyMiwyNF0sODFdLDI6W1swLDRdLFsxMSwxM10sMjQsWzgxLDgzXV0sMzpbWzAsNF0sMTEsMjEsMjMsODFdLDQ6W1swLDRdLDExLFsyMSwyM11dLDU6W1swLDVdLDIxLDIyXSw2OltbMCw0XSwyNCw4MSw4Ml0sNzpbWzAsM10sMTEsMjYsMjcsODEsODJdLDg6W1swLDRdLDExLDgxLDgyXSw5OltbMCw1XSwxMSwyMSwyMl0sMTA6W1swLDVdLDExLDIxLDgxXSwxMTpbWzAsM10sMjEsMjJdLDEyOltbMCwyXSw0LDIxLDIzLDI0LDgxLDgyXSwxMzpbWzAsM10sMjEsMjIsMjQsODEsODJdLDE0OltbMCw0XSwyMSwyMiw4MV19LDIyOnswOlswXSwxOltbMCw2XSwxMiwyMixbODEsODNdXSwyOltbMCw0XSwxMSwyMSxbODEsODRdXSwzOltbMCwzXSwyMiwyMyw4MSw4Ml0sNDpbWzAsM10sMjEsMjJdLDU6W1swLDNdLDIxLDIzLDI0LDgxLDgyXSw2OltbMCwyXSw0LDUsWzIxLDIzXSwyNSw4MV0sNzpbWzAsMl0sWzIxLDI0XSw4MV0sODpbWzAsMl0sMjEsMjIsODEsODJdLDI0OltbMCw2XSwyNCwyNl19LDIzOnswOlswXSwxOltbMCwxMl0sMjEsWzIzLDI5XSxbODEsODRdXSwyOltbMCw4XSwyMSxbMjMsMjVdLDI3LFsyOSwzMV0sODFdLDM6W1swLDddLDIxLDgxLDgyXSw0OltbMCw3XSwyMSwyMl0sNTpbWzAsM10sNSw2LFsyMSwyNF1dLDY6W1swLDZdLFsyMSwyNF1dLDc6W1swLDE2XSwyMiw4MV0sODpbWzAsNV0sMTEsMjIsMjYsMjgsMzMsODEsODJdLDk6W1swLDRdLDIxXSwxMDpbWzAsNV0sMjQsMjUsODEsWzgzLDg1XV0sMTE6W1swLDJdLDIxLDIzLDI0LDgxLDgyXSwxMjpbWzAsMl0sWzIxLDI2XSxbODEsODNdXSwyNzpbWzAsNF0sWzIxLDIzXV19LDMxOnswOlswXSwxOlswLDEsWzMsMTBdLFsxMiwyMF1dLDI6WzAsMzBdfSwzMjp7MDpbMF0sMTpbWzAsN10sMTEsWzEzLDE4XSwyNCwyNV0sMjpbWzAsNl0sMTEsODEsODJdLDM6W1swLDVdLDExLDEyLFsyMSwyNF0sODEsODJdLDQ6W1swLDJdLDQsNSwxMSwxMiw4MSw4Ml0sNTpbWzAsOV0sWzgxLDg1XV0sNjpbWzAsMl0sMTEsMTIsMjEsMjMsWzgxLDg0XV0sNzpbMCwxLDMsNSw2LFsyMSwyNF1dLDg6W1swLDRdLDExLDI2LFsyOSwzMV1dLDk6W1swLDNdLFsyMSwyNV0sMjgsODEsODJdLDEwOltbMCwzXSwxMSwxMiwyMyw4MSw4NCw4OF0sMTE6W1swLDJdLDExLDEyLFs4MSw4M11dLDEyOltbMCw0XSxbODEsODRdXSwxMzpbWzAsMl0sMTEsWzIxLDI0XV19LDMzOnswOlswXSwxOltbMCw2XSxbOCwxMF0sMjIsMjcsODIsODMsODVdLDI6WzAsMSxbMyw2XSwxMSwxMiwyNSwyNixbODEsODNdXSwzOltbMCw0XSwyMiwyNCxbMjYsMjldLDgxLDgyXSw0OltbMCwyXSwxMSwyMSwyNCxbODEsODNdXSw1OltbMCwzXSxbMjEsMjNdXSw2OltbMCwyXSwyMSwyNCxbODEsODNdXSw3OltbMCwzXSwyMywyNiwyNyxbODEsODRdXSw4OltbMCwzXSwyMiwyNCwyNSw4MV0sOTpbWzAsM10sMjEsMjJdLDEwOltbMCw0XSxbMjEsMjRdLDgxLDgyXSwxMTpbWzAsMl0sWzIxLDI3XSw4MV19LDM0OnswOlswXSwxOltbMCw0XSwxMSxbMjEsMjRdLDgxXSwyOltbMCw0XSw3LDgsWzIxLDIzXSwyNV0sMzpbWzAsNF0sMTEsWzIxLDIzXV0sNDpbWzAsNl0sMjFdLDU6W1swLDRdLDYsWzIxLDIzXV0sNjpbWzAsNF0sMjFdLDc6W1swLDNdLDExLDIxXSw4OltbMCwzXSwxMSxbMjIsMjhdLDgxXSwxMDpbWzAsNF0sWzIxLDI0XV0sMTE6W1swLDNdLDIyLFsyNCwyNl0sODEsODJdLDEyOltbMCw0XSwyMSwyMiwyNSwyNiw4Ml0sMTM6W1swLDJdLFsyMSwyNF1dLDE0OltbMCwyXSxbMjEsMjRdXSwxNTpbWzAsM10sWzIxLDI1XV0sMTY6W1swLDJdLFsyMSwyM11dLDE3OltbMCwyXSxbMjEsMjNdXSwxODpbWzAsMl0sWzIxLDI1XSw4MV19LDM1OnswOlswXSwxOltbMCw1XSwxMSxbMjEsMjVdLDI4LDgxLDgyXSwyOltbMCw2XSxbMTEsMTNdXSwzOltbMCw1XSwyMl0sNDpbWzAsM10sMjEsWzIzLDMwXSw4MV0sNTpbWzAsNV0sMjEsWzI0LDI3XSxbODEsODNdXSw2OltbMCwzXSxbMjIsMjldLDgxXSw3OltbMCwyXSxbMjEsMjVdLFs4MSw4NF1dLDg6W1swLDJdLFsyMSwyNV0sODFdLDk6W1swLDJdLFsyMSwyNl0sODEsODJdfSwzNjp7MDpbMF0sMTpbWzAsNV0sMTEsWzIxLDI0XV0sMjpbWzAsM10sMjIsODFdLDM6W1swLDJdLDEzLFsyMSwyM11dLDQ6W1swLDNdLDIxLFsyMywzMF0sODEsODJdLDU6W1swLDJdLDIxXSw2OltbMCwyXSwyMiw4MV0sNzpbWzAsMl0sWzIxLDM1XSw4MSw4Ml0sODpbWzAsM10sWzIxLDMwXSw4MV0sOTpbWzAsMl0sWzIxLDI2XSxbODEsODNdXSwxMDpbWzAsMl0sWzIxLDMwXV0sMTE6W1swLDJdLFsyMSwzMF0sODFdfSwzNzp7MDpbMF0sMTpbWzAsNV0sMTIsMTMsWzI0LDI2XSw4MV0sMjpbWzAsM10sNSxbMTEsMTRdLFs4MSw4NV1dLDM6W1swLDZdLFsyMSwyM11dLDQ6W1swLDZdLDgxXSw1OltbMCwzXSxbMjEsMjNdXSw2OltbMCwyXSxbMTEsMTNdLDM0LFs4MSw4N11dLDc6W1swLDVdLDI0LDI1LFs4MSw4Nl1dLDg6W1swLDJdLDExLFsyNiwzMl0sWzgxLDgzXV0sOTpbWzAsM10sMTEsMjEsMjMsODIsODNdLDEwOltbMCwyXSxbODEsODNdXSwxMTpbWzAsM10sMjEsMjJdLDEyOltbMCwzXV0sMTM6W1swLDJdLDExLDEyLFsyMSwyOV1dLDE0OltbMCwyXSxbMjEsMjhdLDgxLDgyXSwxNTpbWzAsMl0sWzIxLDI2XSw4MV0sMTY6W1swLDJdLFsyMSwyNl1dLDE3OltbMCwyXSxbMjEsMjhdXX0sNDE6ezA6WzBdLDE6W1swLDZdLDgsMjIsWzgxLDg1XV0sMjpbWzAsNV0sMTEsWzIxLDI1XV0sMzpbWzAsN10sMTEsWzIyLDI5XSw4MV0sNDpbWzAsNF0sMTEsWzIxLDIzXSwyNSw4MSw4Ml0sNTpbWzAsM10sNSw2LDIyLDIzLDI2LDI3LDgxXSw2OltbMCwzXSwxMSwyMSwyMl0sNzpbWzAsNF0sMTEsMjEsWzI0LDI4XSw4MSw4Ml0sODpbWzAsNF0sMTEsWzIxLDIzXSwyNSxbODEsODNdXSw5OltbMCwyXSwyMiwyMyxbMjYsMjhdXSwxMDpbWzAsMl0sWzIzLDI1XSw4MSw4Ml0sMTE6W1swLDRdLFsyMSwyM11dLDEyOltbMCwyXSwyMSwyMiwyNCw4MSw4Ml0sMTM6W1swLDNdLFsyMSwzMF0sODFdLDE0OltbMCwzXSxbMjEsMjZdLDgxXSwxNTpbWzAsM10sWzIxLDI4XV0sMTY6W1swLDJdLFsyMSwyOF0sODFdLDE3OltbMCwyXSxbMjEsMjldXSw5MDpbMCwxXX0sNDI6ezA6WzBdLDE6W1swLDddLFsxMSwxN11dLDI6W1swLDVdLDIyLDgxXSwzOltbMCwzXSxbMjEsMjVdLDgxXSw1OltbMCw2XSxbMjUsMjldLFs4MSw4M11dLDY6W1swLDJdLDYsNyxbMjQsMjZdLFs4Miw4NF1dLDc6W1swLDRdXSw4OltbMCwyXSw0LDIxLDIyLDgxXSw5OltbMCwyXSxbMjEsMjNdLDgxLDgyLDg0XSwxMDpbWzAsM10sWzIyLDI0XSw4MSw4Myw4N10sMTE6W1swLDJdLFsyMSwyN10sODEsODJdLDEyOltbMCwyXSxbMjEsMjRdLDgxXSwxMzpbWzAsM10sMjEsODFdLDI4OltbMCwyXSwyMiwyMyxbMjUsMjhdXSw5MDpbMCxbNCw2XSwyMV19LDQzOnswOlswXSwxOltbMCw1XSwxMSwxMiwyMSwyMiwyNCw4MV0sMjpbWzAsNF0sMTEsMjEsWzIzLDI1XSw4MV0sMzpbWzAsMl0sNCwyMSw4MSw4Ml0sNDpbMCwxLFs1LDhdLDEyLFsyMSwyNF0sMjYsODEsODJdLDU6W1swLDNdLDExLFsyMSwyNV0sWzI3LDI5XSw4MV0sNjpbWzAsM10sMTEsMjEsMjMsMjQsMjYsODEsODJdLDc6W1swLDNdLFsyMSwyNl0sODFdLDg6W1swLDJdLDExLDIxLDIyXSw5OltbMCwzXSxbMjEsMjNdLDgxXSwxMDpbWzAsM10sWzIxLDI4XSw4MV0sMTE6W1swLDNdLFsyMSwyOV1dLDEyOltbMCwyXSxbMjEsMzBdLDgxXSwxMzpbWzAsMl0sMjEsMjIsODEsODJdLDMxOlswLDEsWzIyLDI3XSwzMF19LDQ0OnswOlswXSwxOltbMCw3XSxbMTEsMTZdLDgzLDg0XSwyOltbMCw1XSwyMSwyMiwyNCwyOSwzMiwzMyw4MSw4Ml0sMzpbMCwxLFszLDhdXSw0OltbMCw0XV0sNTpbMCwxLFs2LDE1XSwyMyw4Miw4M10sNjpbMCwxLFs0LDhdXSw3OlswLDEsWzMsNV0sODEsWzgzLDg1XV0sODpbWzAsNF0sMTEsMjMsMjUsWzgxLDgzXV0sOTpbWzAsM10sMjMsWzgxLDgzXV0sMTI6W1swLDNdLFsyMywyNl0sODMsODRdLDEzOltbMCwzXSxbMjIsMjRdLDgxXSwxNDpbWzAsMl0sWzIxLDI0XSwyNiwyNyw4MV0sMTU6W1swLDJdLDIxLDIzLDgxXSwxNjpbWzAsMl0sWzIxLDI1XV0sMTc6W1swLDJdLDIxLDIzLDgxXSwxODpbWzAsM10sMjEsMjMsWzI1LDI3XSw4MSw4Ml0sMTk6WzBdLDIwOlswXSw1MTpbWzAsM10sMjEsMjJdLDUyOltbMCwzXSwyMSwyMiwyNCw4MV0sNTM6W1swLDJdLFsyMSwyM10sODFdfSw0NTp7MDpbMF0sMTpbWzAsOV0sWzIxLDI3XV0sMjpbWzAsNV0sWzIxLDI2XV0sMzpbWzAsNV0sMTEsMTIsWzIxLDMyXV0sNDpbMCwxLFszLDZdLDExLFsyMSwyM10sODFdLDU6W1swLDNdLDEyLDIxXSw2OltbMCwzXSwyMSw4MV0sNzpbWzAsM10sMjEsMjJdLDg6W1swLDRdLDIxLDgxXSw5OltbMCwzXSxbMjEsMjRdLDgxXSwxMDpbWzAsMl0sWzIxLDMxXV0sMTE6W1swLDJdLFsyMSwyM11dLDEyOltbMCwyXSxbMjEsMjldLDgxXSwxMzpbWzAsMl0sWzIxLDI0XSw4MV0sMTQ6W1swLDJdLFsyMSwyNV0sODFdfSw0Njp7MDpbMF0sMTpbMCwxLFs1LDhdXSwyOlswLDFdLDM6WzAsWzIxLDIzXV0sOTA6W1swLDNdLFs1LDddLFsyMSwzOV1dfSw1MDp7MDpbMF0sMTpbWzAsMTldXSwyOlswLFsyMiwzOF0sWzQwLDQzXV0sMzpbMCxbODEsODRdXX0sNTE6ezA6WzBdLDE6WzAsMSxbNCw4XSxbMTIsMTVdLFsyMSwyNF0sMjksMzEsMzIsWzgxLDg0XV0sMzpbWzAsNF0sMTEsMjEsMjJdLDQ6W1swLDNdLDExLDIxLDIyXSw1OltbMCw0XSwyMSwyMiwyNCwyNV0sNjpbMCwxLDMsMjMsMjYsWzgxLDgzXV0sNzpbMCwxLDMsNCxbMjIsMjddLDgxXSw4OltbMCwyXSwxMSwxMixbMjEsMjRdXSw5OltbMCw0XSxbMjEsMjNdXSwxMDpbWzAsMl0sMTEsMjQsMjUsMjhdLDExOltbMCwyXSxbMTEsMTNdLDIzLDI0LDI2LDI5LDMyLDMzLDgxXSwxMzpbWzAsNF0sWzIxLDI1XSw4MV0sMTQ6W1swLDJdLFsyMSwyNV1dLDE1OltbMCwzXSxbMjEsMjldXSwxNjpbWzAsM10sWzIxLDIzXSw4MV0sMTc6W1swLDNdLFsyMSwyNV0sODFdLDE4OltbMCwzXSxbMjEsMjddXSwxOTpbWzAsM10sWzIxLDIzXV0sMjA6W1swLDJdLDIxLDIyLDgxXSwzMjpbMCxbMjEsMzNdXSwzMzpbMCxbMjEsMzhdXSwzNDpbMCwxLFsyMiwzN11dfSw1Mjp7MDpbMF0sMTpbWzAsM10sWzExLDE1XSxbMjEsMjNdLDgxXSwyOlswLDEsMywyMSwyMl0sMzpbWzAsM10sWzIxLDMwXSw4MSw4Ml0sNDpbWzAsMl0sWzIxLDI1XV0sNTpbWzAsMl0sWzIxLDI3XV0sNjpbWzAsM10sWzIxLDI4XV0sMjI6WzAsMSxbMjIsMzBdXSwyMzpbMCwxLFsyMiwyOF1dLDI0OlswLDEsWzIyLDI4XV0sMjY6WzAsMSxbMjIsMzZdXSwyNzpbWzAsMl0sMjIsMjMsWzI1LDMyXV19LDUzOnswOlswXSwxOltbMCwzXSxbMTEsMTRdLDIxLDIyLFsyNCwyOV0sODFdLDM6W1swLDJdLFsyMSwyNl0sMjgsODFdLDQ6W1swLDJdLFsyMSwyOF1dLDU6W1swLDJdLFsyMSwyNF1dLDY6W1swLDJdLFsyMSwzMF1dLDc6W1swLDJdLFsyMSwyNF1dLDg6W1swLDJdLFsyMSwyOV1dLDk6W1swLDJdLFsyMSwyN11dLDIzOlswLDEsWzIyLDI5XSwzMV0sMjU6W1swLDRdLFsyMiwzMl1dLDI2OlswLDEsWzIxLDI4XV0sMjc6WzAsMSxbMjIsMzBdXSwyODpbMCwxLDIyLDIzXSwyOTpbMCwxLFsyMiwzMl1dLDMxOlswLDIsMyxbMjIsMjRdXSwzNDpbMCxbMjEsMjNdXSwzMzpbMCwyMSxbMjMsMjVdXSwzNTpbMCxbMjEsMjhdXX0sNTQ6ezA6WzBdLDE6W1swLDJdLFsyMSwyN11dLDIxOlswLFsyMSwyOV0sMzIsMzNdLDIyOlswLFsyMSwyOV0sWzMxLDMzXV0sMjM6WzAsMSxbMjIsMzhdXSwyNDpbMCxbMjEsMzFdXSwyNTpbMCxbMjEsMjddXSwyNjpbMCxbMjEsMjddXX0sNjE6ezA6WzBdLDE6W1swLDRdLFsxMSwxNl0sMjIsWzI0LDI2XV0sMjpbWzAsNF0sMjJdLDM6W1swLDRdLFsyMSwyNF0sWzI2LDMxXV0sNDpbWzAsNF0sWzIyLDMxXSw4MV0sNTpbWzAsMl0sWzIxLDI4XSw4MSw4Ml0sNjpbWzAsMl0sWzIxLDMyXV0sNzpbWzAsMl0sWzIxLDMwXV0sODpbWzAsMl0sWzIxLDMxXV0sOTpbWzAsMl0sWzIxLDI5XV0sMTA6W1swLDJdLFsyMSwyNl1dfSw2Mjp7MDpbMF0sMTpbWzAsNV0sMTEsWzIxLDIzXV0sMjpbMCwxXSwzOltbMCwyXSwyMV0sNDpbWzAsM10sWzIxLDIzXV0sNTpbWzAsM10sWzIxLDI1XV0sNjpbWzAsMl0sWzIxLDIzXV0sNzpbWzAsMl0sWzIxLDI1XV0sODpbWzAsMl0sWzIxLDI2XV0sOTpbWzAsMl0sWzIxLDI0XSw4MSw4Ml0sMTA6W1swLDJdLFsyMSwyN11dLDExOltbMCwyXSxbMjEsMjZdXSwxMjpbWzAsMl0sWzIxLDI4XV0sMjQ6WzAsMjEsWzI0LDI5XV0sMjY6WzAsMjEsWzIzLDMwXV0sMjk6WzAsMSxbMjEsMjddXSwzMDpbMCwxLFsyMSwyN11dfSw2Mzp7MDpbMF0sMTpbWzAsNV0sWzIxLDIzXV0sMjpbMCwyLFsyMSwyNV1dLDIxOlswLFsyMSwyM10sWzI2LDI4XV0sMjI6WzAsWzIxLDI0XV0sMjM6WzAsWzIxLDI0XV0sMjU6WzAsWzIxLDI1XV0sMjY6WzAsWzIxLDI2XV0sMjc6WzAsMSxbMjEsMjZdXSwyODpbWzAsMl0sWzIxLDIzXV19LDY0OnswOlswXSwxOlswLDEsWzQsNl0sMjEsMjIsODFdLDI6W1swLDNdLDUsWzIxLDIzXV0sMzpbWzAsM10sWzIxLDI0XSw4MV0sNDpbWzAsMl0sWzIxLDI1XV0sNTpbWzAsMl0sMjEsMjJdfSw2NTp7MDpbMF0sMTpbWzAsOV0sMjFdLDI6W1swLDVdXSwyMTpbMCwxLDIyLDIzXSwyMjpbMCwxLDIyLDIzXSwyMzpbWzAsM10sWzIzLDI1XSwyNywyOF0sMjg6WzAsMSxbMjIsMjldXSwyOTpbMCwxLFsyMiwyOV1dLDMwOlswLDEsWzIyLDI0XV0sMzE6WzAsMSxbMjEsMzFdXSwzMjpbMCwxLFsyMSwyN11dLDQwOlswLDIsMyxbMjEsMjhdXSw0MjpbWzAsMl0sMjEsWzIzLDI2XV0sNDM6WzAsMSxbMjEsMjZdXSw5MDpbWzAsNF1dLDI3OltbMCwyXSwyMiwyM119LDcxOnswOlswXX0sODE6ezA6WzBdfSw4Mjp7MDpbMF19fTt2YXIgYT1wYXJzZUludChzLnN1YnN0cigwLDIpLDEwKTt2YXIgbj1wYXJzZUludChzLnN1YnN0cigyLDIpLDEwKTt2YXIgbD1wYXJzZUludChzLnN1YnN0cig0LDIpLDEwKTtpZighZVthXXx8IWVbYV1bbl0pe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgaT1mYWxzZTt2YXIgdT1lW2FdW25dO3ZhciBvO2ZvcihvPTA7bzx1Lmxlbmd0aDtvKyspe2lmKEFycmF5LmlzQXJyYXkodVtvXSkmJnVbb11bMF08PWwmJmw8PXVbb11bMV18fCFBcnJheS5pc0FycmF5KHVbb10pJiZsPT09dVtvXSl7aT10cnVlO2JyZWFrfX1pZighaSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciBmO2lmKHMubGVuZ3RoPT09MTgpe2Y9cy5zdWJzdHIoNiw4KX1lbHNle2Y9XCIxOVwiLmNvbmNhdChzLnN1YnN0cig2LDYpKX12YXIgYz1wYXJzZUludChmLnN1YnN0cigwLDQpLDEwKTt2YXIgcD1wYXJzZUludChmLnN1YnN0cig0LDIpLDEwKTt2YXIgZD1wYXJzZUludChmLnN1YnN0cig2LDIpLDEwKTtpZighdCQ5KGMscCxkKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fWlmKHMubGVuZ3RoPT09MTgpe3ZhciBfdD1bNyw5LDEwLDUsOCw0LDIsMSw2LDMsNyw5LDEwLDUsOCw0LDJdO3ZhciBfcj0wO2ZvcihvPTA7bzwxNztvKyspe19yKz1wYXJzZUludChzLmNoYXJBdChvKSwxMCkqX3Rbb119X3I9KDEyLV9yJTExKSUxMTt2YXIgX2U9cy5jaGFyQXQoMTcpLnRvVXBwZXJDYXNlKCkhPT1cIlhcIj9wYXJzZUludChzLmNoYXJBdCgxNyksMTApOjEwO3JldHVybnttZXRhOnt9LHZhbGlkOl9lPT09X3J9fXJldHVybnttZXRhOnt9LHZhbGlkOnRydWV9fWZ1bmN0aW9uIHQkaih0KXt2YXIgZT10LnJlcGxhY2UoL1xcLi9nLFwiXCIpLnJlcGxhY2UoXCItXCIsXCJcIik7aWYoIS9eXFxkezgsMTZ9JC8udGVzdChlKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciByPWUubGVuZ3RoO3ZhciBhPVszLDcsMTMsMTcsMTksMjMsMjksMzcsNDEsNDMsNDcsNTMsNTksNjcsNzFdO3ZhciBsPTA7Zm9yKHZhciBfdD1yLTI7X3Q+PTA7X3QtLSl7bCs9cGFyc2VJbnQoZS5jaGFyQXQoX3QpLDEwKSphW190XX1sPWwlMTE7aWYobD49Mil7bD0xMS1sfXJldHVybnttZXRhOnt9LHZhbGlkOlwiXCIuY29uY2F0KGwpPT09ZS5zdWJzdHIoci0xKX19ZnVuY3Rpb24gZSRjKGUpe2lmKCEvXlxcZHs5LDEwfSQvLnRlc3QoZSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgcj0xOTAwK3BhcnNlSW50KGUuc3Vic3RyKDAsMiksMTApO3ZhciBzPXBhcnNlSW50KGUuc3Vic3RyKDIsMiksMTApJTUwJTIwO3ZhciBhPXBhcnNlSW50KGUuc3Vic3RyKDQsMiksMTApO2lmKGUubGVuZ3RoPT09OSl7aWYocj49MTk4MCl7ci09MTAwfWlmKHI+MTk1Myl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fX1lbHNlIGlmKHI8MTk1NCl7cis9MTAwfWlmKCF0JDkocixzLGEpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19aWYoZS5sZW5ndGg9PT0xMCl7dmFyIF90PXBhcnNlSW50KGUuc3Vic3RyKDAsOSksMTApJTExO2lmKHI8MTk4NSl7X3Q9X3QlMTB9cmV0dXJue21ldGE6e30sdmFsaWQ6XCJcIi5jb25jYXQoX3QpPT09ZS5zdWJzdHIoOSwxKX19cmV0dXJue21ldGE6e30sdmFsaWQ6dHJ1ZX19ZnVuY3Rpb24gZSRkKGUpe2lmKCEvXlswLTldezZ9Wy1dezAsMX1bMC05XXs0fSQvLnRlc3QoZSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgYT1lLnJlcGxhY2UoLy0vZyxcIlwiKTt2YXIgcj1wYXJzZUludChhLnN1YnN0cigwLDIpLDEwKTt2YXIgcz1wYXJzZUludChhLnN1YnN0cigyLDIpLDEwKTt2YXIgbj1wYXJzZUludChhLnN1YnN0cig0LDIpLDEwKTtzd2l0Y2godHJ1ZSl7Y2FzZVwiNTY3OFwiLmluZGV4T2YoYS5jaGFyQXQoNikpIT09LTEmJm4+PTU4Om4rPTE4MDA7YnJlYWs7Y2FzZVwiMDEyM1wiLmluZGV4T2YoYS5jaGFyQXQoNikpIT09LTE6Y2FzZVwiNDlcIi5pbmRleE9mKGEuY2hhckF0KDYpKSE9PS0xJiZuPj0zNzpuKz0xOTAwO2JyZWFrO2RlZmF1bHQ6bis9MmUzO2JyZWFrfXJldHVybnttZXRhOnt9LHZhbGlkOnQkOShuLHMscil9fWZ1bmN0aW9uIHQkayh0KXt2YXIgZT0vXlswLTldezh9Wy1dezAsMX1bQS1ISi1OUC1UVi1aXSQvLnRlc3QodCk7dmFyIHM9L15bWFlaXVstXXswLDF9WzAtOV17N31bLV17MCwxfVtBLUhKLU5QLVRWLVpdJC8udGVzdCh0KTt2YXIgbj0vXltBLUhOUFFTXVstXXswLDF9WzAtOV17N31bLV17MCwxfVswLTlBLUpdJC8udGVzdCh0KTtpZighZSYmIXMmJiFuKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIHI9dC5yZXBsYWNlKC8tL2csXCJcIik7dmFyIGw7dmFyIGE7dmFyIGY9dHJ1ZTtpZihlfHxzKXthPVwiRE5JXCI7dmFyIF90PVwiWFlaXCIuaW5kZXhPZihyLmNoYXJBdCgwKSk7aWYoX3QhPT0tMSl7cj1fdCtyLnN1YnN0cigxKStcIlwiO2E9XCJOSUVcIn1sPXBhcnNlSW50KHIuc3Vic3RyKDAsOCksMTApO2w9XCJUUldBR01ZRlBEWEJOSlpTUVZITENLRVwiW2wlMjNdO3JldHVybnttZXRhOnt0eXBlOmF9LHZhbGlkOmw9PT1yLnN1YnN0cig4LDEpfX1lbHNle2w9ci5zdWJzdHIoMSw3KTthPVwiQ0lGXCI7dmFyIF90Mj1yWzBdO3ZhciBfZT1yLnN1YnN0cigtMSk7dmFyIF9zPTA7Zm9yKHZhciBfdDM9MDtfdDM8bC5sZW5ndGg7X3QzKyspe2lmKF90MyUyIT09MCl7X3MrPXBhcnNlSW50KGxbX3QzXSwxMCl9ZWxzZXt2YXIgX2UyPVwiXCIrcGFyc2VJbnQobFtfdDNdLDEwKSoyO19zKz1wYXJzZUludChfZTJbMF0sMTApO2lmKF9lMi5sZW5ndGg9PT0yKXtfcys9cGFyc2VJbnQoX2UyWzFdLDEwKX19fXZhciBfbj1fcy1NYXRoLmZsb29yKF9zLzEwKSoxMDtpZihfbiE9PTApe19uPTEwLV9ufWlmKFwiS1FTXCIuaW5kZXhPZihfdDIpIT09LTEpe2Y9X2U9PT1cIkpBQkNERUZHSElcIltfbl19ZWxzZSBpZihcIkFCRUhcIi5pbmRleE9mKF90MikhPT0tMSl7Zj1fZT09PVwiXCIrX259ZWxzZXtmPV9lPT09XCJcIitfbnx8X2U9PT1cIkpBQkNERUZHSElcIltfbl19cmV0dXJue21ldGE6e3R5cGU6YX0sdmFsaWQ6Zn19fWZ1bmN0aW9uIHMkMyhzKXtpZighL15bMC05XXs2fVstK0FdWzAtOV17M31bMC05QUJDREVGSEpLTE1OUFJTVFVWV1hZXSQvLnRlc3Qocykpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgcj1wYXJzZUludChzLnN1YnN0cigwLDIpLDEwKTt2YXIgYT1wYXJzZUludChzLnN1YnN0cigyLDIpLDEwKTt2YXIgZT1wYXJzZUludChzLnN1YnN0cig0LDIpLDEwKTt2YXIgbj17XCIrXCI6MTgwMCxcIi1cIjoxOTAwLEE6MmUzfTtlPW5bcy5jaGFyQXQoNildK2U7aWYoIXQkOShlLGEscikpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgdT1wYXJzZUludChzLnN1YnN0cig3LDMpLDEwKTtpZih1PDIpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgaT1wYXJzZUludChzLnN1YnN0cigwLDYpK3Muc3Vic3RyKDcsMykrXCJcIiwxMCk7cmV0dXJue21ldGE6e30sdmFsaWQ6XCIwMTIzNDU2Nzg5QUJDREVGSEpLTE1OUFJTVFVWV1hZXCIuY2hhckF0KGklMzEpPT09cy5jaGFyQXQoMTApfX1mdW5jdGlvbiB0JGwodCl7dmFyIHM9dC50b1VwcGVyQ2FzZSgpO2lmKCEvXigxfDIpXFxkezJ9XFxkezJ9KFxcZHsyfXxcXGRbQS1aXXxcXGR7M30pXFxkezIsM31cXGR7M31cXGR7Mn0kLy50ZXN0KHMpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIGU9cy5zdWJzdHIoNSwyKTtzd2l0Y2godHJ1ZSl7Y2FzZS9eXFxkezJ9JC8udGVzdChlKTpzPXQ7YnJlYWs7Y2FzZSBlPT09XCIyQVwiOnM9XCJcIi5jb25jYXQodC5zdWJzdHIoMCw1KSxcIjE5XCIpLmNvbmNhdCh0LnN1YnN0cig3KSk7YnJlYWs7Y2FzZSBlPT09XCIyQlwiOnM9XCJcIi5jb25jYXQodC5zdWJzdHIoMCw1KSxcIjE4XCIpLmNvbmNhdCh0LnN1YnN0cig3KSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIHI9OTctcGFyc2VJbnQocy5zdWJzdHIoMCwxMyksMTApJTk3O3ZhciBhPXI8MTA/XCIwXCIuY29uY2F0KHIpOlwiXCIuY29uY2F0KHIpO3JldHVybnttZXRhOnt9LHZhbGlkOmE9PT1zLnN1YnN0cigxMyl9fWZ1bmN0aW9uIHQkbSh0KXt2YXIgZT10LnRvVXBwZXJDYXNlKCk7aWYoIS9eW0EtTVAtWl17MSwyfVswLTldezZ9WzAtOUFdJC8udGVzdChlKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciBzPVwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpcIjt2YXIgbj1lLmNoYXJBdCgwKTt2YXIgcj1lLmNoYXJBdCgxKTt2YXIgYT0wO3ZhciBjPWU7aWYoL15bQS1aXSQvLnRlc3Qocikpe2ErPTkqKDEwK3MuaW5kZXhPZihuKSk7YSs9OCooMTArcy5pbmRleE9mKHIpKTtjPWUuc3Vic3RyKDIpfWVsc2V7YSs9OSozNjthKz04KigxMCtzLmluZGV4T2YobikpO2M9ZS5zdWJzdHIoMSl9dmFyIG89Yy5sZW5ndGg7Zm9yKHZhciBfdD0wO190PG8tMTtfdCsrKXthKz0oNy1fdCkqcGFyc2VJbnQoYy5jaGFyQXQoX3QpLDEwKX12YXIgZj1hJTExO3ZhciBsPWY9PT0wP1wiMFwiOjExLWY9PT0xMD9cIkFcIjpcIlwiLmNvbmNhdCgxMS1mKTtyZXR1cm57bWV0YTp7fSx2YWxpZDpsPT09Yy5jaGFyQXQoby0xKX19ZnVuY3Rpb24gbyQzKG8pe3JldHVybnttZXRhOnt9LHZhbGlkOi9eWzAtOV17MTF9JC8udGVzdChvKSYmdCQxKG8pfX1mdW5jdGlvbiBlJGUoZSl7aWYoIS9eWzItOV1cXGR7MTF9JC8udGVzdChlKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciByPWUuc3BsaXQoXCJcIikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcGFyc2VJbnQodCwxMCl9KSk7cmV0dXJue21ldGE6e30sdmFsaWQ6dCQzKHIpfX1mdW5jdGlvbiB0JG4odCl7aWYoIS9eXFxkezd9W0EtV11bQUhXVFhdPyQvLnRlc3QodCkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgcj1mdW5jdGlvbiByKHQpe3ZhciByPXQ7d2hpbGUoci5sZW5ndGg8Nyl7cj1cIjBcIi5jb25jYXQocil9dmFyIGU9XCJXQUJDREVGR0hJSktMTU5PUFFSU1RVVlwiO3ZhciBzPTA7Zm9yKHZhciBfdD0wO190PDc7X3QrKyl7cys9cGFyc2VJbnQoci5jaGFyQXQoX3QpLDEwKSooOC1fdCl9cys9OSplLmluZGV4T2Yoci5zdWJzdHIoNykpO3JldHVybiBlW3MlMjNdfTt2YXIgZT10Lmxlbmd0aD09PTkmJihcIkFcIj09PXQuY2hhckF0KDgpfHxcIkhcIj09PXQuY2hhckF0KDgpKT90LmNoYXJBdCg3KT09PXIodC5zdWJzdHIoMCw3KSt0LnN1YnN0cig4KStcIlwiKTp0LmNoYXJBdCg3KT09PXIodC5zdWJzdHIoMCw3KSk7cmV0dXJue21ldGE6e30sdmFsaWQ6ZX19ZnVuY3Rpb24gZSRmKGUpe2lmKCEvXlxcZHsxLDl9JC8udGVzdChlKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXJldHVybnttZXRhOnt9LHZhbGlkOnQoZSl9fWZ1bmN0aW9uIGUkZyhlKXtpZighL15bMC05XXs2fVstXXswLDF9WzAtOV17NH0kLy50ZXN0KGUpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIHI9ZS5yZXBsYWNlKC8tL2csXCJcIik7dmFyIHM9cGFyc2VJbnQoci5zdWJzdHIoMCwyKSwxMCk7dmFyIGE9cGFyc2VJbnQoci5zdWJzdHIoMiwyKSwxMCk7dmFyIG49cGFyc2VJbnQoci5zdWJzdHIoNCwyKSwxMCk7dmFyIGw9cGFyc2VJbnQoci5jaGFyQXQoOSksMTApO249bD09PTk/MTkwMCtuOigyMCtsKSoxMDArbjtpZighdCQ5KG4sYSxzLHRydWUpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIGM9WzMsMiw3LDYsNSw0LDMsMl07dmFyIGk9MDtmb3IodmFyIF90PTA7X3Q8ODtfdCsrKXtpKz1wYXJzZUludChyLmNoYXJBdChfdCksMTApKmNbX3RdfWk9MTEtaSUxMTtyZXR1cm57bWV0YTp7fSx2YWxpZDpcIlwiLmNvbmNhdChpKT09PXIuY2hhckF0KDgpfX1mdW5jdGlvbiBlJGgoZSl7dmFyIGE9ZS5yZXBsYWNlKFwiLVwiLFwiXCIpO2lmKCEvXlxcZHsxM30kLy50ZXN0KGEpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIHM9YS5jaGFyQXQoNik7dmFyIHI9cGFyc2VJbnQoYS5zdWJzdHIoMCwyKSwxMCk7dmFyIGM9cGFyc2VJbnQoYS5zdWJzdHIoMiwyKSwxMCk7dmFyIG49cGFyc2VJbnQoYS5zdWJzdHIoNCwyKSwxMCk7c3dpdGNoKHMpe2Nhc2VcIjFcIjpjYXNlXCIyXCI6Y2FzZVwiNVwiOmNhc2VcIjZcIjpyKz0xOTAwO2JyZWFrO2Nhc2VcIjNcIjpjYXNlXCI0XCI6Y2FzZVwiN1wiOmNhc2VcIjhcIjpyKz0yZTM7YnJlYWs7ZGVmYXVsdDpyKz0xODAwO2JyZWFrfWlmKCF0JDkocixjLG4pKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIGw9WzIsMyw0LDUsNiw3LDgsOSwyLDMsNCw1XTt2YXIgbz1hLmxlbmd0aDt2YXIgaT0wO2Zvcih2YXIgX3Q9MDtfdDxvLTE7X3QrKyl7aSs9bFtfdF0qcGFyc2VJbnQoYS5jaGFyQXQoX3QpLDEwKX12YXIgdT0oMTEtaSUxMSklMTA7cmV0dXJue21ldGE6e30sdmFsaWQ6XCJcIi5jb25jYXQodSk9PT1hLmNoYXJBdChvLTEpfX1mdW5jdGlvbiByJDUocil7aWYoIS9eWzAtOV17MTF9JC8udGVzdChyKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciBlPXBhcnNlSW50KHIuY2hhckF0KDApLDEwKTt2YXIgYT1wYXJzZUludChyLnN1YnN0cigxLDIpLDEwKTt2YXIgcz1wYXJzZUludChyLnN1YnN0cigzLDIpLDEwKTt2YXIgbj1wYXJzZUludChyLnN1YnN0cig1LDIpLDEwKTt2YXIgaT1lJTI9PT0wPzE3K2UvMjoxNysoZSsxKS8yO2E9aSoxMDArYTtpZighdCQ5KGEscyxuLHRydWUpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIGw9WzEsMiwzLDQsNSw2LDcsOCw5LDFdO3ZhciBmPTA7dmFyIHU7Zm9yKHU9MDt1PDEwO3UrKyl7Zis9cGFyc2VJbnQoci5jaGFyQXQodSksMTApKmxbdV19Zj1mJTExO2lmKGYhPT0xMCl7cmV0dXJue21ldGE6e30sdmFsaWQ6XCJcIi5jb25jYXQoZik9PT1yLmNoYXJBdCgxMCl9fWY9MDtsPVszLDQsNSw2LDcsOCw5LDEsMiwzXTtmb3IodT0wO3U8MTA7dSsrKXtmKz1wYXJzZUludChyLmNoYXJBdCh1KSwxMCkqbFt1XX1mPWYlMTE7aWYoZj09PTEwKXtmPTB9cmV0dXJue21ldGE6e30sdmFsaWQ6XCJcIi5jb25jYXQoZik9PT1yLmNoYXJBdCgxMCl9fWZ1bmN0aW9uIGUkaShlKXtpZighL15bMC05XXs2fVstXXswLDF9WzAtOV17NX0kLy50ZXN0KGUpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIHI9ZS5yZXBsYWNlKC9cXEQvZyxcIlwiKTt2YXIgYT1wYXJzZUludChyLnN1YnN0cigwLDIpLDEwKTt2YXIgcz1wYXJzZUludChyLnN1YnN0cigyLDIpLDEwKTt2YXIgbj1wYXJzZUludChyLnN1YnN0cig0LDIpLDEwKTtuPW4rMTgwMCtwYXJzZUludChyLmNoYXJBdCg2KSwxMCkqMTAwO2lmKCF0JDkobixzLGEsdHJ1ZSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgbD0wO3ZhciBpPVsxMCw1LDgsNCwyLDEsNiwzLDcsOV07Zm9yKHZhciBfdD0wO190PDEwO190Kyspe2wrPXBhcnNlSW50KHIuY2hhckF0KF90KSwxMCkqaVtfdF19bD0obCsxKSUxMSUxMDtyZXR1cm57bWV0YTp7fSx2YWxpZDpcIlwiLmNvbmNhdChsKT09PXIuY2hhckF0KDEwKX19ZnVuY3Rpb24gciQ2KHIpe3JldHVybnttZXRhOnt9LHZhbGlkOnQkZyhyLFwiTUVcIil9fWZ1bmN0aW9uIHIkNyhyKXtyZXR1cm57bWV0YTp7fSx2YWxpZDp0JGcocixcIk1LXCIpfX1mdW5jdGlvbiBPKE8pe3ZhciB0PU8udG9VcHBlckNhc2UoKTtpZighL15bQS1aXXs0fVxcZHs2fVtBLVpdezZ9WzAtOUEtWl1cXGQkLy50ZXN0KHQpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIEM9W1wiQkFDQVwiLFwiQkFLQVwiLFwiQlVFSVwiLFwiQlVFWVwiLFwiQ0FDQVwiLFwiQ0FDT1wiLFwiQ0FHQVwiLFwiQ0FHT1wiLFwiQ0FLQVwiLFwiQ0FLT1wiLFwiQ09HRVwiLFwiQ09HSVwiLFwiQ09KQVwiLFwiQ09KRVwiLFwiQ09KSVwiLFwiQ09KT1wiLFwiQ09MQVwiLFwiQ1VMT1wiLFwiRkFMT1wiLFwiRkVUT1wiLFwiR0VUQVwiLFwiR1VFSVwiLFwiR1VFWVwiLFwiSkVUQVwiLFwiSk9UT1wiLFwiS0FDQVwiLFwiS0FDT1wiLFwiS0FHQVwiLFwiS0FHT1wiLFwiS0FLQVwiLFwiS0FLT1wiLFwiS09HRVwiLFwiS09HSVwiLFwiS09KQVwiLFwiS09KRVwiLFwiS09KSVwiLFwiS09KT1wiLFwiS09MQVwiLFwiS1VMT1wiLFwiTElMT1wiLFwiTE9DQVwiLFwiTE9DT1wiLFwiTE9LQVwiLFwiTE9LT1wiLFwiTUFNRVwiLFwiTUFNT1wiLFwiTUVBUlwiLFwiTUVBU1wiLFwiTUVPTlwiLFwiTUlBUlwiLFwiTUlPTlwiLFwiTU9DT1wiLFwiTU9LT1wiLFwiTVVMQVwiLFwiTVVMT1wiLFwiTkFDQVwiLFwiTkFDT1wiLFwiUEVEQVwiLFwiUEVET1wiLFwiUEVORVwiLFwiUElQSVwiLFwiUElUT1wiLFwiUE9QT1wiLFwiUFVUQVwiLFwiUFVUT1wiLFwiUVVMT1wiLFwiUkFUQVwiLFwiUk9CQVwiLFwiUk9CRVwiLFwiUk9CT1wiLFwiUlVJTlwiLFwiU0VOT1wiLFwiVEVUQVwiLFwiVkFDQVwiLFwiVkFHQVwiLFwiVkFHT1wiLFwiVkFLQVwiLFwiVlVFSVwiLFwiVlVFWVwiLFwiV1VFSVwiLFwiV1VFWVwiXTt2YXIgZT10LnN1YnN0cigwLDQpO2lmKEMuaW5kZXhPZihlKT49MCl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciBzPXBhcnNlSW50KHQuc3Vic3RyKDQsMiksMTApO3ZhciByPXBhcnNlSW50KHQuc3Vic3RyKDYsMiksMTApO3ZhciBhPXBhcnNlSW50KHQuc3Vic3RyKDYsMiksMTApO2lmKC9eWzAtOV0kLy50ZXN0KHQuY2hhckF0KDE2KSkpe3MrPTE5MDB9ZWxzZXtzKz0yZTN9aWYoIXQkOShzLHIsYSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgRT10LmNoYXJBdCgxMCk7aWYoRSE9PVwiSFwiJiZFIT09XCJNXCIpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgbj10LnN1YnN0cigxMSwyKTt2YXIgSz1bXCJBU1wiLFwiQkNcIixcIkJTXCIsXCJDQ1wiLFwiQ0hcIixcIkNMXCIsXCJDTVwiLFwiQ1NcIixcIkRGXCIsXCJER1wiLFwiR1JcIixcIkdUXCIsXCJIR1wiLFwiSkNcIixcIk1DXCIsXCJNTlwiLFwiTVNcIixcIk5FXCIsXCJOTFwiLFwiTlRcIixcIk9DXCIsXCJQTFwiLFwiUVJcIixcIlFUXCIsXCJTTFwiLFwiU1BcIixcIlNSXCIsXCJUQ1wiLFwiVExcIixcIlRTXCIsXCJWWlwiLFwiWU5cIixcIlpTXCJdO2lmKEsuaW5kZXhPZihuKT09PS0xKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIGk9XCIwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU4mT1BRUlNUVVZXWFlaXCI7dmFyIEw9MDt2YXIgbD10Lmxlbmd0aDtmb3IodmFyIF9BPTA7X0E8bC0xO19BKyspe0wrPSgxOC1fQSkqaS5pbmRleE9mKHQuY2hhckF0KF9BKSl9TD0oMTAtTCUxMCklMTA7cmV0dXJue21ldGE6e30sdmFsaWQ6XCJcIi5jb25jYXQoTCk9PT10LmNoYXJBdChsLTEpfX1mdW5jdGlvbiBzJDQocyl7aWYoIS9eXFxkezEyfSQvLnRlc3Qocykpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgZT1wYXJzZUludChzLnN1YnN0cigwLDIpLDEwKTt2YXIgcj1wYXJzZUludChzLnN1YnN0cigyLDIpLDEwKTt2YXIgYT1wYXJzZUludChzLnN1YnN0cig0LDIpLDEwKTtpZighdCQ5KGUrMTkwMCxyLGEpJiYhdCQ5KGUrMmUzLHIsYSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgbj1zLnN1YnN0cig2LDIpO3ZhciBpPVtcIjE3XCIsXCIxOFwiLFwiMTlcIixcIjIwXCIsXCI2OVwiLFwiNzBcIixcIjczXCIsXCI4MFwiLFwiODFcIixcIjk0XCIsXCI5NVwiLFwiOTZcIixcIjk3XCJdO3JldHVybnttZXRhOnt9LHZhbGlkOmkuaW5kZXhPZihuKT09PS0xfX1mdW5jdGlvbiBlJGooZSl7aWYoZS5sZW5ndGg8OCl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciB0PWU7aWYodC5sZW5ndGg9PT04KXt0PVwiMFwiLmNvbmNhdCh0KX1pZighL15bMC05XXs0fVsuXXswLDF9WzAtOV17Mn1bLl17MCwxfVswLTldezN9JC8udGVzdCh0KSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXQ9dC5yZXBsYWNlKC9cXC4vZyxcIlwiKTtpZihwYXJzZUludCh0LDEwKT09PTApe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgYT0wO3ZhciBsPXQubGVuZ3RoO2Zvcih2YXIgX2U9MDtfZTxsLTE7X2UrKyl7YSs9KDktX2UpKnBhcnNlSW50KHQuY2hhckF0KF9lKSwxMCl9YT1hJTExO2lmKGE9PT0xMCl7YT0wfXJldHVybnttZXRhOnt9LHZhbGlkOlwiXCIuY29uY2F0KGEpPT09dC5jaGFyQXQobC0xKX19ZnVuY3Rpb24gdCRvKHQpe2lmKCEvXlxcZHsxMX0kLy50ZXN0KHQpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIHI9ZnVuY3Rpb24gcih0KXt2YXIgcj1bMyw3LDYsMSw4LDksNCw1LDJdO3ZhciBlPTA7Zm9yKHZhciBuPTA7bjw5O24rKyl7ZSs9cltuXSpwYXJzZUludCh0LmNoYXJBdChuKSwxMCl9cmV0dXJuIDExLWUlMTF9O3ZhciBlPWZ1bmN0aW9uIGUodCl7dmFyIHI9WzUsNCwzLDIsNyw2LDUsNCwzLDJdO3ZhciBlPTA7Zm9yKHZhciBuPTA7bjwxMDtuKyspe2UrPXJbbl0qcGFyc2VJbnQodC5jaGFyQXQobiksMTApfXJldHVybiAxMS1lJTExfTtyZXR1cm57bWV0YTp7fSx2YWxpZDpcIlwiLmNvbmNhdChyKHQpKT09PXQuc3Vic3RyKC0yLDEpJiZcIlwiLmNvbmNhdChlKHQpKT09PXQuc3Vic3RyKC0xKX19ZnVuY3Rpb24gdCRwKHQpe2lmKCEvXlxcZHs4fVswLTlBLVpdKiQvLnRlc3QodCkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX1pZih0Lmxlbmd0aD09PTgpe3JldHVybnttZXRhOnt9LHZhbGlkOnRydWV9fXZhciBlPVszLDIsNyw2LDUsNCwzLDJdO3ZhciByPTA7Zm9yKHZhciBfYT0wO19hPDg7X2ErKyl7cis9ZVtfYV0qcGFyc2VJbnQodC5jaGFyQXQoX2EpLDEwKX12YXIgYT1yJTExO3ZhciBuPVs2LDUsNCwzLDIsMSwxLDAsOSw4LDddW2FdO3ZhciBjPVwiS0pJSEdGRURDQkFcIi5jaGFyQXQoYSk7cmV0dXJue21ldGE6e30sdmFsaWQ6dC5jaGFyQXQoOCk9PT1cIlwiLmNvbmNhdChuKXx8dC5jaGFyQXQoOCk9PT1jfX1mdW5jdGlvbiB0JHEodCl7aWYoIS9eWzAtOV17MTF9JC8udGVzdCh0KSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciBlPTA7dmFyIGE9dC5sZW5ndGg7dmFyIHI9WzEsMyw3LDksMSwzLDcsOSwxLDMsN107Zm9yKHZhciBuPTA7bjxhLTE7bisrKXtlKz1yW25dKnBhcnNlSW50KHQuY2hhckF0KG4pLDEwKX1lPWUlMTA7aWYoZT09PTApe2U9MTB9ZT0xMC1lO3JldHVybnttZXRhOnt9LHZhbGlkOlwiXCIuY29uY2F0KGUpPT09dC5jaGFyQXQoYS0xKX19ZnVuY3Rpb24gZSRrKGUpe2lmKCEvXlswLTldezEzfSQvLnRlc3QoZSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgYT1wYXJzZUludChlLmNoYXJBdCgwKSwxMCk7aWYoYT09PTB8fGE9PT03fHxhPT09OCl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciByPXBhcnNlSW50KGUuc3Vic3RyKDEsMiksMTApO3ZhciBzPXBhcnNlSW50KGUuc3Vic3RyKDMsMiksMTApO3ZhciBuPXBhcnNlSW50KGUuc3Vic3RyKDUsMiksMTApO3ZhciBpPXsxOjE5MDAsMjoxOTAwLDM6MTgwMCw0OjE4MDAsNToyZTMsNjoyZTN9O2lmKG4+MzEmJnM+MTIpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX1pZihhIT09OSl7cj1pW2ErXCJcIl0rcjtpZighdCQ5KHIscyxuKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fX12YXIgbD0wO3ZhciBmPVsyLDcsOSwxLDQsNiwzLDUsOCwyLDcsOV07dmFyIG89ZS5sZW5ndGg7Zm9yKHZhciBfdD0wO190PG8tMTtfdCsrKXtsKz1wYXJzZUludChlLmNoYXJBdChfdCksMTApKmZbX3RdfWw9bCUxMTtpZihsPT09MTApe2w9MX1yZXR1cm57bWV0YTp7fSx2YWxpZDpcIlwiLmNvbmNhdChsKT09PWUuY2hhckF0KG8tMSl9fWZ1bmN0aW9uIHIkOChyKXtyZXR1cm57bWV0YTp7fSx2YWxpZDp0JGcocixcIlJTXCIpfX1mdW5jdGlvbiByJDkocil7aWYoIS9eWzAtOV17MTB9JC8udGVzdChyKSYmIS9eWzAtOV17Nn1bLXwrXVswLTldezR9JC8udGVzdChyKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciBlPXIucmVwbGFjZSgvW14wLTldL2csXCJcIik7dmFyIGE9cGFyc2VJbnQoZS5zdWJzdHIoMCwyKSwxMCkrMTkwMDt2YXIgbj1wYXJzZUludChlLnN1YnN0cigyLDIpLDEwKTt2YXIgaT1wYXJzZUludChlLnN1YnN0cig0LDIpLDEwKTtpZighdCQ5KGEsbixpKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXJldHVybnttZXRhOnt9LHZhbGlkOnQoZSl9fWZ1bmN0aW9uIHIkYShyKXtyZXR1cm57bWV0YTp7fSx2YWxpZDp0JGcocixcIlNJXCIpfX1mdW5jdGlvbiB0JHIodCl7cmV0dXJue21ldGE6e30sdmFsaWQ6L15cXGR7NX0kLy50ZXN0KHQpfX1mdW5jdGlvbiB0JHModCl7aWYodC5sZW5ndGghPT0xMyl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciBlPTA7Zm9yKHZhciBhPTA7YTwxMjthKyspe2UrPXBhcnNlSW50KHQuY2hhckF0KGEpLDEwKSooMTMtYSl9cmV0dXJue21ldGE6e30sdmFsaWQ6KDExLWUlMTEpJTEwPT09cGFyc2VJbnQodC5jaGFyQXQoMTIpLDEwKX19ZnVuY3Rpb24gdCR0KHQpe2lmKHQubGVuZ3RoIT09MTEpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgZT0wO2Zvcih2YXIgYT0wO2E8MTA7YSsrKXtlKz1wYXJzZUludCh0LmNoYXJBdChhKSwxMCl9cmV0dXJue21ldGE6e30sdmFsaWQ6ZSUxMD09PXBhcnNlSW50KHQuY2hhckF0KDEwKSwxMCl9fWZ1bmN0aW9uIHQkdSh0KXt2YXIgZT10LnRvVXBwZXJDYXNlKCk7aWYoIS9eW0EtWl1bMTJdWzAtOV17OH0kLy50ZXN0KGUpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIGE9ZS5sZW5ndGg7dmFyIG49XCJBQkNERUZHSEpLTE1OUFFSU1RVVlhZV1pJT1wiO3ZhciByPW4uaW5kZXhPZihlLmNoYXJBdCgwKSkrMTA7dmFyIG89TWF0aC5mbG9vcihyLzEwKStyJTEwKihhLTEpO3ZhciBzPTA7Zm9yKHZhciBfdD0xO190PGEtMTtfdCsrKXtzKz1wYXJzZUludChlLmNoYXJBdChfdCksMTApKihhLTEtX3QpfXJldHVybnttZXRhOnt9LHZhbGlkOihvK3MrcGFyc2VJbnQoZS5jaGFyQXQoYS0xKSwxMCkpJTEwPT09MH19ZnVuY3Rpb24gdCR2KHQpe2lmKCEvXlxcZHs4fSQvLnRlc3QodCkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgZT1bMiw5LDgsNyw2LDMsNF07dmFyIGE9MDtmb3IodmFyIHI9MDtyPDc7cisrKXthKz1wYXJzZUludCh0LmNoYXJBdChyKSwxMCkqZVtyXX1hPWElMTA7aWYoYT4wKXthPTEwLWF9cmV0dXJue21ldGE6e30sdmFsaWQ6XCJcIi5jb25jYXQoYSk9PT10LmNoYXJBdCg3KX19ZnVuY3Rpb24gciRiKHIpe2lmKCEvXlswLTldezEwfVswfDFdWzh8OV1bMC05XSQvLnRlc3Qocikpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgcz1wYXJzZUludChyLnN1YnN0cigwLDIpLDEwKTt2YXIgYT0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCklMTAwO3ZhciBsPXBhcnNlSW50KHIuc3Vic3RyKDIsMiksMTApO3ZhciBuPXBhcnNlSW50KHIuc3Vic3RyKDQsMiksMTApO3M9cz49YT9zKzE5MDA6cysyZTM7aWYoIXQkOShzLGwsbikpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX1yZXR1cm57bWV0YTp7fSx2YWxpZDp0KHIpfX1mdW5jdGlvbiBGKCl7dmFyIEY9W1wiQVJcIixcIkJBXCIsXCJCR1wiLFwiQlJcIixcIkNIXCIsXCJDTFwiLFwiQ05cIixcIkNPXCIsXCJDWlwiLFwiREtcIixcIkVFXCIsXCJFU1wiLFwiRklcIixcIkZSXCIsXCJIS1wiLFwiSFJcIixcIklEXCIsXCJJRVwiLFwiSUxcIixcIklTXCIsXCJLUlwiLFwiTFRcIixcIkxWXCIsXCJNRVwiLFwiTUtcIixcIk1YXCIsXCJNWVwiLFwiTkxcIixcIk5PXCIsXCJQRVwiLFwiUExcIixcIlJPXCIsXCJSU1wiLFwiU0VcIixcIlNJXCIsXCJTS1wiLFwiU01cIixcIlRIXCIsXCJUUlwiLFwiVFdcIixcIlVZXCIsXCJaQVwiXTtyZXR1cm57dmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoUCl7aWYoUC52YWx1ZT09PVwiXCIpe3JldHVybnt2YWxpZDp0cnVlfX12YXIgWT1PYmplY3QuYXNzaWduKHt9LHttZXNzYWdlOlwiXCJ9LFAub3B0aW9ucyk7dmFyIFo9UC52YWx1ZS5zdWJzdHIoMCwyKTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgWS5jb3VudHJ5KXtaPVkuY291bnRyeS5jYWxsKHRoaXMpfWVsc2V7Wj1ZLmNvdW50cnl9aWYoRi5pbmRleE9mKFopPT09LTEpe3JldHVybnt2YWxpZDp0cnVlfX12YXIgRz17bWV0YTp7fSx2YWxpZDp0cnVlfTtzd2l0Y2goWi50b0xvd2VyQ2FzZSgpKXtjYXNlXCJhclwiOkc9dCRmKFAudmFsdWUpO2JyZWFrO2Nhc2VcImJhXCI6Rz1yJDMoUC52YWx1ZSk7YnJlYWs7Y2FzZVwiYmdcIjpHPWUkYShQLnZhbHVlKTticmVhaztjYXNlXCJiclwiOkc9dCRoKFAudmFsdWUpO2JyZWFrO2Nhc2VcImNoXCI6Rz10JGkoUC52YWx1ZSk7YnJlYWs7Y2FzZVwiY2xcIjpHPWUkYihQLnZhbHVlKTticmVhaztjYXNlXCJjblwiOkc9ciQ0KFAudmFsdWUpO2JyZWFrO2Nhc2VcImNvXCI6Rz10JGooUC52YWx1ZSk7YnJlYWs7Y2FzZVwiY3pcIjpHPWUkYyhQLnZhbHVlKTticmVhaztjYXNlXCJka1wiOkc9ZSRkKFAudmFsdWUpO2JyZWFrO2Nhc2VcImVlXCI6Rz1yJDUoUC52YWx1ZSk7YnJlYWs7Y2FzZVwiZXNcIjpHPXQkayhQLnZhbHVlKTticmVhaztjYXNlXCJmaVwiOkc9cyQzKFAudmFsdWUpO2JyZWFrO2Nhc2VcImZyXCI6Rz10JGwoUC52YWx1ZSk7YnJlYWs7Y2FzZVwiaGtcIjpHPXQkbShQLnZhbHVlKTticmVhaztjYXNlXCJoclwiOkc9byQzKFAudmFsdWUpO2JyZWFrO2Nhc2VcImlkXCI6Rz1lJGUoUC52YWx1ZSk7YnJlYWs7Y2FzZVwiaWVcIjpHPXQkbihQLnZhbHVlKTticmVhaztjYXNlXCJpbFwiOkc9ZSRmKFAudmFsdWUpO2JyZWFrO2Nhc2VcImlzXCI6Rz1lJGcoUC52YWx1ZSk7YnJlYWs7Y2FzZVwia3JcIjpHPWUkaChQLnZhbHVlKTticmVhaztjYXNlXCJsdFwiOkc9ciQ1KFAudmFsdWUpO2JyZWFrO2Nhc2VcImx2XCI6Rz1lJGkoUC52YWx1ZSk7YnJlYWs7Y2FzZVwibWVcIjpHPXIkNihQLnZhbHVlKTticmVhaztjYXNlXCJta1wiOkc9ciQ3KFAudmFsdWUpO2JyZWFrO2Nhc2VcIm14XCI6Rz1PKFAudmFsdWUpO2JyZWFrO2Nhc2VcIm15XCI6Rz1zJDQoUC52YWx1ZSk7YnJlYWs7Y2FzZVwibmxcIjpHPWUkaihQLnZhbHVlKTticmVhaztjYXNlXCJub1wiOkc9dCRvKFAudmFsdWUpO2JyZWFrO2Nhc2VcInBlXCI6Rz10JHAoUC52YWx1ZSk7YnJlYWs7Y2FzZVwicGxcIjpHPXQkcShQLnZhbHVlKTticmVhaztjYXNlXCJyb1wiOkc9ZSRrKFAudmFsdWUpO2JyZWFrO2Nhc2VcInJzXCI6Rz1yJDgoUC52YWx1ZSk7YnJlYWs7Y2FzZVwic2VcIjpHPXIkOShQLnZhbHVlKTticmVhaztjYXNlXCJzaVwiOkc9ciRhKFAudmFsdWUpO2JyZWFrO2Nhc2VcInNrXCI6Rz1lJGMoUC52YWx1ZSk7YnJlYWs7Y2FzZVwic21cIjpHPXQkcihQLnZhbHVlKTticmVhaztjYXNlXCJ0aFwiOkc9dCRzKFAudmFsdWUpO2JyZWFrO2Nhc2VcInRyXCI6Rz10JHQoUC52YWx1ZSk7YnJlYWs7Y2FzZVwidHdcIjpHPXQkdShQLnZhbHVlKTticmVhaztjYXNlXCJ1eVwiOkc9dCR2KFAudmFsdWUpO2JyZWFrO2Nhc2VcInphXCI6Rz1yJGIoUC52YWx1ZSk7YnJlYWt9dmFyIFY9cihQLmwxMG4/WS5tZXNzYWdlfHxQLmwxMG4uaWQuY291bnRyeTpZLm1lc3NhZ2UsUC5sMTBuP1AubDEwbi5pZC5jb3VudHJpZXNbWi50b1VwcGVyQ2FzZSgpXTpaLnRvVXBwZXJDYXNlKCkpO3JldHVybiBPYmplY3QuYXNzaWduKHt9LHttZXNzYWdlOlZ9LEcpfX19ZnVuY3Rpb24gdCR3KCl7cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKHQkMSl7aWYodCQxLnZhbHVlPT09XCJcIil7cmV0dXJue3ZhbGlkOnRydWV9fXN3aXRjaCh0cnVlKXtjYXNlL15cXGR7MTV9JC8udGVzdCh0JDEudmFsdWUpOmNhc2UvXlxcZHsyfS1cXGR7Nn0tXFxkezZ9LVxcZHsxfSQvLnRlc3QodCQxLnZhbHVlKTpjYXNlL15cXGR7Mn1cXHNcXGR7Nn1cXHNcXGR7Nn1cXHNcXGR7MX0kLy50ZXN0KHQkMS52YWx1ZSk6cmV0dXJue3ZhbGlkOnQodCQxLnZhbHVlLnJlcGxhY2UoL1teMC05XS9nLFwiXCIpKX07Y2FzZS9eXFxkezE0fSQvLnRlc3QodCQxLnZhbHVlKTpjYXNlL15cXGR7MTZ9JC8udGVzdCh0JDEudmFsdWUpOmNhc2UvXlxcZHsyfS1cXGR7Nn0tXFxkezZ9KHwtXFxkezJ9KSQvLnRlc3QodCQxLnZhbHVlKTpjYXNlL15cXGR7Mn1cXHNcXGR7Nn1cXHNcXGR7Nn0ofFxcc1xcZHsyfSkkLy50ZXN0KHQkMS52YWx1ZSk6cmV0dXJue3ZhbGlkOnRydWV9O2RlZmF1bHQ6cmV0dXJue3ZhbGlkOmZhbHNlfX19fX1mdW5jdGlvbiBlJGwoKXtyZXR1cm57dmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoZSl7aWYoZS52YWx1ZT09PVwiXCIpe3JldHVybnt2YWxpZDp0cnVlfX1pZighL15JTU8gXFxkezd9JC9pLnRlc3QoZS52YWx1ZSkpe3JldHVybnt2YWxpZDpmYWxzZX19dmFyIHQ9ZS52YWx1ZS5yZXBsYWNlKC9eLiooXFxkezd9KSQvLFwiJDFcIik7dmFyIHI9MDtmb3IodmFyIF9lPTY7X2U+PTE7X2UtLSl7cis9cGFyc2VJbnQodC5zbGljZSg2LV9lLC1fZSksMTApKihfZSsxKX1yZXR1cm57dmFsaWQ6ciUxMD09PXBhcnNlSW50KHQuY2hhckF0KDYpLDEwKX19fX1mdW5jdGlvbiBlJG0oKXtyZXR1cm57dmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoZSl7aWYoZS52YWx1ZT09PVwiXCIpe3JldHVybnttZXRhOnt0eXBlOm51bGx9LHZhbGlkOnRydWV9fXZhciB0O3N3aXRjaCh0cnVlKXtjYXNlL15cXGR7OX1bXFxkWF0kLy50ZXN0KGUudmFsdWUpOmNhc2UgZS52YWx1ZS5sZW5ndGg9PT0xMyYmL14oXFxkKyktKFxcZCspLShcXGQrKS0oW1xcZFhdKSQvLnRlc3QoZS52YWx1ZSk6Y2FzZSBlLnZhbHVlLmxlbmd0aD09PTEzJiYvXihcXGQrKVxccyhcXGQrKVxccyhcXGQrKVxccyhbXFxkWF0pJC8udGVzdChlLnZhbHVlKTp0PVwiSVNCTjEwXCI7YnJlYWs7Y2FzZS9eKDk3OHw5NzkpXFxkezl9W1xcZFhdJC8udGVzdChlLnZhbHVlKTpjYXNlIGUudmFsdWUubGVuZ3RoPT09MTcmJi9eKDk3OHw5NzkpLShcXGQrKS0oXFxkKyktKFxcZCspLShbXFxkWF0pJC8udGVzdChlLnZhbHVlKTpjYXNlIGUudmFsdWUubGVuZ3RoPT09MTcmJi9eKDk3OHw5NzkpXFxzKFxcZCspXFxzKFxcZCspXFxzKFxcZCspXFxzKFtcXGRYXSkkLy50ZXN0KGUudmFsdWUpOnQ9XCJJU0JOMTNcIjticmVhaztkZWZhdWx0OnJldHVybnttZXRhOnt0eXBlOm51bGx9LHZhbGlkOmZhbHNlfX12YXIgYT1lLnZhbHVlLnJlcGxhY2UoL1teMC05WF0vZ2ksXCJcIikuc3BsaXQoXCJcIik7dmFyIGw9YS5sZW5ndGg7dmFyIHM9MDt2YXIgZDt2YXIgdTtzd2l0Y2godCl7Y2FzZVwiSVNCTjEwXCI6cz0wO2ZvcihkPTA7ZDxsLTE7ZCsrKXtzKz1wYXJzZUludChhW2RdLDEwKSooMTAtZCl9dT0xMS1zJTExO2lmKHU9PT0xMSl7dT0wfWVsc2UgaWYodT09PTEwKXt1PVwiWFwifXJldHVybnttZXRhOnt0eXBlOnR9LHZhbGlkOlwiXCIuY29uY2F0KHUpPT09YVtsLTFdfTtjYXNlXCJJU0JOMTNcIjpzPTA7Zm9yKGQ9MDtkPGwtMTtkKyspe3MrPWQlMj09PTA/cGFyc2VJbnQoYVtkXSwxMCk6cGFyc2VJbnQoYVtkXSwxMCkqM311PTEwLXMlMTA7aWYodT09PTEwKXt1PVwiMFwifXJldHVybnttZXRhOnt0eXBlOnR9LHZhbGlkOlwiXCIuY29uY2F0KHUpPT09YVtsLTFdfX19fX1mdW5jdGlvbiBNKCl7dmFyIE09XCJBRnxBWHxBTHxEWnxBU3xBRHxBT3xBSXxBUXxBR3xBUnxBTXxBV3xBVXxBVHxBWnxCU3xCSHxCRHxCQnxCWXxCRXxCWnxCSnxCTXxCVHxCT3xCUXxCQXxCV3xcIitcIkJWfEJSfElPfEJOfEJHfEJGfEJJfEtIfENNfENBfENWfEtZfENGfFREfENMfENOfENYfENDfENPfEtNfENHfENEfENLfENSfENJfEhSfENVfENXfENZfENafERLfERKfERNfERPfEVDfEVHfFwiK1wiU1Z8R1F8RVJ8RUV8RVR8Rkt8Rk98Rkp8Rkl8RlJ8R0Z8UEZ8VEZ8R0F8R018R0V8REV8R0h8R0l8R1J8R0x8R0R8R1B8R1V8R1R8R0d8R058R1d8R1l8SFR8SE18VkF8SE58SEt8SFV8SVN8XCIrXCJJTnxJRHxJUnxJUXxJRXxJTXxJTHxJVHxKTXxKUHxKRXxKT3xLWnxLRXxLSXxLUHxLUnxLV3xLR3xMQXxMVnxMQnxMU3xMUnxMWXxMSXxMVHxMVXxNT3xNS3xNR3xNV3xNWXxNVnxNTHxNVHxcIitcIk1IfE1RfE1SfE1VfFlUfE1YfEZNfE1EfE1DfE1OfE1FfE1TfE1BfE1afE1NfE5BfE5SfE5QfE5MfE5DfE5afE5JfE5FfE5HfE5VfE5GfE1QfE5PfE9NfFBLfFBXfFBTfFBBfFBHfFBZfFBFfFwiK1wiUEh8UE58UEx8UFR8UFJ8UUF8UkV8Uk98UlV8Uld8Qkx8U0h8S058TEN8TUZ8UE18VkN8V1N8U018U1R8U0F8U058UlN8U0N8U0x8U0d8U1h8U0t8U0l8U0J8U098WkF8R1N8U1N8RVN8TEt8XCIrXCJTRHxTUnxTSnxTWnxTRXxDSHxTWXxUV3xUSnxUWnxUSHxUTHxUR3xUS3xUT3xUVHxUTnxUUnxUTXxUQ3xUVnxVR3xVQXxBRXxHQnxVU3xVTXxVWXxVWnxWVXxWRXxWTnxWR3xWSXxXRnxFSHxcIitcIllFfFpNfFpXXCI7cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKHQpe2lmKHQudmFsdWU9PT1cIlwiKXtyZXR1cm57dmFsaWQ6dHJ1ZX19dmFyIFM9dC52YWx1ZS50b1VwcGVyQ2FzZSgpO3ZhciBBPW5ldyBSZWdFeHAoXCJeKFwiK00rXCIpWzAtOUEtWl17MTB9JFwiKTtpZighQS50ZXN0KHQudmFsdWUpKXtyZXR1cm57dmFsaWQ6ZmFsc2V9fXZhciBHPVMubGVuZ3RoO3ZhciBDPVwiXCI7dmFyIFQ7Zm9yKFQ9MDtUPEctMTtUKyspe3ZhciBfTT1TLmNoYXJDb2RlQXQoVCk7Qys9X00+NTc/KF9NLTU1KS50b1N0cmluZygpOlMuY2hhckF0KFQpfXZhciBlPVwiXCI7dmFyIEI9Qy5sZW5ndGg7dmFyIEU9QiUyIT09MD8wOjE7Zm9yKFQ9MDtUPEI7VCsrKXtlKz1wYXJzZUludChDW1RdLDEwKSooVCUyPT09RT8yOjEpK1wiXCJ9dmFyIE49MDtmb3IoVD0wO1Q8ZS5sZW5ndGg7VCsrKXtOKz1wYXJzZUludChlLmNoYXJBdChUKSwxMCl9Tj0oMTAtTiUxMCklMTA7cmV0dXJue3ZhbGlkOlwiXCIuY29uY2F0KE4pPT09Uy5jaGFyQXQoRy0xKX19fX1mdW5jdGlvbiBlJG4oKXtyZXR1cm57dmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoZSl7aWYoZS52YWx1ZT09PVwiXCIpe3JldHVybnttZXRhOm51bGwsdmFsaWQ6dHJ1ZX19dmFyIHQ7c3dpdGNoKHRydWUpe2Nhc2UvXk1cXGR7OX0kLy50ZXN0KGUudmFsdWUpOmNhc2UvXk0tXFxkezR9LVxcZHs0fS1cXGR7MX0kLy50ZXN0KGUudmFsdWUpOmNhc2UvXk1cXHNcXGR7NH1cXHNcXGR7NH1cXHNcXGR7MX0kLy50ZXN0KGUudmFsdWUpOnQ9XCJJU01OMTBcIjticmVhaztjYXNlL145NzkwXFxkezl9JC8udGVzdChlLnZhbHVlKTpjYXNlL145NzktMC1cXGR7NH0tXFxkezR9LVxcZHsxfSQvLnRlc3QoZS52YWx1ZSk6Y2FzZS9eOTc5XFxzMFxcc1xcZHs0fVxcc1xcZHs0fVxcc1xcZHsxfSQvLnRlc3QoZS52YWx1ZSk6dD1cIklTTU4xM1wiO2JyZWFrO2RlZmF1bHQ6cmV0dXJue21ldGE6bnVsbCx2YWxpZDpmYWxzZX19dmFyIGE9ZS52YWx1ZTtpZihcIklTTU4xMFwiPT09dCl7YT1cIjk3OTBcIi5jb25jYXQoYS5zdWJzdHIoMSkpfWE9YS5yZXBsYWNlKC9bXjAtOV0vZ2ksXCJcIik7dmFyIHM9MDt2YXIgbD1hLmxlbmd0aDt2YXIgZD1bMSwzXTtmb3IodmFyIF9lPTA7X2U8bC0xO19lKyspe3MrPXBhcnNlSW50KGEuY2hhckF0KF9lKSwxMCkqZFtfZSUyXX1zPSgxMC1zJTEwKSUxMDtyZXR1cm57bWV0YTp7dHlwZTp0fSx2YWxpZDpcIlwiLmNvbmNhdChzKT09PWEuY2hhckF0KGwtMSl9fX19ZnVuY3Rpb24gZSRvKCl7cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKGUpe2lmKGUudmFsdWU9PT1cIlwiKXtyZXR1cm57dmFsaWQ6dHJ1ZX19aWYoIS9eXFxkezR9LVxcZHszfVtcXGRYXSQvLnRlc3QoZS52YWx1ZSkpe3JldHVybnt2YWxpZDpmYWxzZX19dmFyIHQ9ZS52YWx1ZS5yZXBsYWNlKC9bXjAtOVhdL2dpLFwiXCIpLnNwbGl0KFwiXCIpO3ZhciBsPXQubGVuZ3RoO3ZhciByPTA7aWYodFs3XT09PVwiWFwiKXt0WzddPVwiMTBcIn1mb3IodmFyIF9lPTA7X2U8bDtfZSsrKXtyKz1wYXJzZUludCh0W19lXSwxMCkqKDgtX2UpfXJldHVybnt2YWxpZDpyJTExPT09MH19fX1mdW5jdGlvbiBhJDYoKXtyZXR1cm57dmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoYSl7cmV0dXJue3ZhbGlkOmEudmFsdWU9PT1cIlwifHwvXihbMC05QS1GYS1mXXsyfVs6LV0pezV9KFswLTlBLUZhLWZdezJ9KSQvLnRlc3QoYS52YWx1ZSl8fC9eKFswLTlBLUZhLWZdezR9XFwuKXsyfShbMC05QS1GYS1mXXs0fSkkLy50ZXN0KGEudmFsdWUpfX19fWZ1bmN0aW9uIGUkcCgpe3JldHVybnt2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZShlKXtpZihlLnZhbHVlPT09XCJcIil7cmV0dXJue3ZhbGlkOnRydWV9fXZhciByPWUudmFsdWU7aWYoL15bMC05QS1GXXsxNX0kL2kudGVzdChyKXx8L15bMC05QS1GXXsyfVstIF1bMC05QS1GXXs2fVstIF1bMC05QS1GXXs2fVstIF1bMC05QS1GXSQvaS50ZXN0KHIpfHwvXlxcZHsxOX0kLy50ZXN0KHIpfHwvXlxcZHs1fVstIF1cXGR7NX1bLSBdXFxkezR9Wy0gXVxcZHs0fVstIF1cXGQkLy50ZXN0KHIpKXt2YXIgX2U9ci5jaGFyQXQoci5sZW5ndGgtMSkudG9VcHBlckNhc2UoKTtyPXIucmVwbGFjZSgvWy0gXS9nLFwiXCIpO2lmKHIubWF0Y2goL15cXGQqJC9pKSl7cmV0dXJue3ZhbGlkOnQocil9fXI9ci5zbGljZSgwLC0xKTt2YXIgYT1cIlwiO3ZhciBpO2ZvcihpPTE7aTw9MTM7aSs9Mil7YSs9KHBhcnNlSW50KHIuY2hhckF0KGkpLDE2KSoyKS50b1N0cmluZygxNil9dmFyIGw9MDtmb3IoaT0wO2k8YS5sZW5ndGg7aSsrKXtsKz1wYXJzZUludChhLmNoYXJBdChpKSwxNil9cmV0dXJue3ZhbGlkOmwlMTA9PT0wP19lPT09XCIwXCI6X2U9PT0oKE1hdGguZmxvb3IoKGwrMTApLzEwKSoxMC1sKSoyKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX19aWYoL15bMC05QS1GXXsxNH0kL2kudGVzdChyKXx8L15bMC05QS1GXXsyfVstIF1bMC05QS1GXXs2fVstIF1bMC05QS1GXXs2fSQvaS50ZXN0KHIpfHwvXlxcZHsxOH0kLy50ZXN0KHIpfHwvXlxcZHs1fVstIF1cXGR7NX1bLSBdXFxkezR9Wy0gXVxcZHs0fSQvLnRlc3Qocikpe3JldHVybnt2YWxpZDp0cnVlfX1yZXR1cm57dmFsaWQ6ZmFsc2V9fX19ZnVuY3Rpb24gZSRxKCl7dmFyIGU9W1wiQUVcIixcIkJHXCIsXCJCUlwiLFwiQ05cIixcIkNaXCIsXCJERVwiLFwiREtcIixcIkVTXCIsXCJGUlwiLFwiR0JcIixcIklOXCIsXCJNQVwiLFwiTkxcIixcIlBLXCIsXCJST1wiLFwiUlVcIixcIlNLXCIsXCJUSFwiLFwiVVNcIixcIlZFXCJdO3JldHVybnt2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZSh0KXtpZih0LnZhbHVlPT09XCJcIil7cmV0dXJue3ZhbGlkOnRydWV9fXZhciBhPU9iamVjdC5hc3NpZ24oe30se21lc3NhZ2U6XCJcIn0sdC5vcHRpb25zKTt2YXIgZD10LnZhbHVlLnRyaW0oKTt2YXIgciQxPWQuc3Vic3RyKDAsMik7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEuY291bnRyeSl7ciQxPWEuY291bnRyeS5jYWxsKHRoaXMpfWVsc2V7ciQxPWEuY291bnRyeX1pZighciQxfHxlLmluZGV4T2YociQxLnRvVXBwZXJDYXNlKCkpPT09LTEpe3JldHVybnt2YWxpZDp0cnVlfX12YXIgYz10cnVlO3N3aXRjaChyJDEudG9VcHBlckNhc2UoKSl7Y2FzZVwiQUVcIjpjPS9eKCgoXFwrfDAwKT85NzFbXFxzLi1dPyhcXCgwXFwpW1xccy4tXT8pP3wwKShcXCg1KDB8Mnw1fDYpXFwpfDUoMHwyfDV8Nil8MnwzfDR8Nnw3fDkpfDYwKShbXFxzLi1dP1swLTldKXs3fSQvLnRlc3QoZCk7YnJlYWs7Y2FzZVwiQkdcIjpjPS9eKDB8MzU5fDAwKSgoKDcwMHw5MDApWzAtOV17NX18KCg4MDApWzAtOV17NX18KDgwMClbMC05XXs0fSkpfCg4N3w4OHw4OSkoWzAtOV17N30pfCgoMlswLTldezd9KXwoKFszLTldWzAtOV0pKChbMC05XXs2fSl8KFswLTldezV9KSkpKSkkLy50ZXN0KGQucmVwbGFjZSgvXFwrfFxcc3wtfFxcL3xcXCh8XFwpL2dpLFwiXCIpKTticmVhaztjYXNlXCJCUlwiOmM9L14oKFtcXGRdezR9Wy0uXFxzXXsxfVtcXGRdezIsM31bLS5cXHNdezF9W1xcZF17Mn1bLS5cXHNdezF9W1xcZF17Mn0pfChbXFxkXXs0fVstLlxcc117MX1bXFxkXXszfVstLlxcc117MX1bXFxkXXs0fSl8KChcXCg/XFwrP1swLTldezJ9XFwpP1xccz8pPyhcXCg/XFxkezJ9XFwpP1xccz8pP1xcZHs0LDV9Wy0uXFxzXT9cXGR7NH0pKSQvLnRlc3QoZCk7YnJlYWs7Y2FzZVwiQ05cIjpjPS9eKCgwMHxcXCspPyg4Nig/Oi18ICkpKT8oKFxcZHsxMX0pfChcXGR7M31bLSBdezF9XFxkezR9Wy0gXXsxfVxcZHs0fSl8KChcXGR7Miw0fVstIF0pezF9KFxcZHs3LDh9fChcXGR7Myw0fVstIF17MX1cXGR7NH0pKShbLSBdezF9XFxkezEsNH0pPykpJC8udGVzdChkKTticmVhaztjYXNlXCJDWlwiOmM9L14oKCgwMCkoWy0gXT8pfFxcKykoNDIwKShbLSBdPykpPygoXFxkezN9KShbLSBdPykpezJ9KFxcZHszfSkkLy50ZXN0KGQpO2JyZWFrO2Nhc2VcIkRFXCI6Yz0vXigoKCgoKCgwMHxcXCspNDlbIFxcLS9dPyl8MClbMS05XVswLTldezEsNH0pWyBcXC0vXT8pfCgoKCgwMHxcXCspNDlcXCgpfFxcKDApWzEtOV1bMC05XXsxLDR9XFwpWyBcXC0vXT8pKVswLTldezEsN30oWyBcXC0vXT9bMC05XXsxLDV9KT8pJC8udGVzdChkKTticmVhaztjYXNlXCJES1wiOmM9L14oXFwrNDV8MDA0NXxcXCg0NVxcKSk/XFxzP1syLTldKFxccz9cXGQpezd9JC8udGVzdChkKTticmVhaztjYXNlXCJFU1wiOmM9L14oPzooPzooPzpcXCt8MDApMzRcXEQ/KSk/KD86NXw2fDd8OHw5KSg/OlxcZFxcRD8pezh9JC8udGVzdChkKTticmVhaztjYXNlXCJGUlwiOmM9L14oPzooPzooPzpcXCt8MDApMzNbIF0/KD86XFwoMFxcKVsgXT8pPyl8MCl7MX1bMS05XXsxfShbIC4tXT8pKD86XFxkezJ9XFwxPyl7M31cXGR7Mn0kLy50ZXN0KGQpO2JyZWFrO2Nhc2VcIkdCXCI6Yz0vXlxcKD8oPzooPzowKD86MHwxMSlcXCk/W1xccy1dP1xcKD98XFwrKTQ0XFwpP1tcXHMtXT9cXCg/KD86MFxcKT9bXFxzLV0/XFwoPyk/fDApKD86XFxkezJ9XFwpP1tcXHMtXT9cXGR7NH1bXFxzLV0/XFxkezR9fFxcZHszfVxcKT9bXFxzLV0/XFxkezN9W1xccy1dP1xcZHszLDR9fFxcZHs0fVxcKT9bXFxzLV0/KD86XFxkezV9fFxcZHszfVtcXHMtXT9cXGR7M30pfFxcZHs1fVxcKT9bXFxzLV0/XFxkezQsNX18OCg/OjAwW1xccy1dPzExW1xccy1dPzExfDQ1W1xccy1dPzQ2W1xccy1dPzRcXGQpKSg/Oig/OltcXHMtXT8oPzp4fGV4dFxcLj9cXHM/fCMpXFxkKyk/KSQvLnRlc3QoZCk7YnJlYWs7Y2FzZVwiSU5cIjpjPS8oKFxcKz8pKCgwWyAtXSspKnwoOTEgKSopKFxcZHsxMn18XFxkezEwfSkpfFxcZHs1fShbLSBdKilcXGR7Nn0vLnRlc3QoZCk7YnJlYWs7Y2FzZVwiTUFcIjpjPS9eKD86KD86KD86XFwrfDAwKTIxMltcXHNdPyg/OltcXHNdP1xcKDBcXClbXFxzXT8pPyl8MCl7MX0oPzo1W1xccy4tXT9bMi0zXXw2W1xccy4tXT9bMTMtOV0pezF9WzAtOV17MX0oPzpbXFxzLi1dP1xcZHsyfSl7M30kLy50ZXN0KGQpO2JyZWFrO2Nhc2VcIk5MXCI6Yz0vXigoXFwrfDAwKFxcc3xcXHM/LVxccz8pPykzMShcXHN8XFxzPy1cXHM/KT8oXFwoMFxcKVstXFxzXT8pP3wwKVsxLTldKChcXHN8XFxzPy1cXHM/KT9bMC05XSkoKFxcc3xcXHM/LVxccz8pP1swLTldKSgoXFxzfFxccz8tXFxzPyk/WzAtOV0pXFxzP1swLTldXFxzP1swLTldXFxzP1swLTldXFxzP1swLTldXFxzP1swLTldJC9nbS50ZXN0KGQpO2JyZWFrO2Nhc2VcIlBLXCI6Yz0vXjA/M1swLTldezJ9WzAtOV17N30kLy50ZXN0KGQpO2JyZWFrO2Nhc2VcIlJPXCI6Yz0vXihcXCs0fCk/KDA3WzAtOF17MX1bMC05XXsxfXwwMlswLTldezJ9fDAzWzAtOV17Mn0pezF9PyhcXHN8XFwufC0pPyhbMC05XXszfShcXHN8XFwufC18KSl7Mn0kL2cudGVzdChkKTticmVhaztjYXNlXCJSVVwiOmM9L14oKDh8XFwrN3wwMDcpWy0uLyBdPyk/KFsoLy5dP1xcZHszfVspLy5dP1stLi8gXT8pP1tcXGRcXC0uLyBdezcsMTB9JC9nLnRlc3QoZCk7YnJlYWs7Y2FzZVwiU0tcIjpjPS9eKCgoMDApKFstIF0/KXxcXCspKDQyMSkoWy0gXT8pKT8oKFxcZHszfSkoWy0gXT8pKXsyfShcXGR7M30pJC8udGVzdChkKTticmVhaztjYXNlXCJUSFwiOmM9L14wXFwoPyhbNnw4LTldezJ9KSotKFswLTldezN9KSotKFswLTldezR9KSQvLnRlc3QoZCk7YnJlYWs7Y2FzZVwiVkVcIjpjPS9eMCg/OjIoPzoxMnw0WzAtOV18NVsxLTldfDZbMC05XXw3WzAtOF18OFsxLTM1LThdfDlbMS01XXwzWzQ1Nzg5XSl8NCg/OjFbMjQ2XXwyWzQ2XSkpXFxkezd9JC8udGVzdChkKTticmVhaztjYXNlXCJVU1wiOmRlZmF1bHQ6Yz0vXig/OigxLT8pfChcXCsxID8pKT9cXCg/XFxkezN9XFwpP1stLlxcc10/XFxkezN9Wy0uXFxzXT9cXGR7NH0kLy50ZXN0KGQpO2JyZWFrfXJldHVybnttZXNzYWdlOnIodC5sMTBuP2EubWVzc2FnZXx8dC5sMTBuLnBob25lLmNvdW50cnk6YS5tZXNzYWdlLHQubDEwbj90LmwxMG4ucGhvbmUuY291bnRyaWVzW3IkMV06ciQxKSx2YWxpZDpjfX19fWZ1bmN0aW9uIGUkcigpe3JldHVybnt2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZShlKXtpZihlLnZhbHVlPT09XCJcIil7cmV0dXJue3ZhbGlkOnRydWV9fWlmKCEvXlxcZHs5fSQvLnRlc3QoZS52YWx1ZSkpe3JldHVybnt2YWxpZDpmYWxzZX19dmFyIHQ9MDtmb3IodmFyIGE9MDthPGUudmFsdWUubGVuZ3RoO2ErPTMpe3QrPXBhcnNlSW50KGUudmFsdWUuY2hhckF0KGEpLDEwKSozK3BhcnNlSW50KGUudmFsdWUuY2hhckF0KGErMSksMTApKjcrcGFyc2VJbnQoZS52YWx1ZS5jaGFyQXQoYSsyKSwxMCl9cmV0dXJue3ZhbGlkOnQhPT0wJiZ0JTEwPT09MH19fX1mdW5jdGlvbiB0JHgoKXtyZXR1cm57dmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUodCl7aWYodC52YWx1ZT09PVwiXCIpe3JldHVybnt2YWxpZDp0cnVlfX12YXIgZT10LnZhbHVlLnRvVXBwZXJDYXNlKCk7aWYoIS9eWzAtOUEtWl17N30kLy50ZXN0KGUpKXtyZXR1cm57dmFsaWQ6ZmFsc2V9fXZhciByPVsxLDMsMSw3LDMsOSwxXTt2YXIgYT1lLmxlbmd0aDt2YXIgbD0wO2Zvcih2YXIgX3Q9MDtfdDxhLTE7X3QrKyl7bCs9cltfdF0qcGFyc2VJbnQoZS5jaGFyQXQoX3QpLDM2KX1sPSgxMC1sJTEwKSUxMDtyZXR1cm57dmFsaWQ6XCJcIi5jb25jYXQobCk9PT1lLmNoYXJBdChhLTEpfX19fWZ1bmN0aW9uIGUkcygpe3JldHVybnt2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZShlKXtyZXR1cm57dmFsaWQ6ZS52YWx1ZT09PVwiXCJ8fC9eXFxkezl9JC8udGVzdChlLnZhbHVlKSYmdChlLnZhbHVlKX19fX1mdW5jdGlvbiBlJHQoKXtyZXR1cm57dmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoZSl7aWYoZS52YWx1ZT09PVwiXCIpe3JldHVybnt2YWxpZDp0cnVlfX12YXIgdD1lLnZhbHVlLmxlbmd0aDt2YXIgbD0wO3ZhciByO2Zvcih2YXIgYT0wO2E8dDthKyspe3I9cGFyc2VJbnQoZS52YWx1ZS5jaGFyQXQoYSksMTApO2lmKGElMj09PTApe3I9cioyO2lmKHI+OSl7ci09OX19bCs9cn1yZXR1cm57dmFsaWQ6bCUxMD09PTB9fX19ZnVuY3Rpb24gZSR1KCl7dmFyIGU9ZnVuY3Rpb24gZSh0LF9lKXt2YXIgcz1NYXRoLnBvdygxMCxfZSk7dmFyIGE9dCpzO3ZhciBuO3N3aXRjaCh0cnVlKXtjYXNlIGE9PT0wOm49MDticmVhaztjYXNlIGE+MDpuPTE7YnJlYWs7Y2FzZSBhPDA6bj0tMTticmVha312YXIgcj1hJTE9PT0uNSpuO3JldHVybiByPyhNYXRoLmZsb29yKGEpKyhuPjA/MTowKSkvczpNYXRoLnJvdW5kKGEpL3N9O3ZhciBzPWZ1bmN0aW9uIHModCxfcyl7aWYoX3M9PT0wKXtyZXR1cm4gMX12YXIgYT1cIlwiLmNvbmNhdCh0KS5zcGxpdChcIi5cIik7dmFyIG49XCJcIi5jb25jYXQoX3MpLnNwbGl0KFwiLlwiKTt2YXIgcj0oYS5sZW5ndGg9PT0xPzA6YVsxXS5sZW5ndGgpKyhuLmxlbmd0aD09PTE/MDpuWzFdLmxlbmd0aCk7cmV0dXJuIGUodC1fcypNYXRoLmZsb29yKHQvX3MpLHIpfTtyZXR1cm57dmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoZSl7aWYoZS52YWx1ZT09PVwiXCIpe3JldHVybnt2YWxpZDp0cnVlfX12YXIgYT1wYXJzZUZsb2F0KGUudmFsdWUpO2lmKGlzTmFOKGEpfHwhaXNGaW5pdGUoYSkpe3JldHVybnt2YWxpZDpmYWxzZX19dmFyIG49T2JqZWN0LmFzc2lnbih7fSx7YmFzZVZhbHVlOjAsbWVzc2FnZTpcIlwiLHN0ZXA6MX0sZS5vcHRpb25zKTt2YXIgciQxPXMoYS1uLmJhc2VWYWx1ZSxuLnN0ZXApO3JldHVybnttZXNzYWdlOnIoZS5sMTBuP24ubWVzc2FnZXx8ZS5sMTBuLnN0ZXBbXCJkZWZhdWx0XCJdOm4ubWVzc2FnZSxcIlwiLmNvbmNhdChuLnN0ZXApKSx2YWxpZDpyJDE9PT0wfHxyJDE9PT1uLnN0ZXB9fX19ZnVuY3Rpb24gcyQ1KCl7cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKHMpe2lmKHMudmFsdWU9PT1cIlwiKXtyZXR1cm57dmFsaWQ6dHJ1ZX19dmFyIEE9T2JqZWN0LmFzc2lnbih7fSx7bWVzc2FnZTpcIlwifSxzLm9wdGlvbnMpO3ZhciBpPXszOi9eWzAtOUEtRl17OH0tWzAtOUEtRl17NH0tM1swLTlBLUZdezN9LVswLTlBLUZdezR9LVswLTlBLUZdezEyfSQvaSw0Oi9eWzAtOUEtRl17OH0tWzAtOUEtRl17NH0tNFswLTlBLUZdezN9LVs4OUFCXVswLTlBLUZdezN9LVswLTlBLUZdezEyfSQvaSw1Oi9eWzAtOUEtRl17OH0tWzAtOUEtRl17NH0tNVswLTlBLUZdezN9LVs4OUFCXVswLTlBLUZdezN9LVswLTlBLUZdezEyfSQvaSxhbGw6L15bMC05QS1GXXs4fS1bMC05QS1GXXs0fS1bMC05QS1GXXs0fS1bMC05QS1GXXs0fS1bMC05QS1GXXsxMn0kL2l9O3ZhciBuPUEudmVyc2lvbj9cIlwiLmNvbmNhdChBLnZlcnNpb24pOlwiYWxsXCI7cmV0dXJue21lc3NhZ2U6QS52ZXJzaW9uP3Iocy5sMTBuP0EubWVzc2FnZXx8cy5sMTBuLnV1aWQudmVyc2lvbjpBLm1lc3NhZ2UsQS52ZXJzaW9uKTpzLmwxMG4/cy5sMTBuLnV1aWRbXCJkZWZhdWx0XCJdOkEubWVzc2FnZSx2YWxpZDpudWxsPT09aVtuXT90cnVlOmlbbl0udGVzdChzLnZhbHVlKX19fX1mdW5jdGlvbiB0JHkodCl7dmFyIGU9dC5yZXBsYWNlKFwiLVwiLFwiXCIpO2lmKC9eQVJbMC05XXsxMX0kLy50ZXN0KGUpKXtlPWUuc3Vic3RyKDIpfWlmKCEvXlswLTldezExfSQvLnRlc3QoZSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgcj1bNSw0LDMsMiw3LDYsNSw0LDMsMl07dmFyIGE9MDtmb3IodmFyIF90PTA7X3Q8MTA7X3QrKyl7YSs9cGFyc2VJbnQoZS5jaGFyQXQoX3QpLDEwKSpyW190XX1hPTExLWElMTE7aWYoYT09PTExKXthPTB9cmV0dXJue21ldGE6e30sdmFsaWQ6XCJcIi5jb25jYXQoYSk9PT1lLnN1YnN0cigxMCl9fWZ1bmN0aW9uIHQkeih0KXt2YXIgZT10O2lmKC9eQVRVWzAtOV17OH0kLy50ZXN0KGUpKXtlPWUuc3Vic3RyKDIpfWlmKCEvXlVbMC05XXs4fSQvLnRlc3QoZSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX1lPWUuc3Vic3RyKDEpO3ZhciByPVsxLDIsMSwyLDEsMiwxXTt2YXIgcz0wO3ZhciBhPTA7Zm9yKHZhciBfdD0wO190PDc7X3QrKyl7YT1wYXJzZUludChlLmNoYXJBdChfdCksMTApKnJbX3RdO2lmKGE+OSl7YT1NYXRoLmZsb29yKGEvMTApK2ElMTB9cys9YX1zPTEwLShzKzQpJTEwO2lmKHM9PT0xMCl7cz0wfXJldHVybnttZXRhOnt9LHZhbGlkOlwiXCIuY29uY2F0KHMpPT09ZS5zdWJzdHIoNywxKX19ZnVuY3Rpb24gdCRBKHQpe3ZhciBlPXQ7aWYoL15CRVswXT9bMC05XXs5fSQvLnRlc3QoZSkpe2U9ZS5zdWJzdHIoMil9aWYoIS9eWzBdP1swLTldezl9JC8udGVzdChlKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fWlmKGUubGVuZ3RoPT09OSl7ZT1cIjBcIi5jb25jYXQoZSl9aWYoZS5zdWJzdHIoMSwxKT09PVwiMFwiKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIHM9cGFyc2VJbnQoZS5zdWJzdHIoMCw4KSwxMCkrcGFyc2VJbnQoZS5zdWJzdHIoOCwyKSwxMCk7cmV0dXJue21ldGE6e30sdmFsaWQ6cyU5Nz09PTB9fWZ1bmN0aW9uIHIkYyhyKXt2YXIgZT1yO2lmKC9eQkdbMC05XXs5LDEwfSQvLnRlc3QoZSkpe2U9ZS5zdWJzdHIoMil9aWYoIS9eWzAtOV17OSwxMH0kLy50ZXN0KGUpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIHM9MDt2YXIgbj0wO2lmKGUubGVuZ3RoPT09OSl7Zm9yKG49MDtuPDg7bisrKXtzKz1wYXJzZUludChlLmNoYXJBdChuKSwxMCkqKG4rMSl9cz1zJTExO2lmKHM9PT0xMCl7cz0wO2ZvcihuPTA7bjw4O24rKyl7cys9cGFyc2VJbnQoZS5jaGFyQXQobiksMTApKihuKzMpfXM9cyUxMX1zPXMlMTA7cmV0dXJue21ldGE6e30sdmFsaWQ6XCJcIi5jb25jYXQocyk9PT1lLnN1YnN0cig4KX19ZWxzZXt2YXIgX3I9ZnVuY3Rpb24gX3Iocil7dmFyIGU9cGFyc2VJbnQoci5zdWJzdHIoMCwyKSwxMCkrMTkwMDt2YXIgcz1wYXJzZUludChyLnN1YnN0cigyLDIpLDEwKTt2YXIgbj1wYXJzZUludChyLnN1YnN0cig0LDIpLDEwKTtpZihzPjQwKXtlKz0xMDA7cy09NDB9ZWxzZSBpZihzPjIwKXtlLT0xMDA7cy09MjB9aWYoIXQkOShlLHMsbikpe3JldHVybiBmYWxzZX12YXIgYT1bMiw0LDgsNSwxMCw5LDcsMyw2XTt2YXIgbD0wO2Zvcih2YXIgX3Q9MDtfdDw5O190Kyspe2wrPXBhcnNlSW50KHIuY2hhckF0KF90KSwxMCkqYVtfdF19bD1sJTExJTEwO3JldHVyblwiXCIuY29uY2F0KGwpPT09ci5zdWJzdHIoOSwxKX07dmFyIF9zPWZ1bmN0aW9uIF9zKHQpe3ZhciByPVsyMSwxOSwxNywxMywxMSw5LDcsMywxXTt2YXIgZT0wO2Zvcih2YXIgX3MyPTA7X3MyPDk7X3MyKyspe2UrPXBhcnNlSW50KHQuY2hhckF0KF9zMiksMTApKnJbX3MyXX1lPWUlMTA7cmV0dXJuXCJcIi5jb25jYXQoZSk9PT10LnN1YnN0cig5LDEpfTt2YXIgX249ZnVuY3Rpb24gX24odCl7dmFyIHI9WzQsMywyLDcsNiw1LDQsMywyXTt2YXIgZT0wO2Zvcih2YXIgX3MzPTA7X3MzPDk7X3MzKyspe2UrPXBhcnNlSW50KHQuY2hhckF0KF9zMyksMTApKnJbX3MzXX1lPTExLWUlMTE7aWYoZT09PTEwKXtyZXR1cm4gZmFsc2V9aWYoZT09PTExKXtlPTB9cmV0dXJuXCJcIi5jb25jYXQoZSk9PT10LnN1YnN0cig5LDEpfTtyZXR1cm57bWV0YTp7fSx2YWxpZDpfcihlKXx8X3MoZSl8fF9uKGUpfX19ZnVuY3Rpb24gdCRCKHQpe2lmKHQ9PT1cIlwiKXtyZXR1cm57bWV0YTp7fSx2YWxpZDp0cnVlfX12YXIgZT10LnJlcGxhY2UoL1teXFxkXSsvZyxcIlwiKTtpZihlPT09XCJcInx8ZS5sZW5ndGghPT0xNCl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fWlmKGU9PT1cIjAwMDAwMDAwMDAwMDAwXCJ8fGU9PT1cIjExMTExMTExMTExMTExXCJ8fGU9PT1cIjIyMjIyMjIyMjIyMjIyXCJ8fGU9PT1cIjMzMzMzMzMzMzMzMzMzXCJ8fGU9PT1cIjQ0NDQ0NDQ0NDQ0NDQ0XCJ8fGU9PT1cIjU1NTU1NTU1NTU1NTU1XCJ8fGU9PT1cIjY2NjY2NjY2NjY2NjY2XCJ8fGU9PT1cIjc3Nzc3Nzc3Nzc3Nzc3XCJ8fGU9PT1cIjg4ODg4ODg4ODg4ODg4XCJ8fGU9PT1cIjk5OTk5OTk5OTk5OTk5XCIpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgcj1lLmxlbmd0aC0yO3ZhciBhPWUuc3Vic3RyaW5nKDAscik7dmFyIGw9ZS5zdWJzdHJpbmcocik7dmFyIG49MDt2YXIgaT1yLTc7dmFyIHM7Zm9yKHM9cjtzPj0xO3MtLSl7bis9cGFyc2VJbnQoYS5jaGFyQXQoci1zKSwxMCkqaS0tO2lmKGk8Mil7aT05fX12YXIgZj1uJTExPDI/MDoxMS1uJTExO2lmKGYhPT1wYXJzZUludChsLmNoYXJBdCgwKSwxMCkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX1yPXIrMTthPWUuc3Vic3RyaW5nKDAscik7bj0wO2k9ci03O2ZvcihzPXI7cz49MTtzLS0pe24rPXBhcnNlSW50KGEuY2hhckF0KHItcyksMTApKmktLTtpZihpPDIpe2k9OX19Zj1uJTExPDI/MDoxMS1uJTExO3JldHVybnttZXRhOnt9LHZhbGlkOmY9PT1wYXJzZUludChsLmNoYXJBdCgxKSwxMCl9fWZ1bmN0aW9uIHQkQyh0KXt2YXIgZT10O2lmKC9eQ0hFWzAtOV17OX0oTVdTVHxUVkF8SVZBfFRQVik/JC8udGVzdChlKSl7ZT1lLnN1YnN0cigyKX1pZighL15FWzAtOV17OX0oTVdTVHxUVkF8SVZBfFRQVik/JC8udGVzdChlKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fWU9ZS5zdWJzdHIoMSk7dmFyIHI9WzUsNCwzLDIsNyw2LDUsNF07dmFyIHM9MDtmb3IodmFyIF90PTA7X3Q8ODtfdCsrKXtzKz1wYXJzZUludChlLmNoYXJBdChfdCksMTApKnJbX3RdfXM9MTEtcyUxMTtpZihzPT09MTApe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX1pZihzPT09MTEpe3M9MH1yZXR1cm57bWV0YTp7fSx2YWxpZDpcIlwiLmNvbmNhdChzKT09PWUuc3Vic3RyKDgsMSl9fWZ1bmN0aW9uIHQkRCh0KXt2YXIgZT10O2lmKC9eQ1lbMC01fDldWzAtOV17N31bQS1aXSQvLnRlc3QoZSkpe2U9ZS5zdWJzdHIoMil9aWYoIS9eWzAtNXw5XVswLTldezd9W0EtWl0kLy50ZXN0KGUpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19aWYoZS5zdWJzdHIoMCwyKT09PVwiMTJcIil7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciByPTA7dmFyIHM9ezA6MSwxOjAsMjo1LDM6Nyw0OjksNToxMyw2OjE1LDc6MTcsODoxOSw5OjIxfTtmb3IodmFyIF90PTA7X3Q8ODtfdCsrKXt2YXIgYT1wYXJzZUludChlLmNoYXJBdChfdCksMTApO2lmKF90JTI9PT0wKXthPXNbXCJcIi5jb25jYXQoYSldfXIrPWF9cmV0dXJue21ldGE6e30sdmFsaWQ6XCJcIi5jb25jYXQoXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWlwiW3IlMjZdKT09PWUuc3Vic3RyKDgsMSl9fWZ1bmN0aW9uIGUkdihlKXt2YXIgcj1lO2lmKC9eQ1pbMC05XXs4LDEwfSQvLnRlc3Qocikpe3I9ci5zdWJzdHIoMil9aWYoIS9eWzAtOV17OCwxMH0kLy50ZXN0KHIpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIGE9MDt2YXIgcz0wO2lmKHIubGVuZ3RoPT09OCl7aWYoXCJcIi5jb25jYXQoci5jaGFyQXQoMCkpPT09XCI5XCIpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX1hPTA7Zm9yKHM9MDtzPDc7cysrKXthKz1wYXJzZUludChyLmNoYXJBdChzKSwxMCkqKDgtcyl9YT0xMS1hJTExO2lmKGE9PT0xMCl7YT0wfWlmKGE9PT0xMSl7YT0xfXJldHVybnttZXRhOnt9LHZhbGlkOlwiXCIuY29uY2F0KGEpPT09ci5zdWJzdHIoNywxKX19ZWxzZSBpZihyLmxlbmd0aD09PTkmJlwiXCIuY29uY2F0KHIuY2hhckF0KDApKT09PVwiNlwiKXthPTA7Zm9yKHM9MDtzPDc7cysrKXthKz1wYXJzZUludChyLmNoYXJBdChzKzEpLDEwKSooOC1zKX1hPTExLWElMTE7aWYoYT09PTEwKXthPTB9aWYoYT09PTExKXthPTF9YT1bOCw3LDYsNSw0LDMsMiwxLDAsOSwxMF1bYS0xXTtyZXR1cm57bWV0YTp7fSx2YWxpZDpcIlwiLmNvbmNhdChhKT09PXIuc3Vic3RyKDgsMSl9fWVsc2UgaWYoci5sZW5ndGg9PT05fHxyLmxlbmd0aD09PTEwKXt2YXIgX2U9MTkwMCtwYXJzZUludChyLnN1YnN0cigwLDIpLDEwKTt2YXIgX2E9cGFyc2VJbnQoci5zdWJzdHIoMiwyKSwxMCklNTAlMjA7dmFyIF9zPXBhcnNlSW50KHIuc3Vic3RyKDQsMiksMTApO2lmKHIubGVuZ3RoPT09OSl7aWYoX2U+PTE5ODApe19lLT0xMDB9aWYoX2U+MTk1Myl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fX1lbHNlIGlmKF9lPDE5NTQpe19lKz0xMDB9aWYoIXQkOShfZSxfYSxfcykpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX1pZihyLmxlbmd0aD09PTEwKXt2YXIgX3Q9cGFyc2VJbnQoci5zdWJzdHIoMCw5KSwxMCklMTE7aWYoX2U8MTk4NSl7X3Q9X3QlMTB9cmV0dXJue21ldGE6e30sdmFsaWQ6XCJcIi5jb25jYXQoX3QpPT09ci5zdWJzdHIoOSwxKX19cmV0dXJue21ldGE6e30sdmFsaWQ6dHJ1ZX19cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fWZ1bmN0aW9uIGUkdyhlKXt2YXIgcj1lO2lmKC9eREVbMC05XXs5fSQvLnRlc3Qocikpe3I9ci5zdWJzdHIoMil9aWYoIS9eWzAtOV17OX0kLy50ZXN0KHIpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19cmV0dXJue21ldGE6e30sdmFsaWQ6dCQxKHIpfX1mdW5jdGlvbiB0JEUodCl7dmFyIGU9dDtpZigvXkRLWzAtOV17OH0kLy50ZXN0KGUpKXtlPWUuc3Vic3RyKDIpfWlmKCEvXlswLTldezh9JC8udGVzdChlKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciByPTA7dmFyIGE9WzIsNyw2LDUsNCwzLDIsMV07Zm9yKHZhciBfdD0wO190PDg7X3QrKyl7cis9cGFyc2VJbnQoZS5jaGFyQXQoX3QpLDEwKSphW190XX1yZXR1cm57bWV0YTp7fSx2YWxpZDpyJTExPT09MH19ZnVuY3Rpb24gdCRGKHQpe3ZhciBlPXQ7aWYoL15FRVswLTldezl9JC8udGVzdChlKSl7ZT1lLnN1YnN0cigyKX1pZighL15bMC05XXs5fSQvLnRlc3QoZSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgcj0wO3ZhciBhPVszLDcsMSwzLDcsMSwzLDcsMV07Zm9yKHZhciBfdD0wO190PDk7X3QrKyl7cis9cGFyc2VJbnQoZS5jaGFyQXQoX3QpLDEwKSphW190XX1yZXR1cm57bWV0YTp7fSx2YWxpZDpyJTEwPT09MH19ZnVuY3Rpb24gdCRHKHQpe3ZhciBlPXQ7aWYoL15FU1swLTlBLVpdWzAtOV17N31bMC05QS1aXSQvLnRlc3QoZSkpe2U9ZS5zdWJzdHIoMil9aWYoIS9eWzAtOUEtWl1bMC05XXs3fVswLTlBLVpdJC8udGVzdChlKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciBzPWZ1bmN0aW9uIHModCl7dmFyIGU9cGFyc2VJbnQodC5zdWJzdHIoMCw4KSwxMCk7cmV0dXJuXCJcIi5jb25jYXQoXCJUUldBR01ZRlBEWEJOSlpTUVZITENLRVwiW2UlMjNdKT09PXQuc3Vic3RyKDgsMSl9O3ZhciByPWZ1bmN0aW9uIHIodCl7dmFyIGU9W1wiWFlaXCIuaW5kZXhPZih0LmNoYXJBdCgwKSksdC5zdWJzdHIoMSldLmpvaW4oXCJcIik7dmFyIHM9XCJUUldBR01ZRlBEWEJOSlpTUVZITENLRVwiW3BhcnNlSW50KGUsMTApJTIzXTtyZXR1cm5cIlwiLmNvbmNhdChzKT09PXQuc3Vic3RyKDgsMSl9O3ZhciBuPWZ1bmN0aW9uIG4odCl7dmFyIGU9dC5jaGFyQXQoMCk7dmFyIHM7aWYoXCJLTE1cIi5pbmRleE9mKGUpIT09LTEpe3M9cGFyc2VJbnQodC5zdWJzdHIoMSw4KSwxMCk7cz1cIlRSV0FHTVlGUERYQk5KWlNRVkhMQ0tFXCJbcyUyM107cmV0dXJuXCJcIi5jb25jYXQocyk9PT10LnN1YnN0cig4LDEpfWVsc2UgaWYoXCJBQkNERUZHSEpOUFFSU1VWV1wiLmluZGV4T2YoZSkhPT0tMSl7dmFyIF9lPVsyLDEsMiwxLDIsMSwyXTt2YXIgX3M9MDt2YXIgX3I9MDtmb3IodmFyIF9uPTA7X248NztfbisrKXtfcj1wYXJzZUludCh0LmNoYXJBdChfbisxKSwxMCkqX2VbX25dO2lmKF9yPjkpe19yPU1hdGguZmxvb3IoX3IvMTApK19yJTEwfV9zKz1fcn1fcz0xMC1fcyUxMDtpZihfcz09PTEwKXtfcz0wfXJldHVyblwiXCIuY29uY2F0KF9zKT09PXQuc3Vic3RyKDgsMSl8fFwiSkFCQ0RFRkdISVwiW19zXT09PXQuc3Vic3RyKDgsMSl9cmV0dXJuIGZhbHNlfTt2YXIgYT1lLmNoYXJBdCgwKTtpZigvXlswLTldJC8udGVzdChhKSl7cmV0dXJue21ldGE6e3R5cGU6XCJETklcIn0sdmFsaWQ6cyhlKX19ZWxzZSBpZigvXltYWVpdJC8udGVzdChhKSl7cmV0dXJue21ldGE6e3R5cGU6XCJOSUVcIn0sdmFsaWQ6cihlKX19ZWxzZXtyZXR1cm57bWV0YTp7dHlwZTpcIkNJRlwifSx2YWxpZDpuKGUpfX19ZnVuY3Rpb24gdCRIKHQpe3ZhciBlPXQ7aWYoL15GSVswLTldezh9JC8udGVzdChlKSl7ZT1lLnN1YnN0cigyKX1pZighL15bMC05XXs4fSQvLnRlc3QoZSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgcj1bNyw5LDEwLDUsOCw0LDIsMV07dmFyIGE9MDtmb3IodmFyIF90PTA7X3Q8ODtfdCsrKXthKz1wYXJzZUludChlLmNoYXJBdChfdCksMTApKnJbX3RdfXJldHVybnttZXRhOnt9LHZhbGlkOmElMTE9PT0wfX1mdW5jdGlvbiBlJHgoZSl7dmFyIHI9ZTtpZigvXkZSWzAtOUEtWl17Mn1bMC05XXs5fSQvLnRlc3Qocikpe3I9ci5zdWJzdHIoMil9aWYoIS9eWzAtOUEtWl17Mn1bMC05XXs5fSQvLnRlc3Qocikpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX1pZihyLnN1YnN0cigyLDQpIT09XCIwMDBcIil7cmV0dXJue21ldGE6e30sdmFsaWQ6dChyLnN1YnN0cigyKSl9fWlmKC9eWzAtOV17Mn0kLy50ZXN0KHIuc3Vic3RyKDAsMikpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpyLnN1YnN0cigwLDIpPT09XCJcIi5jb25jYXQocGFyc2VJbnQoci5zdWJzdHIoMikrXCIxMlwiLDEwKSU5Nyl9fWVsc2V7dmFyIF90PVwiMDEyMzQ1Njc4OUFCQ0RFRkdISktMTU5QUVJTVFVWV1hZWlwiO3ZhciBfZTtpZigvXlswLTldJC8udGVzdChyLmNoYXJBdCgwKSkpe19lPV90LmluZGV4T2Yoci5jaGFyQXQoMCkpKjI0K190LmluZGV4T2Yoci5jaGFyQXQoMSkpLTEwfWVsc2V7X2U9X3QuaW5kZXhPZihyLmNoYXJBdCgwKSkqMzQrX3QuaW5kZXhPZihyLmNoYXJBdCgxKSktMTAwfXJldHVybnttZXRhOnt9LHZhbGlkOihwYXJzZUludChyLnN1YnN0cigyKSwxMCkrMStNYXRoLmZsb29yKF9lLzExKSklMTE9PT1fZSUxMX19fWZ1bmN0aW9uIHQkSSh0KXt2YXIgcz10O2lmKC9eR0JbMC05XXs5fSQvLnRlc3Qocyl8fC9eR0JbMC05XXsxMn0kLy50ZXN0KHMpfHwvXkdCR0RbMC05XXszfSQvLnRlc3Qocyl8fC9eR0JIQVswLTldezN9JC8udGVzdChzKXx8L15HQihHRHxIQSk4ODg4WzAtOV17NX0kLy50ZXN0KHMpKXtzPXMuc3Vic3RyKDIpfWlmKCEvXlswLTldezl9JC8udGVzdChzKSYmIS9eWzAtOV17MTJ9JC8udGVzdChzKSYmIS9eR0RbMC05XXszfSQvLnRlc3QocykmJiEvXkhBWzAtOV17M30kLy50ZXN0KHMpJiYhL14oR0R8SEEpODg4OFswLTldezV9JC8udGVzdChzKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciBlPXMubGVuZ3RoO2lmKGU9PT01KXt2YXIgX3Q9cy5zdWJzdHIoMCwyKTt2YXIgX2U9cGFyc2VJbnQocy5zdWJzdHIoMiksMTApO3JldHVybnttZXRhOnt9LHZhbGlkOlwiR0RcIj09PV90JiZfZTw1MDB8fFwiSEFcIj09PV90JiZfZT49NTAwfX1lbHNlIGlmKGU9PT0xMSYmKFwiR0Q4ODg4XCI9PT1zLnN1YnN0cigwLDYpfHxcIkhBODg4OFwiPT09cy5zdWJzdHIoMCw2KSkpe2lmKFwiR0RcIj09PXMuc3Vic3RyKDAsMikmJnBhcnNlSW50KHMuc3Vic3RyKDYsMyksMTApPj01MDB8fFwiSEFcIj09PXMuc3Vic3RyKDAsMikmJnBhcnNlSW50KHMuc3Vic3RyKDYsMyksMTApPDUwMCl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXJldHVybnttZXRhOnt9LHZhbGlkOnBhcnNlSW50KHMuc3Vic3RyKDYsMyksMTApJTk3PT09cGFyc2VJbnQocy5zdWJzdHIoOSwyKSwxMCl9fWVsc2UgaWYoZT09PTl8fGU9PT0xMil7dmFyIF90Mj1bOCw3LDYsNSw0LDMsMiwxMCwxXTt2YXIgX2UyPTA7Zm9yKHZhciBfcj0wO19yPDk7X3IrKyl7X2UyKz1wYXJzZUludChzLmNoYXJBdChfciksMTApKl90Mltfcl19X2UyPV9lMiU5Nzt2YXIgcj1wYXJzZUludChzLnN1YnN0cigwLDMpLDEwKT49MTAwP19lMj09PTB8fF9lMj09PTQyfHxfZTI9PT01NTpfZTI9PT0wO3JldHVybnttZXRhOnt9LHZhbGlkOnJ9fXJldHVybnttZXRhOnt9LHZhbGlkOnRydWV9fWZ1bmN0aW9uIHQkSih0KXt2YXIgZT10O2lmKC9eKEdSfEVMKVswLTldezl9JC8udGVzdChlKSl7ZT1lLnN1YnN0cigyKX1pZighL15bMC05XXs5fSQvLnRlc3QoZSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX1pZihlLmxlbmd0aD09PTgpe2U9XCIwXCIuY29uY2F0KGUpfXZhciByPVsyNTYsMTI4LDY0LDMyLDE2LDgsNCwyXTt2YXIgcz0wO2Zvcih2YXIgX3Q9MDtfdDw4O190Kyspe3MrPXBhcnNlSW50KGUuY2hhckF0KF90KSwxMCkqcltfdF19cz1zJTExJTEwO3JldHVybnttZXRhOnt9LHZhbGlkOlwiXCIuY29uY2F0KHMpPT09ZS5zdWJzdHIoOCwxKX19ZnVuY3Rpb24gZSR5KGUpe3ZhciByPWU7aWYoL15IUlswLTldezExfSQvLnRlc3Qocikpe3I9ci5zdWJzdHIoMil9aWYoIS9eWzAtOV17MTF9JC8udGVzdChyKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXJldHVybnttZXRhOnt9LHZhbGlkOnQkMShyKX19ZnVuY3Rpb24gdCRLKHQpe3ZhciBlPXQ7aWYoL15IVVswLTldezh9JC8udGVzdChlKSl7ZT1lLnN1YnN0cigyKX1pZighL15bMC05XXs4fSQvLnRlc3QoZSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgcj1bOSw3LDMsMSw5LDcsMywxXTt2YXIgYT0wO2Zvcih2YXIgX3Q9MDtfdDw4O190Kyspe2ErPXBhcnNlSW50KGUuY2hhckF0KF90KSwxMCkqcltfdF19cmV0dXJue21ldGE6e30sdmFsaWQ6YSUxMD09PTB9fWZ1bmN0aW9uIHQkTCh0KXt2YXIgZT10O2lmKC9eSUVbMC05XVswLTlBLVoqK11bMC05XXs1fVtBLVpdezEsMn0kLy50ZXN0KGUpKXtlPWUuc3Vic3RyKDIpfWlmKCEvXlswLTldWzAtOUEtWiorXVswLTldezV9W0EtWl17MSwyfSQvLnRlc3QoZSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgcj1mdW5jdGlvbiByKHQpe3ZhciBlPXQ7d2hpbGUoZS5sZW5ndGg8Nyl7ZT1cIjBcIi5jb25jYXQoZSl9dmFyIHI9XCJXQUJDREVGR0hJSktMTU5PUFFSU1RVVlwiO3ZhciBzPTA7Zm9yKHZhciBfdD0wO190PDc7X3QrKyl7cys9cGFyc2VJbnQoZS5jaGFyQXQoX3QpLDEwKSooOC1fdCl9cys9OSpyLmluZGV4T2YoZS5zdWJzdHIoNykpO3JldHVybiByW3MlMjNdfTtpZigvXlswLTldKyQvLnRlc3QoZS5zdWJzdHIoMCw3KSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmUuY2hhckF0KDcpPT09cihcIlwiLmNvbmNhdChlLnN1YnN0cigwLDcpKS5jb25jYXQoZS5zdWJzdHIoOCkpKX19ZWxzZSBpZihcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaKypcIi5pbmRleE9mKGUuY2hhckF0KDEpKSE9PS0xKXtyZXR1cm57bWV0YTp7fSx2YWxpZDplLmNoYXJBdCg3KT09PXIoXCJcIi5jb25jYXQoZS5zdWJzdHIoMiw1KSkuY29uY2F0KGUuc3Vic3RyKDAsMSkpKX19cmV0dXJue21ldGE6e30sdmFsaWQ6dHJ1ZX19ZnVuY3Rpb24gdCRNKHQpe3ZhciBlPXQ7aWYoL15JU1swLTldezUsNn0kLy50ZXN0KGUpKXtlPWUuc3Vic3RyKDIpfXJldHVybnttZXRhOnt9LHZhbGlkOi9eWzAtOV17NSw2fSQvLnRlc3QoZSl9fWZ1bmN0aW9uIGUkeihlKXt2YXIgcj1lO2lmKC9eSVRbMC05XXsxMX0kLy50ZXN0KHIpKXtyPXIuc3Vic3RyKDIpfWlmKCEvXlswLTldezExfSQvLnRlc3Qocikpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX1pZihwYXJzZUludChyLnN1YnN0cigwLDcpLDEwKT09PTApe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgYT1wYXJzZUludChyLnN1YnN0cig3LDMpLDEwKTtpZihhPDF8fGE+MjAxJiZhIT09OTk5JiZhIT09ODg4KXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19cmV0dXJue21ldGE6e30sdmFsaWQ6dChyKX19ZnVuY3Rpb24gdCROKHQpe3ZhciBlPXQ7aWYoL15MVChbMC05XXs3fTFbMC05XXxbMC05XXsxMH0xWzAtOV0pJC8udGVzdChlKSl7ZT1lLnN1YnN0cigyKX1pZighL14oWzAtOV17N30xWzAtOV18WzAtOV17MTB9MVswLTldKSQvLnRlc3QoZSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgcj1lLmxlbmd0aDt2YXIgYT0wO3ZhciBsO2ZvcihsPTA7bDxyLTE7bCsrKXthKz1wYXJzZUludChlLmNoYXJBdChsKSwxMCkqKDErbCU5KX12YXIgZj1hJTExO2lmKGY9PT0xMCl7YT0wO2ZvcihsPTA7bDxyLTE7bCsrKXthKz1wYXJzZUludChlLmNoYXJBdChsKSwxMCkqKDErKGwrMiklOSl9fWY9ZiUxMSUxMDtyZXR1cm57bWV0YTp7fSx2YWxpZDpcIlwiLmNvbmNhdChmKT09PWUuY2hhckF0KHItMSl9fWZ1bmN0aW9uIHQkTyh0KXt2YXIgZT10O2lmKC9eTFVbMC05XXs4fSQvLnRlc3QoZSkpe2U9ZS5zdWJzdHIoMil9aWYoIS9eWzAtOV17OH0kLy50ZXN0KGUpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19cmV0dXJue21ldGE6e30sdmFsaWQ6XCJcIi5jb25jYXQocGFyc2VJbnQoZS5zdWJzdHIoMCw2KSwxMCklODkpPT09ZS5zdWJzdHIoNiwyKX19ZnVuY3Rpb24gZSRBKGUpe3ZhciByPWU7aWYoL15MVlswLTldezExfSQvLnRlc3Qocikpe3I9ci5zdWJzdHIoMil9aWYoIS9eWzAtOV17MTF9JC8udGVzdChyKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciBzPXBhcnNlSW50KHIuY2hhckF0KDApLDEwKTt2YXIgYT1yLmxlbmd0aDt2YXIgbj0wO3ZhciBsPVtdO3ZhciBpO2lmKHM+Myl7bj0wO2w9WzksMSw0LDgsMywxMCwyLDUsNyw2LDFdO2ZvcihpPTA7aTxhO2krKyl7bis9cGFyc2VJbnQoci5jaGFyQXQoaSksMTApKmxbaV19bj1uJTExO3JldHVybnttZXRhOnt9LHZhbGlkOm49PT0zfX1lbHNle3ZhciBfZT1wYXJzZUludChyLnN1YnN0cigwLDIpLDEwKTt2YXIgX3M9cGFyc2VJbnQoci5zdWJzdHIoMiwyKSwxMCk7dmFyIGY9cGFyc2VJbnQoci5zdWJzdHIoNCwyKSwxMCk7Zj1mKzE4MDArcGFyc2VJbnQoci5jaGFyQXQoNiksMTApKjEwMDtpZighdCQ5KGYsX3MsX2UpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19bj0wO2w9WzEwLDUsOCw0LDIsMSw2LDMsNyw5XTtmb3IoaT0wO2k8YS0xO2krKyl7bis9cGFyc2VJbnQoci5jaGFyQXQoaSksMTApKmxbaV19bj0obisxKSUxMSUxMDtyZXR1cm57bWV0YTp7fSx2YWxpZDpcIlwiLmNvbmNhdChuKT09PXIuY2hhckF0KGEtMSl9fX1mdW5jdGlvbiB0JFAodCl7dmFyIGU9dDtpZigvXk1UWzAtOV17OH0kLy50ZXN0KGUpKXtlPWUuc3Vic3RyKDIpfWlmKCEvXlswLTldezh9JC8udGVzdChlKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciByPVszLDQsNiw3LDgsOSwxMCwxXTt2YXIgYT0wO2Zvcih2YXIgX3Q9MDtfdDw4O190Kyspe2ErPXBhcnNlSW50KGUuY2hhckF0KF90KSwxMCkqcltfdF19cmV0dXJue21ldGE6e30sdmFsaWQ6YSUzNz09PTB9fWZ1bmN0aW9uIHQkUSh0KXtyZXR1cm4gdC5zcGxpdChcIlwiKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBuPXQuY2hhckNvZGVBdCgwKTtyZXR1cm4gbj49NjUmJm48PTkwP24tNTU6dH0pKS5qb2luKFwiXCIpLnNwbGl0KFwiXCIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHBhcnNlSW50KHQsMTApfSkpfWZ1bmN0aW9uIG4kMShuKXt2YXIgZT10JFEobik7dmFyIHI9MDt2YXIgbz1lLmxlbmd0aDtmb3IodmFyIF90PTA7X3Q8by0xOysrX3Qpe3I9KHIrZVtfdF0pKjEwJTk3fXIrPWVbby0xXTtyZXR1cm4gciU5Nz09PTF9ZnVuY3Rpb24gZSRCKGUpe3ZhciBpPWU7aWYoL15OTFswLTldezl9QlswLTldezJ9JC8udGVzdChpKSl7aT1pLnN1YnN0cigyKX1pZighL15bMC05XXs5fUJbMC05XXsyfSQvLnRlc3QoaSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgbz1pLnN1YnN0cigwLDkpO3JldHVybnttZXRhOnt9LHZhbGlkOmUkaihvKS52YWxpZHx8biQxKFwiTkxcIi5jb25jYXQoaSkpfX1mdW5jdGlvbiB0JFIodCl7dmFyIGU9dDtpZigvXk5PWzAtOV17OX0kLy50ZXN0KGUpKXtlPWUuc3Vic3RyKDIpfWlmKCEvXlswLTldezl9JC8udGVzdChlKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciByPVszLDIsNyw2LDUsNCwzLDJdO3ZhciBzPTA7Zm9yKHZhciBfdD0wO190PDg7X3QrKyl7cys9cGFyc2VJbnQoZS5jaGFyQXQoX3QpLDEwKSpyW190XX1zPTExLXMlMTE7aWYocz09PTExKXtzPTB9cmV0dXJue21ldGE6e30sdmFsaWQ6XCJcIi5jb25jYXQocyk9PT1lLnN1YnN0cig4LDEpfX1mdW5jdGlvbiB0JFModCl7dmFyIGU9dDtpZigvXlBMWzAtOV17MTB9JC8udGVzdChlKSl7ZT1lLnN1YnN0cigyKX1pZighL15bMC05XXsxMH0kLy50ZXN0KGUpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIHI9WzYsNSw3LDIsMyw0LDUsNiw3LC0xXTt2YXIgYT0wO2Zvcih2YXIgX3Q9MDtfdDwxMDtfdCsrKXthKz1wYXJzZUludChlLmNoYXJBdChfdCksMTApKnJbX3RdfXJldHVybnttZXRhOnt9LHZhbGlkOmElMTE9PT0wfX1mdW5jdGlvbiB0JFQodCl7dmFyIGU9dDtpZigvXlBUWzAtOV17OX0kLy50ZXN0KGUpKXtlPWUuc3Vic3RyKDIpfWlmKCEvXlswLTldezl9JC8udGVzdChlKSl7cmV0dXJue21ldGE6e30sdmFsaWQ6ZmFsc2V9fXZhciByPVs5LDgsNyw2LDUsNCwzLDJdO3ZhciBzPTA7Zm9yKHZhciBfdD0wO190PDg7X3QrKyl7cys9cGFyc2VJbnQoZS5jaGFyQXQoX3QpLDEwKSpyW190XX1zPTExLXMlMTE7aWYocz45KXtzPTB9cmV0dXJue21ldGE6e30sdmFsaWQ6XCJcIi5jb25jYXQocyk9PT1lLnN1YnN0cig4LDEpfX1mdW5jdGlvbiB0JFUodCl7dmFyIGU9dDtpZigvXlJPWzEtOV1bMC05XXsxLDl9JC8udGVzdChlKSl7ZT1lLnN1YnN0cigyKX1pZighL15bMS05XVswLTldezEsOX0kLy50ZXN0KGUpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIHM9ZS5sZW5ndGg7dmFyIHI9WzcsNSwzLDIsMSw3LDUsMywyXS5zbGljZSgxMC1zKTt2YXIgbD0wO2Zvcih2YXIgX3Q9MDtfdDxzLTE7X3QrKyl7bCs9cGFyc2VJbnQoZS5jaGFyQXQoX3QpLDEwKSpyW190XX1sPTEwKmwlMTElMTA7cmV0dXJue21ldGE6e30sdmFsaWQ6XCJcIi5jb25jYXQobCk9PT1lLnN1YnN0cihzLTEsMSl9fWZ1bmN0aW9uIHQkVih0KXt2YXIgZT10O2lmKC9eUlNbMC05XXs5fSQvLnRlc3QoZSkpe2U9ZS5zdWJzdHIoMil9aWYoIS9eWzAtOV17OX0kLy50ZXN0KGUpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIHI9MTA7dmFyIGE9MDtmb3IodmFyIF90PTA7X3Q8ODtfdCsrKXthPShwYXJzZUludChlLmNoYXJBdChfdCksMTApK3IpJTEwO2lmKGE9PT0wKXthPTEwfXI9MiphJTExfXJldHVybnttZXRhOnt9LHZhbGlkOihyK3BhcnNlSW50KGUuc3Vic3RyKDgsMSksMTApKSUxMD09PTF9fWZ1bmN0aW9uIHQkVyh0KXt2YXIgZT10O2lmKC9eUlUoWzAtOV17MTB9fFswLTldezEyfSkkLy50ZXN0KGUpKXtlPWUuc3Vic3RyKDIpfWlmKCEvXihbMC05XXsxMH18WzAtOV17MTJ9KSQvLnRlc3QoZSkpe3JldHVybnttZXRhOnt9LHZhbGlkOmZhbHNlfX12YXIgcj0wO2lmKGUubGVuZ3RoPT09MTApe3ZhciBfdD1bMiw0LDEwLDMsNSw5LDQsNiw4LDBdO3ZhciBzPTA7Zm9yKHI9MDtyPDEwO3IrKyl7cys9cGFyc2VJbnQoZS5jaGFyQXQociksMTApKl90W3JdfXM9cyUxMTtpZihzPjkpe3M9cyUxMH1yZXR1cm57bWV0YTp7fSx2YWxpZDpcIlwiLmNvbmNhdChzKT09PWUuc3Vic3RyKDksMSl9fWVsc2UgaWYoZS5sZW5ndGg9PT0xMil7dmFyIF90Mj1bNywyLDQsMTAsMyw1LDksNCw2LDgsMF07dmFyIF9zPVszLDcsMiw0LDEwLDMsNSw5LDQsNiw4LDBdO3ZhciBhPTA7dmFyIGw9MDtmb3Iocj0wO3I8MTE7cisrKXthKz1wYXJzZUludChlLmNoYXJBdChyKSwxMCkqX3QyW3JdO2wrPXBhcnNlSW50KGUuY2hhckF0KHIpLDEwKSpfc1tyXX1hPWElMTE7aWYoYT45KXthPWElMTB9bD1sJTExO2lmKGw+OSl7bD1sJTEwfXJldHVybnttZXRhOnt9LHZhbGlkOlwiXCIuY29uY2F0KGEpPT09ZS5zdWJzdHIoMTAsMSkmJlwiXCIuY29uY2F0KGwpPT09ZS5zdWJzdHIoMTEsMSl9fXJldHVybnttZXRhOnt9LHZhbGlkOnRydWV9fWZ1bmN0aW9uIGUkQyhlKXt2YXIgcj1lO2lmKC9eU0VbMC05XXsxMH0wMSQvLnRlc3Qocikpe3I9ci5zdWJzdHIoMil9aWYoIS9eWzAtOV17MTB9MDEkLy50ZXN0KHIpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19cj1yLnN1YnN0cigwLDEwKTtyZXR1cm57bWV0YTp7fSx2YWxpZDp0KHIpfX1mdW5jdGlvbiB0JFgodCl7dmFyIGU9dC5tYXRjaCgvXihTSSk/KFsxLTldWzAtOV17N30pJC8pO2lmKCFlKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIHI9ZVsxXT90LnN1YnN0cigyKTp0O3ZhciBhPVs4LDcsNiw1LDQsMywyXTt2YXIgcz0wO2Zvcih2YXIgX3Q9MDtfdDw3O190Kyspe3MrPXBhcnNlSW50KHIuY2hhckF0KF90KSwxMCkqYVtfdF19cz0xMS1zJTExO2lmKHM9PT0xMCl7cz0wfXJldHVybnttZXRhOnt9LHZhbGlkOlwiXCIuY29uY2F0KHMpPT09ci5zdWJzdHIoNywxKX19ZnVuY3Rpb24gdCRZKHQpe3ZhciBlPXQ7aWYoL15TS1sxLTldWzAtOV1bKDItNCl8KDYtOSldWzAtOV17N30kLy50ZXN0KGUpKXtlPWUuc3Vic3RyKDIpfWlmKCEvXlsxLTldWzAtOV1bKDItNCl8KDYtOSldWzAtOV17N30kLy50ZXN0KGUpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19cmV0dXJue21ldGE6e30sdmFsaWQ6cGFyc2VJbnQoZSwxMCklMTE9PT0wfX1mdW5jdGlvbiB0JFoodCl7dmFyIGU9dDtpZigvXlZFW1ZFSlBHXVswLTldezl9JC8udGVzdChlKSl7ZT1lLnN1YnN0cigyKX1pZighL15bVkVKUEddWzAtOV17OX0kLy50ZXN0KGUpKXtyZXR1cm57bWV0YTp7fSx2YWxpZDpmYWxzZX19dmFyIHI9e0U6OCxHOjIwLEo6MTIsUDoxNixWOjR9O3ZhciBzPVszLDIsNyw2LDUsNCwzLDJdO3ZhciBhPXJbZS5jaGFyQXQoMCldO2Zvcih2YXIgX3Q9MDtfdDw4O190Kyspe2ErPXBhcnNlSW50KGUuY2hhckF0KF90KzEpLDEwKSpzW190XX1hPTExLWElMTE7aWYoYT09PTExfHxhPT09MTApe2E9MH1yZXR1cm57bWV0YTp7fSx2YWxpZDpcIlwiLmNvbmNhdChhKT09PWUuc3Vic3RyKDksMSl9fWZ1bmN0aW9uIHQkXyh0KXt2YXIgZT10O2lmKC9eWkE0WzAtOV17OX0kLy50ZXN0KGUpKXtlPWUuc3Vic3RyKDIpfXJldHVybnttZXRhOnt9LHZhbGlkOi9eNFswLTldezl9JC8udGVzdChlKX19ZnVuY3Rpb24geCgpe3ZhciB4PVtcIkFSXCIsXCJBVFwiLFwiQkVcIixcIkJHXCIsXCJCUlwiLFwiQ0hcIixcIkNZXCIsXCJDWlwiLFwiREVcIixcIkRLXCIsXCJFRVwiLFwiRUxcIixcIkVTXCIsXCJGSVwiLFwiRlJcIixcIkdCXCIsXCJHUlwiLFwiSFJcIixcIkhVXCIsXCJJRVwiLFwiSVNcIixcIklUXCIsXCJMVFwiLFwiTFVcIixcIkxWXCIsXCJNVFwiLFwiTkxcIixcIk5PXCIsXCJQTFwiLFwiUFRcIixcIlJPXCIsXCJSVVwiLFwiUlNcIixcIlNFXCIsXCJTS1wiLFwiU0lcIixcIlZFXCIsXCJaQVwiXTtyZXR1cm57dmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoRCl7dmFyIEY9RC52YWx1ZTtpZihGPT09XCJcIil7cmV0dXJue3ZhbGlkOnRydWV9fXZhciBLPU9iamVjdC5hc3NpZ24oe30se21lc3NhZ2U6XCJcIn0sRC5vcHRpb25zKTt2YXIgTj1GLnN1YnN0cigwLDIpO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBLLmNvdW50cnkpe049Sy5jb3VudHJ5LmNhbGwodGhpcyl9ZWxzZXtOPUsuY291bnRyeX1pZih4LmluZGV4T2YoTik9PT0tMSl7cmV0dXJue3ZhbGlkOnRydWV9fXZhciBQPXttZXRhOnt9LHZhbGlkOnRydWV9O3N3aXRjaChOLnRvTG93ZXJDYXNlKCkpe2Nhc2VcImFyXCI6UD10JHkoRik7YnJlYWs7Y2FzZVwiYXRcIjpQPXQkeihGKTticmVhaztjYXNlXCJiZVwiOlA9dCRBKEYpO2JyZWFrO2Nhc2VcImJnXCI6UD1yJGMoRik7YnJlYWs7Y2FzZVwiYnJcIjpQPXQkQihGKTticmVhaztjYXNlXCJjaFwiOlA9dCRDKEYpO2JyZWFrO2Nhc2VcImN5XCI6UD10JEQoRik7YnJlYWs7Y2FzZVwiY3pcIjpQPWUkdihGKTticmVhaztjYXNlXCJkZVwiOlA9ZSR3KEYpO2JyZWFrO2Nhc2VcImRrXCI6UD10JEUoRik7YnJlYWs7Y2FzZVwiZWVcIjpQPXQkRihGKTticmVhaztjYXNlXCJlbFwiOlA9dCRKKEYpO2JyZWFrO2Nhc2VcImVzXCI6UD10JEcoRik7YnJlYWs7Y2FzZVwiZmlcIjpQPXQkSChGKTticmVhaztjYXNlXCJmclwiOlA9ZSR4KEYpO2JyZWFrO2Nhc2VcImdiXCI6UD10JEkoRik7YnJlYWs7Y2FzZVwiZ3JcIjpQPXQkSihGKTticmVhaztjYXNlXCJoclwiOlA9ZSR5KEYpO2JyZWFrO2Nhc2VcImh1XCI6UD10JEsoRik7YnJlYWs7Y2FzZVwiaWVcIjpQPXQkTChGKTticmVhaztjYXNlXCJpc1wiOlA9dCRNKEYpO2JyZWFrO2Nhc2VcIml0XCI6UD1lJHooRik7YnJlYWs7Y2FzZVwibHRcIjpQPXQkTihGKTticmVhaztjYXNlXCJsdVwiOlA9dCRPKEYpO2JyZWFrO2Nhc2VcImx2XCI6UD1lJEEoRik7YnJlYWs7Y2FzZVwibXRcIjpQPXQkUChGKTticmVhaztjYXNlXCJubFwiOlA9ZSRCKEYpO2JyZWFrO2Nhc2VcIm5vXCI6UD10JFIoRik7YnJlYWs7Y2FzZVwicGxcIjpQPXQkUyhGKTticmVhaztjYXNlXCJwdFwiOlA9dCRUKEYpO2JyZWFrO2Nhc2VcInJvXCI6UD10JFUoRik7YnJlYWs7Y2FzZVwicnNcIjpQPXQkVihGKTticmVhaztjYXNlXCJydVwiOlA9dCRXKEYpO2JyZWFrO2Nhc2VcInNlXCI6UD1lJEMoRik7YnJlYWs7Y2FzZVwic2lcIjpQPXQkWChGKTticmVhaztjYXNlXCJza1wiOlA9dCRZKEYpO2JyZWFrO2Nhc2VcInZlXCI6UD10JFooRik7YnJlYWs7Y2FzZVwiemFcIjpQPXQkXyhGKTticmVha312YXIgWj1yKEQubDEwbj9LLm1lc3NhZ2V8fEQubDEwbi52YXQuY291bnRyeTpLLm1lc3NhZ2UsRC5sMTBuP0QubDEwbi52YXQuY291bnRyaWVzW04udG9VcHBlckNhc2UoKV06Ti50b1VwcGVyQ2FzZSgpKTtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx7bWVzc2FnZTpafSxQKX19fWZ1bmN0aW9uIHQkJCgpe3JldHVybnt2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZSh0KXtpZih0LnZhbHVlPT09XCJcIil7cmV0dXJue3ZhbGlkOnRydWV9fWlmKCEvXlthLWhqLW5wci16MC05XXs4fVswLTl4WF1bYS1oai1ucHItejAtOV17OH0kL2kudGVzdCh0LnZhbHVlKSl7cmV0dXJue3ZhbGlkOmZhbHNlfX12YXIgZT10LnZhbHVlLnRvVXBwZXJDYXNlKCk7dmFyIHI9e0E6MSxCOjIsQzozLEQ6NCxFOjUsRjo2LEc6NyxIOjgsSjoxLEs6MixMOjMsTTo0LE46NSxQOjcsUjo5LFM6MixUOjMsVTo0LFY6NSxXOjYsWDo3LFk6OCxaOjksMDowLDE6MSwyOjIsMzozLDQ6NCw1OjUsNjo2LDc6Nyw4OjgsOTo5fTt2YXIgYT1bOCw3LDYsNSw0LDMsMiwxMCwwLDksOCw3LDYsNSw0LDMsMl07dmFyIGw9ZS5sZW5ndGg7dmFyIG49MDtmb3IodmFyIF90PTA7X3Q8bDtfdCsrKXtuKz1yW1wiXCIuY29uY2F0KGUuY2hhckF0KF90KSldKmFbX3RdfXZhciB1PVwiXCIuY29uY2F0KG4lMTEpO2lmKHU9PT1cIjEwXCIpe3U9XCJYXCJ9cmV0dXJue3ZhbGlkOnU9PT1lLmNoYXJBdCg4KX19fX1mdW5jdGlvbiBzJDYoKXt2YXIgcz1bXCJBVFwiLFwiQkdcIixcIkJSXCIsXCJDQVwiLFwiQ0hcIixcIkNaXCIsXCJERVwiLFwiREtcIixcIkVTXCIsXCJGUlwiLFwiR0JcIixcIklFXCIsXCJJTlwiLFwiSVRcIixcIk1BXCIsXCJOTFwiLFwiUExcIixcIlBUXCIsXCJST1wiLFwiUlVcIixcIlNFXCIsXCJTR1wiLFwiU0tcIixcIlVTXCJdO3ZhciBhPWZ1bmN0aW9uIGEoZSl7dmFyIHM9XCJbQUJDREVGR0hJSktMTU5PUFJTVFVXWVpdXCI7dmFyIGE9XCJbQUJDREVGR0hLTE1OT1BRUlNUVVZXWFldXCI7dmFyIHQ9XCJbQUJDREVGR0hKS1BNTlJTVFVWV1hZXVwiO3ZhciByPVwiW0FCRUhNTlBSVldYWV1cIjt2YXIgdT1cIltBQkRFRkdISkxOUFFSU1RVV1hZWl1cIjt2YXIgYz1bbmV3IFJlZ0V4cChcIl4oXCIuY29uY2F0KHMsXCJ7MX1cIikuY29uY2F0KGEsXCI/WzAtOV17MSwyfSkoXFxcXHMqKShbMC05XXsxfVwiKS5jb25jYXQodSxcInsyfSkkXCIpLFwiaVwiKSxuZXcgUmVnRXhwKFwiXihcIi5jb25jYXQocyxcInsxfVswLTldezF9XCIpLmNvbmNhdCh0LFwiezF9KShcXFxccyopKFswLTldezF9XCIpLmNvbmNhdCh1LFwiezJ9KSRcIiksXCJpXCIpLG5ldyBSZWdFeHAoXCJeKFwiLmNvbmNhdChzLFwiezF9XCIpLmNvbmNhdChhLFwiezF9P1swLTldezF9XCIpLmNvbmNhdChyLFwiezF9KShcXFxccyopKFswLTldezF9XCIpLmNvbmNhdCh1LFwiezJ9KSRcIiksXCJpXCIpLG5ldyBSZWdFeHAoXCJeKEJGMSkoXFxcXHMqKShbMC02XXsxfVtBQkRFRkdISkxOUFFSU1RdezF9W0FCREVGR0hKTE5QUVJTVFVXWllaXXsxfSkkXCIsXCJpXCIpLC9eKEdJUikoXFxzKikoMEFBKSQvaSwvXihCRlBPKShcXHMqKShbMC05XXsxLDR9KSQvaSwvXihCRlBPKShcXHMqKShjXFwvb1xccypbMC05XXsxLDN9KSQvaSwvXihbQS1aXXs0fSkoXFxzKikoMVpaKSQvaSwvXihBSS0yNjQwKSQvaV07Zm9yKHZhciBfaT0wLF9jPWM7X2k8X2MubGVuZ3RoO19pKyspe3ZhciBfcz1fY1tfaV07aWYoX3MudGVzdChlKSl7cmV0dXJuIHRydWV9fXJldHVybiBmYWxzZX07cmV0dXJue3ZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKHQpe3ZhciByJDE9T2JqZWN0LmFzc2lnbih7fSx0Lm9wdGlvbnMpO2lmKHQudmFsdWU9PT1cIlwifHwhciQxLmNvdW50cnkpe3JldHVybnt2YWxpZDp0cnVlfX12YXIgdT10LnZhbHVlLnN1YnN0cigwLDIpO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiByJDEuY291bnRyeSl7dT1yJDEuY291bnRyeS5jYWxsKHRoaXMpfWVsc2V7dT1yJDEuY291bnRyeX1pZighdXx8cy5pbmRleE9mKHUudG9VcHBlckNhc2UoKSk9PT0tMSl7cmV0dXJue3ZhbGlkOnRydWV9fXZhciBjPWZhbHNlO3U9dS50b1VwcGVyQ2FzZSgpO3N3aXRjaCh1KXtjYXNlXCJBVFwiOmM9L14oWzEtOV17MX0pKFxcZHszfSkkLy50ZXN0KHQudmFsdWUpO2JyZWFrO2Nhc2VcIkJHXCI6Yz0vXihbMS05XXsxfVswLTldezN9KSQvLnRlc3QodC52YWx1ZSk7YnJlYWs7Y2FzZVwiQlJcIjpjPS9eKFxcZHsyfSkoWy5dPykoXFxkezN9KShbLV0/KShcXGR7M30pJC8udGVzdCh0LnZhbHVlKTticmVhaztjYXNlXCJDQVwiOmM9L14oPzpBfEJ8Q3xFfEd8SHxKfEt8THxNfE58UHxSfFN8VHxWfFh8WSl7MX1bMC05XXsxfSg/OkF8QnxDfEV8R3xIfEp8S3xMfE18TnxQfFJ8U3xUfFZ8V3xYfFl8Wil7MX1cXHM/WzAtOV17MX0oPzpBfEJ8Q3xFfEd8SHxKfEt8THxNfE58UHxSfFN8VHxWfFd8WHxZfFopezF9WzAtOV17MX0kL2kudGVzdCh0LnZhbHVlKTticmVhaztjYXNlXCJDSFwiOmM9L14oWzEtOV17MX0pKFxcZHszfSkkLy50ZXN0KHQudmFsdWUpO2JyZWFrO2Nhc2VcIkNaXCI6Yz0vXihcXGR7M30pKFsgXT8pKFxcZHsyfSkkLy50ZXN0KHQudmFsdWUpO2JyZWFrO2Nhc2VcIkRFXCI6Yz0vXig/ITAxMDAwfDk5OTk5KSgwWzEtOV1cXGR7M318WzEtOV1cXGR7NH0pJC8udGVzdCh0LnZhbHVlKTticmVhaztjYXNlXCJES1wiOmM9L14oREsoLXxcXHMpPyk/XFxkezR9JC9pLnRlc3QodC52YWx1ZSk7YnJlYWs7Y2FzZVwiRVNcIjpjPS9eKD86MFsxLTldfFsxLTRdWzAtOV18NVswLTJdKVxcZHszfSQvLnRlc3QodC52YWx1ZSk7YnJlYWs7Y2FzZVwiRlJcIjpjPS9eWzAtOV17NX0kL2kudGVzdCh0LnZhbHVlKTticmVhaztjYXNlXCJHQlwiOmM9YSh0LnZhbHVlKTticmVhaztjYXNlXCJJTlwiOmM9L15cXGR7M31cXHM/XFxkezN9JC8udGVzdCh0LnZhbHVlKTticmVhaztjYXNlXCJJRVwiOmM9L14oRDZXfFtBQ0RFRkhLTlBSVFZXWFldXFxkezJ9KVxcc1swLTlBQ0RFRkhLTlBSVFZXWFldezR9JC8udGVzdCh0LnZhbHVlKTticmVhaztjYXNlXCJJVFwiOmM9L14oSS18SVQtKT9cXGR7NX0kL2kudGVzdCh0LnZhbHVlKTticmVhaztjYXNlXCJNQVwiOmM9L15bMS05XVswLTldezR9JC9pLnRlc3QodC52YWx1ZSk7YnJlYWs7Y2FzZVwiTkxcIjpjPS9eWzEtOV1bMC05XXszfSA/KD8hc2F8c2R8c3MpW2Etel17Mn0kL2kudGVzdCh0LnZhbHVlKTticmVhaztjYXNlXCJQTFwiOmM9L15bMC05XXsyfS1bMC05XXszfSQvLnRlc3QodC52YWx1ZSk7YnJlYWs7Y2FzZVwiUFRcIjpjPS9eWzEtOV1cXGR7M30tXFxkezN9JC8udGVzdCh0LnZhbHVlKTticmVhaztjYXNlXCJST1wiOmM9L14oMFsxLThdezF9fFsxLTldezF9WzAtNV17MX0pP1swLTldezR9JC9pLnRlc3QodC52YWx1ZSk7YnJlYWs7Y2FzZVwiUlVcIjpjPS9eWzAtOV17Nn0kL2kudGVzdCh0LnZhbHVlKTticmVhaztjYXNlXCJTRVwiOmM9L14oUy0pP1xcZHszfVxccz9cXGR7Mn0kL2kudGVzdCh0LnZhbHVlKTticmVhaztjYXNlXCJTR1wiOmM9L14oWzBdWzEtOV18WzEtNl1bMC05XXxbN10oWzAtM118WzUtOV0pfFs4XVswLTJdKShcXGR7NH0pJC9pLnRlc3QodC52YWx1ZSk7YnJlYWs7Y2FzZVwiU0tcIjpjPS9eKFxcZHszfSkoWyBdPykoXFxkezJ9KSQvLnRlc3QodC52YWx1ZSk7YnJlYWs7Y2FzZVwiVVNcIjpkZWZhdWx0OmM9L15cXGR7NCw1fShbLV0/XFxkezR9KT8kLy50ZXN0KHQudmFsdWUpO2JyZWFrfXJldHVybnttZXNzYWdlOnIodC5sMTBuP3IkMS5tZXNzYWdlfHx0LmwxMG4uemlwQ29kZS5jb3VudHJ5OnIkMS5tZXNzYWdlLHQubDEwbj90LmwxMG4uemlwQ29kZS5jb3VudHJpZXNbdV06dSksdmFsaWQ6Y319fX12YXIgcyQ3PXtiZXR3ZWVuOnMkMSxibGFuazp0JDUsY2FsbGJhY2s6byxjaG9pY2U6dCQ3LGNyZWRpdENhcmQ6bCxkYXRlOm4sZGlmZmVyZW50Om8kMSxkaWdpdHM6ZSQxLGVtYWlsQWRkcmVzczp0JGEsZmlsZTplJDIsZ3JlYXRlclRoYW46YSxpZGVudGljYWw6byQyLGludGVnZXI6YSQxLGlwOmQsbGVzc1RoYW46cyQyLG5vdEVtcHR5OnQkYixudW1lcmljOmEkMixwcm9taXNlOnIkMSxyZWdleHA6ZSQzLHJlbW90ZTphJDMsc3RyaW5nQ2FzZTplJDUsc3RyaW5nTGVuZ3RoOnQkYyx1cmk6dCRkLGJhc2U2NDphJDQsYmljOmEkNSxjb2xvcjplJDYsY3VzaXA6dCRlLGVhbjplJDcsZWluOmUkOCxncmlkOnIkMixoZXg6ZSQ5LGliYW46WixpZDpGLGltZWk6dCR3LGltbzplJGwsaXNibjplJG0saXNpbjpNLGlzbW46ZSRuLGlzc246ZSRvLG1hYzphJDYsbWVpZDplJHAscGhvbmU6ZSRxLHJ0bjplJHIsc2Vkb2w6dCR4LHNpcmVuOmUkcyxzaXJldDplJHQsc3RlcDplJHUsdXVpZDpzJDUsdmF0OngsdmluOnQkJCx6aXBDb2RlOnMkNn07dmFyIGwkMT1mdW5jdGlvbigpe2Z1bmN0aW9uIGwoaSxzJDEpe19jbGFzc0NhbGxDaGVjayh0aGlzLGwpO3RoaXMuZWxlbWVudHM9e307dGhpcy5lZT1zKCk7dGhpcy5maWx0ZXI9dCQ0KCk7dGhpcy5wbHVnaW5zPXt9O3RoaXMucmVzdWx0cz1uZXcgTWFwO3RoaXMudmFsaWRhdG9ycz17fTt0aGlzLmZvcm09aTt0aGlzLmZpZWxkcz1zJDF9X2NyZWF0ZUNsYXNzKGwsW3trZXk6XCJvblwiLHZhbHVlOmZ1bmN0aW9uIG9uKGUsdCl7dGhpcy5lZS5vbihlLHQpO3JldHVybiB0aGlzfX0se2tleTpcIm9mZlwiLHZhbHVlOmZ1bmN0aW9uIG9mZihlLHQpe3RoaXMuZWUub2ZmKGUsdCk7cmV0dXJuIHRoaXN9fSx7a2V5OlwiZW1pdFwiLHZhbHVlOmZ1bmN0aW9uIGVtaXQoZSl7dmFyIF90aGlzJGVlO2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KF9sZW4+MT9fbGVuLTE6MCksX2tleT0xO19rZXk8X2xlbjtfa2V5Kyspe3RbX2tleS0xXT1hcmd1bWVudHNbX2tleV19KF90aGlzJGVlPXRoaXMuZWUpLmVtaXQuYXBwbHkoX3RoaXMkZWUsW2VdLmNvbmNhdCh0KSk7cmV0dXJuIHRoaXN9fSx7a2V5OlwicmVnaXN0ZXJQbHVnaW5cIix2YWx1ZTpmdW5jdGlvbiByZWdpc3RlclBsdWdpbihlLHQpe2lmKHRoaXMucGx1Z2luc1tlXSl7dGhyb3cgbmV3IEVycm9yKFwiVGhlIHBsZ3VpbiBcIi5jb25jYXQoZSxcIiBpcyByZWdpc3RlcmVkXCIpKX10LnNldENvcmUodGhpcyk7dC5pbnN0YWxsKCk7dGhpcy5wbHVnaW5zW2VdPXQ7cmV0dXJuIHRoaXN9fSx7a2V5OlwiZGVyZWdpc3RlclBsdWdpblwiLHZhbHVlOmZ1bmN0aW9uIGRlcmVnaXN0ZXJQbHVnaW4oZSl7dmFyIHQ9dGhpcy5wbHVnaW5zW2VdO2lmKHQpe3QudW5pbnN0YWxsKCl9ZGVsZXRlIHRoaXMucGx1Z2luc1tlXTtyZXR1cm4gdGhpc319LHtrZXk6XCJyZWdpc3RlclZhbGlkYXRvclwiLHZhbHVlOmZ1bmN0aW9uIHJlZ2lzdGVyVmFsaWRhdG9yKGUsdCl7aWYodGhpcy52YWxpZGF0b3JzW2VdKXt0aHJvdyBuZXcgRXJyb3IoXCJUaGUgdmFsaWRhdG9yIFwiLmNvbmNhdChlLFwiIGlzIHJlZ2lzdGVyZWRcIikpfXRoaXMudmFsaWRhdG9yc1tlXT10O3JldHVybiB0aGlzfX0se2tleTpcInJlZ2lzdGVyRmlsdGVyXCIsdmFsdWU6ZnVuY3Rpb24gcmVnaXN0ZXJGaWx0ZXIoZSx0KXt0aGlzLmZpbHRlci5hZGQoZSx0KTtyZXR1cm4gdGhpc319LHtrZXk6XCJkZXJlZ2lzdGVyRmlsdGVyXCIsdmFsdWU6ZnVuY3Rpb24gZGVyZWdpc3RlckZpbHRlcihlLHQpe3RoaXMuZmlsdGVyLnJlbW92ZShlLHQpO3JldHVybiB0aGlzfX0se2tleTpcImV4ZWN1dGVGaWx0ZXJcIix2YWx1ZTpmdW5jdGlvbiBleGVjdXRlRmlsdGVyKGUsdCxpKXtyZXR1cm4gdGhpcy5maWx0ZXIuZXhlY3V0ZShlLHQsaSl9fSx7a2V5OlwiYWRkRmllbGRcIix2YWx1ZTpmdW5jdGlvbiBhZGRGaWVsZChlLHQpe3ZhciBpPU9iamVjdC5hc3NpZ24oe30se3NlbGVjdG9yOlwiXCIsdmFsaWRhdG9yczp7fX0sdCk7dGhpcy5maWVsZHNbZV09dGhpcy5maWVsZHNbZV0/e3NlbGVjdG9yOmkuc2VsZWN0b3J8fHRoaXMuZmllbGRzW2VdLnNlbGVjdG9yLHZhbGlkYXRvcnM6T2JqZWN0LmFzc2lnbih7fSx0aGlzLmZpZWxkc1tlXS52YWxpZGF0b3JzLGkudmFsaWRhdG9ycyl9Omk7dGhpcy5lbGVtZW50c1tlXT10aGlzLnF1ZXJ5RWxlbWVudHMoZSk7dGhpcy5lbWl0KFwiY29yZS5maWVsZC5hZGRlZFwiLHtlbGVtZW50czp0aGlzLmVsZW1lbnRzW2VdLGZpZWxkOmUsb3B0aW9uczp0aGlzLmZpZWxkc1tlXX0pO3JldHVybiB0aGlzfX0se2tleTpcInJlbW92ZUZpZWxkXCIsdmFsdWU6ZnVuY3Rpb24gcmVtb3ZlRmllbGQoZSl7aWYoIXRoaXMuZmllbGRzW2VdKXt0aHJvdyBuZXcgRXJyb3IoXCJUaGUgZmllbGQgXCIuY29uY2F0KGUsXCIgdmFsaWRhdG9ycyBhcmUgbm90IGRlZmluZWQuIFBsZWFzZSBlbnN1cmUgdGhlIGZpZWxkIGlzIGFkZGVkIGZpcnN0XCIpKX12YXIgdD10aGlzLmVsZW1lbnRzW2VdO3ZhciBpPXRoaXMuZmllbGRzW2VdO2RlbGV0ZSB0aGlzLmVsZW1lbnRzW2VdO2RlbGV0ZSB0aGlzLmZpZWxkc1tlXTt0aGlzLmVtaXQoXCJjb3JlLmZpZWxkLnJlbW92ZWRcIix7ZWxlbWVudHM6dCxmaWVsZDplLG9wdGlvbnM6aX0pO3JldHVybiB0aGlzfX0se2tleTpcInZhbGlkYXRlXCIsdmFsdWU6ZnVuY3Rpb24gdmFsaWRhdGUoKXt2YXIgX3RoaXM9dGhpczt0aGlzLmVtaXQoXCJjb3JlLmZvcm0udmFsaWRhdGluZ1wiKTtyZXR1cm4gdGhpcy5maWx0ZXIuZXhlY3V0ZShcInZhbGlkYXRlLXByZVwiLFByb21pc2UucmVzb2x2ZSgpLFtdKS50aGVuKChmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChPYmplY3Qua2V5cyhfdGhpcy5maWVsZHMpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIF90aGlzLnZhbGlkYXRlRmllbGQoZSl9KSkpLnRoZW4oKGZ1bmN0aW9uKGUpe3N3aXRjaCh0cnVlKXtjYXNlIGUuaW5kZXhPZihcIkludmFsaWRcIikhPT0tMTpfdGhpcy5lbWl0KFwiY29yZS5mb3JtLmludmFsaWRcIik7cmV0dXJuIFByb21pc2UucmVzb2x2ZShcIkludmFsaWRcIik7Y2FzZSBlLmluZGV4T2YoXCJOb3RWYWxpZGF0ZWRcIikhPT0tMTpfdGhpcy5lbWl0KFwiY29yZS5mb3JtLm5vdHZhbGlkYXRlZFwiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFwiTm90VmFsaWRhdGVkXCIpO2RlZmF1bHQ6X3RoaXMuZW1pdChcImNvcmUuZm9ybS52YWxpZFwiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFwiVmFsaWRcIil9fSkpfSkpfX0se2tleTpcInZhbGlkYXRlRmllbGRcIix2YWx1ZTpmdW5jdGlvbiB2YWxpZGF0ZUZpZWxkKGUpe3ZhciBfdGhpczI9dGhpczt2YXIgdD10aGlzLnJlc3VsdHMuZ2V0KGUpO2lmKHQ9PT1cIlZhbGlkXCJ8fHQ9PT1cIkludmFsaWRcIil7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0KX10aGlzLmVtaXQoXCJjb3JlLmZpZWxkLnZhbGlkYXRpbmdcIixlKTt2YXIgaT10aGlzLmVsZW1lbnRzW2VdO2lmKGkubGVuZ3RoPT09MCl7dGhpcy5lbWl0KFwiY29yZS5maWVsZC52YWxpZFwiLGUpO3JldHVybiBQcm9taXNlLnJlc29sdmUoXCJWYWxpZFwiKX12YXIgcz1pWzBdLmdldEF0dHJpYnV0ZShcInR5cGVcIik7aWYoXCJyYWRpb1wiPT09c3x8XCJjaGVja2JveFwiPT09c3x8aS5sZW5ndGg9PT0xKXtyZXR1cm4gdGhpcy52YWxpZGF0ZUVsZW1lbnQoZSxpWzBdKX1lbHNle3JldHVybiBQcm9taXNlLmFsbChpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIF90aGlzMi52YWxpZGF0ZUVsZW1lbnQoZSx0KX0pKSkudGhlbigoZnVuY3Rpb24odCl7c3dpdGNoKHRydWUpe2Nhc2UgdC5pbmRleE9mKFwiSW52YWxpZFwiKSE9PS0xOl90aGlzMi5lbWl0KFwiY29yZS5maWVsZC5pbnZhbGlkXCIsZSk7X3RoaXMyLnJlc3VsdHMuc2V0KGUsXCJJbnZhbGlkXCIpO3JldHVybiBQcm9taXNlLnJlc29sdmUoXCJJbnZhbGlkXCIpO2Nhc2UgdC5pbmRleE9mKFwiTm90VmFsaWRhdGVkXCIpIT09LTE6X3RoaXMyLmVtaXQoXCJjb3JlLmZpZWxkLm5vdHZhbGlkYXRlZFwiLGUpO190aGlzMi5yZXN1bHRzW1wiZGVsZXRlXCJdKGUpO3JldHVybiBQcm9taXNlLnJlc29sdmUoXCJOb3RWYWxpZGF0ZWRcIik7ZGVmYXVsdDpfdGhpczIuZW1pdChcImNvcmUuZmllbGQudmFsaWRcIixlKTtfdGhpczIucmVzdWx0cy5zZXQoZSxcIlZhbGlkXCIpO3JldHVybiBQcm9taXNlLnJlc29sdmUoXCJWYWxpZFwiKX19KSl9fX0se2tleTpcInZhbGlkYXRlRWxlbWVudFwiLHZhbHVlOmZ1bmN0aW9uIHZhbGlkYXRlRWxlbWVudChlLHQpe3ZhciBfdGhpczM9dGhpczt0aGlzLnJlc3VsdHNbXCJkZWxldGVcIl0oZSk7dmFyIGk9dGhpcy5lbGVtZW50c1tlXTt2YXIgcz10aGlzLmZpbHRlci5leGVjdXRlKFwiZWxlbWVudC1pZ25vcmVkXCIsZmFsc2UsW2UsdCxpXSk7aWYocyl7dGhpcy5lbWl0KFwiY29yZS5lbGVtZW50Lmlnbm9yZWRcIix7ZWxlbWVudDp0LGVsZW1lbnRzOmksZmllbGQ6ZX0pO3JldHVybiBQcm9taXNlLnJlc29sdmUoXCJJZ25vcmVkXCIpfXZhciBsPXRoaXMuZmllbGRzW2VdLnZhbGlkYXRvcnM7dGhpcy5lbWl0KFwiY29yZS5lbGVtZW50LnZhbGlkYXRpbmdcIix7ZWxlbWVudDp0LGVsZW1lbnRzOmksZmllbGQ6ZX0pO3ZhciByPU9iamVjdC5rZXlzKGwpLm1hcCgoZnVuY3Rpb24oaSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIF90aGlzMy5leGVjdXRlVmFsaWRhdG9yKGUsdCxpLGxbaV0pfX0pKTtyZXR1cm4gdGhpcy53YXRlcmZhbGwocikudGhlbigoZnVuY3Rpb24ocyl7dmFyIGw9cy5pbmRleE9mKFwiSW52YWxpZFwiKT09PS0xO190aGlzMy5lbWl0KFwiY29yZS5lbGVtZW50LnZhbGlkYXRlZFwiLHtlbGVtZW50OnQsZWxlbWVudHM6aSxmaWVsZDplLHZhbGlkOmx9KTt2YXIgcj10LmdldEF0dHJpYnV0ZShcInR5cGVcIik7aWYoXCJyYWRpb1wiPT09cnx8XCJjaGVja2JveFwiPT09cnx8aS5sZW5ndGg9PT0xKXtfdGhpczMuZW1pdChsP1wiY29yZS5maWVsZC52YWxpZFwiOlwiY29yZS5maWVsZC5pbnZhbGlkXCIsZSl9cmV0dXJuIFByb21pc2UucmVzb2x2ZShsP1wiVmFsaWRcIjpcIkludmFsaWRcIil9KSlbXCJjYXRjaFwiXSgoZnVuY3Rpb24ocyl7X3RoaXMzLmVtaXQoXCJjb3JlLmVsZW1lbnQubm90dmFsaWRhdGVkXCIse2VsZW1lbnQ6dCxlbGVtZW50czppLGZpZWxkOmV9KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHMpfSkpfX0se2tleTpcImV4ZWN1dGVWYWxpZGF0b3JcIix2YWx1ZTpmdW5jdGlvbiBleGVjdXRlVmFsaWRhdG9yKGUsdCxpLHMpe3ZhciBfdGhpczQ9dGhpczt2YXIgbD10aGlzLmVsZW1lbnRzW2VdO3ZhciByPXRoaXMuZmlsdGVyLmV4ZWN1dGUoXCJ2YWxpZGF0b3ItbmFtZVwiLGksW2ksZV0pO3MubWVzc2FnZT10aGlzLmZpbHRlci5leGVjdXRlKFwidmFsaWRhdG9yLW1lc3NhZ2VcIixzLm1lc3NhZ2UsW3RoaXMubG9jYWxlLGUscl0pO2lmKCF0aGlzLnZhbGlkYXRvcnNbcl18fHMuZW5hYmxlZD09PWZhbHNlKXt0aGlzLmVtaXQoXCJjb3JlLnZhbGlkYXRvci52YWxpZGF0ZWRcIix7ZWxlbWVudDp0LGVsZW1lbnRzOmwsZmllbGQ6ZSxyZXN1bHQ6dGhpcy5ub3JtYWxpemVSZXN1bHQoZSxyLHt2YWxpZDp0cnVlfSksdmFsaWRhdG9yOnJ9KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFwiVmFsaWRcIil9dmFyIGE9dGhpcy52YWxpZGF0b3JzW3JdO3ZhciBkPXRoaXMuZ2V0RWxlbWVudFZhbHVlKGUsdCxyKTt2YXIgbz10aGlzLmZpbHRlci5leGVjdXRlKFwiZmllbGQtc2hvdWxkLXZhbGlkYXRlXCIsdHJ1ZSxbZSx0LGQsaV0pO2lmKCFvKXt0aGlzLmVtaXQoXCJjb3JlLnZhbGlkYXRvci5ub3R2YWxpZGF0ZWRcIix7ZWxlbWVudDp0LGVsZW1lbnRzOmwsZmllbGQ6ZSx2YWxpZGF0b3I6aX0pO3JldHVybiBQcm9taXNlLnJlc29sdmUoXCJOb3RWYWxpZGF0ZWRcIil9dGhpcy5lbWl0KFwiY29yZS52YWxpZGF0b3IudmFsaWRhdGluZ1wiLHtlbGVtZW50OnQsZWxlbWVudHM6bCxmaWVsZDplLHZhbGlkYXRvcjppfSk7dmFyIG49YSgpLnZhbGlkYXRlKHtlbGVtZW50OnQsZWxlbWVudHM6bCxmaWVsZDplLGwxMG46dGhpcy5sb2NhbGl6YXRpb24sb3B0aW9uczpzLHZhbHVlOmR9KTt2YXIgaD1cImZ1bmN0aW9uXCI9PT10eXBlb2YgbltcInRoZW5cIl07aWYoaCl7cmV0dXJuIG4udGhlbigoZnVuY3Rpb24ocyl7dmFyIHI9X3RoaXM0Lm5vcm1hbGl6ZVJlc3VsdChlLGkscyk7X3RoaXM0LmVtaXQoXCJjb3JlLnZhbGlkYXRvci52YWxpZGF0ZWRcIix7ZWxlbWVudDp0LGVsZW1lbnRzOmwsZmllbGQ6ZSxyZXN1bHQ6cix2YWxpZGF0b3I6aX0pO3JldHVybiByLnZhbGlkP1wiVmFsaWRcIjpcIkludmFsaWRcIn0pKX1lbHNle3ZhciBfcz10aGlzLm5vcm1hbGl6ZVJlc3VsdChlLGksbik7dGhpcy5lbWl0KFwiY29yZS52YWxpZGF0b3IudmFsaWRhdGVkXCIse2VsZW1lbnQ6dCxlbGVtZW50czpsLGZpZWxkOmUscmVzdWx0Ol9zLHZhbGlkYXRvcjppfSk7cmV0dXJuIFByb21pc2UucmVzb2x2ZShfcy52YWxpZD9cIlZhbGlkXCI6XCJJbnZhbGlkXCIpfX19LHtrZXk6XCJnZXRFbGVtZW50VmFsdWVcIix2YWx1ZTpmdW5jdGlvbiBnZXRFbGVtZW50VmFsdWUoZSQxLHQscyl7dmFyIGw9ZSh0aGlzLmZvcm0sZSQxLHQsdGhpcy5lbGVtZW50c1tlJDFdKTtyZXR1cm4gdGhpcy5maWx0ZXIuZXhlY3V0ZShcImZpZWxkLXZhbHVlXCIsbCxbbCxlJDEsdCxzXSl9fSx7a2V5OlwiZ2V0RWxlbWVudHNcIix2YWx1ZTpmdW5jdGlvbiBnZXRFbGVtZW50cyhlKXtyZXR1cm4gdGhpcy5lbGVtZW50c1tlXX19LHtrZXk6XCJnZXRGaWVsZHNcIix2YWx1ZTpmdW5jdGlvbiBnZXRGaWVsZHMoKXtyZXR1cm4gdGhpcy5maWVsZHN9fSx7a2V5OlwiZ2V0Rm9ybUVsZW1lbnRcIix2YWx1ZTpmdW5jdGlvbiBnZXRGb3JtRWxlbWVudCgpe3JldHVybiB0aGlzLmZvcm19fSx7a2V5OlwiZ2V0TG9jYWxlXCIsdmFsdWU6ZnVuY3Rpb24gZ2V0TG9jYWxlKCl7cmV0dXJuIHRoaXMubG9jYWxlfX0se2tleTpcImdldFBsdWdpblwiLHZhbHVlOmZ1bmN0aW9uIGdldFBsdWdpbihlKXtyZXR1cm4gdGhpcy5wbHVnaW5zW2VdfX0se2tleTpcInVwZGF0ZUZpZWxkU3RhdHVzXCIsdmFsdWU6ZnVuY3Rpb24gdXBkYXRlRmllbGRTdGF0dXMoZSx0LGkpe3ZhciBfdGhpczU9dGhpczt2YXIgcz10aGlzLmVsZW1lbnRzW2VdO3ZhciBsPXNbMF0uZ2V0QXR0cmlidXRlKFwidHlwZVwiKTt2YXIgcj1cInJhZGlvXCI9PT1sfHxcImNoZWNrYm94XCI9PT1sP1tzWzBdXTpzO3IuZm9yRWFjaCgoZnVuY3Rpb24ocyl7cmV0dXJuIF90aGlzNS51cGRhdGVFbGVtZW50U3RhdHVzKGUscyx0LGkpfSkpO2lmKCFpKXtzd2l0Y2godCl7Y2FzZVwiTm90VmFsaWRhdGVkXCI6dGhpcy5lbWl0KFwiY29yZS5maWVsZC5ub3R2YWxpZGF0ZWRcIixlKTt0aGlzLnJlc3VsdHNbXCJkZWxldGVcIl0oZSk7YnJlYWs7Y2FzZVwiVmFsaWRhdGluZ1wiOnRoaXMuZW1pdChcImNvcmUuZmllbGQudmFsaWRhdGluZ1wiLGUpO3RoaXMucmVzdWx0c1tcImRlbGV0ZVwiXShlKTticmVhaztjYXNlXCJWYWxpZFwiOnRoaXMuZW1pdChcImNvcmUuZmllbGQudmFsaWRcIixlKTt0aGlzLnJlc3VsdHMuc2V0KGUsXCJWYWxpZFwiKTticmVhaztjYXNlXCJJbnZhbGlkXCI6dGhpcy5lbWl0KFwiY29yZS5maWVsZC5pbnZhbGlkXCIsZSk7dGhpcy5yZXN1bHRzLnNldChlLFwiSW52YWxpZFwiKTticmVha319cmV0dXJuIHRoaXN9fSx7a2V5OlwidXBkYXRlRWxlbWVudFN0YXR1c1wiLHZhbHVlOmZ1bmN0aW9uIHVwZGF0ZUVsZW1lbnRTdGF0dXMoZSx0LGkscyl7dmFyIF90aGlzNj10aGlzO3ZhciBsPXRoaXMuZWxlbWVudHNbZV07dmFyIHI9dGhpcy5maWVsZHNbZV0udmFsaWRhdG9yczt2YXIgYT1zP1tzXTpPYmplY3Qua2V5cyhyKTtzd2l0Y2goaSl7Y2FzZVwiTm90VmFsaWRhdGVkXCI6YS5mb3JFYWNoKChmdW5jdGlvbihpKXtyZXR1cm4gX3RoaXM2LmVtaXQoXCJjb3JlLnZhbGlkYXRvci5ub3R2YWxpZGF0ZWRcIix7ZWxlbWVudDp0LGVsZW1lbnRzOmwsZmllbGQ6ZSx2YWxpZGF0b3I6aX0pfSkpO3RoaXMuZW1pdChcImNvcmUuZWxlbWVudC5ub3R2YWxpZGF0ZWRcIix7ZWxlbWVudDp0LGVsZW1lbnRzOmwsZmllbGQ6ZX0pO2JyZWFrO2Nhc2VcIlZhbGlkYXRpbmdcIjphLmZvckVhY2goKGZ1bmN0aW9uKGkpe3JldHVybiBfdGhpczYuZW1pdChcImNvcmUudmFsaWRhdG9yLnZhbGlkYXRpbmdcIix7ZWxlbWVudDp0LGVsZW1lbnRzOmwsZmllbGQ6ZSx2YWxpZGF0b3I6aX0pfSkpO3RoaXMuZW1pdChcImNvcmUuZWxlbWVudC52YWxpZGF0aW5nXCIse2VsZW1lbnQ6dCxlbGVtZW50czpsLGZpZWxkOmV9KTticmVhaztjYXNlXCJWYWxpZFwiOmEuZm9yRWFjaCgoZnVuY3Rpb24oaSl7cmV0dXJuIF90aGlzNi5lbWl0KFwiY29yZS52YWxpZGF0b3IudmFsaWRhdGVkXCIse2VsZW1lbnQ6dCxmaWVsZDplLHJlc3VsdDp7bWVzc2FnZTpyW2ldLm1lc3NhZ2UsdmFsaWQ6dHJ1ZX0sdmFsaWRhdG9yOml9KX0pKTt0aGlzLmVtaXQoXCJjb3JlLmVsZW1lbnQudmFsaWRhdGVkXCIse2VsZW1lbnQ6dCxlbGVtZW50czpsLGZpZWxkOmUsdmFsaWQ6dHJ1ZX0pO2JyZWFrO2Nhc2VcIkludmFsaWRcIjphLmZvckVhY2goKGZ1bmN0aW9uKGkpe3JldHVybiBfdGhpczYuZW1pdChcImNvcmUudmFsaWRhdG9yLnZhbGlkYXRlZFwiLHtlbGVtZW50OnQsZmllbGQ6ZSxyZXN1bHQ6e21lc3NhZ2U6cltpXS5tZXNzYWdlLHZhbGlkOmZhbHNlfSx2YWxpZGF0b3I6aX0pfSkpO3RoaXMuZW1pdChcImNvcmUuZWxlbWVudC52YWxpZGF0ZWRcIix7ZWxlbWVudDp0LGVsZW1lbnRzOmwsZmllbGQ6ZSx2YWxpZDpmYWxzZX0pO2JyZWFrfXJldHVybiB0aGlzfX0se2tleTpcInJlc2V0Rm9ybVwiLHZhbHVlOmZ1bmN0aW9uIHJlc2V0Rm9ybShlKXt2YXIgX3RoaXM3PXRoaXM7T2JqZWN0LmtleXModGhpcy5maWVsZHMpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBfdGhpczcucmVzZXRGaWVsZCh0LGUpfSkpO3RoaXMuZW1pdChcImNvcmUuZm9ybS5yZXNldFwiLHtyZXNldDplfSk7cmV0dXJuIHRoaXN9fSx7a2V5OlwicmVzZXRGaWVsZFwiLHZhbHVlOmZ1bmN0aW9uIHJlc2V0RmllbGQoZSx0KXtpZih0KXt2YXIgX3Q9dGhpcy5lbGVtZW50c1tlXTt2YXIgX2k9X3RbMF0uZ2V0QXR0cmlidXRlKFwidHlwZVwiKTtfdC5mb3JFYWNoKChmdW5jdGlvbihlKXtpZihcInJhZGlvXCI9PT1faXx8XCJjaGVja2JveFwiPT09X2kpe2UucmVtb3ZlQXR0cmlidXRlKFwic2VsZWN0ZWRcIik7ZS5yZW1vdmVBdHRyaWJ1dGUoXCJjaGVja2VkXCIpO2UuY2hlY2tlZD1mYWxzZX1lbHNle2Uuc2V0QXR0cmlidXRlKFwidmFsdWVcIixcIlwiKTtpZihlIGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudHx8ZSBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpe2UudmFsdWU9XCJcIn19fSkpfXRoaXMudXBkYXRlRmllbGRTdGF0dXMoZSxcIk5vdFZhbGlkYXRlZFwiKTt0aGlzLmVtaXQoXCJjb3JlLmZpZWxkLnJlc2V0XCIse2ZpZWxkOmUscmVzZXQ6dH0pO3JldHVybiB0aGlzfX0se2tleTpcInJldmFsaWRhdGVGaWVsZFwiLHZhbHVlOmZ1bmN0aW9uIHJldmFsaWRhdGVGaWVsZChlKXt0aGlzLnVwZGF0ZUZpZWxkU3RhdHVzKGUsXCJOb3RWYWxpZGF0ZWRcIik7cmV0dXJuIHRoaXMudmFsaWRhdGVGaWVsZChlKX19LHtrZXk6XCJkaXNhYmxlVmFsaWRhdG9yXCIsdmFsdWU6ZnVuY3Rpb24gZGlzYWJsZVZhbGlkYXRvcihlLHQpe3JldHVybiB0aGlzLnRvZ2dsZVZhbGlkYXRvcihmYWxzZSxlLHQpfX0se2tleTpcImVuYWJsZVZhbGlkYXRvclwiLHZhbHVlOmZ1bmN0aW9uIGVuYWJsZVZhbGlkYXRvcihlLHQpe3JldHVybiB0aGlzLnRvZ2dsZVZhbGlkYXRvcih0cnVlLGUsdCl9fSx7a2V5OlwidXBkYXRlVmFsaWRhdG9yT3B0aW9uXCIsdmFsdWU6ZnVuY3Rpb24gdXBkYXRlVmFsaWRhdG9yT3B0aW9uKGUsdCxpLHMpe2lmKHRoaXMuZmllbGRzW2VdJiZ0aGlzLmZpZWxkc1tlXS52YWxpZGF0b3JzJiZ0aGlzLmZpZWxkc1tlXS52YWxpZGF0b3JzW3RdKXt0aGlzLmZpZWxkc1tlXS52YWxpZGF0b3JzW3RdW2ldPXN9cmV0dXJuIHRoaXN9fSx7a2V5Olwic2V0RmllbGRPcHRpb25zXCIsdmFsdWU6ZnVuY3Rpb24gc2V0RmllbGRPcHRpb25zKGUsdCl7dGhpcy5maWVsZHNbZV09dDtyZXR1cm4gdGhpc319LHtrZXk6XCJkZXN0cm95XCIsdmFsdWU6ZnVuY3Rpb24gZGVzdHJveSgpe3ZhciBfdGhpczg9dGhpcztPYmplY3Qua2V5cyh0aGlzLnBsdWdpbnMpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBfdGhpczgucGx1Z2luc1tlXS51bmluc3RhbGwoKX0pKTt0aGlzLmVlLmNsZWFyKCk7dGhpcy5maWx0ZXIuY2xlYXIoKTt0aGlzLnJlc3VsdHMuY2xlYXIoKTt0aGlzLnBsdWdpbnM9e307cmV0dXJuIHRoaXN9fSx7a2V5Olwic2V0TG9jYWxlXCIsdmFsdWU6ZnVuY3Rpb24gc2V0TG9jYWxlKGUsdCl7dGhpcy5sb2NhbGU9ZTt0aGlzLmxvY2FsaXphdGlvbj10O3JldHVybiB0aGlzfX0se2tleTpcIndhdGVyZmFsbFwiLHZhbHVlOmZ1bmN0aW9uIHdhdGVyZmFsbChlKXtyZXR1cm4gZS5yZWR1Y2UoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIHQoKS50aGVuKChmdW5jdGlvbih0KXtlLnB1c2godCk7cmV0dXJuIGV9KSl9KSl9KSxQcm9taXNlLnJlc29sdmUoW10pKX19LHtrZXk6XCJxdWVyeUVsZW1lbnRzXCIsdmFsdWU6ZnVuY3Rpb24gcXVlcnlFbGVtZW50cyhlKXt2YXIgdD10aGlzLmZpZWxkc1tlXS5zZWxlY3Rvcj9cIiNcIj09PXRoaXMuZmllbGRzW2VdLnNlbGVjdG9yLmNoYXJBdCgwKT8nW2lkPVwiJy5jb25jYXQodGhpcy5maWVsZHNbZV0uc2VsZWN0b3Iuc3Vic3RyaW5nKDEpLCdcIl0nKTp0aGlzLmZpZWxkc1tlXS5zZWxlY3RvcjonW25hbWU9XCInLmNvbmNhdChlLCdcIl0nKTtyZXR1cm5bXS5zbGljZS5jYWxsKHRoaXMuZm9ybS5xdWVyeVNlbGVjdG9yQWxsKHQpKX19LHtrZXk6XCJub3JtYWxpemVSZXN1bHRcIix2YWx1ZTpmdW5jdGlvbiBub3JtYWxpemVSZXN1bHQoZSx0LGkpe3ZhciBzPXRoaXMuZmllbGRzW2VdLnZhbGlkYXRvcnNbdF07cmV0dXJuIE9iamVjdC5hc3NpZ24oe30saSx7bWVzc2FnZTppLm1lc3NhZ2V8fChzP3MubWVzc2FnZTpcIlwiKXx8KHRoaXMubG9jYWxpemF0aW9uJiZ0aGlzLmxvY2FsaXphdGlvblt0XSYmdGhpcy5sb2NhbGl6YXRpb25bdF1bXCJkZWZhdWx0XCJdP3RoaXMubG9jYWxpemF0aW9uW3RdW1wiZGVmYXVsdFwiXTpcIlwiKXx8XCJUaGUgZmllbGQgXCIuY29uY2F0KGUsXCIgaXMgbm90IHZhbGlkXCIpfSl9fSx7a2V5OlwidG9nZ2xlVmFsaWRhdG9yXCIsdmFsdWU6ZnVuY3Rpb24gdG9nZ2xlVmFsaWRhdG9yKGUsdCxpKXt2YXIgX3RoaXM5PXRoaXM7dmFyIHM9dGhpcy5maWVsZHNbdF0udmFsaWRhdG9ycztpZihpJiZzJiZzW2ldKXt0aGlzLmZpZWxkc1t0XS52YWxpZGF0b3JzW2ldLmVuYWJsZWQ9ZX1lbHNlIGlmKCFpKXtPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChmdW5jdGlvbihpKXtyZXR1cm4gX3RoaXM5LmZpZWxkc1t0XS52YWxpZGF0b3JzW2ldLmVuYWJsZWQ9ZX0pKX1yZXR1cm4gdGhpcy51cGRhdGVGaWVsZFN0YXR1cyh0LFwiTm90VmFsaWRhdGVkXCIsaSl9fV0pO3JldHVybiBsfSgpO2Z1bmN0aW9uIHIkZChlLHQpe3ZhciBpPU9iamVjdC5hc3NpZ24oe30se2ZpZWxkczp7fSxsb2NhbGU6XCJlbl9VU1wiLHBsdWdpbnM6e319LHQpO3ZhciByPW5ldyBsJDEoZSxpLmZpZWxkcyk7ci5zZXRMb2NhbGUoaS5sb2NhbGUsaS5sb2NhbGl6YXRpb24pO09iamVjdC5rZXlzKGkucGx1Z2lucykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHIucmVnaXN0ZXJQbHVnaW4oZSxpLnBsdWdpbnNbZV0pfSkpO09iamVjdC5rZXlzKHMkNykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHIucmVnaXN0ZXJWYWxpZGF0b3IoZSxzJDdbZV0pfSkpO09iamVjdC5rZXlzKGkuZmllbGRzKS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gci5hZGRGaWVsZChlLGkuZmllbGRzW2VdKX0pKTtyZXR1cm4gcn12YXIgdCQxMD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoX3Qpe19jbGFzc0NhbGxDaGVjayh0aGlzLHQpO3RoaXMub3B0cz1fdH1fY3JlYXRlQ2xhc3ModCxbe2tleTpcInNldENvcmVcIix2YWx1ZTpmdW5jdGlvbiBzZXRDb3JlKHQpe3RoaXMuY29yZT10O3JldHVybiB0aGlzfX0se2tleTpcImluc3RhbGxcIix2YWx1ZTpmdW5jdGlvbiBpbnN0YWxsKCl7fX0se2tleTpcInVuaW5zdGFsbFwiLHZhbHVlOmZ1bmN0aW9uIHVuaW5zdGFsbCgpe319XSk7cmV0dXJuIHR9KCk7dmFyIGluZGV4JDE9e2dldEZpZWxkVmFsdWU6ZX07dmFyIGUkRD1mdW5jdGlvbihfdCl7X2luaGVyaXRzKGUsX3QpO3ZhciBfc3VwZXI9X2NyZWF0ZVN1cGVyKGUpO2Z1bmN0aW9uIGUodCl7dmFyIF90aGlzO19jbGFzc0NhbGxDaGVjayh0aGlzLGUpO190aGlzPV9zdXBlci5jYWxsKHRoaXMsdCk7X3RoaXMub3B0cz10fHx7fTtfdGhpcy52YWxpZGF0b3JOYW1lRmlsdGVyPV90aGlzLmdldFZhbGlkYXRvck5hbWUuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7cmV0dXJuIF90aGlzfV9jcmVhdGVDbGFzcyhlLFt7a2V5OlwiaW5zdGFsbFwiLHZhbHVlOmZ1bmN0aW9uIGluc3RhbGwoKXt0aGlzLmNvcmUucmVnaXN0ZXJGaWx0ZXIoXCJ2YWxpZGF0b3ItbmFtZVwiLHRoaXMudmFsaWRhdG9yTmFtZUZpbHRlcil9fSx7a2V5OlwidW5pbnN0YWxsXCIsdmFsdWU6ZnVuY3Rpb24gdW5pbnN0YWxsKCl7dGhpcy5jb3JlLmRlcmVnaXN0ZXJGaWx0ZXIoXCJ2YWxpZGF0b3ItbmFtZVwiLHRoaXMudmFsaWRhdG9yTmFtZUZpbHRlcil9fSx7a2V5OlwiZ2V0VmFsaWRhdG9yTmFtZVwiLHZhbHVlOmZ1bmN0aW9uIGdldFZhbGlkYXRvck5hbWUodCxlKXtyZXR1cm4gdGhpcy5vcHRzW3RdfHx0fX1dKTtyZXR1cm4gZX0odCQxMCk7dmFyIGk9ZnVuY3Rpb24oX2Upe19pbmhlcml0cyhpLF9lKTt2YXIgX3N1cGVyPV9jcmVhdGVTdXBlcihpKTtmdW5jdGlvbiBpKCl7dmFyIF90aGlzO19jbGFzc0NhbGxDaGVjayh0aGlzLGkpO190aGlzPV9zdXBlci5jYWxsKHRoaXMse30pO190aGlzLmVsZW1lbnRWYWxpZGF0ZWRIYW5kbGVyPV90aGlzLm9uRWxlbWVudFZhbGlkYXRlZC5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtfdGhpcy5maWVsZFZhbGlkSGFuZGxlcj1fdGhpcy5vbkZpZWxkVmFsaWQuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7X3RoaXMuZmllbGRJbnZhbGlkSGFuZGxlcj1fdGhpcy5vbkZpZWxkSW52YWxpZC5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtfdGhpcy5tZXNzYWdlRGlzcGxheWVkSGFuZGxlcj1fdGhpcy5vbk1lc3NhZ2VEaXNwbGF5ZWQuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7cmV0dXJuIF90aGlzfV9jcmVhdGVDbGFzcyhpLFt7a2V5OlwiaW5zdGFsbFwiLHZhbHVlOmZ1bmN0aW9uIGluc3RhbGwoKXt0aGlzLmNvcmUub24oXCJjb3JlLmZpZWxkLnZhbGlkXCIsdGhpcy5maWVsZFZhbGlkSGFuZGxlcikub24oXCJjb3JlLmZpZWxkLmludmFsaWRcIix0aGlzLmZpZWxkSW52YWxpZEhhbmRsZXIpLm9uKFwiY29yZS5lbGVtZW50LnZhbGlkYXRlZFwiLHRoaXMuZWxlbWVudFZhbGlkYXRlZEhhbmRsZXIpLm9uKFwicGx1Z2lucy5tZXNzYWdlLmRpc3BsYXllZFwiLHRoaXMubWVzc2FnZURpc3BsYXllZEhhbmRsZXIpfX0se2tleTpcInVuaW5zdGFsbFwiLHZhbHVlOmZ1bmN0aW9uIHVuaW5zdGFsbCgpe3RoaXMuY29yZS5vZmYoXCJjb3JlLmZpZWxkLnZhbGlkXCIsdGhpcy5maWVsZFZhbGlkSGFuZGxlcikub2ZmKFwiY29yZS5maWVsZC5pbnZhbGlkXCIsdGhpcy5maWVsZEludmFsaWRIYW5kbGVyKS5vZmYoXCJjb3JlLmVsZW1lbnQudmFsaWRhdGVkXCIsdGhpcy5lbGVtZW50VmFsaWRhdGVkSGFuZGxlcikub2ZmKFwicGx1Z2lucy5tZXNzYWdlLmRpc3BsYXllZFwiLHRoaXMubWVzc2FnZURpc3BsYXllZEhhbmRsZXIpfX0se2tleTpcIm9uRWxlbWVudFZhbGlkYXRlZFwiLHZhbHVlOmZ1bmN0aW9uIG9uRWxlbWVudFZhbGlkYXRlZChlKXtpZihlLnZhbGlkKXtlLmVsZW1lbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1pbnZhbGlkXCIsXCJmYWxzZVwiKTtlLmVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFwiYXJpYS1kZXNjcmliZWRieVwiKX19fSx7a2V5Olwib25GaWVsZFZhbGlkXCIsdmFsdWU6ZnVuY3Rpb24gb25GaWVsZFZhbGlkKGUpe3ZhciBpPXRoaXMuY29yZS5nZXRFbGVtZW50cyhlKTtpZihpKXtpLmZvckVhY2goKGZ1bmN0aW9uKGUpe2Uuc2V0QXR0cmlidXRlKFwiYXJpYS1pbnZhbGlkXCIsXCJmYWxzZVwiKTtlLnJlbW92ZUF0dHJpYnV0ZShcImFyaWEtZGVzY3JpYmVkYnlcIil9KSl9fX0se2tleTpcIm9uRmllbGRJbnZhbGlkXCIsdmFsdWU6ZnVuY3Rpb24gb25GaWVsZEludmFsaWQoZSl7dmFyIGk9dGhpcy5jb3JlLmdldEVsZW1lbnRzKGUpO2lmKGkpe2kuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2V0QXR0cmlidXRlKFwiYXJpYS1pbnZhbGlkXCIsXCJ0cnVlXCIpfSkpfX19LHtrZXk6XCJvbk1lc3NhZ2VEaXNwbGF5ZWRcIix2YWx1ZTpmdW5jdGlvbiBvbk1lc3NhZ2VEaXNwbGF5ZWQoZSl7ZS5tZXNzYWdlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsXCJhbGVydFwiKTtlLm1lc3NhZ2VFbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtaGlkZGVuXCIsXCJmYWxzZVwiKTt2YXIgaT10aGlzLmNvcmUuZ2V0RWxlbWVudHMoZS5maWVsZCk7dmFyIHQ9aS5pbmRleE9mKGUuZWxlbWVudCk7dmFyIGw9XCJqcy1mdi1cIi5jb25jYXQoZS5maWVsZCxcIi1cIikuY29uY2F0KHQsXCItXCIpLmNvbmNhdChEYXRlLm5vdygpLFwiLW1lc3NhZ2VcIik7ZS5tZXNzYWdlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJpZFwiLGwpO2UuZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWRlc2NyaWJlZGJ5XCIsbCk7dmFyIGE9ZS5lbGVtZW50LmdldEF0dHJpYnV0ZShcInR5cGVcIik7aWYoXCJyYWRpb1wiPT09YXx8XCJjaGVja2JveFwiPT09YSl7aS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWRlc2NyaWJlZGJ5XCIsbCl9KSl9fX1dKTtyZXR1cm4gaX0odCQxMCk7dmFyIHQkMTE9ZnVuY3Rpb24oX2Upe19pbmhlcml0cyh0LF9lKTt2YXIgX3N1cGVyPV9jcmVhdGVTdXBlcih0KTtmdW5jdGlvbiB0KGUpe3ZhciBfdGhpcztfY2xhc3NDYWxsQ2hlY2sodGhpcyx0KTtfdGhpcz1fc3VwZXIuY2FsbCh0aGlzLGUpO190aGlzLmFkZGVkRmllbGRzPW5ldyBNYXA7X3RoaXMub3B0cz1PYmplY3QuYXNzaWduKHt9LHtodG1sNUlucHV0OmZhbHNlLHBsdWdpblByZWZpeDpcImRhdGEtZnZwLVwiLHByZWZpeDpcImRhdGEtZnYtXCJ9LGUpO190aGlzLmZpZWxkQWRkZWRIYW5kbGVyPV90aGlzLm9uRmllbGRBZGRlZC5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtfdGhpcy5maWVsZFJlbW92ZWRIYW5kbGVyPV90aGlzLm9uRmllbGRSZW1vdmVkLmJpbmQoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO3JldHVybiBfdGhpc31fY3JlYXRlQ2xhc3ModCxbe2tleTpcImluc3RhbGxcIix2YWx1ZTpmdW5jdGlvbiBpbnN0YWxsKCl7dmFyIF90aGlzMj10aGlzO3RoaXMucGFyc2VQbHVnaW5zKCk7dmFyIGU9dGhpcy5wYXJzZU9wdGlvbnMoKTtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbih0KXtpZighX3RoaXMyLmFkZGVkRmllbGRzLmhhcyh0KSl7X3RoaXMyLmFkZGVkRmllbGRzLnNldCh0LHRydWUpfV90aGlzMi5jb3JlLmFkZEZpZWxkKHQsZVt0XSl9KSk7dGhpcy5jb3JlLm9uKFwiY29yZS5maWVsZC5hZGRlZFwiLHRoaXMuZmllbGRBZGRlZEhhbmRsZXIpLm9uKFwiY29yZS5maWVsZC5yZW1vdmVkXCIsdGhpcy5maWVsZFJlbW92ZWRIYW5kbGVyKX19LHtrZXk6XCJ1bmluc3RhbGxcIix2YWx1ZTpmdW5jdGlvbiB1bmluc3RhbGwoKXt0aGlzLmFkZGVkRmllbGRzLmNsZWFyKCk7dGhpcy5jb3JlLm9mZihcImNvcmUuZmllbGQuYWRkZWRcIix0aGlzLmZpZWxkQWRkZWRIYW5kbGVyKS5vZmYoXCJjb3JlLmZpZWxkLnJlbW92ZWRcIix0aGlzLmZpZWxkUmVtb3ZlZEhhbmRsZXIpfX0se2tleTpcIm9uRmllbGRBZGRlZFwiLHZhbHVlOmZ1bmN0aW9uIG9uRmllbGRBZGRlZChlKXt2YXIgX3RoaXMzPXRoaXM7dmFyIHQ9ZS5lbGVtZW50cztpZighdHx8dC5sZW5ndGg9PT0wfHx0aGlzLmFkZGVkRmllbGRzLmhhcyhlLmZpZWxkKSl7cmV0dXJufXRoaXMuYWRkZWRGaWVsZHMuc2V0KGUuZmllbGQsdHJ1ZSk7dC5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgcz1fdGhpczMucGFyc2VFbGVtZW50KHQpO2lmKCFfdGhpczMuaXNFbXB0eU9wdGlvbihzKSl7dmFyIF90PXtzZWxlY3RvcjplLm9wdGlvbnMuc2VsZWN0b3IsdmFsaWRhdG9yczpPYmplY3QuYXNzaWduKHt9LGUub3B0aW9ucy52YWxpZGF0b3JzfHx7fSxzLnZhbGlkYXRvcnMpfTtfdGhpczMuY29yZS5zZXRGaWVsZE9wdGlvbnMoZS5maWVsZCxfdCl9fSkpfX0se2tleTpcIm9uRmllbGRSZW1vdmVkXCIsdmFsdWU6ZnVuY3Rpb24gb25GaWVsZFJlbW92ZWQoZSl7aWYoZS5maWVsZCYmdGhpcy5hZGRlZEZpZWxkcy5oYXMoZS5maWVsZCkpe3RoaXMuYWRkZWRGaWVsZHNbXCJkZWxldGVcIl0oZS5maWVsZCl9fX0se2tleTpcInBhcnNlT3B0aW9uc1wiLHZhbHVlOmZ1bmN0aW9uIHBhcnNlT3B0aW9ucygpe3ZhciBfdGhpczQ9dGhpczt2YXIgZT10aGlzLm9wdHMucHJlZml4O3ZhciB0PXt9O3ZhciBzPXRoaXMuY29yZS5nZXRGaWVsZHMoKTt2YXIgYT10aGlzLmNvcmUuZ2V0Rm9ybUVsZW1lbnQoKTt2YXIgaT1bXS5zbGljZS5jYWxsKGEucXVlcnlTZWxlY3RvckFsbChcIltuYW1lXSwgW1wiLmNvbmNhdChlLFwiZmllbGRdXCIpKSk7aS5mb3JFYWNoKChmdW5jdGlvbihzKXt2YXIgYT1fdGhpczQucGFyc2VFbGVtZW50KHMpO2lmKCFfdGhpczQuaXNFbXB0eU9wdGlvbihhKSl7dmFyIF9pPXMuZ2V0QXR0cmlidXRlKFwibmFtZVwiKXx8cy5nZXRBdHRyaWJ1dGUoXCJcIi5jb25jYXQoZSxcImZpZWxkXCIpKTt0W19pXT1PYmplY3QuYXNzaWduKHt9LHRbX2ldLGEpfX0pKTtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihlKXtPYmplY3Qua2V5cyh0W2VdLnZhbGlkYXRvcnMpLmZvckVhY2goKGZ1bmN0aW9uKGEpe3RbZV0udmFsaWRhdG9yc1thXS5lbmFibGVkPXRbZV0udmFsaWRhdG9yc1thXS5lbmFibGVkfHxmYWxzZTtpZihzW2VdJiZzW2VdLnZhbGlkYXRvcnMmJnNbZV0udmFsaWRhdG9yc1thXSl7T2JqZWN0LmFzc2lnbih0W2VdLnZhbGlkYXRvcnNbYV0sc1tlXS52YWxpZGF0b3JzW2FdKX19KSl9KSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30scyx0KX19LHtrZXk6XCJjcmVhdGVQbHVnaW5JbnN0YW5jZVwiLHZhbHVlOmZ1bmN0aW9uIGNyZWF0ZVBsdWdpbkluc3RhbmNlKGUsdCl7dmFyIHM9ZS5zcGxpdChcIi5cIik7dmFyIGE9d2luZG93fHx0aGlzO2Zvcih2YXIgX2UyPTAsX3QyPXMubGVuZ3RoO19lMjxfdDI7X2UyKyspe2E9YVtzW19lMl1dfWlmKHR5cGVvZiBhIT09XCJmdW5jdGlvblwiKXt0aHJvdyBuZXcgRXJyb3IoXCJ0aGUgcGx1Z2luIFwiLmNvbmNhdChlLFwiIGRvZXNuJ3QgZXhpc3RcIikpfXJldHVybiBuZXcgYSh0KX19LHtrZXk6XCJwYXJzZVBsdWdpbnNcIix2YWx1ZTpmdW5jdGlvbiBwYXJzZVBsdWdpbnMoKXt2YXIgX3RoaXM1PXRoaXM7dmFyIGU9dGhpcy5jb3JlLmdldEZvcm1FbGVtZW50KCk7dmFyIHQ9bmV3IFJlZ0V4cChcIl5cIi5jb25jYXQodGhpcy5vcHRzLnBsdWdpblByZWZpeCxcIihbYS16MC05LV0rKShfX18pKihbYS16MC05LV0rKSokXCIpKTt2YXIgcz1lLmF0dHJpYnV0ZXMubGVuZ3RoO3ZhciBhPXt9O2Zvcih2YXIgaT0wO2k8cztpKyspe3ZhciBfcz1lLmF0dHJpYnV0ZXNbaV0ubmFtZTt2YXIgbj1lLmF0dHJpYnV0ZXNbaV0udmFsdWU7dmFyIHI9dC5leGVjKF9zKTtpZihyJiZyLmxlbmd0aD09PTQpe3ZhciBfZTM9dGhpcy50b0NhbWVsQ2FzZShyWzFdKTthW19lM109T2JqZWN0LmFzc2lnbih7fSxyWzNdP19kZWZpbmVQcm9wZXJ0eSh7fSx0aGlzLnRvQ2FtZWxDYXNlKHJbM10pLG4pOntlbmFibGVkOlwiXCI9PT1ufHxcInRydWVcIj09PW59LGFbX2UzXSl9fU9iamVjdC5rZXlzKGEpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWFbZV07dmFyIHM9dFtcImVuYWJsZWRcIl07dmFyIGk9dFtcImNsYXNzXCJdO2lmKHMmJmkpe2RlbGV0ZSB0W1wiZW5hYmxlZFwiXTtkZWxldGUgdFtcImNsYXp6XCJdO3ZhciBfczI9X3RoaXM1LmNyZWF0ZVBsdWdpbkluc3RhbmNlKGksdCk7X3RoaXM1LmNvcmUucmVnaXN0ZXJQbHVnaW4oZSxfczIpfX0pKX19LHtrZXk6XCJpc0VtcHR5T3B0aW9uXCIsdmFsdWU6ZnVuY3Rpb24gaXNFbXB0eU9wdGlvbihlKXt2YXIgdD1lLnZhbGlkYXRvcnM7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmxlbmd0aD09PTAmJnQuY29uc3RydWN0b3I9PT1PYmplY3R9fSx7a2V5OlwicGFyc2VFbGVtZW50XCIsdmFsdWU6ZnVuY3Rpb24gcGFyc2VFbGVtZW50KGUpe3ZhciB0PW5ldyBSZWdFeHAoXCJeXCIuY29uY2F0KHRoaXMub3B0cy5wcmVmaXgsXCIoW2EtejAtOS1dKykoX19fKSooW2EtejAtOS1dKykqJFwiKSk7dmFyIHM9ZS5hdHRyaWJ1dGVzLmxlbmd0aDt2YXIgYT17fTt2YXIgaT1lLmdldEF0dHJpYnV0ZShcInR5cGVcIik7Zm9yKHZhciBuPTA7bjxzO24rKyl7dmFyIF9zMz1lLmF0dHJpYnV0ZXNbbl0ubmFtZTt2YXIgcj1lLmF0dHJpYnV0ZXNbbl0udmFsdWU7aWYodGhpcy5vcHRzLmh0bWw1SW5wdXQpe3N3aXRjaCh0cnVlKXtjYXNlXCJtaW5sZW5ndGhcIj09PV9zMzphW1wic3RyaW5nTGVuZ3RoXCJdPU9iamVjdC5hc3NpZ24oe30se2VuYWJsZWQ6dHJ1ZSxtaW46cGFyc2VJbnQociwxMCl9LGFbXCJzdHJpbmdMZW5ndGhcIl0pO2JyZWFrO2Nhc2VcIm1heGxlbmd0aFwiPT09X3MzOmFbXCJzdHJpbmdMZW5ndGhcIl09T2JqZWN0LmFzc2lnbih7fSx7ZW5hYmxlZDp0cnVlLG1heDpwYXJzZUludChyLDEwKX0sYVtcInN0cmluZ0xlbmd0aFwiXSk7YnJlYWs7Y2FzZVwicGF0dGVyblwiPT09X3MzOmFbXCJyZWdleHBcIl09T2JqZWN0LmFzc2lnbih7fSx7ZW5hYmxlZDp0cnVlLHJlZ2V4cDpyfSxhW1wicmVnZXhwXCJdKTticmVhaztjYXNlXCJyZXF1aXJlZFwiPT09X3MzOmFbXCJub3RFbXB0eVwiXT1PYmplY3QuYXNzaWduKHt9LHtlbmFibGVkOnRydWV9LGFbXCJub3RFbXB0eVwiXSk7YnJlYWs7Y2FzZVwidHlwZVwiPT09X3MzJiZcImNvbG9yXCI9PT1yOmFbXCJjb2xvclwiXT1PYmplY3QuYXNzaWduKHt9LHtlbmFibGVkOnRydWUsdHlwZTpcImhleFwifSxhW1wiY29sb3JcIl0pO2JyZWFrO2Nhc2VcInR5cGVcIj09PV9zMyYmXCJlbWFpbFwiPT09cjphW1wiZW1haWxBZGRyZXNzXCJdPU9iamVjdC5hc3NpZ24oe30se2VuYWJsZWQ6dHJ1ZX0sYVtcImVtYWlsQWRkcmVzc1wiXSk7YnJlYWs7Y2FzZVwidHlwZVwiPT09X3MzJiZcInVybFwiPT09cjphW1widXJpXCJdPU9iamVjdC5hc3NpZ24oe30se2VuYWJsZWQ6dHJ1ZX0sYVtcInVyaVwiXSk7YnJlYWs7Y2FzZVwidHlwZVwiPT09X3MzJiZcInJhbmdlXCI9PT1yOmFbXCJiZXR3ZWVuXCJdPU9iamVjdC5hc3NpZ24oe30se2VuYWJsZWQ6dHJ1ZSxtYXg6cGFyc2VGbG9hdChlLmdldEF0dHJpYnV0ZShcIm1heFwiKSksbWluOnBhcnNlRmxvYXQoZS5nZXRBdHRyaWJ1dGUoXCJtaW5cIikpfSxhW1wiYmV0d2VlblwiXSk7YnJlYWs7Y2FzZVwibWluXCI9PT1fczMmJmkhPT1cImRhdGVcIiYmaSE9PVwicmFuZ2VcIjphW1wiZ3JlYXRlclRoYW5cIl09T2JqZWN0LmFzc2lnbih7fSx7ZW5hYmxlZDp0cnVlLG1pbjpwYXJzZUZsb2F0KHIpfSxhW1wiZ3JlYXRlclRoYW5cIl0pO2JyZWFrO2Nhc2VcIm1heFwiPT09X3MzJiZpIT09XCJkYXRlXCImJmkhPT1cInJhbmdlXCI6YVtcImxlc3NUaGFuXCJdPU9iamVjdC5hc3NpZ24oe30se2VuYWJsZWQ6dHJ1ZSxtYXg6cGFyc2VGbG9hdChyKX0sYVtcImxlc3NUaGFuXCJdKTticmVha319dmFyIGw9dC5leGVjKF9zMyk7aWYobCYmbC5sZW5ndGg9PT00KXt2YXIgX2U0PXRoaXMudG9DYW1lbENhc2UobFsxXSk7YVtfZTRdPU9iamVjdC5hc3NpZ24oe30sbFszXT9fZGVmaW5lUHJvcGVydHkoe30sdGhpcy50b0NhbWVsQ2FzZShsWzNdKSx0aGlzLm5vcm1hbGl6ZVZhbHVlKHIpKTp7ZW5hYmxlZDpcIlwiPT09cnx8XCJ0cnVlXCI9PT1yfSxhW19lNF0pfX1yZXR1cm57dmFsaWRhdG9yczphfX19LHtrZXk6XCJub3JtYWxpemVWYWx1ZVwiLHZhbHVlOmZ1bmN0aW9uIG5vcm1hbGl6ZVZhbHVlKGUpe3JldHVybiBlPT09XCJ0cnVlXCI/dHJ1ZTplPT09XCJmYWxzZVwiP2ZhbHNlOmV9fSx7a2V5OlwidG9VcHBlckNhc2VcIix2YWx1ZTpmdW5jdGlvbiB0b1VwcGVyQ2FzZShlKXtyZXR1cm4gZS5jaGFyQXQoMSkudG9VcHBlckNhc2UoKX19LHtrZXk6XCJ0b0NhbWVsQ2FzZVwiLHZhbHVlOmZ1bmN0aW9uIHRvQ2FtZWxDYXNlKGUpe3JldHVybiBlLnJlcGxhY2UoLy0uL2csdGhpcy50b1VwcGVyQ2FzZSl9fV0pO3JldHVybiB0fSh0JDEwKTt2YXIgbyQ0PWZ1bmN0aW9uKF90KXtfaW5oZXJpdHMobyxfdCk7dmFyIF9zdXBlcj1fY3JlYXRlU3VwZXIobyk7ZnVuY3Rpb24gbygpe3ZhciBfdGhpcztfY2xhc3NDYWxsQ2hlY2sodGhpcyxvKTtfdGhpcz1fc3VwZXIuY2FsbCh0aGlzLHt9KTtfdGhpcy5vblZhbGlkSGFuZGxlcj1fdGhpcy5vbkZvcm1WYWxpZC5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtyZXR1cm4gX3RoaXN9X2NyZWF0ZUNsYXNzKG8sW3trZXk6XCJpbnN0YWxsXCIsdmFsdWU6ZnVuY3Rpb24gaW5zdGFsbCgpe3ZhciB0PXRoaXMuY29yZS5nZXRGb3JtRWxlbWVudCgpO2lmKHQucXVlcnlTZWxlY3RvckFsbCgnW3R5cGU9XCJzdWJtaXRcIl1bbmFtZT1cInN1Ym1pdFwiXScpLmxlbmd0aCl7dGhyb3cgbmV3IEVycm9yKFwiRG8gbm90IHVzZSBgc3VibWl0YCBmb3IgdGhlIG5hbWUgYXR0cmlidXRlIG9mIHN1Ym1pdCBidXR0b25cIil9dGhpcy5jb3JlLm9uKFwiY29yZS5mb3JtLnZhbGlkXCIsdGhpcy5vblZhbGlkSGFuZGxlcil9fSx7a2V5OlwidW5pbnN0YWxsXCIsdmFsdWU6ZnVuY3Rpb24gdW5pbnN0YWxsKCl7dGhpcy5jb3JlLm9mZihcImNvcmUuZm9ybS52YWxpZFwiLHRoaXMub25WYWxpZEhhbmRsZXIpfX0se2tleTpcIm9uRm9ybVZhbGlkXCIsdmFsdWU6ZnVuY3Rpb24gb25Gb3JtVmFsaWQoKXt2YXIgdD10aGlzLmNvcmUuZ2V0Rm9ybUVsZW1lbnQoKTtpZih0IGluc3RhbmNlb2YgSFRNTEZvcm1FbGVtZW50KXt0LnN1Ym1pdCgpfX19XSk7cmV0dXJuIG99KHQkMTApO3ZhciBlJEU9ZnVuY3Rpb24oX3Qpe19pbmhlcml0cyhlLF90KTt2YXIgX3N1cGVyPV9jcmVhdGVTdXBlcihlKTtmdW5jdGlvbiBlKHQpe3ZhciBfdGhpcztfY2xhc3NDYWxsQ2hlY2sodGhpcyxlKTtfdGhpcz1fc3VwZXIuY2FsbCh0aGlzLHQpO190aGlzLm9wdHM9dHx8e307X3RoaXMudHJpZ2dlckV4ZWN1dGVkSGFuZGxlcj1fdGhpcy5vblRyaWdnZXJFeGVjdXRlZC5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtyZXR1cm4gX3RoaXN9X2NyZWF0ZUNsYXNzKGUsW3trZXk6XCJpbnN0YWxsXCIsdmFsdWU6ZnVuY3Rpb24gaW5zdGFsbCgpe3RoaXMuY29yZS5vbihcInBsdWdpbnMudHJpZ2dlci5leGVjdXRlZFwiLHRoaXMudHJpZ2dlckV4ZWN1dGVkSGFuZGxlcil9fSx7a2V5OlwidW5pbnN0YWxsXCIsdmFsdWU6ZnVuY3Rpb24gdW5pbnN0YWxsKCl7dGhpcy5jb3JlLm9mZihcInBsdWdpbnMudHJpZ2dlci5leGVjdXRlZFwiLHRoaXMudHJpZ2dlckV4ZWN1dGVkSGFuZGxlcil9fSx7a2V5Olwib25UcmlnZ2VyRXhlY3V0ZWRcIix2YWx1ZTpmdW5jdGlvbiBvblRyaWdnZXJFeGVjdXRlZCh0KXtpZih0aGlzLm9wdHNbdC5maWVsZF0pe3ZhciBfZT10aGlzLm9wdHNbdC5maWVsZF0uc3BsaXQoXCIgXCIpO3ZhciBfaXRlcmF0b3I9X2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIoX2UpLF9zdGVwO3RyeXtmb3IoX2l0ZXJhdG9yLnMoKTshKF9zdGVwPV9pdGVyYXRvci5uKCkpLmRvbmU7KXt2YXIgX3QyPV9zdGVwLnZhbHVlO3ZhciBfZTI9X3QyLnRyaW0oKTtpZih0aGlzLm9wdHNbX2UyXSl7dGhpcy5jb3JlLnJldmFsaWRhdGVGaWVsZChfZTIpfX19Y2F0Y2goZXJyKXtfaXRlcmF0b3IuZShlcnIpfWZpbmFsbHl7X2l0ZXJhdG9yLmYoKX19fX1dKTtyZXR1cm4gZX0odCQxMCk7dmFyIGUkRj1mdW5jdGlvbihfdCl7X2luaGVyaXRzKGUsX3QpO3ZhciBfc3VwZXI9X2NyZWF0ZVN1cGVyKGUpO2Z1bmN0aW9uIGUodCl7dmFyIF90aGlzO19jbGFzc0NhbGxDaGVjayh0aGlzLGUpO190aGlzPV9zdXBlci5jYWxsKHRoaXMsdCk7X3RoaXMub3B0cz1PYmplY3QuYXNzaWduKHt9LHtleGNsdWRlZDplLmRlZmF1bHRJZ25vcmV9LHQpO190aGlzLmlnbm9yZVZhbGlkYXRpb25GaWx0ZXI9X3RoaXMuaWdub3JlVmFsaWRhdGlvbi5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtyZXR1cm4gX3RoaXN9X2NyZWF0ZUNsYXNzKGUsW3trZXk6XCJpbnN0YWxsXCIsdmFsdWU6ZnVuY3Rpb24gaW5zdGFsbCgpe3RoaXMuY29yZS5yZWdpc3RlckZpbHRlcihcImVsZW1lbnQtaWdub3JlZFwiLHRoaXMuaWdub3JlVmFsaWRhdGlvbkZpbHRlcil9fSx7a2V5OlwidW5pbnN0YWxsXCIsdmFsdWU6ZnVuY3Rpb24gdW5pbnN0YWxsKCl7dGhpcy5jb3JlLmRlcmVnaXN0ZXJGaWx0ZXIoXCJlbGVtZW50LWlnbm9yZWRcIix0aGlzLmlnbm9yZVZhbGlkYXRpb25GaWx0ZXIpfX0se2tleTpcImlnbm9yZVZhbGlkYXRpb25cIix2YWx1ZTpmdW5jdGlvbiBpZ25vcmVWYWxpZGF0aW9uKHQsZSxpKXtyZXR1cm4gdGhpcy5vcHRzLmV4Y2x1ZGVkLmFwcGx5KHRoaXMsW3QsZSxpXSl9fV0sW3trZXk6XCJkZWZhdWx0SWdub3JlXCIsdmFsdWU6ZnVuY3Rpb24gZGVmYXVsdElnbm9yZSh0LGUsaSl7dmFyIHI9ISEoZS5vZmZzZXRXaWR0aHx8ZS5vZmZzZXRIZWlnaHR8fGUuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpO3ZhciBuPWUuZ2V0QXR0cmlidXRlKFwiZGlzYWJsZWRcIik7cmV0dXJuIG49PT1cIlwifHxuPT09XCJkaXNhYmxlZFwifHxlLmdldEF0dHJpYnV0ZShcInR5cGVcIik9PT1cImhpZGRlblwifHwhcn19XSk7cmV0dXJuIGV9KHQkMTApO3ZhciB0JDEyPWZ1bmN0aW9uKF9lKXtfaW5oZXJpdHModCxfZSk7dmFyIF9zdXBlcj1fY3JlYXRlU3VwZXIodCk7ZnVuY3Rpb24gdChlKXt2YXIgX3RoaXM7X2NsYXNzQ2FsbENoZWNrKHRoaXMsdCk7X3RoaXM9X3N1cGVyLmNhbGwodGhpcyxlKTtfdGhpcy5zdGF0dXNlcz1uZXcgTWFwO190aGlzLm9wdHM9T2JqZWN0LmFzc2lnbih7fSx7b25TdGF0dXNDaGFuZ2VkOmZ1bmN0aW9uIG9uU3RhdHVzQ2hhbmdlZCgpe319LGUpO190aGlzLmVsZW1lbnRWYWxpZGF0aW5nSGFuZGxlcj1fdGhpcy5vbkVsZW1lbnRWYWxpZGF0aW5nLmJpbmQoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO190aGlzLmVsZW1lbnRWYWxpZGF0ZWRIYW5kbGVyPV90aGlzLm9uRWxlbWVudFZhbGlkYXRlZC5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtfdGhpcy5lbGVtZW50Tm90VmFsaWRhdGVkSGFuZGxlcj1fdGhpcy5vbkVsZW1lbnROb3RWYWxpZGF0ZWQuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7X3RoaXMuZWxlbWVudElnbm9yZWRIYW5kbGVyPV90aGlzLm9uRWxlbWVudElnbm9yZWQuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7X3RoaXMuZmllbGRBZGRlZEhhbmRsZXI9X3RoaXMub25GaWVsZEFkZGVkLmJpbmQoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO190aGlzLmZpZWxkUmVtb3ZlZEhhbmRsZXI9X3RoaXMub25GaWVsZFJlbW92ZWQuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7cmV0dXJuIF90aGlzfV9jcmVhdGVDbGFzcyh0LFt7a2V5OlwiaW5zdGFsbFwiLHZhbHVlOmZ1bmN0aW9uIGluc3RhbGwoKXt0aGlzLmNvcmUub24oXCJjb3JlLmVsZW1lbnQudmFsaWRhdGluZ1wiLHRoaXMuZWxlbWVudFZhbGlkYXRpbmdIYW5kbGVyKS5vbihcImNvcmUuZWxlbWVudC52YWxpZGF0ZWRcIix0aGlzLmVsZW1lbnRWYWxpZGF0ZWRIYW5kbGVyKS5vbihcImNvcmUuZWxlbWVudC5ub3R2YWxpZGF0ZWRcIix0aGlzLmVsZW1lbnROb3RWYWxpZGF0ZWRIYW5kbGVyKS5vbihcImNvcmUuZWxlbWVudC5pZ25vcmVkXCIsdGhpcy5lbGVtZW50SWdub3JlZEhhbmRsZXIpLm9uKFwiY29yZS5maWVsZC5hZGRlZFwiLHRoaXMuZmllbGRBZGRlZEhhbmRsZXIpLm9uKFwiY29yZS5maWVsZC5yZW1vdmVkXCIsdGhpcy5maWVsZFJlbW92ZWRIYW5kbGVyKX19LHtrZXk6XCJ1bmluc3RhbGxcIix2YWx1ZTpmdW5jdGlvbiB1bmluc3RhbGwoKXt0aGlzLnN0YXR1c2VzLmNsZWFyKCk7dGhpcy5jb3JlLm9mZihcImNvcmUuZWxlbWVudC52YWxpZGF0aW5nXCIsdGhpcy5lbGVtZW50VmFsaWRhdGluZ0hhbmRsZXIpLm9mZihcImNvcmUuZWxlbWVudC52YWxpZGF0ZWRcIix0aGlzLmVsZW1lbnRWYWxpZGF0ZWRIYW5kbGVyKS5vZmYoXCJjb3JlLmVsZW1lbnQubm90dmFsaWRhdGVkXCIsdGhpcy5lbGVtZW50Tm90VmFsaWRhdGVkSGFuZGxlcikub2ZmKFwiY29yZS5lbGVtZW50Lmlnbm9yZWRcIix0aGlzLmVsZW1lbnRJZ25vcmVkSGFuZGxlcikub2ZmKFwiY29yZS5maWVsZC5hZGRlZFwiLHRoaXMuZmllbGRBZGRlZEhhbmRsZXIpLm9mZihcImNvcmUuZmllbGQucmVtb3ZlZFwiLHRoaXMuZmllbGRSZW1vdmVkSGFuZGxlcil9fSx7a2V5OlwiYXJlRmllbGRzVmFsaWRcIix2YWx1ZTpmdW5jdGlvbiBhcmVGaWVsZHNWYWxpZCgpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuc3RhdHVzZXMudmFsdWVzKCkpLmV2ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4gZT09PVwiVmFsaWRcInx8ZT09PVwiTm90VmFsaWRhdGVkXCJ8fGU9PT1cIklnbm9yZWRcIn0pKX19LHtrZXk6XCJnZXRTdGF0dXNlc1wiLHZhbHVlOmZ1bmN0aW9uIGdldFN0YXR1c2VzKCl7cmV0dXJuIHRoaXMuc3RhdHVzZXN9fSx7a2V5Olwib25GaWVsZEFkZGVkXCIsdmFsdWU6ZnVuY3Rpb24gb25GaWVsZEFkZGVkKGUpe3RoaXMuc3RhdHVzZXMuc2V0KGUuZmllbGQsXCJOb3RWYWxpZGF0ZWRcIil9fSx7a2V5Olwib25GaWVsZFJlbW92ZWRcIix2YWx1ZTpmdW5jdGlvbiBvbkZpZWxkUmVtb3ZlZChlKXtpZih0aGlzLnN0YXR1c2VzLmhhcyhlLmZpZWxkKSl7dGhpcy5zdGF0dXNlc1tcImRlbGV0ZVwiXShlLmZpZWxkKX10aGlzLm9wdHMub25TdGF0dXNDaGFuZ2VkKHRoaXMuYXJlRmllbGRzVmFsaWQoKSl9fSx7a2V5Olwib25FbGVtZW50VmFsaWRhdGluZ1wiLHZhbHVlOmZ1bmN0aW9uIG9uRWxlbWVudFZhbGlkYXRpbmcoZSl7dGhpcy5zdGF0dXNlcy5zZXQoZS5maWVsZCxcIlZhbGlkYXRpbmdcIik7dGhpcy5vcHRzLm9uU3RhdHVzQ2hhbmdlZChmYWxzZSl9fSx7a2V5Olwib25FbGVtZW50VmFsaWRhdGVkXCIsdmFsdWU6ZnVuY3Rpb24gb25FbGVtZW50VmFsaWRhdGVkKGUpe3RoaXMuc3RhdHVzZXMuc2V0KGUuZmllbGQsZS52YWxpZD9cIlZhbGlkXCI6XCJJbnZhbGlkXCIpO2lmKGUudmFsaWQpe3RoaXMub3B0cy5vblN0YXR1c0NoYW5nZWQodGhpcy5hcmVGaWVsZHNWYWxpZCgpKX1lbHNle3RoaXMub3B0cy5vblN0YXR1c0NoYW5nZWQoZmFsc2UpfX19LHtrZXk6XCJvbkVsZW1lbnROb3RWYWxpZGF0ZWRcIix2YWx1ZTpmdW5jdGlvbiBvbkVsZW1lbnROb3RWYWxpZGF0ZWQoZSl7dGhpcy5zdGF0dXNlcy5zZXQoZS5maWVsZCxcIk5vdFZhbGlkYXRlZFwiKTt0aGlzLm9wdHMub25TdGF0dXNDaGFuZ2VkKGZhbHNlKX19LHtrZXk6XCJvbkVsZW1lbnRJZ25vcmVkXCIsdmFsdWU6ZnVuY3Rpb24gb25FbGVtZW50SWdub3JlZChlKXt0aGlzLnN0YXR1c2VzLnNldChlLmZpZWxkLFwiSWdub3JlZFwiKTt0aGlzLm9wdHMub25TdGF0dXNDaGFuZ2VkKHRoaXMuYXJlRmllbGRzVmFsaWQoKSl9fV0pO3JldHVybiB0fSh0JDEwKTtmdW5jdGlvbiBzJDgocyxhKXthLnNwbGl0KFwiIFwiKS5mb3JFYWNoKChmdW5jdGlvbihhKXtpZihzLmNsYXNzTGlzdCl7cy5jbGFzc0xpc3QuYWRkKGEpfWVsc2UgaWYoXCIgXCIuY29uY2F0KHMuY2xhc3NOYW1lLFwiIFwiKS5pbmRleE9mKFwiIFwiLmNvbmNhdChhLFwiIFwiKSkpe3MuY2xhc3NOYW1lKz1cIiBcIi5jb25jYXQoYSl9fSkpfWZ1bmN0aW9uIGEkNyhzLGEpe2Euc3BsaXQoXCIgXCIpLmZvckVhY2goKGZ1bmN0aW9uKGEpe3MuY2xhc3NMaXN0P3MuY2xhc3NMaXN0LnJlbW92ZShhKTpzLmNsYXNzTmFtZT1zLmNsYXNzTmFtZS5yZXBsYWNlKGEsXCJcIil9KSl9ZnVuY3Rpb24gYyhjLGUpe3ZhciB0PVtdO3ZhciBmPVtdO09iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKHMpe2lmKHMpe2Vbc10/dC5wdXNoKHMpOmYucHVzaChzKX19KSk7Zi5mb3JFYWNoKChmdW5jdGlvbihzKXtyZXR1cm4gYSQ3KGMscyl9KSk7dC5mb3JFYWNoKChmdW5jdGlvbihhKXtyZXR1cm4gcyQ4KGMsYSl9KSl9ZnVuY3Rpb24gZSRHKGUsdCl7dmFyIGw9ZS5tYXRjaGVzfHxlLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8ZVtcIm1vek1hdGNoZXNTZWxlY3RvclwiXXx8ZVtcIm1zTWF0Y2hlc1NlbGVjdG9yXCJdO2lmKGwpe3JldHVybiBsLmNhbGwoZSx0KX12YXIgYz1bXS5zbGljZS5jYWxsKGUucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHQpKTtyZXR1cm4gYy5pbmRleE9mKGUpPj0wfWZ1bmN0aW9uIHQkMTModCxsKXt2YXIgYz10O3doaWxlKGMpe2lmKGUkRyhjLGwpKXticmVha31jPWMucGFyZW50RWxlbWVudH1yZXR1cm4gY312YXIgcyQ5PWZ1bmN0aW9uKF9lKXtfaW5oZXJpdHMocyxfZSk7dmFyIF9zdXBlcj1fY3JlYXRlU3VwZXIocyk7ZnVuY3Rpb24gcyhlKXt2YXIgX3RoaXM7X2NsYXNzQ2FsbENoZWNrKHRoaXMscyk7X3RoaXM9X3N1cGVyLmNhbGwodGhpcyxlKTtfdGhpcy5tZXNzYWdlcz1uZXcgTWFwO190aGlzLmRlZmF1bHRDb250YWluZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtfdGhpcy5vcHRzPU9iamVjdC5hc3NpZ24oe30se2NvbnRhaW5lcjpmdW5jdGlvbiBjb250YWluZXIoZSx0KXtyZXR1cm4gX3RoaXMuZGVmYXVsdENvbnRhaW5lcn19LGUpO190aGlzLmVsZW1lbnRJZ25vcmVkSGFuZGxlcj1fdGhpcy5vbkVsZW1lbnRJZ25vcmVkLmJpbmQoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO190aGlzLmZpZWxkQWRkZWRIYW5kbGVyPV90aGlzLm9uRmllbGRBZGRlZC5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtfdGhpcy5maWVsZFJlbW92ZWRIYW5kbGVyPV90aGlzLm9uRmllbGRSZW1vdmVkLmJpbmQoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO190aGlzLnZhbGlkYXRvclZhbGlkYXRlZEhhbmRsZXI9X3RoaXMub25WYWxpZGF0b3JWYWxpZGF0ZWQuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7X3RoaXMudmFsaWRhdG9yTm90VmFsaWRhdGVkSGFuZGxlcj1fdGhpcy5vblZhbGlkYXRvck5vdFZhbGlkYXRlZC5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtyZXR1cm4gX3RoaXN9X2NyZWF0ZUNsYXNzKHMsW3trZXk6XCJpbnN0YWxsXCIsdmFsdWU6ZnVuY3Rpb24gaW5zdGFsbCgpe3RoaXMuY29yZS5nZXRGb3JtRWxlbWVudCgpLmFwcGVuZENoaWxkKHRoaXMuZGVmYXVsdENvbnRhaW5lcik7dGhpcy5jb3JlLm9uKFwiY29yZS5lbGVtZW50Lmlnbm9yZWRcIix0aGlzLmVsZW1lbnRJZ25vcmVkSGFuZGxlcikub24oXCJjb3JlLmZpZWxkLmFkZGVkXCIsdGhpcy5maWVsZEFkZGVkSGFuZGxlcikub24oXCJjb3JlLmZpZWxkLnJlbW92ZWRcIix0aGlzLmZpZWxkUmVtb3ZlZEhhbmRsZXIpLm9uKFwiY29yZS52YWxpZGF0b3IudmFsaWRhdGVkXCIsdGhpcy52YWxpZGF0b3JWYWxpZGF0ZWRIYW5kbGVyKS5vbihcImNvcmUudmFsaWRhdG9yLm5vdHZhbGlkYXRlZFwiLHRoaXMudmFsaWRhdG9yTm90VmFsaWRhdGVkSGFuZGxlcil9fSx7a2V5OlwidW5pbnN0YWxsXCIsdmFsdWU6ZnVuY3Rpb24gdW5pbnN0YWxsKCl7dGhpcy5jb3JlLmdldEZvcm1FbGVtZW50KCkucmVtb3ZlQ2hpbGQodGhpcy5kZWZhdWx0Q29udGFpbmVyKTt0aGlzLm1lc3NhZ2VzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9KSk7dGhpcy5tZXNzYWdlcy5jbGVhcigpO3RoaXMuY29yZS5vZmYoXCJjb3JlLmVsZW1lbnQuaWdub3JlZFwiLHRoaXMuZWxlbWVudElnbm9yZWRIYW5kbGVyKS5vZmYoXCJjb3JlLmZpZWxkLmFkZGVkXCIsdGhpcy5maWVsZEFkZGVkSGFuZGxlcikub2ZmKFwiY29yZS5maWVsZC5yZW1vdmVkXCIsdGhpcy5maWVsZFJlbW92ZWRIYW5kbGVyKS5vZmYoXCJjb3JlLnZhbGlkYXRvci52YWxpZGF0ZWRcIix0aGlzLnZhbGlkYXRvclZhbGlkYXRlZEhhbmRsZXIpLm9mZihcImNvcmUudmFsaWRhdG9yLm5vdHZhbGlkYXRlZFwiLHRoaXMudmFsaWRhdG9yTm90VmFsaWRhdGVkSGFuZGxlcil9fSx7a2V5Olwib25GaWVsZEFkZGVkXCIsdmFsdWU6ZnVuY3Rpb24gb25GaWVsZEFkZGVkKGUpe3ZhciBfdGhpczI9dGhpczt2YXIgdD1lLmVsZW1lbnRzO2lmKHQpe3QuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9X3RoaXMyLm1lc3NhZ2VzLmdldChlKTtpZih0KXt0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCk7X3RoaXMyLm1lc3NhZ2VzW1wiZGVsZXRlXCJdKGUpfX0pKTt0aGlzLnByZXBhcmVGaWVsZENvbnRhaW5lcihlLmZpZWxkLHQpfX19LHtrZXk6XCJvbkZpZWxkUmVtb3ZlZFwiLHZhbHVlOmZ1bmN0aW9uIG9uRmllbGRSZW1vdmVkKGUpe3ZhciBfdGhpczM9dGhpcztpZighZS5lbGVtZW50cy5sZW5ndGh8fCFlLmZpZWxkKXtyZXR1cm59dmFyIHQ9ZS5lbGVtZW50c1swXS5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpO3ZhciBzPVwicmFkaW9cIj09PXR8fFwiY2hlY2tib3hcIj09PXQ/W2UuZWxlbWVudHNbMF1dOmUuZWxlbWVudHM7cy5mb3JFYWNoKChmdW5jdGlvbihlKXtpZihfdGhpczMubWVzc2FnZXMuaGFzKGUpKXt2YXIgX3Q9X3RoaXMzLm1lc3NhZ2VzLmdldChlKTtfdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKF90KTtfdGhpczMubWVzc2FnZXNbXCJkZWxldGVcIl0oZSl9fSkpfX0se2tleTpcInByZXBhcmVGaWVsZENvbnRhaW5lclwiLHZhbHVlOmZ1bmN0aW9uIHByZXBhcmVGaWVsZENvbnRhaW5lcihlLHQpe3ZhciBfdGhpczQ9dGhpcztpZih0Lmxlbmd0aCl7dmFyIF9zPXRbMF0uZ2V0QXR0cmlidXRlKFwidHlwZVwiKTtpZihcInJhZGlvXCI9PT1fc3x8XCJjaGVja2JveFwiPT09X3Mpe3RoaXMucHJlcGFyZUVsZW1lbnRDb250YWluZXIoZSx0WzBdLHQpfWVsc2V7dC5mb3JFYWNoKChmdW5jdGlvbihzKXtyZXR1cm4gX3RoaXM0LnByZXBhcmVFbGVtZW50Q29udGFpbmVyKGUscyx0KX0pKX19fX0se2tleTpcInByZXBhcmVFbGVtZW50Q29udGFpbmVyXCIsdmFsdWU6ZnVuY3Rpb24gcHJlcGFyZUVsZW1lbnRDb250YWluZXIoZSxzLGkpe3ZhciBhO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgdGhpcy5vcHRzLmNvbnRhaW5lcil7dmFyIF9lMj1cIiNcIj09PXRoaXMub3B0cy5jb250YWluZXIuY2hhckF0KDApPydbaWQ9XCInLmNvbmNhdCh0aGlzLm9wdHMuY29udGFpbmVyLnN1YnN0cmluZygxKSwnXCJdJyk6dGhpcy5vcHRzLmNvbnRhaW5lcjthPXRoaXMuY29yZS5nZXRGb3JtRWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoX2UyKX1lbHNle2E9dGhpcy5vcHRzLmNvbnRhaW5lcihlLHMpfXZhciBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7YS5hcHBlbmRDaGlsZChsKTtjKGwse1wiZnYtcGx1Z2lucy1tZXNzYWdlLWNvbnRhaW5lclwiOnRydWV9KTt0aGlzLmNvcmUuZW1pdChcInBsdWdpbnMubWVzc2FnZS5wbGFjZWRcIix7ZWxlbWVudDpzLGVsZW1lbnRzOmksZmllbGQ6ZSxtZXNzYWdlRWxlbWVudDpsfSk7dGhpcy5tZXNzYWdlcy5zZXQocyxsKX19LHtrZXk6XCJnZXRNZXNzYWdlXCIsdmFsdWU6ZnVuY3Rpb24gZ2V0TWVzc2FnZShlKXtyZXR1cm4gdHlwZW9mIGUubWVzc2FnZT09PVwic3RyaW5nXCI/ZS5tZXNzYWdlOmUubWVzc2FnZVt0aGlzLmNvcmUuZ2V0TG9jYWxlKCldfX0se2tleTpcIm9uVmFsaWRhdG9yVmFsaWRhdGVkXCIsdmFsdWU6ZnVuY3Rpb24gb25WYWxpZGF0b3JWYWxpZGF0ZWQoZSl7dmFyIHM9ZS5lbGVtZW50czt2YXIgaT1lLmVsZW1lbnQuZ2V0QXR0cmlidXRlKFwidHlwZVwiKTt2YXIgYT1cInJhZGlvXCI9PT1pfHxcImNoZWNrYm94XCI9PT1pP3NbMF06ZS5lbGVtZW50O2lmKHRoaXMubWVzc2FnZXMuaGFzKGEpKXt2YXIgX3MyPXRoaXMubWVzc2FnZXMuZ2V0KGEpO3ZhciBfaT1fczIucXVlcnlTZWxlY3RvcignW2RhdGEtZmllbGQ9XCInLmNvbmNhdChlLmZpZWxkLCdcIl1bZGF0YS12YWxpZGF0b3I9XCInKS5jb25jYXQoZS52YWxpZGF0b3IsJ1wiXScpKTtpZighX2kmJiFlLnJlc3VsdC52YWxpZCl7dmFyIF9pMj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO19pMi5pbm5lckhUTUw9dGhpcy5nZXRNZXNzYWdlKGUucmVzdWx0KTtfaTIuc2V0QXR0cmlidXRlKFwiZGF0YS1maWVsZFwiLGUuZmllbGQpO19pMi5zZXRBdHRyaWJ1dGUoXCJkYXRhLXZhbGlkYXRvclwiLGUudmFsaWRhdG9yKTtpZih0aGlzLm9wdHMuY2xhenope2MoX2kyLF9kZWZpbmVQcm9wZXJ0eSh7fSx0aGlzLm9wdHMuY2xhenosdHJ1ZSkpfV9zMi5hcHBlbmRDaGlsZChfaTIpO3RoaXMuY29yZS5lbWl0KFwicGx1Z2lucy5tZXNzYWdlLmRpc3BsYXllZFwiLHtlbGVtZW50OmUuZWxlbWVudCxmaWVsZDplLmZpZWxkLG1lc3NhZ2U6ZS5yZXN1bHQubWVzc2FnZSxtZXNzYWdlRWxlbWVudDpfaTIsbWV0YTplLnJlc3VsdC5tZXRhLHZhbGlkYXRvcjplLnZhbGlkYXRvcn0pfWVsc2UgaWYoX2kmJiFlLnJlc3VsdC52YWxpZCl7X2kuaW5uZXJIVE1MPXRoaXMuZ2V0TWVzc2FnZShlLnJlc3VsdCk7dGhpcy5jb3JlLmVtaXQoXCJwbHVnaW5zLm1lc3NhZ2UuZGlzcGxheWVkXCIse2VsZW1lbnQ6ZS5lbGVtZW50LGZpZWxkOmUuZmllbGQsbWVzc2FnZTplLnJlc3VsdC5tZXNzYWdlLG1lc3NhZ2VFbGVtZW50Ol9pLG1ldGE6ZS5yZXN1bHQubWV0YSx2YWxpZGF0b3I6ZS52YWxpZGF0b3J9KX1lbHNlIGlmKF9pJiZlLnJlc3VsdC52YWxpZCl7X3MyLnJlbW92ZUNoaWxkKF9pKX19fX0se2tleTpcIm9uVmFsaWRhdG9yTm90VmFsaWRhdGVkXCIsdmFsdWU6ZnVuY3Rpb24gb25WYWxpZGF0b3JOb3RWYWxpZGF0ZWQoZSl7dmFyIHQ9ZS5lbGVtZW50czt2YXIgcz1lLmVsZW1lbnQuZ2V0QXR0cmlidXRlKFwidHlwZVwiKTt2YXIgaT1cInJhZGlvXCI9PT1zfHxcImNoZWNrYm94XCI9PT1zP3RbMF06ZS5lbGVtZW50O2lmKHRoaXMubWVzc2FnZXMuaGFzKGkpKXt2YXIgX3QzPXRoaXMubWVzc2FnZXMuZ2V0KGkpO3ZhciBfczM9X3QzLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWZpZWxkPVwiJy5jb25jYXQoZS5maWVsZCwnXCJdW2RhdGEtdmFsaWRhdG9yPVwiJykuY29uY2F0KGUudmFsaWRhdG9yLCdcIl0nKSk7aWYoX3MzKXtfdDMucmVtb3ZlQ2hpbGQoX3MzKX19fX0se2tleTpcIm9uRWxlbWVudElnbm9yZWRcIix2YWx1ZTpmdW5jdGlvbiBvbkVsZW1lbnRJZ25vcmVkKGUpe3ZhciB0PWUuZWxlbWVudHM7dmFyIHM9ZS5lbGVtZW50LmdldEF0dHJpYnV0ZShcInR5cGVcIik7dmFyIGk9XCJyYWRpb1wiPT09c3x8XCJjaGVja2JveFwiPT09cz90WzBdOmUuZWxlbWVudDtpZih0aGlzLm1lc3NhZ2VzLmhhcyhpKSl7dmFyIF90ND10aGlzLm1lc3NhZ2VzLmdldChpKTt2YXIgX3M0PVtdLnNsaWNlLmNhbGwoX3Q0LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWZpZWxkPVwiJy5jb25jYXQoZS5maWVsZCwnXCJdJykpKTtfczQuZm9yRWFjaCgoZnVuY3Rpb24oZSl7X3Q0LnJlbW92ZUNoaWxkKGUpfSkpfX19XSxbe2tleTpcImdldENsb3Nlc3RDb250YWluZXJcIix2YWx1ZTpmdW5jdGlvbiBnZXRDbG9zZXN0Q29udGFpbmVyKGUsdCxzKXt2YXIgaT1lO3doaWxlKGkpe2lmKGk9PT10KXticmVha31pPWkucGFyZW50RWxlbWVudDtpZihzLnRlc3QoaS5jbGFzc05hbWUpKXticmVha319cmV0dXJuIGl9fV0pO3JldHVybiBzfSh0JDEwKTt2YXIgbCQyPWZ1bmN0aW9uKF9lKXtfaW5oZXJpdHMobCxfZSk7dmFyIF9zdXBlcj1fY3JlYXRlU3VwZXIobCk7ZnVuY3Rpb24gbChlKXt2YXIgX3RoaXM7X2NsYXNzQ2FsbENoZWNrKHRoaXMsbCk7X3RoaXM9X3N1cGVyLmNhbGwodGhpcyxlKTtfdGhpcy5yZXN1bHRzPW5ldyBNYXA7X3RoaXMuY29udGFpbmVycz1uZXcgTWFwO190aGlzLm9wdHM9T2JqZWN0LmFzc2lnbih7fSx7ZGVmYXVsdE1lc3NhZ2VDb250YWluZXI6dHJ1ZSxlbGVJbnZhbGlkQ2xhc3M6XCJcIixlbGVWYWxpZENsYXNzOlwiXCIscm93Q2xhc3NlczpcIlwiLHJvd1ZhbGlkYXRpbmdDbGFzczpcIlwifSxlKTtfdGhpcy5lbGVtZW50SWdub3JlZEhhbmRsZXI9X3RoaXMub25FbGVtZW50SWdub3JlZC5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtfdGhpcy5lbGVtZW50VmFsaWRhdGluZ0hhbmRsZXI9X3RoaXMub25FbGVtZW50VmFsaWRhdGluZy5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtfdGhpcy5lbGVtZW50VmFsaWRhdGVkSGFuZGxlcj1fdGhpcy5vbkVsZW1lbnRWYWxpZGF0ZWQuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7X3RoaXMuZWxlbWVudE5vdFZhbGlkYXRlZEhhbmRsZXI9X3RoaXMub25FbGVtZW50Tm90VmFsaWRhdGVkLmJpbmQoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO190aGlzLmljb25QbGFjZWRIYW5kbGVyPV90aGlzLm9uSWNvblBsYWNlZC5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtfdGhpcy5maWVsZEFkZGVkSGFuZGxlcj1fdGhpcy5vbkZpZWxkQWRkZWQuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7X3RoaXMuZmllbGRSZW1vdmVkSGFuZGxlcj1fdGhpcy5vbkZpZWxkUmVtb3ZlZC5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtfdGhpcy5tZXNzYWdlUGxhY2VkSGFuZGxlcj1fdGhpcy5vbk1lc3NhZ2VQbGFjZWQuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7cmV0dXJuIF90aGlzfV9jcmVhdGVDbGFzcyhsLFt7a2V5OlwiaW5zdGFsbFwiLHZhbHVlOmZ1bmN0aW9uIGluc3RhbGwoKXt2YXIgX3QsX3RoaXMyPXRoaXM7Yyh0aGlzLmNvcmUuZ2V0Rm9ybUVsZW1lbnQoKSwoX3Q9e30sX2RlZmluZVByb3BlcnR5KF90LHRoaXMub3B0cy5mb3JtQ2xhc3MsdHJ1ZSksX2RlZmluZVByb3BlcnR5KF90LFwiZnYtcGx1Z2lucy1mcmFtZXdvcmtcIix0cnVlKSxfdCkpO3RoaXMuY29yZS5vbihcImNvcmUuZWxlbWVudC5pZ25vcmVkXCIsdGhpcy5lbGVtZW50SWdub3JlZEhhbmRsZXIpLm9uKFwiY29yZS5lbGVtZW50LnZhbGlkYXRpbmdcIix0aGlzLmVsZW1lbnRWYWxpZGF0aW5nSGFuZGxlcikub24oXCJjb3JlLmVsZW1lbnQudmFsaWRhdGVkXCIsdGhpcy5lbGVtZW50VmFsaWRhdGVkSGFuZGxlcikub24oXCJjb3JlLmVsZW1lbnQubm90dmFsaWRhdGVkXCIsdGhpcy5lbGVtZW50Tm90VmFsaWRhdGVkSGFuZGxlcikub24oXCJwbHVnaW5zLmljb24ucGxhY2VkXCIsdGhpcy5pY29uUGxhY2VkSGFuZGxlcikub24oXCJjb3JlLmZpZWxkLmFkZGVkXCIsdGhpcy5maWVsZEFkZGVkSGFuZGxlcikub24oXCJjb3JlLmZpZWxkLnJlbW92ZWRcIix0aGlzLmZpZWxkUmVtb3ZlZEhhbmRsZXIpO2lmKHRoaXMub3B0cy5kZWZhdWx0TWVzc2FnZUNvbnRhaW5lcil7dGhpcy5jb3JlLnJlZ2lzdGVyUGx1Z2luKFwiX19fZnJhbWV3b3JrTWVzc2FnZVwiLG5ldyBzJDkoe2NsYXp6OnRoaXMub3B0cy5tZXNzYWdlQ2xhc3MsY29udGFpbmVyOmZ1bmN0aW9uIGNvbnRhaW5lcihlLHQpe3ZhciBsPVwic3RyaW5nXCI9PT10eXBlb2YgX3RoaXMyLm9wdHMucm93U2VsZWN0b3I/X3RoaXMyLm9wdHMucm93U2VsZWN0b3I6X3RoaXMyLm9wdHMucm93U2VsZWN0b3IoZSx0KTt2YXIgYT10JDEzKHQsbCk7cmV0dXJuIHMkOS5nZXRDbG9zZXN0Q29udGFpbmVyKHQsYSxfdGhpczIub3B0cy5yb3dQYXR0ZXJuKX19KSk7dGhpcy5jb3JlLm9uKFwicGx1Z2lucy5tZXNzYWdlLnBsYWNlZFwiLHRoaXMubWVzc2FnZVBsYWNlZEhhbmRsZXIpfX19LHtrZXk6XCJ1bmluc3RhbGxcIix2YWx1ZTpmdW5jdGlvbiB1bmluc3RhbGwoKXt2YXIgX3QyO3RoaXMucmVzdWx0cy5jbGVhcigpO3RoaXMuY29udGFpbmVycy5jbGVhcigpO2ModGhpcy5jb3JlLmdldEZvcm1FbGVtZW50KCksKF90Mj17fSxfZGVmaW5lUHJvcGVydHkoX3QyLHRoaXMub3B0cy5mb3JtQ2xhc3MsZmFsc2UpLF9kZWZpbmVQcm9wZXJ0eShfdDIsXCJmdi1wbHVnaW5zLWZyYW1ld29ya1wiLGZhbHNlKSxfdDIpKTt0aGlzLmNvcmUub2ZmKFwiY29yZS5lbGVtZW50Lmlnbm9yZWRcIix0aGlzLmVsZW1lbnRJZ25vcmVkSGFuZGxlcikub2ZmKFwiY29yZS5lbGVtZW50LnZhbGlkYXRpbmdcIix0aGlzLmVsZW1lbnRWYWxpZGF0aW5nSGFuZGxlcikub2ZmKFwiY29yZS5lbGVtZW50LnZhbGlkYXRlZFwiLHRoaXMuZWxlbWVudFZhbGlkYXRlZEhhbmRsZXIpLm9mZihcImNvcmUuZWxlbWVudC5ub3R2YWxpZGF0ZWRcIix0aGlzLmVsZW1lbnROb3RWYWxpZGF0ZWRIYW5kbGVyKS5vZmYoXCJwbHVnaW5zLmljb24ucGxhY2VkXCIsdGhpcy5pY29uUGxhY2VkSGFuZGxlcikub2ZmKFwiY29yZS5maWVsZC5hZGRlZFwiLHRoaXMuZmllbGRBZGRlZEhhbmRsZXIpLm9mZihcImNvcmUuZmllbGQucmVtb3ZlZFwiLHRoaXMuZmllbGRSZW1vdmVkSGFuZGxlcik7aWYodGhpcy5vcHRzLmRlZmF1bHRNZXNzYWdlQ29udGFpbmVyKXt0aGlzLmNvcmUub2ZmKFwicGx1Z2lucy5tZXNzYWdlLnBsYWNlZFwiLHRoaXMubWVzc2FnZVBsYWNlZEhhbmRsZXIpfX19LHtrZXk6XCJvbkljb25QbGFjZWRcIix2YWx1ZTpmdW5jdGlvbiBvbkljb25QbGFjZWQoZSl7fX0se2tleTpcIm9uTWVzc2FnZVBsYWNlZFwiLHZhbHVlOmZ1bmN0aW9uIG9uTWVzc2FnZVBsYWNlZChlKXt9fSx7a2V5Olwib25GaWVsZEFkZGVkXCIsdmFsdWU6ZnVuY3Rpb24gb25GaWVsZEFkZGVkKGUpe3ZhciBfdGhpczM9dGhpczt2YXIgcz1lLmVsZW1lbnRzO2lmKHMpe3MuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHM9X3RoaXMzLmNvbnRhaW5lcnMuZ2V0KGUpO2lmKHMpe3ZhciBfdDM7YyhzLChfdDM9e30sX2RlZmluZVByb3BlcnR5KF90MyxfdGhpczMub3B0cy5yb3dJbnZhbGlkQ2xhc3MsZmFsc2UpLF9kZWZpbmVQcm9wZXJ0eShfdDMsX3RoaXMzLm9wdHMucm93VmFsaWRhdGluZ0NsYXNzLGZhbHNlKSxfZGVmaW5lUHJvcGVydHkoX3QzLF90aGlzMy5vcHRzLnJvd1ZhbGlkQ2xhc3MsZmFsc2UpLF9kZWZpbmVQcm9wZXJ0eShfdDMsXCJmdi1wbHVnaW5zLWljb24tY29udGFpbmVyXCIsZmFsc2UpLF90MykpO190aGlzMy5jb250YWluZXJzW1wiZGVsZXRlXCJdKGUpfX0pKTt0aGlzLnByZXBhcmVGaWVsZENvbnRhaW5lcihlLmZpZWxkLHMpfX19LHtrZXk6XCJvbkZpZWxkUmVtb3ZlZFwiLHZhbHVlOmZ1bmN0aW9uIG9uRmllbGRSZW1vdmVkKGUpe3ZhciBfdGhpczQ9dGhpcztlLmVsZW1lbnRzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBzPV90aGlzNC5jb250YWluZXJzLmdldChlKTtpZihzKXt2YXIgX3Q0O2MocywoX3Q0PXt9LF9kZWZpbmVQcm9wZXJ0eShfdDQsX3RoaXM0Lm9wdHMucm93SW52YWxpZENsYXNzLGZhbHNlKSxfZGVmaW5lUHJvcGVydHkoX3Q0LF90aGlzNC5vcHRzLnJvd1ZhbGlkYXRpbmdDbGFzcyxmYWxzZSksX2RlZmluZVByb3BlcnR5KF90NCxfdGhpczQub3B0cy5yb3dWYWxpZENsYXNzLGZhbHNlKSxfdDQpKX19KSl9fSx7a2V5OlwicHJlcGFyZUZpZWxkQ29udGFpbmVyXCIsdmFsdWU6ZnVuY3Rpb24gcHJlcGFyZUZpZWxkQ29udGFpbmVyKGUsdCl7dmFyIF90aGlzNT10aGlzO2lmKHQubGVuZ3RoKXt2YXIgX3M9dFswXS5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpO2lmKFwicmFkaW9cIj09PV9zfHxcImNoZWNrYm94XCI9PT1fcyl7dGhpcy5wcmVwYXJlRWxlbWVudENvbnRhaW5lcihlLHRbMF0pfWVsc2V7dC5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gX3RoaXM1LnByZXBhcmVFbGVtZW50Q29udGFpbmVyKGUsdCl9KSl9fX19LHtrZXk6XCJwcmVwYXJlRWxlbWVudENvbnRhaW5lclwiLHZhbHVlOmZ1bmN0aW9uIHByZXBhcmVFbGVtZW50Q29udGFpbmVyKGUsaSl7dmFyIGw9XCJzdHJpbmdcIj09PXR5cGVvZiB0aGlzLm9wdHMucm93U2VsZWN0b3I/dGhpcy5vcHRzLnJvd1NlbGVjdG9yOnRoaXMub3B0cy5yb3dTZWxlY3RvcihlLGkpO3ZhciBhPXQkMTMoaSxsKTtpZihhIT09aSl7dmFyIF90NTtjKGEsKF90NT17fSxfZGVmaW5lUHJvcGVydHkoX3Q1LHRoaXMub3B0cy5yb3dDbGFzc2VzLHRydWUpLF9kZWZpbmVQcm9wZXJ0eShfdDUsXCJmdi1wbHVnaW5zLWljb24tY29udGFpbmVyXCIsdHJ1ZSksX3Q1KSk7dGhpcy5jb250YWluZXJzLnNldChpLGEpfX19LHtrZXk6XCJvbkVsZW1lbnRWYWxpZGF0aW5nXCIsdmFsdWU6ZnVuY3Rpb24gb25FbGVtZW50VmFsaWRhdGluZyhlKXt2YXIgcz1lLmVsZW1lbnRzO3ZhciBpPWUuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpO3ZhciBsPVwicmFkaW9cIj09PWl8fFwiY2hlY2tib3hcIj09PWk/c1swXTplLmVsZW1lbnQ7dmFyIGE9dGhpcy5jb250YWluZXJzLmdldChsKTtpZihhKXt2YXIgX3Q2O2MoYSwoX3Q2PXt9LF9kZWZpbmVQcm9wZXJ0eShfdDYsdGhpcy5vcHRzLnJvd0ludmFsaWRDbGFzcyxmYWxzZSksX2RlZmluZVByb3BlcnR5KF90Nix0aGlzLm9wdHMucm93VmFsaWRhdGluZ0NsYXNzLHRydWUpLF9kZWZpbmVQcm9wZXJ0eShfdDYsdGhpcy5vcHRzLnJvd1ZhbGlkQ2xhc3MsZmFsc2UpLF90NikpfX19LHtrZXk6XCJvbkVsZW1lbnROb3RWYWxpZGF0ZWRcIix2YWx1ZTpmdW5jdGlvbiBvbkVsZW1lbnROb3RWYWxpZGF0ZWQoZSl7dGhpcy5yZW1vdmVDbGFzc2VzKGUuZWxlbWVudCxlLmVsZW1lbnRzKX19LHtrZXk6XCJvbkVsZW1lbnRJZ25vcmVkXCIsdmFsdWU6ZnVuY3Rpb24gb25FbGVtZW50SWdub3JlZChlKXt0aGlzLnJlbW92ZUNsYXNzZXMoZS5lbGVtZW50LGUuZWxlbWVudHMpfX0se2tleTpcInJlbW92ZUNsYXNzZXNcIix2YWx1ZTpmdW5jdGlvbiByZW1vdmVDbGFzc2VzKGUscyl7dmFyIF90Nzt2YXIgaT1lLmdldEF0dHJpYnV0ZShcInR5cGVcIik7dmFyIGw9XCJyYWRpb1wiPT09aXx8XCJjaGVja2JveFwiPT09aT9zWzBdOmU7YyhsLChfdDc9e30sX2RlZmluZVByb3BlcnR5KF90Nyx0aGlzLm9wdHMuZWxlVmFsaWRDbGFzcyxmYWxzZSksX2RlZmluZVByb3BlcnR5KF90Nyx0aGlzLm9wdHMuZWxlSW52YWxpZENsYXNzLGZhbHNlKSxfdDcpKTt2YXIgYT10aGlzLmNvbnRhaW5lcnMuZ2V0KGwpO2lmKGEpe3ZhciBfdDg7YyhhLChfdDg9e30sX2RlZmluZVByb3BlcnR5KF90OCx0aGlzLm9wdHMucm93SW52YWxpZENsYXNzLGZhbHNlKSxfZGVmaW5lUHJvcGVydHkoX3Q4LHRoaXMub3B0cy5yb3dWYWxpZGF0aW5nQ2xhc3MsZmFsc2UpLF9kZWZpbmVQcm9wZXJ0eShfdDgsdGhpcy5vcHRzLnJvd1ZhbGlkQ2xhc3MsZmFsc2UpLF90OCkpfX19LHtrZXk6XCJvbkVsZW1lbnRWYWxpZGF0ZWRcIix2YWx1ZTpmdW5jdGlvbiBvbkVsZW1lbnRWYWxpZGF0ZWQoZSl7dmFyIF90aGlzNj10aGlzO3ZhciBzPWUuZWxlbWVudHM7dmFyIGk9ZS5lbGVtZW50LmdldEF0dHJpYnV0ZShcInR5cGVcIik7dmFyIGw9XCJyYWRpb1wiPT09aXx8XCJjaGVja2JveFwiPT09aT9zWzBdOmUuZWxlbWVudDtzLmZvckVhY2goKGZ1bmN0aW9uKHMpe3ZhciBfdDk7YyhzLChfdDk9e30sX2RlZmluZVByb3BlcnR5KF90OSxfdGhpczYub3B0cy5lbGVWYWxpZENsYXNzLGUudmFsaWQpLF9kZWZpbmVQcm9wZXJ0eShfdDksX3RoaXM2Lm9wdHMuZWxlSW52YWxpZENsYXNzLCFlLnZhbGlkKSxfdDkpKX0pKTt2YXIgYT10aGlzLmNvbnRhaW5lcnMuZ2V0KGwpO2lmKGEpe2lmKCFlLnZhbGlkKXt2YXIgX3QxMDt0aGlzLnJlc3VsdHMuc2V0KGwsZmFsc2UpO2MoYSwoX3QxMD17fSxfZGVmaW5lUHJvcGVydHkoX3QxMCx0aGlzLm9wdHMucm93SW52YWxpZENsYXNzLHRydWUpLF9kZWZpbmVQcm9wZXJ0eShfdDEwLHRoaXMub3B0cy5yb3dWYWxpZGF0aW5nQ2xhc3MsZmFsc2UpLF9kZWZpbmVQcm9wZXJ0eShfdDEwLHRoaXMub3B0cy5yb3dWYWxpZENsYXNzLGZhbHNlKSxfdDEwKSl9ZWxzZXt0aGlzLnJlc3VsdHNbXCJkZWxldGVcIl0obCk7dmFyIF9lMj10cnVlO3RoaXMuY29udGFpbmVycy5mb3JFYWNoKChmdW5jdGlvbih0LHMpe2lmKHQ9PT1hJiZfdGhpczYucmVzdWx0cy5nZXQocyk9PT1mYWxzZSl7X2UyPWZhbHNlfX0pKTtpZihfZTIpe3ZhciBfdDExO2MoYSwoX3QxMT17fSxfZGVmaW5lUHJvcGVydHkoX3QxMSx0aGlzLm9wdHMucm93SW52YWxpZENsYXNzLGZhbHNlKSxfZGVmaW5lUHJvcGVydHkoX3QxMSx0aGlzLm9wdHMucm93VmFsaWRhdGluZ0NsYXNzLGZhbHNlKSxfZGVmaW5lUHJvcGVydHkoX3QxMSx0aGlzLm9wdHMucm93VmFsaWRDbGFzcyx0cnVlKSxfdDExKSl9fX19fV0pO3JldHVybiBsfSh0JDEwKTt2YXIgaSQxPWZ1bmN0aW9uKF9lKXtfaW5oZXJpdHMoaSxfZSk7dmFyIF9zdXBlcj1fY3JlYXRlU3VwZXIoaSk7ZnVuY3Rpb24gaShlKXt2YXIgX3RoaXM7X2NsYXNzQ2FsbENoZWNrKHRoaXMsaSk7X3RoaXM9X3N1cGVyLmNhbGwodGhpcyxlKTtfdGhpcy5pY29ucz1uZXcgTWFwO190aGlzLm9wdHM9T2JqZWN0LmFzc2lnbih7fSx7aW52YWxpZDpcImZ2LXBsdWdpbnMtaWNvbi0taW52YWxpZFwiLG9uUGxhY2VkOmZ1bmN0aW9uIG9uUGxhY2VkKCl7fSxvblNldDpmdW5jdGlvbiBvblNldCgpe30sdmFsaWQ6XCJmdi1wbHVnaW5zLWljb24tLXZhbGlkXCIsdmFsaWRhdGluZzpcImZ2LXBsdWdpbnMtaWNvbi0tdmFsaWRhdGluZ1wifSxlKTtfdGhpcy5lbGVtZW50VmFsaWRhdGluZ0hhbmRsZXI9X3RoaXMub25FbGVtZW50VmFsaWRhdGluZy5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtfdGhpcy5lbGVtZW50VmFsaWRhdGVkSGFuZGxlcj1fdGhpcy5vbkVsZW1lbnRWYWxpZGF0ZWQuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7X3RoaXMuZWxlbWVudE5vdFZhbGlkYXRlZEhhbmRsZXI9X3RoaXMub25FbGVtZW50Tm90VmFsaWRhdGVkLmJpbmQoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO190aGlzLmVsZW1lbnRJZ25vcmVkSGFuZGxlcj1fdGhpcy5vbkVsZW1lbnRJZ25vcmVkLmJpbmQoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO190aGlzLmZpZWxkQWRkZWRIYW5kbGVyPV90aGlzLm9uRmllbGRBZGRlZC5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtyZXR1cm4gX3RoaXN9X2NyZWF0ZUNsYXNzKGksW3trZXk6XCJpbnN0YWxsXCIsdmFsdWU6ZnVuY3Rpb24gaW5zdGFsbCgpe3RoaXMuY29yZS5vbihcImNvcmUuZWxlbWVudC52YWxpZGF0aW5nXCIsdGhpcy5lbGVtZW50VmFsaWRhdGluZ0hhbmRsZXIpLm9uKFwiY29yZS5lbGVtZW50LnZhbGlkYXRlZFwiLHRoaXMuZWxlbWVudFZhbGlkYXRlZEhhbmRsZXIpLm9uKFwiY29yZS5lbGVtZW50Lm5vdHZhbGlkYXRlZFwiLHRoaXMuZWxlbWVudE5vdFZhbGlkYXRlZEhhbmRsZXIpLm9uKFwiY29yZS5lbGVtZW50Lmlnbm9yZWRcIix0aGlzLmVsZW1lbnRJZ25vcmVkSGFuZGxlcikub24oXCJjb3JlLmZpZWxkLmFkZGVkXCIsdGhpcy5maWVsZEFkZGVkSGFuZGxlcil9fSx7a2V5OlwidW5pbnN0YWxsXCIsdmFsdWU6ZnVuY3Rpb24gdW5pbnN0YWxsKCl7dGhpcy5pY29ucy5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfSkpO3RoaXMuaWNvbnMuY2xlYXIoKTt0aGlzLmNvcmUub2ZmKFwiY29yZS5lbGVtZW50LnZhbGlkYXRpbmdcIix0aGlzLmVsZW1lbnRWYWxpZGF0aW5nSGFuZGxlcikub2ZmKFwiY29yZS5lbGVtZW50LnZhbGlkYXRlZFwiLHRoaXMuZWxlbWVudFZhbGlkYXRlZEhhbmRsZXIpLm9mZihcImNvcmUuZWxlbWVudC5ub3R2YWxpZGF0ZWRcIix0aGlzLmVsZW1lbnROb3RWYWxpZGF0ZWRIYW5kbGVyKS5vZmYoXCJjb3JlLmVsZW1lbnQuaWdub3JlZFwiLHRoaXMuZWxlbWVudElnbm9yZWRIYW5kbGVyKS5vZmYoXCJjb3JlLmZpZWxkLmFkZGVkXCIsdGhpcy5maWVsZEFkZGVkSGFuZGxlcil9fSx7a2V5Olwib25GaWVsZEFkZGVkXCIsdmFsdWU6ZnVuY3Rpb24gb25GaWVsZEFkZGVkKGUpe3ZhciBfdGhpczI9dGhpczt2YXIgdD1lLmVsZW1lbnRzO2lmKHQpe3QuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9X3RoaXMyLmljb25zLmdldChlKTtpZih0KXt0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCk7X3RoaXMyLmljb25zW1wiZGVsZXRlXCJdKGUpfX0pKTt0aGlzLnByZXBhcmVGaWVsZEljb24oZS5maWVsZCx0KX19fSx7a2V5OlwicHJlcGFyZUZpZWxkSWNvblwiLHZhbHVlOmZ1bmN0aW9uIHByZXBhcmVGaWVsZEljb24oZSx0KXt2YXIgX3RoaXMzPXRoaXM7aWYodC5sZW5ndGgpe3ZhciBfaT10WzBdLmdldEF0dHJpYnV0ZShcInR5cGVcIik7aWYoXCJyYWRpb1wiPT09X2l8fFwiY2hlY2tib3hcIj09PV9pKXt0aGlzLnByZXBhcmVFbGVtZW50SWNvbihlLHRbMF0pfWVsc2V7dC5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gX3RoaXMzLnByZXBhcmVFbGVtZW50SWNvbihlLHQpfSkpfX19fSx7a2V5OlwicHJlcGFyZUVsZW1lbnRJY29uXCIsdmFsdWU6ZnVuY3Rpb24gcHJlcGFyZUVsZW1lbnRJY29uKGUsaSl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlcIik7bi5zZXRBdHRyaWJ1dGUoXCJkYXRhLWZpZWxkXCIsZSk7aS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShuLGkubmV4dFNpYmxpbmcpO2Mobix7XCJmdi1wbHVnaW5zLWljb25cIjp0cnVlfSk7dmFyIGw9e2NsYXNzZXM6e2ludmFsaWQ6dGhpcy5vcHRzLmludmFsaWQsdmFsaWQ6dGhpcy5vcHRzLnZhbGlkLHZhbGlkYXRpbmc6dGhpcy5vcHRzLnZhbGlkYXRpbmd9LGVsZW1lbnQ6aSxmaWVsZDplLGljb25FbGVtZW50Om59O3RoaXMuY29yZS5lbWl0KFwicGx1Z2lucy5pY29uLnBsYWNlZFwiLGwpO3RoaXMub3B0cy5vblBsYWNlZChsKTt0aGlzLmljb25zLnNldChpLG4pfX0se2tleTpcIm9uRWxlbWVudFZhbGlkYXRpbmdcIix2YWx1ZTpmdW5jdGlvbiBvbkVsZW1lbnRWYWxpZGF0aW5nKGUpe3ZhciBfdGhpcyRzZXRDbGFzc2VzO3ZhciB0PXRoaXMuc2V0Q2xhc3NlcyhlLmZpZWxkLGUuZWxlbWVudCxlLmVsZW1lbnRzLChfdGhpcyRzZXRDbGFzc2VzPXt9LF9kZWZpbmVQcm9wZXJ0eShfdGhpcyRzZXRDbGFzc2VzLHRoaXMub3B0cy5pbnZhbGlkLGZhbHNlKSxfZGVmaW5lUHJvcGVydHkoX3RoaXMkc2V0Q2xhc3Nlcyx0aGlzLm9wdHMudmFsaWQsZmFsc2UpLF9kZWZpbmVQcm9wZXJ0eShfdGhpcyRzZXRDbGFzc2VzLHRoaXMub3B0cy52YWxpZGF0aW5nLHRydWUpLF90aGlzJHNldENsYXNzZXMpKTt2YXIgaT17ZWxlbWVudDplLmVsZW1lbnQsZmllbGQ6ZS5maWVsZCxpY29uRWxlbWVudDp0LHN0YXR1czpcIlZhbGlkYXRpbmdcIn07dGhpcy5jb3JlLmVtaXQoXCJwbHVnaW5zLmljb24uc2V0XCIsaSk7dGhpcy5vcHRzLm9uU2V0KGkpfX0se2tleTpcIm9uRWxlbWVudFZhbGlkYXRlZFwiLHZhbHVlOmZ1bmN0aW9uIG9uRWxlbWVudFZhbGlkYXRlZChlKXt2YXIgX3RoaXMkc2V0Q2xhc3NlczI7dmFyIHQ9dGhpcy5zZXRDbGFzc2VzKGUuZmllbGQsZS5lbGVtZW50LGUuZWxlbWVudHMsKF90aGlzJHNldENsYXNzZXMyPXt9LF9kZWZpbmVQcm9wZXJ0eShfdGhpcyRzZXRDbGFzc2VzMix0aGlzLm9wdHMuaW52YWxpZCwhZS52YWxpZCksX2RlZmluZVByb3BlcnR5KF90aGlzJHNldENsYXNzZXMyLHRoaXMub3B0cy52YWxpZCxlLnZhbGlkKSxfZGVmaW5lUHJvcGVydHkoX3RoaXMkc2V0Q2xhc3NlczIsdGhpcy5vcHRzLnZhbGlkYXRpbmcsZmFsc2UpLF90aGlzJHNldENsYXNzZXMyKSk7dmFyIGk9e2VsZW1lbnQ6ZS5lbGVtZW50LGZpZWxkOmUuZmllbGQsaWNvbkVsZW1lbnQ6dCxzdGF0dXM6ZS52YWxpZD9cIlZhbGlkXCI6XCJJbnZhbGlkXCJ9O3RoaXMuY29yZS5lbWl0KFwicGx1Z2lucy5pY29uLnNldFwiLGkpO3RoaXMub3B0cy5vblNldChpKX19LHtrZXk6XCJvbkVsZW1lbnROb3RWYWxpZGF0ZWRcIix2YWx1ZTpmdW5jdGlvbiBvbkVsZW1lbnROb3RWYWxpZGF0ZWQoZSl7dmFyIF90aGlzJHNldENsYXNzZXMzO3ZhciB0PXRoaXMuc2V0Q2xhc3NlcyhlLmZpZWxkLGUuZWxlbWVudCxlLmVsZW1lbnRzLChfdGhpcyRzZXRDbGFzc2VzMz17fSxfZGVmaW5lUHJvcGVydHkoX3RoaXMkc2V0Q2xhc3NlczMsdGhpcy5vcHRzLmludmFsaWQsZmFsc2UpLF9kZWZpbmVQcm9wZXJ0eShfdGhpcyRzZXRDbGFzc2VzMyx0aGlzLm9wdHMudmFsaWQsZmFsc2UpLF9kZWZpbmVQcm9wZXJ0eShfdGhpcyRzZXRDbGFzc2VzMyx0aGlzLm9wdHMudmFsaWRhdGluZyxmYWxzZSksX3RoaXMkc2V0Q2xhc3NlczMpKTt2YXIgaT17ZWxlbWVudDplLmVsZW1lbnQsZmllbGQ6ZS5maWVsZCxpY29uRWxlbWVudDp0LHN0YXR1czpcIk5vdFZhbGlkYXRlZFwifTt0aGlzLmNvcmUuZW1pdChcInBsdWdpbnMuaWNvbi5zZXRcIixpKTt0aGlzLm9wdHMub25TZXQoaSl9fSx7a2V5Olwib25FbGVtZW50SWdub3JlZFwiLHZhbHVlOmZ1bmN0aW9uIG9uRWxlbWVudElnbm9yZWQoZSl7dmFyIF90aGlzJHNldENsYXNzZXM0O3ZhciB0PXRoaXMuc2V0Q2xhc3NlcyhlLmZpZWxkLGUuZWxlbWVudCxlLmVsZW1lbnRzLChfdGhpcyRzZXRDbGFzc2VzND17fSxfZGVmaW5lUHJvcGVydHkoX3RoaXMkc2V0Q2xhc3NlczQsdGhpcy5vcHRzLmludmFsaWQsZmFsc2UpLF9kZWZpbmVQcm9wZXJ0eShfdGhpcyRzZXRDbGFzc2VzNCx0aGlzLm9wdHMudmFsaWQsZmFsc2UpLF9kZWZpbmVQcm9wZXJ0eShfdGhpcyRzZXRDbGFzc2VzNCx0aGlzLm9wdHMudmFsaWRhdGluZyxmYWxzZSksX3RoaXMkc2V0Q2xhc3NlczQpKTt2YXIgaT17ZWxlbWVudDplLmVsZW1lbnQsZmllbGQ6ZS5maWVsZCxpY29uRWxlbWVudDp0LHN0YXR1czpcIklnbm9yZWRcIn07dGhpcy5jb3JlLmVtaXQoXCJwbHVnaW5zLmljb24uc2V0XCIsaSk7dGhpcy5vcHRzLm9uU2V0KGkpfX0se2tleTpcInNldENsYXNzZXNcIix2YWx1ZTpmdW5jdGlvbiBzZXRDbGFzc2VzKGUsaSxuLGwpe3ZhciBzPWkuZ2V0QXR0cmlidXRlKFwidHlwZVwiKTt2YXIgZD1cInJhZGlvXCI9PT1zfHxcImNoZWNrYm94XCI9PT1zP25bMF06aTtpZih0aGlzLmljb25zLmhhcyhkKSl7dmFyIF9lMj10aGlzLmljb25zLmdldChkKTtjKF9lMixsKTtyZXR1cm4gX2UyfWVsc2V7cmV0dXJuIG51bGx9fX1dKTtyZXR1cm4gaX0odCQxMCk7dmFyIGkkMj1mdW5jdGlvbihfZSl7X2luaGVyaXRzKGksX2UpO3ZhciBfc3VwZXI9X2NyZWF0ZVN1cGVyKGkpO2Z1bmN0aW9uIGkoZSl7dmFyIF90aGlzO19jbGFzc0NhbGxDaGVjayh0aGlzLGkpO190aGlzPV9zdXBlci5jYWxsKHRoaXMsZSk7X3RoaXMuaW52YWxpZEZpZWxkcz1uZXcgTWFwO190aGlzLm9wdHM9T2JqZWN0LmFzc2lnbih7fSx7ZW5hYmxlZDp0cnVlfSxlKTtfdGhpcy52YWxpZGF0b3JIYW5kbGVyPV90aGlzLm9uVmFsaWRhdG9yVmFsaWRhdGVkLmJpbmQoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO190aGlzLnNob3VsZFZhbGlkYXRlRmlsdGVyPV90aGlzLnNob3VsZFZhbGlkYXRlLmJpbmQoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO190aGlzLmZpZWxkQWRkZWRIYW5kbGVyPV90aGlzLm9uRmllbGRBZGRlZC5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtfdGhpcy5lbGVtZW50Tm90VmFsaWRhdGVkSGFuZGxlcj1fdGhpcy5vbkVsZW1lbnROb3RWYWxpZGF0ZWQuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7X3RoaXMuZWxlbWVudFZhbGlkYXRpbmdIYW5kbGVyPV90aGlzLm9uRWxlbWVudFZhbGlkYXRpbmcuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7cmV0dXJuIF90aGlzfV9jcmVhdGVDbGFzcyhpLFt7a2V5OlwiaW5zdGFsbFwiLHZhbHVlOmZ1bmN0aW9uIGluc3RhbGwoKXt0aGlzLmNvcmUub24oXCJjb3JlLnZhbGlkYXRvci52YWxpZGF0ZWRcIix0aGlzLnZhbGlkYXRvckhhbmRsZXIpLm9uKFwiY29yZS5maWVsZC5hZGRlZFwiLHRoaXMuZmllbGRBZGRlZEhhbmRsZXIpLm9uKFwiY29yZS5lbGVtZW50Lm5vdHZhbGlkYXRlZFwiLHRoaXMuZWxlbWVudE5vdFZhbGlkYXRlZEhhbmRsZXIpLm9uKFwiY29yZS5lbGVtZW50LnZhbGlkYXRpbmdcIix0aGlzLmVsZW1lbnRWYWxpZGF0aW5nSGFuZGxlcikucmVnaXN0ZXJGaWx0ZXIoXCJmaWVsZC1zaG91bGQtdmFsaWRhdGVcIix0aGlzLnNob3VsZFZhbGlkYXRlRmlsdGVyKX19LHtrZXk6XCJ1bmluc3RhbGxcIix2YWx1ZTpmdW5jdGlvbiB1bmluc3RhbGwoKXt0aGlzLmludmFsaWRGaWVsZHMuY2xlYXIoKTt0aGlzLmNvcmUub2ZmKFwiY29yZS52YWxpZGF0b3IudmFsaWRhdGVkXCIsdGhpcy52YWxpZGF0b3JIYW5kbGVyKS5vZmYoXCJjb3JlLmZpZWxkLmFkZGVkXCIsdGhpcy5maWVsZEFkZGVkSGFuZGxlcikub2ZmKFwiY29yZS5lbGVtZW50Lm5vdHZhbGlkYXRlZFwiLHRoaXMuZWxlbWVudE5vdFZhbGlkYXRlZEhhbmRsZXIpLm9mZihcImNvcmUuZWxlbWVudC52YWxpZGF0aW5nXCIsdGhpcy5lbGVtZW50VmFsaWRhdGluZ0hhbmRsZXIpLmRlcmVnaXN0ZXJGaWx0ZXIoXCJmaWVsZC1zaG91bGQtdmFsaWRhdGVcIix0aGlzLnNob3VsZFZhbGlkYXRlRmlsdGVyKX19LHtrZXk6XCJzaG91bGRWYWxpZGF0ZVwiLHZhbHVlOmZ1bmN0aW9uIHNob3VsZFZhbGlkYXRlKGUsaSx0LGwpe3ZhciBkPSh0aGlzLm9wdHMuZW5hYmxlZD09PXRydWV8fHRoaXMub3B0cy5lbmFibGVkW2VdPT09dHJ1ZSkmJnRoaXMuaW52YWxpZEZpZWxkcy5oYXMoaSkmJiEhdGhpcy5pbnZhbGlkRmllbGRzLmdldChpKS5sZW5ndGgmJnRoaXMuaW52YWxpZEZpZWxkcy5nZXQoaSkuaW5kZXhPZihsKT09PS0xO3JldHVybiFkfX0se2tleTpcIm9uVmFsaWRhdG9yVmFsaWRhdGVkXCIsdmFsdWU6ZnVuY3Rpb24gb25WYWxpZGF0b3JWYWxpZGF0ZWQoZSl7dmFyIGk9dGhpcy5pbnZhbGlkRmllbGRzLmhhcyhlLmVsZW1lbnQpP3RoaXMuaW52YWxpZEZpZWxkcy5nZXQoZS5lbGVtZW50KTpbXTt2YXIgdD1pLmluZGV4T2YoZS52YWxpZGF0b3IpO2lmKGUucmVzdWx0LnZhbGlkJiZ0Pj0wKXtpLnNwbGljZSh0LDEpfWVsc2UgaWYoIWUucmVzdWx0LnZhbGlkJiZ0PT09LTEpe2kucHVzaChlLnZhbGlkYXRvcil9dGhpcy5pbnZhbGlkRmllbGRzLnNldChlLmVsZW1lbnQsaSl9fSx7a2V5Olwib25GaWVsZEFkZGVkXCIsdmFsdWU6ZnVuY3Rpb24gb25GaWVsZEFkZGVkKGUpe2lmKGUuZWxlbWVudHMpe3RoaXMuY2xlYXJJbnZhbGlkRmllbGRzKGUuZWxlbWVudHMpfX19LHtrZXk6XCJvbkVsZW1lbnROb3RWYWxpZGF0ZWRcIix2YWx1ZTpmdW5jdGlvbiBvbkVsZW1lbnROb3RWYWxpZGF0ZWQoZSl7dGhpcy5jbGVhckludmFsaWRGaWVsZHMoZS5lbGVtZW50cyl9fSx7a2V5Olwib25FbGVtZW50VmFsaWRhdGluZ1wiLHZhbHVlOmZ1bmN0aW9uIG9uRWxlbWVudFZhbGlkYXRpbmcoZSl7dGhpcy5jbGVhckludmFsaWRGaWVsZHMoZS5lbGVtZW50cyl9fSx7a2V5OlwiY2xlYXJJbnZhbGlkRmllbGRzXCIsdmFsdWU6ZnVuY3Rpb24gY2xlYXJJbnZhbGlkRmllbGRzKGUpe3ZhciBfdGhpczI9dGhpcztlLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBfdGhpczIuaW52YWxpZEZpZWxkc1tcImRlbGV0ZVwiXShlKX0pKX19XSk7cmV0dXJuIGl9KHQkMTApO3ZhciBlJEg9ZnVuY3Rpb24oX3Qpe19pbmhlcml0cyhlLF90KTt2YXIgX3N1cGVyPV9jcmVhdGVTdXBlcihlKTtmdW5jdGlvbiBlKHQpe3ZhciBfdGhpcztfY2xhc3NDYWxsQ2hlY2sodGhpcyxlKTtfdGhpcz1fc3VwZXIuY2FsbCh0aGlzLHQpO190aGlzLmlzRm9ybVZhbGlkPWZhbHNlO190aGlzLm9wdHM9T2JqZWN0LmFzc2lnbih7fSx7YXNwTmV0QnV0dG9uOmZhbHNlLGJ1dHRvbnM6ZnVuY3Rpb24gYnV0dG9ucyh0KXtyZXR1cm5bXS5zbGljZS5jYWxsKHQucXVlcnlTZWxlY3RvckFsbCgnW3R5cGU9XCJzdWJtaXRcIl06bm90KFtmb3Jtbm92YWxpZGF0ZV0pJykpfX0sdCk7X3RoaXMuc3VibWl0SGFuZGxlcj1fdGhpcy5oYW5kbGVTdWJtaXRFdmVudC5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtfdGhpcy5idXR0b25DbGlja0hhbmRsZXI9X3RoaXMuaGFuZGxlQ2xpY2tFdmVudC5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtyZXR1cm4gX3RoaXN9X2NyZWF0ZUNsYXNzKGUsW3trZXk6XCJpbnN0YWxsXCIsdmFsdWU6ZnVuY3Rpb24gaW5zdGFsbCgpe3ZhciBfdGhpczI9dGhpcztpZighKHRoaXMuY29yZS5nZXRGb3JtRWxlbWVudCgpaW5zdGFuY2VvZiBIVE1MRm9ybUVsZW1lbnQpKXtyZXR1cm59dmFyIHQ9dGhpcy5jb3JlLmdldEZvcm1FbGVtZW50KCk7dGhpcy5zdWJtaXRCdXR0b25zPXRoaXMub3B0cy5idXR0b25zKHQpO3Quc2V0QXR0cmlidXRlKFwibm92YWxpZGF0ZVwiLFwibm92YWxpZGF0ZVwiKTt0LmFkZEV2ZW50TGlzdGVuZXIoXCJzdWJtaXRcIix0aGlzLnN1Ym1pdEhhbmRsZXIpO3RoaXMuaGlkZGVuQ2xpY2tlZEVsZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7dGhpcy5oaWRkZW5DbGlja2VkRWxlLnNldEF0dHJpYnV0ZShcInR5cGVcIixcImhpZGRlblwiKTt0LmFwcGVuZENoaWxkKHRoaXMuaGlkZGVuQ2xpY2tlZEVsZSk7dGhpcy5zdWJtaXRCdXR0b25zLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsX3RoaXMyLmJ1dHRvbkNsaWNrSGFuZGxlcil9KSl9fSx7a2V5OlwidW5pbnN0YWxsXCIsdmFsdWU6ZnVuY3Rpb24gdW5pbnN0YWxsKCl7dmFyIF90aGlzMz10aGlzO3ZhciB0PXRoaXMuY29yZS5nZXRGb3JtRWxlbWVudCgpO2lmKHQgaW5zdGFuY2VvZiBIVE1MRm9ybUVsZW1lbnQpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInN1Ym1pdFwiLHRoaXMuc3VibWl0SGFuZGxlcil9dGhpcy5zdWJtaXRCdXR0b25zLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsX3RoaXMzLmJ1dHRvbkNsaWNrSGFuZGxlcil9KSk7dGhpcy5oaWRkZW5DbGlja2VkRWxlLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5oaWRkZW5DbGlja2VkRWxlKX19LHtrZXk6XCJoYW5kbGVTdWJtaXRFdmVudFwiLHZhbHVlOmZ1bmN0aW9uIGhhbmRsZVN1Ym1pdEV2ZW50KHQpe3RoaXMudmFsaWRhdGVGb3JtKHQpfX0se2tleTpcImhhbmRsZUNsaWNrRXZlbnRcIix2YWx1ZTpmdW5jdGlvbiBoYW5kbGVDbGlja0V2ZW50KHQpe3ZhciBlPXQuY3VycmVudFRhcmdldDtpZihlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpe2lmKHRoaXMub3B0cy5hc3BOZXRCdXR0b24mJnRoaXMuaXNGb3JtVmFsaWQ9PT10cnVlKTtlbHNle3ZhciBfZT10aGlzLmNvcmUuZ2V0Rm9ybUVsZW1lbnQoKTtfZS5yZW1vdmVFdmVudExpc3RlbmVyKFwic3VibWl0XCIsdGhpcy5zdWJtaXRIYW5kbGVyKTt0aGlzLmNsaWNrZWRCdXR0b249dC50YXJnZXQ7dmFyIGk9dGhpcy5jbGlja2VkQnV0dG9uLmdldEF0dHJpYnV0ZShcIm5hbWVcIik7dmFyIHM9dGhpcy5jbGlja2VkQnV0dG9uLmdldEF0dHJpYnV0ZShcInZhbHVlXCIpO2lmKGkmJnMpe3RoaXMuaGlkZGVuQ2xpY2tlZEVsZS5zZXRBdHRyaWJ1dGUoXCJuYW1lXCIsaSk7dGhpcy5oaWRkZW5DbGlja2VkRWxlLnNldEF0dHJpYnV0ZShcInZhbHVlXCIscyl9dGhpcy52YWxpZGF0ZUZvcm0odCl9fX19LHtrZXk6XCJ2YWxpZGF0ZUZvcm1cIix2YWx1ZTpmdW5jdGlvbiB2YWxpZGF0ZUZvcm0odCl7dmFyIF90aGlzND10aGlzO3QucHJldmVudERlZmF1bHQoKTt0aGlzLmNvcmUudmFsaWRhdGUoKS50aGVuKChmdW5jdGlvbih0KXtpZih0PT09XCJWYWxpZFwiJiZfdGhpczQub3B0cy5hc3BOZXRCdXR0b24mJiFfdGhpczQuaXNGb3JtVmFsaWQmJl90aGlzNC5jbGlja2VkQnV0dG9uKXtfdGhpczQuaXNGb3JtVmFsaWQ9dHJ1ZTtfdGhpczQuY2xpY2tlZEJ1dHRvbi5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIixfdGhpczQuYnV0dG9uQ2xpY2tIYW5kbGVyKTtfdGhpczQuY2xpY2tlZEJ1dHRvbi5jbGljaygpfX0pKX19XSk7cmV0dXJuIGV9KHQkMTApO3ZhciBpJDM9ZnVuY3Rpb24oX3Qpe19pbmhlcml0cyhpLF90KTt2YXIgX3N1cGVyPV9jcmVhdGVTdXBlcihpKTtmdW5jdGlvbiBpKHQpe3ZhciBfdGhpcztfY2xhc3NDYWxsQ2hlY2sodGhpcyxpKTtfdGhpcz1fc3VwZXIuY2FsbCh0aGlzLHQpO190aGlzLm1lc3NhZ2VzPW5ldyBNYXA7X3RoaXMub3B0cz1PYmplY3QuYXNzaWduKHt9LHtwbGFjZW1lbnQ6XCJ0b3BcIix0cmlnZ2VyOlwiY2xpY2tcIn0sdCk7X3RoaXMuaWNvblBsYWNlZEhhbmRsZXI9X3RoaXMub25JY29uUGxhY2VkLmJpbmQoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO190aGlzLnZhbGlkYXRvclZhbGlkYXRlZEhhbmRsZXI9X3RoaXMub25WYWxpZGF0b3JWYWxpZGF0ZWQuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7X3RoaXMuZWxlbWVudFZhbGlkYXRlZEhhbmRsZXI9X3RoaXMub25FbGVtZW50VmFsaWRhdGVkLmJpbmQoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO190aGlzLmRvY3VtZW50Q2xpY2tIYW5kbGVyPV90aGlzLm9uRG9jdW1lbnRDbGlja2VkLmJpbmQoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO3JldHVybiBfdGhpc31fY3JlYXRlQ2xhc3MoaSxbe2tleTpcImluc3RhbGxcIix2YWx1ZTpmdW5jdGlvbiBpbnN0YWxsKCl7dGhpcy50aXA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtjKHRoaXMudGlwLF9kZWZpbmVQcm9wZXJ0eSh7XCJmdi1wbHVnaW5zLXRvb2x0aXBcIjp0cnVlfSxcImZ2LXBsdWdpbnMtdG9vbHRpcC0tXCIuY29uY2F0KHRoaXMub3B0cy5wbGFjZW1lbnQpLHRydWUpKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMudGlwKTt0aGlzLmNvcmUub24oXCJwbHVnaW5zLmljb24ucGxhY2VkXCIsdGhpcy5pY29uUGxhY2VkSGFuZGxlcikub24oXCJjb3JlLnZhbGlkYXRvci52YWxpZGF0ZWRcIix0aGlzLnZhbGlkYXRvclZhbGlkYXRlZEhhbmRsZXIpLm9uKFwiY29yZS5lbGVtZW50LnZhbGlkYXRlZFwiLHRoaXMuZWxlbWVudFZhbGlkYXRlZEhhbmRsZXIpO2lmKFwiY2xpY2tcIj09PXRoaXMub3B0cy50cmlnZ2VyKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIix0aGlzLmRvY3VtZW50Q2xpY2tIYW5kbGVyKX19fSx7a2V5OlwidW5pbnN0YWxsXCIsdmFsdWU6ZnVuY3Rpb24gdW5pbnN0YWxsKCl7dGhpcy5tZXNzYWdlcy5jbGVhcigpO2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy50aXApO3RoaXMuY29yZS5vZmYoXCJwbHVnaW5zLmljb24ucGxhY2VkXCIsdGhpcy5pY29uUGxhY2VkSGFuZGxlcikub2ZmKFwiY29yZS52YWxpZGF0b3IudmFsaWRhdGVkXCIsdGhpcy52YWxpZGF0b3JWYWxpZGF0ZWRIYW5kbGVyKS5vZmYoXCJjb3JlLmVsZW1lbnQudmFsaWRhdGVkXCIsdGhpcy5lbGVtZW50VmFsaWRhdGVkSGFuZGxlcik7aWYoXCJjbGlja1wiPT09dGhpcy5vcHRzLnRyaWdnZXIpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHRoaXMuZG9jdW1lbnRDbGlja0hhbmRsZXIpfX19LHtrZXk6XCJvbkljb25QbGFjZWRcIix2YWx1ZTpmdW5jdGlvbiBvbkljb25QbGFjZWQodCl7dmFyIF90aGlzMj10aGlzO2ModC5pY29uRWxlbWVudCx7XCJmdi1wbHVnaW5zLXRvb2x0aXAtaWNvblwiOnRydWV9KTtzd2l0Y2godGhpcy5vcHRzLnRyaWdnZXIpe2Nhc2VcImhvdmVyXCI6dC5pY29uRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLChmdW5jdGlvbihlKXtyZXR1cm4gX3RoaXMyLnNob3codC5lbGVtZW50LGUpfSkpO3QuaWNvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwoZnVuY3Rpb24odCl7cmV0dXJuIF90aGlzMi5oaWRlKCl9KSk7YnJlYWs7Y2FzZVwiY2xpY2tcIjpkZWZhdWx0OnQuaWNvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBfdGhpczIuc2hvdyh0LmVsZW1lbnQsZSl9KSk7YnJlYWt9fX0se2tleTpcIm9uVmFsaWRhdG9yVmFsaWRhdGVkXCIsdmFsdWU6ZnVuY3Rpb24gb25WYWxpZGF0b3JWYWxpZGF0ZWQodCl7aWYoIXQucmVzdWx0LnZhbGlkKXt2YXIgX2UyPXQuZWxlbWVudHM7dmFyIF9pPXQuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpO3ZhciBzPVwicmFkaW9cIj09PV9pfHxcImNoZWNrYm94XCI9PT1faT9fZTJbMF06dC5lbGVtZW50O3ZhciBvPXR5cGVvZiB0LnJlc3VsdC5tZXNzYWdlPT09XCJzdHJpbmdcIj90LnJlc3VsdC5tZXNzYWdlOnQucmVzdWx0Lm1lc3NhZ2VbdGhpcy5jb3JlLmdldExvY2FsZSgpXTt0aGlzLm1lc3NhZ2VzLnNldChzLG8pfX19LHtrZXk6XCJvbkVsZW1lbnRWYWxpZGF0ZWRcIix2YWx1ZTpmdW5jdGlvbiBvbkVsZW1lbnRWYWxpZGF0ZWQodCl7aWYodC52YWxpZCl7dmFyIF9lMz10LmVsZW1lbnRzO3ZhciBfaTI9dC5lbGVtZW50LmdldEF0dHJpYnV0ZShcInR5cGVcIik7dmFyIHM9XCJyYWRpb1wiPT09X2kyfHxcImNoZWNrYm94XCI9PT1faTI/X2UzWzBdOnQuZWxlbWVudDt0aGlzLm1lc3NhZ2VzW1wiZGVsZXRlXCJdKHMpfX19LHtrZXk6XCJvbkRvY3VtZW50Q2xpY2tlZFwiLHZhbHVlOmZ1bmN0aW9uIG9uRG9jdW1lbnRDbGlja2VkKHQpe3RoaXMuaGlkZSgpfX0se2tleTpcInNob3dcIix2YWx1ZTpmdW5jdGlvbiBzaG93KHQsaSl7aS5wcmV2ZW50RGVmYXVsdCgpO2kuc3RvcFByb3BhZ2F0aW9uKCk7aWYoIXRoaXMubWVzc2FnZXMuaGFzKHQpKXtyZXR1cm59Yyh0aGlzLnRpcCx7XCJmdi1wbHVnaW5zLXRvb2x0aXAtLWhpZGVcIjpmYWxzZX0pO3RoaXMudGlwLmlubmVySFRNTD0nPGRpdiBjbGFzcz1cImZ2LXBsdWdpbnMtdG9vbHRpcF9fY29udGVudFwiPicuY29uY2F0KHRoaXMubWVzc2FnZXMuZ2V0KHQpLFwiPC9kaXY+XCIpO3ZhciBzPWkudGFyZ2V0O3ZhciBvPXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIF90aGlzJHRpcCRnZXRCb3VuZGluZz10aGlzLnRpcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxsPV90aGlzJHRpcCRnZXRCb3VuZGluZy5oZWlnaHQsbj1fdGhpcyR0aXAkZ2V0Qm91bmRpbmcud2lkdGg7dmFyIGE9MDt2YXIgZD0wO3N3aXRjaCh0aGlzLm9wdHMucGxhY2VtZW50KXtjYXNlXCJib3R0b21cIjphPW8udG9wK28uaGVpZ2h0O2Q9by5sZWZ0K28ud2lkdGgvMi1uLzI7YnJlYWs7Y2FzZVwiYm90dG9tLWxlZnRcIjphPW8udG9wK28uaGVpZ2h0O2Q9by5sZWZ0O2JyZWFrO2Nhc2VcImJvdHRvbS1yaWdodFwiOmE9by50b3Arby5oZWlnaHQ7ZD1vLmxlZnQrby53aWR0aC1uO2JyZWFrO2Nhc2VcImxlZnRcIjphPW8udG9wK28uaGVpZ2h0LzItbC8yO2Q9by5sZWZ0LW47YnJlYWs7Y2FzZVwicmlnaHRcIjphPW8udG9wK28uaGVpZ2h0LzItbC8yO2Q9by5sZWZ0K28ud2lkdGg7YnJlYWs7Y2FzZVwidG9wLWxlZnRcIjphPW8udG9wLWw7ZD1vLmxlZnQ7YnJlYWs7Y2FzZVwidG9wLXJpZ2h0XCI6YT1vLnRvcC1sO2Q9by5sZWZ0K28ud2lkdGgtbjticmVhaztjYXNlXCJ0b3BcIjpkZWZhdWx0OmE9by50b3AtbDtkPW8ubGVmdCtvLndpZHRoLzItbi8yO2JyZWFrfXZhciBjJDE9d2luZG93LnBhZ2VZT2Zmc2V0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wfHxkb2N1bWVudC5ib2R5LnNjcm9sbFRvcHx8MDt2YXIgcj13aW5kb3cucGFnZVhPZmZzZXR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0fHxkb2N1bWVudC5ib2R5LnNjcm9sbExlZnR8fDA7YT1hK2MkMTtkPWQrcjt0aGlzLnRpcC5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLFwidG9wOiBcIi5jb25jYXQoYSxcInB4OyBsZWZ0OiBcIikuY29uY2F0KGQsXCJweFwiKSl9fSx7a2V5OlwiaGlkZVwiLHZhbHVlOmZ1bmN0aW9uIGhpZGUoKXtjKHRoaXMudGlwLHtcImZ2LXBsdWdpbnMtdG9vbHRpcC0taGlkZVwiOnRydWV9KX19XSk7cmV0dXJuIGl9KHQkMTApO3ZhciB0JDE0PWZ1bmN0aW9uKF9lKXtfaW5oZXJpdHModCxfZSk7dmFyIF9zdXBlcj1fY3JlYXRlU3VwZXIodCk7ZnVuY3Rpb24gdChlKXt2YXIgX3RoaXM7X2NsYXNzQ2FsbENoZWNrKHRoaXMsdCk7X3RoaXM9X3N1cGVyLmNhbGwodGhpcyxlKTtfdGhpcy5oYW5kbGVycz1bXTtfdGhpcy50aW1lcnM9bmV3IE1hcDt2YXIgX3Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtfdGhpcy5kZWZhdWx0RXZlbnQ9IShcIm9uaW5wdXRcImluIF90KT9cImtleXVwXCI6XCJpbnB1dFwiO190aGlzLm9wdHM9T2JqZWN0LmFzc2lnbih7fSx7ZGVsYXk6MCxldmVudDpfdGhpcy5kZWZhdWx0RXZlbnQsdGhyZXNob2xkOjB9LGUpO190aGlzLmZpZWxkQWRkZWRIYW5kbGVyPV90aGlzLm9uRmllbGRBZGRlZC5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtfdGhpcy5maWVsZFJlbW92ZWRIYW5kbGVyPV90aGlzLm9uRmllbGRSZW1vdmVkLmJpbmQoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO3JldHVybiBfdGhpc31fY3JlYXRlQ2xhc3ModCxbe2tleTpcImluc3RhbGxcIix2YWx1ZTpmdW5jdGlvbiBpbnN0YWxsKCl7dGhpcy5jb3JlLm9uKFwiY29yZS5maWVsZC5hZGRlZFwiLHRoaXMuZmllbGRBZGRlZEhhbmRsZXIpLm9uKFwiY29yZS5maWVsZC5yZW1vdmVkXCIsdGhpcy5maWVsZFJlbW92ZWRIYW5kbGVyKX19LHtrZXk6XCJ1bmluc3RhbGxcIix2YWx1ZTpmdW5jdGlvbiB1bmluc3RhbGwoKXt0aGlzLmhhbmRsZXJzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmV2ZW50LGUuaGFuZGxlcil9KSk7dGhpcy5oYW5kbGVycz1bXTt0aGlzLnRpbWVycy5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gd2luZG93LmNsZWFyVGltZW91dChlKX0pKTt0aGlzLnRpbWVycy5jbGVhcigpO3RoaXMuY29yZS5vZmYoXCJjb3JlLmZpZWxkLmFkZGVkXCIsdGhpcy5maWVsZEFkZGVkSGFuZGxlcikub2ZmKFwiY29yZS5maWVsZC5yZW1vdmVkXCIsdGhpcy5maWVsZFJlbW92ZWRIYW5kbGVyKX19LHtrZXk6XCJwcmVwYXJlSGFuZGxlclwiLHZhbHVlOmZ1bmN0aW9uIHByZXBhcmVIYW5kbGVyKGUsdCl7dmFyIF90aGlzMj10aGlzO3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGk9W107aWYoISFfdGhpczIub3B0cy5ldmVudCYmX3RoaXMyLm9wdHMuZXZlbnRbZV09PT1mYWxzZSl7aT1bXX1lbHNlIGlmKCEhX3RoaXMyLm9wdHMuZXZlbnQmJiEhX3RoaXMyLm9wdHMuZXZlbnRbZV0pe2k9X3RoaXMyLm9wdHMuZXZlbnRbZV0uc3BsaXQoXCIgXCIpfWVsc2UgaWYoXCJzdHJpbmdcIj09PXR5cGVvZiBfdGhpczIub3B0cy5ldmVudCYmX3RoaXMyLm9wdHMuZXZlbnQhPT1fdGhpczIuZGVmYXVsdEV2ZW50KXtpPV90aGlzMi5vcHRzLmV2ZW50LnNwbGl0KFwiIFwiKX1lbHNle3ZhciBfZTI9dC5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpO3ZhciBzPXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpO3ZhciBuPVwicmFkaW9cIj09PV9lMnx8XCJjaGVja2JveFwiPT09X2UyfHxcImZpbGVcIj09PV9lMnx8XCJzZWxlY3RcIj09PXM/XCJjaGFuZ2VcIjpfdGhpczIuaWVWZXJzaW9uPj0xMCYmdC5nZXRBdHRyaWJ1dGUoXCJwbGFjZWhvbGRlclwiKT9cImtleXVwXCI6X3RoaXMyLmRlZmF1bHRFdmVudDtpPVtuXX1pLmZvckVhY2goKGZ1bmN0aW9uKGkpe3ZhciBzPWZ1bmN0aW9uIHMoaSl7cmV0dXJuIF90aGlzMi5oYW5kbGVFdmVudChpLGUsdCl9O190aGlzMi5oYW5kbGVycy5wdXNoKHtlbGVtZW50OnQsZXZlbnQ6aSxmaWVsZDplLGhhbmRsZXI6c30pO3QuYWRkRXZlbnRMaXN0ZW5lcihpLHMpfSkpfSkpfX0se2tleTpcImhhbmRsZUV2ZW50XCIsdmFsdWU6ZnVuY3Rpb24gaGFuZGxlRXZlbnQoZSx0LGkpe3ZhciBfdGhpczM9dGhpcztpZih0aGlzLmV4Y2VlZFRocmVzaG9sZCh0LGkpJiZ0aGlzLmNvcmUuZXhlY3V0ZUZpbHRlcihcInBsdWdpbnMtdHJpZ2dlci1zaG91bGQtdmFsaWRhdGVcIix0cnVlLFt0LGldKSl7dmFyIHM9ZnVuY3Rpb24gcygpe3JldHVybiBfdGhpczMuY29yZS52YWxpZGF0ZUVsZW1lbnQodCxpKS50aGVuKChmdW5jdGlvbihzKXtfdGhpczMuY29yZS5lbWl0KFwicGx1Z2lucy50cmlnZ2VyLmV4ZWN1dGVkXCIse2VsZW1lbnQ6aSxldmVudDplLGZpZWxkOnR9KX0pKX07dmFyIG49dGhpcy5vcHRzLmRlbGF5W3RdfHx0aGlzLm9wdHMuZGVsYXk7aWYobj09PTApe3MoKX1lbHNle3ZhciBfZTM9dGhpcy50aW1lcnMuZ2V0KGkpO2lmKF9lMyl7d2luZG93LmNsZWFyVGltZW91dChfZTMpfXRoaXMudGltZXJzLnNldChpLHdpbmRvdy5zZXRUaW1lb3V0KHMsbioxZTMpKX19fX0se2tleTpcIm9uRmllbGRBZGRlZFwiLHZhbHVlOmZ1bmN0aW9uIG9uRmllbGRBZGRlZChlKXt0aGlzLmhhbmRsZXJzLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZmllbGQ9PT1lLmZpZWxkfSkpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmV2ZW50LGUuaGFuZGxlcil9KSk7dGhpcy5wcmVwYXJlSGFuZGxlcihlLmZpZWxkLGUuZWxlbWVudHMpfX0se2tleTpcIm9uRmllbGRSZW1vdmVkXCIsdmFsdWU6ZnVuY3Rpb24gb25GaWVsZFJlbW92ZWQoZSl7dGhpcy5oYW5kbGVycy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmZpZWxkPT09ZS5maWVsZCYmZS5lbGVtZW50cy5pbmRleE9mKHQuZWxlbWVudCk+PTB9KSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGUuZXZlbnQsZS5oYW5kbGVyKX0pKX19LHtrZXk6XCJleGNlZWRUaHJlc2hvbGRcIix2YWx1ZTpmdW5jdGlvbiBleGNlZWRUaHJlc2hvbGQoZSx0KXt2YXIgaT10aGlzLm9wdHMudGhyZXNob2xkW2VdPT09MHx8dGhpcy5vcHRzLnRocmVzaG9sZD09PTA/ZmFsc2U6dGhpcy5vcHRzLnRocmVzaG9sZFtlXXx8dGhpcy5vcHRzLnRocmVzaG9sZDtpZighaSl7cmV0dXJuIHRydWV9dmFyIHM9dC5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpO2lmKFtcImJ1dHRvblwiLFwiY2hlY2tib3hcIixcImZpbGVcIixcImhpZGRlblwiLFwiaW1hZ2VcIixcInJhZGlvXCIsXCJyZXNldFwiLFwic3VibWl0XCJdLmluZGV4T2YocykhPT0tMSl7cmV0dXJuIHRydWV9dmFyIG49dGhpcy5jb3JlLmdldEVsZW1lbnRWYWx1ZShlLHQpO3JldHVybiBuLmxlbmd0aD49aX19XSk7cmV0dXJuIHR9KHQkMTApO3ZhciBpbmRleCQyPXtBbGlhczplJEQsQXJpYTppLERlY2xhcmF0aXZlOnQkMTEsRGVmYXVsdFN1Ym1pdDpvJDQsRGVwZW5kZW5jeTplJEUsRXhjbHVkZWQ6ZSRGLEZpZWxkU3RhdHVzOnQkMTIsRnJhbWV3b3JrOmwkMixJY29uOmkkMSxNZXNzYWdlOnMkOSxTZXF1ZW5jZTppJDIsU3VibWl0QnV0dG9uOmUkSCxUb29sdGlwOmkkMyxUcmlnZ2VyOnQkMTR9O2Z1bmN0aW9uIHMkYShzLHQpe3JldHVybiBzLmNsYXNzTGlzdD9zLmNsYXNzTGlzdC5jb250YWlucyh0KTpuZXcgUmVnRXhwKFwiKF58IClcIi5jb25jYXQodCxcIiggfCQpXCIpLFwiZ2lcIikudGVzdChzLmNsYXNzTmFtZSl9dmFyIGluZGV4JDM9e2NhbGw6dCQ2LGNsYXNzU2V0OmMsY2xvc2VzdDp0JDEzLGZldGNoOmUkNCxmb3JtYXQ6cixoYXNDbGFzczpzJGEsaXNWYWxpZERhdGU6dCQ5fTt2YXIgcD17fTtleHBvcnRzLlBsdWdpbj10JDEwO2V4cG9ydHMuYWxnb3JpdGhtcz1pbmRleDtleHBvcnRzLmZpbHRlcnM9aW5kZXgkMTtleHBvcnRzLmZvcm1WYWxpZGF0aW9uPXIkZDtleHBvcnRzLmxvY2FsZXM9cDtleHBvcnRzLnBsdWdpbnM9aW5kZXgkMjtleHBvcnRzLnV0aWxzPWluZGV4JDM7ZXhwb3J0cy52YWxpZGF0b3JzPXMkNztPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cyxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pfSkpOyJdLCJuYW1lcyI6WyJnbG9iYWwiLCJmYWN0b3J5IiwiZXhwb3J0cyIsIm1vZHVsZSIsImRlZmluZSIsImFtZCIsInNlbGYiLCJGb3JtVmFsaWRhdGlvbiIsInQiLCJlIiwibGVuZ3RoIiwibCIsIm4iLCJyIiwicGFyc2VJbnQiLCJjaGFyQXQiLCJ0JDEiLCJ0JDIiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJvIiwiTWF0aCIsImZsb29yIiwiaW5kZXhPZiIsInQkMyIsInJldmVyc2UiLCJfdCIsImluZGV4IiwibHVobiIsIm1vZDExQW5kMTAiLCJtb2QzN0FuZDM2IiwidmVyaG9lZmYiLCJfY2xhc3NDYWxsQ2hlY2siLCJpbnN0YW5jZSIsIkNvbnN0cnVjdG9yIiwiVHlwZUVycm9yIiwiX2RlZmluZVByb3BlcnRpZXMiLCJ0YXJnZXQiLCJwcm9wcyIsImkiLCJkZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJrZXkiLCJfY3JlYXRlQ2xhc3MiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJwcm90b3R5cGUiLCJfZGVmaW5lUHJvcGVydHkiLCJvYmoiLCJ2YWx1ZSIsIl9pbmhlcml0cyIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsImNyZWF0ZSIsImNvbnN0cnVjdG9yIiwiX3NldFByb3RvdHlwZU9mIiwiX2dldFByb3RvdHlwZU9mIiwic2V0UHJvdG90eXBlT2YiLCJnZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsInAiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsInNoYW0iLCJQcm94eSIsIkRhdGUiLCJ0b1N0cmluZyIsImNhbGwiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiUmVmZXJlbmNlRXJyb3IiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsIl9jcmVhdGVTdXBlciIsIkRlcml2ZWQiLCJoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiX2NyZWF0ZVN1cGVySW50ZXJuYWwiLCJTdXBlciIsInJlc3VsdCIsIk5ld1RhcmdldCIsImFwcGx5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJzbGljZSIsIm5hbWUiLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwiYXJyIiwibGVuIiwiYXJyMiIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiaXNBcnJheSIsIkYiLCJzIiwiZG9uZSIsImYiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwiZXJyIiwic3RlcCIsIm5leHQiLCJmbnMiLCJjbGVhciIsImVtaXQiLCJfbGVuIiwiX2tleSIsIm1hcCIsIm9mZiIsInNwbGljZSIsIm9uIiwicHVzaCIsInQkNCIsImZpbHRlcnMiLCJhZGQiLCJleGVjdXRlIiwicmVtb3ZlIiwiZmlsdGVyIiwiZ2V0QXR0cmlidXRlIiwidG9Mb3dlckNhc2UiLCJjIiwidGFnTmFtZSIsIl9lIiwic2VsZWN0ZWRJbmRleCIsIm9wdGlvbnMiLCJpdGVtIiwiX2UyIiwiY2hlY2tlZCIsImEiLCJmb3JFYWNoIiwicmVwbGFjZSIsInMkMSIsInBhcnNlRmxvYXQiLCJjb25jYXQiLCJ2YWxpZGF0ZSIsInZhbGlkIiwiYXNzaWduIiwiaW5jbHVzaXZlIiwibWVzc2FnZSIsIm1pbiIsIm1heCIsImwxMG4iLCJiZXR3ZWVuIiwibm90SW5jbHVzaXZlIiwidCQ1IiwidCQ2Iiwic3Vic3RyaW5nIiwic3BsaXQiLCJwb3AiLCJ3aW5kb3ciLCJfaXRlcmF0b3IiLCJfc3RlcCIsImNhbGxiYWNrIiwidCQ3IiwiZWxlbWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJlbGVtZW50cyIsImNob2ljZSIsIm1vcmUiLCJsZXNzIiwidCQ4IiwiQU1FUklDQU5fRVhQUkVTUyIsInByZWZpeCIsIkRBTktPUlQiLCJESU5FUlNfQ0xVQiIsIkRJTkVSU19DTFVCX1VTIiwiRElTQ09WRVIiLCJFTE8iLCJGT1JCUlVHU0ZPUkVOSU5HRU4iLCJKQ0IiLCJMQVNFUiIsIk1BRVNUUk8iLCJNQVNURVJDQVJEIiwiU09MTyIsIlVOSU9OUEFZIiwiVklTQSIsIlZJU0FfRUxFQ1RST04iLCJtZXRhIiwidHlwZSIsIl9pIiwiX09iamVjdCRrZXlzIiwia2V5cyIsInN1YnN0ciIsInQkOSIsImlzTmFOIiwiX3IiLCJfcyIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJ1IiwiZ2V0RGF0ZSIsIl9uIiwic2V0SG91cnMiLCJzZXRNaW51dGVzIiwic2V0U2Vjb25kcyIsImdldEhvdXJzIiwiZyIsIm0iLCJkIiwiZ2V0TWludXRlcyIsImdldFNlY29uZHMiLCJoIiwiJCIsIkgiLCJISCIsIk0iLCJNTSIsImRkIiwiaGgiLCJtbSIsInNzIiwieXkiLCJ5eXl5IiwiZGF0ZSIsImZvcm1hdCIsInIkMSIsInNlcGFyYXRvciIsIlkiLCJEIiwieCIsInkiLCJJIiwiX3QyIiwiX24yIiwiTyIsInYiLCJUIiwiUyIsImIiLCJnZXRUaW1lIiwicmFuZ2UiLCJvJDEiLCJjb21wYXJlIiwiZSQxIiwidCRhIiwiX3QzIiwiX2wiLCJtdWx0aXBsZSIsIl90NCIsImUkMiIsImV4dGVuc2lvbiIsImZpbGVzIiwibWF4RmlsZXMiLCJlcnJvciIsIm1pbkZpbGVzIiwic2l6ZSIsImxhc3RJbmRleE9mIiwiZXh0IiwiZmlsZSIsIm1pblNpemUiLCJtYXhTaXplIiwibWF4VG90YWxTaXplIiwidG90YWxTaXplIiwibWluVG90YWxTaXplIiwiZ3JlYXRlclRoYW4iLCJvJDIiLCJhJDEiLCJkZWNpbWFsU2VwYXJhdG9yIiwidGhvdXNhbmRzU2VwYXJhdG9yIiwiUmVnRXhwIiwiaXNGaW5pdGUiLCJpcHY0IiwiaXB2NiIsImlwIiwicyQyIiwibGVzc1RoYW4iLCJ0JGIiLCJ0cmltIiwiYSQyIiwicHJvbWlzZSIsImUkMyIsInJlZ2V4cCIsImZsYWdzIiwiZSQ0IiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwiam9pbiIsIlByb21pc2UiLCJjcm9zc0RvbWFpbiIsImhlYWRlcnMiLCJtZXRob2QiLCJwYXJhbXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJub3ciLCJzcmMiLCJhc3luYyIsImFkZEV2ZW50TGlzdGVuZXIiLCJwYXJlbnROb2RlIiwicmVtb3ZlQ2hpbGQiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJYTUxIdHRwUmVxdWVzdCIsIm9wZW4iLCJzZXRSZXF1ZXN0SGVhZGVyIiwiSlNPTiIsInBhcnNlIiwicmVzcG9uc2VUZXh0Iiwic2VuZCIsImEkMyIsImRhdGEiLCJ2YWxpZEtleSIsInJlc29sdmUiLCJmaWVsZCIsInVybCIsInRoZW4iLCJyZWplY3QiLCJlJDUiLCJzdHJpbmdDYXNlIiwidXBwZXIiLCJ0b1VwcGVyQ2FzZSIsInQkYyIsImNoYXJDb2RlQXQiLCJ1dGY4Qnl0ZXMiLCJzdHJpbmdMZW5ndGgiLCJ0JGQiLCJhbGxvd0VtcHR5UHJvdG9jb2wiLCJhbGxvd0xvY2FsIiwicHJvdG9jb2wiLCJhJDQiLCJhJDUiLCJlJDYiLCJ0JGUiLCJyZWR1Y2UiLCJlJDciLCJlJDgiLCJBTkRPVkVSIiwiQVRMQU5UQSIsIkFVU1RJTiIsIkJST09LSEFWRU4iLCJDSU5DSU5OQVRJIiwiRlJFU05PIiwiSU5URVJORVQiLCJLQU5TQVNfQ0lUWSIsIk1FTVBISVMiLCJPR0RFTiIsIlBISUxBREVMUEhJQSIsIlNNQUxMX0JVU0lORVNTX0FETUlOSVNUUkFUSU9OIiwiY2FtcHVzIiwiciQyIiwiZSQ5IiwiWiIsIkFEIiwiQUUiLCJBTCIsIkFPIiwiQVQiLCJBWiIsIkJBIiwiQkUiLCJCRiIsIkJHIiwiQkgiLCJCSSIsIkJKIiwiQlIiLCJDSCIsIkNJIiwiQ00iLCJDUiIsIkNWIiwiQ1kiLCJDWiIsIkRFIiwiREsiLCJETyIsIkRaIiwiRUUiLCJFUyIsIkZJIiwiRk8iLCJGUiIsIkdCIiwiR0UiLCJHSSIsIkdMIiwiR1IiLCJHVCIsIkhSIiwiSFUiLCJJRSIsIklMIiwiSVIiLCJJUyIsIklUIiwiSk8iLCJLVyIsIktaIiwiTEIiLCJMSSIsIkxUIiwiTFUiLCJMViIsIk1DIiwiTUQiLCJNRSIsIk1HIiwiTUsiLCJNTCIsIk1SIiwiTVQiLCJNVSIsIk1aIiwiTkwiLCJOTyIsIlBLIiwiUEwiLCJQUyIsIlBUIiwiUUEiLCJSTyIsIlJTIiwiU0EiLCJTRSIsIlNJIiwiU0siLCJTTSIsIlNOIiwiVEwiLCJUTiIsIlRSIiwiVkciLCJYSyIsImNvdW50cnkiLCJzZXBhIiwiX0EiLCJpYmFuIiwiY291bnRyaWVzIiwiQSIsIkwiLCJfQTIiLCJ0JGYiLCJ0JGciLCJyJDMiLCJlJGEiLCJ0JGgiLCJ0JGkiLCJlJGIiLCJyJDQiLCJ0JGoiLCJlJGMiLCJlJGQiLCJ0JGsiLCJzJDMiLCJ0JGwiLCJ0JG0iLCJvJDMiLCJlJGUiLCJ0JG4iLCJlJGYiLCJlJGciLCJlJGgiLCJyJDUiLCJlJGkiLCJyJDYiLCJyJDciLCJDIiwiRSIsIksiLCJzJDQiLCJlJGoiLCJ0JG8iLCJ0JHAiLCJfYSIsInQkcSIsImUkayIsInIkOCIsInIkOSIsInIkYSIsInQkciIsInQkcyIsInQkdCIsInQkdSIsInQkdiIsInIkYiIsIlAiLCJHIiwiViIsImlkIiwidCR3IiwiZSRsIiwiZSRtIiwiX00iLCJCIiwiTiIsImUkbiIsImUkbyIsImEkNiIsImUkcCIsIm1hdGNoIiwiZSRxIiwicGhvbmUiLCJlJHIiLCJ0JHgiLCJlJHMiLCJlJHQiLCJlJHUiLCJwb3ciLCJyb3VuZCIsImJhc2VWYWx1ZSIsInMkNSIsImFsbCIsInZlcnNpb24iLCJ1dWlkIiwidCR5IiwidCR6IiwidCRBIiwiciRjIiwiX3MyIiwiX3MzIiwidCRCIiwidCRDIiwidCREIiwiZSR2IiwiZSR3IiwidCRFIiwidCRGIiwidCRHIiwidCRIIiwiZSR4IiwidCRJIiwidCRKIiwiZSR5IiwidCRLIiwidCRMIiwidCRNIiwiZSR6IiwidCROIiwidCRPIiwiZSRBIiwidCRQIiwidCRRIiwibiQxIiwiZSRCIiwidCRSIiwidCRTIiwidCRUIiwidCRVIiwidCRWIiwidCRXIiwiZSRDIiwidCRYIiwidCRZIiwidCRaIiwiSiIsInQkXyIsInZhdCIsInQkJCIsIlIiLCJVIiwiVyIsIlgiLCJzJDYiLCJfYyIsInppcENvZGUiLCJzJDciLCJibGFuayIsImNyZWRpdENhcmQiLCJkaWZmZXJlbnQiLCJkaWdpdHMiLCJlbWFpbEFkZHJlc3MiLCJpZGVudGljYWwiLCJpbnRlZ2VyIiwibm90RW1wdHkiLCJudW1lcmljIiwicmVtb3RlIiwidXJpIiwiYmFzZTY0IiwiYmljIiwiY29sb3IiLCJjdXNpcCIsImVhbiIsImVpbiIsImdyaWQiLCJoZXgiLCJpbWVpIiwiaW1vIiwiaXNibiIsImlzaW4iLCJpc21uIiwiaXNzbiIsIm1hYyIsIm1laWQiLCJydG4iLCJzZWRvbCIsInNpcmVuIiwic2lyZXQiLCJ2aW4iLCJsJDEiLCJlZSIsInBsdWdpbnMiLCJyZXN1bHRzIiwiTWFwIiwidmFsaWRhdG9ycyIsImZvcm0iLCJmaWVsZHMiLCJfdGhpcyRlZSIsInJlZ2lzdGVyUGx1Z2luIiwiRXJyb3IiLCJzZXRDb3JlIiwiaW5zdGFsbCIsImRlcmVnaXN0ZXJQbHVnaW4iLCJ1bmluc3RhbGwiLCJyZWdpc3RlclZhbGlkYXRvciIsInJlZ2lzdGVyRmlsdGVyIiwiZGVyZWdpc3RlckZpbHRlciIsImV4ZWN1dGVGaWx0ZXIiLCJhZGRGaWVsZCIsInNlbGVjdG9yIiwicXVlcnlFbGVtZW50cyIsInJlbW92ZUZpZWxkIiwiX3RoaXMiLCJ2YWxpZGF0ZUZpZWxkIiwiX3RoaXMyIiwiZ2V0IiwidmFsaWRhdGVFbGVtZW50Iiwic2V0IiwiX3RoaXMzIiwiZXhlY3V0ZVZhbGlkYXRvciIsIndhdGVyZmFsbCIsIl90aGlzNCIsImxvY2FsZSIsImVuYWJsZWQiLCJub3JtYWxpemVSZXN1bHQiLCJ2YWxpZGF0b3IiLCJnZXRFbGVtZW50VmFsdWUiLCJsb2NhbGl6YXRpb24iLCJnZXRFbGVtZW50cyIsImdldEZpZWxkcyIsImdldEZvcm1FbGVtZW50IiwiZ2V0TG9jYWxlIiwiZ2V0UGx1Z2luIiwidXBkYXRlRmllbGRTdGF0dXMiLCJfdGhpczUiLCJ1cGRhdGVFbGVtZW50U3RhdHVzIiwiX3RoaXM2IiwicmVzZXRGb3JtIiwiX3RoaXM3IiwicmVzZXRGaWVsZCIsInJlc2V0IiwicmVtb3ZlQXR0cmlidXRlIiwic2V0QXR0cmlidXRlIiwiSFRNTElucHV0RWxlbWVudCIsIkhUTUxUZXh0QXJlYUVsZW1lbnQiLCJyZXZhbGlkYXRlRmllbGQiLCJkaXNhYmxlVmFsaWRhdG9yIiwidG9nZ2xlVmFsaWRhdG9yIiwiZW5hYmxlVmFsaWRhdG9yIiwidXBkYXRlVmFsaWRhdG9yT3B0aW9uIiwic2V0RmllbGRPcHRpb25zIiwiZGVzdHJveSIsIl90aGlzOCIsInNldExvY2FsZSIsIl90aGlzOSIsInIkZCIsInQkMTAiLCJvcHRzIiwiY29yZSIsImluZGV4JDEiLCJnZXRGaWVsZFZhbHVlIiwiZSREIiwiX3N1cGVyIiwidmFsaWRhdG9yTmFtZUZpbHRlciIsImdldFZhbGlkYXRvck5hbWUiLCJiaW5kIiwiZWxlbWVudFZhbGlkYXRlZEhhbmRsZXIiLCJvbkVsZW1lbnRWYWxpZGF0ZWQiLCJmaWVsZFZhbGlkSGFuZGxlciIsIm9uRmllbGRWYWxpZCIsImZpZWxkSW52YWxpZEhhbmRsZXIiLCJvbkZpZWxkSW52YWxpZCIsIm1lc3NhZ2VEaXNwbGF5ZWRIYW5kbGVyIiwib25NZXNzYWdlRGlzcGxheWVkIiwibWVzc2FnZUVsZW1lbnQiLCJ0JDExIiwiYWRkZWRGaWVsZHMiLCJodG1sNUlucHV0IiwicGx1Z2luUHJlZml4IiwiZmllbGRBZGRlZEhhbmRsZXIiLCJvbkZpZWxkQWRkZWQiLCJmaWVsZFJlbW92ZWRIYW5kbGVyIiwib25GaWVsZFJlbW92ZWQiLCJwYXJzZVBsdWdpbnMiLCJwYXJzZU9wdGlvbnMiLCJoYXMiLCJwYXJzZUVsZW1lbnQiLCJpc0VtcHR5T3B0aW9uIiwiY3JlYXRlUGx1Z2luSW5zdGFuY2UiLCJhdHRyaWJ1dGVzIiwiZXhlYyIsIl9lMyIsInRvQ2FtZWxDYXNlIiwiX2U0Iiwibm9ybWFsaXplVmFsdWUiLCJvJDQiLCJvblZhbGlkSGFuZGxlciIsIm9uRm9ybVZhbGlkIiwiSFRNTEZvcm1FbGVtZW50Iiwic3VibWl0IiwiZSRFIiwidHJpZ2dlckV4ZWN1dGVkSGFuZGxlciIsIm9uVHJpZ2dlckV4ZWN1dGVkIiwiZSRGIiwiZXhjbHVkZWQiLCJkZWZhdWx0SWdub3JlIiwiaWdub3JlVmFsaWRhdGlvbkZpbHRlciIsImlnbm9yZVZhbGlkYXRpb24iLCJvZmZzZXRXaWR0aCIsIm9mZnNldEhlaWdodCIsImdldENsaWVudFJlY3RzIiwidCQxMiIsInN0YXR1c2VzIiwib25TdGF0dXNDaGFuZ2VkIiwiZWxlbWVudFZhbGlkYXRpbmdIYW5kbGVyIiwib25FbGVtZW50VmFsaWRhdGluZyIsImVsZW1lbnROb3RWYWxpZGF0ZWRIYW5kbGVyIiwib25FbGVtZW50Tm90VmFsaWRhdGVkIiwiZWxlbWVudElnbm9yZWRIYW5kbGVyIiwib25FbGVtZW50SWdub3JlZCIsImFyZUZpZWxkc1ZhbGlkIiwidmFsdWVzIiwiZXZlcnkiLCJnZXRTdGF0dXNlcyIsInMkOCIsImNsYXNzTGlzdCIsImNsYXNzTmFtZSIsImEkNyIsImUkRyIsIm1hdGNoZXMiLCJ3ZWJraXRNYXRjaGVzU2VsZWN0b3IiLCJwYXJlbnRFbGVtZW50IiwidCQxMyIsInMkOSIsIm1lc3NhZ2VzIiwiZGVmYXVsdENvbnRhaW5lciIsImNvbnRhaW5lciIsInZhbGlkYXRvclZhbGlkYXRlZEhhbmRsZXIiLCJvblZhbGlkYXRvclZhbGlkYXRlZCIsInZhbGlkYXRvck5vdFZhbGlkYXRlZEhhbmRsZXIiLCJvblZhbGlkYXRvck5vdFZhbGlkYXRlZCIsInByZXBhcmVGaWVsZENvbnRhaW5lciIsInByZXBhcmVFbGVtZW50Q29udGFpbmVyIiwicXVlcnlTZWxlY3RvciIsImdldE1lc3NhZ2UiLCJfaTIiLCJpbm5lckhUTUwiLCJjbGF6eiIsIl9zNCIsImdldENsb3Nlc3RDb250YWluZXIiLCJsJDIiLCJjb250YWluZXJzIiwiZGVmYXVsdE1lc3NhZ2VDb250YWluZXIiLCJlbGVJbnZhbGlkQ2xhc3MiLCJlbGVWYWxpZENsYXNzIiwicm93Q2xhc3NlcyIsInJvd1ZhbGlkYXRpbmdDbGFzcyIsImljb25QbGFjZWRIYW5kbGVyIiwib25JY29uUGxhY2VkIiwibWVzc2FnZVBsYWNlZEhhbmRsZXIiLCJvbk1lc3NhZ2VQbGFjZWQiLCJmb3JtQ2xhc3MiLCJtZXNzYWdlQ2xhc3MiLCJyb3dTZWxlY3RvciIsInJvd1BhdHRlcm4iLCJyb3dJbnZhbGlkQ2xhc3MiLCJyb3dWYWxpZENsYXNzIiwiX3Q1IiwiX3Q2IiwicmVtb3ZlQ2xhc3NlcyIsIl90NyIsIl90OCIsIl90OSIsIl90MTAiLCJfdDExIiwiaSQxIiwiaWNvbnMiLCJpbnZhbGlkIiwib25QbGFjZWQiLCJvblNldCIsInZhbGlkYXRpbmciLCJwcmVwYXJlRmllbGRJY29uIiwicHJlcGFyZUVsZW1lbnRJY29uIiwiaW5zZXJ0QmVmb3JlIiwibmV4dFNpYmxpbmciLCJjbGFzc2VzIiwiaWNvbkVsZW1lbnQiLCJfdGhpcyRzZXRDbGFzc2VzIiwic2V0Q2xhc3NlcyIsInN0YXR1cyIsIl90aGlzJHNldENsYXNzZXMyIiwiX3RoaXMkc2V0Q2xhc3NlczMiLCJfdGhpcyRzZXRDbGFzc2VzNCIsImkkMiIsImludmFsaWRGaWVsZHMiLCJ2YWxpZGF0b3JIYW5kbGVyIiwic2hvdWxkVmFsaWRhdGVGaWx0ZXIiLCJzaG91bGRWYWxpZGF0ZSIsImNsZWFySW52YWxpZEZpZWxkcyIsImUkSCIsImlzRm9ybVZhbGlkIiwiYXNwTmV0QnV0dG9uIiwiYnV0dG9ucyIsInN1Ym1pdEhhbmRsZXIiLCJoYW5kbGVTdWJtaXRFdmVudCIsImJ1dHRvbkNsaWNrSGFuZGxlciIsImhhbmRsZUNsaWNrRXZlbnQiLCJzdWJtaXRCdXR0b25zIiwiaGlkZGVuQ2xpY2tlZEVsZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJ2YWxpZGF0ZUZvcm0iLCJjdXJyZW50VGFyZ2V0IiwiSFRNTEVsZW1lbnQiLCJjbGlja2VkQnV0dG9uIiwicHJldmVudERlZmF1bHQiLCJjbGljayIsImkkMyIsInBsYWNlbWVudCIsInRyaWdnZXIiLCJkb2N1bWVudENsaWNrSGFuZGxlciIsIm9uRG9jdW1lbnRDbGlja2VkIiwidGlwIiwiYm9keSIsInNob3ciLCJoaWRlIiwic3RvcFByb3BhZ2F0aW9uIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiX3RoaXMkdGlwJGdldEJvdW5kaW5nIiwiaGVpZ2h0Iiwid2lkdGgiLCJ0b3AiLCJsZWZ0IiwiYyQxIiwicGFnZVlPZmZzZXQiLCJkb2N1bWVudEVsZW1lbnQiLCJzY3JvbGxUb3AiLCJwYWdlWE9mZnNldCIsInNjcm9sbExlZnQiLCJ0JDE0IiwiaGFuZGxlcnMiLCJ0aW1lcnMiLCJkZWZhdWx0RXZlbnQiLCJkZWxheSIsImV2ZW50IiwidGhyZXNob2xkIiwiaGFuZGxlciIsImNsZWFyVGltZW91dCIsInByZXBhcmVIYW5kbGVyIiwiaWVWZXJzaW9uIiwiaGFuZGxlRXZlbnQiLCJleGNlZWRUaHJlc2hvbGQiLCJzZXRUaW1lb3V0IiwiaW5kZXgkMiIsIkFsaWFzIiwiQXJpYSIsIkRlY2xhcmF0aXZlIiwiRGVmYXVsdFN1Ym1pdCIsIkRlcGVuZGVuY3kiLCJFeGNsdWRlZCIsIkZpZWxkU3RhdHVzIiwiRnJhbWV3b3JrIiwiSWNvbiIsIk1lc3NhZ2UiLCJTZXF1ZW5jZSIsIlN1Ym1pdEJ1dHRvbiIsIlRvb2x0aXAiLCJUcmlnZ2VyIiwicyRhIiwiY29udGFpbnMiLCJpbmRleCQzIiwiY2xhc3NTZXQiLCJjbG9zZXN0IiwiZmV0Y2giLCJoYXNDbGFzcyIsImlzVmFsaWREYXRlIiwiUGx1Z2luIiwiYWxnb3JpdGhtcyIsImZvcm1WYWxpZGF0aW9uIiwibG9jYWxlcyIsInV0aWxzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/assets/core/plugins/formvalidation/dist/js/FormValidation.full.min.js\n"); /***/ }), /***/ "./resources/assets/core/plugins/jquery-idletimer/idle-timer.min.js": /*!**************************************************************************!*\ !*** ./resources/assets/core/plugins/jquery-idletimer/idle-timer.min.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { eval("/* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*! Idle Timer v1.1.0 2016-03-21 | https://github.com/thorst/jquery-idletimer | (c) 2016 Paul Irish | Licensed MIT */\n!function (a) {\n a.idleTimer = function (b, c) {\n var d;\n \"object\" == _typeof(b) ? (d = b, b = null) : \"number\" == typeof b && (d = {\n timeout: b\n }, b = null), c = c || document, d = a.extend({\n idle: !1,\n timeout: 3e4,\n events: \"mousemove keydown wheel DOMMouseScroll mousewheel mousedown touchstart touchmove MSPointerDown MSPointerMove\"\n }, d);\n\n var e = a(c),\n f = e.data(\"idleTimerObj\") || {},\n g = function g(b) {\n var d = a.data(c, \"idleTimerObj\") || {};\n d.idle = !d.idle, d.olddate = +new Date();\n var e = a.Event((d.idle ? \"idle\" : \"active\") + \".idleTimer\");\n a(c).trigger(e, [c, a.extend({}, d), b]);\n },\n h = function h(b) {\n var d = a.data(c, \"idleTimerObj\") || {};\n\n if ((\"storage\" !== b.type || b.originalEvent.key === d.timerSyncId) && null == d.remaining) {\n if (\"mousemove\" === b.type) {\n if (b.pageX === d.pageX && b.pageY === d.pageY) return;\n if (\"undefined\" == typeof b.pageX && \"undefined\" == typeof b.pageY) return;\n var e = +new Date() - d.olddate;\n if (200 > e) return;\n }\n\n clearTimeout(d.tId), d.idle && g(b), d.lastActive = +new Date(), d.pageX = b.pageX, d.pageY = b.pageY, \"storage\" !== b.type && d.timerSyncId && \"undefined\" != typeof localStorage && localStorage.setItem(d.timerSyncId, d.lastActive), d.tId = setTimeout(g, d.timeout);\n }\n },\n i = function i() {\n var b = a.data(c, \"idleTimerObj\") || {};\n b.idle = b.idleBackup, b.olddate = +new Date(), b.lastActive = b.olddate, b.remaining = null, clearTimeout(b.tId), b.idle || (b.tId = setTimeout(g, b.timeout));\n },\n j = function j() {\n var b = a.data(c, \"idleTimerObj\") || {};\n null == b.remaining && (b.remaining = b.timeout - (+new Date() - b.olddate), clearTimeout(b.tId));\n },\n k = function k() {\n var b = a.data(c, \"idleTimerObj\") || {};\n null != b.remaining && (b.idle || (b.tId = setTimeout(g, b.remaining)), b.remaining = null);\n },\n l = function l() {\n var b = a.data(c, \"idleTimerObj\") || {};\n clearTimeout(b.tId), e.removeData(\"idleTimerObj\"), e.off(\"._idleTimer\");\n },\n m = function m() {\n var b = a.data(c, \"idleTimerObj\") || {};\n if (b.idle) return 0;\n if (null != b.remaining) return b.remaining;\n var d = b.timeout - (+new Date() - b.lastActive);\n return 0 > d && (d = 0), d;\n };\n\n if (null === b && \"undefined\" != typeof f.idle) return i(), e;\n if (null === b) ;else {\n if (null !== b && \"undefined\" == typeof f.idle) return !1;\n if (\"destroy\" === b) return l(), e;\n if (\"pause\" === b) return j(), e;\n if (\"resume\" === b) return k(), e;\n if (\"reset\" === b) return i(), e;\n if (\"getRemainingTime\" === b) return m();\n if (\"getElapsedTime\" === b) return +new Date() - f.olddate;\n if (\"getLastActiveTime\" === b) return f.lastActive;\n if (\"isIdle\" === b) return f.idle;\n }\n return e.on(a.trim((d.events + \" \").split(\" \").join(\"._idleTimer \")), function (a) {\n h(a);\n }), d.timerSyncId && a(window).bind(\"storage\", h), f = a.extend({}, {\n olddate: +new Date(),\n lastActive: +new Date(),\n idle: d.idle,\n idleBackup: d.idle,\n timeout: d.timeout,\n remaining: null,\n timerSyncId: d.timerSyncId,\n tId: null,\n pageX: null,\n pageY: null\n }), f.idle || (f.tId = setTimeout(g, f.timeout)), a.data(c, \"idleTimerObj\", f), e;\n }, a.fn.idleTimer = function (b) {\n return this[0] ? a.idleTimer(b, this[0]) : this;\n };\n}(jQuery);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvcGx1Z2lucy9qcXVlcnktaWRsZXRpbWVyL2lkbGUtdGltZXIubWluLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0EsQ0FBQyxVQUFTQSxDQUFULEVBQVc7QUFBQ0EsRUFBQUEsQ0FBQyxDQUFDQyxTQUFGLEdBQVksVUFBU0MsQ0FBVCxFQUFXQyxDQUFYLEVBQWE7QUFBQyxRQUFJQyxDQUFKO0FBQU0sd0JBQWlCRixDQUFqQixLQUFvQkUsQ0FBQyxHQUFDRixDQUFGLEVBQUlBLENBQUMsR0FBQyxJQUExQixJQUFnQyxZQUFVLE9BQU9BLENBQWpCLEtBQXFCRSxDQUFDLEdBQUM7QUFBQ0MsTUFBQUEsT0FBTyxFQUFDSDtBQUFULEtBQUYsRUFBY0EsQ0FBQyxHQUFDLElBQXJDLENBQWhDLEVBQTJFQyxDQUFDLEdBQUNBLENBQUMsSUFBRUcsUUFBaEYsRUFBeUZGLENBQUMsR0FBQ0osQ0FBQyxDQUFDTyxNQUFGLENBQVM7QUFBQ0MsTUFBQUEsSUFBSSxFQUFDLENBQUMsQ0FBUDtBQUFTSCxNQUFBQSxPQUFPLEVBQUMsR0FBakI7QUFBcUJJLE1BQUFBLE1BQU0sRUFBQztBQUE1QixLQUFULEVBQXFKTCxDQUFySixDQUEzRjs7QUFBbVAsUUFBSU0sQ0FBQyxHQUFDVixDQUFDLENBQUNHLENBQUQsQ0FBUDtBQUFBLFFBQVdRLENBQUMsR0FBQ0QsQ0FBQyxDQUFDRSxJQUFGLENBQU8sY0FBUCxLQUF3QixFQUFyQztBQUFBLFFBQXdDQyxDQUFDLEdBQUMsU0FBRkEsQ0FBRSxDQUFTWCxDQUFULEVBQVc7QUFBQyxVQUFJRSxDQUFDLEdBQUNKLENBQUMsQ0FBQ1ksSUFBRixDQUFPVCxDQUFQLEVBQVMsY0FBVCxLQUEwQixFQUFoQztBQUFtQ0MsTUFBQUEsQ0FBQyxDQUFDSSxJQUFGLEdBQU8sQ0FBQ0osQ0FBQyxDQUFDSSxJQUFWLEVBQWVKLENBQUMsQ0FBQ1UsT0FBRixHQUFVLENBQUMsSUFBSUMsSUFBSixFQUExQjtBQUFt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QXpCLENBQTFTLEVBQWtWTCxDQUFDLENBQUNZLElBQUYsQ0FBT1QsQ0FBUCxFQUFTLGNBQVQsRUFBd0JRLENBQXhCLENBQWxWLEVBQTZXRCxDQUFwWDtBQUFzWCxHQUF4L0UsRUFBeS9FVixDQUFDLENBQUM4QyxFQUFGLENBQUs3QyxTQUFMLEdBQWUsVUFBU0MsQ0FBVCxFQUFXO0FBQUMsV0FBTyxLQUFLLENBQUwsSUFBUUYsQ0FBQyxDQUFDQyxTQUFGLENBQVlDLENBQVosRUFBYyxLQUFLLENBQUwsQ0FBZCxDQUFSLEdBQStCLElBQXRDO0FBQTJDLEdBQS9qRjtBQUFna0YsQ0FBNWtGLENBQTZrRjZDLE1BQTdrRixDQUFEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9jb3JlL3BsdWdpbnMvanF1ZXJ5LWlkbGV0aW1lci9pZGxlLXRpbWVyLm1pbi5qcz9kZjdmIl0sInNvdXJjZXNDb250ZW50IjpbIi8qISBJZGxlIFRpbWVyIHYxLjEuMCAyMDE2LTAzLTIxIHwgaHR0cHM6Ly9naXRodWIuY29tL3Rob3JzdC9qcXVlcnktaWRsZXRpbWVyIHwgKGMpIDIwMTYgUGF1bCBJcmlzaCB8IExpY2Vuc2VkIE1JVCAqL1xyXG4hZnVuY3Rpb24oYSl7YS5pZGxlVGltZXI9ZnVuY3Rpb24oYixjKXt2YXIgZDtcIm9iamVjdFwiPT10eXBlb2YgYj8oZD1iLGI9bnVsbCk6XCJudW1iZXJcIj09dHlwZW9mIGImJihkPXt0aW1lb3V0OmJ9LGI9bnVsbCksYz1jfHxkb2N1bWVudCxkPWEuZXh0ZW5kKHtpZGxlOiExLHRpbWVvdXQ6M2U0LGV2ZW50czpcIm1vdXNlbW92ZSBrZXlkb3duIHdoZWVsIERPTU1vdXNlU2Nyb2xsIG1vdXNld2hlZWwgbW91c2Vkb3duIHRvdWNoc3RhcnQgdG91Y2htb3ZlIE1TUG9pbnRlckRvd24gTVNQb2ludGVyTW92ZVwifSxkKTt2YXIgZT1hKGMpLGY9ZS5kYXRhKFwiaWRsZVRpbWVyT2JqXCIpfHx7fSxnPWZ1bmN0aW9uKGIpe3ZhciBkPWEuZGF0YShjLFwiaWRsZVRpbWVyT2JqXCIpfHx7fTtkLmlkbGU9IWQuaWRsZSxkLm9sZGRhdGU9K25ldyBEYXRlO3ZhciBlPWEuRXZlbnQoKGQuaWRsZT9cImlkbGVcIjpcImFjdGl2ZVwiKStcIi5pZGxlVGltZXJcIik7YShjKS50cmlnZ2VyKGUsW2MsYS5leHRlbmQoe30sZCksYl0pfSxoPWZ1bmN0aW9uKGIpe3ZhciBkPWEuZGF0YShjLFwiaWRsZVRpbWVyT2JqXCIpfHx7fTtpZigoXCJzdG9yYWdlXCIhPT1iLnR5cGV8fGIub3JpZ2luYWxFdmVudC5rZXk9PT1kLnRpbWVyU3luY0lkKSYmbnVsbD09ZC5yZW1haW5pbmcpe2lmKFwibW91c2Vtb3ZlXCI9PT1iLnR5cGUpe2lmKGIucGFnZVg9PT1kLnBhZ2VYJiZiLnBhZ2VZPT09ZC5wYWdlWSlyZXR1cm47aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGIucGFnZVgmJlwidW5kZWZpbmVkXCI9PXR5cGVvZiBiLnBhZ2VZKXJldHVybjt2YXIgZT0rbmV3IERhdGUtZC5vbGRkYXRlO2lmKDIwMD5lKXJldHVybn1jbGVhclRpbWVvdXQoZC50SWQpLGQuaWRsZSYmZyhiKSxkLmxhc3RBY3RpdmU9K25ldyBEYXRlLGQucGFnZVg9Yi5wYWdlWCxkLnBhZ2VZPWIucGFnZVksXCJzdG9yYWdlXCIhPT1iLnR5cGUmJmQudGltZXJTeW5jSWQmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBsb2NhbFN0b3JhZ2UmJmxvY2FsU3RvcmFnZS5zZXRJdGVtKGQudGltZXJTeW5jSWQsZC5sYXN0QWN0aXZlKSxkLnRJZD1zZXRUaW1lb3V0KGcsZC50aW1lb3V0KX19LGk9ZnVuY3Rpb24oKXt2YXIgYj1hLmRhdGEoYyxcImlkbGVUaW1lck9ialwiKXx8e307Yi5pZGxlPWIuaWRsZUJhY2t1cCxiLm9sZGRhdGU9K25ldyBEYXRlLGIubGFzdEFjdGl2ZT1iLm9sZGRhdGUsYi5yZW1haW5pbmc9bnVsbCxjbGVhclRpbWVvdXQoYi50SWQpLGIuaWRsZXx8KGIudElkPXNldFRpbWVvdXQoZyxiLnRpbWVvdXQpKX0saj1mdW5jdGlvbigpe3ZhciBiPWEuZGF0YShjLFwiaWRsZVRpbWVyT2JqXCIpfHx7fTtudWxsPT1iLnJlbWFpbmluZyYmKGIucmVtYWluaW5nPWIudGltZW91dC0oK25ldyBEYXRlLWIub2xkZGF0ZSksY2xlYXJUaW1lb3V0KGIudElkKSl9LGs9ZnVuY3Rpb24oKXt2YXIgYj1hLmRhdGEoYyxcImlkbGVUaW1lck9ialwiKXx8e307bnVsbCE9Yi5yZW1haW5pbmcmJihiLmlkbGV8fChiLnRJZD1zZXRUaW1lb3V0KGcsYi5yZW1haW5pbmcpKSxiLnJlbWFpbmluZz1udWxsKX0sbD1mdW5jdGlvbigpe3ZhciBiPWEuZGF0YShjLFwiaWRsZVRpbWVyT2JqXCIpfHx7fTtjbGVhclRpbWVvdXQoYi50SWQpLGUucmVtb3ZlRGF0YShcImlkbGVUaW1lck9ialwiKSxlLm9mZihcIi5faWRsZVRpbWVyXCIpfSxtPWZ1bmN0aW9uKCl7dmFyIGI9YS5kYXRhKGMsXCJpZGxlVGltZXJPYmpcIil8fHt9O2lmKGIuaWRsZSlyZXR1cm4gMDtpZihudWxsIT1iLnJlbWFpbmluZylyZXR1cm4gYi5yZW1haW5pbmc7dmFyIGQ9Yi50aW1lb3V0LSgrbmV3IERhdGUtYi5sYXN0QWN0aXZlKTtyZXR1cm4gMD5kJiYoZD0wKSxkfTtpZihudWxsPT09YiYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGYuaWRsZSlyZXR1cm4gaSgpLGU7aWYobnVsbD09PWIpO2Vsc2V7aWYobnVsbCE9PWImJlwidW5kZWZpbmVkXCI9PXR5cGVvZiBmLmlkbGUpcmV0dXJuITE7aWYoXCJkZXN0cm95XCI9PT1iKXJldHVybiBsKCksZTtpZihcInBhdXNlXCI9PT1iKXJldHVybiBqKCksZTtpZihcInJlc3VtZVwiPT09YilyZXR1cm4gaygpLGU7aWYoXCJyZXNldFwiPT09YilyZXR1cm4gaSgpLGU7aWYoXCJnZXRSZW1haW5pbmdUaW1lXCI9PT1iKXJldHVybiBtKCk7aWYoXCJnZXRFbGFwc2VkVGltZVwiPT09YilyZXR1cm4rbmV3IERhdGUtZi5vbGRkYXRlO2lmKFwiZ2V0TGFzdEFjdGl2ZVRpbWVcIj09PWIpcmV0dXJuIGYubGFzdEFjdGl2ZTtpZihcImlzSWRsZVwiPT09YilyZXR1cm4gZi5pZGxlfXJldHVybiBlLm9uKGEudHJpbSgoZC5ldmVudHMrXCIgXCIpLnNwbGl0KFwiIFwiKS5qb2luKFwiLl9pZGxlVGltZXIgXCIpKSxmdW5jdGlvbihhKXtoKGEpfSksZC50aW1lclN5bmNJZCYmYSh3aW5kb3cpLmJpbmQoXCJzdG9yYWdlXCIsaCksZj1hLmV4dGVuZCh7fSx7b2xkZGF0ZTorbmV3IERhdGUsbGFzdEFjdGl2ZTorbmV3IERhdGUsaWRsZTpkLmlkbGUsaWRsZUJhY2t1cDpkLmlkbGUsdGltZW91dDpkLnRpbWVvdXQscmVtYWluaW5nOm51bGwsdGltZXJTeW5jSWQ6ZC50aW1lclN5bmNJZCx0SWQ6bnVsbCxwYWdlWDpudWxsLHBhZ2VZOm51bGx9KSxmLmlkbGV8fChmLnRJZD1zZXRUaW1lb3V0KGcsZi50aW1lb3V0KSksYS5kYXRhKGMsXCJpZGxlVGltZXJPYmpcIixmKSxlfSxhLmZuLmlkbGVUaW1lcj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpc1swXT9hLmlkbGVUaW1lcihiLHRoaXNbMF0pOnRoaXN9fShqUXVlcnkpOyJdLCJuYW1lcyI6WyJhIiwiaWRsZVRpbWVyIiwiYiIsImMiLCJkIiwidGltZW91dCIsImRvY3VtZW50IiwiZXh0ZW5kIiwiaWRsZSIsImV2ZW50cyIsImUiLCJmIiwiZGF0YSIsImciLCJvbGRkYXRlIiwiRGF0ZSIsIkV2ZW50IiwidHJpZ2dlciIsImgiLCJ0eXBlIiwib3JpZ2luYWxFdmVudCIsImtleSIsInRpbWVyU3luY0lkIiwicmVtYWluaW5nIiwicGFnZVgiLCJwYWdlWSIsImNsZWFyVGltZW91dCIsInRJZCIsImxhc3RBY3RpdmUiLCJsb2NhbFN0b3JhZ2UiLCJzZXRJdGVtIiwic2V0VGltZW91dCIsImkiLCJpZGxlQmFja3VwIiwiaiIsImsiLCJsIiwicmVtb3ZlRGF0YSIsIm9mZiIsIm0iLCJvbiIsInRyaW0iLCJzcGxpdCIsImpvaW4iLCJ3aW5kb3ciLCJiaW5kIiwiZm4iLCJqUXVlcnkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/assets/core/plugins/jquery-idletimer/idle-timer.min.js\n"); /***/ }), /***/ "./resources/assets/core/plugins/plugins.js": /*!**************************************************!*\ !*** ./resources/assets/core/plugins/plugins.js ***! \**************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { eval("//\n// 3rd-Party Plugins JavaScript Includes\n//\n//////////////////////////////////////////////////////////////////////\n//////////////////////////////////////////////////////////////////////\n//// Mandatory Plugins Includes(do not remove or change order!) ////\n//////////////////////////////////////////////////////////////////////\n//////////////////////////////////////////////////////////////////////\n// Jquery - jQuery is a popular and feature-rich JavaScript library. Learn more: https://jquery.com/\nwindow.jQuery = window.$ = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"); // Bootstrap - The most popular framework uses as the foundation. Learn more: http://getbootstrap.com\n\nwindow.bootstrap = __webpack_require__(/*! bootstrap */ \"./node_modules/bootstrap/dist/js/bootstrap.esm.js\"); // Popper.js - Tooltip & Popover Positioning Engine used by Bootstrap. Learn more: https://popper.js.org\n\nwindow.Popper = __webpack_require__(/*! @popperjs/core */ \"./node_modules/@popperjs/core/lib/index.js\"); // Wnumb - Number & Money formatting. Learn more: https://refreshless.com/wnumb/\n\nwindow.wNumb = __webpack_require__(/*! wnumb */ \"./node_modules/wnumb/wNumb.js\"); // Moment - Parse, validate, manipulate, and display dates and times in JavaScript. Learn more: https://momentjs.com/\n\nwindow.moment = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\"); // ES6-Shim - ECMAScript 6 compatibility shims for legacy JS engines. Learn more: https://github.com/paulmillr/es6-shim\n\n__webpack_require__(/*! es6-shim/es6-shim.min.js */ \"./node_modules/es6-shim/es6-shim.min.js\"); //////////////////////////////////////////////////////////////////////\n//////////////////////////////////////////////////////////////////////\n/// Optional Plugins Includes(you can remove or add) ///////////////\n//////////////////////////////////////////////////////////////////////\n//////////////////////////////////////////////////////////////////////\n// Apexcharts - modern charting library that helps developers to create beautiful and interactive visualizations for web pages: https://apexcharts.com/\n\n\nwindow.ApexCharts = __webpack_require__(/*! apexcharts/dist/apexcharts.min.js */ \"./node_modules/apexcharts/dist/apexcharts.min.js\"); // FormValidation - Best premium validation library for JavaScript. Zero dependencies. Learn more: https://formvalidation.io/\n\nwindow.FormValidation = __webpack_require__(/*! ../../core/plugins/formvalidation/dist/js/FormValidation.full.min.js */ \"./resources/assets/core/plugins/formvalidation/dist/js/FormValidation.full.min.js\");\nwindow.FormValidation.plugins.Bootstrap5 = __webpack_require__(/*! ../../core/plugins/formvalidation/dist/amd/plugins/Bootstrap5.js */ \"./resources/assets/core/plugins/formvalidation/dist/amd/plugins/Bootstrap5.js\")[\"default\"]; // Date Range Picker - A JavaScript component for choosing date ranges, dates and times: https://www.daterangepicker.com/\n\n__webpack_require__(/*! bootstrap-daterangepicker/daterangepicker.js */ \"./node_modules/bootstrap-daterangepicker/daterangepicker.js\"); // Bootstrap Maxlength - This plugin integrates by default with Twitter bootstrap using badges to display the maximum length of the field where the user is inserting text: https://github.com/mimo84/bootstrap-maxlength\n\n\n__webpack_require__(/*! bootstrap-maxlength/src/bootstrap-maxlength.js */ \"./node_modules/bootstrap-maxlength/src/bootstrap-maxlength.js\");\n\n__webpack_require__(/*! ../../core/plugins/bootstrap-multiselectsplitter/bootstrap-multiselectsplitter.min.js */ \"./resources/assets/core/plugins/bootstrap-multiselectsplitter/bootstrap-multiselectsplitter.min.js\"); // Select2 - Select2 is a jQuery based replacement for select boxes: https://select2.org/\n// require('select2');\n// require('../../core/js/vendors/plugins/select2.init.js');\n// Flatpickr - is a lightweight and powerful datetime picker.\n// require('flatpickr/dist/flatpickr.js');\n// require('../../core/js/vendors/plugins/flatpickr.init.js');\n// Inputmask - is a javascript library which creates an input mask: https://github.com/RobinHerbots/Inputmask\n\n\n__webpack_require__(/*! inputmask/dist/inputmask.js */ \"./node_modules/inputmask/dist/inputmask.js\");\n\n__webpack_require__(/*! inputmask/dist/bindings/inputmask.binding.js */ \"./node_modules/inputmask/dist/bindings/inputmask.binding.js\"); // noUiSlider - is a lightweight range slider with multi-touch support and a ton of features. It supports non-linear ranges, requires no external dependencies: https://refreshless.com/nouislider/\n\n\nwindow.noUiSlider = __webpack_require__(/*! nouislider/dist/nouislider.min.js */ \"./node_modules/nouislider/dist/nouislider.min.js\"); // The autosize - function accepts a single textarea element, or an array or array-like object (such as a NodeList or jQuery collection) of textarea elements: https://www.jacklmoore.com/autosize/\n\nwindow.autosize = __webpack_require__(/*! autosize/dist/autosize.min.js */ \"./node_modules/autosize/dist/autosize.min.js\"); // Clipboard - Copy text to the clipboard shouldn't be hard. It shouldn't require dozens of steps to configure or hundreds of KBs to load: https://clipboardjs.com/\n\nwindow.ClipboardJS = __webpack_require__(/*! clipboard/dist/clipboard.min.js */ \"./node_modules/clipboard/dist/clipboard.min.js\"); // DropzoneJS - is an open source library that provides drag'n'drop file uploads with image previews: https://www.dropzonejs.com/\n\nwindow.Dropzone = __webpack_require__(/*! dropzone/dist/min/dropzone.min.js */ \"./node_modules/dropzone/dist/min/dropzone.min.js\")[\"default\"];\n\n__webpack_require__(/*! ../../core/js/vendors/plugins/dropzone.init.js */ \"./resources/assets/core/js/vendors/plugins/dropzone.init.js\"); // Quill - is a free, open source WYSIWYG editor built for the modern web. Completely customize it for any need with its modular architecture and expressive API: https://quilljs.com/\n\n\nwindow.Quill = __webpack_require__(/*! quill/dist/quill.js */ \"./node_modules/quill/dist/quill.js\"); // Tagify - Transforms an input field or a textarea into a Tags component, in an easy, customizable way, with great performance and small code footprint, exploded with features: https://github.com/yairEO/tagify\n\n__webpack_require__(/*! @yaireo/tagify/dist/tagify.polyfills.min.js */ \"./node_modules/@yaireo/tagify/dist/tagify.polyfills.min.js\");\n\nwindow.Tagify = __webpack_require__(/*! @yaireo/tagify/dist/tagify.min.js */ \"./node_modules/@yaireo/tagify/dist/tagify.min.js\"); // Toastr - is a Javascript library for non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended: https://github.com/CodeSeven/toastr\n\nwindow.toastr = __webpack_require__(/*! toastr/build/toastr.min.js */ \"./node_modules/toastr/build/toastr.min.js\"); // Bootstrap Session Timeout - Session timeout and keep-alive control with a nice Bootstrap warning dialog: https://github.com/orangehill/bootstrap-session-timeout\n\nwindow.sessionTimeout = __webpack_require__(/*! ../../core/plugins/bootstrap-session-timeout/dist/bootstrap-session-timeout.min.js */ \"./resources/assets/core/plugins/bootstrap-session-timeout/dist/bootstrap-session-timeout.min.js\"); // JQuery Idletimer - provides you a way to monitor user activity with a page: https://github.com/thorst/jquery-idletimer\n\n__webpack_require__(/*! ../../core/plugins/jquery-idletimer/idle-timer.min.js */ \"./resources/assets/core/plugins/jquery-idletimer/idle-timer.min.js\"); // ES6 Promise Polyfill - This is a polyfill of the ES6 Promise: https://github.com/lahmatiy/es6-promise-polyfill\n\n\n__webpack_require__(/*! es6-promise-polyfill/promise.min.js */ \"./node_modules/es6-promise-polyfill/promise.min.js\"); // Sweetalert2 - a beautiful, responsive, customizable and accessible (WAI-ARIA) replacement for JavaScript's popup boxes: https://sweetalert2.github.io/\n\n\nwindow.Swal = window.swal = __webpack_require__(/*! sweetalert2/dist/sweetalert2.min.js */ \"./node_modules/sweetalert2/dist/sweetalert2.min.js\");\n\n__webpack_require__(/*! ../../core/js/vendors/plugins/sweetalert2.init.js */ \"./resources/assets/core/js/vendors/plugins/sweetalert2.init.js\"); // CountUp.js - is a dependency-free, lightweight JavaScript class that can be used to quickly create animations that display numerical data in a more interesting way.\n\n\nwindow.countUp = __webpack_require__(/*! countup.js/dist/countUp.withPolyfill.min.js */ \"./node_modules/countup.js/dist/countUp.withPolyfill.min.js\"); // Chart.js - Simple yet flexible JavaScript charting for designers & developers\n\nwindow.Chart = __webpack_require__(/*! chart.js/dist/chart.js */ \"./node_modules/chart.js/dist/chart.js\"); // Tiny slider - for all purposes, inspired by Owl Carousel.\n\nwindow.tns = __webpack_require__(/*! tiny-slider/src/tiny-slider.js */ \"./node_modules/tiny-slider/src/tiny-slider.js\").tns; // A lightweight script to animate scrolling to anchor links\n\nwindow.SmoothScroll = __webpack_require__(/*! smooth-scroll/dist/smooth-scroll.js */ \"./node_modules/smooth-scroll/dist/smooth-scroll.js\"); // Axios - Promise based HTTP client for the browser and node.js\n\nwindow.axios = __webpack_require__(/*! axios */ \"./node_modules/axios/index.js\")[\"default\"];\nwindow.axios.defaults.headers.common = {\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-CSRF-TOKEN': document.querySelector('meta[name=\"csrf-token\"]').getAttribute('content')\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvYXNzZXRzL2NvcmUvcGx1Z2lucy9wbHVnaW5zLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBQSxNQUFNLENBQUNDLE1BQVAsR0FBZ0JELE1BQU0sQ0FBQ0UsQ0FBUCxHQUFXQyxtQkFBTyxDQUFDLG9EQUFELENBQWxDLEMsQ0FFQTs7QUFDQUgsTUFBTSxDQUFDSSxTQUFQLEdBQW1CRCxtQkFBTyxDQUFDLG9FQUFELENBQTFCLEMsQ0FFQTs7QUFDQUgsTUFBTSxDQUFDSyxNQUFQLEdBQWdCRixtQkFBTyxDQUFDLGtFQUFELENBQXZCLEMsQ0FFQTs7QUFDQUgsTUFBTSxDQUFDTSxLQUFQLEdBQWVILG1CQUFPLENBQUMsNENBQUQsQ0FBdEIsQyxDQUVBOztBQUNBSCxNQUFNLENBQUNPLE1BQVAsR0FBZ0JKLG1CQUFPLENBQUMsK0NBQUQsQ0FBdkIsQyxDQUVBOztBQUNBQSxtQkFBTyxDQUFDLHlFQUFELENBQVAsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7O0FBQ0FILE1BQU0sQ0FBQ1EsVUFBUCxHQUFvQkwsbUJBQU8sQ0FBQywyRkFBRCxDQUEzQixDLENBRUE7O0FBQ0FILE1BQU0sQ0FBQ1MsY0FBUCxHQUF3Qk4sbUJBQU8sQ0FBQywrSkFBRCxDQUEvQjtBQUNBSCxNQUFNLENBQUNTLGNBQVAsQ0FBc0JDLE9BQXRCLENBQThCQyxVQUE5QixHQUEyQ1IsdUxBQTNDLEMsQ0FFQTs7QUFDQUEsbUJBQU8sQ0FBQyxpSEFBRCxDQUFQLEMsQ0FFQTs7O0FBQ0FBLG1CQUFPLENBQUMscUhBQUQsQ0FBUDs7QUFDQUEsbUJBQU8sQ0FBQyxpTUFBRCxDQUFQLEMsQ0FFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTs7O0FBQ0FBLG1CQUFPLENBQUMsK0VBQUQsQ0FBUDs7QUFDQUEsbUJBQU8sQ0FBQyxpSEFBRCxDQUFQLEMsQ0FFQTs7O0FBQ0FILE1BQU0sQ0FBQ1ksVUFBUCxHQUFvQlQsbUJBQU8sQ0FBQywyRkFBRCxDQUEzQixDLENBRUE7O0FBQ0FILE1BQU0sQ0FBQ2EsUUFBUCxHQUFrQlYsbUJBQU8sQ0FBQyxtRkFBRCxDQUF6QixDLENBRUE7O0FBQ0FILE1BQU0sQ0FBQ2MsV0FBUCxHQUFxQlgsbUJBQU8sQ0FBQyx1RkFBRCxDQUE1QixDLENBRUE7O0FBQ0FILE1BQU0sQ0FBQ2UsUUFBUCxHQUFrQlosMkhBQWxCOztBQUNBQSxtQkFBTyxDQUFDLG1IQUFELENBQVAsQyxDQUVBOzs7QUFDQUgsTUFBTSxDQUFDZ0IsS0FBUCxHQUFlYixtQkFBTyxDQUFDLCtEQUFELENBQXRCLEMsQ0FFQTs7QUFDQUEsbUJBQU8sQ0FBQywrR0FBRCxDQUFQOztBQUNBSCxNQUFNLENBQUNpQixNQUFQLEdBQWdCZCxtQkFBTyxDQUFDLDJGQUFELENBQXZCLEMsQ0FFQTs7QUFDQUgsTUFBTSxDQUFDa0IsTUFBUCxHQUFnQmYsbUJBQU8sQ0FBQyw2RUFBRCxDQUF2QixDLENBRUE7O0FBQ0FILE1BQU0sQ0FBQ21CLGNBQVAsR0FBd0JoQixtQkFBTyxDQUFDLDJMQUFELENBQS9CLEMsQ0FFQTs7QUFDQUEsbUJBQU8sQ0FBQyxpSUFBRCxDQUFQLEMsQ0FFQTs7O0FBQ0FBLG1CQUFPLENBQUMsK0ZBQUQsQ0FBUCxDLENBRUE7OztBQUNBSCxNQUFNLENBQUNvQixJQUFQLEdBQWNwQixNQUFNLENBQUNxQixJQUFQLEdBQWNsQixtQkFBTyxDQUFDLCtGQUFELENBQW5DOztBQUNBQSxtQkFBTyxDQUFDLHlIQUFELENBQVAsQyxDQUVBOzs7QUFDQUgsTUFBTSxDQUFDc0IsT0FBUCxHQUFpQm5CLG1CQUFPLENBQUMsK0dBQUQsQ0FBeEIsQyxDQUVBOztBQUNBSCxNQUFNLENBQUN1QixLQUFQLEdBQWVwQixtQkFBTyxDQUFDLHFFQUFELENBQXRCLEMsQ0FFQTs7QUFDQUgsTUFBTSxDQUFDd0IsR0FBUCxHQUFhckIsOEdBQWIsQyxDQUVBOztBQUNBSCxNQUFNLENBQUN5QixZQUFQLEdBQXNCdEIsbUJBQU8sQ0FBQywrRkFBRCxDQUE3QixDLENBRUE7O0FBQ0FILE1BQU0sQ0FBQzBCLEtBQVAsR0FBZXZCLDRFQUFmO0FBQ0FILE1BQU0sQ0FBQzBCLEtBQVAsQ0FBYUMsUUFBYixDQUFzQkMsT0FBdEIsQ0FBOEJDLE1BQTlCLEdBQXVDO0FBQ25DLHNCQUFvQixnQkFEZTtBQUVuQyxrQkFBaUJDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1Qix5QkFBdkIsRUFBa0RDLFlBQWxELENBQStELFNBQS9EO0FBRmtCLENBQXZDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9jb3JlL3BsdWdpbnMvcGx1Z2lucy5qcz85NzUyIl0sInNvdXJjZXNDb250ZW50IjpbIi8vXG4vLyAzcmQtUGFydHkgUGx1Z2lucyBKYXZhU2NyaXB0IEluY2x1ZGVzXG4vL1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8gIE1hbmRhdG9yeSBQbHVnaW5zIEluY2x1ZGVzKGRvIG5vdCByZW1vdmUgb3IgY2hhbmdlIG9yZGVyISkgIC8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8gSnF1ZXJ5IC0galF1ZXJ5IGlzIGEgcG9wdWxhciBhbmQgZmVhdHVyZS1yaWNoIEphdmFTY3JpcHQgbGlicmFyeS4gTGVhcm4gbW9yZTogaHR0cHM6Ly9qcXVlcnkuY29tL1xud2luZG93LmpRdWVyeSA9IHdpbmRvdy4kID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XG5cbi8vIEJvb3RzdHJhcCAtIFRoZSBtb3N0IHBvcHVsYXIgZnJhbWV3b3JrIHVzZXMgYXMgdGhlIGZvdW5kYXRpb24uIExlYXJuIG1vcmU6IGh0dHA6Ly9nZXRib290c3RyYXAuY29tXG53aW5kb3cuYm9vdHN0cmFwID0gcmVxdWlyZSgnYm9vdHN0cmFwJyk7XG5cbi8vIFBvcHBlci5qcyAtIFRvb2x0aXAgJiBQb3BvdmVyIFBvc2l0aW9uaW5nIEVuZ2luZSB1c2VkIGJ5IEJvb3RzdHJhcC4gTGVhcm4gbW9yZTogaHR0cHM6Ly9wb3BwZXIuanMub3JnXG53aW5kb3cuUG9wcGVyID0gcmVxdWlyZSgnQHBvcHBlcmpzL2NvcmUnKTtcblxuLy8gV251bWIgLSBOdW1iZXIgJiBNb25leSBmb3JtYXR0aW5nLiBMZWFybiBtb3JlOiBodHRwczovL3JlZnJlc2hsZXNzLmNvbS93bnVtYi9cbndpbmRvdy53TnVtYiA9IHJlcXVpcmUoJ3dudW1iJyk7XG5cbi8vIE1vbWVudCAtIFBhcnNlLCB2YWxpZGF0ZSwgbWFuaXB1bGF0ZSwgYW5kIGRpc3BsYXkgZGF0ZXMgYW5kIHRpbWVzIGluIEphdmFTY3JpcHQuIExlYXJuIG1vcmU6IGh0dHBzOi8vbW9tZW50anMuY29tL1xud2luZG93Lm1vbWVudCA9IHJlcXVpcmUoJ21vbWVudCcpO1xuXG4vLyBFUzYtU2hpbSAtIEVDTUFTY3JpcHQgNiBjb21wYXRpYmlsaXR5IHNoaW1zIGZvciBsZWdhY3kgSlMgZW5naW5lcy4gIExlYXJuIG1vcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9wYXVsbWlsbHIvZXM2LXNoaW1cbnJlcXVpcmUoXCJlczYtc2hpbS9lczYtc2hpbS5taW4uanNcIik7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyAgT3B0aW9uYWwgUGx1Z2lucyBJbmNsdWRlcyh5b3UgY2FuIHJlbW92ZSBvciBhZGQpICAvLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8gQXBleGNoYXJ0cyAtIG1vZGVybiBjaGFydGluZyBsaWJyYXJ5IHRoYXQgaGVscHMgZGV2ZWxvcGVycyB0byBjcmVhdGUgYmVhdXRpZnVsIGFuZCBpbnRlcmFjdGl2ZSB2aXN1YWxpemF0aW9ucyBmb3Igd2ViIHBhZ2VzOiBodHRwczovL2FwZXhjaGFydHMuY29tL1xud2luZG93LkFwZXhDaGFydHMgPSByZXF1aXJlKCdhcGV4Y2hhcnRzL2Rpc3QvYXBleGNoYXJ0cy5taW4uanMnKTtcblxuLy8gRm9ybVZhbGlkYXRpb24gLSBCZXN0IHByZW1pdW0gdmFsaWRhdGlvbiBsaWJyYXJ5IGZvciBKYXZhU2NyaXB0LiBaZXJvIGRlcGVuZGVuY2llcy4gTGVhcm4gbW9yZTogaHR0cHM6Ly9mb3JtdmFsaWRhdGlvbi5pby9cbndpbmRvdy5Gb3JtVmFsaWRhdGlvbiA9IHJlcXVpcmUoJy4uLy4uL2NvcmUvcGx1Z2lucy9mb3JtdmFsaWRhdGlvbi9kaXN0L2pzL0Zvcm1WYWxpZGF0aW9uLmZ1bGwubWluLmpzJyk7XG53aW5kb3cuRm9ybVZhbGlkYXRpb24ucGx1Z2lucy5Cb290c3RyYXA1ID0gcmVxdWlyZSgnLi4vLi4vY29yZS9wbHVnaW5zL2Zvcm12YWxpZGF0aW9uL2Rpc3QvYW1kL3BsdWdpbnMvQm9vdHN0cmFwNS5qcycpLmRlZmF1bHQ7XG5cbi8vIERhdGUgUmFuZ2UgUGlja2VyIC0gQSBKYXZhU2NyaXB0IGNvbXBvbmVudCBmb3IgY2hvb3NpbmcgZGF0ZSByYW5nZXMsIGRhdGVzIGFuZCB0aW1lczogaHR0cHM6Ly93d3cuZGF0ZXJhbmdlcGlja2VyLmNvbS9cbnJlcXVpcmUoJ2Jvb3RzdHJhcC1kYXRlcmFuZ2VwaWNrZXIvZGF0ZXJhbmdlcGlja2VyLmpzJyk7XG5cbi8vIEJvb3RzdHJhcCBNYXhsZW5ndGggLSBUaGlzIHBsdWdpbiBpbnRlZ3JhdGVzIGJ5IGRlZmF1bHQgd2l0aCBUd2l0dGVyIGJvb3RzdHJhcCB1c2luZyBiYWRnZXMgdG8gZGlzcGxheSB0aGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIGZpZWxkIHdoZXJlIHRoZSB1c2VyIGlzIGluc2VydGluZyB0ZXh0OiBodHRwczovL2dpdGh1Yi5jb20vbWltbzg0L2Jvb3RzdHJhcC1tYXhsZW5ndGhcbnJlcXVpcmUoJ2Jvb3RzdHJhcC1tYXhsZW5ndGgvc3JjL2Jvb3RzdHJhcC1tYXhsZW5ndGguanMnKTtcbnJlcXVpcmUoJy4uLy4uL2NvcmUvcGx1Z2lucy9ib290c3RyYXAtbXVsdGlzZWxlY3RzcGxpdHRlci9ib290c3RyYXAtbXVsdGlzZWxlY3RzcGxpdHRlci5taW4uanMnKTtcblxuLy8gU2VsZWN0MiAtIFNlbGVjdDIgaXMgYSBqUXVlcnkgYmFzZWQgcmVwbGFjZW1lbnQgZm9yIHNlbGVjdCBib3hlczogaHR0cHM6Ly9zZWxlY3QyLm9yZy9cbi8vIHJlcXVpcmUoJ3NlbGVjdDInKTtcbi8vIHJlcXVpcmUoJy4uLy4uL2NvcmUvanMvdmVuZG9ycy9wbHVnaW5zL3NlbGVjdDIuaW5pdC5qcycpO1xuXG4vLyBGbGF0cGlja3IgLSBpcyBhIGxpZ2h0d2VpZ2h0IGFuZCBwb3dlcmZ1bCBkYXRldGltZSBwaWNrZXIuXG4vLyByZXF1aXJlKCdmbGF0cGlja3IvZGlzdC9mbGF0cGlja3IuanMnKTtcbi8vIHJlcXVpcmUoJy4uLy4uL2NvcmUvanMvdmVuZG9ycy9wbHVnaW5zL2ZsYXRwaWNrci5pbml0LmpzJyk7XG5cbi8vIElucHV0bWFzayAtIGlzIGEgamF2YXNjcmlwdCBsaWJyYXJ5IHdoaWNoIGNyZWF0ZXMgYW4gaW5wdXQgbWFzazogaHR0cHM6Ly9naXRodWIuY29tL1JvYmluSGVyYm90cy9JbnB1dG1hc2tcbnJlcXVpcmUoJ2lucHV0bWFzay9kaXN0L2lucHV0bWFzay5qcycpO1xucmVxdWlyZSgnaW5wdXRtYXNrL2Rpc3QvYmluZGluZ3MvaW5wdXRtYXNrLmJpbmRpbmcuanMnKTtcblxuLy8gbm9VaVNsaWRlciAtIGlzIGEgbGlnaHR3ZWlnaHQgcmFuZ2Ugc2xpZGVyIHdpdGggbXVsdGktdG91Y2ggc3VwcG9ydCBhbmQgYSB0b24gb2YgZmVhdHVyZXMuIEl0IHN1cHBvcnRzIG5vbi1saW5lYXIgcmFuZ2VzLCByZXF1aXJlcyBubyBleHRlcm5hbCBkZXBlbmRlbmNpZXM6IGh0dHBzOi8vcmVmcmVzaGxlc3MuY29tL25vdWlzbGlkZXIvXG53aW5kb3cubm9VaVNsaWRlciA9IHJlcXVpcmUoJ25vdWlzbGlkZXIvZGlzdC9ub3Vpc2xpZGVyLm1pbi5qcycpO1xuXG4vLyBUaGUgYXV0b3NpemUgLSBmdW5jdGlvbiBhY2NlcHRzIGEgc2luZ2xlIHRleHRhcmVhIGVsZW1lbnQsIG9yIGFuIGFycmF5IG9yIGFycmF5LWxpa2Ugb2JqZWN0IChzdWNoIGFzIGEgTm9kZUxpc3Qgb3IgalF1ZXJ5IGNvbGxlY3Rpb24pIG9mIHRleHRhcmVhIGVsZW1lbnRzOiBodHRwczovL3d3dy5qYWNrbG1vb3JlLmNvbS9hdXRvc2l6ZS9cbndpbmRvdy5hdXRvc2l6ZSA9IHJlcXVpcmUoJ2F1dG9zaXplL2Rpc3QvYXV0b3NpemUubWluLmpzJyk7XG5cbi8vIENsaXBib2FyZCAtIENvcHkgdGV4dCB0byB0aGUgY2xpcGJvYXJkIHNob3VsZG4ndCBiZSBoYXJkLiBJdCBzaG91bGRuJ3QgcmVxdWlyZSBkb3plbnMgb2Ygc3RlcHMgdG8gY29uZmlndXJlIG9yIGh1bmRyZWRzIG9mIEtCcyB0byBsb2FkOiBodHRwczovL2NsaXBib2FyZGpzLmNvbS9cbndpbmRvdy5DbGlwYm9hcmRKUyA9IHJlcXVpcmUoJ2NsaXBib2FyZC9kaXN0L2NsaXBib2FyZC5taW4uanMnKTtcblxuLy8gRHJvcHpvbmVKUyAtICBpcyBhbiBvcGVuIHNvdXJjZSBsaWJyYXJ5IHRoYXQgcHJvdmlkZXMgZHJhZyduJ2Ryb3AgZmlsZSB1cGxvYWRzIHdpdGggaW1hZ2UgcHJldmlld3M6IGh0dHBzOi8vd3d3LmRyb3B6b25lanMuY29tL1xud2luZG93LkRyb3B6b25lID0gcmVxdWlyZSgnZHJvcHpvbmUvZGlzdC9taW4vZHJvcHpvbmUubWluLmpzJykuZGVmYXVsdDtcbnJlcXVpcmUoJy4uLy4uL2NvcmUvanMvdmVuZG9ycy9wbHVnaW5zL2Ryb3B6b25lLmluaXQuanMnKTtcblxuLy8gUXVpbGwgLSBpcyBhIGZyZWUsIG9wZW4gc291cmNlIFdZU0lXWUcgZWRpdG9yIGJ1aWx0IGZvciB0aGUgbW9kZXJuIHdlYi4gQ29tcGxldGVseSBjdXN0b21pemUgaXQgZm9yIGFueSBuZWVkIHdpdGggaXRzIG1vZHVsYXIgYXJjaGl0ZWN0dXJlIGFuZCBleHByZXNzaXZlIEFQSTogaHR0cHM6Ly9xdWlsbGpzLmNvbS9cbndpbmRvdy5RdWlsbCA9IHJlcXVpcmUoJ3F1aWxsL2Rpc3QvcXVpbGwuanMnKTtcblxuLy8gVGFnaWZ5IC0gVHJhbnNmb3JtcyBhbiBpbnB1dCBmaWVsZCBvciBhIHRleHRhcmVhIGludG8gYSBUYWdzIGNvbXBvbmVudCwgaW4gYW4gZWFzeSwgY3VzdG9taXphYmxlIHdheSwgd2l0aCBncmVhdCBwZXJmb3JtYW5jZSBhbmQgc21hbGwgY29kZSBmb290cHJpbnQsIGV4cGxvZGVkIHdpdGggZmVhdHVyZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS95YWlyRU8vdGFnaWZ5XG5yZXF1aXJlKCdAeWFpcmVvL3RhZ2lmeS9kaXN0L3RhZ2lmeS5wb2x5ZmlsbHMubWluLmpzJyk7XG53aW5kb3cuVGFnaWZ5ID0gcmVxdWlyZSgnQHlhaXJlby90YWdpZnkvZGlzdC90YWdpZnkubWluLmpzJyk7XG5cbi8vIFRvYXN0ciAtIGlzIGEgSmF2YXNjcmlwdCBsaWJyYXJ5IGZvciBub24tYmxvY2tpbmcgbm90aWZpY2F0aW9ucy4galF1ZXJ5IGlzIHJlcXVpcmVkLiBUaGUgZ29hbCBpcyB0byBjcmVhdGUgYSBzaW1wbGUgY29yZSBsaWJyYXJ5IHRoYXQgY2FuIGJlIGN1c3RvbWl6ZWQgYW5kIGV4dGVuZGVkOiBodHRwczovL2dpdGh1Yi5jb20vQ29kZVNldmVuL3RvYXN0clxud2luZG93LnRvYXN0ciA9IHJlcXVpcmUoJ3RvYXN0ci9idWlsZC90b2FzdHIubWluLmpzJyk7XG5cbi8vIEJvb3RzdHJhcCBTZXNzaW9uIFRpbWVvdXQgLSBTZXNzaW9uIHRpbWVvdXQgYW5kIGtlZXAtYWxpdmUgY29udHJvbCB3aXRoIGEgbmljZSBCb290c3RyYXAgd2FybmluZyBkaWFsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9vcmFuZ2VoaWxsL2Jvb3RzdHJhcC1zZXNzaW9uLXRpbWVvdXRcbndpbmRvdy5zZXNzaW9uVGltZW91dCA9IHJlcXVpcmUoJy4uLy4uL2NvcmUvcGx1Z2lucy9ib290c3RyYXAtc2Vzc2lvbi10aW1lb3V0L2Rpc3QvYm9vdHN0cmFwLXNlc3Npb24tdGltZW91dC5taW4uanMnKTtcblxuLy8gSlF1ZXJ5IElkbGV0aW1lciAtIHByb3ZpZGVzIHlvdSBhIHdheSB0byBtb25pdG9yIHVzZXIgYWN0aXZpdHkgd2l0aCBhIHBhZ2U6IGh0dHBzOi8vZ2l0aHViLmNvbS90aG9yc3QvanF1ZXJ5LWlkbGV0aW1lclxucmVxdWlyZSgnLi4vLi4vY29yZS9wbHVnaW5zL2pxdWVyeS1pZGxldGltZXIvaWRsZS10aW1lci5taW4uanMnKTtcblxuLy8gRVM2IFByb21pc2UgUG9seWZpbGwgLSBUaGlzIGlzIGEgcG9seWZpbGwgb2YgdGhlIEVTNiBQcm9taXNlOiBodHRwczovL2dpdGh1Yi5jb20vbGFobWF0aXkvZXM2LXByb21pc2UtcG9seWZpbGxcbnJlcXVpcmUoJ2VzNi1wcm9taXNlLXBvbHlmaWxsL3Byb21pc2UubWluLmpzJyk7XG5cbi8vIFN3ZWV0YWxlcnQyIC0gYSBiZWF1dGlmdWwsIHJlc3BvbnNpdmUsIGN1c3RvbWl6YWJsZSBhbmQgYWNjZXNzaWJsZSAoV0FJLUFSSUEpIHJlcGxhY2VtZW50IGZvciBKYXZhU2NyaXB0J3MgcG9wdXAgYm94ZXM6IGh0dHBzOi8vc3dlZXRhbGVydDIuZ2l0aHViLmlvL1xud2luZG93LlN3YWwgPSB3aW5kb3cuc3dhbCA9IHJlcXVpcmUoJ3N3ZWV0YWxlcnQyL2Rpc3Qvc3dlZXRhbGVydDIubWluLmpzJyk7XG5yZXF1aXJlKCcuLi8uLi9jb3JlL2pzL3ZlbmRvcnMvcGx1Z2lucy9zd2VldGFsZXJ0Mi5pbml0LmpzJyk7XG5cbi8vIENvdW50VXAuanMgLSBpcyBhIGRlcGVuZGVuY3ktZnJlZSwgbGlnaHR3ZWlnaHQgSmF2YVNjcmlwdCBjbGFzcyB0aGF0IGNhbiBiZSB1c2VkIHRvIHF1aWNrbHkgY3JlYXRlIGFuaW1hdGlvbnMgdGhhdCBkaXNwbGF5IG51bWVyaWNhbCBkYXRhIGluIGEgbW9yZSBpbnRlcmVzdGluZyB3YXkuXG53aW5kb3cuY291bnRVcCA9IHJlcXVpcmUoJ2NvdW50dXAuanMvZGlzdC9jb3VudFVwLndpdGhQb2x5ZmlsbC5taW4uanMnKTtcblxuLy8gQ2hhcnQuanMgLSBTaW1wbGUgeWV0IGZsZXhpYmxlIEphdmFTY3JpcHQgY2hhcnRpbmcgZm9yIGRlc2lnbmVycyAmIGRldmVsb3BlcnNcbndpbmRvdy5DaGFydCA9IHJlcXVpcmUoJ2NoYXJ0LmpzL2Rpc3QvY2hhcnQuanMnKTtcblxuLy8gVGlueSBzbGlkZXIgLSBmb3IgYWxsIHB1cnBvc2VzLCBpbnNwaXJlZCBieSBPd2wgQ2Fyb3VzZWwuXG53aW5kb3cudG5zID0gcmVxdWlyZSgndGlueS1zbGlkZXIvc3JjL3Rpbnktc2xpZGVyLmpzJykudG5zO1xuXG4vLyBBIGxpZ2h0d2VpZ2h0IHNjcmlwdCB0byBhbmltYXRlIHNjcm9sbGluZyB0byBhbmNob3IgbGlua3NcbndpbmRvdy5TbW9vdGhTY3JvbGwgPSByZXF1aXJlKCdzbW9vdGgtc2Nyb2xsL2Rpc3Qvc21vb3RoLXNjcm9sbC5qcycpO1xuXG4vLyBBeGlvcyAtIFByb21pc2UgYmFzZWQgSFRUUCBjbGllbnQgZm9yIHRoZSBicm93c2VyIGFuZCBub2RlLmpzXG53aW5kb3cuYXhpb3MgPSByZXF1aXJlKCdheGlvcycpLmRlZmF1bHQ7XG53aW5kb3cuYXhpb3MuZGVmYXVsdHMuaGVhZGVycy5jb21tb24gPSB7XG4gICAgJ1gtUmVxdWVzdGVkLVdpdGgnOiAnWE1MSHR0cFJlcXVlc3QnLFxuICAgICdYLUNTUkYtVE9LRU4nIDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWV0YVtuYW1lPVwiY3NyZi10b2tlblwiXScpLmdldEF0dHJpYnV0ZSgnY29udGVudCcpXG59O1xuIl0sIm5hbWVzIjpbIndpbmRvdyIsImpRdWVyeSIsIiQiLCJyZXF1aXJlIiwiYm9vdHN0cmFwIiwiUG9wcGVyIiwid051bWIiLCJtb21lbnQiLCJBcGV4Q2hhcnRzIiwiRm9ybVZhbGlkYXRpb24iLCJwbHVnaW5zIiwiQm9vdHN0cmFwNSIsIm5vVWlTbGlkZXIiLCJhdXRvc2l6ZSIsIkNsaXBib2FyZEpTIiwiRHJvcHpvbmUiLCJRdWlsbCIsIlRhZ2lmeSIsInRvYXN0ciIsInNlc3Npb25UaW1lb3V0IiwiU3dhbCIsInN3YWwiLCJjb3VudFVwIiwiQ2hhcnQiLCJ0bnMiLCJTbW9vdGhTY3JvbGwiLCJheGlvcyIsImRlZmF1bHRzIiwiaGVhZGVycyIsImNvbW1vbiIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImdldEF0dHJpYnV0ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/assets/core/plugins/plugins.js\n"); /***/ }), /***/ "./node_modules/base64-js/index.js": /*!*****************************************!*\ !*** ./node_modules/base64-js/index.js ***! \*****************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYmFzZTY0LWpzL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFZOztBQUVaLGtCQUFrQjtBQUNsQixtQkFBbUI7QUFDbkIscUJBQXFCOztBQUVyQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtQ0FBbUMsU0FBUztBQUM1QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxjQUFjLFNBQVM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixTQUFTO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMkNBQTJDLFVBQVU7QUFDckQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYXNlNjQtanMvaW5kZXguanM/MWZiNSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxuZXhwb3J0cy5ieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aFxuZXhwb3J0cy50b0J5dGVBcnJheSA9IHRvQnl0ZUFycmF5XG5leHBvcnRzLmZyb21CeXRlQXJyYXkgPSBmcm9tQnl0ZUFycmF5XG5cbnZhciBsb29rdXAgPSBbXVxudmFyIHJldkxvb2t1cCA9IFtdXG52YXIgQXJyID0gdHlwZW9mIFVpbnQ4QXJyYXkgIT09ICd1bmRlZmluZWQnID8gVWludDhBcnJheSA6IEFycmF5XG5cbnZhciBjb2RlID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nXG5mb3IgKHZhciBpID0gMCwgbGVuID0gY29kZS5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICBsb29rdXBbaV0gPSBjb2RlW2ldXG4gIHJldkxvb2t1cFtjb2RlLmNoYXJDb2RlQXQoaSldID0gaVxufVxuXG4vLyBTdXBwb3J0IGRlY29kaW5nIFVSTC1zYWZlIGJhc2U2NCBzdHJpbmdzLCBhcyBOb2RlLmpzIGRvZXMuXG4vLyBTZWU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0Jhc2U2NCNVUkxfYXBwbGljYXRpb25zXG5yZXZMb29rdXBbJy0nLmNoYXJDb2RlQXQoMCldID0gNjJcbnJldkxvb2t1cFsnXycuY2hhckNvZGVBdCgwKV0gPSA2M1xuXG5mdW5jdGlvbiBnZXRMZW5zIChiNjQpIHtcbiAgdmFyIGxlbiA9IGI2NC5sZW5ndGhcblxuICBpZiAobGVuICUgNCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQnKVxuICB9XG5cbiAgLy8gVHJpbSBvZmYgZXh0cmEgYnl0ZXMgYWZ0ZXIgcGxhY2Vob2xkZXIgYnl0ZXMgYXJlIGZvdW5kXG4gIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2JlYXRnYW1taXQvYmFzZTY0LWpzL2lzc3Vlcy80MlxuICB2YXIgdmFsaWRMZW4gPSBiNjQuaW5kZXhPZignPScpXG4gIGlmICh2YWxpZExlbiA9PT0gLTEpIHZhbGlkTGVuID0gbGVuXG5cbiAgdmFyIHBsYWNlSG9sZGVyc0xlbiA9IHZhbGlkTGVuID09PSBsZW5cbiAgICA/IDBcbiAgICA6IDQgLSAodmFsaWRMZW4gJSA0KVxuXG4gIHJldHVybiBbdmFsaWRMZW4sIHBsYWNlSG9sZGVyc0xlbl1cbn1cblxuLy8gYmFzZTY0IGlzIDQvMyArIHVwIHRvIHR3byBjaGFyYWN0ZXJzIG9mIHRoZSBvcmlnaW5hbCBkYXRhXG5mdW5jdGlvbiBieXRlTGVuZ3RoIChiNjQpIHtcbiAgdmFyIGxlbnMgPSBnZXRMZW5zKGI2NClcbiAgdmFyIHZhbGlkTGVuID0gbGVuc1swXVxuICB2YXIgcGxhY2VIb2xkZXJzTGVuID0gbGVuc1sxXVxuICByZXR1cm4gKCh2YWxpZExlbiArIHBsYWNlSG9sZGVyc0xlbikgKiAzIC8gNCkgLSBwbGFjZUhvbGRlcnNMZW5cbn1cblxuZnVuY3Rpb24gX2J5dGVMZW5ndGggKGI2NCwgdmFsaWRMZW4sIHBsYWNlSG9sZGVyc0xlbikge1xuICByZXR1cm4gKCh2YWxpZExlbiArIHBsYWNlSG9sZGVyc0xlbikgKiAzIC8gNCkgLSBwbGFjZUhvbGRlcnNMZW5cbn1cblxuZnVuY3Rpb24gdG9CeXRlQXJyYXkgKGI2NCkge1xuICB2YXIgdG1wXG4gIHZhciBsZW5zID0gZ2V0TGVucyhiNjQpXG4gIHZhciB2YWxpZExlbiA9IGxlbnNbMF1cbiAgdmFyIHBsYWNlSG9sZGVyc0xlbiA9IGxlbnNbMV1cblxuICB2YXIgYXJyID0gbmV3IEFycihfYnl0ZUxlbmd0aChiNjQsIHZhbGlkTGVuLCBwbGFjZUhvbGRlcnNMZW4pKVxuXG4gIHZhciBjdXJCeXRlID0gMFxuXG4gIC8vIGlmIHRoZXJlIGFyZSBwbGFjZWhvbGRlcnMsIG9ubHkgZ2V0IHVwIHRvIHRoZSBsYXN0IGNvbXBsZXRlIDQgY2hhcnNcbiAgdmFyIGxlbiA9IHBsYWNlSG9sZGVyc0xlbiA+IDBcbiAgICA/IHZhbGlkTGVuIC0gNFxuICAgIDogdmFsaWRMZW5cblxuICB2YXIgaVxuICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpICs9IDQpIHtcbiAgICB0bXAgPVxuICAgICAgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpKV0gPDwgMTgpIHxcbiAgICAgIChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDEpXSA8PCAxMikgfFxuICAgICAgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpICsgMildIDw8IDYpIHxcbiAgICAgIHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpICsgMyldXG4gICAgYXJyW2N1ckJ5dGUrK10gPSAodG1wID4+IDE2KSAmIDB4RkZcbiAgICBhcnJbY3VyQnl0ZSsrXSA9ICh0bXAgPj4gOCkgJiAweEZGXG4gICAgYXJyW2N1ckJ5dGUrK10gPSB0bXAgJiAweEZGXG4gIH1cblxuICBpZiAocGxhY2VIb2xkZXJzTGVuID09PSAyKSB7XG4gICAgdG1wID1cbiAgICAgIChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSldIDw8IDIpIHxcbiAgICAgIChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDEpXSA+PiA0KVxuICAgIGFycltjdXJCeXRlKytdID0gdG1wICYgMHhGRlxuICB9XG5cbiAgaWYgKHBsYWNlSG9sZGVyc0xlbiA9PT0gMSkge1xuICAgIHRtcCA9XG4gICAgICAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkpXSA8PCAxMCkgfFxuICAgICAgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpICsgMSldIDw8IDQpIHxcbiAgICAgIChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDIpXSA+PiAyKVxuICAgIGFycltjdXJCeXRlKytdID0gKHRtcCA+PiA4KSAmIDB4RkZcbiAgICBhcnJbY3VyQnl0ZSsrXSA9IHRtcCAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBhcnJcbn1cblxuZnVuY3Rpb24gdHJpcGxldFRvQmFzZTY0IChudW0pIHtcbiAgcmV0dXJuIGxvb2t1cFtudW0gPj4gMTggJiAweDNGXSArXG4gICAgbG9va3VwW251bSA+PiAxMiAmIDB4M0ZdICtcbiAgICBsb29rdXBbbnVtID4+IDYgJiAweDNGXSArXG4gICAgbG9va3VwW251bSAmIDB4M0ZdXG59XG5cbmZ1bmN0aW9uIGVuY29kZUNodW5rICh1aW50OCwgc3RhcnQsIGVuZCkge1xuICB2YXIgdG1wXG4gIHZhciBvdXRwdXQgPSBbXVxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkgKz0gMykge1xuICAgIHRtcCA9XG4gICAgICAoKHVpbnQ4W2ldIDw8IDE2KSAmIDB4RkYwMDAwKSArXG4gICAgICAoKHVpbnQ4W2kgKyAxXSA8PCA4KSAmIDB4RkYwMCkgK1xuICAgICAgKHVpbnQ4W2kgKyAyXSAmIDB4RkYpXG4gICAgb3V0cHV0LnB1c2godHJpcGxldFRvQmFzZTY0KHRtcCkpXG4gIH1cbiAgcmV0dXJuIG91dHB1dC5qb2luKCcnKVxufVxuXG5mdW5jdGlvbiBmcm9tQnl0ZUFycmF5ICh1aW50OCkge1xuICB2YXIgdG1wXG4gIHZhciBsZW4gPSB1aW50OC5sZW5ndGhcbiAgdmFyIGV4dHJhQnl0ZXMgPSBsZW4gJSAzIC8vIGlmIHdlIGhhdmUgMSBieXRlIGxlZnQsIHBhZCAyIGJ5dGVzXG4gIHZhciBwYXJ0cyA9IFtdXG4gIHZhciBtYXhDaHVua0xlbmd0aCA9IDE2MzgzIC8vIG11c3QgYmUgbXVsdGlwbGUgb2YgM1xuXG4gIC8vIGdvIHRocm91Z2ggdGhlIGFycmF5IGV2ZXJ5IHRocmVlIGJ5dGVzLCB3ZSdsbCBkZWFsIHdpdGggdHJhaWxpbmcgc3R1ZmYgbGF0ZXJcbiAgZm9yICh2YXIgaSA9IDAsIGxlbjIgPSBsZW4gLSBleHRyYUJ5dGVzOyBpIDwgbGVuMjsgaSArPSBtYXhDaHVua0xlbmd0aCkge1xuICAgIHBhcnRzLnB1c2goZW5jb2RlQ2h1bmsodWludDgsIGksIChpICsgbWF4Q2h1bmtMZW5ndGgpID4gbGVuMiA/IGxlbjIgOiAoaSArIG1heENodW5rTGVuZ3RoKSkpXG4gIH1cblxuICAvLyBwYWQgdGhlIGVuZCB3aXRoIHplcm9zLCBidXQgbWFrZSBzdXJlIHRvIG5vdCBmb3JnZXQgdGhlIGV4dHJhIGJ5dGVzXG4gIGlmIChleHRyYUJ5dGVzID09PSAxKSB7XG4gICAgdG1wID0gdWludDhbbGVuIC0gMV1cbiAgICBwYXJ0cy5wdXNoKFxuICAgICAgbG9va3VwW3RtcCA+PiAyXSArXG4gICAgICBsb29rdXBbKHRtcCA8PCA0KSAmIDB4M0ZdICtcbiAgICAgICc9PSdcbiAgICApXG4gIH0gZWxzZSBpZiAoZXh0cmFCeXRlcyA9PT0gMikge1xuICAgIHRtcCA9ICh1aW50OFtsZW4gLSAyXSA8PCA4KSArIHVpbnQ4W2xlbiAtIDFdXG4gICAgcGFydHMucHVzaChcbiAgICAgIGxvb2t1cFt0bXAgPj4gMTBdICtcbiAgICAgIGxvb2t1cFsodG1wID4+IDQpICYgMHgzRl0gK1xuICAgICAgbG9va3VwWyh0bXAgPDwgMikgJiAweDNGXSArXG4gICAgICAnPSdcbiAgICApXG4gIH1cblxuICByZXR1cm4gcGFydHMuam9pbignJylcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/base64-js/index.js\n"); /***/ }), /***/ "./node_modules/bootstrap-daterangepicker/daterangepicker.js": /*!*******************************************************************!*\ !*** ./node_modules/bootstrap-daterangepicker/daterangepicker.js ***! \*******************************************************************/ /***/ (function(module, exports, __webpack_require__) { eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\r\n* @version: 3.1\r\n* @author: Dan Grossman http://www.dangrossman.info/\r\n* @copyright: Copyright (c) 2012-2019 Dan Grossman. All rights reserved.\r\n* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php\r\n* @website: http://www.daterangepicker.com/\r\n*/\r\n// Following the UMD template https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js\r\n(function (root, factory) {\r\n if (true) {\r\n // AMD. Make globaly available as well\r\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\"), __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (moment, jquery) {\r\n if (!jquery.fn) jquery.fn = {}; // webpack server rendering\r\n if (typeof moment !== 'function' && moment.hasOwnProperty('default')) moment = moment['default']\r\n return factory(moment, jquery);\r\n }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n } else { var moment, jQuery; }\r\n}(this, function(moment, $) {\r\n var DateRangePicker = function(element, options, cb) {\r\n\r\n //default settings for options\r\n this.parentEl = 'body';\r\n this.element = $(element);\r\n this.startDate = moment().startOf('day');\r\n this.endDate = moment().endOf('day');\r\n this.minDate = false;\r\n this.maxDate = false;\r\n this.maxSpan = false;\r\n this.autoApply = false;\r\n this.singleDatePicker = false;\r\n this.showDropdowns = false;\r\n this.minYear = moment().subtract(100, 'year').format('YYYY');\r\n this.maxYear = moment().add(100, 'year').format('YYYY');\r\n this.showWeekNumbers = false;\r\n this.showISOWeekNumbers = false;\r\n this.showCustomRangeLabel = true;\r\n this.timePicker = false;\r\n this.timePicker24Hour = false;\r\n this.timePickerIncrement = 1;\r\n this.timePickerSeconds = false;\r\n this.linkedCalendars = true;\r\n this.autoUpdateInput = true;\r\n this.alwaysShowCalendars = false;\r\n this.ranges = {};\r\n\r\n this.opens = 'right';\r\n if (this.element.hasClass('pull-right'))\r\n this.opens = 'left';\r\n\r\n this.drops = 'down';\r\n if (this.element.hasClass('dropup'))\r\n this.drops = 'up';\r\n\r\n this.buttonClasses = 'btn btn-sm';\r\n this.applyButtonClasses = 'btn-primary';\r\n this.cancelButtonClasses = 'btn-default';\r\n\r\n this.locale = {\r\n direction: 'ltr',\r\n format: moment.localeData().longDateFormat('L'),\r\n separator: ' - ',\r\n applyLabel: 'Apply',\r\n cancelLabel: 'Cancel',\r\n weekLabel: 'W',\r\n customRangeLabel: 'Custom Range',\r\n daysOfWeek: moment.weekdaysMin(),\r\n monthNames: moment.monthsShort(),\r\n firstDay: moment.localeData().firstDayOfWeek()\r\n };\r\n\r\n this.callback = function() { };\r\n\r\n //some state information\r\n this.isShowing = false;\r\n this.leftCalendar = {};\r\n this.rightCalendar = {};\r\n\r\n //custom options from user\r\n if (typeof options !== 'object' || options === null)\r\n options = {};\r\n\r\n //allow setting options with data attributes\r\n //data-api options will be overwritten with custom javascript options\r\n options = $.extend(this.element.data(), options);\r\n\r\n //html template for the picker UI\r\n if (typeof options.template !== 'string' && !(options.template instanceof $))\r\n options.template =\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '' +\r\n ' ' +\r\n '
' +\r\n '
';\r\n\r\n this.parentEl = (options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl);\r\n this.container = $(options.template).appendTo(this.parentEl);\r\n\r\n //\r\n // handle all the possible options overriding defaults\r\n //\r\n\r\n if (typeof options.locale === 'object') {\r\n\r\n if (typeof options.locale.direction === 'string')\r\n this.locale.direction = options.locale.direction;\r\n\r\n if (typeof options.locale.format === 'string')\r\n this.locale.format = options.locale.format;\r\n\r\n if (typeof options.locale.separator === 'string')\r\n this.locale.separator = options.locale.separator;\r\n\r\n if (typeof options.locale.daysOfWeek === 'object')\r\n this.locale.daysOfWeek = options.locale.daysOfWeek.slice();\r\n\r\n if (typeof options.locale.monthNames === 'object')\r\n this.locale.monthNames = options.locale.monthNames.slice();\r\n\r\n if (typeof options.locale.firstDay === 'number')\r\n this.locale.firstDay = options.locale.firstDay;\r\n\r\n if (typeof options.locale.applyLabel === 'string')\r\n this.locale.applyLabel = options.locale.applyLabel;\r\n\r\n if (typeof options.locale.cancelLabel === 'string')\r\n this.locale.cancelLabel = options.locale.cancelLabel;\r\n\r\n if (typeof options.locale.weekLabel === 'string')\r\n this.locale.weekLabel = options.locale.weekLabel;\r\n\r\n if (typeof options.locale.customRangeLabel === 'string'){\r\n //Support unicode chars in the custom range name.\r\n var elem = document.createElement('textarea');\r\n elem.innerHTML = options.locale.customRangeLabel;\r\n var rangeHtml = elem.value;\r\n this.locale.customRangeLabel = rangeHtml;\r\n }\r\n }\r\n this.container.addClass(this.locale.direction);\r\n\r\n if (typeof options.startDate === 'string')\r\n this.startDate = moment(options.startDate, this.locale.format);\r\n\r\n if (typeof options.endDate === 'string')\r\n this.endDate = moment(options.endDate, this.locale.format);\r\n\r\n if (typeof options.minDate === 'string')\r\n this.minDate = moment(options.minDate, this.locale.format);\r\n\r\n if (typeof options.maxDate === 'string')\r\n this.maxDate = moment(options.maxDate, this.locale.format);\r\n\r\n if (typeof options.startDate === 'object')\r\n this.startDate = moment(options.startDate);\r\n\r\n if (typeof options.endDate === 'object')\r\n this.endDate = moment(options.endDate);\r\n\r\n if (typeof options.minDate === 'object')\r\n this.minDate = moment(options.minDate);\r\n\r\n if (typeof options.maxDate === 'object')\r\n this.maxDate = moment(options.maxDate);\r\n\r\n // sanity check for bad options\r\n if (this.minDate && this.startDate.isBefore(this.minDate))\r\n this.startDate = this.minDate.clone();\r\n\r\n // sanity check for bad options\r\n if (this.maxDate && this.endDate.isAfter(this.maxDate))\r\n this.endDate = this.maxDate.clone();\r\n\r\n if (typeof options.applyButtonClasses === 'string')\r\n this.applyButtonClasses = options.applyButtonClasses;\r\n\r\n if (typeof options.applyClass === 'string') //backwards compat\r\n this.applyButtonClasses = options.applyClass;\r\n\r\n if (typeof options.cancelButtonClasses === 'string')\r\n this.cancelButtonClasses = options.cancelButtonClasses;\r\n\r\n if (typeof options.cancelClass === 'string') //backwards compat\r\n this.cancelButtonClasses = options.cancelClass;\r\n\r\n if (typeof options.maxSpan === 'object')\r\n this.maxSpan = options.maxSpan;\r\n\r\n if (typeof options.dateLimit === 'object') //backwards compat\r\n this.maxSpan = options.dateLimit;\r\n\r\n if (typeof options.opens === 'string')\r\n this.opens = options.opens;\r\n\r\n if (typeof options.drops === 'string')\r\n this.drops = options.drops;\r\n\r\n if (typeof options.showWeekNumbers === 'boolean')\r\n this.showWeekNumbers = options.showWeekNumbers;\r\n\r\n if (typeof options.showISOWeekNumbers === 'boolean')\r\n this.showISOWeekNumbers = options.showISOWeekNumbers;\r\n\r\n if (typeof options.buttonClasses === 'string')\r\n this.buttonClasses = options.buttonClasses;\r\n\r\n if (typeof options.buttonClasses === 'object')\r\n this.buttonClasses = options.buttonClasses.join(' ');\r\n\r\n if (typeof options.showDropdowns === 'boolean')\r\n this.showDropdowns = options.showDropdowns;\r\n\r\n if (typeof options.minYear === 'number')\r\n this.minYear = options.minYear;\r\n\r\n if (typeof options.maxYear === 'number')\r\n this.maxYear = options.maxYear;\r\n\r\n if (typeof options.showCustomRangeLabel === 'boolean')\r\n this.showCustomRangeLabel = options.showCustomRangeLabel;\r\n\r\n if (typeof options.singleDatePicker === 'boolean') {\r\n this.singleDatePicker = options.singleDatePicker;\r\n if (this.singleDatePicker)\r\n this.endDate = this.startDate.clone();\r\n }\r\n\r\n if (typeof options.timePicker === 'boolean')\r\n this.timePicker = options.timePicker;\r\n\r\n if (typeof options.timePickerSeconds === 'boolean')\r\n this.timePickerSeconds = options.timePickerSeconds;\r\n\r\n if (typeof options.timePickerIncrement === 'number')\r\n this.timePickerIncrement = options.timePickerIncrement;\r\n\r\n if (typeof options.timePicker24Hour === 'boolean')\r\n this.timePicker24Hour = options.timePicker24Hour;\r\n\r\n if (typeof options.autoApply === 'boolean')\r\n this.autoApply = options.autoApply;\r\n\r\n if (typeof options.autoUpdateInput === 'boolean')\r\n this.autoUpdateInput = options.autoUpdateInput;\r\n\r\n if (typeof options.linkedCalendars === 'boolean')\r\n this.linkedCalendars = options.linkedCalendars;\r\n\r\n if (typeof options.isInvalidDate === 'function')\r\n this.isInvalidDate = options.isInvalidDate;\r\n\r\n if (typeof options.isCustomDate === 'function')\r\n this.isCustomDate = options.isCustomDate;\r\n\r\n if (typeof options.alwaysShowCalendars === 'boolean')\r\n this.alwaysShowCalendars = options.alwaysShowCalendars;\r\n\r\n // update day names order to firstDay\r\n if (this.locale.firstDay != 0) {\r\n var iterator = this.locale.firstDay;\r\n while (iterator > 0) {\r\n this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift());\r\n iterator--;\r\n }\r\n }\r\n\r\n var start, end, range;\r\n\r\n //if no start/end dates set, check if an input element contains initial values\r\n if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') {\r\n if ($(this.element).is(':text')) {\r\n var val = $(this.element).val(),\r\n split = val.split(this.locale.separator);\r\n\r\n start = end = null;\r\n\r\n if (split.length == 2) {\r\n start = moment(split[0], this.locale.format);\r\n end = moment(split[1], this.locale.format);\r\n } else if (this.singleDatePicker && val !== \"\") {\r\n start = moment(val, this.locale.format);\r\n end = moment(val, this.locale.format);\r\n }\r\n if (start !== null && end !== null) {\r\n this.setStartDate(start);\r\n this.setEndDate(end);\r\n }\r\n }\r\n }\r\n\r\n if (typeof options.ranges === 'object') {\r\n for (range in options.ranges) {\r\n\r\n if (typeof options.ranges[range][0] === 'string')\r\n start = moment(options.ranges[range][0], this.locale.format);\r\n else\r\n start = moment(options.ranges[range][0]);\r\n\r\n if (typeof options.ranges[range][1] === 'string')\r\n end = moment(options.ranges[range][1], this.locale.format);\r\n else\r\n end = moment(options.ranges[range][1]);\r\n\r\n // If the start or end date exceed those allowed by the minDate or maxSpan\r\n // options, shorten the range to the allowable period.\r\n if (this.minDate && start.isBefore(this.minDate))\r\n start = this.minDate.clone();\r\n\r\n var maxDate = this.maxDate;\r\n if (this.maxSpan && maxDate && start.clone().add(this.maxSpan).isAfter(maxDate))\r\n maxDate = start.clone().add(this.maxSpan);\r\n if (maxDate && end.isAfter(maxDate))\r\n end = maxDate.clone();\r\n\r\n // If the end of the range is before the minimum or the start of the range is\r\n // after the maximum, don't display this range option at all.\r\n if ((this.minDate && end.isBefore(this.minDate, this.timepicker ? 'minute' : 'day'))\r\n || (maxDate && start.isAfter(maxDate, this.timepicker ? 'minute' : 'day')))\r\n continue;\r\n\r\n //Support unicode chars in the range names.\r\n var elem = document.createElement('textarea');\r\n elem.innerHTML = range;\r\n var rangeHtml = elem.value;\r\n\r\n this.ranges[rangeHtml] = [start, end];\r\n }\r\n\r\n var list = '
    ';\r\n for (range in this.ranges) {\r\n list += '
  • ' + range + '
  • ';\r\n }\r\n if (this.showCustomRangeLabel) {\r\n list += '
  • ' + this.locale.customRangeLabel + '
  • ';\r\n }\r\n list += '
';\r\n this.container.find('.ranges').prepend(list);\r\n }\r\n\r\n if (typeof cb === 'function') {\r\n this.callback = cb;\r\n }\r\n\r\n if (!this.timePicker) {\r\n this.startDate = this.startDate.startOf('day');\r\n this.endDate = this.endDate.endOf('day');\r\n this.container.find('.calendar-time').hide();\r\n }\r\n\r\n //can't be used together for now\r\n if (this.timePicker && this.autoApply)\r\n this.autoApply = false;\r\n\r\n if (this.autoApply) {\r\n this.container.addClass('auto-apply');\r\n }\r\n\r\n if (typeof options.ranges === 'object')\r\n this.container.addClass('show-ranges');\r\n\r\n if (this.singleDatePicker) {\r\n this.container.addClass('single');\r\n this.container.find('.drp-calendar.left').addClass('single');\r\n this.container.find('.drp-calendar.left').show();\r\n this.container.find('.drp-calendar.right').hide();\r\n if (!this.timePicker && this.autoApply) {\r\n this.container.addClass('auto-apply');\r\n }\r\n }\r\n\r\n if ((typeof options.ranges === 'undefined' && !this.singleDatePicker) || this.alwaysShowCalendars) {\r\n this.container.addClass('show-calendar');\r\n }\r\n\r\n this.container.addClass('opens' + this.opens);\r\n\r\n //apply CSS classes and labels to buttons\r\n this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses);\r\n if (this.applyButtonClasses.length)\r\n this.container.find('.applyBtn').addClass(this.applyButtonClasses);\r\n if (this.cancelButtonClasses.length)\r\n this.container.find('.cancelBtn').addClass(this.cancelButtonClasses);\r\n this.container.find('.applyBtn').html(this.locale.applyLabel);\r\n this.container.find('.cancelBtn').html(this.locale.cancelLabel);\r\n\r\n //\r\n // event listeners\r\n //\r\n\r\n this.container.find('.drp-calendar')\r\n .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this))\r\n .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this))\r\n .on('mousedown.daterangepicker', 'td.available', $.proxy(this.clickDate, this))\r\n .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this))\r\n .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this))\r\n .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this))\r\n .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this));\r\n\r\n this.container.find('.ranges')\r\n .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this));\r\n\r\n this.container.find('.drp-buttons')\r\n .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this))\r\n .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this));\r\n\r\n if (this.element.is('input') || this.element.is('button')) {\r\n this.element.on({\r\n 'click.daterangepicker': $.proxy(this.show, this),\r\n 'focus.daterangepicker': $.proxy(this.show, this),\r\n 'keyup.daterangepicker': $.proxy(this.elementChanged, this),\r\n 'keydown.daterangepicker': $.proxy(this.keydown, this) //IE 11 compatibility\r\n });\r\n } else {\r\n this.element.on('click.daterangepicker', $.proxy(this.toggle, this));\r\n this.element.on('keydown.daterangepicker', $.proxy(this.toggle, this));\r\n }\r\n\r\n //\r\n // if attached to a text input, set the initial value\r\n //\r\n\r\n this.updateElement();\r\n\r\n };\r\n\r\n DateRangePicker.prototype = {\r\n\r\n constructor: DateRangePicker,\r\n\r\n setStartDate: function(startDate) {\r\n if (typeof startDate === 'string')\r\n this.startDate = moment(startDate, this.locale.format);\r\n\r\n if (typeof startDate === 'object')\r\n this.startDate = moment(startDate);\r\n\r\n if (!this.timePicker)\r\n this.startDate = this.startDate.startOf('day');\r\n\r\n if (this.timePicker && this.timePickerIncrement)\r\n this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n\r\n if (this.minDate && this.startDate.isBefore(this.minDate)) {\r\n this.startDate = this.minDate.clone();\r\n if (this.timePicker && this.timePickerIncrement)\r\n this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n }\r\n\r\n if (this.maxDate && this.startDate.isAfter(this.maxDate)) {\r\n this.startDate = this.maxDate.clone();\r\n if (this.timePicker && this.timePickerIncrement)\r\n this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n }\r\n\r\n if (!this.isShowing)\r\n this.updateElement();\r\n\r\n this.updateMonthsInView();\r\n },\r\n\r\n setEndDate: function(endDate) {\r\n if (typeof endDate === 'string')\r\n this.endDate = moment(endDate, this.locale.format);\r\n\r\n if (typeof endDate === 'object')\r\n this.endDate = moment(endDate);\r\n\r\n if (!this.timePicker)\r\n this.endDate = this.endDate.endOf('day');\r\n\r\n if (this.timePicker && this.timePickerIncrement)\r\n this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n\r\n if (this.endDate.isBefore(this.startDate))\r\n this.endDate = this.startDate.clone();\r\n\r\n if (this.maxDate && this.endDate.isAfter(this.maxDate))\r\n this.endDate = this.maxDate.clone();\r\n\r\n if (this.maxSpan && this.startDate.clone().add(this.maxSpan).isBefore(this.endDate))\r\n this.endDate = this.startDate.clone().add(this.maxSpan);\r\n\r\n this.previousRightTime = this.endDate.clone();\r\n\r\n this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\r\n\r\n if (!this.isShowing)\r\n this.updateElement();\r\n\r\n this.updateMonthsInView();\r\n },\r\n\r\n isInvalidDate: function() {\r\n return false;\r\n },\r\n\r\n isCustomDate: function() {\r\n return false;\r\n },\r\n\r\n updateView: function() {\r\n if (this.timePicker) {\r\n this.renderTimePicker('left');\r\n this.renderTimePicker('right');\r\n if (!this.endDate) {\r\n this.container.find('.right .calendar-time select').prop('disabled', true).addClass('disabled');\r\n } else {\r\n this.container.find('.right .calendar-time select').prop('disabled', false).removeClass('disabled');\r\n }\r\n }\r\n if (this.endDate)\r\n this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\r\n this.updateMonthsInView();\r\n this.updateCalendars();\r\n this.updateFormInputs();\r\n },\r\n\r\n updateMonthsInView: function() {\r\n if (this.endDate) {\r\n\r\n //if both dates are visible already, do nothing\r\n if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month &&\r\n (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))\r\n &&\r\n (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))\r\n ) {\r\n return;\r\n }\r\n\r\n this.leftCalendar.month = this.startDate.clone().date(2);\r\n if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) {\r\n this.rightCalendar.month = this.endDate.clone().date(2);\r\n } else {\r\n this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\r\n }\r\n\r\n } else {\r\n if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) {\r\n this.leftCalendar.month = this.startDate.clone().date(2);\r\n this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\r\n }\r\n }\r\n if (this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate) {\r\n this.rightCalendar.month = this.maxDate.clone().date(2);\r\n this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, 'month');\r\n }\r\n },\r\n\r\n updateCalendars: function() {\r\n\r\n if (this.timePicker) {\r\n var hour, minute, second;\r\n if (this.endDate) {\r\n hour = parseInt(this.container.find('.left .hourselect').val(), 10);\r\n minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\r\n if (isNaN(minute)) {\r\n minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);\r\n }\r\n second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.container.find('.left .ampmselect').val();\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n } else {\r\n hour = parseInt(this.container.find('.right .hourselect').val(), 10);\r\n minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\r\n if (isNaN(minute)) {\r\n minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);\r\n }\r\n second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.container.find('.right .ampmselect').val();\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n }\r\n this.leftCalendar.month.hour(hour).minute(minute).second(second);\r\n this.rightCalendar.month.hour(hour).minute(minute).second(second);\r\n }\r\n\r\n this.renderCalendar('left');\r\n this.renderCalendar('right');\r\n\r\n //highlight any predefined range matching the current start and end dates\r\n this.container.find('.ranges li').removeClass('active');\r\n if (this.endDate == null) return;\r\n\r\n this.calculateChosenLabel();\r\n },\r\n\r\n renderCalendar: function(side) {\r\n\r\n //\r\n // Build the matrix of dates that will populate the calendar\r\n //\r\n\r\n var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar;\r\n var month = calendar.month.month();\r\n var year = calendar.month.year();\r\n var hour = calendar.month.hour();\r\n var minute = calendar.month.minute();\r\n var second = calendar.month.second();\r\n var daysInMonth = moment([year, month]).daysInMonth();\r\n var firstDay = moment([year, month, 1]);\r\n var lastDay = moment([year, month, daysInMonth]);\r\n var lastMonth = moment(firstDay).subtract(1, 'month').month();\r\n var lastYear = moment(firstDay).subtract(1, 'month').year();\r\n var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth();\r\n var dayOfWeek = firstDay.day();\r\n\r\n //initialize a 6 rows x 7 columns array for the calendar\r\n var calendar = [];\r\n calendar.firstDay = firstDay;\r\n calendar.lastDay = lastDay;\r\n\r\n for (var i = 0; i < 6; i++) {\r\n calendar[i] = [];\r\n }\r\n\r\n //populate the calendar with date objects\r\n var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1;\r\n if (startDay > daysInLastMonth)\r\n startDay -= 7;\r\n\r\n if (dayOfWeek == this.locale.firstDay)\r\n startDay = daysInLastMonth - 6;\r\n\r\n var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]);\r\n\r\n var col, row;\r\n for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) {\r\n if (i > 0 && col % 7 === 0) {\r\n col = 0;\r\n row++;\r\n }\r\n calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second);\r\n curDate.hour(12);\r\n\r\n if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') {\r\n calendar[row][col] = this.minDate.clone();\r\n }\r\n\r\n if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') {\r\n calendar[row][col] = this.maxDate.clone();\r\n }\r\n\r\n }\r\n\r\n //make the calendar object available to hoverDate/clickDate\r\n if (side == 'left') {\r\n this.leftCalendar.calendar = calendar;\r\n } else {\r\n this.rightCalendar.calendar = calendar;\r\n }\r\n\r\n //\r\n // Display the calendar\r\n //\r\n\r\n var minDate = side == 'left' ? this.minDate : this.startDate;\r\n var maxDate = this.maxDate;\r\n var selected = side == 'left' ? this.startDate : this.endDate;\r\n var arrow = this.locale.direction == 'ltr' ? {left: 'chevron-left', right: 'chevron-right'} : {left: 'chevron-right', right: 'chevron-left'};\r\n\r\n var html = '';\r\n html += '';\r\n html += '';\r\n\r\n // add empty cell for week number\r\n if (this.showWeekNumbers || this.showISOWeekNumbers)\r\n html += '';\r\n\r\n if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) {\r\n html += '';\r\n } else {\r\n html += '';\r\n }\r\n\r\n var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(\" YYYY\");\r\n\r\n if (this.showDropdowns) {\r\n var currentMonth = calendar[1][1].month();\r\n var currentYear = calendar[1][1].year();\r\n var maxYear = (maxDate && maxDate.year()) || (this.maxYear);\r\n var minYear = (minDate && minDate.year()) || (this.minYear);\r\n var inMinYear = currentYear == minYear;\r\n var inMaxYear = currentYear == maxYear;\r\n\r\n var monthHtml = '\";\r\n\r\n var yearHtml = '';\r\n\r\n dateHtml = monthHtml + yearHtml;\r\n }\r\n\r\n html += '';\r\n if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) {\r\n html += '';\r\n } else {\r\n html += '';\r\n }\r\n\r\n html += '';\r\n html += '';\r\n\r\n // add week number label\r\n if (this.showWeekNumbers || this.showISOWeekNumbers)\r\n html += '';\r\n\r\n $.each(this.locale.daysOfWeek, function(index, dayOfWeek) {\r\n html += '';\r\n });\r\n\r\n html += '';\r\n html += '';\r\n html += '';\r\n\r\n //adjust maxDate to reflect the maxSpan setting in order to\r\n //grey out end dates beyond the maxSpan\r\n if (this.endDate == null && this.maxSpan) {\r\n var maxLimit = this.startDate.clone().add(this.maxSpan).endOf('day');\r\n if (!maxDate || maxLimit.isBefore(maxDate)) {\r\n maxDate = maxLimit;\r\n }\r\n }\r\n\r\n for (var row = 0; row < 6; row++) {\r\n html += '';\r\n\r\n // add week number\r\n if (this.showWeekNumbers)\r\n html += '';\r\n else if (this.showISOWeekNumbers)\r\n html += '';\r\n\r\n for (var col = 0; col < 7; col++) {\r\n\r\n var classes = [];\r\n\r\n //highlight today's date\r\n if (calendar[row][col].isSame(new Date(), \"day\"))\r\n classes.push('today');\r\n\r\n //highlight weekends\r\n if (calendar[row][col].isoWeekday() > 5)\r\n classes.push('weekend');\r\n\r\n //grey out the dates in other months displayed at beginning and end of this calendar\r\n if (calendar[row][col].month() != calendar[1][1].month())\r\n classes.push('off', 'ends');\r\n\r\n //don't allow selection of dates before the minimum date\r\n if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day'))\r\n classes.push('off', 'disabled');\r\n\r\n //don't allow selection of dates after the maximum date\r\n if (maxDate && calendar[row][col].isAfter(maxDate, 'day'))\r\n classes.push('off', 'disabled');\r\n\r\n //don't allow selection of date if a custom function decides it's invalid\r\n if (this.isInvalidDate(calendar[row][col]))\r\n classes.push('off', 'disabled');\r\n\r\n //highlight the currently selected start date\r\n if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD'))\r\n classes.push('active', 'start-date');\r\n\r\n //highlight the currently selected end date\r\n if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD'))\r\n classes.push('active', 'end-date');\r\n\r\n //highlight dates in-between the selected dates\r\n if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate)\r\n classes.push('in-range');\r\n\r\n //apply custom classes for this date\r\n var isCustom = this.isCustomDate(calendar[row][col]);\r\n if (isCustom !== false) {\r\n if (typeof isCustom === 'string')\r\n classes.push(isCustom);\r\n else\r\n Array.prototype.push.apply(classes, isCustom);\r\n }\r\n\r\n var cname = '', disabled = false;\r\n for (var i = 0; i < classes.length; i++) {\r\n cname += classes[i] + ' ';\r\n if (classes[i] == 'disabled')\r\n disabled = true;\r\n }\r\n if (!disabled)\r\n cname += 'available';\r\n\r\n html += '';\r\n\r\n }\r\n html += '';\r\n }\r\n\r\n html += '';\r\n html += '
' + dateHtml + '
' + this.locale.weekLabel + '' + dayOfWeek + '
' + calendar[row][0].week() + '' + calendar[row][0].isoWeek() + '' + calendar[row][col].date() + '
';\r\n\r\n this.container.find('.drp-calendar.' + side + ' .calendar-table').html(html);\r\n\r\n },\r\n\r\n renderTimePicker: function(side) {\r\n\r\n // Don't bother updating the time picker if it's currently disabled\r\n // because an end date hasn't been clicked yet\r\n if (side == 'right' && !this.endDate) return;\r\n\r\n var html, selected, minDate, maxDate = this.maxDate;\r\n\r\n if (this.maxSpan && (!this.maxDate || this.startDate.clone().add(this.maxSpan).isBefore(this.maxDate)))\r\n maxDate = this.startDate.clone().add(this.maxSpan);\r\n\r\n if (side == 'left') {\r\n selected = this.startDate.clone();\r\n minDate = this.minDate;\r\n } else if (side == 'right') {\r\n selected = this.endDate.clone();\r\n minDate = this.startDate;\r\n\r\n //Preserve the time already selected\r\n var timeSelector = this.container.find('.drp-calendar.right .calendar-time');\r\n if (timeSelector.html() != '') {\r\n\r\n selected.hour(!isNaN(selected.hour()) ? selected.hour() : timeSelector.find('.hourselect option:selected').val());\r\n selected.minute(!isNaN(selected.minute()) ? selected.minute() : timeSelector.find('.minuteselect option:selected').val());\r\n selected.second(!isNaN(selected.second()) ? selected.second() : timeSelector.find('.secondselect option:selected').val());\r\n\r\n if (!this.timePicker24Hour) {\r\n var ampm = timeSelector.find('.ampmselect option:selected').val();\r\n if (ampm === 'PM' && selected.hour() < 12)\r\n selected.hour(selected.hour() + 12);\r\n if (ampm === 'AM' && selected.hour() === 12)\r\n selected.hour(0);\r\n }\r\n\r\n }\r\n\r\n if (selected.isBefore(this.startDate))\r\n selected = this.startDate.clone();\r\n\r\n if (maxDate && selected.isAfter(maxDate))\r\n selected = maxDate.clone();\r\n\r\n }\r\n\r\n //\r\n // hours\r\n //\r\n\r\n html = ' ';\r\n\r\n //\r\n // minutes\r\n //\r\n\r\n html += ': ';\r\n\r\n //\r\n // seconds\r\n //\r\n\r\n if (this.timePickerSeconds) {\r\n html += ': ';\r\n }\r\n\r\n //\r\n // AM/PM\r\n //\r\n\r\n if (!this.timePicker24Hour) {\r\n html += '';\r\n }\r\n\r\n this.container.find('.drp-calendar.' + side + ' .calendar-time').html(html);\r\n\r\n },\r\n\r\n updateFormInputs: function() {\r\n\r\n if (this.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)))) {\r\n this.container.find('button.applyBtn').prop('disabled', false);\r\n } else {\r\n this.container.find('button.applyBtn').prop('disabled', true);\r\n }\r\n\r\n },\r\n\r\n move: function() {\r\n var parentOffset = { top: 0, left: 0 },\r\n containerTop,\r\n drops = this.drops;\r\n\r\n var parentRightEdge = $(window).width();\r\n if (!this.parentEl.is('body')) {\r\n parentOffset = {\r\n top: this.parentEl.offset().top - this.parentEl.scrollTop(),\r\n left: this.parentEl.offset().left - this.parentEl.scrollLeft()\r\n };\r\n parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left;\r\n }\r\n\r\n switch (drops) {\r\n case 'auto':\r\n containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top;\r\n if (containerTop + this.container.outerHeight() >= this.parentEl[0].scrollHeight) {\r\n containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;\r\n drops = 'up';\r\n }\r\n break;\r\n case 'up':\r\n containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;\r\n break;\r\n default:\r\n containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top;\r\n break;\r\n }\r\n\r\n // Force the container to it's actual width\r\n this.container.css({\r\n top: 0,\r\n left: 0,\r\n right: 'auto'\r\n });\r\n var containerWidth = this.container.outerWidth();\r\n\r\n this.container.toggleClass('drop-up', drops == 'up');\r\n\r\n if (this.opens == 'left') {\r\n var containerRight = parentRightEdge - this.element.offset().left - this.element.outerWidth();\r\n if (containerWidth + containerRight > $(window).width()) {\r\n this.container.css({\r\n top: containerTop,\r\n right: 'auto',\r\n left: 9\r\n });\r\n } else {\r\n this.container.css({\r\n top: containerTop,\r\n right: containerRight,\r\n left: 'auto'\r\n });\r\n }\r\n } else if (this.opens == 'center') {\r\n var containerLeft = this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2\r\n - containerWidth / 2;\r\n if (containerLeft < 0) {\r\n this.container.css({\r\n top: containerTop,\r\n right: 'auto',\r\n left: 9\r\n });\r\n } else if (containerLeft + containerWidth > $(window).width()) {\r\n this.container.css({\r\n top: containerTop,\r\n left: 'auto',\r\n right: 0\r\n });\r\n } else {\r\n this.container.css({\r\n top: containerTop,\r\n left: containerLeft,\r\n right: 'auto'\r\n });\r\n }\r\n } else {\r\n var containerLeft = this.element.offset().left - parentOffset.left;\r\n if (containerLeft + containerWidth > $(window).width()) {\r\n this.container.css({\r\n top: containerTop,\r\n left: 'auto',\r\n right: 0\r\n });\r\n } else {\r\n this.container.css({\r\n top: containerTop,\r\n left: containerLeft,\r\n right: 'auto'\r\n });\r\n }\r\n }\r\n },\r\n\r\n show: function(e) {\r\n if (this.isShowing) return;\r\n\r\n // Create a click proxy that is private to this instance of datepicker, for unbinding\r\n this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this);\r\n\r\n // Bind global datepicker mousedown for hiding and\r\n $(document)\r\n .on('mousedown.daterangepicker', this._outsideClickProxy)\r\n // also support mobile devices\r\n .on('touchend.daterangepicker', this._outsideClickProxy)\r\n // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them\r\n .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy)\r\n // and also close when focus changes to outside the picker (eg. tabbing between controls)\r\n .on('focusin.daterangepicker', this._outsideClickProxy);\r\n\r\n // Reposition the picker if the window is resized while it's open\r\n $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this));\r\n\r\n this.oldStartDate = this.startDate.clone();\r\n this.oldEndDate = this.endDate.clone();\r\n this.previousRightTime = this.endDate.clone();\r\n\r\n this.updateView();\r\n this.container.show();\r\n this.move();\r\n this.element.trigger('show.daterangepicker', this);\r\n this.isShowing = true;\r\n },\r\n\r\n hide: function(e) {\r\n if (!this.isShowing) return;\r\n\r\n //incomplete date selection, revert to last values\r\n if (!this.endDate) {\r\n this.startDate = this.oldStartDate.clone();\r\n this.endDate = this.oldEndDate.clone();\r\n }\r\n\r\n //if a new date range was selected, invoke the user callback function\r\n if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate))\r\n this.callback(this.startDate.clone(), this.endDate.clone(), this.chosenLabel);\r\n\r\n //if picker is attached to a text input, update it\r\n this.updateElement();\r\n\r\n $(document).off('.daterangepicker');\r\n $(window).off('.daterangepicker');\r\n this.container.hide();\r\n this.element.trigger('hide.daterangepicker', this);\r\n this.isShowing = false;\r\n },\r\n\r\n toggle: function(e) {\r\n if (this.isShowing) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n },\r\n\r\n outsideClick: function(e) {\r\n var target = $(e.target);\r\n // if the page is clicked anywhere except within the daterangerpicker/button\r\n // itself then call this.hide()\r\n if (\r\n // ie modal dialog fix\r\n e.type == \"focusin\" ||\r\n target.closest(this.element).length ||\r\n target.closest(this.container).length ||\r\n target.closest('.calendar-table').length\r\n ) return;\r\n this.hide();\r\n this.element.trigger('outsideClick.daterangepicker', this);\r\n },\r\n\r\n showCalendars: function() {\r\n this.container.addClass('show-calendar');\r\n this.move();\r\n this.element.trigger('showCalendar.daterangepicker', this);\r\n },\r\n\r\n hideCalendars: function() {\r\n this.container.removeClass('show-calendar');\r\n this.element.trigger('hideCalendar.daterangepicker', this);\r\n },\r\n\r\n clickRange: function(e) {\r\n var label = e.target.getAttribute('data-range-key');\r\n this.chosenLabel = label;\r\n if (label == this.locale.customRangeLabel) {\r\n this.showCalendars();\r\n } else {\r\n var dates = this.ranges[label];\r\n this.startDate = dates[0];\r\n this.endDate = dates[1];\r\n\r\n if (!this.timePicker) {\r\n this.startDate.startOf('day');\r\n this.endDate.endOf('day');\r\n }\r\n\r\n if (!this.alwaysShowCalendars)\r\n this.hideCalendars();\r\n this.clickApply();\r\n }\r\n },\r\n\r\n clickPrev: function(e) {\r\n var cal = $(e.target).parents('.drp-calendar');\r\n if (cal.hasClass('left')) {\r\n this.leftCalendar.month.subtract(1, 'month');\r\n if (this.linkedCalendars)\r\n this.rightCalendar.month.subtract(1, 'month');\r\n } else {\r\n this.rightCalendar.month.subtract(1, 'month');\r\n }\r\n this.updateCalendars();\r\n },\r\n\r\n clickNext: function(e) {\r\n var cal = $(e.target).parents('.drp-calendar');\r\n if (cal.hasClass('left')) {\r\n this.leftCalendar.month.add(1, 'month');\r\n } else {\r\n this.rightCalendar.month.add(1, 'month');\r\n if (this.linkedCalendars)\r\n this.leftCalendar.month.add(1, 'month');\r\n }\r\n this.updateCalendars();\r\n },\r\n\r\n hoverDate: function(e) {\r\n\r\n //ignore dates that can't be selected\r\n if (!$(e.target).hasClass('available')) return;\r\n\r\n var title = $(e.target).attr('data-title');\r\n var row = title.substr(1, 1);\r\n var col = title.substr(3, 1);\r\n var cal = $(e.target).parents('.drp-calendar');\r\n var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];\r\n\r\n //highlight the dates between the start date and the date being hovered as a potential end date\r\n var leftCalendar = this.leftCalendar;\r\n var rightCalendar = this.rightCalendar;\r\n var startDate = this.startDate;\r\n if (!this.endDate) {\r\n this.container.find('.drp-calendar tbody td').each(function(index, el) {\r\n\r\n //skip week numbers, only look at dates\r\n if ($(el).hasClass('week')) return;\r\n\r\n var title = $(el).attr('data-title');\r\n var row = title.substr(1, 1);\r\n var col = title.substr(3, 1);\r\n var cal = $(el).parents('.drp-calendar');\r\n var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col];\r\n\r\n if ((dt.isAfter(startDate) && dt.isBefore(date)) || dt.isSame(date, 'day')) {\r\n $(el).addClass('in-range');\r\n } else {\r\n $(el).removeClass('in-range');\r\n }\r\n\r\n });\r\n }\r\n\r\n },\r\n\r\n clickDate: function(e) {\r\n\r\n if (!$(e.target).hasClass('available')) return;\r\n\r\n var title = $(e.target).attr('data-title');\r\n var row = title.substr(1, 1);\r\n var col = title.substr(3, 1);\r\n var cal = $(e.target).parents('.drp-calendar');\r\n var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];\r\n\r\n //\r\n // this function needs to do a few things:\r\n // * alternate between selecting a start and end date for the range,\r\n // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date\r\n // * if autoapply is enabled, and an end date was chosen, apply the selection\r\n // * if single date picker mode, and time picker isn't enabled, apply the selection immediately\r\n // * if one of the inputs above the calendars was focused, cancel that manual input\r\n //\r\n\r\n if (this.endDate || date.isBefore(this.startDate, 'day')) { //picking start\r\n if (this.timePicker) {\r\n var hour = parseInt(this.container.find('.left .hourselect').val(), 10);\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.container.find('.left .ampmselect').val();\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n var minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\r\n if (isNaN(minute)) {\r\n minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);\r\n }\r\n var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\r\n date = date.clone().hour(hour).minute(minute).second(second);\r\n }\r\n this.endDate = null;\r\n this.setStartDate(date.clone());\r\n } else if (!this.endDate && date.isBefore(this.startDate)) {\r\n //special case: clicking the same date for start/end,\r\n //but the time of the end date is before the start date\r\n this.setEndDate(this.startDate.clone());\r\n } else { // picking end\r\n if (this.timePicker) {\r\n var hour = parseInt(this.container.find('.right .hourselect').val(), 10);\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.container.find('.right .ampmselect').val();\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n var minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\r\n if (isNaN(minute)) {\r\n minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);\r\n }\r\n var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\r\n date = date.clone().hour(hour).minute(minute).second(second);\r\n }\r\n this.setEndDate(date.clone());\r\n if (this.autoApply) {\r\n this.calculateChosenLabel();\r\n this.clickApply();\r\n }\r\n }\r\n\r\n if (this.singleDatePicker) {\r\n this.setEndDate(this.startDate);\r\n if (!this.timePicker && this.autoApply)\r\n this.clickApply();\r\n }\r\n\r\n this.updateView();\r\n\r\n //This is to cancel the blur event handler if the mouse was in one of the inputs\r\n e.stopPropagation();\r\n\r\n },\r\n\r\n calculateChosenLabel: function () {\r\n var customRange = true;\r\n var i = 0;\r\n for (var range in this.ranges) {\r\n if (this.timePicker) {\r\n var format = this.timePickerSeconds ? \"YYYY-MM-DD HH:mm:ss\" : \"YYYY-MM-DD HH:mm\";\r\n //ignore times when comparing dates if time picker seconds is not enabled\r\n if (this.startDate.format(format) == this.ranges[range][0].format(format) && this.endDate.format(format) == this.ranges[range][1].format(format)) {\r\n customRange = false;\r\n this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key');\r\n break;\r\n }\r\n } else {\r\n //ignore times when comparing dates if time picker is not enabled\r\n if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) {\r\n customRange = false;\r\n this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key');\r\n break;\r\n }\r\n }\r\n i++;\r\n }\r\n if (customRange) {\r\n if (this.showCustomRangeLabel) {\r\n this.chosenLabel = this.container.find('.ranges li:last').addClass('active').attr('data-range-key');\r\n } else {\r\n this.chosenLabel = null;\r\n }\r\n this.showCalendars();\r\n }\r\n },\r\n\r\n clickApply: function(e) {\r\n this.hide();\r\n this.element.trigger('apply.daterangepicker', this);\r\n },\r\n\r\n clickCancel: function(e) {\r\n this.startDate = this.oldStartDate;\r\n this.endDate = this.oldEndDate;\r\n this.hide();\r\n this.element.trigger('cancel.daterangepicker', this);\r\n },\r\n\r\n monthOrYearChanged: function(e) {\r\n var isLeft = $(e.target).closest('.drp-calendar').hasClass('left'),\r\n leftOrRight = isLeft ? 'left' : 'right',\r\n cal = this.container.find('.drp-calendar.'+leftOrRight);\r\n\r\n // Month must be Number for new moment versions\r\n var month = parseInt(cal.find('.monthselect').val(), 10);\r\n var year = cal.find('.yearselect').val();\r\n\r\n if (!isLeft) {\r\n if (year < this.startDate.year() || (year == this.startDate.year() && month < this.startDate.month())) {\r\n month = this.startDate.month();\r\n year = this.startDate.year();\r\n }\r\n }\r\n\r\n if (this.minDate) {\r\n if (year < this.minDate.year() || (year == this.minDate.year() && month < this.minDate.month())) {\r\n month = this.minDate.month();\r\n year = this.minDate.year();\r\n }\r\n }\r\n\r\n if (this.maxDate) {\r\n if (year > this.maxDate.year() || (year == this.maxDate.year() && month > this.maxDate.month())) {\r\n month = this.maxDate.month();\r\n year = this.maxDate.year();\r\n }\r\n }\r\n\r\n if (isLeft) {\r\n this.leftCalendar.month.month(month).year(year);\r\n if (this.linkedCalendars)\r\n this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month');\r\n } else {\r\n this.rightCalendar.month.month(month).year(year);\r\n if (this.linkedCalendars)\r\n this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month');\r\n }\r\n this.updateCalendars();\r\n },\r\n\r\n timeChanged: function(e) {\r\n\r\n var cal = $(e.target).closest('.drp-calendar'),\r\n isLeft = cal.hasClass('left');\r\n\r\n var hour = parseInt(cal.find('.hourselect').val(), 10);\r\n var minute = parseInt(cal.find('.minuteselect').val(), 10);\r\n if (isNaN(minute)) {\r\n minute = parseInt(cal.find('.minuteselect option:last').val(), 10);\r\n }\r\n var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0;\r\n\r\n if (!this.timePicker24Hour) {\r\n var ampm = cal.find('.ampmselect').val();\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n\r\n if (isLeft) {\r\n var start = this.startDate.clone();\r\n start.hour(hour);\r\n start.minute(minute);\r\n start.second(second);\r\n this.setStartDate(start);\r\n if (this.singleDatePicker) {\r\n this.endDate = this.startDate.clone();\r\n } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) {\r\n this.setEndDate(start.clone());\r\n }\r\n } else if (this.endDate) {\r\n var end = this.endDate.clone();\r\n end.hour(hour);\r\n end.minute(minute);\r\n end.second(second);\r\n this.setEndDate(end);\r\n }\r\n\r\n //update the calendars so all clickable dates reflect the new time component\r\n this.updateCalendars();\r\n\r\n //update the form inputs above the calendars with the new time\r\n this.updateFormInputs();\r\n\r\n //re-render the time pickers because changing one selection can affect what's enabled in another\r\n this.renderTimePicker('left');\r\n this.renderTimePicker('right');\r\n\r\n },\r\n\r\n elementChanged: function() {\r\n if (!this.element.is('input')) return;\r\n if (!this.element.val().length) return;\r\n\r\n var dateString = this.element.val().split(this.locale.separator),\r\n start = null,\r\n end = null;\r\n\r\n if (dateString.length === 2) {\r\n start = moment(dateString[0], this.locale.format);\r\n end = moment(dateString[1], this.locale.format);\r\n }\r\n\r\n if (this.singleDatePicker || start === null || end === null) {\r\n start = moment(this.element.val(), this.locale.format);\r\n end = start;\r\n }\r\n\r\n if (!start.isValid() || !end.isValid()) return;\r\n\r\n this.setStartDate(start);\r\n this.setEndDate(end);\r\n this.updateView();\r\n },\r\n\r\n keydown: function(e) {\r\n //hide on tab or enter\r\n if ((e.keyCode === 9) || (e.keyCode === 13)) {\r\n this.hide();\r\n }\r\n\r\n //hide on esc and prevent propagation\r\n if (e.keyCode === 27) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n this.hide();\r\n }\r\n },\r\n\r\n updateElement: function() {\r\n if (this.element.is('input') && this.autoUpdateInput) {\r\n var newValue = this.startDate.format(this.locale.format);\r\n if (!this.singleDatePicker) {\r\n newValue += this.locale.separator + this.endDate.format(this.locale.format);\r\n }\r\n if (newValue !== this.element.val()) {\r\n this.element.val(newValue).trigger('change');\r\n }\r\n }\r\n },\r\n\r\n remove: function() {\r\n this.container.remove();\r\n this.element.off('.daterangepicker');\r\n this.element.removeData();\r\n }\r\n\r\n };\r\n\r\n $.fn.daterangepicker = function(options, callback) {\r\n var implementOptions = $.extend(true, {}, $.fn.daterangepicker.defaultOptions, options);\r\n this.each(function() {\r\n var el = $(this);\r\n if (el.data('daterangepicker'))\r\n el.data('daterangepicker').remove();\r\n el.data('daterangepicker', new DateRangePicker(el, implementOptions, callback));\r\n });\r\n return this;\r\n };\r\n\r\n return DateRangePicker;\r\n\r\n}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLWRhdGVyYW5nZXBpY2tlci9kYXRlcmFuZ2VwaWNrZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUEwQztBQUNsRDtBQUNBLFFBQVEsaUNBQU8sQ0FBQyxvRUFBUSxFQUFFLHlFQUFRLENBQUMsbUNBQUU7QUFDckMsNENBQTRDO0FBQzVDO0FBQ0E7QUFDQSxTQUFTO0FBQUEsa0dBQUM7QUFDVixNQUFNLEtBQUssdUJBYU47QUFDTCxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixPQUFPO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsUUFBUTtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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RSxlQUFlO0FBQ3hGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0VBQXdFO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxjQUFjLE9BQU87QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRDtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1kYXRlcmFuZ2VwaWNrZXIvZGF0ZXJhbmdlcGlja2VyLmpzP2VmN2MiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiogQHZlcnNpb246IDMuMVxyXG4qIEBhdXRob3I6IERhbiBHcm9zc21hbiBodHRwOi8vd3d3LmRhbmdyb3NzbWFuLmluZm8vXHJcbiogQGNvcHlyaWdodDogQ29weXJpZ2h0IChjKSAyMDEyLTIwMTkgRGFuIEdyb3NzbWFuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4qIEBsaWNlbnNlOiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocFxyXG4qIEB3ZWJzaXRlOiBodHRwOi8vd3d3LmRhdGVyYW5nZXBpY2tlci5jb20vXHJcbiovXHJcbi8vIEZvbGxvd2luZyB0aGUgVU1EIHRlbXBsYXRlIGh0dHBzOi8vZ2l0aHViLmNvbS91bWRqcy91bWQvYmxvYi9tYXN0ZXIvdGVtcGxhdGVzL3JldHVybkV4cG9ydHNHbG9iYWwuanNcclxuKGZ1bmN0aW9uIChyb290LCBmYWN0b3J5KSB7XHJcbiAgICBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XHJcbiAgICAgICAgLy8gQU1ELiBNYWtlIGdsb2JhbHkgYXZhaWxhYmxlIGFzIHdlbGxcclxuICAgICAgICBkZWZpbmUoWydtb21lbnQnLCAnanF1ZXJ5J10sIGZ1bmN0aW9uIChtb21lbnQsIGpxdWVyeSkge1xyXG4gICAgICAgICAgICBpZiAoIWpxdWVyeS5mbikganF1ZXJ5LmZuID0ge307IC8vIHdlYnBhY2sgc2VydmVyIHJlbmRlcmluZ1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIG1vbWVudCAhPT0gJ2Z1bmN0aW9uJyAmJiBtb21lbnQuaGFzT3duUHJvcGVydHkoJ2RlZmF1bHQnKSkgbW9tZW50ID0gbW9tZW50WydkZWZhdWx0J11cclxuICAgICAgICAgICAgcmV0dXJuIGZhY3RvcnkobW9tZW50LCBqcXVlcnkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0JyAmJiBtb2R1bGUuZXhwb3J0cykge1xyXG4gICAgICAgIC8vIE5vZGUgLyBCcm93c2VyaWZ5XHJcbiAgICAgICAgLy9pc29tb3JwaGljIGlzc3VlXHJcbiAgICAgICAgdmFyIGpRdWVyeSA9ICh0eXBlb2Ygd2luZG93ICE9ICd1bmRlZmluZWQnKSA/IHdpbmRvdy5qUXVlcnkgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKCFqUXVlcnkpIHtcclxuICAgICAgICAgICAgalF1ZXJ5ID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcbiAgICAgICAgICAgIGlmICghalF1ZXJ5LmZuKSBqUXVlcnkuZm4gPSB7fTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG1vbWVudCA9ICh0eXBlb2Ygd2luZG93ICE9ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cubW9tZW50ICE9ICd1bmRlZmluZWQnKSA/IHdpbmRvdy5tb21lbnQgOiByZXF1aXJlKCdtb21lbnQnKTtcclxuICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkobW9tZW50LCBqUXVlcnkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBCcm93c2VyIGdsb2JhbHNcclxuICAgICAgICByb290LmRhdGVyYW5nZXBpY2tlciA9IGZhY3Rvcnkocm9vdC5tb21lbnQsIHJvb3QualF1ZXJ5KTtcclxuICAgIH1cclxufSh0aGlzLCBmdW5jdGlvbihtb21lbnQsICQpIHtcclxuICAgIHZhciBEYXRlUmFuZ2VQaWNrZXIgPSBmdW5jdGlvbihlbGVtZW50LCBvcHRpb25zLCBjYikge1xyXG5cclxuICAgICAgICAvL2RlZmF1bHQgc2V0dGluZ3MgZm9yIG9wdGlvbnNcclxuICAgICAgICB0aGlzLnBhcmVudEVsID0gJ2JvZHknO1xyXG4gICAgICAgIHRoaXMuZWxlbWVudCA9ICQoZWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5zdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCdkYXknKTtcclxuICAgICAgICB0aGlzLmVuZERhdGUgPSBtb21lbnQoKS5lbmRPZignZGF5Jyk7XHJcbiAgICAgICAgdGhpcy5taW5EYXRlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tYXhEYXRlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tYXhTcGFuID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5hdXRvQXBwbHkgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNpbmdsZURhdGVQaWNrZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3dEcm9wZG93bnMgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1pblllYXIgPSBtb21lbnQoKS5zdWJ0cmFjdCgxMDAsICd5ZWFyJykuZm9ybWF0KCdZWVlZJyk7XHJcbiAgICAgICAgdGhpcy5tYXhZZWFyID0gbW9tZW50KCkuYWRkKDEwMCwgJ3llYXInKS5mb3JtYXQoJ1lZWVknKTtcclxuICAgICAgICB0aGlzLnNob3dXZWVrTnVtYmVycyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd0lTT1dlZWtOdW1iZXJzID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93Q3VzdG9tUmFuZ2VMYWJlbCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy50aW1lUGlja2VyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW1lUGlja2VyMjRIb3VyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW1lUGlja2VySW5jcmVtZW50ID0gMTtcclxuICAgICAgICB0aGlzLnRpbWVQaWNrZXJTZWNvbmRzID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5saW5rZWRDYWxlbmRhcnMgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuYXV0b1VwZGF0ZUlucHV0ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmFsd2F5c1Nob3dDYWxlbmRhcnMgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJhbmdlcyA9IHt9O1xyXG5cclxuICAgICAgICB0aGlzLm9wZW5zID0gJ3JpZ2h0JztcclxuICAgICAgICBpZiAodGhpcy5lbGVtZW50Lmhhc0NsYXNzKCdwdWxsLXJpZ2h0JykpXHJcbiAgICAgICAgICAgIHRoaXMub3BlbnMgPSAnbGVmdCc7XHJcblxyXG4gICAgICAgIHRoaXMuZHJvcHMgPSAnZG93bic7XHJcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5oYXNDbGFzcygnZHJvcHVwJykpXHJcbiAgICAgICAgICAgIHRoaXMuZHJvcHMgPSAndXAnO1xyXG5cclxuICAgICAgICB0aGlzLmJ1dHRvbkNsYXNzZXMgPSAnYnRuIGJ0bi1zbSc7XHJcbiAgICAgICAgdGhpcy5hcHBseUJ1dHRvbkNsYXNzZXMgPSAnYnRuLXByaW1hcnknO1xyXG4gICAgICAgIHRoaXMuY2FuY2VsQnV0dG9uQ2xhc3NlcyA9ICdidG4tZGVmYXVsdCc7XHJcblxyXG4gICAgICAgIHRoaXMubG9jYWxlID0ge1xyXG4gICAgICAgICAgICBkaXJlY3Rpb246ICdsdHInLFxyXG4gICAgICAgICAgICBmb3JtYXQ6IG1vbWVudC5sb2NhbGVEYXRhKCkubG9uZ0RhdGVGb3JtYXQoJ0wnKSxcclxuICAgICAgICAgICAgc2VwYXJhdG9yOiAnIC0gJyxcclxuICAgICAgICAgICAgYXBwbHlMYWJlbDogJ0FwcGx5JyxcclxuICAgICAgICAgICAgY2FuY2VsTGFiZWw6ICdDYW5jZWwnLFxyXG4gICAgICAgICAgICB3ZWVrTGFiZWw6ICdXJyxcclxuICAgICAgICAgICAgY3VzdG9tUmFuZ2VMYWJlbDogJ0N1c3RvbSBSYW5nZScsXHJcbiAgICAgICAgICAgIGRheXNPZldlZWs6IG1vbWVudC53ZWVrZGF5c01pbigpLFxyXG4gICAgICAgICAgICBtb250aE5hbWVzOiBtb21lbnQubW9udGhzU2hvcnQoKSxcclxuICAgICAgICAgICAgZmlyc3REYXk6IG1vbWVudC5sb2NhbGVEYXRhKCkuZmlyc3REYXlPZldlZWsoKVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuY2FsbGJhY2sgPSBmdW5jdGlvbigpIHsgfTtcclxuXHJcbiAgICAgICAgLy9zb21lIHN0YXRlIGluZm9ybWF0aW9uXHJcbiAgICAgICAgdGhpcy5pc1Nob3dpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmxlZnRDYWxlbmRhciA9IHt9O1xyXG4gICAgICAgIHRoaXMucmlnaHRDYWxlbmRhciA9IHt9O1xyXG5cclxuICAgICAgICAvL2N1c3RvbSBvcHRpb25zIGZyb20gdXNlclxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ29iamVjdCcgfHwgb3B0aW9ucyA9PT0gbnVsbClcclxuICAgICAgICAgICAgb3B0aW9ucyA9IHt9O1xyXG5cclxuICAgICAgICAvL2FsbG93IHNldHRpbmcgb3B0aW9ucyB3aXRoIGRhdGEgYXR0cmlidXRlc1xyXG4gICAgICAgIC8vZGF0YS1hcGkgb3B0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuIHdpdGggY3VzdG9tIGphdmFzY3JpcHQgb3B0aW9uc1xyXG4gICAgICAgIG9wdGlvbnMgPSAkLmV4dGVuZCh0aGlzLmVsZW1lbnQuZGF0YSgpLCBvcHRpb25zKTtcclxuXHJcbiAgICAgICAgLy9odG1sIHRlbXBsYXRlIGZvciB0aGUgcGlja2VyIFVJXHJcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnRlbXBsYXRlICE9PSAnc3RyaW5nJyAmJiAhKG9wdGlvbnMudGVtcGxhdGUgaW5zdGFuY2VvZiAkKSlcclxuICAgICAgICAgICAgb3B0aW9ucy50ZW1wbGF0ZSA9XHJcbiAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwiZGF0ZXJhbmdlcGlja2VyXCI+JyArXHJcbiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz1cInJhbmdlc1wiPjwvZGl2PicgK1xyXG4gICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJkcnAtY2FsZW5kYXIgbGVmdFwiPicgK1xyXG4gICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwiY2FsZW5kYXItdGFibGVcIj48L2Rpdj4nICtcclxuICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz1cImNhbGVuZGFyLXRpbWVcIj48L2Rpdj4nICtcclxuICAgICAgICAgICAgICAgICc8L2Rpdj4nICtcclxuICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwiZHJwLWNhbGVuZGFyIHJpZ2h0XCI+JyArXHJcbiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJjYWxlbmRhci10YWJsZVwiPjwvZGl2PicgK1xyXG4gICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwiY2FsZW5kYXItdGltZVwiPjwvZGl2PicgK1xyXG4gICAgICAgICAgICAgICAgJzwvZGl2PicgK1xyXG4gICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJkcnAtYnV0dG9uc1wiPicgK1xyXG4gICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cImRycC1zZWxlY3RlZFwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz1cImNhbmNlbEJ0blwiIHR5cGU9XCJidXR0b25cIj48L2J1dHRvbj4nICtcclxuICAgICAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz1cImFwcGx5QnRuXCIgZGlzYWJsZWQ9XCJkaXNhYmxlZFwiIHR5cGU9XCJidXR0b25cIj48L2J1dHRvbj4gJyArXHJcbiAgICAgICAgICAgICAgICAnPC9kaXY+JyArXHJcbiAgICAgICAgICAgICc8L2Rpdj4nO1xyXG5cclxuICAgICAgICB0aGlzLnBhcmVudEVsID0gKG9wdGlvbnMucGFyZW50RWwgJiYgJChvcHRpb25zLnBhcmVudEVsKS5sZW5ndGgpID8gJChvcHRpb25zLnBhcmVudEVsKSA6ICQodGhpcy5wYXJlbnRFbCk7XHJcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSAkKG9wdGlvbnMudGVtcGxhdGUpLmFwcGVuZFRvKHRoaXMucGFyZW50RWwpO1xyXG5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIGhhbmRsZSBhbGwgdGhlIHBvc3NpYmxlIG9wdGlvbnMgb3ZlcnJpZGluZyBkZWZhdWx0c1xyXG4gICAgICAgIC8vXHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5sb2NhbGUgPT09ICdvYmplY3QnKSB7XHJcblxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubG9jYWxlLmRpcmVjdGlvbiA9PT0gJ3N0cmluZycpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsZS5kaXJlY3Rpb24gPSBvcHRpb25zLmxvY2FsZS5kaXJlY3Rpb247XHJcblxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubG9jYWxlLmZvcm1hdCA9PT0gJ3N0cmluZycpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsZS5mb3JtYXQgPSBvcHRpb25zLmxvY2FsZS5mb3JtYXQ7XHJcblxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubG9jYWxlLnNlcGFyYXRvciA9PT0gJ3N0cmluZycpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsZS5zZXBhcmF0b3IgPSBvcHRpb25zLmxvY2FsZS5zZXBhcmF0b3I7XHJcblxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubG9jYWxlLmRheXNPZldlZWsgPT09ICdvYmplY3QnKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbGUuZGF5c09mV2VlayA9IG9wdGlvbnMubG9jYWxlLmRheXNPZldlZWsuc2xpY2UoKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5sb2NhbGUubW9udGhOYW1lcyA9PT0gJ29iamVjdCcpXHJcbiAgICAgICAgICAgICAgdGhpcy5sb2NhbGUubW9udGhOYW1lcyA9IG9wdGlvbnMubG9jYWxlLm1vbnRoTmFtZXMuc2xpY2UoKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5sb2NhbGUuZmlyc3REYXkgPT09ICdudW1iZXInKVxyXG4gICAgICAgICAgICAgIHRoaXMubG9jYWxlLmZpcnN0RGF5ID0gb3B0aW9ucy5sb2NhbGUuZmlyc3REYXk7XHJcblxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubG9jYWxlLmFwcGx5TGFiZWwgPT09ICdzdHJpbmcnKVxyXG4gICAgICAgICAgICAgIHRoaXMubG9jYWxlLmFwcGx5TGFiZWwgPSBvcHRpb25zLmxvY2FsZS5hcHBseUxhYmVsO1xyXG5cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmxvY2FsZS5jYW5jZWxMYWJlbCA9PT0gJ3N0cmluZycpXHJcbiAgICAgICAgICAgICAgdGhpcy5sb2NhbGUuY2FuY2VsTGFiZWwgPSBvcHRpb25zLmxvY2FsZS5jYW5jZWxMYWJlbDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5sb2NhbGUud2Vla0xhYmVsID09PSAnc3RyaW5nJylcclxuICAgICAgICAgICAgICB0aGlzLmxvY2FsZS53ZWVrTGFiZWwgPSBvcHRpb25zLmxvY2FsZS53ZWVrTGFiZWw7XHJcblxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubG9jYWxlLmN1c3RvbVJhbmdlTGFiZWwgPT09ICdzdHJpbmcnKXtcclxuICAgICAgICAgICAgICAgIC8vU3VwcG9ydCB1bmljb2RlIGNoYXJzIGluIHRoZSBjdXN0b20gcmFuZ2UgbmFtZS5cclxuICAgICAgICAgICAgICAgIHZhciBlbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcclxuICAgICAgICAgICAgICAgIGVsZW0uaW5uZXJIVE1MID0gb3B0aW9ucy5sb2NhbGUuY3VzdG9tUmFuZ2VMYWJlbDtcclxuICAgICAgICAgICAgICAgIHZhciByYW5nZUh0bWwgPSBlbGVtLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbGUuY3VzdG9tUmFuZ2VMYWJlbCA9IHJhbmdlSHRtbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNvbnRhaW5lci5hZGRDbGFzcyh0aGlzLmxvY2FsZS5kaXJlY3Rpb24pO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuc3RhcnREYXRlID09PSAnc3RyaW5nJylcclxuICAgICAgICAgICAgdGhpcy5zdGFydERhdGUgPSBtb21lbnQob3B0aW9ucy5zdGFydERhdGUsIHRoaXMubG9jYWxlLmZvcm1hdCk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5lbmREYXRlID09PSAnc3RyaW5nJylcclxuICAgICAgICAgICAgdGhpcy5lbmREYXRlID0gbW9tZW50KG9wdGlvbnMuZW5kRGF0ZSwgdGhpcy5sb2NhbGUuZm9ybWF0KTtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLm1pbkRhdGUgPT09ICdzdHJpbmcnKVxyXG4gICAgICAgICAgICB0aGlzLm1pbkRhdGUgPSBtb21lbnQob3B0aW9ucy5taW5EYXRlLCB0aGlzLmxvY2FsZS5mb3JtYXQpO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubWF4RGF0ZSA9PT0gJ3N0cmluZycpXHJcbiAgICAgICAgICAgIHRoaXMubWF4RGF0ZSA9IG1vbWVudChvcHRpb25zLm1heERhdGUsIHRoaXMubG9jYWxlLmZvcm1hdCk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5zdGFydERhdGUgPT09ICdvYmplY3QnKVxyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9IG1vbWVudChvcHRpb25zLnN0YXJ0RGF0ZSk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5lbmREYXRlID09PSAnb2JqZWN0JylcclxuICAgICAgICAgICAgdGhpcy5lbmREYXRlID0gbW9tZW50KG9wdGlvbnMuZW5kRGF0ZSk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5taW5EYXRlID09PSAnb2JqZWN0JylcclxuICAgICAgICAgICAgdGhpcy5taW5EYXRlID0gbW9tZW50KG9wdGlvbnMubWluRGF0ZSk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5tYXhEYXRlID09PSAnb2JqZWN0JylcclxuICAgICAgICAgICAgdGhpcy5tYXhEYXRlID0gbW9tZW50KG9wdGlvbnMubWF4RGF0ZSk7XHJcblxyXG4gICAgICAgIC8vIHNhbml0eSBjaGVjayBmb3IgYmFkIG9wdGlvbnNcclxuICAgICAgICBpZiAodGhpcy5taW5EYXRlICYmIHRoaXMuc3RhcnREYXRlLmlzQmVmb3JlKHRoaXMubWluRGF0ZSkpXHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlID0gdGhpcy5taW5EYXRlLmNsb25lKCk7XHJcblxyXG4gICAgICAgIC8vIHNhbml0eSBjaGVjayBmb3IgYmFkIG9wdGlvbnNcclxuICAgICAgICBpZiAodGhpcy5tYXhEYXRlICYmIHRoaXMuZW5kRGF0ZS5pc0FmdGVyKHRoaXMubWF4RGF0ZSkpXHJcbiAgICAgICAgICAgIHRoaXMuZW5kRGF0ZSA9IHRoaXMubWF4RGF0ZS5jbG9uZSgpO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuYXBwbHlCdXR0b25DbGFzc2VzID09PSAnc3RyaW5nJylcclxuICAgICAgICAgICAgdGhpcy5hcHBseUJ1dHRvbkNsYXNzZXMgPSBvcHRpb25zLmFwcGx5QnV0dG9uQ2xhc3NlcztcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmFwcGx5Q2xhc3MgPT09ICdzdHJpbmcnKSAvL2JhY2t3YXJkcyBjb21wYXRcclxuICAgICAgICAgICAgdGhpcy5hcHBseUJ1dHRvbkNsYXNzZXMgPSBvcHRpb25zLmFwcGx5Q2xhc3M7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5jYW5jZWxCdXR0b25DbGFzc2VzID09PSAnc3RyaW5nJylcclxuICAgICAgICAgICAgdGhpcy5jYW5jZWxCdXR0b25DbGFzc2VzID0gb3B0aW9ucy5jYW5jZWxCdXR0b25DbGFzc2VzO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuY2FuY2VsQ2xhc3MgPT09ICdzdHJpbmcnKSAvL2JhY2t3YXJkcyBjb21wYXRcclxuICAgICAgICAgICAgdGhpcy5jYW5jZWxCdXR0b25DbGFzc2VzID0gb3B0aW9ucy5jYW5jZWxDbGFzcztcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLm1heFNwYW4gPT09ICdvYmplY3QnKVxyXG4gICAgICAgICAgICB0aGlzLm1heFNwYW4gPSBvcHRpb25zLm1heFNwYW47XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5kYXRlTGltaXQgPT09ICdvYmplY3QnKSAvL2JhY2t3YXJkcyBjb21wYXRcclxuICAgICAgICAgICAgdGhpcy5tYXhTcGFuID0gb3B0aW9ucy5kYXRlTGltaXQ7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5vcGVucyA9PT0gJ3N0cmluZycpXHJcbiAgICAgICAgICAgIHRoaXMub3BlbnMgPSBvcHRpb25zLm9wZW5zO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuZHJvcHMgPT09ICdzdHJpbmcnKVxyXG4gICAgICAgICAgICB0aGlzLmRyb3BzID0gb3B0aW9ucy5kcm9wcztcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnNob3dXZWVrTnVtYmVycyA9PT0gJ2Jvb2xlYW4nKVxyXG4gICAgICAgICAgICB0aGlzLnNob3dXZWVrTnVtYmVycyA9IG9wdGlvbnMuc2hvd1dlZWtOdW1iZXJzO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuc2hvd0lTT1dlZWtOdW1iZXJzID09PSAnYm9vbGVhbicpXHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0lTT1dlZWtOdW1iZXJzID0gb3B0aW9ucy5zaG93SVNPV2Vla051bWJlcnM7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5idXR0b25DbGFzc2VzID09PSAnc3RyaW5nJylcclxuICAgICAgICAgICAgdGhpcy5idXR0b25DbGFzc2VzID0gb3B0aW9ucy5idXR0b25DbGFzc2VzO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuYnV0dG9uQ2xhc3NlcyA9PT0gJ29iamVjdCcpXHJcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uQ2xhc3NlcyA9IG9wdGlvbnMuYnV0dG9uQ2xhc3Nlcy5qb2luKCcgJyk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5zaG93RHJvcGRvd25zID09PSAnYm9vbGVhbicpXHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Ryb3Bkb3ducyA9IG9wdGlvbnMuc2hvd0Ryb3Bkb3ducztcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLm1pblllYXIgPT09ICdudW1iZXInKVxyXG4gICAgICAgICAgICB0aGlzLm1pblllYXIgPSBvcHRpb25zLm1pblllYXI7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5tYXhZZWFyID09PSAnbnVtYmVyJylcclxuICAgICAgICAgICAgdGhpcy5tYXhZZWFyID0gb3B0aW9ucy5tYXhZZWFyO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuc2hvd0N1c3RvbVJhbmdlTGFiZWwgPT09ICdib29sZWFuJylcclxuICAgICAgICAgICAgdGhpcy5zaG93Q3VzdG9tUmFuZ2VMYWJlbCA9IG9wdGlvbnMuc2hvd0N1c3RvbVJhbmdlTGFiZWw7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5zaW5nbGVEYXRlUGlja2VyID09PSAnYm9vbGVhbicpIHtcclxuICAgICAgICAgICAgdGhpcy5zaW5nbGVEYXRlUGlja2VyID0gb3B0aW9ucy5zaW5nbGVEYXRlUGlja2VyO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zaW5nbGVEYXRlUGlja2VyKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbmREYXRlID0gdGhpcy5zdGFydERhdGUuY2xvbmUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy50aW1lUGlja2VyID09PSAnYm9vbGVhbicpXHJcbiAgICAgICAgICAgIHRoaXMudGltZVBpY2tlciA9IG9wdGlvbnMudGltZVBpY2tlcjtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnRpbWVQaWNrZXJTZWNvbmRzID09PSAnYm9vbGVhbicpXHJcbiAgICAgICAgICAgIHRoaXMudGltZVBpY2tlclNlY29uZHMgPSBvcHRpb25zLnRpbWVQaWNrZXJTZWNvbmRzO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMudGltZVBpY2tlckluY3JlbWVudCA9PT0gJ251bWJlcicpXHJcbiAgICAgICAgICAgIHRoaXMudGltZVBpY2tlckluY3JlbWVudCA9IG9wdGlvbnMudGltZVBpY2tlckluY3JlbWVudDtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnRpbWVQaWNrZXIyNEhvdXIgPT09ICdib29sZWFuJylcclxuICAgICAgICAgICAgdGhpcy50aW1lUGlja2VyMjRIb3VyID0gb3B0aW9ucy50aW1lUGlja2VyMjRIb3VyO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuYXV0b0FwcGx5ID09PSAnYm9vbGVhbicpXHJcbiAgICAgICAgICAgIHRoaXMuYXV0b0FwcGx5ID0gb3B0aW9ucy5hdXRvQXBwbHk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5hdXRvVXBkYXRlSW5wdXQgPT09ICdib29sZWFuJylcclxuICAgICAgICAgICAgdGhpcy5hdXRvVXBkYXRlSW5wdXQgPSBvcHRpb25zLmF1dG9VcGRhdGVJbnB1dDtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmxpbmtlZENhbGVuZGFycyA9PT0gJ2Jvb2xlYW4nKVxyXG4gICAgICAgICAgICB0aGlzLmxpbmtlZENhbGVuZGFycyA9IG9wdGlvbnMubGlua2VkQ2FsZW5kYXJzO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuaXNJbnZhbGlkRGF0ZSA9PT0gJ2Z1bmN0aW9uJylcclxuICAgICAgICAgICAgdGhpcy5pc0ludmFsaWREYXRlID0gb3B0aW9ucy5pc0ludmFsaWREYXRlO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuaXNDdXN0b21EYXRlID09PSAnZnVuY3Rpb24nKVxyXG4gICAgICAgICAgICB0aGlzLmlzQ3VzdG9tRGF0ZSA9IG9wdGlvbnMuaXNDdXN0b21EYXRlO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuYWx3YXlzU2hvd0NhbGVuZGFycyA9PT0gJ2Jvb2xlYW4nKVxyXG4gICAgICAgICAgICB0aGlzLmFsd2F5c1Nob3dDYWxlbmRhcnMgPSBvcHRpb25zLmFsd2F5c1Nob3dDYWxlbmRhcnM7XHJcblxyXG4gICAgICAgIC8vIHVwZGF0ZSBkYXkgbmFtZXMgb3JkZXIgdG8gZmlyc3REYXlcclxuICAgICAgICBpZiAodGhpcy5sb2NhbGUuZmlyc3REYXkgIT0gMCkge1xyXG4gICAgICAgICAgICB2YXIgaXRlcmF0b3IgPSB0aGlzLmxvY2FsZS5maXJzdERheTtcclxuICAgICAgICAgICAgd2hpbGUgKGl0ZXJhdG9yID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbGUuZGF5c09mV2Vlay5wdXNoKHRoaXMubG9jYWxlLmRheXNPZldlZWsuc2hpZnQoKSk7XHJcbiAgICAgICAgICAgICAgICBpdGVyYXRvci0tO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgc3RhcnQsIGVuZCwgcmFuZ2U7XHJcblxyXG4gICAgICAgIC8vaWYgbm8gc3RhcnQvZW5kIGRhdGVzIHNldCwgY2hlY2sgaWYgYW4gaW5wdXQgZWxlbWVudCBjb250YWlucyBpbml0aWFsIHZhbHVlc1xyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5zdGFydERhdGUgPT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBvcHRpb25zLmVuZERhdGUgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGlmICgkKHRoaXMuZWxlbWVudCkuaXMoJzp0ZXh0JykpIHtcclxuICAgICAgICAgICAgICAgIHZhciB2YWwgPSAkKHRoaXMuZWxlbWVudCkudmFsKCksXHJcbiAgICAgICAgICAgICAgICAgICAgc3BsaXQgPSB2YWwuc3BsaXQodGhpcy5sb2NhbGUuc2VwYXJhdG9yKTtcclxuXHJcbiAgICAgICAgICAgICAgICBzdGFydCA9IGVuZCA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHNwbGl0Lmxlbmd0aCA9PSAyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBtb21lbnQoc3BsaXRbMF0sIHRoaXMubG9jYWxlLmZvcm1hdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZW5kID0gbW9tZW50KHNwbGl0WzFdLCB0aGlzLmxvY2FsZS5mb3JtYXQpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNpbmdsZURhdGVQaWNrZXIgJiYgdmFsICE9PSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBtb21lbnQodmFsLCB0aGlzLmxvY2FsZS5mb3JtYXQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVuZCA9IG1vbWVudCh2YWwsIHRoaXMubG9jYWxlLmZvcm1hdCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnQgIT09IG51bGwgJiYgZW5kICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGFydERhdGUoc3RhcnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0RW5kRGF0ZShlbmQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMucmFuZ2VzID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICBmb3IgKHJhbmdlIGluIG9wdGlvbnMucmFuZ2VzKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnJhbmdlc1tyYW5nZV1bMF0gPT09ICdzdHJpbmcnKVxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gbW9tZW50KG9wdGlvbnMucmFuZ2VzW3JhbmdlXVswXSwgdGhpcy5sb2NhbGUuZm9ybWF0KTtcclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICBzdGFydCA9IG1vbWVudChvcHRpb25zLnJhbmdlc1tyYW5nZV1bMF0pO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5yYW5nZXNbcmFuZ2VdWzFdID09PSAnc3RyaW5nJylcclxuICAgICAgICAgICAgICAgICAgICBlbmQgPSBtb21lbnQob3B0aW9ucy5yYW5nZXNbcmFuZ2VdWzFdLCB0aGlzLmxvY2FsZS5mb3JtYXQpO1xyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIGVuZCA9IG1vbWVudChvcHRpb25zLnJhbmdlc1tyYW5nZV1bMV0pO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBzdGFydCBvciBlbmQgZGF0ZSBleGNlZWQgdGhvc2UgYWxsb3dlZCBieSB0aGUgbWluRGF0ZSBvciBtYXhTcGFuXHJcbiAgICAgICAgICAgICAgICAvLyBvcHRpb25zLCBzaG9ydGVuIHRoZSByYW5nZSB0byB0aGUgYWxsb3dhYmxlIHBlcmlvZC5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1pbkRhdGUgJiYgc3RhcnQuaXNCZWZvcmUodGhpcy5taW5EYXRlKSlcclxuICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHRoaXMubWluRGF0ZS5jbG9uZSgpO1xyXG5cclxuICAgICAgICAgICAgICAgIHZhciBtYXhEYXRlID0gdGhpcy5tYXhEYXRlO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWF4U3BhbiAmJiBtYXhEYXRlICYmIHN0YXJ0LmNsb25lKCkuYWRkKHRoaXMubWF4U3BhbikuaXNBZnRlcihtYXhEYXRlKSlcclxuICAgICAgICAgICAgICAgICAgICBtYXhEYXRlID0gc3RhcnQuY2xvbmUoKS5hZGQodGhpcy5tYXhTcGFuKTtcclxuICAgICAgICAgICAgICAgIGlmIChtYXhEYXRlICYmIGVuZC5pc0FmdGVyKG1heERhdGUpKVxyXG4gICAgICAgICAgICAgICAgICAgIGVuZCA9IG1heERhdGUuY2xvbmUoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZW5kIG9mIHRoZSByYW5nZSBpcyBiZWZvcmUgdGhlIG1pbmltdW0gb3IgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBpc1xyXG4gICAgICAgICAgICAgICAgLy8gYWZ0ZXIgdGhlIG1heGltdW0sIGRvbid0IGRpc3BsYXkgdGhpcyByYW5nZSBvcHRpb24gYXQgYWxsLlxyXG4gICAgICAgICAgICAgICAgaWYgKCh0aGlzLm1pbkRhdGUgJiYgZW5kLmlzQmVmb3JlKHRoaXMubWluRGF0ZSwgdGhpcy50aW1lcGlja2VyID8gJ21pbnV0ZScgOiAnZGF5JykpXHJcbiAgICAgICAgICAgICAgICAgIHx8IChtYXhEYXRlICYmIHN0YXJ0LmlzQWZ0ZXIobWF4RGF0ZSwgdGhpcy50aW1lcGlja2VyID8gJ21pbnV0ZScgOiAnZGF5JykpKVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vU3VwcG9ydCB1bmljb2RlIGNoYXJzIGluIHRoZSByYW5nZSBuYW1lcy5cclxuICAgICAgICAgICAgICAgIHZhciBlbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcclxuICAgICAgICAgICAgICAgIGVsZW0uaW5uZXJIVE1MID0gcmFuZ2U7XHJcbiAgICAgICAgICAgICAgICB2YXIgcmFuZ2VIdG1sID0gZWxlbS52YWx1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJhbmdlc1tyYW5nZUh0bWxdID0gW3N0YXJ0LCBlbmRdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB2YXIgbGlzdCA9ICc8dWw+JztcclxuICAgICAgICAgICAgZm9yIChyYW5nZSBpbiB0aGlzLnJhbmdlcykge1xyXG4gICAgICAgICAgICAgICAgbGlzdCArPSAnPGxpIGRhdGEtcmFuZ2Uta2V5PVwiJyArIHJhbmdlICsgJ1wiPicgKyByYW5nZSArICc8L2xpPic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMuc2hvd0N1c3RvbVJhbmdlTGFiZWwpIHtcclxuICAgICAgICAgICAgICAgIGxpc3QgKz0gJzxsaSBkYXRhLXJhbmdlLWtleT1cIicgKyB0aGlzLmxvY2FsZS5jdXN0b21SYW5nZUxhYmVsICsgJ1wiPicgKyB0aGlzLmxvY2FsZS5jdXN0b21SYW5nZUxhYmVsICsgJzwvbGk+JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsaXN0ICs9ICc8L3VsPic7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmZpbmQoJy5yYW5nZXMnKS5wcmVwZW5kKGxpc3QpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBjYiA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICB0aGlzLmNhbGxiYWNrID0gY2I7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMudGltZVBpY2tlcikge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9IHRoaXMuc3RhcnREYXRlLnN0YXJ0T2YoJ2RheScpO1xyXG4gICAgICAgICAgICB0aGlzLmVuZERhdGUgPSB0aGlzLmVuZERhdGUuZW5kT2YoJ2RheScpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5maW5kKCcuY2FsZW5kYXItdGltZScpLmhpZGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vY2FuJ3QgYmUgdXNlZCB0b2dldGhlciBmb3Igbm93XHJcbiAgICAgICAgaWYgKHRoaXMudGltZVBpY2tlciAmJiB0aGlzLmF1dG9BcHBseSlcclxuICAgICAgICAgICAgdGhpcy5hdXRvQXBwbHkgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYXV0b0FwcGx5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmFkZENsYXNzKCdhdXRvLWFwcGx5Jyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMucmFuZ2VzID09PSAnb2JqZWN0JylcclxuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuYWRkQ2xhc3MoJ3Nob3ctcmFuZ2VzJyk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNpbmdsZURhdGVQaWNrZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuYWRkQ2xhc3MoJ3NpbmdsZScpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5maW5kKCcuZHJwLWNhbGVuZGFyLmxlZnQnKS5hZGRDbGFzcygnc2luZ2xlJyk7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmZpbmQoJy5kcnAtY2FsZW5kYXIubGVmdCcpLnNob3coKTtcclxuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuZmluZCgnLmRycC1jYWxlbmRhci5yaWdodCcpLmhpZGUoKTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnRpbWVQaWNrZXIgJiYgdGhpcy5hdXRvQXBwbHkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmFkZENsYXNzKCdhdXRvLWFwcGx5Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICgodHlwZW9mIG9wdGlvbnMucmFuZ2VzID09PSAndW5kZWZpbmVkJyAmJiAhdGhpcy5zaW5nbGVEYXRlUGlja2VyKSB8fCB0aGlzLmFsd2F5c1Nob3dDYWxlbmRhcnMpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuYWRkQ2xhc3MoJ3Nob3ctY2FsZW5kYXInKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY29udGFpbmVyLmFkZENsYXNzKCdvcGVucycgKyB0aGlzLm9wZW5zKTtcclxuXHJcbiAgICAgICAgLy9hcHBseSBDU1MgY2xhc3NlcyBhbmQgbGFiZWxzIHRvIGJ1dHRvbnNcclxuICAgICAgICB0aGlzLmNvbnRhaW5lci5maW5kKCcuYXBwbHlCdG4sIC5jYW5jZWxCdG4nKS5hZGRDbGFzcyh0aGlzLmJ1dHRvbkNsYXNzZXMpO1xyXG4gICAgICAgIGlmICh0aGlzLmFwcGx5QnV0dG9uQ2xhc3Nlcy5sZW5ndGgpXHJcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmZpbmQoJy5hcHBseUJ0bicpLmFkZENsYXNzKHRoaXMuYXBwbHlCdXR0b25DbGFzc2VzKTtcclxuICAgICAgICBpZiAodGhpcy5jYW5jZWxCdXR0b25DbGFzc2VzLmxlbmd0aClcclxuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuZmluZCgnLmNhbmNlbEJ0bicpLmFkZENsYXNzKHRoaXMuY2FuY2VsQnV0dG9uQ2xhc3Nlcyk7XHJcbiAgICAgICAgdGhpcy5jb250YWluZXIuZmluZCgnLmFwcGx5QnRuJykuaHRtbCh0aGlzLmxvY2FsZS5hcHBseUxhYmVsKTtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lci5maW5kKCcuY2FuY2VsQnRuJykuaHRtbCh0aGlzLmxvY2FsZS5jYW5jZWxMYWJlbCk7XHJcblxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gZXZlbnQgbGlzdGVuZXJzXHJcbiAgICAgICAgLy9cclxuXHJcbiAgICAgICAgdGhpcy5jb250YWluZXIuZmluZCgnLmRycC1jYWxlbmRhcicpXHJcbiAgICAgICAgICAgIC5vbignY2xpY2suZGF0ZXJhbmdlcGlja2VyJywgJy5wcmV2JywgJC5wcm94eSh0aGlzLmNsaWNrUHJldiwgdGhpcykpXHJcbiAgICAgICAgICAgIC5vbignY2xpY2suZGF0ZXJhbmdlcGlja2VyJywgJy5uZXh0JywgJC5wcm94eSh0aGlzLmNsaWNrTmV4dCwgdGhpcykpXHJcbiAgICAgICAgICAgIC5vbignbW91c2Vkb3duLmRhdGVyYW5nZXBpY2tlcicsICd0ZC5hdmFpbGFibGUnLCAkLnByb3h5KHRoaXMuY2xpY2tEYXRlLCB0aGlzKSlcclxuICAgICAgICAgICAgLm9uKCdtb3VzZWVudGVyLmRhdGVyYW5nZXBpY2tlcicsICd0ZC5hdmFpbGFibGUnLCAkLnByb3h5KHRoaXMuaG92ZXJEYXRlLCB0aGlzKSlcclxuICAgICAgICAgICAgLm9uKCdjaGFuZ2UuZGF0ZXJhbmdlcGlja2VyJywgJ3NlbGVjdC55ZWFyc2VsZWN0JywgJC5wcm94eSh0aGlzLm1vbnRoT3JZZWFyQ2hhbmdlZCwgdGhpcykpXHJcbiAgICAgICAgICAgIC5vbignY2hhbmdlLmRhdGVyYW5nZXBpY2tlcicsICdzZWxlY3QubW9udGhzZWxlY3QnLCAkLnByb3h5KHRoaXMubW9udGhPclllYXJDaGFuZ2VkLCB0aGlzKSlcclxuICAgICAgICAgICAgLm9uKCdjaGFuZ2UuZGF0ZXJhbmdlcGlja2VyJywgJ3NlbGVjdC5ob3Vyc2VsZWN0LHNlbGVjdC5taW51dGVzZWxlY3Qsc2VsZWN0LnNlY29uZHNlbGVjdCxzZWxlY3QuYW1wbXNlbGVjdCcsICQucHJveHkodGhpcy50aW1lQ2hhbmdlZCwgdGhpcykpO1xyXG5cclxuICAgICAgICB0aGlzLmNvbnRhaW5lci5maW5kKCcucmFuZ2VzJylcclxuICAgICAgICAgICAgLm9uKCdjbGljay5kYXRlcmFuZ2VwaWNrZXInLCAnbGknLCAkLnByb3h5KHRoaXMuY2xpY2tSYW5nZSwgdGhpcykpO1xyXG5cclxuICAgICAgICB0aGlzLmNvbnRhaW5lci5maW5kKCcuZHJwLWJ1dHRvbnMnKVxyXG4gICAgICAgICAgICAub24oJ2NsaWNrLmRhdGVyYW5nZXBpY2tlcicsICdidXR0b24uYXBwbHlCdG4nLCAkLnByb3h5KHRoaXMuY2xpY2tBcHBseSwgdGhpcykpXHJcbiAgICAgICAgICAgIC5vbignY2xpY2suZGF0ZXJhbmdlcGlja2VyJywgJ2J1dHRvbi5jYW5jZWxCdG4nLCAkLnByb3h5KHRoaXMuY2xpY2tDYW5jZWwsIHRoaXMpKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5pcygnaW5wdXQnKSB8fCB0aGlzLmVsZW1lbnQuaXMoJ2J1dHRvbicpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5vbih7XHJcbiAgICAgICAgICAgICAgICAnY2xpY2suZGF0ZXJhbmdlcGlja2VyJzogJC5wcm94eSh0aGlzLnNob3csIHRoaXMpLFxyXG4gICAgICAgICAgICAgICAgJ2ZvY3VzLmRhdGVyYW5nZXBpY2tlcic6ICQucHJveHkodGhpcy5zaG93LCB0aGlzKSxcclxuICAgICAgICAgICAgICAgICdrZXl1cC5kYXRlcmFuZ2VwaWNrZXInOiAkLnByb3h5KHRoaXMuZWxlbWVudENoYW5nZWQsIHRoaXMpLFxyXG4gICAgICAgICAgICAgICAgJ2tleWRvd24uZGF0ZXJhbmdlcGlja2VyJzogJC5wcm94eSh0aGlzLmtleWRvd24sIHRoaXMpIC8vSUUgMTEgY29tcGF0aWJpbGl0eVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQub24oJ2NsaWNrLmRhdGVyYW5nZXBpY2tlcicsICQucHJveHkodGhpcy50b2dnbGUsIHRoaXMpKTtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm9uKCdrZXlkb3duLmRhdGVyYW5nZXBpY2tlcicsICQucHJveHkodGhpcy50b2dnbGUsIHRoaXMpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gaWYgYXR0YWNoZWQgdG8gYSB0ZXh0IGlucHV0LCBzZXQgdGhlIGluaXRpYWwgdmFsdWVcclxuICAgICAgICAvL1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZUVsZW1lbnQoKTtcclxuXHJcbiAgICB9O1xyXG5cclxuICAgIERhdGVSYW5nZVBpY2tlci5wcm90b3R5cGUgPSB7XHJcblxyXG4gICAgICAgIGNvbnN0cnVjdG9yOiBEYXRlUmFuZ2VQaWNrZXIsXHJcblxyXG4gICAgICAgIHNldFN0YXJ0RGF0ZTogZnVuY3Rpb24oc3RhcnREYXRlKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc3RhcnREYXRlID09PSAnc3RyaW5nJylcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlID0gbW9tZW50KHN0YXJ0RGF0ZSwgdGhpcy5sb2NhbGUuZm9ybWF0KTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc3RhcnREYXRlID09PSAnb2JqZWN0JylcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlID0gbW9tZW50KHN0YXJ0RGF0ZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMudGltZVBpY2tlcilcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlID0gdGhpcy5zdGFydERhdGUuc3RhcnRPZignZGF5Jyk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy50aW1lUGlja2VyICYmIHRoaXMudGltZVBpY2tlckluY3JlbWVudClcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlLm1pbnV0ZShNYXRoLnJvdW5kKHRoaXMuc3RhcnREYXRlLm1pbnV0ZSgpIC8gdGhpcy50aW1lUGlja2VySW5jcmVtZW50KSAqIHRoaXMudGltZVBpY2tlckluY3JlbWVudCk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5taW5EYXRlICYmIHRoaXMuc3RhcnREYXRlLmlzQmVmb3JlKHRoaXMubWluRGF0ZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlID0gdGhpcy5taW5EYXRlLmNsb25lKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50aW1lUGlja2VyICYmIHRoaXMudGltZVBpY2tlckluY3JlbWVudClcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZS5taW51dGUoTWF0aC5yb3VuZCh0aGlzLnN0YXJ0RGF0ZS5taW51dGUoKSAvIHRoaXMudGltZVBpY2tlckluY3JlbWVudCkgKiB0aGlzLnRpbWVQaWNrZXJJbmNyZW1lbnQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXhEYXRlICYmIHRoaXMuc3RhcnREYXRlLmlzQWZ0ZXIodGhpcy5tYXhEYXRlKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydERhdGUgPSB0aGlzLm1heERhdGUuY2xvbmUoKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRpbWVQaWNrZXIgJiYgdGhpcy50aW1lUGlja2VySW5jcmVtZW50KVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlLm1pbnV0ZShNYXRoLmZsb29yKHRoaXMuc3RhcnREYXRlLm1pbnV0ZSgpIC8gdGhpcy50aW1lUGlja2VySW5jcmVtZW50KSAqIHRoaXMudGltZVBpY2tlckluY3JlbWVudCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1Nob3dpbmcpXHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUVsZW1lbnQoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW9udGhzSW5WaWV3KCk7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0RW5kRGF0ZTogZnVuY3Rpb24oZW5kRGF0ZSkge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGVuZERhdGUgPT09ICdzdHJpbmcnKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbmREYXRlID0gbW9tZW50KGVuZERhdGUsIHRoaXMubG9jYWxlLmZvcm1hdCk7XHJcblxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGVuZERhdGUgPT09ICdvYmplY3QnKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbmREYXRlID0gbW9tZW50KGVuZERhdGUpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF0aGlzLnRpbWVQaWNrZXIpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVuZERhdGUgPSB0aGlzLmVuZERhdGUuZW5kT2YoJ2RheScpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMudGltZVBpY2tlciAmJiB0aGlzLnRpbWVQaWNrZXJJbmNyZW1lbnQpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVuZERhdGUubWludXRlKE1hdGgucm91bmQodGhpcy5lbmREYXRlLm1pbnV0ZSgpIC8gdGhpcy50aW1lUGlja2VySW5jcmVtZW50KSAqIHRoaXMudGltZVBpY2tlckluY3JlbWVudCk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5lbmREYXRlLmlzQmVmb3JlKHRoaXMuc3RhcnREYXRlKSlcclxuICAgICAgICAgICAgICAgIHRoaXMuZW5kRGF0ZSA9IHRoaXMuc3RhcnREYXRlLmNsb25lKCk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXhEYXRlICYmIHRoaXMuZW5kRGF0ZS5pc0FmdGVyKHRoaXMubWF4RGF0ZSkpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVuZERhdGUgPSB0aGlzLm1heERhdGUuY2xvbmUoKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1heFNwYW4gJiYgdGhpcy5zdGFydERhdGUuY2xvbmUoKS5hZGQodGhpcy5tYXhTcGFuKS5pc0JlZm9yZSh0aGlzLmVuZERhdGUpKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbmREYXRlID0gdGhpcy5zdGFydERhdGUuY2xvbmUoKS5hZGQodGhpcy5tYXhTcGFuKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucHJldmlvdXNSaWdodFRpbWUgPSB0aGlzLmVuZERhdGUuY2xvbmUoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmZpbmQoJy5kcnAtc2VsZWN0ZWQnKS5odG1sKHRoaXMuc3RhcnREYXRlLmZvcm1hdCh0aGlzLmxvY2FsZS5mb3JtYXQpICsgdGhpcy5sb2NhbGUuc2VwYXJhdG9yICsgdGhpcy5lbmREYXRlLmZvcm1hdCh0aGlzLmxvY2FsZS5mb3JtYXQpKTtcclxuXHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1Nob3dpbmcpXHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUVsZW1lbnQoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW9udGhzSW5WaWV3KCk7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgaXNJbnZhbGlkRGF0ZTogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBpc0N1c3RvbURhdGU6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgdXBkYXRlVmlldzogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRpbWVQaWNrZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyVGltZVBpY2tlcignbGVmdCcpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJUaW1lUGlja2VyKCdyaWdodCcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmVuZERhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5maW5kKCcucmlnaHQgLmNhbGVuZGFyLXRpbWUgc2VsZWN0JykucHJvcCgnZGlzYWJsZWQnLCB0cnVlKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIuZmluZCgnLnJpZ2h0IC5jYWxlbmRhci10aW1lIHNlbGVjdCcpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpLnJlbW92ZUNsYXNzKCdkaXNhYmxlZCcpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmVuZERhdGUpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5maW5kKCcuZHJwLXNlbGVjdGVkJykuaHRtbCh0aGlzLnN0YXJ0RGF0ZS5mb3JtYXQodGhpcy5sb2NhbGUuZm9ybWF0KSArIHRoaXMubG9jYWxlLnNlcGFyYXRvciArIHRoaXMuZW5kRGF0ZS5mb3JtYXQodGhpcy5sb2NhbGUuZm9ybWF0KSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW9udGhzSW5WaWV3KCk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJzKCk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRm9ybUlucHV0cygpO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHVwZGF0ZU1vbnRoc0luVmlldzogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmVuZERhdGUpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAvL2lmIGJvdGggZGF0ZXMgYXJlIHZpc2libGUgYWxyZWFkeSwgZG8gbm90aGluZ1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnNpbmdsZURhdGVQaWNrZXIgJiYgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggJiYgdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuc3RhcnREYXRlLmZvcm1hdCgnWVlZWS1NTScpID09IHRoaXMubGVmdENhbGVuZGFyLm1vbnRoLmZvcm1hdCgnWVlZWS1NTScpIHx8IHRoaXMuc3RhcnREYXRlLmZvcm1hdCgnWVlZWS1NTScpID09IHRoaXMucmlnaHRDYWxlbmRhci5tb250aC5mb3JtYXQoJ1lZWVktTU0nKSlcclxuICAgICAgICAgICAgICAgICAgICAmJlxyXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmVuZERhdGUuZm9ybWF0KCdZWVlZLU1NJykgPT0gdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGguZm9ybWF0KCdZWVlZLU1NJykgfHwgdGhpcy5lbmREYXRlLmZvcm1hdCgnWVlZWS1NTScpID09IHRoaXMucmlnaHRDYWxlbmRhci5tb250aC5mb3JtYXQoJ1lZWVktTU0nKSlcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggPSB0aGlzLnN0YXJ0RGF0ZS5jbG9uZSgpLmRhdGUoMik7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMubGlua2VkQ2FsZW5kYXJzICYmICh0aGlzLmVuZERhdGUubW9udGgoKSAhPSB0aGlzLnN0YXJ0RGF0ZS5tb250aCgpIHx8IHRoaXMuZW5kRGF0ZS55ZWFyKCkgIT0gdGhpcy5zdGFydERhdGUueWVhcigpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlnaHRDYWxlbmRhci5tb250aCA9IHRoaXMuZW5kRGF0ZS5jbG9uZSgpLmRhdGUoMik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlnaHRDYWxlbmRhci5tb250aCA9IHRoaXMuc3RhcnREYXRlLmNsb25lKCkuZGF0ZSgyKS5hZGQoMSwgJ21vbnRoJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGVmdENhbGVuZGFyLm1vbnRoLmZvcm1hdCgnWVlZWS1NTScpICE9IHRoaXMuc3RhcnREYXRlLmZvcm1hdCgnWVlZWS1NTScpICYmIHRoaXMucmlnaHRDYWxlbmRhci5tb250aC5mb3JtYXQoJ1lZWVktTU0nKSAhPSB0aGlzLnN0YXJ0RGF0ZS5mb3JtYXQoJ1lZWVktTU0nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoID0gdGhpcy5zdGFydERhdGUuY2xvbmUoKS5kYXRlKDIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlnaHRDYWxlbmRhci5tb250aCA9IHRoaXMuc3RhcnREYXRlLmNsb25lKCkuZGF0ZSgyKS5hZGQoMSwgJ21vbnRoJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMubWF4RGF0ZSAmJiB0aGlzLmxpbmtlZENhbGVuZGFycyAmJiAhdGhpcy5zaW5nbGVEYXRlUGlja2VyICYmIHRoaXMucmlnaHRDYWxlbmRhci5tb250aCA+IHRoaXMubWF4RGF0ZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucmlnaHRDYWxlbmRhci5tb250aCA9IHRoaXMubWF4RGF0ZS5jbG9uZSgpLmRhdGUoMik7XHJcbiAgICAgICAgICAgICAgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggPSB0aGlzLm1heERhdGUuY2xvbmUoKS5kYXRlKDIpLnN1YnRyYWN0KDEsICdtb250aCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgdXBkYXRlQ2FsZW5kYXJzOiBmdW5jdGlvbigpIHtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRpbWVQaWNrZXIpIHtcclxuICAgICAgICAgICAgICAgIHZhciBob3VyLCBtaW51dGUsIHNlY29uZDtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmVuZERhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBob3VyID0gcGFyc2VJbnQodGhpcy5jb250YWluZXIuZmluZCgnLmxlZnQgLmhvdXJzZWxlY3QnKS52YWwoKSwgMTApO1xyXG4gICAgICAgICAgICAgICAgICAgIG1pbnV0ZSA9IHBhcnNlSW50KHRoaXMuY29udGFpbmVyLmZpbmQoJy5sZWZ0IC5taW51dGVzZWxlY3QnKS52YWwoKSwgMTApO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc05hTihtaW51dGUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbnV0ZSA9IHBhcnNlSW50KHRoaXMuY29udGFpbmVyLmZpbmQoJy5sZWZ0IC5taW51dGVzZWxlY3Qgb3B0aW9uOmxhc3QnKS52YWwoKSwgMTApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzZWNvbmQgPSB0aGlzLnRpbWVQaWNrZXJTZWNvbmRzID8gcGFyc2VJbnQodGhpcy5jb250YWluZXIuZmluZCgnLmxlZnQgLnNlY29uZHNlbGVjdCcpLnZhbCgpLCAxMCkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy50aW1lUGlja2VyMjRIb3VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhbXBtID0gdGhpcy5jb250YWluZXIuZmluZCgnLmxlZnQgLmFtcG1zZWxlY3QnKS52YWwoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFtcG0gPT09ICdQTScgJiYgaG91ciA8IDEyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaG91ciArPSAxMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFtcG0gPT09ICdBTScgJiYgaG91ciA9PT0gMTIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3VyID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGhvdXIgPSBwYXJzZUludCh0aGlzLmNvbnRhaW5lci5maW5kKCcucmlnaHQgLmhvdXJzZWxlY3QnKS52YWwoKSwgMTApO1xyXG4gICAgICAgICAgICAgICAgICAgIG1pbnV0ZSA9IHBhcnNlSW50KHRoaXMuY29udGFpbmVyLmZpbmQoJy5yaWdodCAubWludXRlc2VsZWN0JykudmFsKCksIDEwKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNOYU4obWludXRlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW51dGUgPSBwYXJzZUludCh0aGlzLmNvbnRhaW5lci5maW5kKCcucmlnaHQgLm1pbnV0ZXNlbGVjdCBvcHRpb246bGFzdCcpLnZhbCgpLCAxMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHNlY29uZCA9IHRoaXMudGltZVBpY2tlclNlY29uZHMgPyBwYXJzZUludCh0aGlzLmNvbnRhaW5lci5maW5kKCcucmlnaHQgLnNlY29uZHNlbGVjdCcpLnZhbCgpLCAxMCkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy50aW1lUGlja2VyMjRIb3VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhbXBtID0gdGhpcy5jb250YWluZXIuZmluZCgnLnJpZ2h0IC5hbXBtc2VsZWN0JykudmFsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbXBtID09PSAnUE0nICYmIGhvdXIgPCAxMilcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXIgKz0gMTI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbXBtID09PSAnQU0nICYmIGhvdXIgPT09IDEyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaG91ciA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGguaG91cihob3VyKS5taW51dGUobWludXRlKS5zZWNvbmQoc2Vjb25kKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRDYWxlbmRhci5tb250aC5ob3VyKGhvdXIpLm1pbnV0ZShtaW51dGUpLnNlY29uZChzZWNvbmQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNhbGVuZGFyKCdsZWZ0Jyk7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ2FsZW5kYXIoJ3JpZ2h0Jyk7XHJcblxyXG4gICAgICAgICAgICAvL2hpZ2hsaWdodCBhbnkgcHJlZGVmaW5lZCByYW5nZSBtYXRjaGluZyB0aGUgY3VycmVudCBzdGFydCBhbmQgZW5kIGRhdGVzXHJcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmZpbmQoJy5yYW5nZXMgbGknKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmVuZERhdGUgPT0gbnVsbCkgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVDaG9zZW5MYWJlbCgpO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHJlbmRlckNhbGVuZGFyOiBmdW5jdGlvbihzaWRlKSB7XHJcblxyXG4gICAgICAgICAgICAvL1xyXG4gICAgICAgICAgICAvLyBCdWlsZCB0aGUgbWF0cml4IG9mIGRhdGVzIHRoYXQgd2lsbCBwb3B1bGF0ZSB0aGUgY2FsZW5kYXJcclxuICAgICAgICAgICAgLy9cclxuXHJcbiAgICAgICAgICAgIHZhciBjYWxlbmRhciA9IHNpZGUgPT0gJ2xlZnQnID8gdGhpcy5sZWZ0Q2FsZW5kYXIgOiB0aGlzLnJpZ2h0Q2FsZW5kYXI7XHJcbiAgICAgICAgICAgIHZhciBtb250aCA9IGNhbGVuZGFyLm1vbnRoLm1vbnRoKCk7XHJcbiAgICAgICAgICAgIHZhciB5ZWFyID0gY2FsZW5kYXIubW9udGgueWVhcigpO1xyXG4gICAgICAgICAgICB2YXIgaG91ciA9IGNhbGVuZGFyLm1vbnRoLmhvdXIoKTtcclxuICAgICAgICAgICAgdmFyIG1pbnV0ZSA9IGNhbGVuZGFyLm1vbnRoLm1pbnV0ZSgpO1xyXG4gICAgICAgICAgICB2YXIgc2Vjb25kID0gY2FsZW5kYXIubW9udGguc2Vjb25kKCk7XHJcbiAgICAgICAgICAgIHZhciBkYXlzSW5Nb250aCA9IG1vbWVudChbeWVhciwgbW9udGhdKS5kYXlzSW5Nb250aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlyc3REYXkgPSBtb21lbnQoW3llYXIsIG1vbnRoLCAxXSk7XHJcbiAgICAgICAgICAgIHZhciBsYXN0RGF5ID0gbW9tZW50KFt5ZWFyLCBtb250aCwgZGF5c0luTW9udGhdKTtcclxuICAgICAgICAgICAgdmFyIGxhc3RNb250aCA9IG1vbWVudChmaXJzdERheSkuc3VidHJhY3QoMSwgJ21vbnRoJykubW9udGgoKTtcclxuICAgICAgICAgICAgdmFyIGxhc3RZZWFyID0gbW9tZW50KGZpcnN0RGF5KS5zdWJ0cmFjdCgxLCAnbW9udGgnKS55ZWFyKCk7XHJcbiAgICAgICAgICAgIHZhciBkYXlzSW5MYXN0TW9udGggPSBtb21lbnQoW2xhc3RZZWFyLCBsYXN0TW9udGhdKS5kYXlzSW5Nb250aCgpO1xyXG4gICAgICAgICAgICB2YXIgZGF5T2ZXZWVrID0gZmlyc3REYXkuZGF5KCk7XHJcblxyXG4gICAgICAgICAgICAvL2luaXRpYWxpemUgYSA2IHJvd3MgeCA3IGNvbHVtbnMgYXJyYXkgZm9yIHRoZSBjYWxlbmRhclxyXG4gICAgICAgICAgICB2YXIgY2FsZW5kYXIgPSBbXTtcclxuICAgICAgICAgICAgY2FsZW5kYXIuZmlyc3REYXkgPSBmaXJzdERheTtcclxuICAgICAgICAgICAgY2FsZW5kYXIubGFzdERheSA9IGxhc3REYXk7XHJcblxyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDY7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY2FsZW5kYXJbaV0gPSBbXTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy9wb3B1bGF0ZSB0aGUgY2FsZW5kYXIgd2l0aCBkYXRlIG9iamVjdHNcclxuICAgICAgICAgICAgdmFyIHN0YXJ0RGF5ID0gZGF5c0luTGFzdE1vbnRoIC0gZGF5T2ZXZWVrICsgdGhpcy5sb2NhbGUuZmlyc3REYXkgKyAxO1xyXG4gICAgICAgICAgICBpZiAoc3RhcnREYXkgPiBkYXlzSW5MYXN0TW9udGgpXHJcbiAgICAgICAgICAgICAgICBzdGFydERheSAtPSA3O1xyXG5cclxuICAgICAgICAgICAgaWYgKGRheU9mV2VlayA9PSB0aGlzLmxvY2FsZS5maXJzdERheSlcclxuICAgICAgICAgICAgICAgIHN0YXJ0RGF5ID0gZGF5c0luTGFzdE1vbnRoIC0gNjtcclxuXHJcbiAgICAgICAgICAgIHZhciBjdXJEYXRlID0gbW9tZW50KFtsYXN0WWVhciwgbGFzdE1vbnRoLCBzdGFydERheSwgMTIsIG1pbnV0ZSwgc2Vjb25kXSk7XHJcblxyXG4gICAgICAgICAgICB2YXIgY29sLCByb3c7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBjb2wgPSAwLCByb3cgPSAwOyBpIDwgNDI7IGkrKywgY29sKyssIGN1ckRhdGUgPSBtb21lbnQoY3VyRGF0ZSkuYWRkKDI0LCAnaG91cicpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaSA+IDAgJiYgY29sICUgNyA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcm93Kys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYWxlbmRhcltyb3ddW2NvbF0gPSBjdXJEYXRlLmNsb25lKCkuaG91cihob3VyKS5taW51dGUobWludXRlKS5zZWNvbmQoc2Vjb25kKTtcclxuICAgICAgICAgICAgICAgIGN1ckRhdGUuaG91cigxMik7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWluRGF0ZSAmJiBjYWxlbmRhcltyb3ddW2NvbF0uZm9ybWF0KCdZWVlZLU1NLUREJykgPT0gdGhpcy5taW5EYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpICYmIGNhbGVuZGFyW3Jvd11bY29sXS5pc0JlZm9yZSh0aGlzLm1pbkRhdGUpICYmIHNpZGUgPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJbcm93XVtjb2xdID0gdGhpcy5taW5EYXRlLmNsb25lKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWF4RGF0ZSAmJiBjYWxlbmRhcltyb3ddW2NvbF0uZm9ybWF0KCdZWVlZLU1NLUREJykgPT0gdGhpcy5tYXhEYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpICYmIGNhbGVuZGFyW3Jvd11bY29sXS5pc0FmdGVyKHRoaXMubWF4RGF0ZSkgJiYgc2lkZSA9PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJbcm93XVtjb2xdID0gdGhpcy5tYXhEYXRlLmNsb25lKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL21ha2UgdGhlIGNhbGVuZGFyIG9iamVjdCBhdmFpbGFibGUgdG8gaG92ZXJEYXRlL2NsaWNrRGF0ZVxyXG4gICAgICAgICAgICBpZiAoc2lkZSA9PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdENhbGVuZGFyLmNhbGVuZGFyID0gY2FsZW5kYXI7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0Q2FsZW5kYXIuY2FsZW5kYXIgPSBjYWxlbmRhcjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy9cclxuICAgICAgICAgICAgLy8gRGlzcGxheSB0aGUgY2FsZW5kYXJcclxuICAgICAgICAgICAgLy9cclxuXHJcbiAgICAgICAgICAgIHZhciBtaW5EYXRlID0gc2lkZSA9PSAnbGVmdCcgPyB0aGlzLm1pbkRhdGUgOiB0aGlzLnN0YXJ0RGF0ZTtcclxuICAgICAgICAgICAgdmFyIG1heERhdGUgPSB0aGlzLm1heERhdGU7XHJcbiAgICAgICAgICAgIHZhciBzZWxlY3RlZCA9IHNpZGUgPT0gJ2xlZnQnID8gdGhpcy5zdGFydERhdGUgOiB0aGlzLmVuZERhdGU7XHJcbiAgICAgICAgICAgIHZhciBhcnJvdyA9IHRoaXMubG9jYWxlLmRpcmVjdGlvbiA9PSAnbHRyJyA/IHtsZWZ0OiAnY2hldnJvbi1sZWZ0JywgcmlnaHQ6ICdjaGV2cm9uLXJpZ2h0J30gOiB7bGVmdDogJ2NoZXZyb24tcmlnaHQnLCByaWdodDogJ2NoZXZyb24tbGVmdCd9O1xyXG5cclxuICAgICAgICAgICAgdmFyIGh0bWwgPSAnPHRhYmxlIGNsYXNzPVwidGFibGUtY29uZGVuc2VkXCI+JztcclxuICAgICAgICAgICAgaHRtbCArPSAnPHRoZWFkPic7XHJcbiAgICAgICAgICAgIGh0bWwgKz0gJzx0cj4nO1xyXG5cclxuICAgICAgICAgICAgLy8gYWRkIGVtcHR5IGNlbGwgZm9yIHdlZWsgbnVtYmVyXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNob3dXZWVrTnVtYmVycyB8fCB0aGlzLnNob3dJU09XZWVrTnVtYmVycylcclxuICAgICAgICAgICAgICAgIGh0bWwgKz0gJzx0aD48L3RoPic7XHJcblxyXG4gICAgICAgICAgICBpZiAoKCFtaW5EYXRlIHx8IG1pbkRhdGUuaXNCZWZvcmUoY2FsZW5kYXIuZmlyc3REYXkpKSAmJiAoIXRoaXMubGlua2VkQ2FsZW5kYXJzIHx8IHNpZGUgPT0gJ2xlZnQnKSkge1xyXG4gICAgICAgICAgICAgICAgaHRtbCArPSAnPHRoIGNsYXNzPVwicHJldiBhdmFpbGFibGVcIj48c3Bhbj48L3NwYW4+PC90aD4nO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaHRtbCArPSAnPHRoPjwvdGg+JztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdmFyIGRhdGVIdG1sID0gdGhpcy5sb2NhbGUubW9udGhOYW1lc1tjYWxlbmRhclsxXVsxXS5tb250aCgpXSArIGNhbGVuZGFyWzFdWzFdLmZvcm1hdChcIiBZWVlZXCIpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuc2hvd0Ryb3Bkb3ducykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRNb250aCA9IGNhbGVuZGFyWzFdWzFdLm1vbnRoKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgY3VycmVudFllYXIgPSBjYWxlbmRhclsxXVsxXS55ZWFyKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgbWF4WWVhciA9IChtYXhEYXRlICYmIG1heERhdGUueWVhcigpKSB8fCAodGhpcy5tYXhZZWFyKTtcclxuICAgICAgICAgICAgICAgIHZhciBtaW5ZZWFyID0gKG1pbkRhdGUgJiYgbWluRGF0ZS55ZWFyKCkpIHx8ICh0aGlzLm1pblllYXIpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGluTWluWWVhciA9IGN1cnJlbnRZZWFyID09IG1pblllYXI7XHJcbiAgICAgICAgICAgICAgICB2YXIgaW5NYXhZZWFyID0gY3VycmVudFllYXIgPT0gbWF4WWVhcjtcclxuXHJcbiAgICAgICAgICAgICAgICB2YXIgbW9udGhIdG1sID0gJzxzZWxlY3QgY2xhc3M9XCJtb250aHNlbGVjdFwiPic7XHJcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBtID0gMDsgbSA8IDEyOyBtKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoKCFpbk1pblllYXIgfHwgKG1pbkRhdGUgJiYgbSA+PSBtaW5EYXRlLm1vbnRoKCkpKSAmJiAoIWluTWF4WWVhciB8fCAobWF4RGF0ZSAmJiBtIDw9IG1heERhdGUubW9udGgoKSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoSHRtbCArPSBcIjxvcHRpb24gdmFsdWU9J1wiICsgbSArIFwiJ1wiICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtID09PSBjdXJyZW50TW9udGggPyBcIiBzZWxlY3RlZD0nc2VsZWN0ZWQnXCIgOiBcIlwiKSArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIj5cIiArIHRoaXMubG9jYWxlLm1vbnRoTmFtZXNbbV0gKyBcIjwvb3B0aW9uPlwiO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoSHRtbCArPSBcIjxvcHRpb24gdmFsdWU9J1wiICsgbSArIFwiJ1wiICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtID09PSBjdXJyZW50TW9udGggPyBcIiBzZWxlY3RlZD0nc2VsZWN0ZWQnXCIgOiBcIlwiKSArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBkaXNhYmxlZD0nZGlzYWJsZWQnPlwiICsgdGhpcy5sb2NhbGUubW9udGhOYW1lc1ttXSArIFwiPC9vcHRpb24+XCI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgbW9udGhIdG1sICs9IFwiPC9zZWxlY3Q+XCI7XHJcblxyXG4gICAgICAgICAgICAgICAgdmFyIHllYXJIdG1sID0gJzxzZWxlY3QgY2xhc3M9XCJ5ZWFyc2VsZWN0XCI+JztcclxuICAgICAgICAgICAgICAgIGZvciAodmFyIHkgPSBtaW5ZZWFyOyB5IDw9IG1heFllYXI7IHkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIHllYXJIdG1sICs9ICc8b3B0aW9uIHZhbHVlPVwiJyArIHkgKyAnXCInICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHkgPT09IGN1cnJlbnRZZWFyID8gJyBzZWxlY3RlZD1cInNlbGVjdGVkXCInIDogJycpICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJz4nICsgeSArICc8L29wdGlvbj4nO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgeWVhckh0bWwgKz0gJzwvc2VsZWN0Pic7XHJcblxyXG4gICAgICAgICAgICAgICAgZGF0ZUh0bWwgPSBtb250aEh0bWwgKyB5ZWFySHRtbDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaHRtbCArPSAnPHRoIGNvbHNwYW49XCI1XCIgY2xhc3M9XCJtb250aFwiPicgKyBkYXRlSHRtbCArICc8L3RoPic7XHJcbiAgICAgICAgICAgIGlmICgoIW1heERhdGUgfHwgbWF4RGF0ZS5pc0FmdGVyKGNhbGVuZGFyLmxhc3REYXkpKSAmJiAoIXRoaXMubGlua2VkQ2FsZW5kYXJzIHx8IHNpZGUgPT0gJ3JpZ2h0JyB8fCB0aGlzLnNpbmdsZURhdGVQaWNrZXIpKSB7XHJcbiAgICAgICAgICAgICAgICBodG1sICs9ICc8dGggY2xhc3M9XCJuZXh0IGF2YWlsYWJsZVwiPjxzcGFuPjwvc3Bhbj48L3RoPic7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBodG1sICs9ICc8dGg+PC90aD4nO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBodG1sICs9ICc8L3RyPic7XHJcbiAgICAgICAgICAgIGh0bWwgKz0gJzx0cj4nO1xyXG5cclxuICAgICAgICAgICAgLy8gYWRkIHdlZWsgbnVtYmVyIGxhYmVsXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNob3dXZWVrTnVtYmVycyB8fCB0aGlzLnNob3dJU09XZWVrTnVtYmVycylcclxuICAgICAgICAgICAgICAgIGh0bWwgKz0gJzx0aCBjbGFzcz1cIndlZWtcIj4nICsgdGhpcy5sb2NhbGUud2Vla0xhYmVsICsgJzwvdGg+JztcclxuXHJcbiAgICAgICAgICAgICQuZWFjaCh0aGlzLmxvY2FsZS5kYXlzT2ZXZWVrLCBmdW5jdGlvbihpbmRleCwgZGF5T2ZXZWVrKSB7XHJcbiAgICAgICAgICAgICAgICBodG1sICs9ICc8dGg+JyArIGRheU9mV2VlayArICc8L3RoPic7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgaHRtbCArPSAnPC90cj4nO1xyXG4gICAgICAgICAgICBodG1sICs9ICc8L3RoZWFkPic7XHJcbiAgICAgICAgICAgIGh0bWwgKz0gJzx0Ym9keT4nO1xyXG5cclxuICAgICAgICAgICAgLy9hZGp1c3QgbWF4RGF0ZSB0byByZWZsZWN0IHRoZSBtYXhTcGFuIHNldHRpbmcgaW4gb3JkZXIgdG9cclxuICAgICAgICAgICAgLy9ncmV5IG91dCBlbmQgZGF0ZXMgYmV5b25kIHRoZSBtYXhTcGFuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmVuZERhdGUgPT0gbnVsbCAmJiB0aGlzLm1heFNwYW4pIHtcclxuICAgICAgICAgICAgICAgIHZhciBtYXhMaW1pdCA9IHRoaXMuc3RhcnREYXRlLmNsb25lKCkuYWRkKHRoaXMubWF4U3BhbikuZW5kT2YoJ2RheScpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFtYXhEYXRlIHx8IG1heExpbWl0LmlzQmVmb3JlKG1heERhdGUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF4RGF0ZSA9IG1heExpbWl0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBmb3IgKHZhciByb3cgPSAwOyByb3cgPCA2OyByb3crKykge1xyXG4gICAgICAgICAgICAgICAgaHRtbCArPSAnPHRyPic7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gYWRkIHdlZWsgbnVtYmVyXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaG93V2Vla051bWJlcnMpXHJcbiAgICAgICAgICAgICAgICAgICAgaHRtbCArPSAnPHRkIGNsYXNzPVwid2Vla1wiPicgKyBjYWxlbmRhcltyb3ddWzBdLndlZWsoKSArICc8L3RkPic7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLnNob3dJU09XZWVrTnVtYmVycylcclxuICAgICAgICAgICAgICAgICAgICBodG1sICs9ICc8dGQgY2xhc3M9XCJ3ZWVrXCI+JyArIGNhbGVuZGFyW3Jvd11bMF0uaXNvV2VlaygpICsgJzwvdGQ+JztcclxuXHJcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBjb2wgPSAwOyBjb2wgPCA3OyBjb2wrKykge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB2YXIgY2xhc3NlcyA9IFtdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvL2hpZ2hsaWdodCB0b2RheSdzIGRhdGVcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY2FsZW5kYXJbcm93XVtjb2xdLmlzU2FtZShuZXcgRGF0ZSgpLCBcImRheVwiKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCd0b2RheScpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvL2hpZ2hsaWdodCB3ZWVrZW5kc1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjYWxlbmRhcltyb3ddW2NvbF0uaXNvV2Vla2RheSgpID4gNSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCd3ZWVrZW5kJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vZ3JleSBvdXQgdGhlIGRhdGVzIGluIG90aGVyIG1vbnRocyBkaXNwbGF5ZWQgYXQgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhpcyBjYWxlbmRhclxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjYWxlbmRhcltyb3ddW2NvbF0ubW9udGgoKSAhPSBjYWxlbmRhclsxXVsxXS5tb250aCgpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLnB1c2goJ29mZicsICdlbmRzJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vZG9uJ3QgYWxsb3cgc2VsZWN0aW9uIG9mIGRhdGVzIGJlZm9yZSB0aGUgbWluaW11bSBkYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWluRGF0ZSAmJiBjYWxlbmRhcltyb3ddW2NvbF0uaXNCZWZvcmUodGhpcy5taW5EYXRlLCAnZGF5JykpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnb2ZmJywgJ2Rpc2FibGVkJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vZG9uJ3QgYWxsb3cgc2VsZWN0aW9uIG9mIGRhdGVzIGFmdGVyIHRoZSBtYXhpbXVtIGRhdGVcclxuICAgICAgICAgICAgICAgICAgICBpZiAobWF4RGF0ZSAmJiBjYWxlbmRhcltyb3ddW2NvbF0uaXNBZnRlcihtYXhEYXRlLCAnZGF5JykpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnb2ZmJywgJ2Rpc2FibGVkJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vZG9uJ3QgYWxsb3cgc2VsZWN0aW9uIG9mIGRhdGUgaWYgYSBjdXN0b20gZnVuY3Rpb24gZGVjaWRlcyBpdCdzIGludmFsaWRcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0ludmFsaWREYXRlKGNhbGVuZGFyW3Jvd11bY29sXSkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnb2ZmJywgJ2Rpc2FibGVkJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vaGlnaGxpZ2h0IHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgc3RhcnQgZGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjYWxlbmRhcltyb3ddW2NvbF0uZm9ybWF0KCdZWVlZLU1NLUREJykgPT0gdGhpcy5zdGFydERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJykpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnYWN0aXZlJywgJ3N0YXJ0LWRhdGUnKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy9oaWdobGlnaHQgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBlbmQgZGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmVuZERhdGUgIT0gbnVsbCAmJiBjYWxlbmRhcltyb3ddW2NvbF0uZm9ybWF0KCdZWVlZLU1NLUREJykgPT0gdGhpcy5lbmREYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLnB1c2goJ2FjdGl2ZScsICdlbmQtZGF0ZScpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvL2hpZ2hsaWdodCBkYXRlcyBpbi1iZXR3ZWVuIHRoZSBzZWxlY3RlZCBkYXRlc1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmVuZERhdGUgIT0gbnVsbCAmJiBjYWxlbmRhcltyb3ddW2NvbF0gPiB0aGlzLnN0YXJ0RGF0ZSAmJiBjYWxlbmRhcltyb3ddW2NvbF0gPCB0aGlzLmVuZERhdGUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnaW4tcmFuZ2UnKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy9hcHBseSBjdXN0b20gY2xhc3NlcyBmb3IgdGhpcyBkYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlzQ3VzdG9tID0gdGhpcy5pc0N1c3RvbURhdGUoY2FsZW5kYXJbcm93XVtjb2xdKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNDdXN0b20gIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaXNDdXN0b20gPT09ICdzdHJpbmcnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKGlzQ3VzdG9tKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoY2xhc3NlcywgaXNDdXN0b20pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNuYW1lID0gJycsIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjbGFzc2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNuYW1lICs9IGNsYXNzZXNbaV0gKyAnICc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjbGFzc2VzW2ldID09ICdkaXNhYmxlZCcpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghZGlzYWJsZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNuYW1lICs9ICdhdmFpbGFibGUnO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBodG1sICs9ICc8dGQgY2xhc3M9XCInICsgY25hbWUucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpICsgJ1wiIGRhdGEtdGl0bGU9XCInICsgJ3InICsgcm93ICsgJ2MnICsgY29sICsgJ1wiPicgKyBjYWxlbmRhcltyb3ddW2NvbF0uZGF0ZSgpICsgJzwvdGQ+JztcclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBodG1sICs9ICc8L3RyPic7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGh0bWwgKz0gJzwvdGJvZHk+JztcclxuICAgICAgICAgICAgaHRtbCArPSAnPC90YWJsZT4nO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuZmluZCgnLmRycC1jYWxlbmRhci4nICsgc2lkZSArICcgLmNhbGVuZGFyLXRhYmxlJykuaHRtbChodG1sKTtcclxuXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgcmVuZGVyVGltZVBpY2tlcjogZnVuY3Rpb24oc2lkZSkge1xyXG5cclxuICAgICAgICAgICAgLy8gRG9uJ3QgYm90aGVyIHVwZGF0aW5nIHRoZSB0aW1lIHBpY2tlciBpZiBpdCdzIGN1cnJlbnRseSBkaXNhYmxlZFxyXG4gICAgICAgICAgICAvLyBiZWNhdXNlIGFuIGVuZCBkYXRlIGhhc24ndCBiZWVuIGNsaWNrZWQgeWV0XHJcbiAgICAgICAgICAgIGlmIChzaWRlID09ICdyaWdodCcgJiYgIXRoaXMuZW5kRGF0ZSkgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgdmFyIGh0bWwsIHNlbGVjdGVkLCBtaW5EYXRlLCBtYXhEYXRlID0gdGhpcy5tYXhEYXRlO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubWF4U3BhbiAmJiAoIXRoaXMubWF4RGF0ZSB8fCB0aGlzLnN0YXJ0RGF0ZS5jbG9uZSgpLmFkZCh0aGlzLm1heFNwYW4pLmlzQmVmb3JlKHRoaXMubWF4RGF0ZSkpKVxyXG4gICAgICAgICAgICAgICAgbWF4RGF0ZSA9IHRoaXMuc3RhcnREYXRlLmNsb25lKCkuYWRkKHRoaXMubWF4U3Bhbik7XHJcblxyXG4gICAgICAgICAgICBpZiAoc2lkZSA9PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkID0gdGhpcy5zdGFydERhdGUuY2xvbmUoKTtcclxuICAgICAgICAgICAgICAgIG1pbkRhdGUgPSB0aGlzLm1pbkRhdGU7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2lkZSA9PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZCA9IHRoaXMuZW5kRGF0ZS5jbG9uZSgpO1xyXG4gICAgICAgICAgICAgICAgbWluRGF0ZSA9IHRoaXMuc3RhcnREYXRlO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vUHJlc2VydmUgdGhlIHRpbWUgYWxyZWFkeSBzZWxlY3RlZFxyXG4gICAgICAgICAgICAgICAgdmFyIHRpbWVTZWxlY3RvciA9IHRoaXMuY29udGFpbmVyLmZpbmQoJy5kcnAtY2FsZW5kYXIucmlnaHQgLmNhbGVuZGFyLXRpbWUnKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aW1lU2VsZWN0b3IuaHRtbCgpICE9ICcnKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLmhvdXIoIWlzTmFOKHNlbGVjdGVkLmhvdXIoKSkgPyBzZWxlY3RlZC5ob3VyKCkgOiB0aW1lU2VsZWN0b3IuZmluZCgnLmhvdXJzZWxlY3Qgb3B0aW9uOnNlbGVjdGVkJykudmFsKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLm1pbnV0ZSghaXNOYU4oc2VsZWN0ZWQubWludXRlKCkpID8gc2VsZWN0ZWQubWludXRlKCkgOiB0aW1lU2VsZWN0b3IuZmluZCgnLm1pbnV0ZXNlbGVjdCBvcHRpb246c2VsZWN0ZWQnKS52YWwoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQuc2Vjb25kKCFpc05hTihzZWxlY3RlZC5zZWNvbmQoKSkgPyBzZWxlY3RlZC5zZWNvbmQoKSA6IHRpbWVTZWxlY3Rvci5maW5kKCcuc2Vjb25kc2VsZWN0IG9wdGlvbjpzZWxlY3RlZCcpLnZhbCgpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRpbWVQaWNrZXIyNEhvdXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFtcG0gPSB0aW1lU2VsZWN0b3IuZmluZCgnLmFtcG1zZWxlY3Qgb3B0aW9uOnNlbGVjdGVkJykudmFsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbXBtID09PSAnUE0nICYmIHNlbGVjdGVkLmhvdXIoKSA8IDEyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQuaG91cihzZWxlY3RlZC5ob3VyKCkgKyAxMik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbXBtID09PSAnQU0nICYmIHNlbGVjdGVkLmhvdXIoKSA9PT0gMTIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZC5ob3VyKDApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkLmlzQmVmb3JlKHRoaXMuc3RhcnREYXRlKSlcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCA9IHRoaXMuc3RhcnREYXRlLmNsb25lKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKG1heERhdGUgJiYgc2VsZWN0ZWQuaXNBZnRlcihtYXhEYXRlKSlcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCA9IG1heERhdGUuY2xvbmUoKTtcclxuXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vXHJcbiAgICAgICAgICAgIC8vIGhvdXJzXHJcbiAgICAgICAgICAgIC8vXHJcblxyXG4gICAgICAgICAgICBodG1sID0gJzxzZWxlY3QgY2xhc3M9XCJob3Vyc2VsZWN0XCI+JztcclxuXHJcbiAgICAgICAgICAgIHZhciBzdGFydCA9IHRoaXMudGltZVBpY2tlcjI0SG91ciA/IDAgOiAxO1xyXG4gICAgICAgICAgICB2YXIgZW5kID0gdGhpcy50aW1lUGlja2VyMjRIb3VyID8gMjMgOiAxMjtcclxuXHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSBzdGFydDsgaSA8PSBlbmQ7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGlfaW5fMjQgPSBpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRpbWVQaWNrZXIyNEhvdXIpXHJcbiAgICAgICAgICAgICAgICAgICAgaV9pbl8yNCA9IHNlbGVjdGVkLmhvdXIoKSA+PSAxMiA/IChpID09IDEyID8gMTIgOiBpICsgMTIpIDogKGkgPT0gMTIgPyAwIDogaSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdmFyIHRpbWUgPSBzZWxlY3RlZC5jbG9uZSgpLmhvdXIoaV9pbl8yNCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGlmIChtaW5EYXRlICYmIHRpbWUubWludXRlKDU5KS5pc0JlZm9yZShtaW5EYXRlKSlcclxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZiAobWF4RGF0ZSAmJiB0aW1lLm1pbnV0ZSgwKS5pc0FmdGVyKG1heERhdGUpKVxyXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoaV9pbl8yNCA9PSBzZWxlY3RlZC5ob3VyKCkgJiYgIWRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaHRtbCArPSAnPG9wdGlvbiB2YWx1ZT1cIicgKyBpICsgJ1wiIHNlbGVjdGVkPVwic2VsZWN0ZWRcIj4nICsgaSArICc8L29wdGlvbj4nO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxvcHRpb24gdmFsdWU9XCInICsgaSArICdcIiBkaXNhYmxlZD1cImRpc2FibGVkXCIgY2xhc3M9XCJkaXNhYmxlZFwiPicgKyBpICsgJzwvb3B0aW9uPic7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxvcHRpb24gdmFsdWU9XCInICsgaSArICdcIj4nICsgaSArICc8L29wdGlvbj4nO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBodG1sICs9ICc8L3NlbGVjdD4gJztcclxuXHJcbiAgICAgICAgICAgIC8vXHJcbiAgICAgICAgICAgIC8vIG1pbnV0ZXNcclxuICAgICAgICAgICAgLy9cclxuXHJcbiAgICAgICAgICAgIGh0bWwgKz0gJzogPHNlbGVjdCBjbGFzcz1cIm1pbnV0ZXNlbGVjdFwiPic7XHJcblxyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDYwOyBpICs9IHRoaXMudGltZVBpY2tlckluY3JlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHBhZGRlZCA9IGkgPCAxMCA/ICcwJyArIGkgOiBpO1xyXG4gICAgICAgICAgICAgICAgdmFyIHRpbWUgPSBzZWxlY3RlZC5jbG9uZSgpLm1pbnV0ZShpKTtcclxuXHJcbiAgICAgICAgICAgICAgICB2YXIgZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGlmIChtaW5EYXRlICYmIHRpbWUuc2Vjb25kKDU5KS5pc0JlZm9yZShtaW5EYXRlKSlcclxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZiAobWF4RGF0ZSAmJiB0aW1lLnNlY29uZCgwKS5pc0FmdGVyKG1heERhdGUpKVxyXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWQubWludXRlKCkgPT0gaSAmJiAhZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBodG1sICs9ICc8b3B0aW9uIHZhbHVlPVwiJyArIGkgKyAnXCIgc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiPicgKyBwYWRkZWQgKyAnPC9vcHRpb24+JztcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBodG1sICs9ICc8b3B0aW9uIHZhbHVlPVwiJyArIGkgKyAnXCIgZGlzYWJsZWQ9XCJkaXNhYmxlZFwiIGNsYXNzPVwiZGlzYWJsZWRcIj4nICsgcGFkZGVkICsgJzwvb3B0aW9uPic7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxvcHRpb24gdmFsdWU9XCInICsgaSArICdcIj4nICsgcGFkZGVkICsgJzwvb3B0aW9uPic7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGh0bWwgKz0gJzwvc2VsZWN0PiAnO1xyXG5cclxuICAgICAgICAgICAgLy9cclxuICAgICAgICAgICAgLy8gc2Vjb25kc1xyXG4gICAgICAgICAgICAvL1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMudGltZVBpY2tlclNlY29uZHMpIHtcclxuICAgICAgICAgICAgICAgIGh0bWwgKz0gJzogPHNlbGVjdCBjbGFzcz1cInNlY29uZHNlbGVjdFwiPic7XHJcblxyXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA2MDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBhZGRlZCA9IGkgPCAxMCA/ICcwJyArIGkgOiBpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0aW1lID0gc2VsZWN0ZWQuY2xvbmUoKS5zZWNvbmQoaSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHZhciBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtaW5EYXRlICYmIHRpbWUuaXNCZWZvcmUobWluRGF0ZSkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobWF4RGF0ZSAmJiB0aW1lLmlzQWZ0ZXIobWF4RGF0ZSkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkLnNlY29uZCgpID09IGkgJiYgIWRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxvcHRpb24gdmFsdWU9XCInICsgaSArICdcIiBzZWxlY3RlZD1cInNlbGVjdGVkXCI+JyArIHBhZGRlZCArICc8L29wdGlvbj4nO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCArPSAnPG9wdGlvbiB2YWx1ZT1cIicgKyBpICsgJ1wiIGRpc2FibGVkPVwiZGlzYWJsZWRcIiBjbGFzcz1cImRpc2FibGVkXCI+JyArIHBhZGRlZCArICc8L29wdGlvbj4nO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxvcHRpb24gdmFsdWU9XCInICsgaSArICdcIj4nICsgcGFkZGVkICsgJzwvb3B0aW9uPic7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGh0bWwgKz0gJzwvc2VsZWN0PiAnO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL1xyXG4gICAgICAgICAgICAvLyBBTS9QTVxyXG4gICAgICAgICAgICAvL1xyXG5cclxuICAgICAgICAgICAgaWYgKCF0aGlzLnRpbWVQaWNrZXIyNEhvdXIpIHtcclxuICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxzZWxlY3QgY2xhc3M9XCJhbXBtc2VsZWN0XCI+JztcclxuXHJcbiAgICAgICAgICAgICAgICB2YXIgYW1faHRtbCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgdmFyIHBtX2h0bWwgPSAnJztcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAobWluRGF0ZSAmJiBzZWxlY3RlZC5jbG9uZSgpLmhvdXIoMTIpLm1pbnV0ZSgwKS5zZWNvbmQoMCkuaXNCZWZvcmUobWluRGF0ZSkpXHJcbiAgICAgICAgICAgICAgICAgICAgYW1faHRtbCA9ICcgZGlzYWJsZWQ9XCJkaXNhYmxlZFwiIGNsYXNzPVwiZGlzYWJsZWRcIic7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKG1heERhdGUgJiYgc2VsZWN0ZWQuY2xvbmUoKS5ob3VyKDApLm1pbnV0ZSgwKS5zZWNvbmQoMCkuaXNBZnRlcihtYXhEYXRlKSlcclxuICAgICAgICAgICAgICAgICAgICBwbV9odG1sID0gJyBkaXNhYmxlZD1cImRpc2FibGVkXCIgY2xhc3M9XCJkaXNhYmxlZFwiJztcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWQuaG91cigpID49IDEyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaHRtbCArPSAnPG9wdGlvbiB2YWx1ZT1cIkFNXCInICsgYW1faHRtbCArICc+QU08L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiUE1cIiBzZWxlY3RlZD1cInNlbGVjdGVkXCInICsgcG1faHRtbCArICc+UE08L29wdGlvbj4nO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBodG1sICs9ICc8b3B0aW9uIHZhbHVlPVwiQU1cIiBzZWxlY3RlZD1cInNlbGVjdGVkXCInICsgYW1faHRtbCArICc+QU08L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiUE1cIicgKyBwbV9odG1sICsgJz5QTTwvb3B0aW9uPic7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaHRtbCArPSAnPC9zZWxlY3Q+JztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuZmluZCgnLmRycC1jYWxlbmRhci4nICsgc2lkZSArICcgLmNhbGVuZGFyLXRpbWUnKS5odG1sKGh0bWwpO1xyXG5cclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICB1cGRhdGVGb3JtSW5wdXRzOiBmdW5jdGlvbigpIHtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNpbmdsZURhdGVQaWNrZXIgfHwgKHRoaXMuZW5kRGF0ZSAmJiAodGhpcy5zdGFydERhdGUuaXNCZWZvcmUodGhpcy5lbmREYXRlKSB8fCB0aGlzLnN0YXJ0RGF0ZS5pc1NhbWUodGhpcy5lbmREYXRlKSkpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5maW5kKCdidXR0b24uYXBwbHlCdG4nKS5wcm9wKCdkaXNhYmxlZCcsIGZhbHNlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmZpbmQoJ2J1dHRvbi5hcHBseUJ0bicpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgbW92ZTogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIHZhciBwYXJlbnRPZmZzZXQgPSB7IHRvcDogMCwgbGVmdDogMCB9LFxyXG4gICAgICAgICAgICAgICAgY29udGFpbmVyVG9wLFxyXG4gICAgICAgICAgICAgICAgZHJvcHMgPSB0aGlzLmRyb3BzO1xyXG5cclxuICAgICAgICAgICAgdmFyIHBhcmVudFJpZ2h0RWRnZSA9ICQod2luZG93KS53aWR0aCgpO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMucGFyZW50RWwuaXMoJ2JvZHknKSkge1xyXG4gICAgICAgICAgICAgICAgcGFyZW50T2Zmc2V0ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogdGhpcy5wYXJlbnRFbC5vZmZzZXQoKS50b3AgLSB0aGlzLnBhcmVudEVsLnNjcm9sbFRvcCgpLFxyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IHRoaXMucGFyZW50RWwub2Zmc2V0KCkubGVmdCAtIHRoaXMucGFyZW50RWwuc2Nyb2xsTGVmdCgpXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgcGFyZW50UmlnaHRFZGdlID0gdGhpcy5wYXJlbnRFbFswXS5jbGllbnRXaWR0aCArIHRoaXMucGFyZW50RWwub2Zmc2V0KCkubGVmdDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc3dpdGNoIChkcm9wcykge1xyXG4gICAgICAgICAgICBjYXNlICdhdXRvJzpcclxuICAgICAgICAgICAgICAgIGNvbnRhaW5lclRvcCA9IHRoaXMuZWxlbWVudC5vZmZzZXQoKS50b3AgKyB0aGlzLmVsZW1lbnQub3V0ZXJIZWlnaHQoKSAtIHBhcmVudE9mZnNldC50b3A7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29udGFpbmVyVG9wICsgdGhpcy5jb250YWluZXIub3V0ZXJIZWlnaHQoKSA+PSB0aGlzLnBhcmVudEVsWzBdLnNjcm9sbEhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclRvcCA9IHRoaXMuZWxlbWVudC5vZmZzZXQoKS50b3AgLSB0aGlzLmNvbnRhaW5lci5vdXRlckhlaWdodCgpIC0gcGFyZW50T2Zmc2V0LnRvcDtcclxuICAgICAgICAgICAgICAgICAgICBkcm9wcyA9ICd1cCc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAndXAnOlxyXG4gICAgICAgICAgICAgICAgY29udGFpbmVyVG9wID0gdGhpcy5lbGVtZW50Lm9mZnNldCgpLnRvcCAtIHRoaXMuY29udGFpbmVyLm91dGVySGVpZ2h0KCkgLSBwYXJlbnRPZmZzZXQudG9wO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb250YWluZXJUb3AgPSB0aGlzLmVsZW1lbnQub2Zmc2V0KCkudG9wICsgdGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCkgLSBwYXJlbnRPZmZzZXQudG9wO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIEZvcmNlIHRoZSBjb250YWluZXIgdG8gaXQncyBhY3R1YWwgd2lkdGhcclxuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuY3NzKHtcclxuICAgICAgICAgICAgICB0b3A6IDAsXHJcbiAgICAgICAgICAgICAgbGVmdDogMCxcclxuICAgICAgICAgICAgICByaWdodDogJ2F1dG8nXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB2YXIgY29udGFpbmVyV2lkdGggPSB0aGlzLmNvbnRhaW5lci5vdXRlcldpZHRoKCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci50b2dnbGVDbGFzcygnZHJvcC11cCcsIGRyb3BzID09ICd1cCcpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMub3BlbnMgPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgY29udGFpbmVyUmlnaHQgPSBwYXJlbnRSaWdodEVkZ2UgLSB0aGlzLmVsZW1lbnQub2Zmc2V0KCkubGVmdCAtIHRoaXMuZWxlbWVudC5vdXRlcldpZHRoKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29udGFpbmVyV2lkdGggKyBjb250YWluZXJSaWdodCA+ICQod2luZG93KS53aWR0aCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIuY3NzKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBjb250YWluZXJUb3AsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAnYXV0bycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDlcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIuY3NzKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBjb250YWluZXJUb3AsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBjb250YWluZXJSaWdodCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogJ2F1dG8nXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5vcGVucyA9PSAnY2VudGVyJykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGNvbnRhaW5lckxlZnQgPSB0aGlzLmVsZW1lbnQub2Zmc2V0KCkubGVmdCAtIHBhcmVudE9mZnNldC5sZWZ0ICsgdGhpcy5lbGVtZW50Lm91dGVyV2lkdGgoKSAvIDJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gY29udGFpbmVyV2lkdGggLyAyO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lckxlZnQgPCAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIuY3NzKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBjb250YWluZXJUb3AsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAnYXV0bycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDlcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udGFpbmVyTGVmdCArIGNvbnRhaW5lcldpZHRoID4gJCh3aW5kb3cpLndpZHRoKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5jc3Moe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGNvbnRhaW5lclRvcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogJ2F1dG8nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5jc3Moe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGNvbnRhaW5lclRvcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogY29udGFpbmVyTGVmdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICdhdXRvJ1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdmFyIGNvbnRhaW5lckxlZnQgPSB0aGlzLmVsZW1lbnQub2Zmc2V0KCkubGVmdCAtIHBhcmVudE9mZnNldC5sZWZ0O1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lckxlZnQgKyBjb250YWluZXJXaWR0aCA+ICQod2luZG93KS53aWR0aCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIuY3NzKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBjb250YWluZXJUb3AsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6ICdhdXRvJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDBcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIuY3NzKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBjb250YWluZXJUb3AsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IGNvbnRhaW5lckxlZnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAnYXV0bydcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNob3c6IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNTaG93aW5nKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgICAvLyBDcmVhdGUgYSBjbGljayBwcm94eSB0aGF0IGlzIHByaXZhdGUgdG8gdGhpcyBpbnN0YW5jZSBvZiBkYXRlcGlja2VyLCBmb3IgdW5iaW5kaW5nXHJcbiAgICAgICAgICAgIHRoaXMuX291dHNpZGVDbGlja1Byb3h5ID0gJC5wcm94eShmdW5jdGlvbihlKSB7IHRoaXMub3V0c2lkZUNsaWNrKGUpOyB9LCB0aGlzKTtcclxuXHJcbiAgICAgICAgICAgIC8vIEJpbmQgZ2xvYmFsIGRhdGVwaWNrZXIgbW91c2Vkb3duIGZvciBoaWRpbmcgYW5kXHJcbiAgICAgICAgICAgICQoZG9jdW1lbnQpXHJcbiAgICAgICAgICAgICAgLm9uKCdtb3VzZWRvd24uZGF0ZXJhbmdlcGlja2VyJywgdGhpcy5fb3V0c2lkZUNsaWNrUHJveHkpXHJcbiAgICAgICAgICAgICAgLy8gYWxzbyBzdXBwb3J0IG1vYmlsZSBkZXZpY2VzXHJcbiAgICAgICAgICAgICAgLm9uKCd0b3VjaGVuZC5kYXRlcmFuZ2VwaWNrZXInLCB0aGlzLl9vdXRzaWRlQ2xpY2tQcm94eSlcclxuICAgICAgICAgICAgICAvLyBhbHNvIGV4cGxpY2l0bHkgcGxheSBuaWNlIHdpdGggQm9vdHN0cmFwIGRyb3Bkb3ducywgd2hpY2ggc3RvcFByb3BhZ2F0aW9uIHdoZW4gY2xpY2tpbmcgdGhlbVxyXG4gICAgICAgICAgICAgIC5vbignY2xpY2suZGF0ZXJhbmdlcGlja2VyJywgJ1tkYXRhLXRvZ2dsZT1kcm9wZG93bl0nLCB0aGlzLl9vdXRzaWRlQ2xpY2tQcm94eSlcclxuICAgICAgICAgICAgICAvLyBhbmQgYWxzbyBjbG9zZSB3aGVuIGZvY3VzIGNoYW5nZXMgdG8gb3V0c2lkZSB0aGUgcGlja2VyIChlZy4gdGFiYmluZyBiZXR3ZWVuIGNvbnRyb2xzKVxyXG4gICAgICAgICAgICAgIC5vbignZm9jdXNpbi5kYXRlcmFuZ2VwaWNrZXInLCB0aGlzLl9vdXRzaWRlQ2xpY2tQcm94eSk7XHJcblxyXG4gICAgICAgICAgICAvLyBSZXBvc2l0aW9uIHRoZSBwaWNrZXIgaWYgdGhlIHdpbmRvdyBpcyByZXNpemVkIHdoaWxlIGl0J3Mgb3BlblxyXG4gICAgICAgICAgICAkKHdpbmRvdykub24oJ3Jlc2l6ZS5kYXRlcmFuZ2VwaWNrZXInLCAkLnByb3h5KGZ1bmN0aW9uKGUpIHsgdGhpcy5tb3ZlKGUpOyB9LCB0aGlzKSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLm9sZFN0YXJ0RGF0ZSA9IHRoaXMuc3RhcnREYXRlLmNsb25lKCk7XHJcbiAgICAgICAgICAgIHRoaXMub2xkRW5kRGF0ZSA9IHRoaXMuZW5kRGF0ZS5jbG9uZSgpO1xyXG4gICAgICAgICAgICB0aGlzLnByZXZpb3VzUmlnaHRUaW1lID0gdGhpcy5lbmREYXRlLmNsb25lKCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXcoKTtcclxuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuc2hvdygpO1xyXG4gICAgICAgICAgICB0aGlzLm1vdmUoKTtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50LnRyaWdnZXIoJ3Nob3cuZGF0ZXJhbmdlcGlja2VyJywgdGhpcyk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNTaG93aW5nID0gdHJ1ZTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBoaWRlOiBmdW5jdGlvbihlKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1Nob3dpbmcpIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgIC8vaW5jb21wbGV0ZSBkYXRlIHNlbGVjdGlvbiwgcmV2ZXJ0IHRvIGxhc3QgdmFsdWVzXHJcbiAgICAgICAgICAgIGlmICghdGhpcy5lbmREYXRlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9IHRoaXMub2xkU3RhcnREYXRlLmNsb25lKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVuZERhdGUgPSB0aGlzLm9sZEVuZERhdGUuY2xvbmUoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy9pZiBhIG5ldyBkYXRlIHJhbmdlIHdhcyBzZWxlY3RlZCwgaW52b2tlIHRoZSB1c2VyIGNhbGxiYWNrIGZ1bmN0aW9uXHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zdGFydERhdGUuaXNTYW1lKHRoaXMub2xkU3RhcnREYXRlKSB8fCAhdGhpcy5lbmREYXRlLmlzU2FtZSh0aGlzLm9sZEVuZERhdGUpKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jYWxsYmFjayh0aGlzLnN0YXJ0RGF0ZS5jbG9uZSgpLCB0aGlzLmVuZERhdGUuY2xvbmUoKSwgdGhpcy5jaG9zZW5MYWJlbCk7XHJcblxyXG4gICAgICAgICAgICAvL2lmIHBpY2tlciBpcyBhdHRhY2hlZCB0byBhIHRleHQgaW5wdXQsIHVwZGF0ZSBpdFxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUVsZW1lbnQoKTtcclxuXHJcbiAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZignLmRhdGVyYW5nZXBpY2tlcicpO1xyXG4gICAgICAgICAgICAkKHdpbmRvdykub2ZmKCcuZGF0ZXJhbmdlcGlja2VyJyk7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmhpZGUoKTtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50LnRyaWdnZXIoJ2hpZGUuZGF0ZXJhbmdlcGlja2VyJywgdGhpcyk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNTaG93aW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgdG9nZ2xlOiBmdW5jdGlvbihlKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzU2hvd2luZykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3coKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIG91dHNpZGVDbGljazogZnVuY3Rpb24oZSkge1xyXG4gICAgICAgICAgICB2YXIgdGFyZ2V0ID0gJChlLnRhcmdldCk7XHJcbiAgICAgICAgICAgIC8vIGlmIHRoZSBwYWdlIGlzIGNsaWNrZWQgYW55d2hlcmUgZXhjZXB0IHdpdGhpbiB0aGUgZGF0ZXJhbmdlcnBpY2tlci9idXR0b25cclxuICAgICAgICAgICAgLy8gaXRzZWxmIHRoZW4gY2FsbCB0aGlzLmhpZGUoKVxyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAvLyBpZSBtb2RhbCBkaWFsb2cgZml4XHJcbiAgICAgICAgICAgICAgICBlLnR5cGUgPT0gXCJmb2N1c2luXCIgfHxcclxuICAgICAgICAgICAgICAgIHRhcmdldC5jbG9zZXN0KHRoaXMuZWxlbWVudCkubGVuZ3RoIHx8XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuY2xvc2VzdCh0aGlzLmNvbnRhaW5lcikubGVuZ3RoIHx8XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuY2xvc2VzdCgnLmNhbGVuZGFyLXRhYmxlJykubGVuZ3RoXHJcbiAgICAgICAgICAgICAgICApIHJldHVybjtcclxuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC50cmlnZ2VyKCdvdXRzaWRlQ2xpY2suZGF0ZXJhbmdlcGlja2VyJywgdGhpcyk7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2hvd0NhbGVuZGFyczogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmFkZENsYXNzKCdzaG93LWNhbGVuZGFyJyk7XHJcbiAgICAgICAgICAgIHRoaXMubW92ZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQudHJpZ2dlcignc2hvd0NhbGVuZGFyLmRhdGVyYW5nZXBpY2tlcicsIHRoaXMpO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIGhpZGVDYWxlbmRhcnM6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5yZW1vdmVDbGFzcygnc2hvdy1jYWxlbmRhcicpO1xyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQudHJpZ2dlcignaGlkZUNhbGVuZGFyLmRhdGVyYW5nZXBpY2tlcicsIHRoaXMpO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIGNsaWNrUmFuZ2U6IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgICAgICAgdmFyIGxhYmVsID0gZS50YXJnZXQuZ2V0QXR0cmlidXRlKCdkYXRhLXJhbmdlLWtleScpO1xyXG4gICAgICAgICAgICB0aGlzLmNob3NlbkxhYmVsID0gbGFiZWw7XHJcbiAgICAgICAgICAgIGlmIChsYWJlbCA9PSB0aGlzLmxvY2FsZS5jdXN0b21SYW5nZUxhYmVsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dDYWxlbmRhcnMoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHZhciBkYXRlcyA9IHRoaXMucmFuZ2VzW2xhYmVsXTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlID0gZGF0ZXNbMF07XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVuZERhdGUgPSBkYXRlc1sxXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGltZVBpY2tlcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnN0YXJ0T2YoJ2RheScpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW5kRGF0ZS5lbmRPZignZGF5Jyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmFsd2F5c1Nob3dDYWxlbmRhcnMpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlQ2FsZW5kYXJzKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsaWNrQXBwbHkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIGNsaWNrUHJldjogZnVuY3Rpb24oZSkge1xyXG4gICAgICAgICAgICB2YXIgY2FsID0gJChlLnRhcmdldCkucGFyZW50cygnLmRycC1jYWxlbmRhcicpO1xyXG4gICAgICAgICAgICBpZiAoY2FsLmhhc0NsYXNzKCdsZWZ0JykpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoLnN1YnRyYWN0KDEsICdtb250aCcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGlua2VkQ2FsZW5kYXJzKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlnaHRDYWxlbmRhci5tb250aC5zdWJ0cmFjdCgxLCAnbW9udGgnKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRDYWxlbmRhci5tb250aC5zdWJ0cmFjdCgxLCAnbW9udGgnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFycygpO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIGNsaWNrTmV4dDogZnVuY3Rpb24oZSkge1xyXG4gICAgICAgICAgICB2YXIgY2FsID0gJChlLnRhcmdldCkucGFyZW50cygnLmRycC1jYWxlbmRhcicpO1xyXG4gICAgICAgICAgICBpZiAoY2FsLmhhc0NsYXNzKCdsZWZ0JykpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoLmFkZCgxLCAnbW9udGgnKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRDYWxlbmRhci5tb250aC5hZGQoMSwgJ21vbnRoJyk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5saW5rZWRDYWxlbmRhcnMpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGguYWRkKDEsICdtb250aCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJzKCk7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgaG92ZXJEYXRlOiBmdW5jdGlvbihlKSB7XHJcblxyXG4gICAgICAgICAgICAvL2lnbm9yZSBkYXRlcyB0aGF0IGNhbid0IGJlIHNlbGVjdGVkXHJcbiAgICAgICAgICAgIGlmICghJChlLnRhcmdldCkuaGFzQ2xhc3MoJ2F2YWlsYWJsZScpKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgICB2YXIgdGl0bGUgPSAkKGUudGFyZ2V0KS5hdHRyKCdkYXRhLXRpdGxlJyk7XHJcbiAgICAgICAgICAgIHZhciByb3cgPSB0aXRsZS5zdWJzdHIoMSwgMSk7XHJcbiAgICAgICAgICAgIHZhciBjb2wgPSB0aXRsZS5zdWJzdHIoMywgMSk7XHJcbiAgICAgICAgICAgIHZhciBjYWwgPSAkKGUudGFyZ2V0KS5wYXJlbnRzKCcuZHJwLWNhbGVuZGFyJyk7XHJcbiAgICAgICAgICAgIHZhciBkYXRlID0gY2FsLmhhc0NsYXNzKCdsZWZ0JykgPyB0aGlzLmxlZnRDYWxlbmRhci5jYWxlbmRhcltyb3ddW2NvbF0gOiB0aGlzLnJpZ2h0Q2FsZW5kYXIuY2FsZW5kYXJbcm93XVtjb2xdO1xyXG5cclxuICAgICAgICAgICAgLy9oaWdobGlnaHQgdGhlIGRhdGVzIGJldHdlZW4gdGhlIHN0YXJ0IGRhdGUgYW5kIHRoZSBkYXRlIGJlaW5nIGhvdmVyZWQgYXMgYSBwb3RlbnRpYWwgZW5kIGRhdGVcclxuICAgICAgICAgICAgdmFyIGxlZnRDYWxlbmRhciA9IHRoaXMubGVmdENhbGVuZGFyO1xyXG4gICAgICAgICAgICB2YXIgcmlnaHRDYWxlbmRhciA9IHRoaXMucmlnaHRDYWxlbmRhcjtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0RGF0ZSA9IHRoaXMuc3RhcnREYXRlO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuZW5kRGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIuZmluZCgnLmRycC1jYWxlbmRhciB0Ym9keSB0ZCcpLmVhY2goZnVuY3Rpb24oaW5kZXgsIGVsKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2tpcCB3ZWVrIG51bWJlcnMsIG9ubHkgbG9vayBhdCBkYXRlc1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgkKGVsKS5oYXNDbGFzcygnd2VlaycpKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9ICQoZWwpLmF0dHIoJ2RhdGEtdGl0bGUnKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcm93ID0gdGl0bGUuc3Vic3RyKDEsIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBjb2wgPSB0aXRsZS5zdWJzdHIoMywgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNhbCA9ICQoZWwpLnBhcmVudHMoJy5kcnAtY2FsZW5kYXInKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZHQgPSBjYWwuaGFzQ2xhc3MoJ2xlZnQnKSA/IGxlZnRDYWxlbmRhci5jYWxlbmRhcltyb3ddW2NvbF0gOiByaWdodENhbGVuZGFyLmNhbGVuZGFyW3Jvd11bY29sXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKChkdC5pc0FmdGVyKHN0YXJ0RGF0ZSkgJiYgZHQuaXNCZWZvcmUoZGF0ZSkpIHx8IGR0LmlzU2FtZShkYXRlLCAnZGF5JykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJChlbCkuYWRkQ2xhc3MoJ2luLXJhbmdlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJChlbCkucmVtb3ZlQ2xhc3MoJ2luLXJhbmdlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIGNsaWNrRGF0ZTogZnVuY3Rpb24oZSkge1xyXG5cclxuICAgICAgICAgICAgaWYgKCEkKGUudGFyZ2V0KS5oYXNDbGFzcygnYXZhaWxhYmxlJykpIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgIHZhciB0aXRsZSA9ICQoZS50YXJnZXQpLmF0dHIoJ2RhdGEtdGl0bGUnKTtcclxuICAgICAgICAgICAgdmFyIHJvdyA9IHRpdGxlLnN1YnN0cigxLCAxKTtcclxuICAgICAgICAgICAgdmFyIGNvbCA9IHRpdGxlLnN1YnN0cigzLCAxKTtcclxuICAgICAgICAgICAgdmFyIGNhbCA9ICQoZS50YXJnZXQpLnBhcmVudHMoJy5kcnAtY2FsZW5kYXInKTtcclxuICAgICAgICAgICAgdmFyIGRhdGUgPSBjYWwuaGFzQ2xhc3MoJ2xlZnQnKSA/IHRoaXMubGVmdENhbGVuZGFyLmNhbGVuZGFyW3Jvd11bY29sXSA6IHRoaXMucmlnaHRDYWxlbmRhci5jYWxlbmRhcltyb3ddW2NvbF07XHJcblxyXG4gICAgICAgICAgICAvL1xyXG4gICAgICAgICAgICAvLyB0aGlzIGZ1bmN0aW9uIG5lZWRzIHRvIGRvIGEgZmV3IHRoaW5nczpcclxuICAgICAgICAgICAgLy8gKiBhbHRlcm5hdGUgYmV0d2VlbiBzZWxlY3RpbmcgYSBzdGFydCBhbmQgZW5kIGRhdGUgZm9yIHRoZSByYW5nZSxcclxuICAgICAgICAgICAgLy8gKiBpZiB0aGUgdGltZSBwaWNrZXIgaXMgZW5hYmxlZCwgYXBwbHkgdGhlIGhvdXIvbWludXRlL3NlY29uZCBmcm9tIHRoZSBzZWxlY3QgYm94ZXMgdG8gdGhlIGNsaWNrZWQgZGF0ZVxyXG4gICAgICAgICAgICAvLyAqIGlmIGF1dG9hcHBseSBpcyBlbmFibGVkLCBhbmQgYW4gZW5kIGRhdGUgd2FzIGNob3NlbiwgYXBwbHkgdGhlIHNlbGVjdGlvblxyXG4gICAgICAgICAgICAvLyAqIGlmIHNpbmdsZSBkYXRlIHBpY2tlciBtb2RlLCBhbmQgdGltZSBwaWNrZXIgaXNuJ3QgZW5hYmxlZCwgYXBwbHkgdGhlIHNlbGVjdGlvbiBpbW1lZGlhdGVseVxyXG4gICAgICAgICAgICAvLyAqIGlmIG9uZSBvZiB0aGUgaW5wdXRzIGFib3ZlIHRoZSBjYWxlbmRhcnMgd2FzIGZvY3VzZWQsIGNhbmNlbCB0aGF0IG1hbnVhbCBpbnB1dFxyXG4gICAgICAgICAgICAvL1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZW5kRGF0ZSB8fCBkYXRlLmlzQmVmb3JlKHRoaXMuc3RhcnREYXRlLCAnZGF5JykpIHsgLy9waWNraW5nIHN0YXJ0XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50aW1lUGlja2VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGhvdXIgPSBwYXJzZUludCh0aGlzLmNvbnRhaW5lci5maW5kKCcubGVmdCAuaG91cnNlbGVjdCcpLnZhbCgpLCAxMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRpbWVQaWNrZXIyNEhvdXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFtcG0gPSB0aGlzLmNvbnRhaW5lci5maW5kKCcubGVmdCAuYW1wbXNlbGVjdCcpLnZhbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYW1wbSA9PT0gJ1BNJyAmJiBob3VyIDwgMTIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3VyICs9IDEyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYW1wbSA9PT0gJ0FNJyAmJiBob3VyID09PSAxMilcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB2YXIgbWludXRlID0gcGFyc2VJbnQodGhpcy5jb250YWluZXIuZmluZCgnLmxlZnQgLm1pbnV0ZXNlbGVjdCcpLnZhbCgpLCAxMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKG1pbnV0ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWludXRlID0gcGFyc2VJbnQodGhpcy5jb250YWluZXIuZmluZCgnLmxlZnQgLm1pbnV0ZXNlbGVjdCBvcHRpb246bGFzdCcpLnZhbCgpLCAxMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWNvbmQgPSB0aGlzLnRpbWVQaWNrZXJTZWNvbmRzID8gcGFyc2VJbnQodGhpcy5jb250YWluZXIuZmluZCgnLmxlZnQgLnNlY29uZHNlbGVjdCcpLnZhbCgpLCAxMCkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGUgPSBkYXRlLmNsb25lKCkuaG91cihob3VyKS5taW51dGUobWludXRlKS5zZWNvbmQoc2Vjb25kKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuZW5kRGF0ZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXJ0RGF0ZShkYXRlLmNsb25lKCkpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmVuZERhdGUgJiYgZGF0ZS5pc0JlZm9yZSh0aGlzLnN0YXJ0RGF0ZSkpIHtcclxuICAgICAgICAgICAgICAgIC8vc3BlY2lhbCBjYXNlOiBjbGlja2luZyB0aGUgc2FtZSBkYXRlIGZvciBzdGFydC9lbmQsXHJcbiAgICAgICAgICAgICAgICAvL2J1dCB0aGUgdGltZSBvZiB0aGUgZW5kIGRhdGUgaXMgYmVmb3JlIHRoZSBzdGFydCBkYXRlXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldEVuZERhdGUodGhpcy5zdGFydERhdGUuY2xvbmUoKSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7IC8vIHBpY2tpbmcgZW5kXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50aW1lUGlja2VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGhvdXIgPSBwYXJzZUludCh0aGlzLmNvbnRhaW5lci5maW5kKCcucmlnaHQgLmhvdXJzZWxlY3QnKS52YWwoKSwgMTApO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy50aW1lUGlja2VyMjRIb3VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhbXBtID0gdGhpcy5jb250YWluZXIuZmluZCgnLnJpZ2h0IC5hbXBtc2VsZWN0JykudmFsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbXBtID09PSAnUE0nICYmIGhvdXIgPCAxMilcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXIgKz0gMTI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbXBtID09PSAnQU0nICYmIGhvdXIgPT09IDEyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaG91ciA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHZhciBtaW51dGUgPSBwYXJzZUludCh0aGlzLmNvbnRhaW5lci5maW5kKCcucmlnaHQgLm1pbnV0ZXNlbGVjdCcpLnZhbCgpLCAxMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKG1pbnV0ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWludXRlID0gcGFyc2VJbnQodGhpcy5jb250YWluZXIuZmluZCgnLnJpZ2h0IC5taW51dGVzZWxlY3Qgb3B0aW9uOmxhc3QnKS52YWwoKSwgMTApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB2YXIgc2Vjb25kID0gdGhpcy50aW1lUGlja2VyU2Vjb25kcyA/IHBhcnNlSW50KHRoaXMuY29udGFpbmVyLmZpbmQoJy5yaWdodCAuc2Vjb25kc2VsZWN0JykudmFsKCksIDEwKSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0ZSA9IGRhdGUuY2xvbmUoKS5ob3VyKGhvdXIpLm1pbnV0ZShtaW51dGUpLnNlY29uZChzZWNvbmQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRFbmREYXRlKGRhdGUuY2xvbmUoKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hdXRvQXBwbHkpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVDaG9zZW5MYWJlbCgpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNsaWNrQXBwbHkoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuc2luZ2xlRGF0ZVBpY2tlcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRFbmREYXRlKHRoaXMuc3RhcnREYXRlKTtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50aW1lUGlja2VyICYmIHRoaXMuYXV0b0FwcGx5KVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xpY2tBcHBseSgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgICAgICAgICAgIC8vVGhpcyBpcyB0byBjYW5jZWwgdGhlIGJsdXIgZXZlbnQgaGFuZGxlciBpZiB0aGUgbW91c2Ugd2FzIGluIG9uZSBvZiB0aGUgaW5wdXRzXHJcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIGNhbGN1bGF0ZUNob3NlbkxhYmVsOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHZhciBjdXN0b21SYW5nZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHZhciBpID0gMDtcclxuICAgICAgICAgICAgZm9yICh2YXIgcmFuZ2UgaW4gdGhpcy5yYW5nZXMpIHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy50aW1lUGlja2VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZvcm1hdCA9IHRoaXMudGltZVBpY2tlclNlY29uZHMgPyBcIllZWVktTU0tREQgSEg6bW06c3NcIiA6IFwiWVlZWS1NTS1ERCBISDptbVwiO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vaWdub3JlIHRpbWVzIHdoZW4gY29tcGFyaW5nIGRhdGVzIGlmIHRpbWUgcGlja2VyIHNlY29uZHMgaXMgbm90IGVuYWJsZWRcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGFydERhdGUuZm9ybWF0KGZvcm1hdCkgPT0gdGhpcy5yYW5nZXNbcmFuZ2VdWzBdLmZvcm1hdChmb3JtYXQpICYmIHRoaXMuZW5kRGF0ZS5mb3JtYXQoZm9ybWF0KSA9PSB0aGlzLnJhbmdlc1tyYW5nZV1bMV0uZm9ybWF0KGZvcm1hdCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tUmFuZ2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaG9zZW5MYWJlbCA9IHRoaXMuY29udGFpbmVyLmZpbmQoJy5yYW5nZXMgbGk6ZXEoJyArIGkgKyAnKScpLmFkZENsYXNzKCdhY3RpdmUnKS5hdHRyKCdkYXRhLXJhbmdlLWtleScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vaWdub3JlIHRpbWVzIHdoZW4gY29tcGFyaW5nIGRhdGVzIGlmIHRpbWUgcGlja2VyIGlzIG5vdCBlbmFibGVkXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnREYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpID09IHRoaXMucmFuZ2VzW3JhbmdlXVswXS5mb3JtYXQoJ1lZWVktTU0tREQnKSAmJiB0aGlzLmVuZERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJykgPT0gdGhpcy5yYW5nZXNbcmFuZ2VdWzFdLmZvcm1hdCgnWVlZWS1NTS1ERCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbVJhbmdlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hvc2VuTGFiZWwgPSB0aGlzLmNvbnRhaW5lci5maW5kKCcucmFuZ2VzIGxpOmVxKCcgKyBpICsgJyknKS5hZGRDbGFzcygnYWN0aXZlJykuYXR0cignZGF0YS1yYW5nZS1rZXknKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaSsrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChjdXN0b21SYW5nZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2hvd0N1c3RvbVJhbmdlTGFiZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNob3NlbkxhYmVsID0gdGhpcy5jb250YWluZXIuZmluZCgnLnJhbmdlcyBsaTpsYXN0JykuYWRkQ2xhc3MoJ2FjdGl2ZScpLmF0dHIoJ2RhdGEtcmFuZ2Uta2V5Jyk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hvc2VuTGFiZWwgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93Q2FsZW5kYXJzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBjbGlja0FwcGx5OiBmdW5jdGlvbihlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQudHJpZ2dlcignYXBwbHkuZGF0ZXJhbmdlcGlja2VyJywgdGhpcyk7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgY2xpY2tDYW5jZWw6IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFydERhdGUgPSB0aGlzLm9sZFN0YXJ0RGF0ZTtcclxuICAgICAgICAgICAgdGhpcy5lbmREYXRlID0gdGhpcy5vbGRFbmREYXRlO1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50LnRyaWdnZXIoJ2NhbmNlbC5kYXRlcmFuZ2VwaWNrZXInLCB0aGlzKTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBtb250aE9yWWVhckNoYW5nZWQ6IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgICAgICAgdmFyIGlzTGVmdCA9ICQoZS50YXJnZXQpLmNsb3Nlc3QoJy5kcnAtY2FsZW5kYXInKS5oYXNDbGFzcygnbGVmdCcpLFxyXG4gICAgICAgICAgICAgICAgbGVmdE9yUmlnaHQgPSBpc0xlZnQgPyAnbGVmdCcgOiAncmlnaHQnLFxyXG4gICAgICAgICAgICAgICAgY2FsID0gdGhpcy5jb250YWluZXIuZmluZCgnLmRycC1jYWxlbmRhci4nK2xlZnRPclJpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgIC8vIE1vbnRoIG11c3QgYmUgTnVtYmVyIGZvciBuZXcgbW9tZW50IHZlcnNpb25zXHJcbiAgICAgICAgICAgIHZhciBtb250aCA9IHBhcnNlSW50KGNhbC5maW5kKCcubW9udGhzZWxlY3QnKS52YWwoKSwgMTApO1xyXG4gICAgICAgICAgICB2YXIgeWVhciA9IGNhbC5maW5kKCcueWVhcnNlbGVjdCcpLnZhbCgpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFpc0xlZnQpIHtcclxuICAgICAgICAgICAgICAgIGlmICh5ZWFyIDwgdGhpcy5zdGFydERhdGUueWVhcigpIHx8ICh5ZWFyID09IHRoaXMuc3RhcnREYXRlLnllYXIoKSAmJiBtb250aCA8IHRoaXMuc3RhcnREYXRlLm1vbnRoKCkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9udGggPSB0aGlzLnN0YXJ0RGF0ZS5tb250aCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHllYXIgPSB0aGlzLnN0YXJ0RGF0ZS55ZWFyKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1pbkRhdGUpIHtcclxuICAgICAgICAgICAgICAgIGlmICh5ZWFyIDwgdGhpcy5taW5EYXRlLnllYXIoKSB8fCAoeWVhciA9PSB0aGlzLm1pbkRhdGUueWVhcigpICYmIG1vbnRoIDwgdGhpcy5taW5EYXRlLm1vbnRoKCkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9udGggPSB0aGlzLm1pbkRhdGUubW9udGgoKTtcclxuICAgICAgICAgICAgICAgICAgICB5ZWFyID0gdGhpcy5taW5EYXRlLnllYXIoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubWF4RGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHllYXIgPiB0aGlzLm1heERhdGUueWVhcigpIHx8ICh5ZWFyID09IHRoaXMubWF4RGF0ZS55ZWFyKCkgJiYgbW9udGggPiB0aGlzLm1heERhdGUubW9udGgoKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBtb250aCA9IHRoaXMubWF4RGF0ZS5tb250aCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHllYXIgPSB0aGlzLm1heERhdGUueWVhcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoaXNMZWZ0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZnRDYWxlbmRhci5tb250aC5tb250aChtb250aCkueWVhcih5ZWFyKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxpbmtlZENhbGVuZGFycylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGggPSB0aGlzLmxlZnRDYWxlbmRhci5tb250aC5jbG9uZSgpLmFkZCgxLCAnbW9udGgnKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRDYWxlbmRhci5tb250aC5tb250aChtb250aCkueWVhcih5ZWFyKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxpbmtlZENhbGVuZGFycylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxlZnRDYWxlbmRhci5tb250aCA9IHRoaXMucmlnaHRDYWxlbmRhci5tb250aC5jbG9uZSgpLnN1YnRyYWN0KDEsICdtb250aCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJzKCk7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgdGltZUNoYW5nZWQ6IGZ1bmN0aW9uKGUpIHtcclxuXHJcbiAgICAgICAgICAgIHZhciBjYWwgPSAkKGUudGFyZ2V0KS5jbG9zZXN0KCcuZHJwLWNhbGVuZGFyJyksXHJcbiAgICAgICAgICAgICAgICBpc0xlZnQgPSBjYWwuaGFzQ2xhc3MoJ2xlZnQnKTtcclxuXHJcbiAgICAgICAgICAgIHZhciBob3VyID0gcGFyc2VJbnQoY2FsLmZpbmQoJy5ob3Vyc2VsZWN0JykudmFsKCksIDEwKTtcclxuICAgICAgICAgICAgdmFyIG1pbnV0ZSA9IHBhcnNlSW50KGNhbC5maW5kKCcubWludXRlc2VsZWN0JykudmFsKCksIDEwKTtcclxuICAgICAgICAgICAgaWYgKGlzTmFOKG1pbnV0ZSkpIHtcclxuICAgICAgICAgICAgICAgIG1pbnV0ZSA9IHBhcnNlSW50KGNhbC5maW5kKCcubWludXRlc2VsZWN0IG9wdGlvbjpsYXN0JykudmFsKCksIDEwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgc2Vjb25kID0gdGhpcy50aW1lUGlja2VyU2Vjb25kcyA/IHBhcnNlSW50KGNhbC5maW5kKCcuc2Vjb25kc2VsZWN0JykudmFsKCksIDEwKSA6IDA7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMudGltZVBpY2tlcjI0SG91cikge1xyXG4gICAgICAgICAgICAgICAgdmFyIGFtcG0gPSBjYWwuZmluZCgnLmFtcG1zZWxlY3QnKS52YWwoKTtcclxuICAgICAgICAgICAgICAgIGlmIChhbXBtID09PSAnUE0nICYmIGhvdXIgPCAxMilcclxuICAgICAgICAgICAgICAgICAgICBob3VyICs9IDEyO1xyXG4gICAgICAgICAgICAgICAgaWYgKGFtcG0gPT09ICdBTScgJiYgaG91ciA9PT0gMTIpXHJcbiAgICAgICAgICAgICAgICAgICAgaG91ciA9IDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc0xlZnQpIHtcclxuICAgICAgICAgICAgICAgIHZhciBzdGFydCA9IHRoaXMuc3RhcnREYXRlLmNsb25lKCk7XHJcbiAgICAgICAgICAgICAgICBzdGFydC5ob3VyKGhvdXIpO1xyXG4gICAgICAgICAgICAgICAgc3RhcnQubWludXRlKG1pbnV0ZSk7XHJcbiAgICAgICAgICAgICAgICBzdGFydC5zZWNvbmQoc2Vjb25kKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhcnREYXRlKHN0YXJ0KTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNpbmdsZURhdGVQaWNrZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVuZERhdGUgPSB0aGlzLnN0YXJ0RGF0ZS5jbG9uZSgpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmVuZERhdGUgJiYgdGhpcy5lbmREYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpID09IHN0YXJ0LmZvcm1hdCgnWVlZWS1NTS1ERCcpICYmIHRoaXMuZW5kRGF0ZS5pc0JlZm9yZShzdGFydCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEVuZERhdGUoc3RhcnQuY2xvbmUoKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5lbmREYXRlKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZW5kID0gdGhpcy5lbmREYXRlLmNsb25lKCk7XHJcbiAgICAgICAgICAgICAgICBlbmQuaG91cihob3VyKTtcclxuICAgICAgICAgICAgICAgIGVuZC5taW51dGUobWludXRlKTtcclxuICAgICAgICAgICAgICAgIGVuZC5zZWNvbmQoc2Vjb25kKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RW5kRGF0ZShlbmQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL3VwZGF0ZSB0aGUgY2FsZW5kYXJzIHNvIGFsbCBjbGlja2FibGUgZGF0ZXMgcmVmbGVjdCB0aGUgbmV3IHRpbWUgY29tcG9uZW50XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJzKCk7XHJcblxyXG4gICAgICAgICAgICAvL3VwZGF0ZSB0aGUgZm9ybSBpbnB1dHMgYWJvdmUgdGhlIGNhbGVuZGFycyB3aXRoIHRoZSBuZXcgdGltZVxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZvcm1JbnB1dHMoKTtcclxuXHJcbiAgICAgICAgICAgIC8vcmUtcmVuZGVyIHRoZSB0aW1lIHBpY2tlcnMgYmVjYXVzZSBjaGFuZ2luZyBvbmUgc2VsZWN0aW9uIGNhbiBhZmZlY3Qgd2hhdCdzIGVuYWJsZWQgaW4gYW5vdGhlclxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlclRpbWVQaWNrZXIoJ2xlZnQnKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJUaW1lUGlja2VyKCdyaWdodCcpO1xyXG5cclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBlbGVtZW50Q2hhbmdlZDogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5lbGVtZW50LmlzKCdpbnB1dCcpKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5lbGVtZW50LnZhbCgpLmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgdmFyIGRhdGVTdHJpbmcgPSB0aGlzLmVsZW1lbnQudmFsKCkuc3BsaXQodGhpcy5sb2NhbGUuc2VwYXJhdG9yKSxcclxuICAgICAgICAgICAgICAgIHN0YXJ0ID0gbnVsbCxcclxuICAgICAgICAgICAgICAgIGVuZCA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICBpZiAoZGF0ZVN0cmluZy5sZW5ndGggPT09IDIpIHtcclxuICAgICAgICAgICAgICAgIHN0YXJ0ID0gbW9tZW50KGRhdGVTdHJpbmdbMF0sIHRoaXMubG9jYWxlLmZvcm1hdCk7XHJcbiAgICAgICAgICAgICAgICBlbmQgPSBtb21lbnQoZGF0ZVN0cmluZ1sxXSwgdGhpcy5sb2NhbGUuZm9ybWF0KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuc2luZ2xlRGF0ZVBpY2tlciB8fCBzdGFydCA9PT0gbnVsbCB8fCBlbmQgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHN0YXJ0ID0gbW9tZW50KHRoaXMuZWxlbWVudC52YWwoKSwgdGhpcy5sb2NhbGUuZm9ybWF0KTtcclxuICAgICAgICAgICAgICAgIGVuZCA9IHN0YXJ0O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoIXN0YXJ0LmlzVmFsaWQoKSB8fCAhZW5kLmlzVmFsaWQoKSkgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zZXRTdGFydERhdGUoc3RhcnQpO1xyXG4gICAgICAgICAgICB0aGlzLnNldEVuZERhdGUoZW5kKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVWaWV3KCk7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAga2V5ZG93bjogZnVuY3Rpb24oZSkge1xyXG4gICAgICAgICAgICAvL2hpZGUgb24gdGFiIG9yIGVudGVyXHJcbiAgICAgICAgICAgIGlmICgoZS5rZXlDb2RlID09PSA5KSB8fCAoZS5rZXlDb2RlID09PSAxMykpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL2hpZGUgb24gZXNjIGFuZCBwcmV2ZW50IHByb3BhZ2F0aW9uXHJcbiAgICAgICAgICAgIGlmIChlLmtleUNvZGUgPT09IDI3KSB7XHJcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgdXBkYXRlRWxlbWVudDogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmVsZW1lbnQuaXMoJ2lucHV0JykgJiYgdGhpcy5hdXRvVXBkYXRlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgIHZhciBuZXdWYWx1ZSA9IHRoaXMuc3RhcnREYXRlLmZvcm1hdCh0aGlzLmxvY2FsZS5mb3JtYXQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnNpbmdsZURhdGVQaWNrZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSArPSB0aGlzLmxvY2FsZS5zZXBhcmF0b3IgKyB0aGlzLmVuZERhdGUuZm9ybWF0KHRoaXMubG9jYWxlLmZvcm1hdCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuZWxlbWVudC52YWwoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC52YWwobmV3VmFsdWUpLnRyaWdnZXIoJ2NoYW5nZScpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgcmVtb3ZlOiBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250YWluZXIucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5vZmYoJy5kYXRlcmFuZ2VwaWNrZXInKTtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZURhdGEoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfTtcclxuXHJcbiAgICAkLmZuLmRhdGVyYW5nZXBpY2tlciA9IGZ1bmN0aW9uKG9wdGlvbnMsIGNhbGxiYWNrKSB7XHJcbiAgICAgICAgdmFyIGltcGxlbWVudE9wdGlvbnMgPSAkLmV4dGVuZCh0cnVlLCB7fSwgJC5mbi5kYXRlcmFuZ2VwaWNrZXIuZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgdmFyIGVsID0gJCh0aGlzKTtcclxuICAgICAgICAgICAgaWYgKGVsLmRhdGEoJ2RhdGVyYW5nZXBpY2tlcicpKVxyXG4gICAgICAgICAgICAgICAgZWwuZGF0YSgnZGF0ZXJhbmdlcGlja2VyJykucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgIGVsLmRhdGEoJ2RhdGVyYW5nZXBpY2tlcicsIG5ldyBEYXRlUmFuZ2VQaWNrZXIoZWwsIGltcGxlbWVudE9wdGlvbnMsIGNhbGxiYWNrKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBEYXRlUmFuZ2VQaWNrZXI7XHJcblxyXG59KSk7XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/bootstrap-daterangepicker/daterangepicker.js\n"); /***/ }), /***/ "./node_modules/bootstrap-maxlength/src/bootstrap-maxlength.js": /*!*********************************************************************!*\ !*** ./node_modules/bootstrap-maxlength/src/bootstrap-maxlength.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { eval("/* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\n/* ==========================================================\n * bootstrap-maxlength.js v1.10.0\n *\n * Copyright (c) 2013-2021 Maurizio Napoleoni;\n *\n * Licensed under the terms of the MIT license.\n * See: https://github.com/mimo84/bootstrap-maxlength/blob/master/LICENSE\n * ========================================================== */\n/*global jQuery*/\n\n(function ($) {\n 'use strict';\n /**\n * We need an event when the elements are destroyed\n * because if an input is removed, we have to remove the\n * maxlength object associated (if any).\n * From:\n * http://stackoverflow.com/questions/2200494/jquery-trigger-event-when-an-element-is-removed-from-the-dom\n */\n if (!$.event.special.destroyed) {\n $.event.special.destroyed = {\n remove: function (o) {\n if (o.handler) {\n o.handler();\n }\n }\n };\n }\n\n\n $.fn.extend({\n maxlength: function (options, callback) {\n var documentBody = $('body'),\n defaults = {\n showOnReady: false, // true to always show when indicator is ready\n alwaysShow: true, // if true the indicator it's always shown.\n threshold: 0, // Represents how many chars left are needed to show up the counter\n warningClass: 'small form-text text-muted',\n limitReachedClass: 'small form-text text-danger',\n limitExceededClass: '',\n separator: ' / ',\n preText: '',\n postText: '',\n showMaxLength: true,\n placement: 'bottom-right-inside',\n message: null, // an alternative way to provide the message text\n showCharsTyped: true, // show the number of characters typed and not the number of characters remaining\n validate: false, // if the browser doesn't support the maxlength attribute, attempt to type more than the indicated chars, will be prevented.\n utf8: false, // counts using bytesize rather than length. eg: '£' is counted as 2 characters.\n appendToParent: false, // append the indicator to the input field's parent instead of body\n twoCharLinebreak: true, // count linebreak as 2 characters to match IE/Chrome textarea validation. As well as DB storage.\n customMaxAttribute: null, // null = use maxlength attribute and browser functionality, string = use specified attribute instead.\n customMaxClass: 'overmax', // Class to add to the input field when the maxlength is exceeded.\n allowOverMax: false, // Form submit validation is handled on your own. when maxlength has been exceeded 'overmax' class added to element\n zIndex: 1099\n };\n\n if ($.isFunction(options) && !callback) {\n callback = options;\n options = {};\n }\n options = $.extend(defaults, options);\n\n\n /**\n * Return the byte count of the specified character in UTF8 encoding.\n * Note: This won't cover UTF-8 characters that are 4 bytes long.\n *\n * @param input\n * @return {number}\n */\n function utf8CharByteCount(character) {\n var c = character.charCodeAt();\n // Not c then 0, else c < 128 then 1, else c < 2048 then 2, else 3\n return !c ? 0 : c < 128 ? 1 : c < 2048 ? 2 : 3;\n }\n\n /**\n * Return the length of the specified input in UTF8 encoding.\n *\n * @param input\n * @return {number}\n */\n function utf8Length(string) {\n return string.split(\"\")\n .map(utf8CharByteCount)\n // Prevent reduce from throwing an error if the string is empty.\n .concat(0)\n .reduce(function (sum, val) {\n return sum + val;\n });\n }\n\n /**\n * Return the length of the specified input.\n *\n * @param input\n * @return {number}\n */\n function inputLength(input) {\n var text = input.val();\n\n if (options.twoCharLinebreak) {\n // Count all line breaks as 2 characters\n text = text.replace(/\\r(?!\\n)|\\n(?!\\r)/g, '\\r\\n');\n } else {\n // Remove all double-character (\\r\\n) linebreaks, so they're counted only once.\n text = text.replace(/(?:\\r\\n|\\r|\\n)/g, '\\n');\n }\n\n var currentLength = 0;\n\n if (options.utf8) {\n currentLength = utf8Length(text);\n } else {\n currentLength = text.length;\n }\n\n // Remove \"C:\\fakepath\\\" from counter when using file input\n // Fix https://github.com/mimo84/bootstrap-maxlength/issues/146\n if (input.prop(\"type\") === \"file\" && input.val() !== \"\") {\n currentLength -= 12;\n }\n\n return currentLength;\n }\n\n /**\n * Truncate the text of the specified input.\n *\n * @param input\n * @param limit\n */\n function truncateChars(input, maxlength) {\n var text = input.val();\n\n if (options.twoCharLinebreak) {\n text = text.replace(/\\r(?!\\n)|\\n(?!\\r)/g, '\\r\\n');\n\n if (text[text.length - 1] === '\\n') {\n maxlength -= text.length % 2;\n }\n }\n\n if (options.utf8) {\n var indexedSize = text.split(\"\").map(utf8CharByteCount);\n for (\n var removedBytes = 0,\n bytesPastMax = utf8Length(text) - maxlength; removedBytes < bytesPastMax; removedBytes += indexedSize.pop()\n );\n maxlength -= (maxlength - indexedSize.length);\n }\n\n input.val(text.substr(0, maxlength));\n }\n\n /**\n * Return true if the indicator should be showing up.\n *\n * @param input\n * @param threshold\n * @param maxlength\n * @return {number}\n */\n function charsLeftThreshold(input, threshold, maxlength) {\n var output = true;\n if (!options.alwaysShow && (maxlength - inputLength(input) > threshold)) {\n output = false;\n }\n return output;\n }\n\n /**\n * Returns how many chars are left to complete the fill up of the form.\n *\n * @param input\n * @param maxlength\n * @return {number}\n */\n function remainingChars(input, maxlength) {\n var length = maxlength - inputLength(input);\n return length;\n }\n\n /**\n * When called displays the indicator.\n *\n * @param indicator\n */\n function showRemaining(currentInput, indicator) {\n indicator.css({\n display: 'block'\n });\n currentInput.trigger('maxlength.shown');\n }\n\n /**\n * When called shows the indicator.\n *\n * @param indicator\n */\n function hideRemaining(currentInput, indicator) {\n\n if (options.alwaysShow) {\n return;\n }\n\n indicator.css({\n display: 'none'\n });\n currentInput.trigger('maxlength.hidden');\n }\n\n /**\n * This function updates the value in the indicator\n *\n * @param maxLengthThisInput\n * @param typedChars\n * @return String\n */\n function updateMaxLengthHTML(currentInputText, maxLengthThisInput, typedChars) {\n var output = '';\n if (options.message) {\n if (typeof options.message === 'function') {\n output = options.message(currentInputText, maxLengthThisInput);\n } else {\n output = options.message.replace('%charsTyped%', typedChars)\n .replace('%charsRemaining%', maxLengthThisInput - typedChars)\n .replace('%charsTotal%', maxLengthThisInput);\n }\n } else {\n if (options.preText) {\n output += options.preText;\n }\n if (!options.showCharsTyped) {\n output += maxLengthThisInput - typedChars;\n } else {\n output += typedChars;\n }\n if (options.showMaxLength) {\n output += options.separator + maxLengthThisInput;\n }\n if (options.postText) {\n output += options.postText;\n }\n }\n return output;\n }\n\n /**\n * This function updates the value of the counter in the indicator.\n * Wants as parameters: the number of remaining chars, the element currently managed,\n * the maxLength for the current input and the indicator generated for it.\n *\n * @param remaining\n * @param currentInput\n * @param maxLengthCurrentInput\n * @param maxLengthIndicator\n */\n function manageRemainingVisibility(remaining, currentInput, maxLengthCurrentInput, maxLengthIndicator) {\n if (maxLengthIndicator) {\n maxLengthIndicator.html(updateMaxLengthHTML(currentInput.val(), maxLengthCurrentInput, (maxLengthCurrentInput - remaining)));\n\n if (remaining > 0) {\n if (charsLeftThreshold(currentInput, options.threshold, maxLengthCurrentInput)) {\n showRemaining(currentInput, maxLengthIndicator.removeClass(options.limitReachedClass + ' ' + options.limitExceededClass).addClass(options.warningClass));\n } else {\n hideRemaining(currentInput, maxLengthIndicator);\n }\n } else {\n if (!options.limitExceededClass) {\n showRemaining(currentInput, maxLengthIndicator.removeClass(options.warningClass).addClass(options.limitReachedClass));\n } else {\n if (remaining === 0) {\n showRemaining(currentInput, maxLengthIndicator.removeClass(options.warningClass + ' ' + options.limitExceededClass).addClass(options.limitReachedClass));\n } else {\n showRemaining(currentInput, maxLengthIndicator.removeClass(options.warningClass + ' ' + options.limitReachedClass).addClass(options.limitExceededClass));\n }\n }\n }\n }\n\n if (options.customMaxAttribute) {\n // class to use for form validation on custom maxlength attribute\n if (remaining < 0) {\n currentInput.addClass(options.customMaxClass);\n } else {\n currentInput.removeClass(options.customMaxClass);\n }\n }\n }\n\n /**\n * This function returns an object containing all the\n * informations about the position of the current input\n *\n * @param currentInput\n * @return object {bottom height left right top width}\n *\n */\n function getPosition(currentInput) {\n var el = currentInput[0];\n return $.extend({}, (typeof el.getBoundingClientRect === 'function') ? el.getBoundingClientRect() : {\n width: el.offsetWidth,\n height: el.offsetHeight\n }, currentInput.offset());\n }\n\n /**\n * This function places the maxLengthIndicator based on placement config object.\n *\n * @param {object} placement\n * @param {$} maxLengthIndicator\n * @return null\n *\n */\n function placeWithCSS(placement, maxLengthIndicator) {\n if (!placement || !maxLengthIndicator) {\n return;\n }\n\n var POSITION_KEYS = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'position'\n ];\n\n var cssPos = {};\n\n // filter css properties to position\n $.each(POSITION_KEYS, function (i, key) {\n var val = options.placement[key];\n if (typeof val !== 'undefined') {\n cssPos[key] = val;\n }\n });\n\n maxLengthIndicator.css(cssPos);\n\n return;\n }\n\n\n /**\n * This function places the maxLengthIndicator at the\n * top / bottom / left / right of the currentInput\n *\n * @param currentInput\n * @param maxLengthIndicator\n * @return null\n *\n */\n function place(currentInput, maxLengthIndicator) {\n var pos = getPosition(currentInput);\n\n // Supports custom placement handler\n if ($.type(options.placement) === 'function') {\n options.placement(currentInput, maxLengthIndicator, pos);\n return;\n }\n\n // Supports custom placement via css positional properties\n if ($.isPlainObject(options.placement)) {\n placeWithCSS(options.placement, maxLengthIndicator);\n return;\n }\n\n var inputOuter = currentInput.outerWidth(),\n outerWidth = maxLengthIndicator.outerWidth(),\n actualWidth = maxLengthIndicator.width(),\n actualHeight = maxLengthIndicator.height();\n\n // get the right position if the indicator is appended to the input's parent\n if (options.appendToParent) {\n pos.top -= currentInput.parent().offset().top;\n pos.left -= currentInput.parent().offset().left;\n }\n\n switch (options.placement) {\n case 'bottom':\n maxLengthIndicator.css({\n top: pos.top + pos.height,\n left: pos.left + pos.width / 2 - actualWidth / 2\n });\n break;\n case 'top':\n maxLengthIndicator.css({\n top: pos.top - actualHeight,\n left: pos.left + pos.width / 2 - actualWidth / 2\n });\n break;\n case 'left':\n maxLengthIndicator.css({\n top: pos.top + pos.height / 2 - actualHeight / 2,\n left: pos.left - actualWidth\n });\n break;\n case 'right':\n maxLengthIndicator.css({\n top: pos.top + pos.height / 2 - actualHeight / 2,\n left: pos.left + pos.width\n });\n break;\n case 'bottom-right':\n maxLengthIndicator.css({\n top: pos.top + pos.height,\n left: pos.left + pos.width\n });\n break;\n case 'top-right':\n maxLengthIndicator.css({\n top: pos.top - actualHeight,\n left: pos.left + inputOuter\n });\n break;\n case 'top-left':\n maxLengthIndicator.css({\n top: pos.top - actualHeight,\n left: pos.left - outerWidth\n });\n break;\n case 'bottom-left':\n maxLengthIndicator.css({\n top: pos.top + currentInput.outerHeight(),\n left: pos.left - outerWidth\n });\n break;\n case 'centered-right':\n maxLengthIndicator.css({\n top: pos.top + (actualHeight / 2),\n left: pos.left + inputOuter - outerWidth - 3\n });\n break;\n\n // Some more options for placements\n case 'bottom-right-inside':\n maxLengthIndicator.css({\n top: pos.top + pos.height,\n left: pos.left + pos.width - outerWidth\n });\n break;\n case 'top-right-inside':\n maxLengthIndicator.css({\n top: pos.top - actualHeight,\n left: pos.left + inputOuter - outerWidth\n });\n break;\n case 'top-left-inside':\n maxLengthIndicator.css({\n top: pos.top - actualHeight,\n left: pos.left\n });\n break;\n case 'bottom-left-inside':\n maxLengthIndicator.css({\n top: pos.top + currentInput.outerHeight(),\n left: pos.left\n });\n break;\n }\n }\n\n /**\n * This function returns true if the indicator position needs to\n * be recalculated when the currentInput changes\n *\n * @return {boolean}\n *\n */\n function isPlacementMutable() {\n return options.placement === 'bottom-right-inside' || options.placement === 'top-right-inside' || typeof options.placement === 'function' || (options.message && typeof options.message === 'function');\n }\n\n /**\n * This function retrieves the maximum length of currentInput\n *\n * @param currentInput\n * @return {number}\n *\n */\n function getMaxLength(currentInput) {\n var max = currentInput.attr('maxlength') || options.customMaxAttribute;\n\n if (options.customMaxAttribute && !options.allowOverMax) {\n var custom = currentInput.attr(options.customMaxAttribute);\n if (!max || custom < max) {\n max = custom;\n }\n }\n\n if (!max) {\n max = currentInput.attr('size');\n }\n return max;\n }\n\n return this.each(function () {\n\n var currentInput = $(this),\n maxLengthCurrentInput,\n maxLengthIndicator;\n\n $(window).resize(function () {\n if (maxLengthIndicator) {\n place(currentInput, maxLengthIndicator);\n }\n });\n\n function firstInit() {\n var maxlengthContent = updateMaxLengthHTML(currentInput.val(), maxLengthCurrentInput, '0');\n maxLengthCurrentInput = getMaxLength(currentInput);\n\n if (!maxLengthIndicator) {\n maxLengthIndicator = $('').css({\n display: 'none',\n position: 'absolute',\n whiteSpace: 'nowrap',\n zIndex: options.zIndex\n }).html(maxlengthContent);\n }\n\n // We need to detect resizes if we are dealing with a textarea:\n if (currentInput.is('textarea')) {\n currentInput.data('maxlenghtsizex', currentInput.outerWidth());\n currentInput.data('maxlenghtsizey', currentInput.outerHeight());\n\n currentInput.mouseup(function () {\n if (currentInput.outerWidth() !== currentInput.data('maxlenghtsizex') || currentInput.outerHeight() !== currentInput.data('maxlenghtsizey')) {\n place(currentInput, maxLengthIndicator);\n }\n\n currentInput.data('maxlenghtsizex', currentInput.outerWidth());\n currentInput.data('maxlenghtsizey', currentInput.outerHeight());\n });\n }\n\n if (options.appendToParent) {\n currentInput.parent().append(maxLengthIndicator);\n currentInput.parent().css('position', 'relative');\n } else {\n documentBody.append(maxLengthIndicator);\n }\n\n var remaining = remainingChars(currentInput, getMaxLength(currentInput));\n manageRemainingVisibility(remaining, currentInput, maxLengthCurrentInput, maxLengthIndicator);\n place(currentInput, maxLengthIndicator);\n }\n\n if (options.showOnReady) {\n currentInput.ready(function () {\n firstInit();\n });\n } else {\n currentInput.focus(function () {\n firstInit();\n });\n }\n\n currentInput.on('maxlength.reposition', function () {\n place(currentInput, maxLengthIndicator);\n });\n\n\n currentInput.on('destroyed', function () {\n if (maxLengthIndicator) {\n maxLengthIndicator.remove();\n }\n });\n\n currentInput.on('blur', function () {\n if (maxLengthIndicator && !options.showOnReady) {\n maxLengthIndicator.remove();\n }\n });\n\n currentInput.on('input', function () {\n var maxlength = getMaxLength(currentInput),\n remaining = remainingChars(currentInput, maxlength),\n output = true;\n\n if (options.validate && remaining < 0) {\n truncateChars(currentInput, maxlength);\n output = false;\n } else {\n manageRemainingVisibility(remaining, currentInput, maxLengthCurrentInput, maxLengthIndicator);\n }\n\n // if (isPlacementMutable()) {\n // place(currentInput, maxLengthIndicator);\n // }\n\n return output;\n });\n });\n }\n });\n}(jQuery));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLW1heGxlbmd0aC9zcmMvYm9vdHN0cmFwLW1heGxlbmd0aC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseURBQXlELDZCQUE2QjtBQUN0RjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0EsU0FBUztBQUNUOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixRQUFRO0FBQ3pCLGlCQUFpQixHQUFHO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7O0FBRUE7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsYUFBYTtBQUNiOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0EsU0FBUzs7O0FBR1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNILENBQUMsQ0FBQyxNQUFNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1tYXhsZW5ndGgvc3JjL2Jvb3RzdHJhcC1tYXhsZW5ndGguanM/MzIxZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBib290c3RyYXAtbWF4bGVuZ3RoLmpzIHYxLjEwLjBcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAyMSBNYXVyaXppbyBOYXBvbGVvbmk7XG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZS5cbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL21pbW84NC9ib290c3RyYXAtbWF4bGVuZ3RoL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qZ2xvYmFsICBqUXVlcnkqL1xuXG4oZnVuY3Rpb24gKCQpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuICAvKipcbiAgICogV2UgbmVlZCBhbiBldmVudCB3aGVuIHRoZSBlbGVtZW50cyBhcmUgZGVzdHJveWVkXG4gICAqIGJlY2F1c2UgaWYgYW4gaW5wdXQgaXMgcmVtb3ZlZCwgd2UgaGF2ZSB0byByZW1vdmUgdGhlXG4gICAqIG1heGxlbmd0aCBvYmplY3QgYXNzb2NpYXRlZCAoaWYgYW55KS5cbiAgICogRnJvbTpcbiAgICogaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMjAwNDk0L2pxdWVyeS10cmlnZ2VyLWV2ZW50LXdoZW4tYW4tZWxlbWVudC1pcy1yZW1vdmVkLWZyb20tdGhlLWRvbVxuICAgKi9cbiAgaWYgKCEkLmV2ZW50LnNwZWNpYWwuZGVzdHJveWVkKSB7XG4gICAgJC5ldmVudC5zcGVjaWFsLmRlc3Ryb3llZCA9IHtcbiAgICAgIHJlbW92ZTogZnVuY3Rpb24gKG8pIHtcbiAgICAgICAgaWYgKG8uaGFuZGxlcikge1xuICAgICAgICAgIG8uaGFuZGxlcigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG5cbiAgJC5mbi5leHRlbmQoe1xuICAgIG1heGxlbmd0aDogZnVuY3Rpb24gKG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgZG9jdW1lbnRCb2R5ID0gJCgnYm9keScpLFxuICAgICAgICBkZWZhdWx0cyA9IHtcbiAgICAgICAgICBzaG93T25SZWFkeTogZmFsc2UsIC8vIHRydWUgdG8gYWx3YXlzIHNob3cgd2hlbiBpbmRpY2F0b3IgaXMgcmVhZHlcbiAgICAgICAgICBhbHdheXNTaG93OiB0cnVlLCAvLyBpZiB0cnVlIHRoZSBpbmRpY2F0b3IgaXQncyBhbHdheXMgc2hvd24uXG4gICAgICAgICAgdGhyZXNob2xkOiAwLCAvLyBSZXByZXNlbnRzIGhvdyBtYW55IGNoYXJzIGxlZnQgYXJlIG5lZWRlZCB0byBzaG93IHVwIHRoZSBjb3VudGVyXG4gICAgICAgICAgd2FybmluZ0NsYXNzOiAnc21hbGwgZm9ybS10ZXh0IHRleHQtbXV0ZWQnLFxuICAgICAgICAgIGxpbWl0UmVhY2hlZENsYXNzOiAnc21hbGwgZm9ybS10ZXh0IHRleHQtZGFuZ2VyJyxcbiAgICAgICAgICBsaW1pdEV4Y2VlZGVkQ2xhc3M6ICcnLFxuICAgICAgICAgIHNlcGFyYXRvcjogJyAvICcsXG4gICAgICAgICAgcHJlVGV4dDogJycsXG4gICAgICAgICAgcG9zdFRleHQ6ICcnLFxuICAgICAgICAgIHNob3dNYXhMZW5ndGg6IHRydWUsXG4gICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tLXJpZ2h0LWluc2lkZScsXG4gICAgICAgICAgbWVzc2FnZTogbnVsbCwgLy8gYW4gYWx0ZXJuYXRpdmUgd2F5IHRvIHByb3ZpZGUgdGhlIG1lc3NhZ2UgdGV4dFxuICAgICAgICAgIHNob3dDaGFyc1R5cGVkOiB0cnVlLCAvLyBzaG93IHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0eXBlZCBhbmQgbm90IHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyByZW1haW5pbmdcbiAgICAgICAgICB2YWxpZGF0ZTogZmFsc2UsIC8vIGlmIHRoZSBicm93c2VyIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgbWF4bGVuZ3RoIGF0dHJpYnV0ZSwgYXR0ZW1wdCB0byB0eXBlIG1vcmUgdGhhbiB0aGUgaW5kaWNhdGVkIGNoYXJzLCB3aWxsIGJlIHByZXZlbnRlZC5cbiAgICAgICAgICB1dGY4OiBmYWxzZSwgLy8gY291bnRzIHVzaW5nIGJ5dGVzaXplIHJhdGhlciB0aGFuIGxlbmd0aC4gZWc6ICfCoycgaXMgY291bnRlZCBhcyAyIGNoYXJhY3RlcnMuXG4gICAgICAgICAgYXBwZW5kVG9QYXJlbnQ6IGZhbHNlLCAvLyBhcHBlbmQgdGhlIGluZGljYXRvciB0byB0aGUgaW5wdXQgZmllbGQncyBwYXJlbnQgaW5zdGVhZCBvZiBib2R5XG4gICAgICAgICAgdHdvQ2hhckxpbmVicmVhazogdHJ1ZSwgLy8gY291bnQgbGluZWJyZWFrIGFzIDIgY2hhcmFjdGVycyB0byBtYXRjaCBJRS9DaHJvbWUgdGV4dGFyZWEgdmFsaWRhdGlvbi4gQXMgd2VsbCBhcyBEQiBzdG9yYWdlLlxuICAgICAgICAgIGN1c3RvbU1heEF0dHJpYnV0ZTogbnVsbCwgLy8gbnVsbCA9IHVzZSBtYXhsZW5ndGggYXR0cmlidXRlIGFuZCBicm93c2VyIGZ1bmN0aW9uYWxpdHksIHN0cmluZyA9IHVzZSBzcGVjaWZpZWQgYXR0cmlidXRlIGluc3RlYWQuXG4gICAgICAgICAgY3VzdG9tTWF4Q2xhc3M6ICdvdmVybWF4JywgLy8gQ2xhc3MgdG8gYWRkIHRvIHRoZSBpbnB1dCBmaWVsZCB3aGVuIHRoZSBtYXhsZW5ndGggaXMgZXhjZWVkZWQuXG4gICAgICAgICAgYWxsb3dPdmVyTWF4OiBmYWxzZSwgLy8gRm9ybSBzdWJtaXQgdmFsaWRhdGlvbiBpcyBoYW5kbGVkIG9uIHlvdXIgb3duLiAgd2hlbiBtYXhsZW5ndGggaGFzIGJlZW4gZXhjZWVkZWQgJ292ZXJtYXgnIGNsYXNzIGFkZGVkIHRvIGVsZW1lbnRcbiAgICAgICAgICB6SW5kZXg6IDEwOTlcbiAgICAgICAgfTtcblxuICAgICAgaWYgKCQuaXNGdW5jdGlvbihvcHRpb25zKSAmJiAhY2FsbGJhY2spIHtcbiAgICAgICAgY2FsbGJhY2sgPSBvcHRpb25zO1xuICAgICAgICBvcHRpb25zID0ge307XG4gICAgICB9XG4gICAgICBvcHRpb25zID0gJC5leHRlbmQoZGVmYXVsdHMsIG9wdGlvbnMpO1xuXG5cbiAgICAgIC8qKlxuICAgICAgICogUmV0dXJuIHRoZSBieXRlIGNvdW50IG9mIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyIGluIFVURjggZW5jb2RpbmcuXG4gICAgICAgKiBOb3RlOiBUaGlzIHdvbid0IGNvdmVyIFVURi04IGNoYXJhY3RlcnMgdGhhdCBhcmUgNCBieXRlcyBsb25nLlxuICAgICAgICpcbiAgICAgICAqIEBwYXJhbSBpbnB1dFxuICAgICAgICogQHJldHVybiB7bnVtYmVyfVxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiB1dGY4Q2hhckJ5dGVDb3VudChjaGFyYWN0ZXIpIHtcbiAgICAgICAgdmFyIGMgPSBjaGFyYWN0ZXIuY2hhckNvZGVBdCgpO1xuICAgICAgICAvLyBOb3QgYyB0aGVuIDAsIGVsc2UgYyA8IDEyOCB0aGVuIDEsIGVsc2UgYyA8IDIwNDggdGhlbiAyLCBlbHNlIDNcbiAgICAgICAgcmV0dXJuICFjID8gMCA6IGMgPCAxMjggPyAxIDogYyA8IDIwNDggPyAyIDogMztcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgc3BlY2lmaWVkIGlucHV0IGluIFVURjggZW5jb2RpbmcuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIGlucHV0XG4gICAgICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAgICAgKi9cbiAgICAgIGZ1bmN0aW9uIHV0ZjhMZW5ndGgoc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmcuc3BsaXQoXCJcIilcbiAgICAgICAgICAubWFwKHV0ZjhDaGFyQnl0ZUNvdW50KVxuICAgICAgICAgIC8vIFByZXZlbnQgcmVkdWNlIGZyb20gdGhyb3dpbmcgYW4gZXJyb3IgaWYgdGhlIHN0cmluZyBpcyBlbXB0eS5cbiAgICAgICAgICAuY29uY2F0KDApXG4gICAgICAgICAgLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWwpIHtcbiAgICAgICAgICAgIHJldHVybiBzdW0gKyB2YWw7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogUmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHNwZWNpZmllZCBpbnB1dC5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0gaW5wdXRcbiAgICAgICAqIEByZXR1cm4ge251bWJlcn1cbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gaW5wdXRMZW5ndGgoaW5wdXQpIHtcbiAgICAgICAgdmFyIHRleHQgPSBpbnB1dC52YWwoKTtcblxuICAgICAgICBpZiAob3B0aW9ucy50d29DaGFyTGluZWJyZWFrKSB7XG4gICAgICAgICAgLy8gQ291bnQgYWxsIGxpbmUgYnJlYWtzIGFzIDIgY2hhcmFjdGVyc1xuICAgICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoL1xccig/IVxcbil8XFxuKD8hXFxyKS9nLCAnXFxyXFxuJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gUmVtb3ZlIGFsbCBkb3VibGUtY2hhcmFjdGVyIChcXHJcXG4pIGxpbmVicmVha3MsIHNvIHRoZXkncmUgY291bnRlZCBvbmx5IG9uY2UuXG4gICAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgvKD86XFxyXFxufFxccnxcXG4pL2csICdcXG4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBjdXJyZW50TGVuZ3RoID0gMDtcblxuICAgICAgICBpZiAob3B0aW9ucy51dGY4KSB7XG4gICAgICAgICAgY3VycmVudExlbmd0aCA9IHV0ZjhMZW5ndGgodGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3VycmVudExlbmd0aCA9IHRleHQubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVtb3ZlIFwiQzpcXGZha2VwYXRoXFxcIiBmcm9tIGNvdW50ZXIgd2hlbiB1c2luZyBmaWxlIGlucHV0XG4gICAgICAgIC8vIEZpeCBodHRwczovL2dpdGh1Yi5jb20vbWltbzg0L2Jvb3RzdHJhcC1tYXhsZW5ndGgvaXNzdWVzLzE0NlxuICAgICAgICBpZiAoaW5wdXQucHJvcChcInR5cGVcIikgPT09IFwiZmlsZVwiICYmIGlucHV0LnZhbCgpICE9PSBcIlwiKSB7XG4gICAgICAgICAgY3VycmVudExlbmd0aCAtPSAxMjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjdXJyZW50TGVuZ3RoO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFRydW5jYXRlIHRoZSB0ZXh0IG9mIHRoZSBzcGVjaWZpZWQgaW5wdXQuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIGlucHV0XG4gICAgICAgKiBAcGFyYW0gbGltaXRcbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gdHJ1bmNhdGVDaGFycyhpbnB1dCwgbWF4bGVuZ3RoKSB7XG4gICAgICAgIHZhciB0ZXh0ID0gaW5wdXQudmFsKCk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMudHdvQ2hhckxpbmVicmVhaykge1xuICAgICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoL1xccig/IVxcbil8XFxuKD8hXFxyKS9nLCAnXFxyXFxuJyk7XG5cbiAgICAgICAgICBpZiAodGV4dFt0ZXh0Lmxlbmd0aCAtIDFdID09PSAnXFxuJykge1xuICAgICAgICAgICAgbWF4bGVuZ3RoIC09IHRleHQubGVuZ3RoICUgMjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy51dGY4KSB7XG4gICAgICAgICAgdmFyIGluZGV4ZWRTaXplID0gdGV4dC5zcGxpdChcIlwiKS5tYXAodXRmOENoYXJCeXRlQ291bnQpO1xuICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICB2YXIgcmVtb3ZlZEJ5dGVzID0gMCxcbiAgICAgICAgICAgIGJ5dGVzUGFzdE1heCA9IHV0ZjhMZW5ndGgodGV4dCkgLSBtYXhsZW5ndGg7IHJlbW92ZWRCeXRlcyA8IGJ5dGVzUGFzdE1heDsgcmVtb3ZlZEJ5dGVzICs9IGluZGV4ZWRTaXplLnBvcCgpXG4gICAgICAgICAgKTtcbiAgICAgICAgICBtYXhsZW5ndGggLT0gKG1heGxlbmd0aCAtIGluZGV4ZWRTaXplLmxlbmd0aCk7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dC52YWwodGV4dC5zdWJzdHIoMCwgbWF4bGVuZ3RoKSk7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGluZGljYXRvciBzaG91bGQgYmUgc2hvd2luZyB1cC5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0gaW5wdXRcbiAgICAgICAqIEBwYXJhbSB0aHJlc2hvbGRcbiAgICAgICAqIEBwYXJhbSBtYXhsZW5ndGhcbiAgICAgICAqIEByZXR1cm4ge251bWJlcn1cbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gY2hhcnNMZWZ0VGhyZXNob2xkKGlucHV0LCB0aHJlc2hvbGQsIG1heGxlbmd0aCkge1xuICAgICAgICB2YXIgb3V0cHV0ID0gdHJ1ZTtcbiAgICAgICAgaWYgKCFvcHRpb25zLmFsd2F5c1Nob3cgJiYgKG1heGxlbmd0aCAtIGlucHV0TGVuZ3RoKGlucHV0KSA+IHRocmVzaG9sZCkpIHtcbiAgICAgICAgICBvdXRwdXQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFJldHVybnMgaG93IG1hbnkgY2hhcnMgYXJlIGxlZnQgdG8gY29tcGxldGUgdGhlIGZpbGwgdXAgb2YgdGhlIGZvcm0uXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIGlucHV0XG4gICAgICAgKiBAcGFyYW0gbWF4bGVuZ3RoXG4gICAgICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAgICAgKi9cbiAgICAgIGZ1bmN0aW9uIHJlbWFpbmluZ0NoYXJzKGlucHV0LCBtYXhsZW5ndGgpIHtcbiAgICAgICAgdmFyIGxlbmd0aCA9IG1heGxlbmd0aCAtIGlucHV0TGVuZ3RoKGlucHV0KTtcbiAgICAgICAgcmV0dXJuIGxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBXaGVuIGNhbGxlZCBkaXNwbGF5cyB0aGUgaW5kaWNhdG9yLlxuICAgICAgICpcbiAgICAgICAqIEBwYXJhbSBpbmRpY2F0b3JcbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gc2hvd1JlbWFpbmluZyhjdXJyZW50SW5wdXQsIGluZGljYXRvcikge1xuICAgICAgICBpbmRpY2F0b3IuY3NzKHtcbiAgICAgICAgICBkaXNwbGF5OiAnYmxvY2snXG4gICAgICAgIH0pO1xuICAgICAgICBjdXJyZW50SW5wdXQudHJpZ2dlcignbWF4bGVuZ3RoLnNob3duJyk7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogV2hlbiBjYWxsZWQgc2hvd3MgdGhlIGluZGljYXRvci5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0gaW5kaWNhdG9yXG4gICAgICAgKi9cbiAgICAgIGZ1bmN0aW9uIGhpZGVSZW1haW5pbmcoY3VycmVudElucHV0LCBpbmRpY2F0b3IpIHtcblxuICAgICAgICBpZiAob3B0aW9ucy5hbHdheXNTaG93KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5kaWNhdG9yLmNzcyh7XG4gICAgICAgICAgZGlzcGxheTogJ25vbmUnXG4gICAgICAgIH0pO1xuICAgICAgICBjdXJyZW50SW5wdXQudHJpZ2dlcignbWF4bGVuZ3RoLmhpZGRlbicpO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFRoaXMgZnVuY3Rpb24gdXBkYXRlcyB0aGUgdmFsdWUgaW4gdGhlIGluZGljYXRvclxuICAgICAgICpcbiAgICAgICAqIEBwYXJhbSBtYXhMZW5ndGhUaGlzSW5wdXRcbiAgICAgICAqIEBwYXJhbSB0eXBlZENoYXJzXG4gICAgICAgKiBAcmV0dXJuIFN0cmluZ1xuICAgICAgICovXG4gICAgICBmdW5jdGlvbiB1cGRhdGVNYXhMZW5ndGhIVE1MKGN1cnJlbnRJbnB1dFRleHQsIG1heExlbmd0aFRoaXNJbnB1dCwgdHlwZWRDaGFycykge1xuICAgICAgICB2YXIgb3V0cHV0ID0gJyc7XG4gICAgICAgIGlmIChvcHRpb25zLm1lc3NhZ2UpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubWVzc2FnZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgb3V0cHV0ID0gb3B0aW9ucy5tZXNzYWdlKGN1cnJlbnRJbnB1dFRleHQsIG1heExlbmd0aFRoaXNJbnB1dCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dHB1dCA9IG9wdGlvbnMubWVzc2FnZS5yZXBsYWNlKCclY2hhcnNUeXBlZCUnLCB0eXBlZENoYXJzKVxuICAgICAgICAgICAgICAucmVwbGFjZSgnJWNoYXJzUmVtYWluaW5nJScsIG1heExlbmd0aFRoaXNJbnB1dCAtIHR5cGVkQ2hhcnMpXG4gICAgICAgICAgICAgIC5yZXBsYWNlKCclY2hhcnNUb3RhbCUnLCBtYXhMZW5ndGhUaGlzSW5wdXQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAob3B0aW9ucy5wcmVUZXh0KSB7XG4gICAgICAgICAgICBvdXRwdXQgKz0gb3B0aW9ucy5wcmVUZXh0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIW9wdGlvbnMuc2hvd0NoYXJzVHlwZWQpIHtcbiAgICAgICAgICAgIG91dHB1dCArPSBtYXhMZW5ndGhUaGlzSW5wdXQgLSB0eXBlZENoYXJzO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdXRwdXQgKz0gdHlwZWRDaGFycztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKG9wdGlvbnMuc2hvd01heExlbmd0aCkge1xuICAgICAgICAgICAgb3V0cHV0ICs9IG9wdGlvbnMuc2VwYXJhdG9yICsgbWF4TGVuZ3RoVGhpc0lucHV0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAob3B0aW9ucy5wb3N0VGV4dCkge1xuICAgICAgICAgICAgb3V0cHV0ICs9IG9wdGlvbnMucG9zdFRleHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogVGhpcyBmdW5jdGlvbiB1cGRhdGVzIHRoZSB2YWx1ZSBvZiB0aGUgY291bnRlciBpbiB0aGUgaW5kaWNhdG9yLlxuICAgICAgICogV2FudHMgYXMgcGFyYW1ldGVyczogdGhlIG51bWJlciBvZiByZW1haW5pbmcgY2hhcnMsIHRoZSBlbGVtZW50IGN1cnJlbnRseSBtYW5hZ2VkLFxuICAgICAgICogdGhlIG1heExlbmd0aCBmb3IgdGhlIGN1cnJlbnQgaW5wdXQgYW5kIHRoZSBpbmRpY2F0b3IgZ2VuZXJhdGVkIGZvciBpdC5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0gcmVtYWluaW5nXG4gICAgICAgKiBAcGFyYW0gY3VycmVudElucHV0XG4gICAgICAgKiBAcGFyYW0gbWF4TGVuZ3RoQ3VycmVudElucHV0XG4gICAgICAgKiBAcGFyYW0gbWF4TGVuZ3RoSW5kaWNhdG9yXG4gICAgICAgKi9cbiAgICAgIGZ1bmN0aW9uIG1hbmFnZVJlbWFpbmluZ1Zpc2liaWxpdHkocmVtYWluaW5nLCBjdXJyZW50SW5wdXQsIG1heExlbmd0aEN1cnJlbnRJbnB1dCwgbWF4TGVuZ3RoSW5kaWNhdG9yKSB7XG4gICAgICAgIGlmIChtYXhMZW5ndGhJbmRpY2F0b3IpIHtcbiAgICAgICAgICBtYXhMZW5ndGhJbmRpY2F0b3IuaHRtbCh1cGRhdGVNYXhMZW5ndGhIVE1MKGN1cnJlbnRJbnB1dC52YWwoKSwgbWF4TGVuZ3RoQ3VycmVudElucHV0LCAobWF4TGVuZ3RoQ3VycmVudElucHV0IC0gcmVtYWluaW5nKSkpO1xuXG4gICAgICAgICAgaWYgKHJlbWFpbmluZyA+IDApIHtcbiAgICAgICAgICAgIGlmIChjaGFyc0xlZnRUaHJlc2hvbGQoY3VycmVudElucHV0LCBvcHRpb25zLnRocmVzaG9sZCwgbWF4TGVuZ3RoQ3VycmVudElucHV0KSkge1xuICAgICAgICAgICAgICBzaG93UmVtYWluaW5nKGN1cnJlbnRJbnB1dCwgbWF4TGVuZ3RoSW5kaWNhdG9yLnJlbW92ZUNsYXNzKG9wdGlvbnMubGltaXRSZWFjaGVkQ2xhc3MgKyAnICcgKyBvcHRpb25zLmxpbWl0RXhjZWVkZWRDbGFzcykuYWRkQ2xhc3Mob3B0aW9ucy53YXJuaW5nQ2xhc3MpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGhpZGVSZW1haW5pbmcoY3VycmVudElucHV0LCBtYXhMZW5ndGhJbmRpY2F0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIW9wdGlvbnMubGltaXRFeGNlZWRlZENsYXNzKSB7XG4gICAgICAgICAgICAgIHNob3dSZW1haW5pbmcoY3VycmVudElucHV0LCBtYXhMZW5ndGhJbmRpY2F0b3IucmVtb3ZlQ2xhc3Mob3B0aW9ucy53YXJuaW5nQ2xhc3MpLmFkZENsYXNzKG9wdGlvbnMubGltaXRSZWFjaGVkQ2xhc3MpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmIChyZW1haW5pbmcgPT09IDApIHtcbiAgICAgICAgICAgICAgICBzaG93UmVtYWluaW5nKGN1cnJlbnRJbnB1dCwgbWF4TGVuZ3RoSW5kaWNhdG9yLnJlbW92ZUNsYXNzKG9wdGlvbnMud2FybmluZ0NsYXNzICsgJyAnICsgb3B0aW9ucy5saW1pdEV4Y2VlZGVkQ2xhc3MpLmFkZENsYXNzKG9wdGlvbnMubGltaXRSZWFjaGVkQ2xhc3MpKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzaG93UmVtYWluaW5nKGN1cnJlbnRJbnB1dCwgbWF4TGVuZ3RoSW5kaWNhdG9yLnJlbW92ZUNsYXNzKG9wdGlvbnMud2FybmluZ0NsYXNzICsgJyAnICsgb3B0aW9ucy5saW1pdFJlYWNoZWRDbGFzcykuYWRkQ2xhc3Mob3B0aW9ucy5saW1pdEV4Y2VlZGVkQ2xhc3MpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmN1c3RvbU1heEF0dHJpYnV0ZSkge1xuICAgICAgICAgIC8vIGNsYXNzIHRvIHVzZSBmb3IgZm9ybSB2YWxpZGF0aW9uIG9uIGN1c3RvbSBtYXhsZW5ndGggYXR0cmlidXRlXG4gICAgICAgICAgaWYgKHJlbWFpbmluZyA8IDApIHtcbiAgICAgICAgICAgIGN1cnJlbnRJbnB1dC5hZGRDbGFzcyhvcHRpb25zLmN1c3RvbU1heENsYXNzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY3VycmVudElucHV0LnJlbW92ZUNsYXNzKG9wdGlvbnMuY3VzdG9tTWF4Q2xhc3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyBhbGwgdGhlXG4gICAgICAgKiBpbmZvcm1hdGlvbnMgYWJvdXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGlucHV0XG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIGN1cnJlbnRJbnB1dFxuICAgICAgICogQHJldHVybiBvYmplY3Qge2JvdHRvbSBoZWlnaHQgbGVmdCByaWdodCB0b3Agd2lkdGh9XG4gICAgICAgKlxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiBnZXRQb3NpdGlvbihjdXJyZW50SW5wdXQpIHtcbiAgICAgICAgdmFyIGVsID0gY3VycmVudElucHV0WzBdO1xuICAgICAgICByZXR1cm4gJC5leHRlbmQoe30sICh0eXBlb2YgZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0ID09PSAnZnVuY3Rpb24nKSA/IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIDoge1xuICAgICAgICAgIHdpZHRoOiBlbC5vZmZzZXRXaWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IGVsLm9mZnNldEhlaWdodFxuICAgICAgICB9LCBjdXJyZW50SW5wdXQub2Zmc2V0KCkpO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFRoaXMgZnVuY3Rpb24gcGxhY2VzIHRoZSBtYXhMZW5ndGhJbmRpY2F0b3IgYmFzZWQgb24gcGxhY2VtZW50IGNvbmZpZyBvYmplY3QuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHtvYmplY3R9IHBsYWNlbWVudFxuICAgICAgICogQHBhcmFtIHskfSBtYXhMZW5ndGhJbmRpY2F0b3JcbiAgICAgICAqIEByZXR1cm4gbnVsbFxuICAgICAgICpcbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gcGxhY2VXaXRoQ1NTKHBsYWNlbWVudCwgbWF4TGVuZ3RoSW5kaWNhdG9yKSB7XG4gICAgICAgIGlmICghcGxhY2VtZW50IHx8ICFtYXhMZW5ndGhJbmRpY2F0b3IpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgUE9TSVRJT05fS0VZUyA9IFtcbiAgICAgICAgICAndG9wJyxcbiAgICAgICAgICAnYm90dG9tJyxcbiAgICAgICAgICAnbGVmdCcsXG4gICAgICAgICAgJ3JpZ2h0JyxcbiAgICAgICAgICAncG9zaXRpb24nXG4gICAgICAgIF07XG5cbiAgICAgICAgdmFyIGNzc1BvcyA9IHt9O1xuXG4gICAgICAgIC8vIGZpbHRlciBjc3MgcHJvcGVydGllcyB0byBwb3NpdGlvblxuICAgICAgICAkLmVhY2goUE9TSVRJT05fS0VZUywgZnVuY3Rpb24gKGksIGtleSkge1xuICAgICAgICAgIHZhciB2YWwgPSBvcHRpb25zLnBsYWNlbWVudFtrZXldO1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY3NzUG9zW2tleV0gPSB2YWw7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBtYXhMZW5ndGhJbmRpY2F0b3IuY3NzKGNzc1Bvcyk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG5cbiAgICAgIC8qKlxuICAgICAgICogVGhpcyBmdW5jdGlvbiBwbGFjZXMgdGhlIG1heExlbmd0aEluZGljYXRvciBhdCB0aGVcbiAgICAgICAqIHRvcCAvIGJvdHRvbSAvIGxlZnQgLyByaWdodCBvZiB0aGUgY3VycmVudElucHV0XG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIGN1cnJlbnRJbnB1dFxuICAgICAgICogQHBhcmFtIG1heExlbmd0aEluZGljYXRvclxuICAgICAgICogQHJldHVybiBudWxsXG4gICAgICAgKlxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiBwbGFjZShjdXJyZW50SW5wdXQsIG1heExlbmd0aEluZGljYXRvcikge1xuICAgICAgICB2YXIgcG9zID0gZ2V0UG9zaXRpb24oY3VycmVudElucHV0KTtcblxuICAgICAgICAvLyBTdXBwb3J0cyBjdXN0b20gcGxhY2VtZW50IGhhbmRsZXJcbiAgICAgICAgaWYgKCQudHlwZShvcHRpb25zLnBsYWNlbWVudCkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBvcHRpb25zLnBsYWNlbWVudChjdXJyZW50SW5wdXQsIG1heExlbmd0aEluZGljYXRvciwgcG9zKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTdXBwb3J0cyBjdXN0b20gcGxhY2VtZW50IHZpYSBjc3MgcG9zaXRpb25hbCBwcm9wZXJ0aWVzXG4gICAgICAgIGlmICgkLmlzUGxhaW5PYmplY3Qob3B0aW9ucy5wbGFjZW1lbnQpKSB7XG4gICAgICAgICAgcGxhY2VXaXRoQ1NTKG9wdGlvbnMucGxhY2VtZW50LCBtYXhMZW5ndGhJbmRpY2F0b3IpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpbnB1dE91dGVyID0gY3VycmVudElucHV0Lm91dGVyV2lkdGgoKSxcbiAgICAgICAgICBvdXRlcldpZHRoID0gbWF4TGVuZ3RoSW5kaWNhdG9yLm91dGVyV2lkdGgoKSxcbiAgICAgICAgICBhY3R1YWxXaWR0aCA9IG1heExlbmd0aEluZGljYXRvci53aWR0aCgpLFxuICAgICAgICAgIGFjdHVhbEhlaWdodCA9IG1heExlbmd0aEluZGljYXRvci5oZWlnaHQoKTtcblxuICAgICAgICAvLyBnZXQgdGhlIHJpZ2h0IHBvc2l0aW9uIGlmIHRoZSBpbmRpY2F0b3IgaXMgYXBwZW5kZWQgdG8gdGhlIGlucHV0J3MgcGFyZW50XG4gICAgICAgIGlmIChvcHRpb25zLmFwcGVuZFRvUGFyZW50KSB7XG4gICAgICAgICAgcG9zLnRvcCAtPSBjdXJyZW50SW5wdXQucGFyZW50KCkub2Zmc2V0KCkudG9wO1xuICAgICAgICAgIHBvcy5sZWZ0IC09IGN1cnJlbnRJbnB1dC5wYXJlbnQoKS5vZmZzZXQoKS5sZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoIChvcHRpb25zLnBsYWNlbWVudCkge1xuICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICBtYXhMZW5ndGhJbmRpY2F0b3IuY3NzKHtcbiAgICAgICAgICAgICAgdG9wOiBwb3MudG9wICsgcG9zLmhlaWdodCxcbiAgICAgICAgICAgICAgbGVmdDogcG9zLmxlZnQgKyBwb3Mud2lkdGggLyAyIC0gYWN0dWFsV2lkdGggLyAyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICBtYXhMZW5ndGhJbmRpY2F0b3IuY3NzKHtcbiAgICAgICAgICAgICAgdG9wOiBwb3MudG9wIC0gYWN0dWFsSGVpZ2h0LFxuICAgICAgICAgICAgICBsZWZ0OiBwb3MubGVmdCArIHBvcy53aWR0aCAvIDIgLSBhY3R1YWxXaWR0aCAvIDJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICBtYXhMZW5ndGhJbmRpY2F0b3IuY3NzKHtcbiAgICAgICAgICAgICAgdG9wOiBwb3MudG9wICsgcG9zLmhlaWdodCAvIDIgLSBhY3R1YWxIZWlnaHQgLyAyLFxuICAgICAgICAgICAgICBsZWZ0OiBwb3MubGVmdCAtIGFjdHVhbFdpZHRoXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgIG1heExlbmd0aEluZGljYXRvci5jc3Moe1xuICAgICAgICAgICAgICB0b3A6IHBvcy50b3AgKyBwb3MuaGVpZ2h0IC8gMiAtIGFjdHVhbEhlaWdodCAvIDIsXG4gICAgICAgICAgICAgIGxlZnQ6IHBvcy5sZWZ0ICsgcG9zLndpZHRoXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2JvdHRvbS1yaWdodCc6XG4gICAgICAgICAgICBtYXhMZW5ndGhJbmRpY2F0b3IuY3NzKHtcbiAgICAgICAgICAgICAgdG9wOiBwb3MudG9wICsgcG9zLmhlaWdodCxcbiAgICAgICAgICAgICAgbGVmdDogcG9zLmxlZnQgKyBwb3Mud2lkdGhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAndG9wLXJpZ2h0JzpcbiAgICAgICAgICAgIG1heExlbmd0aEluZGljYXRvci5jc3Moe1xuICAgICAgICAgICAgICB0b3A6IHBvcy50b3AgLSBhY3R1YWxIZWlnaHQsXG4gICAgICAgICAgICAgIGxlZnQ6IHBvcy5sZWZ0ICsgaW5wdXRPdXRlclxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICd0b3AtbGVmdCc6XG4gICAgICAgICAgICBtYXhMZW5ndGhJbmRpY2F0b3IuY3NzKHtcbiAgICAgICAgICAgICAgdG9wOiBwb3MudG9wIC0gYWN0dWFsSGVpZ2h0LFxuICAgICAgICAgICAgICBsZWZ0OiBwb3MubGVmdCAtIG91dGVyV2lkdGhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnYm90dG9tLWxlZnQnOlxuICAgICAgICAgICAgbWF4TGVuZ3RoSW5kaWNhdG9yLmNzcyh7XG4gICAgICAgICAgICAgIHRvcDogcG9zLnRvcCArIGN1cnJlbnRJbnB1dC5vdXRlckhlaWdodCgpLFxuICAgICAgICAgICAgICBsZWZ0OiBwb3MubGVmdCAtIG91dGVyV2lkdGhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnY2VudGVyZWQtcmlnaHQnOlxuICAgICAgICAgICAgbWF4TGVuZ3RoSW5kaWNhdG9yLmNzcyh7XG4gICAgICAgICAgICAgIHRvcDogcG9zLnRvcCArIChhY3R1YWxIZWlnaHQgLyAyKSxcbiAgICAgICAgICAgICAgbGVmdDogcG9zLmxlZnQgKyBpbnB1dE91dGVyIC0gb3V0ZXJXaWR0aCAtIDNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAvLyBTb21lIG1vcmUgb3B0aW9ucyBmb3IgcGxhY2VtZW50c1xuICAgICAgICAgIGNhc2UgJ2JvdHRvbS1yaWdodC1pbnNpZGUnOlxuICAgICAgICAgICAgbWF4TGVuZ3RoSW5kaWNhdG9yLmNzcyh7XG4gICAgICAgICAgICAgIHRvcDogcG9zLnRvcCArIHBvcy5oZWlnaHQsXG4gICAgICAgICAgICAgIGxlZnQ6IHBvcy5sZWZ0ICsgcG9zLndpZHRoIC0gb3V0ZXJXaWR0aFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICd0b3AtcmlnaHQtaW5zaWRlJzpcbiAgICAgICAgICAgIG1heExlbmd0aEluZGljYXRvci5jc3Moe1xuICAgICAgICAgICAgICB0b3A6IHBvcy50b3AgLSBhY3R1YWxIZWlnaHQsXG4gICAgICAgICAgICAgIGxlZnQ6IHBvcy5sZWZ0ICsgaW5wdXRPdXRlciAtIG91dGVyV2lkdGhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAndG9wLWxlZnQtaW5zaWRlJzpcbiAgICAgICAgICAgIG1heExlbmd0aEluZGljYXRvci5jc3Moe1xuICAgICAgICAgICAgICB0b3A6IHBvcy50b3AgLSBhY3R1YWxIZWlnaHQsXG4gICAgICAgICAgICAgIGxlZnQ6IHBvcy5sZWZ0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2JvdHRvbS1sZWZ0LWluc2lkZSc6XG4gICAgICAgICAgICBtYXhMZW5ndGhJbmRpY2F0b3IuY3NzKHtcbiAgICAgICAgICAgICAgdG9wOiBwb3MudG9wICsgY3VycmVudElucHV0Lm91dGVySGVpZ2h0KCksXG4gICAgICAgICAgICAgIGxlZnQ6IHBvcy5sZWZ0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUgaWYgdGhlIGluZGljYXRvciBwb3NpdGlvbiBuZWVkcyB0b1xuICAgICAgICogYmUgcmVjYWxjdWxhdGVkIHdoZW4gdGhlIGN1cnJlbnRJbnB1dCBjaGFuZ2VzXG4gICAgICAgKlxuICAgICAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICAgICAqXG4gICAgICAgKi9cbiAgICAgIGZ1bmN0aW9uIGlzUGxhY2VtZW50TXV0YWJsZSgpIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMucGxhY2VtZW50ID09PSAnYm90dG9tLXJpZ2h0LWluc2lkZScgfHwgb3B0aW9ucy5wbGFjZW1lbnQgPT09ICd0b3AtcmlnaHQtaW5zaWRlJyB8fCB0eXBlb2Ygb3B0aW9ucy5wbGFjZW1lbnQgPT09ICdmdW5jdGlvbicgfHwgKG9wdGlvbnMubWVzc2FnZSAmJiB0eXBlb2Ygb3B0aW9ucy5tZXNzYWdlID09PSAnZnVuY3Rpb24nKTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBUaGlzIGZ1bmN0aW9uIHJldHJpZXZlcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgY3VycmVudElucHV0XG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIGN1cnJlbnRJbnB1dFxuICAgICAgICogQHJldHVybiB7bnVtYmVyfVxuICAgICAgICpcbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gZ2V0TWF4TGVuZ3RoKGN1cnJlbnRJbnB1dCkge1xuICAgICAgICB2YXIgbWF4ID0gY3VycmVudElucHV0LmF0dHIoJ21heGxlbmd0aCcpIHx8IG9wdGlvbnMuY3VzdG9tTWF4QXR0cmlidXRlO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmN1c3RvbU1heEF0dHJpYnV0ZSAmJiAhb3B0aW9ucy5hbGxvd092ZXJNYXgpIHtcbiAgICAgICAgICB2YXIgY3VzdG9tID0gY3VycmVudElucHV0LmF0dHIob3B0aW9ucy5jdXN0b21NYXhBdHRyaWJ1dGUpO1xuICAgICAgICAgIGlmICghbWF4IHx8IGN1c3RvbSA8IG1heCkge1xuICAgICAgICAgICAgbWF4ID0gY3VzdG9tO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbWF4KSB7XG4gICAgICAgICAgbWF4ID0gY3VycmVudElucHV0LmF0dHIoJ3NpemUnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcblxuICAgICAgICB2YXIgY3VycmVudElucHV0ID0gJCh0aGlzKSxcbiAgICAgICAgICBtYXhMZW5ndGhDdXJyZW50SW5wdXQsXG4gICAgICAgICAgbWF4TGVuZ3RoSW5kaWNhdG9yO1xuXG4gICAgICAgICQod2luZG93KS5yZXNpemUoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmIChtYXhMZW5ndGhJbmRpY2F0b3IpIHtcbiAgICAgICAgICAgIHBsYWNlKGN1cnJlbnRJbnB1dCwgbWF4TGVuZ3RoSW5kaWNhdG9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZ1bmN0aW9uIGZpcnN0SW5pdCgpIHtcbiAgICAgICAgICB2YXIgbWF4bGVuZ3RoQ29udGVudCA9IHVwZGF0ZU1heExlbmd0aEhUTUwoY3VycmVudElucHV0LnZhbCgpLCBtYXhMZW5ndGhDdXJyZW50SW5wdXQsICcwJyk7XG4gICAgICAgICAgbWF4TGVuZ3RoQ3VycmVudElucHV0ID0gZ2V0TWF4TGVuZ3RoKGN1cnJlbnRJbnB1dCk7XG5cbiAgICAgICAgICBpZiAoIW1heExlbmd0aEluZGljYXRvcikge1xuICAgICAgICAgICAgbWF4TGVuZ3RoSW5kaWNhdG9yID0gJCgnPHNwYW4gY2xhc3M9XCJib290c3RyYXAtbWF4bGVuZ3RoXCI+PC9zcGFuPicpLmNzcyh7XG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgICAgICAgICAgICB6SW5kZXg6IG9wdGlvbnMuekluZGV4XG4gICAgICAgICAgICB9KS5odG1sKG1heGxlbmd0aENvbnRlbnQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZGV0ZWN0IHJlc2l6ZXMgaWYgd2UgYXJlIGRlYWxpbmcgd2l0aCBhIHRleHRhcmVhOlxuICAgICAgICAgIGlmIChjdXJyZW50SW5wdXQuaXMoJ3RleHRhcmVhJykpIHtcbiAgICAgICAgICAgIGN1cnJlbnRJbnB1dC5kYXRhKCdtYXhsZW5naHRzaXpleCcsIGN1cnJlbnRJbnB1dC5vdXRlcldpZHRoKCkpO1xuICAgICAgICAgICAgY3VycmVudElucHV0LmRhdGEoJ21heGxlbmdodHNpemV5JywgY3VycmVudElucHV0Lm91dGVySGVpZ2h0KCkpO1xuXG4gICAgICAgICAgICBjdXJyZW50SW5wdXQubW91c2V1cChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIGlmIChjdXJyZW50SW5wdXQub3V0ZXJXaWR0aCgpICE9PSBjdXJyZW50SW5wdXQuZGF0YSgnbWF4bGVuZ2h0c2l6ZXgnKSB8fCBjdXJyZW50SW5wdXQub3V0ZXJIZWlnaHQoKSAhPT0gY3VycmVudElucHV0LmRhdGEoJ21heGxlbmdodHNpemV5JykpIHtcbiAgICAgICAgICAgICAgICBwbGFjZShjdXJyZW50SW5wdXQsIG1heExlbmd0aEluZGljYXRvcik7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjdXJyZW50SW5wdXQuZGF0YSgnbWF4bGVuZ2h0c2l6ZXgnLCBjdXJyZW50SW5wdXQub3V0ZXJXaWR0aCgpKTtcbiAgICAgICAgICAgICAgY3VycmVudElucHV0LmRhdGEoJ21heGxlbmdodHNpemV5JywgY3VycmVudElucHV0Lm91dGVySGVpZ2h0KCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG9wdGlvbnMuYXBwZW5kVG9QYXJlbnQpIHtcbiAgICAgICAgICAgIGN1cnJlbnRJbnB1dC5wYXJlbnQoKS5hcHBlbmQobWF4TGVuZ3RoSW5kaWNhdG9yKTtcbiAgICAgICAgICAgIGN1cnJlbnRJbnB1dC5wYXJlbnQoKS5jc3MoJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvY3VtZW50Qm9keS5hcHBlbmQobWF4TGVuZ3RoSW5kaWNhdG9yKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgcmVtYWluaW5nID0gcmVtYWluaW5nQ2hhcnMoY3VycmVudElucHV0LCBnZXRNYXhMZW5ndGgoY3VycmVudElucHV0KSk7XG4gICAgICAgICAgbWFuYWdlUmVtYWluaW5nVmlzaWJpbGl0eShyZW1haW5pbmcsIGN1cnJlbnRJbnB1dCwgbWF4TGVuZ3RoQ3VycmVudElucHV0LCBtYXhMZW5ndGhJbmRpY2F0b3IpO1xuICAgICAgICAgIHBsYWNlKGN1cnJlbnRJbnB1dCwgbWF4TGVuZ3RoSW5kaWNhdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLnNob3dPblJlYWR5KSB7XG4gICAgICAgICAgY3VycmVudElucHV0LnJlYWR5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGZpcnN0SW5pdCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN1cnJlbnRJbnB1dC5mb2N1cyhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBmaXJzdEluaXQoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnRJbnB1dC5vbignbWF4bGVuZ3RoLnJlcG9zaXRpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcGxhY2UoY3VycmVudElucHV0LCBtYXhMZW5ndGhJbmRpY2F0b3IpO1xuICAgICAgICB9KTtcblxuXG4gICAgICAgIGN1cnJlbnRJbnB1dC5vbignZGVzdHJveWVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmIChtYXhMZW5ndGhJbmRpY2F0b3IpIHtcbiAgICAgICAgICAgIG1heExlbmd0aEluZGljYXRvci5yZW1vdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGN1cnJlbnRJbnB1dC5vbignYmx1cicsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpZiAobWF4TGVuZ3RoSW5kaWNhdG9yICYmICFvcHRpb25zLnNob3dPblJlYWR5KSB7XG4gICAgICAgICAgICBtYXhMZW5ndGhJbmRpY2F0b3IucmVtb3ZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjdXJyZW50SW5wdXQub24oJ2lucHV0JywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciBtYXhsZW5ndGggPSBnZXRNYXhMZW5ndGgoY3VycmVudElucHV0KSxcbiAgICAgICAgICAgIHJlbWFpbmluZyA9IHJlbWFpbmluZ0NoYXJzKGN1cnJlbnRJbnB1dCwgbWF4bGVuZ3RoKSxcbiAgICAgICAgICAgIG91dHB1dCA9IHRydWU7XG5cbiAgICAgICAgICBpZiAob3B0aW9ucy52YWxpZGF0ZSAmJiByZW1haW5pbmcgPCAwKSB7XG4gICAgICAgICAgICB0cnVuY2F0ZUNoYXJzKGN1cnJlbnRJbnB1dCwgbWF4bGVuZ3RoKTtcbiAgICAgICAgICAgIG91dHB1dCA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtYW5hZ2VSZW1haW5pbmdWaXNpYmlsaXR5KHJlbWFpbmluZywgY3VycmVudElucHV0LCBtYXhMZW5ndGhDdXJyZW50SW5wdXQsIG1heExlbmd0aEluZGljYXRvcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gaWYgKGlzUGxhY2VtZW50TXV0YWJsZSgpKSB7XG4gICAgICAgICAgLy8gICBwbGFjZShjdXJyZW50SW5wdXQsIG1heExlbmd0aEluZGljYXRvcik7XG4gICAgICAgICAgLy8gfVxuXG4gICAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xufShqUXVlcnkpKTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/bootstrap-maxlength/src/bootstrap-maxlength.js\n"); /***/ }), /***/ "./node_modules/bootstrap/dist/js/bootstrap.esm.js": /*!*********************************************************!*\ !*** ./node_modules/bootstrap/dist/js/bootstrap.esm.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Alert\": () => (/* binding */ Alert),\n/* harmony export */ \"Button\": () => (/* binding */ Button),\n/* harmony export */ \"Carousel\": () => (/* binding */ Carousel),\n/* harmony export */ \"Collapse\": () => (/* binding */ Collapse),\n/* harmony export */ \"Dropdown\": () => (/* binding */ Dropdown),\n/* harmony export */ \"Modal\": () => (/* binding */ Modal),\n/* harmony export */ \"Offcanvas\": () => (/* binding */ Offcanvas),\n/* harmony export */ \"Popover\": () => (/* binding */ Popover),\n/* harmony export */ \"ScrollSpy\": () => (/* binding */ ScrollSpy),\n/* harmony export */ \"Tab\": () => (/* binding */ Tab),\n/* harmony export */ \"Toast\": () => (/* binding */ Toast),\n/* harmony export */ \"Tooltip\": () => (/* binding */ Tooltip)\n/* harmony export */ });\n/* harmony import */ var _popperjs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @popperjs/core */ \"./node_modules/@popperjs/core/lib/index.js\");\n/* harmony import */ var _popperjs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @popperjs/core */ \"./node_modules/@popperjs/core/lib/popper.js\");\n/*!\n * Bootstrap v5.1.1 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst MAX_UID = 1000000;\nconst MILLISECONDS_MULTIPLIER = 1000;\nconst TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n};\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n\n return prefix;\n};\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = `#${hrefAttr.split('#')[1]}`;\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n};\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element);\n\n if (selector) {\n return document.querySelector(selector) ? selector : null;\n }\n\n return null;\n};\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n};\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\n const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n};\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n};\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0];\n }\n\n return typeof obj.nodeType !== 'undefined';\n};\n\nconst getElement = obj => {\n if (isElement(obj)) {\n // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj;\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return document.querySelector(obj);\n }\n\n return null;\n};\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property];\n const value = config[property];\n const valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n });\n};\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible';\n};\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n\n if (element.classList.contains('disabled')) {\n return true;\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n};\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return findShadowRoot(element.parentNode);\n};\n\nconst noop = () => {};\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\n\n\nconst reflow = element => {\n // eslint-disable-next-line no-unused-expressions\n element.offsetHeight;\n};\n\nconst getjQuery = () => {\n const {\n jQuery\n } = window;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n};\n\nconst DOMContentLoadedCallbacks = [];\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n DOMContentLoadedCallbacks.forEach(callback => callback());\n });\n }\n\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n};\n\nconst isRTL = () => document.documentElement.dir === 'rtl';\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n};\n\nconst execute = callback => {\n if (typeof callback === 'function') {\n callback();\n }\n};\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n\n const durationPadding = 5;\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n let called = false;\n\n const handler = ({\n target\n }) => {\n if (target !== transitionElement) {\n return;\n }\n\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n};\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\n\n\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n let index = list.indexOf(activeElement); // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\n\n if (index === -1) {\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0];\n }\n\n const listLength = list.length;\n index += shouldGetNext ? 1 : -1;\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))];\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\nconst stripNameRegex = /\\..*/;\nconst stripUidRegex = /::\\d+$/;\nconst eventRegistry = {}; // Events storage\n\nlet uidEvent = 1;\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n};\nconst customEventsRegex = /^(mouseenter|mouseleave)/i;\nconst nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n event.delegateTarget = element;\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n\n return fn.apply(element, [event]);\n };\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector);\n\n for (let {\n target\n } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target;\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n\n return fn.apply(target, [event]);\n }\n }\n } // To please ESLint\n\n\n return null;\n };\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events);\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]];\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event;\n }\n }\n\n return null;\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string';\n const originalHandler = delegation ? delegationFn : handler;\n let typeEvent = getTypeEvent(originalTypeEvent);\n const isNative = nativeEvents.has(typeEvent);\n\n if (!isNative) {\n typeEvent = originalTypeEvent;\n }\n\n return [delegation, originalHandler, typeEvent];\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n if (!handler) {\n handler = delegationFn;\n delegationFn = null;\n } // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n\n\n if (customEventsRegex.test(originalTypeEvent)) {\n const wrapFn = fn => {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n\n if (delegationFn) {\n delegationFn = wrapFn(delegationFn);\n } else {\n handler = wrapFn(handler);\n }\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn);\n const events = getEvent(element);\n const handlers = events[typeEvent] || (events[typeEvent] = {});\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff;\n return;\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler);\n fn.delegationSelector = delegation ? handler : null;\n fn.originalHandler = originalHandler;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, delegation);\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\n\n if (!fn) {\n return;\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {};\n Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey];\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\n }\n });\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false);\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true);\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn);\n const inNamespace = typeEvent !== originalTypeEvent;\n const events = getEvent(element);\n const isNamespace = originalTypeEvent.startsWith('.');\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return;\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null);\n return;\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n });\n }\n\n const storeElementEvent = events[typeEvent] || {};\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers];\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\n }\n });\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n\n const $ = getjQuery();\n const typeEvent = getTypeEvent(event);\n const inNamespace = event !== typeEvent;\n const isNative = nativeEvents.has(typeEvent);\n let jQueryEvent;\n let bubbles = true;\n let nativeDispatch = true;\n let defaultPrevented = false;\n let evt = null;\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents');\n evt.initEvent(typeEvent, bubbles, true);\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n });\n } // merge custom information in our event\n\n\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key];\n }\n\n });\n });\n }\n\n if (defaultPrevented) {\n evt.preventDefault();\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault();\n }\n\n return evt;\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\nconst elementMap = new Map();\nvar Data = {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n\n const instanceMap = elementMap.get(element); // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);\n return;\n }\n\n instanceMap.set(key, instance);\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n\n return null;\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n\n const instanceMap = elementMap.get(element);\n instanceMap.delete(key); // free up element references if there are no instances left for an element\n\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.1.1';\n\nclass BaseComponent {\n constructor(element) {\n element = getElement(element);\n\n if (!element) {\n return;\n }\n\n this._element = element;\n Data.set(this._element, this.constructor.DATA_KEY, this);\n }\n\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n Object.getOwnPropertyNames(this).forEach(propertyName => {\n this[propertyName] = null;\n });\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated);\n }\n /** Static */\n\n\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY);\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);\n }\n\n static get VERSION() {\n return VERSION;\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`;\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\n const name = component.NAME;\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n const target = getElementFromSelector(this) || this.closest(`.${name}`);\n const instance = component.getOrCreateInstance(target); // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n\n instance[method]();\n });\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$d = 'alert';\nconst DATA_KEY$c = 'bs.alert';\nconst EVENT_KEY$c = `.${DATA_KEY$c}`;\nconst EVENT_CLOSE = `close${EVENT_KEY$c}`;\nconst EVENT_CLOSED = `closed${EVENT_KEY$c}`;\nconst CLASS_NAME_FADE$5 = 'fade';\nconst CLASS_NAME_SHOW$8 = 'show';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$d;\n } // Public\n\n\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n\n if (closeEvent.defaultPrevented) {\n return;\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW$8);\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\n\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated);\n } // Private\n\n\n _destroyElement() {\n this._element.remove();\n\n EventHandler.trigger(this._element, EVENT_CLOSED);\n this.dispose();\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](this);\n });\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nenableDismissTrigger(Alert, 'close');\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Alert);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$c = 'button';\nconst DATA_KEY$b = 'bs.button';\nconst EVENT_KEY$b = `.${DATA_KEY$b}`;\nconst DATA_API_KEY$7 = '.data-api';\nconst CLASS_NAME_ACTIVE$3 = 'active';\nconst SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\nconst EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$b}${DATA_API_KEY$7}`;\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$c;\n } // Public\n\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this);\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => {\n event.preventDefault();\n const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n const data = Button.getOrCreateInstance(button);\n data.toggle();\n});\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Button);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nfunction normalizeData(val) {\n if (val === 'true') {\n return true;\n }\n\n if (val === 'false') {\n return false;\n }\n\n if (val === Number(val).toString()) {\n return Number(val);\n }\n\n if (val === '' || val === 'null') {\n return null;\n }\n\n return val;\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {};\n }\n\n const attributes = {};\n Object.keys(element.dataset).filter(key => key.startsWith('bs')).forEach(key => {\n let pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n });\n return attributes;\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect();\n return {\n top: rect.top + window.pageYOffset,\n left: rect.left + window.pageXOffset\n };\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n };\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst NODE_TEXT = 3;\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector);\n },\n\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector));\n },\n\n parents(element, selector) {\n const parents = [];\n let ancestor = element.parentNode;\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (ancestor.matches(selector)) {\n parents.push(ancestor);\n }\n\n ancestor = ancestor.parentNode;\n }\n\n return parents;\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling;\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n\n previous = previous.previousElementSibling;\n }\n\n return [];\n },\n\n next(element, selector) {\n let next = element.nextElementSibling;\n\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n\n next = next.nextElementSibling;\n }\n\n return [];\n },\n\n focusableChildren(element) {\n const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(', ');\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el));\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$b = 'carousel';\nconst DATA_KEY$a = 'bs.carousel';\nconst EVENT_KEY$a = `.${DATA_KEY$a}`;\nconst DATA_API_KEY$6 = '.data-api';\nconst ARROW_LEFT_KEY = 'ArrowLeft';\nconst ARROW_RIGHT_KEY = 'ArrowRight';\nconst TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\nconst SWIPE_THRESHOLD = 40;\nconst Default$a = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n};\nconst DefaultType$a = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n};\nconst ORDER_NEXT = 'next';\nconst ORDER_PREV = 'prev';\nconst DIRECTION_LEFT = 'left';\nconst DIRECTION_RIGHT = 'right';\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n};\nconst EVENT_SLIDE = `slide${EVENT_KEY$a}`;\nconst EVENT_SLID = `slid${EVENT_KEY$a}`;\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY$a}`;\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY$a}`;\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY$a}`;\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY$a}`;\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$a}`;\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY$a}`;\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$a}`;\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY$a}`;\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY$a}`;\nconst EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$a}${DATA_API_KEY$6}`;\nconst EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;\nconst CLASS_NAME_CAROUSEL = 'carousel';\nconst CLASS_NAME_ACTIVE$2 = 'active';\nconst CLASS_NAME_SLIDE = 'slide';\nconst CLASS_NAME_END = 'carousel-item-end';\nconst CLASS_NAME_START = 'carousel-item-start';\nconst CLASS_NAME_NEXT = 'carousel-item-next';\nconst CLASS_NAME_PREV = 'carousel-item-prev';\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event';\nconst SELECTOR_ACTIVE$1 = '.active';\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\nconst SELECTOR_ITEM = '.carousel-item';\nconst SELECTOR_ITEM_IMG = '.carousel-item img';\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\nconst SELECTOR_INDICATORS = '.carousel-indicators';\nconst SELECTOR_INDICATOR = '[data-bs-target]';\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\nconst POINTER_TYPE_TOUCH = 'touch';\nconst POINTER_TYPE_PEN = 'pen';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element);\n this._items = null;\n this._interval = null;\n this._activeElement = null;\n this._isPaused = false;\n this._isSliding = false;\n this.touchTimeout = null;\n this.touchStartX = 0;\n this.touchDeltaX = 0;\n this._config = this._getConfig(config);\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n this._pointerEvent = Boolean(window.PointerEvent);\n\n this._addEventListeners();\n } // Getters\n\n\n static get Default() {\n return Default$a;\n }\n\n static get NAME() {\n return NAME$b;\n } // Public\n\n\n next() {\n this._slide(ORDER_NEXT);\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n }\n\n prev() {\n this._slide(ORDER_PREV);\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true;\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element);\n this.cycle(true);\n }\n\n clearInterval(this._interval);\n this._interval = null;\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false;\n }\n\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval();\n\n this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n const activeIndex = this._getItemIndex(this._activeElement);\n\n if (index > this._items.length - 1 || index < 0) {\n return;\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\n return;\n }\n\n if (activeIndex === index) {\n this.pause();\n this.cycle();\n return;\n }\n\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n\n this._slide(order, this._items[index]);\n } // Private\n\n\n _getConfig(config) {\n config = { ...Default$a,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n };\n typeCheckConfig(NAME$b, config, DefaultType$a);\n return config;\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX);\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return;\n }\n\n const direction = absDeltax / this.touchDeltaX;\n this.touchDeltaX = 0;\n\n if (!direction) {\n return;\n }\n\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT);\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, event => this.pause(event));\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event));\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners();\n }\n }\n\n _addTouchEventListeners() {\n const hasPointerPenTouch = event => {\n return this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n };\n\n const start = event => {\n if (hasPointerPenTouch(event)) {\n this.touchStartX = event.clientX;\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX;\n }\n };\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n this.touchDeltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this.touchStartX;\n };\n\n const end = event => {\n if (hasPointerPenTouch(event)) {\n this.touchDeltaX = event.clientX - this.touchStartX;\n }\n\n this._handleSwipe();\n\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n this.pause();\n\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout);\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval);\n }\n };\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault());\n });\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event));\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event));\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event));\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event));\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event));\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n const direction = KEY_TO_DIRECTION[event.key];\n\n if (direction) {\n event.preventDefault();\n\n this._slide(direction);\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : [];\n return this._items.indexOf(element);\n }\n\n _getItemByOrder(order, activeElement) {\n const isNext = order === ORDER_NEXT;\n return getNextActiveElement(this._items, activeElement, isNext, this._config.wrap);\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget);\n\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element));\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n });\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE$1, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n activeIndicator.removeAttribute('aria-current');\n const indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement);\n\n for (let i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE$2);\n indicators[i].setAttribute('aria-current', 'true');\n break;\n }\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n if (!element) {\n return;\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n this._config.interval = elementInterval;\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval;\n }\n }\n\n _slide(directionOrOrder, element) {\n const order = this._directionToOrder(directionOrOrder);\n\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n const activeElementIndex = this._getItemIndex(activeElement);\n\n const nextElement = element || this._getItemByOrder(order, activeElement);\n\n const nextElementIndex = this._getItemIndex(nextElement);\n\n const isCycling = Boolean(this._interval);\n const isNext = order === ORDER_NEXT;\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n\n const eventDirectionName = this._orderToDirection(order);\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$2)) {\n this._isSliding = false;\n return;\n }\n\n if (this._isSliding) {\n return;\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n if (slideEvent.defaultPrevented) {\n return;\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return;\n }\n\n this._isSliding = true;\n\n if (isCycling) {\n this.pause();\n }\n\n this._setActiveIndicatorElement(nextElement);\n\n this._activeElement = nextElement;\n\n const triggerSlidEvent = () => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n });\n };\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n this._isSliding = false;\n setTimeout(triggerSlidEvent, 0);\n };\n\n this._queueCallback(completeCallBack, activeElement, true);\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n this._isSliding = false;\n triggerSlidEvent();\n }\n\n if (isCycling) {\n this.cycle();\n }\n }\n\n _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction;\n }\n\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n\n _orderToDirection(order) {\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order;\n }\n\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n } // Static\n\n\n static carouselInterface(element, config) {\n const data = Carousel.getOrCreateInstance(element, config);\n let {\n _config\n } = data;\n\n if (typeof config === 'object') {\n _config = { ..._config,\n ...config\n };\n }\n\n const action = typeof config === 'string' ? config : _config.slide;\n\n if (typeof config === 'number') {\n data.to(config);\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`);\n }\n\n data[action]();\n } else if (_config.interval && _config.ride) {\n data.pause();\n data.cycle();\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config);\n });\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this);\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n\n const config = { ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n };\n const slideIndex = this.getAttribute('data-bs-slide-to');\n\n if (slideIndex) {\n config.interval = false;\n }\n\n Carousel.carouselInterface(target, config);\n\n if (slideIndex) {\n Carousel.getInstance(target).to(slideIndex);\n }\n\n event.preventDefault();\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);\nEventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i]));\n }\n});\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Carousel);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$a = 'collapse';\nconst DATA_KEY$9 = 'bs.collapse';\nconst EVENT_KEY$9 = `.${DATA_KEY$9}`;\nconst DATA_API_KEY$5 = '.data-api';\nconst Default$9 = {\n toggle: true,\n parent: null\n};\nconst DefaultType$9 = {\n toggle: 'boolean',\n parent: '(null|element)'\n};\nconst EVENT_SHOW$5 = `show${EVENT_KEY$9}`;\nconst EVENT_SHOWN$5 = `shown${EVENT_KEY$9}`;\nconst EVENT_HIDE$5 = `hide${EVENT_KEY$9}`;\nconst EVENT_HIDDEN$5 = `hidden${EVENT_KEY$9}`;\nconst EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$9}${DATA_API_KEY$5}`;\nconst CLASS_NAME_SHOW$7 = 'show';\nconst CLASS_NAME_COLLAPSE = 'collapse';\nconst CLASS_NAME_COLLAPSING = 'collapsing';\nconst CLASS_NAME_COLLAPSED = 'collapsed';\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\nconst WIDTH = 'width';\nconst HEIGHT = 'height';\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\nconst SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element);\n this._isTransitioning = false;\n this._config = this._getConfig(config);\n this._triggerArray = [];\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i];\n const selector = getSelectorFromElement(elem);\n const filterElement = SelectorEngine.find(selector).filter(foundElem => foundElem === this._element);\n\n if (selector !== null && filterElement.length) {\n this._selector = selector;\n\n this._triggerArray.push(elem);\n }\n }\n\n this._initializeChildren();\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n\n if (this._config.toggle) {\n this.toggle();\n }\n } // Getters\n\n\n static get Default() {\n return Default$9;\n }\n\n static get NAME() {\n return NAME$a;\n } // Public\n\n\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n\n let actives = [];\n let activesData;\n\n if (this._config.parent) {\n const children = SelectorEngine.find(`.${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`, this._config.parent);\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._config.parent).filter(elem => !children.includes(elem)); // remove children if greater depth\n }\n\n const container = SelectorEngine.findOne(this._selector);\n\n if (actives.length) {\n const tempActiveData = actives.find(elem => container !== elem);\n activesData = tempActiveData ? Collapse.getInstance(tempActiveData) : null;\n\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$5);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.getOrCreateInstance(elemActive, {\n toggle: false\n }).hide();\n }\n\n if (!activesData) {\n Data.set(elemActive, DATA_KEY$9, null);\n }\n });\n\n const dimension = this._getDimension();\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.style[dimension] = 0;\n\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n this._element.style[dimension] = '';\n EventHandler.trigger(this._element, EVENT_SHOWN$5);\n };\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n\n this._queueCallback(complete, this._element, true);\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$5);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n const dimension = this._getDimension();\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n const triggerArrayLength = this._triggerArray.length;\n\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i];\n const elem = getElementFromSelector(trigger);\n\n if (elem && !this._isShown(elem)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$5);\n };\n\n this._element.style[dimension] = '';\n\n this._queueCallback(complete, this._element, true);\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW$7);\n } // Private\n\n\n _getConfig(config) {\n config = { ...Default$9,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n };\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n config.parent = getElement(config.parent);\n typeCheckConfig(NAME$a, config, DefaultType$9);\n return config;\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n\n const children = SelectorEngine.find(`.${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`, this._config.parent);\n SelectorEngine.find(SELECTOR_DATA_TOGGLE$4, this._config.parent).filter(elem => !children.includes(elem)).forEach(element => {\n const selected = getElementFromSelector(element);\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n });\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED);\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED);\n }\n\n elem.setAttribute('aria-expanded', isOpen);\n });\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const _config = {};\n\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n const data = Collapse.getOrCreateInstance(this, _config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n const selector = getSelectorFromElement(this);\n const selectorElements = SelectorEngine.find(selector);\n selectorElements.forEach(element => {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n });\n});\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Collapse);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$9 = 'dropdown';\nconst DATA_KEY$8 = 'bs.dropdown';\nconst EVENT_KEY$8 = `.${DATA_KEY$8}`;\nconst DATA_API_KEY$4 = '.data-api';\nconst ESCAPE_KEY$2 = 'Escape';\nconst SPACE_KEY = 'Space';\nconst TAB_KEY$1 = 'Tab';\nconst ARROW_UP_KEY = 'ArrowUp';\nconst ARROW_DOWN_KEY = 'ArrowDown';\nconst RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY$2}`);\nconst EVENT_HIDE$4 = `hide${EVENT_KEY$8}`;\nconst EVENT_HIDDEN$4 = `hidden${EVENT_KEY$8}`;\nconst EVENT_SHOW$4 = `show${EVENT_KEY$8}`;\nconst EVENT_SHOWN$4 = `shown${EVENT_KEY$8}`;\nconst EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$8}${DATA_API_KEY$4}`;\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$8}${DATA_API_KEY$4}`;\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$8}${DATA_API_KEY$4}`;\nconst CLASS_NAME_SHOW$6 = 'show';\nconst CLASS_NAME_DROPUP = 'dropup';\nconst CLASS_NAME_DROPEND = 'dropend';\nconst CLASS_NAME_DROPSTART = 'dropstart';\nconst CLASS_NAME_NAVBAR = 'navbar';\nconst SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]';\nconst SELECTOR_MENU = '.dropdown-menu';\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav';\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\nconst Default$8 = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null,\n autoClose: true\n};\nconst DefaultType$8 = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)',\n autoClose: '(boolean|string)'\n};\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element);\n this._popper = null;\n this._config = this._getConfig(config);\n this._menu = this._getMenuElement();\n this._inNavbar = this._detectNavbar();\n } // Getters\n\n\n static get Default() {\n return Default$8;\n }\n\n static get DefaultType() {\n return DefaultType$8;\n }\n\n static get NAME() {\n return NAME$9;\n } // Public\n\n\n toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown(this._menu)) {\n return;\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n };\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, relatedTarget);\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n const parent = Dropdown.getParentFromElement(this._element); // Totally disable Popper for Dropdowns in Navbar\n\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none');\n } else {\n this._createPopper(parent);\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children).forEach(elem => EventHandler.on(elem, 'mouseover', noop));\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n this._menu.classList.add(CLASS_NAME_SHOW$6);\n\n this._element.classList.add(CLASS_NAME_SHOW$6);\n\n EventHandler.trigger(this._element, EVENT_SHOWN$4, relatedTarget);\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown(this._menu)) {\n return;\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n };\n\n this._completeHide(relatedTarget);\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n\n super.dispose();\n }\n\n update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper) {\n this._popper.update();\n }\n } // Private\n\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4, relatedTarget);\n\n if (hideEvent.defaultPrevented) {\n return;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children).forEach(elem => EventHandler.off(elem, 'mouseover', noop));\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW$6);\n\n this._element.classList.remove(CLASS_NAME_SHOW$6);\n\n this._element.setAttribute('aria-expanded', 'false');\n\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$4, relatedTarget);\n }\n\n _getConfig(config) {\n config = { ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n };\n typeCheckConfig(NAME$9, config, this.constructor.DefaultType);\n\n if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME$9.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);\n }\n\n return config;\n }\n\n _createPopper(parent) {\n if (typeof _popperjs_core__WEBPACK_IMPORTED_MODULE_0__ === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n\n let referenceElement = this._element;\n\n if (this._config.reference === 'parent') {\n referenceElement = parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference;\n }\n\n const popperConfig = this._getPopperConfig();\n\n const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false);\n this._popper = _popperjs_core__WEBPACK_IMPORTED_MODULE_1__.createPopper(referenceElement, this._menu, popperConfig);\n\n if (isDisplayStatic) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static');\n }\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW$6);\n }\n\n _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0];\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode;\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n } // We need to trim the value because custom properties can also include spaces\n\n\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n\n _detectNavbar() {\n return this._element.closest(`.${CLASS_NAME_NAVBAR}`) !== null;\n }\n\n _getOffset() {\n const {\n offset\n } = this._config;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10));\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n\n return offset;\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }; // Disable Popper if we have a static display\n\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n\n return { ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n };\n }\n\n _selectMenuItem({\n key,\n target\n }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible);\n\n if (!items.length) {\n return;\n } // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus();\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n static clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1)) {\n return;\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$3);\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const context = Dropdown.getInstance(toggles[i]);\n\n if (!context || context._config.autoClose === false) {\n continue;\n }\n\n if (!context._isShown()) {\n continue;\n }\n\n const relatedTarget = {\n relatedTarget: context._element\n };\n\n if (event) {\n const composedPath = event.composedPath();\n const isMenuTarget = composedPath.includes(context._menu);\n\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n\n\n if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n }\n\n context._completeHide(relatedTarget);\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode;\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY$2 && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {\n return;\n }\n\n const isActive = this.classList.contains(CLASS_NAME_SHOW$6);\n\n if (!isActive && event.key === ESCAPE_KEY$2) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (isDisabled(this)) {\n return;\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0];\n const instance = Dropdown.getOrCreateInstance(getToggleButton);\n\n if (event.key === ESCAPE_KEY$2) {\n instance.hide();\n return;\n }\n\n if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) {\n if (!isActive) {\n instance.show();\n }\n\n instance._selectMenuItem(event);\n\n return;\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus();\n }\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n event.preventDefault();\n Dropdown.getOrCreateInstance(this).toggle();\n});\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Dropdown);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nconst SELECTOR_STICKY_CONTENT = '.sticky-top';\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body;\n }\n\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n\n hide() {\n const width = this.getWidth();\n\n this._disableOverFlow(); // give padding to element to balance the hidden scrollbar width\n\n\n this._setElementAttributes(this._element, 'paddingRight', calculatedValue => calculatedValue + width); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n\n\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width);\n\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width);\n }\n\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n\n this._element.style.overflow = 'hidden';\n }\n\n _setElementAttributes(selector, styleProp, callback) {\n const scrollbarWidth = this.getWidth();\n\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n\n this._saveInitialAttribute(element, styleProp);\n\n const calculatedValue = window.getComputedStyle(element)[styleProp];\n element.style[styleProp] = `${callback(Number.parseFloat(calculatedValue))}px`;\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n\n reset() {\n this._resetElementAttributes(this._element, 'overflow');\n\n this._resetElementAttributes(this._element, 'paddingRight');\n\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');\n\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');\n }\n\n _saveInitialAttribute(element, styleProp) {\n const actualValue = element.style[styleProp];\n\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProp, actualValue);\n }\n }\n\n _resetElementAttributes(selector, styleProp) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProp);\n\n if (typeof value === 'undefined') {\n element.style.removeProperty(styleProp);\n } else {\n Manipulator.removeDataAttribute(element, styleProp);\n element.style[styleProp] = value;\n }\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector);\n } else {\n SelectorEngine.find(selector, this._element).forEach(callBack);\n }\n }\n\n isOverflowing() {\n return this.getWidth() > 0;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst Default$7 = {\n className: 'modal-backdrop',\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n isAnimated: false,\n rootElement: 'body',\n // give the choice to place backdrop under different elements\n clickCallback: null\n};\nconst DefaultType$7 = {\n className: 'string',\n isVisible: 'boolean',\n isAnimated: 'boolean',\n rootElement: '(element|string)',\n clickCallback: '(function|null)'\n};\nconst NAME$8 = 'backdrop';\nconst CLASS_NAME_FADE$4 = 'fade';\nconst CLASS_NAME_SHOW$5 = 'show';\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME$8}`;\n\nclass Backdrop {\n constructor(config) {\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n }\n\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._append();\n\n if (this._config.isAnimated) {\n reflow(this._getElement());\n }\n\n this._getElement().classList.add(CLASS_NAME_SHOW$5);\n\n this._emulateAnimation(() => {\n execute(callback);\n });\n }\n\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n\n this._emulateAnimation(() => {\n this.dispose();\n execute(callback);\n });\n } // Private\n\n\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div');\n backdrop.className = this._config.className;\n\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$4);\n }\n\n this._element = backdrop;\n }\n\n return this._element;\n }\n\n _getConfig(config) {\n config = { ...Default$7,\n ...(typeof config === 'object' ? config : {})\n }; // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n\n config.rootElement = getElement(config.rootElement);\n typeCheckConfig(NAME$8, config, DefaultType$7);\n return config;\n }\n\n _append() {\n if (this._isAppended) {\n return;\n }\n\n this._config.rootElement.append(this._getElement());\n\n EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback);\n });\n this._isAppended = true;\n }\n\n dispose() {\n if (!this._isAppended) {\n return;\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n\n this._element.remove();\n\n this._isAppended = false;\n }\n\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst Default$6 = {\n trapElement: null,\n // The element to trap focus inside of\n autofocus: true\n};\nconst DefaultType$6 = {\n trapElement: 'element',\n autofocus: 'boolean'\n};\nconst NAME$7 = 'focustrap';\nconst DATA_KEY$7 = 'bs.focustrap';\nconst EVENT_KEY$7 = `.${DATA_KEY$7}`;\nconst EVENT_FOCUSIN$1 = `focusin${EVENT_KEY$7}`;\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$7}`;\nconst TAB_KEY = 'Tab';\nconst TAB_NAV_FORWARD = 'forward';\nconst TAB_NAV_BACKWARD = 'backward';\n\nclass FocusTrap {\n constructor(config) {\n this._config = this._getConfig(config);\n this._isActive = false;\n this._lastTabNavDirection = null;\n }\n\n activate() {\n const {\n trapElement,\n autofocus\n } = this._config;\n\n if (this._isActive) {\n return;\n }\n\n if (autofocus) {\n trapElement.focus();\n }\n\n EventHandler.off(document, EVENT_KEY$7); // guard against infinite focus loop\n\n EventHandler.on(document, EVENT_FOCUSIN$1, event => this._handleFocusin(event));\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));\n this._isActive = true;\n }\n\n deactivate() {\n if (!this._isActive) {\n return;\n }\n\n this._isActive = false;\n EventHandler.off(document, EVENT_KEY$7);\n } // Private\n\n\n _handleFocusin(event) {\n const {\n target\n } = event;\n const {\n trapElement\n } = this._config;\n\n if (target === document || target === trapElement || trapElement.contains(target)) {\n return;\n }\n\n const elements = SelectorEngine.focusableChildren(trapElement);\n\n if (elements.length === 0) {\n trapElement.focus();\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus();\n } else {\n elements[0].focus();\n }\n }\n\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return;\n }\n\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n }\n\n _getConfig(config) {\n config = { ...Default$6,\n ...(typeof config === 'object' ? config : {})\n };\n typeCheckConfig(NAME$7, config, DefaultType$6);\n return config;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$6 = 'modal';\nconst DATA_KEY$6 = 'bs.modal';\nconst EVENT_KEY$6 = `.${DATA_KEY$6}`;\nconst DATA_API_KEY$3 = '.data-api';\nconst ESCAPE_KEY$1 = 'Escape';\nconst Default$5 = {\n backdrop: true,\n keyboard: true,\n focus: true\n};\nconst DefaultType$5 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n};\nconst EVENT_HIDE$3 = `hide${EVENT_KEY$6}`;\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$6}`;\nconst EVENT_HIDDEN$3 = `hidden${EVENT_KEY$6}`;\nconst EVENT_SHOW$3 = `show${EVENT_KEY$6}`;\nconst EVENT_SHOWN$3 = `shown${EVENT_KEY$6}`;\nconst EVENT_RESIZE = `resize${EVENT_KEY$6}`;\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$6}`;\nconst EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$6}`;\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY$6}`;\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$6}`;\nconst EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst CLASS_NAME_OPEN = 'modal-open';\nconst CLASS_NAME_FADE$3 = 'fade';\nconst CLASS_NAME_SHOW$4 = 'show';\nconst CLASS_NAME_STATIC = 'modal-static';\nconst OPEN_SELECTOR$1 = '.modal.show';\nconst SELECTOR_DIALOG = '.modal-dialog';\nconst SELECTOR_MODAL_BODY = '.modal-body';\nconst SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element);\n this._config = this._getConfig(config);\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._isShown = false;\n this._ignoreBackdropClick = false;\n this._isTransitioning = false;\n this._scrollBar = new ScrollBarHelper();\n } // Getters\n\n\n static get Default() {\n return Default$5;\n }\n\n static get NAME() {\n return NAME$6;\n } // Public\n\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n\n if (this._isAnimated()) {\n this._isTransitioning = true;\n }\n\n this._scrollBar.hide();\n\n document.body.classList.add(CLASS_NAME_OPEN);\n\n this._adjustDialog();\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(() => this._showElement(relatedTarget));\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = false;\n\n const isAnimated = this._isAnimated();\n\n if (isAnimated) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n this._focustrap.deactivate();\n\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS);\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);\n\n this._queueCallback(() => this._hideModal(), this._element, isAnimated);\n }\n\n dispose() {\n [window, this._dialog].forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY$6));\n\n this._backdrop.dispose();\n\n this._focustrap.deactivate();\n\n super.dispose();\n }\n\n handleUpdate() {\n this._adjustDialog();\n } // Private\n\n\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value\n isAnimated: this._isAnimated()\n });\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n\n _getConfig(config) {\n config = { ...Default$5,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n };\n typeCheckConfig(NAME$6, config, DefaultType$5);\n return config;\n }\n\n _showElement(relatedTarget) {\n const isAnimated = this._isAnimated();\n\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.append(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.scrollTop = 0;\n\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n\n if (isAnimated) {\n reflow(this._element);\n }\n\n this._element.classList.add(CLASS_NAME_SHOW$4);\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate();\n }\n\n this._isTransitioning = false;\n EventHandler.trigger(this._element, EVENT_SHOWN$3, {\n relatedTarget\n });\n };\n\n this._queueCallback(transitionComplete, this._dialog, isAnimated);\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY$1) {\n event.preventDefault();\n this.hide();\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY$1) {\n this._triggerBackdropTransition();\n }\n });\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS$1);\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog());\n } else {\n EventHandler.off(window, EVENT_RESIZE);\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN);\n\n this._resetAdjustments();\n\n this._scrollBar.reset();\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$3);\n });\n }\n\n _showBackdrop(callback) {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false;\n return;\n }\n\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (this._config.backdrop === true) {\n this.hide();\n } else if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition();\n }\n });\n\n this._backdrop.show(callback);\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$3);\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n const {\n classList,\n scrollHeight,\n style\n } = this._element;\n const isModalOverflowing = scrollHeight > document.documentElement.clientHeight; // return if the following background transition hasn't yet completed\n\n if (!isModalOverflowing && style.overflowY === 'hidden' || classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n\n if (!isModalOverflowing) {\n style.overflowY = 'hidden';\n }\n\n classList.add(CLASS_NAME_STATIC);\n\n this._queueCallback(() => {\n classList.remove(CLASS_NAME_STATIC);\n\n if (!isModalOverflowing) {\n this._queueCallback(() => {\n style.overflowY = '';\n }, this._dialog);\n }\n }, this._dialog);\n\n this._element.focus();\n } // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n const scrollbarWidth = this._scrollBar.getWidth();\n\n const isBodyOverflowing = scrollbarWidth > 0;\n\n if (!isBodyOverflowing && isModalOverflowing && !isRTL() || isBodyOverflowing && !isModalOverflowing && isRTL()) {\n this._element.style.paddingLeft = `${scrollbarWidth}px`;\n }\n\n if (isBodyOverflowing && !isModalOverflowing && !isRTL() || !isBodyOverflowing && isModalOverflowing && isRTL()) {\n this._element.style.paddingRight = `${scrollbarWidth}px`;\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n } // Static\n\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](relatedTarget);\n });\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n const target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n EventHandler.one(target, EVENT_SHOW$3, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$3, () => {\n if (isVisible(this)) {\n this.focus();\n }\n });\n }); // avoid conflict when clicking moddal toggler while another one is open\n\n const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);\n\n if (allReadyOpen) {\n Modal.getInstance(allReadyOpen).hide();\n }\n\n const data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n});\nenableDismissTrigger(Modal);\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Modal);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$5 = 'offcanvas';\nconst DATA_KEY$5 = 'bs.offcanvas';\nconst EVENT_KEY$5 = `.${DATA_KEY$5}`;\nconst DATA_API_KEY$2 = '.data-api';\nconst EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$5}${DATA_API_KEY$2}`;\nconst ESCAPE_KEY = 'Escape';\nconst Default$4 = {\n backdrop: true,\n keyboard: true,\n scroll: false\n};\nconst DefaultType$4 = {\n backdrop: 'boolean',\n keyboard: 'boolean',\n scroll: 'boolean'\n};\nconst CLASS_NAME_SHOW$3 = 'show';\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\nconst OPEN_SELECTOR = '.offcanvas.show';\nconst EVENT_SHOW$2 = `show${EVENT_KEY$5}`;\nconst EVENT_SHOWN$2 = `shown${EVENT_KEY$5}`;\nconst EVENT_HIDE$2 = `hide${EVENT_KEY$5}`;\nconst EVENT_HIDDEN$2 = `hidden${EVENT_KEY$5}`;\nconst EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$5}${DATA_API_KEY$2}`;\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$5}`;\nconst SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element);\n this._config = this._getConfig(config);\n this._isShown = false;\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n\n this._addEventListeners();\n } // Getters\n\n\n static get NAME() {\n return NAME$5;\n }\n\n static get Default() {\n return Default$4;\n } // Public\n\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, {\n relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n this._element.style.visibility = 'visible';\n\n this._backdrop.show();\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.classList.add(CLASS_NAME_SHOW$3);\n\n const completeCallBack = () => {\n if (!this._config.scroll) {\n this._focustrap.activate();\n }\n\n EventHandler.trigger(this._element, EVENT_SHOWN$2, {\n relatedTarget\n });\n };\n\n this._queueCallback(completeCallBack, this._element, true);\n }\n\n hide() {\n if (!this._isShown) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$2);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._focustrap.deactivate();\n\n this._element.blur();\n\n this._isShown = false;\n\n this._element.classList.remove(CLASS_NAME_SHOW$3);\n\n this._backdrop.hide();\n\n const completeCallback = () => {\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._element.style.visibility = 'hidden';\n\n if (!this._config.scroll) {\n new ScrollBarHelper().reset();\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$2);\n };\n\n this._queueCallback(completeCallback, this._element, true);\n }\n\n dispose() {\n this._backdrop.dispose();\n\n this._focustrap.deactivate();\n\n super.dispose();\n } // Private\n\n\n _getConfig(config) {\n config = { ...Default$4,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n };\n typeCheckConfig(NAME$5, config, DefaultType$4);\n return config;\n }\n\n _initializeBackDrop() {\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible: this._config.backdrop,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: () => this.hide()\n });\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n this.hide();\n }\n });\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](this);\n });\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n const target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$2, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus();\n }\n }); // avoid conflict when clicking a toggler of an offcanvas, while another is open\n\n const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n\n if (allReadyOpen && allReadyOpen !== target) {\n Offcanvas.getInstance(allReadyOpen).hide();\n }\n\n const data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$1, () => SelectorEngine.find(OPEN_SELECTOR).forEach(el => Offcanvas.getOrCreateInstance(el).show()));\nenableDismissTrigger(Offcanvas);\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\ndefineJQueryPlugin(Offcanvas);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i;\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase();\n\n if (allowedAttributeList.includes(attrName)) {\n if (uriAttrs.has(attrName)) {\n return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue));\n }\n\n return true;\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp); // Check if a regular expression validates the attribute.\n\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\n return true;\n }\n }\n\n return false;\n};\n\nconst DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n};\nfunction sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml);\n }\n\n const domParser = new window.DOMParser();\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n const allowlistKeys = Object.keys(allowList);\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i];\n const elName = el.nodeName.toLowerCase();\n\n if (!allowlistKeys.includes(elName)) {\n el.remove();\n continue;\n }\n\n const attributeList = [].concat(...el.attributes);\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || []);\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, allowedAttributes)) {\n el.removeAttribute(attr.nodeName);\n }\n });\n }\n\n return createdDocument.body.innerHTML;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$4 = 'tooltip';\nconst DATA_KEY$4 = 'bs.tooltip';\nconst EVENT_KEY$4 = `.${DATA_KEY$4}`;\nconst CLASS_PREFIX$1 = 'bs-tooltip';\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\nconst DefaultType$3 = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(array|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacements: 'array',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object|function)'\n};\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n};\nconst Default$3 = {\n animation: true,\n template: '
' + '
' + '
' + '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: [0, 0],\n container: false,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n boundary: 'clippingParents',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n};\nconst Event$2 = {\n HIDE: `hide${EVENT_KEY$4}`,\n HIDDEN: `hidden${EVENT_KEY$4}`,\n SHOW: `show${EVENT_KEY$4}`,\n SHOWN: `shown${EVENT_KEY$4}`,\n INSERTED: `inserted${EVENT_KEY$4}`,\n CLICK: `click${EVENT_KEY$4}`,\n FOCUSIN: `focusin${EVENT_KEY$4}`,\n FOCUSOUT: `focusout${EVENT_KEY$4}`,\n MOUSEENTER: `mouseenter${EVENT_KEY$4}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY$4}`\n};\nconst CLASS_NAME_FADE$2 = 'fade';\nconst CLASS_NAME_MODAL = 'modal';\nconst CLASS_NAME_SHOW$2 = 'show';\nconst HOVER_STATE_SHOW = 'show';\nconst HOVER_STATE_OUT = 'out';\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;\nconst EVENT_MODAL_HIDE = 'hide.bs.modal';\nconst TRIGGER_HOVER = 'hover';\nconst TRIGGER_FOCUS = 'focus';\nconst TRIGGER_CLICK = 'click';\nconst TRIGGER_MANUAL = 'manual';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof _popperjs_core__WEBPACK_IMPORTED_MODULE_0__ === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n\n super(element); // private\n\n this._isEnabled = true;\n this._timeout = 0;\n this._hoverState = '';\n this._activeTrigger = {};\n this._popper = null; // Protected\n\n this._config = this._getConfig(config);\n this.tip = null;\n\n this._setListeners();\n } // Getters\n\n\n static get Default() {\n return Default$3;\n }\n\n static get NAME() {\n return NAME$4;\n }\n\n static get Event() {\n return Event$2;\n }\n\n static get DefaultType() {\n return DefaultType$3;\n } // Public\n\n\n enable() {\n this._isEnabled = true;\n }\n\n disable() {\n this._isEnabled = false;\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return;\n }\n\n if (event) {\n const context = this._initializeOnDelegatedTarget(event);\n\n context._activeTrigger.click = !context._activeTrigger.click;\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context);\n } else {\n context._leave(null, context);\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW$2)) {\n this._leave(null, this);\n\n return;\n }\n\n this._enter(null, this);\n }\n }\n\n dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n\n if (this.tip) {\n this.tip.remove();\n }\n\n this._disposePopper();\n\n super.dispose();\n }\n\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n\n if (!(this.isWithContent() && this._isEnabled)) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW);\n const shadowRoot = findShadowRoot(this._element);\n const isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element);\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n } // A trick to recreate a tooltip in case a new title is given by using the NOT documented `data-bs-original-title`\n // This will be removed later in favor of a `setContent` method\n\n\n if (this.constructor.NAME === 'tooltip' && this.tip && this.getTitle() !== this.tip.querySelector(SELECTOR_TOOLTIP_INNER).innerHTML) {\n this._disposePopper();\n\n this.tip.remove();\n this.tip = null;\n }\n\n const tip = this.getTipElement();\n const tipId = getUID(this.constructor.NAME);\n tip.setAttribute('id', tipId);\n\n this._element.setAttribute('aria-describedby', tipId);\n\n if (this._config.animation) {\n tip.classList.add(CLASS_NAME_FADE$2);\n }\n\n const placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement;\n\n const attachment = this._getAttachment(placement);\n\n this._addAttachmentClass(attachment);\n\n const {\n container\n } = this._config;\n Data.set(tip, this.constructor.DATA_KEY, this);\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip);\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED);\n }\n\n if (this._popper) {\n this._popper.update();\n } else {\n this._popper = _popperjs_core__WEBPACK_IMPORTED_MODULE_1__.createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n\n tip.classList.add(CLASS_NAME_SHOW$2);\n\n const customClass = this._resolvePossibleFunction(this._config.customClass);\n\n if (customClass) {\n tip.classList.add(...customClass.split(' '));\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop);\n });\n }\n\n const complete = () => {\n const prevHoverState = this._hoverState;\n this._hoverState = null;\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN);\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this);\n }\n };\n\n const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$2);\n\n this._queueCallback(complete, this.tip, isAnimated);\n }\n\n hide() {\n if (!this._popper) {\n return;\n }\n\n const tip = this.getTipElement();\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return;\n }\n\n if (this._hoverState !== HOVER_STATE_SHOW) {\n tip.remove();\n }\n\n this._cleanTipClass();\n\n this._element.removeAttribute('aria-describedby');\n\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN);\n\n this._disposePopper();\n };\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n tip.classList.remove(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children).forEach(element => EventHandler.off(element, 'mouseover', noop));\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$2);\n\n this._queueCallback(complete, this.tip, isAnimated);\n\n this._hoverState = '';\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.update();\n }\n } // Protected\n\n\n isWithContent() {\n return Boolean(this.getTitle());\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip;\n }\n\n const element = document.createElement('div');\n element.innerHTML = this._config.template;\n const tip = element.children[0];\n this.setContent(tip);\n tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);\n this.tip = tip;\n return this.tip;\n }\n\n setContent(tip) {\n this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TOOLTIP_INNER);\n }\n\n _sanitizeAndSetContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template);\n\n if (!content && templateElement) {\n templateElement.remove();\n return;\n } // we use append for html objects to maintain js events\n\n\n this.setElementContent(templateElement, content);\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return;\n }\n\n if (isElement(content)) {\n content = getElement(content); // content is a DOM node or a jQuery\n\n if (this._config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = '';\n element.append(content);\n }\n } else {\n element.textContent = content.textContent;\n }\n\n return;\n }\n\n if (this._config.html) {\n if (this._config.sanitize) {\n content = sanitizeHtml(content, this._config.allowList, this._config.sanitizeFn);\n }\n\n element.innerHTML = content;\n } else {\n element.textContent = content;\n }\n }\n\n getTitle() {\n const title = this._element.getAttribute('data-bs-original-title') || this._config.title;\n\n return this._resolvePossibleFunction(title);\n }\n\n updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end';\n }\n\n if (attachment === 'left') {\n return 'start';\n }\n\n return attachment;\n } // Private\n\n\n _initializeOnDelegatedTarget(event, context) {\n return context || this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n }\n\n _getOffset() {\n const {\n offset\n } = this._config;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10));\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n\n return offset;\n }\n\n _resolvePossibleFunction(content) {\n return typeof content === 'function' ? content.call(this._element) : content;\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n }, {\n name: 'onChange',\n enabled: true,\n phase: 'afterWrite',\n fn: data => this._handlePopperPlacementChange(data)\n }],\n onFirstUpdate: data => {\n if (data.options.placement !== data.placement) {\n this._handlePopperPlacementChange(data);\n }\n }\n };\n return { ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n };\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(attachment)}`);\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()];\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ');\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.Event.CLICK, this._config.selector, event => this.toggle(event));\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSEENTER : this.constructor.Event.FOCUSIN;\n const eventOut = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSELEAVE : this.constructor.Event.FOCUSOUT;\n EventHandler.on(this._element, eventIn, this._config.selector, event => this._enter(event));\n EventHandler.on(this._element, eventOut, this._config.selector, event => this._leave(event));\n }\n });\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide();\n }\n };\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n\n if (this._config.selector) {\n this._config = { ...this._config,\n trigger: 'manual',\n selector: ''\n };\n } else {\n this._fixTitle();\n }\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title');\n\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title');\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '');\n\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title);\n }\n\n this._element.setAttribute('title', '');\n }\n }\n\n _enter(event, context) {\n context = this._initializeOnDelegatedTarget(event, context);\n\n if (event) {\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW$2) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW;\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_SHOW;\n\n if (!context._config.delay || !context._config.delay.show) {\n context.show();\n return;\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show();\n }\n }, context._config.delay.show);\n }\n\n _leave(event, context) {\n context = this._initializeOnDelegatedTarget(event, context);\n\n if (event) {\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n }\n\n if (context._isWithActiveTrigger()) {\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_OUT;\n\n if (!context._config.delay || !context._config.delay.hide) {\n context.hide();\n return;\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide();\n }\n }, context._config.delay.hide);\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element);\n Object.keys(dataAttributes).forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr];\n }\n });\n config = { ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n };\n config.container = config.container === false ? document.body : getElement(config.container);\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n\n typeCheckConfig(NAME$4, config, this.constructor.DefaultType);\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn);\n }\n\n return config;\n }\n\n _getDelegateConfig() {\n const config = {};\n\n for (const key in this._config) {\n if (this.constructor.Default[key] !== this._config[key]) {\n config[key] = this._config[key];\n }\n } // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n\n\n return config;\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement();\n const basicClassPrefixRegex = new RegExp(`(^|\\\\s)${this._getBasicClassPrefix()}\\\\S+`, 'g');\n const tabClass = tip.getAttribute('class').match(basicClassPrefixRegex);\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass));\n }\n }\n\n _getBasicClassPrefix() {\n return CLASS_PREFIX$1;\n }\n\n _handlePopperPlacementChange(popperData) {\n const {\n state\n } = popperData;\n\n if (!state) {\n return;\n }\n\n this.tip = state.elements.popper;\n\n this._cleanTipClass();\n\n this._addAttachmentClass(this._getAttachment(state.placement));\n }\n\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n\n this._popper = null;\n }\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\n\ndefineJQueryPlugin(Tooltip);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$3 = 'popover';\nconst DATA_KEY$3 = 'bs.popover';\nconst EVENT_KEY$3 = `.${DATA_KEY$3}`;\nconst CLASS_PREFIX = 'bs-popover';\nconst Default$2 = { ...Tooltip.Default,\n placement: 'right',\n offset: [0, 8],\n trigger: 'click',\n content: '',\n template: '
' + '
' + '

' + '
' + '
'\n};\nconst DefaultType$2 = { ...Tooltip.DefaultType,\n content: '(string|element|function)'\n};\nconst Event$1 = {\n HIDE: `hide${EVENT_KEY$3}`,\n HIDDEN: `hidden${EVENT_KEY$3}`,\n SHOW: `show${EVENT_KEY$3}`,\n SHOWN: `shown${EVENT_KEY$3}`,\n INSERTED: `inserted${EVENT_KEY$3}`,\n CLICK: `click${EVENT_KEY$3}`,\n FOCUSIN: `focusin${EVENT_KEY$3}`,\n FOCUSOUT: `focusout${EVENT_KEY$3}`,\n MOUSEENTER: `mouseenter${EVENT_KEY$3}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY$3}`\n};\nconst SELECTOR_TITLE = '.popover-header';\nconst SELECTOR_CONTENT = '.popover-body';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default$2;\n }\n\n static get NAME() {\n return NAME$3;\n }\n\n static get Event() {\n return Event$1;\n }\n\n static get DefaultType() {\n return DefaultType$2;\n } // Overrides\n\n\n isWithContent() {\n return this.getTitle() || this._getContent();\n }\n\n setContent(tip) {\n this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TITLE);\n\n this._sanitizeAndSetContent(tip, this._getContent(), SELECTOR_CONTENT);\n } // Private\n\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content);\n }\n\n _getBasicClassPrefix() {\n return CLASS_PREFIX;\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\n\ndefineJQueryPlugin(Popover);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$2 = 'scrollspy';\nconst DATA_KEY$2 = 'bs.scrollspy';\nconst EVENT_KEY$2 = `.${DATA_KEY$2}`;\nconst DATA_API_KEY$1 = '.data-api';\nconst Default$1 = {\n offset: 10,\n method: 'auto',\n target: ''\n};\nconst DefaultType$1 = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n};\nconst EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;\nconst EVENT_SCROLL = `scroll${EVENT_KEY$2}`;\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY$2}${DATA_API_KEY$1}`;\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\nconst CLASS_NAME_ACTIVE$1 = 'active';\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\nconst SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';\nconst SELECTOR_NAV_LINKS = '.nav-link';\nconst SELECTOR_NAV_ITEMS = '.nav-item';\nconst SELECTOR_LIST_ITEMS = '.list-group-item';\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}, .${CLASS_NAME_DROPDOWN_ITEM}`;\nconst SELECTOR_DROPDOWN$1 = '.dropdown';\nconst SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\nconst METHOD_OFFSET = 'offset';\nconst METHOD_POSITION = 'position';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element);\n this._scrollElement = this._element.tagName === 'BODY' ? window : this._element;\n this._config = this._getConfig(config);\n this._offsets = [];\n this._targets = [];\n this._activeTarget = null;\n this._scrollHeight = 0;\n EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process());\n this.refresh();\n\n this._process();\n } // Getters\n\n\n static get Default() {\n return Default$1;\n }\n\n static get NAME() {\n return NAME$2;\n } // Public\n\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\n const offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n const offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\n this._offsets = [];\n this._targets = [];\n this._scrollHeight = this._getScrollHeight();\n const targets = SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target);\n targets.map(element => {\n const targetSelector = getSelectorFromElement(element);\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null;\n\n if (target) {\n const targetBCR = target.getBoundingClientRect();\n\n if (targetBCR.width || targetBCR.height) {\n return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector];\n }\n }\n\n return null;\n }).filter(item => item).sort((a, b) => a[0] - b[0]).forEach(item => {\n this._offsets.push(item[0]);\n\n this._targets.push(item[1]);\n });\n }\n\n dispose() {\n EventHandler.off(this._scrollElement, EVENT_KEY$2);\n super.dispose();\n } // Private\n\n\n _getConfig(config) {\n config = { ...Default$1,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n };\n config.target = getElement(config.target) || document.documentElement;\n typeCheckConfig(NAME$2, config, DefaultType$1);\n return config;\n }\n\n _getScrollTop() {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset;\n\n const scrollHeight = this._getScrollHeight();\n\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh();\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1];\n\n if (this._activeTarget !== target) {\n this._activate(target);\n }\n\n return;\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null;\n\n this._clear();\n\n return;\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n if (isActiveTarget) {\n this._activate(this._targets[i]);\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target;\n\n this._clear();\n\n const queries = SELECTOR_LINK_ITEMS.split(',').map(selector => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`);\n const link = SelectorEngine.findOne(queries.join(','), this._config.target);\n link.classList.add(CLASS_NAME_ACTIVE$1);\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, link.closest(SELECTOR_DROPDOWN$1)).classList.add(CLASS_NAME_ACTIVE$1);\n } else {\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP$1).forEach(listGroup => {\n // Set triggered links parents as active\n // With both