Hacked By AnonymousFox
{"version":3,"sources":["<anon>"],"sourcesContent":["/**\n * @license Highcharts JS v12.1.2 (2025-01-09)\n * @module highcharts/modules/accessibility\n * @requires highcharts\n *\n * Accessibility module\n *\n * (c) 2010-2024 Highsoft AS\n * Author: Oystein Moseng\n *\n * License: www.highcharts.com/license\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"highcharts\"), require(\"highcharts\")[\"Templating\"], require(\"highcharts\")[\"AST\"], require(\"highcharts\")[\"Legend\"], require(\"highcharts\")[\"Axis\"], require(\"highcharts\")[\"Color\"], require(\"highcharts\")[\"SeriesRegistry\"], require(\"highcharts\")[\"RendererRegistry\"], require(\"highcharts\")[\"SVGRenderer\"], require(\"highcharts\")[\"Point\"], require(\"highcharts\")[\"Series\"]);\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"highcharts/modules/accessibility\", [[\"highcharts/highcharts\"], [\"highcharts/highcharts\",\"Templating\"], [\"highcharts/highcharts\",\"AST\"], [\"highcharts/highcharts\",\"Legend\"], [\"highcharts/highcharts\",\"Axis\"], [\"highcharts/highcharts\",\"Color\"], [\"highcharts/highcharts\",\"SeriesRegistry\"], [\"highcharts/highcharts\",\"RendererRegistry\"], [\"highcharts/highcharts\",\"SVGRenderer\"], [\"highcharts/highcharts\",\"Point\"], [\"highcharts/highcharts\",\"Series\"]], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/modules/accessibility\"] = factory(require(\"highcharts\"), require(\"highcharts\")[\"Templating\"], require(\"highcharts\")[\"AST\"], require(\"highcharts\")[\"Legend\"], require(\"highcharts\")[\"Axis\"], require(\"highcharts\")[\"Color\"], require(\"highcharts\")[\"SeriesRegistry\"], require(\"highcharts\")[\"RendererRegistry\"], require(\"highcharts\")[\"SVGRenderer\"], require(\"highcharts\")[\"Point\"], require(\"highcharts\")[\"Series\"]);\n\telse\n\t\troot[\"Highcharts\"] = factory(root[\"Highcharts\"], root[\"Highcharts\"][\"Templating\"], root[\"Highcharts\"][\"AST\"], root[\"Highcharts\"][\"Legend\"], root[\"Highcharts\"][\"Axis\"], root[\"Highcharts\"][\"Color\"], root[\"Highcharts\"][\"SeriesRegistry\"], root[\"Highcharts\"][\"RendererRegistry\"], root[\"Highcharts\"][\"SVGRenderer\"], root[\"Highcharts\"][\"Point\"], root[\"Highcharts\"][\"Series\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__984__, __WEBPACK_EXTERNAL_MODULE__660__, __WEBPACK_EXTERNAL_MODULE__632__, __WEBPACK_EXTERNAL_MODULE__532__, __WEBPACK_EXTERNAL_MODULE__239__, __WEBPACK_EXTERNAL_MODULE__512__, __WEBPACK_EXTERNAL_MODULE__608__, __WEBPACK_EXTERNAL_MODULE__540__, __WEBPACK_EXTERNAL_MODULE__260__, __WEBPACK_EXTERNAL_MODULE__820__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 660:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__660__;\n\n/***/ }),\n\n/***/ 532:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__532__;\n\n/***/ }),\n\n/***/ 239:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__239__;\n\n/***/ }),\n\n/***/ 632:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__632__;\n\n/***/ }),\n\n/***/ 260:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__260__;\n\n/***/ }),\n\n/***/ 608:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__608__;\n\n/***/ }),\n\n/***/ 540:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__540__;\n\n/***/ }),\n\n/***/ 820:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__820__;\n\n/***/ }),\n\n/***/ 512:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__512__;\n\n/***/ }),\n\n/***/ 984:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__984__;\n\n/***/ }),\n\n/***/ 944:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__944__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ accessibility_src; }\n});\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\"],\"commonjs\":[\"highcharts\"],\"commonjs2\":[\"highcharts\"],\"root\":[\"Highcharts\"]}\nvar highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_ = __webpack_require__(944);\nvar highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default = /*#__PURE__*/__webpack_require__.n(highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_);\n;// ./code/es5/es-modules/Accessibility/Utils/HTMLUtilities.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Utility functions for accessibility module.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc, win = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).win;\n\nvar css = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).css;\n/* *\n *\n * Constants\n *\n * */\nvar simulatedEventTarget = win.EventTarget && new win.EventTarget() || 'none';\n/* *\n *\n * Functions\n *\n * */\n/* eslint-disable valid-jsdoc */\n/**\n * @private\n * @param {Highcharts.HTMLDOMElement} el\n * @param {string} className\n * @return {void}\n */\nfunction addClass(el, className) {\n if (el.classList) {\n el.classList.add(className);\n }\n else if (el.className.indexOf(className) < 0) {\n // Note: Dumb check for class name exists, should be fine for practical\n // use cases, but will return false positives if the element has a class\n // that contains the className.\n el.className += ' ' + className;\n }\n}\n/**\n * @private\n * @param {Highcharts.HTMLDOMElement} el\n * @param {string} className\n * @return {void}\n */\nfunction removeClass(el, className) {\n if (el.classList) {\n el.classList.remove(className);\n }\n else {\n // Note: Dumb logic that will break if the element has a class name that\n // consists of className plus something else.\n el.className = el.className.replace(new RegExp(className, 'g'), '');\n }\n}\n/**\n * Utility function to clone a mouse event for re-dispatching.\n * @private\n */\nfunction cloneMouseEvent(e) {\n if (typeof win.MouseEvent === 'function') {\n return new win.MouseEvent(e.type, e);\n }\n // No MouseEvent support, try using initMouseEvent\n if (doc.createEvent) {\n var evt = doc.createEvent('MouseEvent');\n if (evt.initMouseEvent) {\n evt.initMouseEvent(e.type, e.bubbles, // #10561, #12161\n e.cancelable, e.view || win, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget);\n return evt;\n }\n }\n return getFakeMouseEvent(e.type);\n}\n/**\n * Utility function to clone a touch event for re-dispatching.\n * @private\n */\nfunction cloneTouchEvent(e) {\n var touchListToTouchArray = function (l) {\n var touchArray = [];\n for (var i = 0; i < l.length; ++i) {\n var item = l.item(i);\n if (item) {\n touchArray.push(item);\n }\n }\n return touchArray;\n };\n if (typeof win.TouchEvent === 'function') {\n var newEvent = new win.TouchEvent(e.type, {\n touches: touchListToTouchArray(e.touches),\n targetTouches: touchListToTouchArray(e.targetTouches),\n changedTouches: touchListToTouchArray(e.changedTouches),\n ctrlKey: e.ctrlKey,\n shiftKey: e.shiftKey,\n altKey: e.altKey,\n metaKey: e.metaKey,\n bubbles: e.bubbles,\n cancelable: e.cancelable,\n composed: e.composed,\n detail: e.detail,\n view: e.view\n });\n if (e.defaultPrevented) {\n newEvent.preventDefault();\n }\n return newEvent;\n }\n var fakeEvt = cloneMouseEvent(e);\n fakeEvt.touches = e.touches;\n fakeEvt.changedTouches = e.changedTouches;\n fakeEvt.targetTouches = e.targetTouches;\n return fakeEvt;\n}\n/**\n * @private\n */\nfunction escapeStringForHTML(str) {\n return str\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(/\\//g, '/');\n}\n/**\n * Get an element by ID\n * @private\n */\nfunction getElement(id) {\n return doc.getElementById(id);\n}\n/**\n * Get a fake mouse event of a given type. If relatedTarget is not given,\n * it will point to simulatedEventTarget, as an indicator that the event\n * is fake.\n * @private\n */\nfunction getFakeMouseEvent(type, position, relatedTarget) {\n var pos = position || {\n x: 0,\n y: 0\n };\n if (typeof win.MouseEvent === 'function') {\n return new win.MouseEvent(type, {\n bubbles: true,\n cancelable: true,\n composed: true,\n button: 0,\n buttons: 1,\n relatedTarget: relatedTarget || simulatedEventTarget,\n view: win,\n detail: type === 'click' ? 1 : 0,\n screenX: pos.x,\n screenY: pos.y,\n clientX: pos.x,\n clientY: pos.y\n });\n }\n // No MouseEvent support, try using initMouseEvent\n if (doc.createEvent) {\n var evt = doc.createEvent('MouseEvent');\n if (evt.initMouseEvent) {\n evt.initMouseEvent(type, true, // Bubble\n true, // Cancel\n win, // View\n type === 'click' ? 1 : 0, // Detail\n // Coords\n pos.x, pos.y, pos.x, pos.y, \n // Pressed keys\n false, false, false, false, 0, // Button\n null // Related target\n );\n return evt;\n }\n }\n return { type: type };\n}\n/**\n * Get an appropriate heading level for an element. Corresponds to the\n * heading level below the previous heading in the DOM.\n *\n * Note: Only detects previous headings in the DOM that are siblings,\n * ancestors, or previous siblings of ancestors. Headings that are nested below\n * siblings of ancestors (cousins et.al) are not picked up. This is because it\n * is ambiguous whether or not the nesting is for layout purposes or indicates a\n * separate section.\n *\n * @private\n * @param {Highcharts.HTMLDOMElement} [element]\n * @return {string} The heading tag name (h1, h2 etc).\n * If no nearest heading is found, \"p\" is returned.\n */\nfunction getHeadingTagNameForElement(element) {\n var getIncreasedHeadingLevel = function (tagName) {\n var headingLevel = parseInt(tagName.slice(1), 10),\n newLevel = Math.min(6,\n headingLevel + 1);\n return 'h' + newLevel;\n };\n var isHeading = function (tagName) { return /^H[1-6]$/i.test(tagName); };\n var getPreviousSiblingsHeading = function (el) {\n var sibling = el;\n while (sibling = sibling.previousSibling) { // eslint-disable-line\n var tagName = sibling.tagName || '';\n if (isHeading(tagName)) {\n return tagName;\n }\n }\n return '';\n };\n var getHeadingRecursive = function (el) {\n var prevSiblingsHeading = getPreviousSiblingsHeading(el);\n if (prevSiblingsHeading) {\n return getIncreasedHeadingLevel(prevSiblingsHeading);\n }\n // No previous siblings are headings, try parent node\n var parent = el.parentElement;\n if (!parent) {\n return 'h6';\n }\n var parentTagName = parent.tagName;\n if (isHeading(parentTagName)) {\n return getIncreasedHeadingLevel(parentTagName);\n }\n return getHeadingRecursive(parent);\n };\n return getHeadingRecursive(element);\n}\n/**\n * Remove an element from the DOM.\n * @private\n * @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} [element]\n * @return {void}\n */\nfunction removeElement(element) {\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n}\n/**\n * Remove all child nodes from an element.\n * @private\n * @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} [element]\n * @return {void}\n */\nfunction removeChildNodes(element) {\n while (element.lastChild) {\n element.removeChild(element.lastChild);\n }\n}\n/**\n * Utility function. Reverses child nodes of a DOM element.\n * @private\n */\nfunction reverseChildNodes(node) {\n var i = node.childNodes.length;\n while (i--) {\n node.appendChild(node.childNodes[i]);\n }\n}\n/**\n * Used for aria-label attributes, painting on a canvas will fail if the\n * text contains tags.\n * @private\n */\nfunction stripHTMLTagsFromString(str, isForExport) {\n if (isForExport === void 0) { isForExport = false; }\n return (typeof str === 'string') ?\n (isForExport ?\n str.replace(/<\\/?[^>]+(>|$)/g, '') :\n str.replace(/<\\/?(?!\\s)[^>]+(>|$)/g, '')) : str;\n}\n/**\n * Utility function for hiding an element visually, but still keeping it\n * available to screen reader users.\n * @private\n */\nfunction visuallyHideElement(element) {\n css(element, {\n position: 'absolute',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n clip: 'rect(1px, 1px, 1px, 1px)',\n marginTop: '-3px',\n '-ms-filter': 'progid:DXImageTransform.Microsoft.Alpha(Opacity=1)',\n filter: 'alpha(opacity=1)',\n opacity: 0.01\n });\n}\n/* *\n *\n * Default Export\n *\n * */\nvar HTMLUtilities = {\n addClass: addClass,\n cloneMouseEvent: cloneMouseEvent,\n cloneTouchEvent: cloneTouchEvent,\n escapeStringForHTML: escapeStringForHTML,\n getElement: getElement,\n getFakeMouseEvent: getFakeMouseEvent,\n getHeadingTagNameForElement: getHeadingTagNameForElement,\n removeChildNodes: removeChildNodes,\n removeClass: removeClass,\n removeElement: removeElement,\n reverseChildNodes: reverseChildNodes,\n simulatedEventTarget: simulatedEventTarget,\n stripHTMLTagsFromString: stripHTMLTagsFromString,\n visuallyHideElement: visuallyHideElement\n};\n/* harmony default export */ var Utils_HTMLUtilities = (HTMLUtilities);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Templating\"],\"commonjs\":[\"highcharts\",\"Templating\"],\"commonjs2\":[\"highcharts\",\"Templating\"],\"root\":[\"Highcharts\",\"Templating\"]}\nvar highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_ = __webpack_require__(984);\nvar highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default = /*#__PURE__*/__webpack_require__.n(highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_);\n;// ./code/es5/es-modules/Accessibility/A11yI18n.js\n/* *\n *\n * Accessibility module - internationalization support\n *\n * (c) 2010-2024 Highsoft AS\n * Author: Øystein Moseng\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar format = (highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default()).format;\n\nvar getNestedProperty = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).getNestedProperty, pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Composition\n *\n * */\nvar A11yI18nComposition;\n(function (A11yI18nComposition) {\n /* *\n *\n * Declarations\n *\n * */\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n function compose(ChartClass) {\n var chartProto = ChartClass.prototype;\n if (!chartProto.langFormat) {\n chartProto.langFormat = langFormat;\n }\n }\n A11yI18nComposition.compose = compose;\n /**\n * I18n utility function. Format a single array or plural statement in a\n * format string. If the statement is not an array or plural statement,\n * returns the statement within brackets. Invalid array statements return\n * an empty string.\n *\n * @private\n * @function formatExtendedStatement\n * @param {string} statement\n * @param {Highcharts.Dictionary<*>} ctx\n * Context to apply to the format string.\n */\n function formatExtendedStatement(statement, ctx) {\n var eachStart = statement.indexOf('#each('), pluralStart = statement.indexOf('#plural('), indexStart = statement.indexOf('['), indexEnd = statement.indexOf(']');\n var arr,\n result;\n // Dealing with an each-function?\n if (eachStart > -1) {\n var eachEnd = statement.slice(eachStart).indexOf(')') + eachStart, preEach = statement.substring(0, eachStart), postEach = statement.substring(eachEnd + 1), eachStatement = statement.substring(eachStart + 6, eachEnd), eachArguments = eachStatement.split(',');\n var lenArg = Number(eachArguments[1]),\n len = void 0;\n result = '';\n arr = getNestedProperty(eachArguments[0], ctx);\n if (arr) {\n lenArg = isNaN(lenArg) ? arr.length : lenArg;\n len = lenArg < 0 ?\n arr.length + lenArg :\n Math.min(lenArg, arr.length); // Overshoot\n // Run through the array for the specified length\n for (var i = 0; i < len; ++i) {\n result += preEach + arr[i] + postEach;\n }\n }\n return result.length ? result : '';\n }\n // Dealing with a plural-function?\n if (pluralStart > -1) {\n var pluralEnd = (statement.slice(pluralStart).indexOf(')') + pluralStart), pluralStatement = statement.substring(pluralStart + 8, pluralEnd), pluralArguments = pluralStatement.split(','), num = Number(getNestedProperty(pluralArguments[0], ctx));\n switch (num) {\n case 0:\n result = pick(pluralArguments[4], pluralArguments[1]);\n break;\n case 1:\n result = pick(pluralArguments[2], pluralArguments[1]);\n break;\n case 2:\n result = pick(pluralArguments[3], pluralArguments[1]);\n break;\n default:\n result = pluralArguments[1];\n }\n return result ? stringTrim(result) : '';\n }\n // Array index\n if (indexStart > -1) {\n var arrayName = statement.substring(0,\n indexStart),\n ix = Number(statement.substring(indexStart + 1,\n indexEnd));\n var val = void 0;\n arr = getNestedProperty(arrayName, ctx);\n if (!isNaN(ix) && arr) {\n if (ix < 0) {\n val = arr[arr.length + ix];\n // Handle negative overshoot\n if (typeof val === 'undefined') {\n val = arr[0];\n }\n }\n else {\n val = arr[ix];\n // Handle positive overshoot\n if (typeof val === 'undefined') {\n val = arr[arr.length - 1];\n }\n }\n }\n return typeof val !== 'undefined' ? val : '';\n }\n // Standard substitution, delegate to format or similar\n return '{' + statement + '}';\n }\n /* eslint-disable max-len */\n /**\n * i18n formatting function. Extends Highcharts.format() functionality by\n * also handling arrays and plural conditionals. Arrays can be indexed as\n * follows:\n *\n * - Format: 'This is the first index: {myArray[0]}. The last: {myArray[-1]}.'\n *\n * - Context: { myArray: [0, 1, 2, 3, 4, 5] }\n *\n * - Result: 'This is the first index: 0. The last: 5.'\n *\n *\n * They can also be iterated using the #each() function. This will repeat\n * the contents of the bracket expression for each element. Example:\n *\n * - Format: 'List contains: {#each(myArray)cm }'\n *\n * - Context: { myArray: [0, 1, 2] }\n *\n * - Result: 'List contains: 0cm 1cm 2cm '\n *\n *\n * The #each() function optionally takes a length parameter. If positive,\n * this parameter specifies the max number of elements to iterate through.\n * If negative, the function will subtract the number from the length of the\n * array. Use this to stop iterating before the array ends. Example:\n *\n * - Format: 'List contains: {#each(myArray, -1), }and {myArray[-1]}.'\n *\n * - Context: { myArray: [0, 1, 2, 3] }\n *\n * - Result: 'List contains: 0, 1, 2, and 3.'\n *\n *\n * Use the #plural() function to pick a string depending on whether or not a\n * context object is 1. Arguments are #plural(obj, plural, singular).\n * Example:\n *\n * - Format: 'Has {numPoints} {#plural(numPoints, points, point}.'\n *\n * - Context: { numPoints: 5 }\n *\n * - Result: 'Has 5 points.'\n *\n *\n * Optionally there are additional parameters for dual and none:\n * #plural(obj, plural, singular, dual, none). Example:\n *\n * - Format: 'Has {#plural(numPoints, many points, one point, two points,\n * none}.'\n *\n * - Context: { numPoints: 2 }\n *\n * - Result: 'Has two points.'\n *\n *\n * The dual or none parameters will take precedence if they are supplied.\n *\n * @requires modules/accessibility\n *\n * @function Highcharts.i18nFormat\n *\n * @param {string} formatString\n * The string to format.\n *\n * @param {Highcharts.Dictionary<*>} context\n * Context to apply to the format string.\n *\n * @param {Highcharts.Chart} chart\n * A `Chart` instance with a time object and numberFormatter, passed on to\n * format().\n *\n * @deprecated\n *\n * @return {string}\n * The formatted string.\n */\n function i18nFormat(formatString, context, chart) {\n var getFirstBracketStatement = function (sourceStr, offset) {\n var str = sourceStr.slice(offset || 0), startBracket = str.indexOf('{'), endBracket = str.indexOf('}');\n if (startBracket > -1 && endBracket > startBracket) {\n return {\n statement: str.substring(startBracket + 1, endBracket),\n begin: offset + startBracket + 1,\n end: offset + endBracket\n };\n }\n }, tokens = [];\n var bracketRes,\n constRes,\n cursor = 0;\n // Tokenize format string into bracket statements and constants\n do {\n bracketRes = getFirstBracketStatement(formatString, cursor);\n constRes = formatString.substring(cursor, bracketRes && bracketRes.begin - 1);\n // If we have constant content before this bracket statement, add it\n if (constRes.length) {\n tokens.push({\n value: constRes,\n type: 'constant'\n });\n }\n // Add the bracket statement\n if (bracketRes) {\n tokens.push({\n value: bracketRes.statement,\n type: 'statement'\n });\n }\n cursor = bracketRes ? bracketRes.end + 1 : cursor + 1;\n } while (bracketRes);\n // Perform the formatting. The formatArrayStatement function returns\n // the statement in brackets if it is not an array statement, which\n // means it gets picked up by format below.\n tokens.forEach(function (token) {\n if (token.type === 'statement') {\n token.value = formatExtendedStatement(token.value, context);\n }\n });\n // Join string back together and pass to format to pick up non-array\n // statements.\n return format(tokens.reduce(function (acc, cur) { return acc + cur.value; }, ''), context, chart);\n }\n A11yI18nComposition.i18nFormat = i18nFormat;\n /* eslint-enable max-len */\n /**\n * Apply context to a format string from lang options of the chart.\n *\n * @requires modules/accessibility\n *\n * @function Highcharts.Chart#langFormat\n *\n * @param {string} langKey\n * Key (using dot notation) into lang option structure.\n *\n * @param {Highcharts.Dictionary<*>} context\n * Context to apply to the format string.\n *\n * @return {string}\n * The formatted string.\n */\n function langFormat(langKey, context) {\n var keys = langKey.split('.');\n var formatString = this.options.lang,\n i = 0;\n for (; i < keys.length; ++i) {\n formatString = formatString && formatString[keys[i]];\n }\n return typeof formatString === 'string' ?\n i18nFormat(formatString, context, this) : '';\n }\n /**\n * @private\n * @function stringTrim\n *\n * @param {string} str\n * The input string\n *\n * @return {string}\n * The trimmed string\n */\n function stringTrim(str) {\n return str.trim && str.trim() || str.replace(/^\\s+|\\s+$/g, '');\n }\n})(A11yI18nComposition || (A11yI18nComposition = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var A11yI18n = (A11yI18nComposition);\n\n;// ./code/es5/es-modules/Accessibility/Utils/ChartUtilities.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Utils for dealing with charts.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar ChartUtilities_doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc;\n\nvar stripHTMLTags = Utils_HTMLUtilities.stripHTMLTagsFromString;\n\nvar defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, find = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).find, fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent;\n/* *\n *\n * Functions\n *\n * */\n/* eslint-disable valid-jsdoc */\n/**\n * Fire an event on an element that is either wrapped by Highcharts,\n * or a DOM element.\n * @private\n */\nfunction fireEventOnWrappedOrUnwrappedElement(el, eventObject) {\n var type = eventObject.type;\n var hcEvents = el.hcEvents;\n if (!!ChartUtilities_doc.createEvent &&\n (el.dispatchEvent || el.fireEvent)) {\n if (el.dispatchEvent) {\n el.dispatchEvent(eventObject);\n }\n else {\n el.fireEvent(type, eventObject);\n }\n }\n else if (hcEvents && hcEvents[type]) {\n fireEvent(el, type, eventObject);\n }\n else if (el.element) {\n fireEventOnWrappedOrUnwrappedElement(el.element, eventObject);\n }\n}\n/**\n * @private\n */\nfunction getChartTitle(chart) {\n return stripHTMLTags(chart.options.title.text ||\n chart.langFormat('accessibility.defaultChartTitle', { chart: chart }), chart.renderer.forExport);\n}\n/**\n * Return string with the axis name/title.\n * @private\n */\nfunction getAxisDescription(axis) {\n var _a,\n _b;\n return axis && (((_a = axis.options.accessibility) === null || _a === void 0 ? void 0 : _a.description) ||\n ((_b = axis.axisTitle) === null || _b === void 0 ? void 0 : _b.textStr) ||\n axis.options.id ||\n axis.categories && 'categories' ||\n axis.dateTime && 'Time' ||\n 'values');\n}\n/**\n * Return string with text description of the axis range.\n * @private\n * @param {Highcharts.Axis} axis\n * The axis to get range desc of.\n * @return {string}\n * A string with the range description for the axis.\n */\nfunction getAxisRangeDescription(axis) {\n var axisOptions = axis.options || {};\n // Handle overridden range description\n if (axisOptions.accessibility &&\n typeof axisOptions.accessibility.rangeDescription !== 'undefined') {\n return axisOptions.accessibility.rangeDescription;\n }\n // Handle category axes\n if (axis.categories) {\n return getCategoryAxisRangeDesc(axis);\n }\n // Use time range, not from-to?\n if (axis.dateTime && (axis.min === 0 || axis.dataMin === 0)) {\n return getAxisTimeLengthDesc(axis);\n }\n // Just use from and to.\n // We have the range and the unit to use, find the desc format\n return getAxisFromToDescription(axis);\n}\n/**\n * Describe the range of a category axis.\n * @private\n */\nfunction getCategoryAxisRangeDesc(axis) {\n var chart = axis.chart;\n if (axis.dataMax && axis.dataMin) {\n return chart.langFormat('accessibility.axis.rangeCategories', {\n chart: chart,\n axis: axis,\n numCategories: axis.dataMax - axis.dataMin + 1\n });\n }\n return '';\n}\n/**\n * Describe the length of the time window shown on an axis.\n * @private\n */\nfunction getAxisTimeLengthDesc(axis) {\n var chart = axis.chart,\n range = {},\n min = axis.dataMin || axis.min || 0,\n max = axis.dataMax || axis.max || 0;\n var rangeUnit = 'Seconds';\n range.Seconds = (max - min) / 1000;\n range.Minutes = range.Seconds / 60;\n range.Hours = range.Minutes / 60;\n range.Days = range.Hours / 24;\n ['Minutes', 'Hours', 'Days'].forEach(function (unit) {\n if (range[unit] > 2) {\n rangeUnit = unit;\n }\n });\n var rangeValue = range[rangeUnit].toFixed(rangeUnit !== 'Seconds' &&\n rangeUnit !== 'Minutes' ? 1 : 0 // Use decimals for days/hours\n );\n // We have the range and the unit to use, find the desc format\n return chart.langFormat('accessibility.axis.timeRange' + rangeUnit, {\n chart: chart,\n axis: axis,\n range: rangeValue.replace('.0', '')\n });\n}\n/**\n * Describe an axis from-to range.\n * @private\n */\nfunction getAxisFromToDescription(axis) {\n var chart = axis.chart,\n options = chart.options,\n dateRangeFormat = (options &&\n options.accessibility &&\n options.accessibility.screenReaderSection.axisRangeDateFormat ||\n ''),\n extremes = {\n min: axis.dataMin || axis.min || 0,\n max: axis.dataMax || axis.max || 0\n },\n format = function (key) {\n return axis.dateTime ?\n chart.time.dateFormat(dateRangeFormat,\n extremes[key]) :\n extremes[key].toString();\n };\n return chart.langFormat('accessibility.axis.rangeFromTo', {\n chart: chart,\n axis: axis,\n rangeFrom: format('min'),\n rangeTo: format('max')\n });\n}\n/**\n * Get the DOM element for the first point in the series.\n * @private\n * @param {Highcharts.Series} series\n * The series to get element for.\n * @return {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement|undefined}\n * The DOM element for the point.\n */\nfunction getSeriesFirstPointElement(series) {\n if (series.points && series.points.length) {\n var firstPointWithGraphic = find(series.points,\n function (p) { return !!p.graphic; });\n return (firstPointWithGraphic &&\n firstPointWithGraphic.graphic &&\n firstPointWithGraphic.graphic.element);\n }\n}\n/**\n * Get the DOM element for the series that we put accessibility info on.\n * @private\n * @param {Highcharts.Series} series\n * The series to get element for.\n * @return {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement|undefined}\n * The DOM element for the series\n */\nfunction getSeriesA11yElement(series) {\n var firstPointEl = getSeriesFirstPointElement(series);\n return (firstPointEl &&\n firstPointEl.parentNode || series.graph &&\n series.graph.element || series.group &&\n series.group.element); // Could be tracker series depending on series type\n}\n/**\n * Remove aria-hidden from element. Also unhides parents of the element, and\n * hides siblings that are not explicitly unhidden.\n * @private\n */\nfunction unhideChartElementFromAT(chart, element) {\n element.setAttribute('aria-hidden', false);\n if (element === chart.renderTo ||\n !element.parentNode ||\n element.parentNode === ChartUtilities_doc.body // #16126: Full screen printing\n ) {\n return;\n }\n // Hide siblings unless their hidden state is already explicitly set\n Array.prototype.forEach.call(element.parentNode.childNodes, function (node) {\n if (!node.hasAttribute('aria-hidden')) {\n node.setAttribute('aria-hidden', true);\n }\n });\n // Repeat for parent\n unhideChartElementFromAT(chart, element.parentNode);\n}\n/**\n * Hide series from screen readers.\n * @private\n */\nfunction hideSeriesFromAT(series) {\n var seriesEl = getSeriesA11yElement(series);\n if (seriesEl) {\n seriesEl.setAttribute('aria-hidden', true);\n }\n}\n/**\n * Get series objects by series name.\n * @private\n */\nfunction getSeriesFromName(chart, name) {\n if (!name) {\n return chart.series;\n }\n return (chart.series || []).filter(function (s) {\n return s.name === name;\n });\n}\n/**\n * Get point in a series from x/y values.\n * @private\n */\nfunction getPointFromXY(series, x, y) {\n var i = series.length,\n res;\n while (i--) {\n res = find(series[i].points || [], function (p) {\n return p.x === x && p.y === y;\n });\n if (res) {\n return res;\n }\n }\n}\n/**\n * Get relative position of point on an x/y axis from 0 to 1.\n * @private\n */\nfunction getRelativePointAxisPosition(axis, point) {\n if (!defined(axis.dataMin) || !defined(axis.dataMax)) {\n return 0;\n }\n var axisStart = axis.toPixels(axis.dataMin),\n axisEnd = axis.toPixels(axis.dataMax), \n // We have to use pixel position because of axis breaks, log axis etc.\n positionProp = axis.coll === 'xAxis' ? 'x' : 'y',\n pointPos = axis.toPixels(point[positionProp] || 0);\n return (pointPos - axisStart) / (axisEnd - axisStart);\n}\n/**\n * Get relative position of point on an x/y axis from 0 to 1.\n * @private\n */\nfunction scrollAxisToPoint(point) {\n var xAxis = point.series.xAxis,\n yAxis = point.series.yAxis,\n axis = (xAxis && xAxis.scrollbar ? xAxis : yAxis),\n scrollbar = (axis && axis.scrollbar);\n if (scrollbar && defined(scrollbar.to) && defined(scrollbar.from)) {\n var range = scrollbar.to - scrollbar.from;\n var pos = getRelativePointAxisPosition(axis,\n point);\n scrollbar.updatePosition(pos - range / 2, pos + range / 2);\n fireEvent(scrollbar, 'changed', {\n from: scrollbar.from,\n to: scrollbar.to,\n trigger: 'scrollbar',\n DOMEvent: null\n });\n }\n}\n/* *\n *\n * Default Export\n *\n * */\nvar ChartUtilities = {\n fireEventOnWrappedOrUnwrappedElement: fireEventOnWrappedOrUnwrappedElement,\n getChartTitle: getChartTitle,\n getAxisDescription: getAxisDescription,\n getAxisRangeDescription: getAxisRangeDescription,\n getPointFromXY: getPointFromXY,\n getSeriesFirstPointElement: getSeriesFirstPointElement,\n getSeriesFromName: getSeriesFromName,\n getSeriesA11yElement: getSeriesA11yElement,\n unhideChartElementFromAT: unhideChartElementFromAT,\n hideSeriesFromAT: hideSeriesFromAT,\n scrollAxisToPoint: scrollAxisToPoint\n};\n/* harmony default export */ var Utils_ChartUtilities = (ChartUtilities);\n\n;// ./code/es5/es-modules/Accessibility/Utils/DOMElementProvider.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Class that can keep track of elements added to DOM and clean them up on\n * destroy.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar DOMElementProvider_doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc;\n\nvar DOMElementProvider_removeElement = Utils_HTMLUtilities.removeElement;\n/* *\n *\n * Class\n *\n * */\n/**\n * @private\n */\nvar DOMElementProvider = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function DOMElementProvider() {\n this.elements = [];\n }\n /**\n * Create an element and keep track of it for later removal.\n * Same args as document.createElement\n * @private\n */\n DOMElementProvider.prototype.createElement = function () {\n var el = DOMElementProvider_doc.createElement.apply(DOMElementProvider_doc,\n arguments);\n this.elements.push(el);\n return el;\n };\n /**\n * Destroy created element, removing it from the DOM.\n * @private\n */\n DOMElementProvider.prototype.removeElement = function (element) {\n DOMElementProvider_removeElement(element);\n this.elements.splice(this.elements.indexOf(element), 1);\n };\n /**\n * Destroy all created elements, removing them from the DOM.\n * @private\n */\n DOMElementProvider.prototype.destroyCreatedElements = function () {\n this.elements.forEach(function (element) {\n DOMElementProvider_removeElement(element);\n });\n this.elements = [];\n };\n return DOMElementProvider;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Utils_DOMElementProvider = (DOMElementProvider);\n\n;// ./code/es5/es-modules/Accessibility/Utils/EventProvider.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Class that can keep track of events added, and clean them up on destroy.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\nvar addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent;\n/**\n * @private\n */\nvar EventProvider = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function EventProvider() {\n this.eventRemovers = [];\n }\n /**\n * Add an event to an element and keep track of it for later removal.\n * Same args as Highcharts.addEvent.\n * @private\n */\n EventProvider.prototype.addEvent = function () {\n var remover = addEvent.apply((highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()),\n arguments);\n this.eventRemovers.push({\n element: arguments[0], // HTML element\n remover: remover\n });\n return remover;\n };\n /**\n * Remove added event.\n * @private\n */\n EventProvider.prototype.removeEvent = function (event) {\n var pos = this.eventRemovers.map(function (e) { return e.remover; }).indexOf(event);\n this.eventRemovers[pos].remover();\n this.eventRemovers.splice(pos, 1);\n };\n /**\n * Remove all added events.\n * @private\n */\n EventProvider.prototype.removeAddedEvents = function () {\n this.eventRemovers.map(function (e) { return e.remover; })\n .forEach(function (remover) { return remover(); });\n this.eventRemovers = [];\n };\n return EventProvider;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Utils_EventProvider = (EventProvider);\n\n;// ./code/es5/es-modules/Accessibility/AccessibilityComponent.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Accessibility component class definition\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar AccessibilityComponent_fireEventOnWrappedOrUnwrappedElement = Utils_ChartUtilities.fireEventOnWrappedOrUnwrappedElement;\n\n\n\nvar AccessibilityComponent_getFakeMouseEvent = Utils_HTMLUtilities.getFakeMouseEvent;\n/* *\n *\n * Class\n *\n * */\n/**\n * The AccessibilityComponent base class, representing a part of the chart that\n * has accessibility logic connected to it. This class can be inherited from to\n * create a custom accessibility component for a chart.\n *\n * Components should take care to destroy added elements and unregister event\n * handlers on destroy. This is handled automatically if using `this.addEvent`\n * and `this.createElement`.\n *\n * @sample highcharts/accessibility/custom-component\n * Custom accessibility component\n *\n * @requires modules/accessibility\n * @class\n * @name Highcharts.AccessibilityComponent\n */\nvar AccessibilityComponent = /** @class */ (function () {\n function AccessibilityComponent() {\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Called when accessibility is disabled or chart is destroyed.\n *\n * @function Highcharts.AccessibilityComponent#destroy\n */\n AccessibilityComponent.prototype.destroy = function () { };\n /**\n * Get keyboard navigation handler for this component.\n *\n * @function Highcharts.AccessibilityComponent#getKeyboardNavigation\n * @return {Highcharts.KeyboardNavigationHandler|Array<Highcharts.KeyboardNavigationHandler>}\n * The keyboard navigation handler(s) for this component.\n */\n AccessibilityComponent.prototype.getKeyboardNavigation = function () {\n return [];\n };\n /**\n * Called on component initialization.\n *\n * @function Highcharts.AccessibilityComponent#init\n */\n AccessibilityComponent.prototype.init = function () { };\n /**\n * Called on every chart render.\n *\n * @function Highcharts.AccessibilityComponent#onChartRender\n */\n AccessibilityComponent.prototype.onChartRender = function () { };\n /**\n * Called on updates to the chart, including options changes.\n * Note that this is also called on first render of chart.\n *\n * @function Highcharts.AccessibilityComponent#onChartUpdate\n */\n AccessibilityComponent.prototype.onChartUpdate = function () { };\n /**\n * Initialize the class\n * @private\n * @param {Highcharts.Chart} chart The chart object\n * @param {Highcharts.ProxyProvider} proxyProvider The proxy provider of the accessibility module\n */\n AccessibilityComponent.prototype.initBase = function (chart, proxyProvider) {\n this.chart = chart;\n this.eventProvider = new Utils_EventProvider();\n this.domElementProvider = new Utils_DOMElementProvider();\n this.proxyProvider = proxyProvider;\n // Key code enum for common keys\n this.keyCodes = {\n left: 37,\n right: 39,\n up: 38,\n down: 40,\n enter: 13,\n space: 32,\n esc: 27,\n tab: 9,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36\n };\n };\n /**\n * Add an event to an element and keep track of it for later removal.\n * See EventProvider for details.\n * @private\n */\n AccessibilityComponent.prototype.addEvent = function (el, type, fn, options) {\n return this.eventProvider.addEvent(el, type, fn, options);\n };\n /**\n * Create an element and keep track of it for later removal.\n * See DOMElementProvider for details.\n * @private\n */\n AccessibilityComponent.prototype.createElement = function (tagName, options) {\n return this.domElementProvider.createElement(tagName, options);\n };\n /**\n * Fire a fake click event on an element. It is useful to have this on\n * AccessibilityComponent for users of custom components.\n * @private\n */\n AccessibilityComponent.prototype.fakeClickEvent = function (el) {\n var fakeEvent = AccessibilityComponent_getFakeMouseEvent('click');\n AccessibilityComponent_fireEventOnWrappedOrUnwrappedElement(el, fakeEvent);\n };\n /**\n * Remove traces of the component.\n * @private\n */\n AccessibilityComponent.prototype.destroyBase = function () {\n this.domElementProvider.destroyCreatedElements();\n this.eventProvider.removeAddedEvents();\n };\n return AccessibilityComponent;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Accessibility_AccessibilityComponent = (AccessibilityComponent);\n\n;// ./code/es5/es-modules/Accessibility/KeyboardNavigationHandler.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Keyboard navigation handler base class definition\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar KeyboardNavigationHandler_find = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).find;\n/* *\n *\n * Class\n *\n * */\n/**\n * Define a keyboard navigation handler for use with a\n * Highcharts.AccessibilityComponent instance. This functions as an abstraction\n * layer for keyboard navigation, and defines a map of keyCodes to handler\n * functions.\n *\n * @requires modules/accessibility\n *\n * @sample highcharts/accessibility/custom-component\n * Custom accessibility component\n *\n * @class\n * @name Highcharts.KeyboardNavigationHandler\n *\n * @param {Highcharts.Chart} chart\n * The chart this module should act on.\n *\n * @param {Highcharts.KeyboardNavigationHandlerOptionsObject} options\n * Options for the keyboard navigation handler.\n */\nvar KeyboardNavigationHandler = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function KeyboardNavigationHandler(chart, options) {\n this.chart = chart;\n this.keyCodeMap = options.keyCodeMap || [];\n this.validate = options.validate;\n this.init = options.init;\n this.terminate = options.terminate;\n // Response enum\n this.response = {\n success: 1, // Keycode was handled\n prev: 2, // Move to prev module\n next: 3, // Move to next module\n noHandler: 4, // There is no handler for this keycode\n fail: 5 // Handler failed\n };\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Find handler function(s) for key code in the keyCodeMap and run it.\n *\n * @function KeyboardNavigationHandler#run\n * @param {global.KeyboardEvent} e\n * @return {number} Returns a response code indicating whether the run was\n * a success/fail/unhandled, or if we should move to next/prev module.\n */\n KeyboardNavigationHandler.prototype.run = function (e) {\n var keyCode = e.which || e.keyCode;\n var response = this.response.noHandler;\n var handlerCodeSet = KeyboardNavigationHandler_find(this.keyCodeMap,\n function (codeSet) {\n return codeSet[0].indexOf(keyCode) > -1;\n });\n if (handlerCodeSet) {\n response = handlerCodeSet[1].call(this, keyCode, e);\n }\n else if (keyCode === 9) {\n // Default tab handler, move to next/prev module\n response = this.response[e.shiftKey ? 'prev' : 'next'];\n }\n return response;\n };\n return KeyboardNavigationHandler;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Accessibility_KeyboardNavigationHandler = (KeyboardNavigationHandler);\n/* *\n *\n * API Declarations\n *\n * */\n/**\n * Options for the keyboard navigation handler.\n *\n * @interface Highcharts.KeyboardNavigationHandlerOptionsObject\n */ /**\n* An array containing pairs of an array of keycodes, mapped to a handler\n* function. When the keycode is received, the handler is called with the\n* keycode as parameter.\n* @name Highcharts.KeyboardNavigationHandlerOptionsObject#keyCodeMap\n* @type {Array<Array<Array<number>, Function>>}\n*/ /**\n* Function to run on initialization of module.\n* @name Highcharts.KeyboardNavigationHandlerOptionsObject#init\n* @type {Function}\n*/ /**\n* Function to run before moving to next/prev module. Receives moving direction\n* as parameter: +1 for next, -1 for previous.\n* @name Highcharts.KeyboardNavigationHandlerOptionsObject#terminate\n* @type {Function|undefined}\n*/ /**\n* Function to run to validate module. Should return false if module should not\n* run, true otherwise. Receives chart as parameter.\n* @name Highcharts.KeyboardNavigationHandlerOptionsObject#validate\n* @type {Function|undefined}\n*/\n(''); // Keeps doclets above in JS file\n\n;// ./code/es5/es-modules/Accessibility/Components/ContainerComponent.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Accessibility component for chart container.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\nvar ContainerComponent_unhideChartElementFromAT = Utils_ChartUtilities.unhideChartElementFromAT, ContainerComponent_getChartTitle = Utils_ChartUtilities.getChartTitle;\n\nvar ContainerComponent_doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc;\n\nvar ContainerComponent_stripHTMLTags = Utils_HTMLUtilities.stripHTMLTagsFromString;\n/**\n * The ContainerComponent class\n *\n * @private\n * @class\n * @name Highcharts.ContainerComponent\n */\nvar ContainerComponent = /** @class */ (function (_super) {\n __extends(ContainerComponent, _super);\n function ContainerComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n /* eslint-disable valid-jsdoc */\n /**\n * Called on first render/updates to the chart, including options changes.\n */\n ContainerComponent.prototype.onChartUpdate = function () {\n this.handleSVGTitleElement();\n this.setSVGContainerLabel();\n this.setGraphicContainerAttrs();\n this.setRenderToAttrs();\n this.makeCreditsAccessible();\n };\n /**\n * @private\n */\n ContainerComponent.prototype.handleSVGTitleElement = function () {\n var chart = this.chart, titleId = 'highcharts-title-' + chart.index, titleContents = ContainerComponent_stripHTMLTags(chart.langFormat('accessibility.svgContainerTitle', {\n chartTitle: ContainerComponent_getChartTitle(chart)\n }));\n if (titleContents.length) {\n var titleElement = this.svgTitleElement =\n this.svgTitleElement || ContainerComponent_doc.createElementNS('http://www.w3.org/2000/svg', 'title');\n titleElement.textContent = titleContents;\n titleElement.id = titleId;\n chart.renderTo.insertBefore(titleElement, chart.renderTo.firstChild);\n }\n };\n /**\n * @private\n */\n ContainerComponent.prototype.setSVGContainerLabel = function () {\n var chart = this.chart,\n svgContainerLabel = chart.langFormat('accessibility.svgContainerLabel', {\n chartTitle: ContainerComponent_getChartTitle(chart)\n });\n if (chart.renderer.box && svgContainerLabel.length) {\n chart.renderer.box.setAttribute('aria-label', svgContainerLabel);\n }\n };\n /**\n * @private\n */\n ContainerComponent.prototype.setGraphicContainerAttrs = function () {\n var chart = this.chart,\n label = chart.langFormat('accessibility.graphicContainerLabel', {\n chartTitle: ContainerComponent_getChartTitle(chart)\n });\n if (label.length) {\n chart.container.setAttribute('aria-label', label);\n }\n };\n /**\n * Set attributes on the chart container element.\n * @private\n */\n ContainerComponent.prototype.setRenderToAttrs = function () {\n var chart = this.chart, shouldHaveLandmark = chart.options.accessibility\n .landmarkVerbosity !== 'disabled', containerLabel = chart.langFormat('accessibility.chartContainerLabel', {\n title: ContainerComponent_getChartTitle(chart),\n chart: chart\n });\n if (containerLabel) {\n chart.renderTo.setAttribute('role', shouldHaveLandmark ? 'region' : 'group');\n chart.renderTo.setAttribute('aria-label', containerLabel);\n }\n };\n /**\n * @private\n */\n ContainerComponent.prototype.makeCreditsAccessible = function () {\n var chart = this.chart,\n credits = chart.credits;\n if (credits) {\n if (credits.textStr) {\n credits.element.setAttribute('aria-label', chart.langFormat('accessibility.credits', {\n creditsStr: ContainerComponent_stripHTMLTags(credits.textStr, chart.renderer.forExport)\n }));\n }\n ContainerComponent_unhideChartElementFromAT(chart, credits.element);\n }\n };\n /**\n * Empty handler to just set focus on chart\n * @private\n */\n ContainerComponent.prototype.getKeyboardNavigation = function () {\n var chart = this.chart;\n return new Accessibility_KeyboardNavigationHandler(chart, {\n keyCodeMap: [],\n validate: function () {\n return true;\n },\n init: function () {\n var a11y = chart.accessibility;\n if (a11y) {\n a11y.keyboardNavigation.tabindexContainer.focus();\n }\n }\n });\n };\n /**\n * Accessibility disabled/chart destroyed.\n */\n ContainerComponent.prototype.destroy = function () {\n this.chart.renderTo.setAttribute('aria-hidden', true);\n };\n return ContainerComponent;\n}(Accessibility_AccessibilityComponent));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Components_ContainerComponent = (ContainerComponent);\n\n;// ./code/es5/es-modules/Accessibility/FocusBorder.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Extend SVG and Chart classes with focus border capabilities.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar FocusBorder_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, FocusBorder_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Composition\n *\n * */\nvar FocusBorderComposition;\n(function (FocusBorderComposition) {\n /* *\n *\n * Declarations\n *\n * */\n /* *\n *\n * Constants\n *\n * */\n // Attributes that trigger a focus border update\n var svgElementBorderUpdateTriggers = [\n 'x', 'y', 'transform', 'width', 'height', 'r', 'd', 'stroke-width'\n ];\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n function compose(ChartClass, SVGElementClass) {\n var chartProto = ChartClass.prototype,\n svgElementProto = SVGElementClass.prototype;\n if (!chartProto.renderFocusBorder) {\n chartProto.renderFocusBorder = chartRenderFocusBorder;\n chartProto.setFocusToElement = chartSetFocusToElement;\n }\n if (!svgElementProto.addFocusBorder) {\n svgElementProto.addFocusBorder = svgElementAddFocusBorder;\n svgElementProto.removeFocusBorder = svgElementRemoveFocusBorder;\n }\n }\n FocusBorderComposition.compose = compose;\n /**\n * Redraws the focus border on the currently focused element.\n *\n * @private\n * @function Highcharts.Chart#renderFocusBorder\n */\n function chartRenderFocusBorder() {\n var focusElement = this.focusElement,\n focusBorderOptions = this.options.accessibility.keyboardNavigation.focusBorder;\n if (focusElement) {\n focusElement.removeFocusBorder();\n if (focusBorderOptions.enabled) {\n focusElement.addFocusBorder(focusBorderOptions.margin, {\n stroke: focusBorderOptions.style.color,\n strokeWidth: focusBorderOptions.style.lineWidth,\n r: focusBorderOptions.style.borderRadius\n });\n }\n }\n }\n /**\n * Set chart's focus to an SVGElement. Calls focus() on it, and draws the\n * focus border. This is used by multiple components.\n *\n * @private\n * @function Highcharts.Chart#setFocusToElement\n *\n * @param {Highcharts.SVGElement} svgElement\n * Element to draw the border around.\n *\n * @param {SVGDOMElement|HTMLDOMElement} [focusElement]\n * If supplied, it draws the border around svgElement and sets the focus to\n * focusElement.\n */\n function chartSetFocusToElement(svgElement, focusElement) {\n var focusBorderOptions = this.options.accessibility.keyboardNavigation.focusBorder,\n browserFocusElement = focusElement || svgElement.element;\n // Set browser focus if possible\n if (browserFocusElement &&\n browserFocusElement.focus) {\n // If there is no focusin-listener, add one to work around Edge\n // where Narrator is not reading out points despite calling focus().\n if (!(browserFocusElement.hcEvents &&\n browserFocusElement.hcEvents.focusin)) {\n FocusBorder_addEvent(browserFocusElement, 'focusin', function () { });\n }\n browserFocusElement.focus();\n // Hide default focus ring\n if (focusBorderOptions.hideBrowserFocusOutline) {\n browserFocusElement.style.outline = 'none';\n }\n }\n if (this.focusElement) {\n this.focusElement.removeFocusBorder();\n }\n this.focusElement = svgElement;\n this.renderFocusBorder();\n }\n /**\n * Add hook to destroy focus border if SVG element is destroyed, unless\n * hook already exists.\n * @private\n * @param el Element to add destroy hook to\n */\n function svgElementAddDestroyFocusBorderHook(el) {\n if (el.focusBorderDestroyHook) {\n return;\n }\n var origDestroy = el.destroy;\n el.destroy = function () {\n if (el.focusBorder && el.focusBorder.destroy) {\n el.focusBorder.destroy();\n }\n return origDestroy.apply(el, arguments);\n };\n el.focusBorderDestroyHook = origDestroy;\n }\n /**\n * Add focus border functionality to SVGElements. Draws a new rect on top of\n * element around its bounding box. This is used by multiple components.\n *\n * @private\n * @function Highcharts.SVGElement#addFocusBorder\n *\n * @param {number} margin\n *\n * @param {SVGAttributes} attribs\n */\n function svgElementAddFocusBorder(margin, attribs) {\n // Allow updating by just adding new border\n if (this.focusBorder) {\n this.removeFocusBorder();\n }\n // Add the border rect\n var bb = this.getBBox(),\n pad = FocusBorder_pick(margin, 3),\n parent = this.parentGroup,\n scaleX = this.scaleX || parent && parent.scaleX,\n scaleY = this.scaleY || parent && parent.scaleY,\n oneDefined = scaleX ? !scaleY : scaleY,\n scaleBoth = oneDefined ? Math.abs(scaleX || scaleY || 1) :\n (Math.abs(scaleX || 1) + Math.abs(scaleY || 1)) / 2,\n lineHeight = this.renderer.fontMetrics(this).h;\n bb.x += this.translateX ? this.translateX : 0;\n bb.y += this.translateY ? this.translateY : 0;\n var borderPosX = bb.x - pad,\n borderPosY = bb.y - pad,\n borderWidth = bb.width + 2 * pad,\n borderHeight = bb.height + 2 * pad;\n /**\n * For text elements, apply x and y offset, #11397.\n * @private\n */\n function getTextAnchorCorrection(text) {\n var posXCorrection = 0,\n posYCorrection = 0;\n if (text.attr('text-anchor') === 'middle') {\n posXCorrection = posYCorrection = 0.5;\n }\n else if (!text.rotation) {\n posYCorrection = 0.75;\n }\n else {\n posXCorrection = 0.25;\n }\n return {\n x: posXCorrection,\n y: posYCorrection\n };\n }\n var isLabel = !!this.text;\n if (this.element.nodeName === 'text' || isLabel) {\n var isRotated = !!this.rotation;\n var correction = !isLabel ? getTextAnchorCorrection(this) :\n {\n x: isRotated ? 1 : 0,\n y: 0\n };\n var attrX = +this.attr('x');\n var attrY = +this.attr('y');\n if (!isNaN(attrX)) {\n borderPosX = attrX - (bb.width * correction.x) - pad;\n }\n if (!isNaN(attrY)) {\n // Correct by line height if \"text-achor\" == \"start\", #19335.\n var dim = this.attr('text-anchor') === 'start' ?\n lineHeight :\n bb.height;\n borderPosY = attrY - (dim * correction.y) - pad;\n }\n if (isLabel && isRotated) {\n var temp = borderWidth;\n borderWidth = borderHeight;\n borderHeight = temp;\n if (!isNaN(attrX)) {\n borderPosX = attrX - (bb.height * correction.x) - pad;\n }\n if (!isNaN(attrY)) {\n borderPosY = attrY - (bb.width * correction.y) - pad;\n }\n }\n }\n this.focusBorder = this.renderer.rect(borderPosX, borderPosY, borderWidth, borderHeight, parseInt((attribs && attribs.r || 0).toString(), 10) / scaleBoth)\n .addClass('highcharts-focus-border')\n .attr({\n zIndex: 99\n })\n .add(parent);\n if (!this.renderer.styledMode) {\n this.focusBorder.attr({\n stroke: attribs && attribs.stroke,\n 'stroke-width': (attribs && attribs.strokeWidth || 0) / scaleBoth\n });\n }\n avgElementAddUpdateFocusBorderHooks(this, margin, attribs);\n svgElementAddDestroyFocusBorderHook(this);\n }\n /**\n * Add hooks to update the focus border of an element when the element\n * size/position is updated, unless already added.\n * @private\n * @param el Element to add update hooks to\n * @param updateParams Parameters to pass through to addFocusBorder when updating.\n */\n function avgElementAddUpdateFocusBorderHooks(el) {\n var updateParams = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n updateParams[_i - 1] = arguments[_i];\n }\n if (el.focusBorderUpdateHooks) {\n return;\n }\n el.focusBorderUpdateHooks = {};\n svgElementBorderUpdateTriggers.forEach(function (trigger) {\n var setterKey = trigger + 'Setter';\n var origSetter = el[setterKey] || el._defaultSetter;\n el.focusBorderUpdateHooks[setterKey] = origSetter;\n el[setterKey] = function () {\n var ret = origSetter.apply(el,\n arguments);\n el.addFocusBorder.apply(el, updateParams);\n return ret;\n };\n });\n }\n /**\n * Remove hook from SVG element added by addDestroyFocusBorderHook, if\n * existing.\n * @private\n * @param el Element to remove destroy hook from\n */\n function svgElementRemoveDestroyFocusBorderHook(el) {\n if (!el.focusBorderDestroyHook) {\n return;\n }\n el.destroy = el.focusBorderDestroyHook;\n delete el.focusBorderDestroyHook;\n }\n /**\n * Add focus border functionality to SVGElements. Draws a new rect on top of\n * element around its bounding box. This is used by multiple components.\n * @private\n * @function Highcharts.SVGElement#removeFocusBorder\n */\n function svgElementRemoveFocusBorder() {\n svgElementRemoveUpdateFocusBorderHooks(this);\n svgElementRemoveDestroyFocusBorderHook(this);\n if (this.focusBorder) {\n this.focusBorder.destroy();\n delete this.focusBorder;\n }\n }\n /**\n * Remove hooks from SVG element added by addUpdateFocusBorderHooks, if\n * existing.\n * @private\n * @param el Element to remove update hooks from\n */\n function svgElementRemoveUpdateFocusBorderHooks(el) {\n if (!el.focusBorderUpdateHooks) {\n return;\n }\n Object.keys(el.focusBorderUpdateHooks).forEach(function (setterKey) {\n var origSetter = el.focusBorderUpdateHooks[setterKey];\n if (origSetter === el._defaultSetter) {\n delete el[setterKey];\n }\n else {\n el[setterKey] = origSetter;\n }\n });\n delete el.focusBorderUpdateHooks;\n }\n})(FocusBorderComposition || (FocusBorderComposition = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var FocusBorder = (FocusBorderComposition);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"AST\"],\"commonjs\":[\"highcharts\",\"AST\"],\"commonjs2\":[\"highcharts\",\"AST\"],\"root\":[\"Highcharts\",\"AST\"]}\nvar highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_ = __webpack_require__(660);\nvar highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default = /*#__PURE__*/__webpack_require__.n(highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_);\n;// ./code/es5/es-modules/Accessibility/Utils/Announcer.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Create announcer to speak messages to screen readers and other AT.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\n\nvar Announcer_doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc;\n\nvar Announcer_addClass = Utils_HTMLUtilities.addClass, Announcer_visuallyHideElement = Utils_HTMLUtilities.visuallyHideElement;\n\nvar attr = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).attr;\n/* *\n *\n * Class\n *\n * */\nvar Announcer = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function Announcer(chart, type) {\n this.chart = chart;\n this.domElementProvider = new Utils_DOMElementProvider();\n this.announceRegion = this.addAnnounceRegion(type);\n }\n /* *\n *\n * Functions\n *\n * */\n Announcer.prototype.destroy = function () {\n this.domElementProvider.destroyCreatedElements();\n };\n Announcer.prototype.announce = function (message) {\n var _this = this;\n highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default().setElementHTML(this.announceRegion, message);\n // Delete contents after a little while to avoid user finding the live\n // region in the DOM.\n if (this.clearAnnouncementRegionTimer) {\n clearTimeout(this.clearAnnouncementRegionTimer);\n }\n this.clearAnnouncementRegionTimer = setTimeout(function () {\n _this.announceRegion.innerHTML = (highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default()).emptyHTML;\n delete _this.clearAnnouncementRegionTimer;\n }, 3000);\n };\n Announcer.prototype.addAnnounceRegion = function (type) {\n var chartContainer = (this.chart.announcerContainer || this.createAnnouncerContainer()),\n div = this.domElementProvider.createElement('div');\n attr(div, {\n 'aria-hidden': false,\n 'aria-live': type,\n 'aria-atomic': true\n });\n if (this.chart.styledMode) {\n Announcer_addClass(div, 'highcharts-visually-hidden');\n }\n else {\n Announcer_visuallyHideElement(div);\n }\n chartContainer.appendChild(div);\n return div;\n };\n Announcer.prototype.createAnnouncerContainer = function () {\n var chart = this.chart,\n container = Announcer_doc.createElement('div');\n attr(container, {\n 'aria-hidden': false,\n 'class': 'highcharts-announcer-container'\n });\n container.style.position = 'relative';\n chart.renderTo.insertBefore(container, chart.renderTo.firstChild);\n chart.announcerContainer = container;\n return container;\n };\n return Announcer;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Utils_Announcer = (Announcer);\n\n;// ./code/es5/es-modules/Accessibility/Components/AnnotationsA11y.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Annotations accessibility code.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar AnnotationsA11y_escapeStringForHTML = Utils_HTMLUtilities.escapeStringForHTML, AnnotationsA11y_stripHTMLTagsFromString = Utils_HTMLUtilities.stripHTMLTagsFromString;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Get list of all annotation labels in the chart.\n *\n * @private\n * @param {Highcharts.Chart} chart The chart to get annotation info on.\n * @return {Array<object>} The labels, or empty array if none.\n */\nfunction getChartAnnotationLabels(chart) {\n var annotations = chart.annotations || [];\n return annotations.reduce(function (acc, cur) {\n if (cur.options &&\n cur.options.visible !== false) {\n acc = acc.concat(cur.labels);\n }\n return acc;\n }, []);\n}\n/**\n * Get the text of an annotation label.\n *\n * @private\n * @param {Object} label The annotation label object\n * @return {string} The text in the label.\n */\nfunction getLabelText(label) {\n return ((label.options &&\n label.options.accessibility &&\n label.options.accessibility.description) ||\n (label.graphic &&\n label.graphic.text &&\n label.graphic.text.textStr) ||\n '');\n}\n/**\n * Describe an annotation label.\n *\n * @private\n * @param {Object} label The annotation label object to describe\n * @return {string} The description for the label.\n */\nfunction getAnnotationLabelDescription(label) {\n var a11yDesc = (label.options &&\n label.options.accessibility &&\n label.options.accessibility.description);\n if (a11yDesc) {\n return a11yDesc;\n }\n var chart = label.chart;\n var labelText = getLabelText(label);\n var points = label.points;\n var getAriaLabel = function (point) { return (point.graphic &&\n point.graphic.element &&\n point.graphic.element.getAttribute('aria-label') ||\n ''); };\n var getValueDesc = function (point) {\n var valDesc = (point.accessibility &&\n point.accessibility.valueDescription ||\n getAriaLabel(point));\n var seriesName = (point &&\n point.series.name ||\n '');\n return (seriesName ? seriesName + ', ' : '') + 'data point ' + valDesc;\n };\n var pointValueDescriptions = points\n .filter(function (p) { return !!p.graphic; }) // Filter out mock points\n .map(getValueDesc)\n // Filter out points we can't describe\n .filter(function (desc) { return !!desc; });\n var numPoints = pointValueDescriptions.length;\n var pointsSelector = numPoints > 1 ?\n 'MultiplePoints' : numPoints ?\n 'SinglePoint' : 'NoPoints';\n var langFormatStr = ('accessibility.screenReaderSection.annotations.description' +\n pointsSelector);\n var context = {\n annotationText: labelText,\n annotation: label,\n numPoints: numPoints,\n annotationPoint: pointValueDescriptions[0],\n additionalAnnotationPoints: pointValueDescriptions.slice(1)\n };\n return chart.langFormat(langFormatStr, context);\n}\n/**\n * Return array of HTML strings for each annotation label in the chart.\n *\n * @private\n * @param {Highcharts.Chart} chart The chart to get annotation info on.\n * @return {Array<string>} Array of strings with HTML content for each annotation label.\n */\nfunction getAnnotationListItems(chart) {\n var labels = getChartAnnotationLabels(chart);\n return labels.map(function (label) {\n var desc = AnnotationsA11y_escapeStringForHTML(AnnotationsA11y_stripHTMLTagsFromString(getAnnotationLabelDescription(label),\n chart.renderer.forExport));\n return desc ? \"<li>\".concat(desc, \"</li>\") : '';\n });\n}\n/**\n * Return the annotation info for a chart as string.\n *\n * @private\n * @param {Highcharts.Chart} chart The chart to get annotation info on.\n * @return {string} String with HTML content or empty string if no annotations.\n */\nfunction getAnnotationsInfoHTML(chart) {\n var annotations = chart.annotations;\n if (!(annotations && annotations.length)) {\n return '';\n }\n var annotationItems = getAnnotationListItems(chart);\n return \"<ul style=\\\"list-style-type: none\\\">\".concat(annotationItems.join(' '), \"</ul>\");\n}\n/**\n * Return the texts for the annotation(s) connected to a point, or empty array\n * if none.\n *\n * @private\n * @param {Highcharts.Point} point The data point to get the annotation info from.\n * @return {Array<string>} Annotation texts\n */\nfunction getPointAnnotationTexts(point) {\n var labels = getChartAnnotationLabels(point.series.chart);\n var pointLabels = labels\n .filter(function (label) { return label.points.indexOf(point) > -1; });\n if (!pointLabels.length) {\n return [];\n }\n return pointLabels.map(function (label) { return \"\".concat(getLabelText(label)); });\n}\n/* *\n *\n * Default Export\n *\n * */\nvar AnnotationsA11y = {\n getAnnotationsInfoHTML: getAnnotationsInfoHTML,\n getAnnotationLabelDescription: getAnnotationLabelDescription,\n getAnnotationListItems: getAnnotationListItems,\n getPointAnnotationTexts: getPointAnnotationTexts\n};\n/* harmony default export */ var Components_AnnotationsA11y = (AnnotationsA11y);\n\n;// ./code/es5/es-modules/Accessibility/Components/InfoRegionsComponent.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Accessibility component for chart info region and table.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar InfoRegionsComponent_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\nvar InfoRegionsComponent_getAnnotationsInfoHTML = Components_AnnotationsA11y.getAnnotationsInfoHTML;\n\n\nvar InfoRegionsComponent_getAxisDescription = Utils_ChartUtilities.getAxisDescription, InfoRegionsComponent_getAxisRangeDescription = Utils_ChartUtilities.getAxisRangeDescription, InfoRegionsComponent_getChartTitle = Utils_ChartUtilities.getChartTitle, InfoRegionsComponent_unhideChartElementFromAT = Utils_ChartUtilities.unhideChartElementFromAT;\n\nvar InfoRegionsComponent_format = (highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default()).format;\n\nvar InfoRegionsComponent_doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc;\n\nvar InfoRegionsComponent_addClass = Utils_HTMLUtilities.addClass, InfoRegionsComponent_getElement = Utils_HTMLUtilities.getElement, InfoRegionsComponent_getHeadingTagNameForElement = Utils_HTMLUtilities.getHeadingTagNameForElement, InfoRegionsComponent_stripHTMLTagsFromString = Utils_HTMLUtilities.stripHTMLTagsFromString, InfoRegionsComponent_visuallyHideElement = Utils_HTMLUtilities.visuallyHideElement;\n\nvar InfoRegionsComponent_attr = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).attr, InfoRegionsComponent_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, replaceNested = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).replaceNested;\n/* *\n *\n * Functions\n *\n * */\n/* eslint-disable valid-jsdoc */\n/**\n * @private\n */\nfunction getTableSummary(chart) {\n return chart.langFormat('accessibility.table.tableSummary', { chart: chart });\n}\n/**\n * @private\n */\nfunction getTypeDescForMapChart(chart, formatContext) {\n return formatContext.mapTitle ?\n chart.langFormat('accessibility.chartTypes.mapTypeDescription', formatContext) :\n chart.langFormat('accessibility.chartTypes.unknownMap', formatContext);\n}\n/**\n * @private\n */\nfunction getTypeDescForCombinationChart(chart, formatContext) {\n return chart.langFormat('accessibility.chartTypes.combinationChart', formatContext);\n}\n/**\n * @private\n */\nfunction getTypeDescForEmptyChart(chart, formatContext) {\n return chart.langFormat('accessibility.chartTypes.emptyChart', formatContext);\n}\n/**\n * @private\n */\nfunction buildTypeDescriptionFromSeries(chart, types, context) {\n var firstType = types[0], typeExplanation = chart.langFormat('accessibility.seriesTypeDescriptions.' + firstType, context), multi = chart.series && chart.series.length < 2 ? 'Single' : 'Multiple';\n return (chart.langFormat('accessibility.chartTypes.' + firstType + multi, context) ||\n chart.langFormat('accessibility.chartTypes.default' + multi, context)) + (typeExplanation ? ' ' + typeExplanation : '');\n}\n/**\n * Return simplified explanation of chart type. Some types will not be\n * familiar to most users, but in those cases we try to add an explanation\n * of the type.\n *\n * @private\n * @function Highcharts.Chart#getTypeDescription\n * @param {Array<string>} types The series types in this chart.\n * @return {string} The text description of the chart type.\n */\nfunction getTypeDescription(chart, types) {\n var firstType = types[0],\n firstSeries = chart.series && chart.series[0] || {},\n mapTitle = chart.mapView && chart.mapView.geoMap &&\n chart.mapView.geoMap.title,\n formatContext = {\n numSeries: chart.series.length,\n numPoints: firstSeries.points && firstSeries.points.length,\n chart: chart,\n mapTitle: mapTitle\n };\n if (!firstType) {\n return getTypeDescForEmptyChart(chart, formatContext);\n }\n if (firstType === 'map' || firstType === 'tiledwebmap') {\n return getTypeDescForMapChart(chart, formatContext);\n }\n if (chart.types.length > 1) {\n return getTypeDescForCombinationChart(chart, formatContext);\n }\n return buildTypeDescriptionFromSeries(chart, types, formatContext);\n}\n/**\n * @private\n */\nfunction stripEmptyHTMLTags(str) {\n // Scan alert #[71]: Loop for nested patterns\n return replaceNested(str, [/<([\\w\\-.:!]+)\\b[^<>]*>\\s*<\\/\\1>/g, '']);\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * The InfoRegionsComponent class\n *\n * @private\n * @class\n * @name Highcharts.InfoRegionsComponent\n */\nvar InfoRegionsComponent = /** @class */ (function (_super) {\n InfoRegionsComponent_extends(InfoRegionsComponent, _super);\n function InfoRegionsComponent() {\n /* *\n *\n * Properties\n *\n * */\n var _this = _super !== null && _super.apply(this,\n arguments) || this;\n _this.screenReaderSections = {};\n return _this;\n }\n /* *\n *\n * Functions\n *\n * */\n /* eslint-disable valid-jsdoc */\n /**\n * Init the component\n * @private\n */\n InfoRegionsComponent.prototype.init = function () {\n var chart = this.chart;\n var component = this;\n this.initRegionsDefinitions();\n this.addEvent(chart, 'aftergetTableAST', function (e) {\n component.onDataTableCreated(e);\n });\n this.addEvent(chart, 'afterViewData', function (e) {\n if (e.wasHidden) {\n component.dataTableDiv = e.element;\n // Use a small delay to give browsers & AT time to\n // register the new table.\n setTimeout(function () {\n component.focusDataTable();\n }, 300);\n }\n });\n this.addEvent(chart, 'afterHideData', function () {\n if (component.viewDataTableButton) {\n component.viewDataTableButton\n .setAttribute('aria-expanded', 'false');\n }\n });\n if (chart.exporting) {\n // Needed when print logic in exporting does not trigger\n // rerendering thus repositioning of screen reader DOM elements\n // (#21554)\n this.addEvent(chart, 'afterPrint', function () {\n component.updateAllScreenReaderSections();\n });\n }\n this.announcer = new Utils_Announcer(chart, 'assertive');\n };\n /**\n * @private\n */\n InfoRegionsComponent.prototype.initRegionsDefinitions = function () {\n var component = this,\n accessibilityOptions = this.chart.options.accessibility;\n this.screenReaderSections = {\n before: {\n element: null,\n buildContent: function (chart) {\n var formatter = accessibilityOptions.screenReaderSection\n .beforeChartFormatter;\n return formatter ? formatter(chart) :\n component.defaultBeforeChartFormatter(chart);\n },\n insertIntoDOM: function (el, chart) {\n chart.renderTo.insertBefore(el, chart.renderTo.firstChild);\n },\n afterInserted: function () {\n if (typeof component.sonifyButtonId !== 'undefined') {\n component.initSonifyButton(component.sonifyButtonId);\n }\n if (typeof component.dataTableButtonId !== 'undefined') {\n component.initDataTableButton(component.dataTableButtonId);\n }\n }\n },\n after: {\n element: null,\n buildContent: function (chart) {\n var formatter = accessibilityOptions.screenReaderSection\n .afterChartFormatter;\n return formatter ? formatter(chart) :\n component.defaultAfterChartFormatter();\n },\n insertIntoDOM: function (el, chart) {\n chart.renderTo.insertBefore(el, chart.container.nextSibling);\n },\n afterInserted: function () {\n if (component.chart.accessibility &&\n accessibilityOptions.keyboardNavigation.enabled) {\n component.chart.accessibility\n .keyboardNavigation.updateExitAnchor(); // #15986\n }\n }\n }\n };\n };\n /**\n * Called on chart render. Have to update the sections on render, in order\n * to get a11y info from series.\n */\n InfoRegionsComponent.prototype.onChartRender = function () {\n this.linkedDescriptionElement = this.getLinkedDescriptionElement();\n this.setLinkedDescriptionAttrs();\n this.updateAllScreenReaderSections();\n };\n InfoRegionsComponent.prototype.updateAllScreenReaderSections = function () {\n var component = this;\n Object.keys(this.screenReaderSections).forEach(function (regionKey) {\n component.updateScreenReaderSection(regionKey);\n });\n };\n /**\n * @private\n */\n InfoRegionsComponent.prototype.getLinkedDescriptionElement = function () {\n var chartOptions = this.chart.options,\n linkedDescOption = chartOptions.accessibility.linkedDescription;\n if (!linkedDescOption) {\n return;\n }\n if (typeof linkedDescOption !== 'string') {\n return linkedDescOption;\n }\n var query = InfoRegionsComponent_format(linkedDescOption,\n this.chart),\n queryMatch = InfoRegionsComponent_doc.querySelectorAll(query);\n if (queryMatch.length === 1) {\n return queryMatch[0];\n }\n };\n /**\n * @private\n */\n InfoRegionsComponent.prototype.setLinkedDescriptionAttrs = function () {\n var el = this.linkedDescriptionElement;\n if (el) {\n el.setAttribute('aria-hidden', 'true');\n InfoRegionsComponent_addClass(el, 'highcharts-linked-description');\n }\n };\n /**\n * @private\n * @param {string} regionKey\n * The name/key of the region to update\n */\n InfoRegionsComponent.prototype.updateScreenReaderSection = function (regionKey) {\n var chart = this.chart;\n var region = this.screenReaderSections[regionKey];\n var content = region.buildContent(chart);\n var sectionDiv = region.element = (region.element || this.createElement('div'));\n var hiddenDiv = (sectionDiv.firstChild || this.createElement('div'));\n if (content) {\n this.setScreenReaderSectionAttribs(sectionDiv, regionKey);\n highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default().setElementHTML(hiddenDiv, content);\n sectionDiv.appendChild(hiddenDiv);\n region.insertIntoDOM(sectionDiv, chart);\n if (chart.styledMode) {\n InfoRegionsComponent_addClass(hiddenDiv, 'highcharts-visually-hidden');\n }\n else {\n InfoRegionsComponent_visuallyHideElement(hiddenDiv);\n }\n InfoRegionsComponent_unhideChartElementFromAT(chart, hiddenDiv);\n if (region.afterInserted) {\n region.afterInserted();\n }\n }\n else {\n if (sectionDiv.parentNode) {\n sectionDiv.parentNode.removeChild(sectionDiv);\n }\n region.element = null;\n }\n };\n /**\n * Apply a11y attributes to a screen reader info section\n * @private\n * @param {Highcharts.HTMLDOMElement} sectionDiv The section element\n * @param {string} regionKey Name/key of the region we are setting attrs for\n */\n InfoRegionsComponent.prototype.setScreenReaderSectionAttribs = function (sectionDiv, regionKey) {\n var chart = this.chart, labelText = chart.langFormat('accessibility.screenReaderSection.' + regionKey +\n 'RegionLabel', { chart: chart, chartTitle: InfoRegionsComponent_getChartTitle(chart) }), sectionId = \"highcharts-screen-reader-region-\".concat(regionKey, \"-\").concat(chart.index);\n InfoRegionsComponent_attr(sectionDiv, {\n id: sectionId,\n 'aria-label': labelText || void 0\n });\n // Sections are wrapped to be positioned relatively to chart in case\n // elements inside are tabbed to.\n sectionDiv.style.position = 'relative';\n if (labelText) {\n sectionDiv.setAttribute('role', chart.options.accessibility.landmarkVerbosity === 'all' ?\n 'region' : 'group');\n }\n };\n /**\n * @private\n */\n InfoRegionsComponent.prototype.defaultBeforeChartFormatter = function () {\n var chart = this.chart,\n format = chart.options.accessibility.screenReaderSection\n .beforeChartFormat;\n if (!format) {\n return '';\n }\n var axesDesc = this.getAxesDescription(),\n shouldHaveSonifyBtn = (chart.sonify &&\n chart.options.sonification &&\n chart.options.sonification.enabled),\n sonifyButtonId = 'highcharts-a11y-sonify-data-btn-' +\n chart.index,\n dataTableButtonId = 'hc-linkto-highcharts-data-table-' +\n chart.index,\n annotationsList = InfoRegionsComponent_getAnnotationsInfoHTML(chart),\n annotationsTitleStr = chart.langFormat('accessibility.screenReaderSection.annotations.heading', { chart: chart }),\n context = {\n headingTagName: InfoRegionsComponent_getHeadingTagNameForElement(chart.renderTo),\n chartTitle: InfoRegionsComponent_getChartTitle(chart),\n typeDescription: this.getTypeDescriptionText(),\n chartSubtitle: this.getSubtitleText(),\n chartLongdesc: this.getLongdescText(),\n xAxisDescription: axesDesc.xAxis,\n yAxisDescription: axesDesc.yAxis,\n playAsSoundButton: shouldHaveSonifyBtn ?\n this.getSonifyButtonText(sonifyButtonId) : '',\n viewTableButton: chart.getCSV ?\n this.getDataTableButtonText(dataTableButtonId) : '',\n annotationsTitle: annotationsList ? annotationsTitleStr : '',\n annotationsList: annotationsList\n },\n formattedString = A11yI18n.i18nFormat(format,\n context,\n chart);\n this.dataTableButtonId = dataTableButtonId;\n this.sonifyButtonId = sonifyButtonId;\n return stripEmptyHTMLTags(formattedString);\n };\n /**\n * @private\n */\n InfoRegionsComponent.prototype.defaultAfterChartFormatter = function () {\n var chart = this.chart;\n var format = chart.options.accessibility.screenReaderSection\n .afterChartFormat;\n if (!format) {\n return '';\n }\n var context = { endOfChartMarker: this.getEndOfChartMarkerText() };\n var formattedString = A11yI18n.i18nFormat(format,\n context,\n chart);\n return stripEmptyHTMLTags(formattedString);\n };\n /**\n * @private\n */\n InfoRegionsComponent.prototype.getLinkedDescription = function () {\n var el = this.linkedDescriptionElement,\n content = el && el.innerHTML || '';\n return InfoRegionsComponent_stripHTMLTagsFromString(content, this.chart.renderer.forExport);\n };\n /**\n * @private\n */\n InfoRegionsComponent.prototype.getLongdescText = function () {\n var chartOptions = this.chart.options,\n captionOptions = chartOptions.caption,\n captionText = captionOptions && captionOptions.text,\n linkedDescription = this.getLinkedDescription();\n return (chartOptions.accessibility.description ||\n linkedDescription ||\n captionText ||\n '');\n };\n /**\n * @private\n */\n InfoRegionsComponent.prototype.getTypeDescriptionText = function () {\n var chart = this.chart;\n return chart.types ?\n chart.options.accessibility.typeDescription ||\n getTypeDescription(chart, chart.types) : '';\n };\n /**\n * @private\n */\n InfoRegionsComponent.prototype.getDataTableButtonText = function (buttonId) {\n var chart = this.chart,\n buttonText = chart.langFormat('accessibility.table.viewAsDataTableButtonText', { chart: chart,\n chartTitle: InfoRegionsComponent_getChartTitle(chart) });\n return '<button id=\"' + buttonId + '\">' + buttonText + '</button>';\n };\n /**\n * @private\n */\n InfoRegionsComponent.prototype.getSonifyButtonText = function (buttonId) {\n var chart = this.chart;\n if (chart.options.sonification &&\n chart.options.sonification.enabled === false) {\n return '';\n }\n var buttonText = chart.langFormat('accessibility.sonification.playAsSoundButtonText', { chart: chart,\n chartTitle: InfoRegionsComponent_getChartTitle(chart) });\n return '<button id=\"' + buttonId + '\">' + buttonText + '</button>';\n };\n /**\n * @private\n */\n InfoRegionsComponent.prototype.getSubtitleText = function () {\n var subtitle = (this.chart.options.subtitle);\n return InfoRegionsComponent_stripHTMLTagsFromString(subtitle && subtitle.text || '', this.chart.renderer.forExport);\n };\n /**\n * @private\n */\n InfoRegionsComponent.prototype.getEndOfChartMarkerText = function () {\n var endMarkerId = \"highcharts-end-of-chart-marker-\".concat(this.chart.index),\n endMarker = InfoRegionsComponent_getElement(endMarkerId);\n if (endMarker) {\n return endMarker.outerHTML;\n }\n var chart = this.chart, markerText = chart.langFormat('accessibility.screenReaderSection.endOfChartMarker', { chart: chart }), id = 'highcharts-end-of-chart-marker-' + chart.index;\n return '<div id=\"' + id + '\">' + markerText + '</div>';\n };\n /**\n * @private\n * @param {Highcharts.Dictionary<string>} e\n */\n InfoRegionsComponent.prototype.onDataTableCreated = function (e) {\n var chart = this.chart;\n if (chart.options.accessibility.enabled) {\n if (this.viewDataTableButton) {\n this.viewDataTableButton.setAttribute('aria-expanded', 'true');\n }\n var attributes = e.tree.attributes || {};\n attributes.tabindex = -1;\n attributes.summary = getTableSummary(chart);\n e.tree.attributes = attributes;\n }\n };\n /**\n * @private\n */\n InfoRegionsComponent.prototype.focusDataTable = function () {\n var tableDiv = this.dataTableDiv,\n table = tableDiv && tableDiv.getElementsByTagName('table')[0];\n if (table && table.focus) {\n table.focus();\n }\n };\n /**\n * @private\n * @param {string} sonifyButtonId\n */\n InfoRegionsComponent.prototype.initSonifyButton = function (sonifyButtonId) {\n var _this = this;\n var el = this.sonifyButton = InfoRegionsComponent_getElement(sonifyButtonId);\n var chart = this.chart;\n var defaultHandler = function (e) {\n if (el) {\n el.setAttribute('aria-hidden', 'true');\n el.setAttribute('aria-label', '');\n }\n e.preventDefault();\n e.stopPropagation();\n var announceMsg = chart.langFormat('accessibility.sonification.playAsSoundClickAnnouncement', { chart: chart });\n _this.announcer.announce(announceMsg);\n setTimeout(function () {\n if (el) {\n el.removeAttribute('aria-hidden');\n el.removeAttribute('aria-label');\n }\n if (chart.sonify) {\n chart.sonify();\n }\n }, 1000); // Delay to let screen reader speak the button press\n };\n if (el && chart) {\n el.setAttribute('tabindex', -1);\n el.onclick = function (e) {\n var onPlayAsSoundClick = (chart.options.accessibility &&\n chart.options.accessibility.screenReaderSection\n .onPlayAsSoundClick);\n (onPlayAsSoundClick || defaultHandler).call(this, e, chart);\n };\n }\n };\n /**\n * Set attribs and handlers for default viewAsDataTable button if exists.\n * @private\n * @param {string} tableButtonId\n */\n InfoRegionsComponent.prototype.initDataTableButton = function (tableButtonId) {\n var el = this.viewDataTableButton = InfoRegionsComponent_getElement(tableButtonId), chart = this.chart, tableId = tableButtonId.replace('hc-linkto-', '');\n if (el) {\n InfoRegionsComponent_attr(el, {\n tabindex: -1,\n 'aria-expanded': !!InfoRegionsComponent_getElement(tableId)\n });\n el.onclick = chart.options.accessibility\n .screenReaderSection.onViewDataTableClick ||\n function () {\n chart.viewData();\n };\n }\n };\n /**\n * Return object with text description of each of the chart's axes.\n * @private\n */\n InfoRegionsComponent.prototype.getAxesDescription = function () {\n var chart = this.chart,\n shouldDescribeColl = function (collectionKey,\n defaultCondition) {\n var axes = chart[collectionKey];\n return axes.length > 1 || axes[0] &&\n InfoRegionsComponent_pick(axes[0].options.accessibility &&\n axes[0].options.accessibility.enabled, defaultCondition);\n }, hasNoMap = !!chart.types &&\n chart.types.indexOf('map') < 0 &&\n chart.types.indexOf('treemap') < 0 &&\n chart.types.indexOf('tilemap') < 0, hasCartesian = !!chart.hasCartesianSeries, showXAxes = shouldDescribeColl('xAxis', !chart.angular && hasCartesian && hasNoMap), showYAxes = shouldDescribeColl('yAxis', hasCartesian && hasNoMap), desc = {};\n if (showXAxes) {\n desc.xAxis = this.getAxisDescriptionText('xAxis');\n }\n if (showYAxes) {\n desc.yAxis = this.getAxisDescriptionText('yAxis');\n }\n return desc;\n };\n /**\n * @private\n */\n InfoRegionsComponent.prototype.getAxisDescriptionText = function (collectionKey) {\n var chart = this.chart;\n var axes = chart[collectionKey];\n return chart.langFormat('accessibility.axis.' + collectionKey + 'Description' + (axes.length > 1 ? 'Plural' : 'Singular'), {\n chart: chart,\n names: axes.map(function (axis) {\n return InfoRegionsComponent_getAxisDescription(axis);\n }),\n ranges: axes.map(function (axis) {\n return InfoRegionsComponent_getAxisRangeDescription(axis);\n }),\n numAxes: axes.length\n });\n };\n /**\n * Remove component traces\n */\n InfoRegionsComponent.prototype.destroy = function () {\n if (this.announcer) {\n this.announcer.destroy();\n }\n };\n return InfoRegionsComponent;\n}(Accessibility_AccessibilityComponent));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Components_InfoRegionsComponent = (InfoRegionsComponent);\n\n;// ./code/es5/es-modules/Accessibility/Components/MenuComponent.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Accessibility component for exporting menu.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar MenuComponent_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nvar MenuComponent_attr = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).attr;\n\n\n\nvar MenuComponent_getChartTitle = Utils_ChartUtilities.getChartTitle, MenuComponent_unhideChartElementFromAT = Utils_ChartUtilities.unhideChartElementFromAT;\n\nvar MenuComponent_getFakeMouseEvent = Utils_HTMLUtilities.getFakeMouseEvent;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Get the wrapped export button element of a chart.\n * @private\n */\nfunction getExportMenuButtonElement(chart) {\n return chart.exportSVGElements && chart.exportSVGElements[0];\n}\n/**\n * @private\n */\nfunction exportingShouldHaveA11y(chart) {\n var exportingOpts = chart.options.exporting,\n exportButton = getExportMenuButtonElement(chart);\n return !!(exportingOpts &&\n exportingOpts.enabled !== false &&\n exportingOpts.accessibility &&\n exportingOpts.accessibility.enabled &&\n exportButton &&\n exportButton.element);\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * The MenuComponent class\n *\n * @private\n * @class\n * @name Highcharts.MenuComponent\n */\nvar MenuComponent = /** @class */ (function (_super) {\n MenuComponent_extends(MenuComponent, _super);\n function MenuComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n /* eslint-disable valid-jsdoc */\n /**\n * Init the component\n */\n MenuComponent.prototype.init = function () {\n var chart = this.chart,\n component = this;\n this.addEvent(chart, 'exportMenuShown', function () {\n component.onMenuShown();\n });\n this.addEvent(chart, 'exportMenuHidden', function () {\n component.onMenuHidden();\n });\n this.createProxyGroup();\n };\n /**\n * @private\n */\n MenuComponent.prototype.onMenuHidden = function () {\n var menu = this.chart.exportContextMenu;\n if (menu) {\n menu.setAttribute('aria-hidden', 'true');\n }\n this.setExportButtonExpandedState('false');\n };\n /**\n * @private\n */\n MenuComponent.prototype.onMenuShown = function () {\n var chart = this.chart,\n menu = chart.exportContextMenu;\n if (menu) {\n this.addAccessibleContextMenuAttribs();\n MenuComponent_unhideChartElementFromAT(chart, menu);\n }\n this.setExportButtonExpandedState('true');\n };\n /**\n * @private\n * @param {string} stateStr\n */\n MenuComponent.prototype.setExportButtonExpandedState = function (stateStr) {\n if (this.exportButtonProxy) {\n this.exportButtonProxy.innerElement.setAttribute('aria-expanded', stateStr);\n }\n };\n /**\n * Called on each render of the chart. We need to update positioning of the\n * proxy overlay.\n */\n MenuComponent.prototype.onChartRender = function () {\n var chart = this.chart,\n focusEl = chart.focusElement,\n a11y = chart.accessibility;\n this.proxyProvider.clearGroup('chartMenu');\n this.proxyMenuButton();\n if (this.exportButtonProxy &&\n focusEl &&\n focusEl === chart.exportingGroup) {\n if (focusEl.focusBorder) {\n chart.setFocusToElement(focusEl, this.exportButtonProxy.innerElement);\n }\n else if (a11y) {\n a11y.keyboardNavigation.tabindexContainer.focus();\n }\n }\n };\n /**\n * @private\n */\n MenuComponent.prototype.proxyMenuButton = function () {\n var chart = this.chart;\n var proxyProvider = this.proxyProvider;\n var buttonEl = getExportMenuButtonElement(chart);\n if (exportingShouldHaveA11y(chart) && buttonEl) {\n this.exportButtonProxy = proxyProvider.addProxyElement('chartMenu', { click: buttonEl }, 'button', {\n 'aria-label': chart.langFormat('accessibility.exporting.menuButtonLabel', {\n chart: chart,\n chartTitle: MenuComponent_getChartTitle(chart)\n }),\n 'aria-expanded': false,\n title: chart.options.lang.contextButtonTitle || null\n });\n }\n };\n /**\n * @private\n */\n MenuComponent.prototype.createProxyGroup = function () {\n var chart = this.chart;\n if (chart && this.proxyProvider) {\n this.proxyProvider.addGroup('chartMenu');\n }\n };\n /**\n * @private\n */\n MenuComponent.prototype.addAccessibleContextMenuAttribs = function () {\n var chart = this.chart,\n exportList = chart.exportDivElements;\n if (exportList && exportList.length) {\n // Set tabindex on the menu items to allow focusing by script\n // Set role to give screen readers a chance to pick up the contents\n exportList.forEach(function (item) {\n if (item) {\n if (item.tagName === 'LI' &&\n !(item.children && item.children.length)) {\n item.setAttribute('tabindex', -1);\n }\n else {\n item.setAttribute('aria-hidden', 'true');\n }\n }\n });\n // Set accessibility properties on parent div\n var parentDiv = (exportList[0] && exportList[0].parentNode);\n if (parentDiv) {\n MenuComponent_attr(parentDiv, {\n 'aria-hidden': void 0,\n 'aria-label': chart.langFormat('accessibility.exporting.chartMenuLabel', { chart: chart }),\n role: 'list' // Needed for webkit/VO\n });\n }\n }\n };\n /**\n * Get keyboard navigation handler for this component.\n * @private\n */\n MenuComponent.prototype.getKeyboardNavigation = function () {\n var keys = this.keyCodes,\n chart = this.chart,\n component = this;\n return new Accessibility_KeyboardNavigationHandler(chart, {\n keyCodeMap: [\n // Arrow prev handler\n [\n [keys.left, keys.up],\n function () {\n return component.onKbdPrevious(this);\n }\n ],\n // Arrow next handler\n [\n [keys.right, keys.down],\n function () {\n return component.onKbdNext(this);\n }\n ],\n // Click handler\n [\n [keys.enter, keys.space],\n function () {\n return component.onKbdClick(this);\n }\n ]\n ],\n // Only run exporting navigation if exporting support exists and is\n // enabled on chart\n validate: function () {\n return !!chart.exporting &&\n chart.options.exporting.enabled !== false &&\n chart.options.exporting.accessibility.enabled !==\n false;\n },\n // Focus export menu button\n init: function () {\n var proxy = component.exportButtonProxy;\n var svgEl = component.chart.exportingGroup;\n if (proxy && svgEl) {\n chart.setFocusToElement(svgEl, proxy.innerElement);\n }\n },\n // Hide the menu\n terminate: function () {\n chart.hideExportMenu();\n }\n });\n };\n /**\n * @private\n * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler\n * @return {number} Response code\n */\n MenuComponent.prototype.onKbdPrevious = function (keyboardNavigationHandler) {\n var chart = this.chart;\n var a11yOptions = chart.options.accessibility;\n var response = keyboardNavigationHandler.response;\n // Try to highlight prev item in list. Highlighting e.g.\n // separators will fail.\n var i = chart.highlightedExportItemIx || 0;\n while (i--) {\n if (chart.highlightExportItem(i)) {\n return response.success;\n }\n }\n // We failed, so wrap around or move to prev module\n if (a11yOptions.keyboardNavigation.wrapAround) {\n chart.highlightLastExportItem();\n return response.success;\n }\n return response.prev;\n };\n /**\n * @private\n * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler\n * @return {number} Response code\n */\n MenuComponent.prototype.onKbdNext = function (keyboardNavigationHandler) {\n var chart = this.chart;\n var a11yOptions = chart.options.accessibility;\n var response = keyboardNavigationHandler.response;\n // Try to highlight next item in list. Highlighting e.g.\n // separators will fail.\n for (var i = (chart.highlightedExportItemIx || 0) + 1; i < chart.exportDivElements.length; ++i) {\n if (chart.highlightExportItem(i)) {\n return response.success;\n }\n }\n // We failed, so wrap around or move to next module\n if (a11yOptions.keyboardNavigation.wrapAround) {\n chart.highlightExportItem(0);\n return response.success;\n }\n return response.next;\n };\n /**\n * @private\n * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler\n * @return {number} Response code\n */\n MenuComponent.prototype.onKbdClick = function (keyboardNavigationHandler) {\n var chart = this.chart;\n var curHighlightedItem = chart.exportDivElements[chart.highlightedExportItemIx];\n var exportButtonElement = getExportMenuButtonElement(chart).element;\n if (chart.openMenu) {\n this.fakeClickEvent(curHighlightedItem);\n }\n else {\n this.fakeClickEvent(exportButtonElement);\n chart.highlightExportItem(0);\n }\n return keyboardNavigationHandler.response.success;\n };\n return MenuComponent;\n}(Accessibility_AccessibilityComponent));\n/* *\n *\n * Class Namespace\n *\n * */\n(function (MenuComponent) {\n /* *\n *\n * Declarations\n *\n * */\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n function compose(ChartClass) {\n var chartProto = ChartClass.prototype;\n if (!chartProto.hideExportMenu) {\n chartProto.hideExportMenu = chartHideExportMenu;\n chartProto.highlightExportItem = chartHighlightExportItem;\n chartProto.highlightLastExportItem = chartHighlightLastExportItem;\n chartProto.showExportMenu = chartShowExportMenu;\n }\n }\n MenuComponent.compose = compose;\n /**\n * Show the export menu and focus the first item (if exists).\n *\n * @private\n * @function Highcharts.Chart#showExportMenu\n */\n function chartShowExportMenu() {\n var exportButton = getExportMenuButtonElement(this);\n if (exportButton) {\n var el = exportButton.element;\n if (el.onclick) {\n el.onclick(MenuComponent_getFakeMouseEvent('click'));\n }\n }\n }\n /**\n * @private\n * @function Highcharts.Chart#hideExportMenu\n */\n function chartHideExportMenu() {\n var chart = this,\n exportList = chart.exportDivElements;\n if (exportList && chart.exportContextMenu && chart.openMenu) {\n // Reset hover states etc.\n exportList.forEach(function (el) {\n if (el &&\n el.className === 'highcharts-menu-item' &&\n el.onmouseout) {\n el.onmouseout(MenuComponent_getFakeMouseEvent('mouseout'));\n }\n });\n chart.highlightedExportItemIx = 0;\n // Hide the menu div\n chart.exportContextMenu.hideMenu();\n // Make sure the chart has focus and can capture keyboard events\n chart.container.focus();\n }\n }\n /**\n * Highlight export menu item by index.\n *\n * @private\n * @function Highcharts.Chart#highlightExportItem\n */\n function chartHighlightExportItem(ix) {\n var listItem = this.exportDivElements && this.exportDivElements[ix];\n var curHighlighted = this.exportDivElements &&\n this.exportDivElements[this.highlightedExportItemIx];\n if (listItem &&\n listItem.tagName === 'LI' &&\n !(listItem.children && listItem.children.length)) {\n // Test if we have focus support for SVG elements\n var hasSVGFocusSupport = !!(this.renderTo.getElementsByTagName('g')[0] || {}).focus;\n // Only focus if we can set focus back to the elements after\n // destroying the menu (#7422)\n if (listItem.focus && hasSVGFocusSupport) {\n listItem.focus();\n }\n if (curHighlighted && curHighlighted.onmouseout) {\n curHighlighted.onmouseout(MenuComponent_getFakeMouseEvent('mouseout'));\n }\n if (listItem.onmouseover) {\n listItem.onmouseover(MenuComponent_getFakeMouseEvent('mouseover'));\n }\n this.highlightedExportItemIx = ix;\n return true;\n }\n return false;\n }\n /**\n * Try to highlight the last valid export menu item.\n *\n * @private\n * @function Highcharts.Chart#highlightLastExportItem\n */\n function chartHighlightLastExportItem() {\n var chart = this;\n if (chart.exportDivElements) {\n var i = chart.exportDivElements.length;\n while (i--) {\n if (chart.highlightExportItem(i)) {\n return true;\n }\n }\n }\n return false;\n }\n})(MenuComponent || (MenuComponent = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Components_MenuComponent = (MenuComponent);\n\n;// ./code/es5/es-modules/Accessibility/KeyboardNavigation.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Main keyboard navigation handling.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar KeyboardNavigation_doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc, KeyboardNavigation_win = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).win;\n\n\nvar KeyboardNavigation_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, KeyboardNavigation_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, KeyboardNavigation_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent;\n\n\nvar KeyboardNavigation_getElement = Utils_HTMLUtilities.getElement, KeyboardNavigation_simulatedEventTarget = Utils_HTMLUtilities.simulatedEventTarget;\n/* *\n *\n * Class\n *\n * */\n/**\n * The KeyboardNavigation class, containing the overall keyboard navigation\n * logic for the chart.\n *\n * @requires modules/accessibility\n *\n * @private\n * @class\n * @param {Highcharts.Chart} chart\n * Chart object\n * @param {Object} components\n * Map of component names to AccessibilityComponent objects.\n * @name Highcharts.KeyboardNavigation\n */\nvar KeyboardNavigation = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function KeyboardNavigation(chart, components) {\n this.currentModuleIx = NaN;\n this.modules = [];\n this.init(chart, components);\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Initialize the class\n * @private\n * @param {Highcharts.Chart} chart\n * Chart object\n * @param {Object} components\n * Map of component names to AccessibilityComponent objects.\n */\n KeyboardNavigation.prototype.init = function (chart, components) {\n var _this = this;\n var ep = this.eventProvider = new Utils_EventProvider();\n this.chart = chart;\n this.components = components;\n this.modules = [];\n this.currentModuleIx = 0;\n this.update();\n ep.addEvent(this.tabindexContainer, 'keydown', function (e) { return _this.onKeydown(e); });\n ep.addEvent(this.tabindexContainer, 'focus', function (e) { return _this.onFocus(e); });\n ['mouseup', 'touchend'].forEach(function (eventName) {\n return ep.addEvent(KeyboardNavigation_doc, eventName, function (e) { return _this.onMouseUp(e); });\n });\n ['mousedown', 'touchstart'].forEach(function (eventName) {\n return ep.addEvent(chart.renderTo, eventName, function () {\n _this.isClickingChart = true;\n });\n });\n };\n /**\n * Update the modules for the keyboard navigation.\n * @param {Array<string>} [order]\n * Array specifying the tab order of the components.\n */\n KeyboardNavigation.prototype.update = function (order) {\n var a11yOptions = this.chart.options.accessibility,\n keyboardOptions = a11yOptions && a11yOptions.keyboardNavigation,\n components = this.components;\n this.updateContainerTabindex();\n if (keyboardOptions &&\n keyboardOptions.enabled &&\n order &&\n order.length) {\n // We (still) have keyboard navigation. Update module list\n this.modules = order.reduce(function (modules, componentName) {\n var navModules = components[componentName]\n .getKeyboardNavigation();\n return modules.concat(navModules);\n }, []);\n this.updateExitAnchor();\n }\n else {\n this.modules = [];\n this.currentModuleIx = 0;\n this.removeExitAnchor();\n }\n };\n /**\n * We use an exit anchor to move focus out of chart whenever we want, by\n * setting focus to this div and not preventing the default tab action. We\n * also use this when users come back into the chart by tabbing back, in\n * order to navigate from the end of the chart.\n * @private\n */\n KeyboardNavigation.prototype.updateExitAnchor = function () {\n var endMarkerId = \"highcharts-end-of-chart-marker-\".concat(this.chart.index),\n endMarker = KeyboardNavigation_getElement(endMarkerId);\n this.removeExitAnchor();\n if (endMarker) {\n this.makeElementAnExitAnchor(endMarker);\n this.exitAnchor = endMarker;\n }\n else {\n this.createExitAnchor();\n }\n };\n /**\n * Move to prev/next module.\n * @private\n * @param {number} direction\n * Direction to move. +1 for next, -1 for prev.\n * @return {boolean}\n * True if there was a valid module in direction.\n */\n KeyboardNavigation.prototype.move = function (direction) {\n var curModule = this.modules && this.modules[this.currentModuleIx];\n if (curModule && curModule.terminate) {\n curModule.terminate(direction);\n }\n // Remove existing focus border if any\n if (this.chart.focusElement) {\n this.chart.focusElement.removeFocusBorder();\n }\n this.currentModuleIx += direction;\n var newModule = this.modules && this.modules[this.currentModuleIx];\n if (newModule) {\n if (newModule.validate && !newModule.validate()) {\n return this.move(direction); // Invalid module, recurse\n }\n if (newModule.init) {\n newModule.init(direction); // Valid module, init it\n return true;\n }\n }\n // No module\n this.currentModuleIx = 0; // Reset counter\n // Set focus to chart or exit anchor depending on direction\n this.exiting = true;\n if (direction > 0) {\n this.exitAnchor && this.exitAnchor.focus();\n }\n else {\n this.tabindexContainer.focus();\n }\n return false;\n };\n /**\n * Function to run on container focus\n * @private\n * @param {global.FocusEvent} e Browser focus event.\n */\n KeyboardNavigation.prototype.onFocus = function (e) {\n var chart = this.chart,\n focusComesFromChart = (e.relatedTarget &&\n chart.container.contains(e.relatedTarget)),\n a11yOptions = chart.options.accessibility,\n keyboardOptions = a11yOptions && a11yOptions.keyboardNavigation,\n enabled = keyboardOptions && keyboardOptions.enabled;\n // Init keyboard nav if tabbing into chart\n if (enabled &&\n !this.exiting &&\n !this.tabbingInBackwards &&\n !this.isClickingChart &&\n !focusComesFromChart) {\n var ix = this.getFirstValidModuleIx();\n if (ix !== null) {\n this.currentModuleIx = ix;\n this.modules[ix].init(1);\n }\n }\n this.keyboardReset = false;\n this.exiting = false;\n };\n /**\n * Reset chart navigation state if we mouse click and it's not already\n * reset. Reset fully if outside the chart, otherwise just hide focus\n * indicator.\n * @private\n */\n KeyboardNavigation.prototype.onMouseUp = function (e) {\n delete this.isClickingChart;\n if (!this.keyboardReset &&\n e.relatedTarget !== KeyboardNavigation_simulatedEventTarget) {\n var chart = this.chart;\n if (!e.target ||\n !chart.container.contains(e.target)) {\n var curMod = this.modules &&\n this.modules[this.currentModuleIx || 0];\n if (curMod && curMod.terminate) {\n curMod.terminate();\n }\n this.currentModuleIx = 0;\n }\n if (chart.focusElement) {\n chart.focusElement.removeFocusBorder();\n delete chart.focusElement;\n }\n this.keyboardReset = true;\n }\n };\n /**\n * Function to run on keydown\n * @private\n * @param {global.KeyboardEvent} ev Browser keydown event.\n */\n KeyboardNavigation.prototype.onKeydown = function (ev) {\n var e = ev || KeyboardNavigation_win.event,\n curNavModule = (this.modules &&\n this.modules.length &&\n this.modules[this.currentModuleIx]);\n var preventDefault;\n var target = e.target;\n if (target &&\n target.nodeName === 'INPUT' &&\n !target.classList.contains('highcharts-a11y-proxy-element')) {\n return;\n }\n // Used for resetting nav state when clicking outside chart\n this.keyboardReset = false;\n // Used for sending focus out of the chart by the modules.\n this.exiting = false;\n // If there is a nav module for the current index, run it.\n // Otherwise, we are outside of the chart in some direction.\n if (curNavModule) {\n var response = curNavModule.run(e);\n if (response === curNavModule.response.success) {\n preventDefault = true;\n }\n else if (response === curNavModule.response.prev) {\n preventDefault = this.move(-1);\n }\n else if (response === curNavModule.response.next) {\n preventDefault = this.move(1);\n }\n if (preventDefault) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n };\n /**\n * Chart container should have tabindex if navigation is enabled.\n * @private\n */\n KeyboardNavigation.prototype.updateContainerTabindex = function () {\n var a11yOptions = this.chart.options.accessibility,\n keyboardOptions = a11yOptions && a11yOptions.keyboardNavigation,\n shouldHaveTabindex = !(keyboardOptions && keyboardOptions.enabled === false),\n chart = this.chart,\n container = chart.container;\n var tabindexContainer;\n if (chart.renderTo.hasAttribute('tabindex')) {\n container.removeAttribute('tabindex');\n tabindexContainer = chart.renderTo;\n }\n else {\n tabindexContainer = container;\n }\n this.tabindexContainer = tabindexContainer;\n var curTabindex = tabindexContainer.getAttribute('tabindex');\n if (shouldHaveTabindex && !curTabindex) {\n tabindexContainer.setAttribute('tabindex', '0');\n }\n else if (!shouldHaveTabindex) {\n chart.container.removeAttribute('tabindex');\n }\n };\n /**\n * Add new exit anchor to the chart.\n * @private\n */\n KeyboardNavigation.prototype.createExitAnchor = function () {\n var chart = this.chart,\n exitAnchor = this.exitAnchor = KeyboardNavigation_doc.createElement('div');\n chart.renderTo.appendChild(exitAnchor);\n this.makeElementAnExitAnchor(exitAnchor);\n };\n /**\n * Add attributes and events to an element to make it function as an\n * exit anchor.\n * @private\n */\n KeyboardNavigation.prototype.makeElementAnExitAnchor = function (el) {\n var chartTabindex = this.tabindexContainer.getAttribute('tabindex') || 0;\n el.setAttribute('class', 'highcharts-exit-anchor');\n el.setAttribute('tabindex', chartTabindex);\n el.setAttribute('aria-hidden', false);\n // Handle focus\n this.addExitAnchorEventsToEl(el);\n };\n /**\n * Destroy the exit anchor and remove from DOM.\n * @private\n */\n KeyboardNavigation.prototype.removeExitAnchor = function () {\n var _this = this;\n // Remove event from element and from eventRemovers array to prevent\n // memory leak (#20329).\n if (this.exitAnchor) {\n var el = this.eventProvider.eventRemovers.find(function (el) {\n return el.element === _this.exitAnchor;\n });\n if (el && KeyboardNavigation_defined(el.remover)) {\n this.eventProvider.removeEvent(el.remover);\n }\n if (this.exitAnchor.parentNode) {\n this.exitAnchor.parentNode.removeChild(this.exitAnchor);\n }\n delete this.exitAnchor;\n }\n };\n /**\n * Add focus handler to exit anchor element.\n * @private\n */\n KeyboardNavigation.prototype.addExitAnchorEventsToEl = function (element) {\n var chart = this.chart,\n keyboardNavigation = this;\n this.eventProvider.addEvent(element, 'focus', function (ev) {\n var e = ev || KeyboardNavigation_win.event,\n focusComesFromChart = (e.relatedTarget &&\n chart.container.contains(e.relatedTarget)),\n comingInBackwards = !(focusComesFromChart || keyboardNavigation.exiting);\n if (chart.focusElement) {\n delete chart.focusElement;\n }\n if (comingInBackwards) {\n // Focus the container instead\n keyboardNavigation.tabbingInBackwards = true;\n keyboardNavigation.tabindexContainer.focus();\n delete keyboardNavigation.tabbingInBackwards;\n e.preventDefault();\n // Move to last valid keyboard nav module\n // Note the we don't run it, just set the index\n if (keyboardNavigation.modules &&\n keyboardNavigation.modules.length) {\n keyboardNavigation.currentModuleIx =\n keyboardNavigation.modules.length - 1;\n var curModule = keyboardNavigation.modules[keyboardNavigation.currentModuleIx];\n // Validate the module\n if (curModule &&\n curModule.validate && !curModule.validate()) {\n // Invalid.\n // Try moving backwards to find next valid.\n keyboardNavigation.move(-1);\n }\n else if (curModule) {\n // We have a valid module, init it\n curModule.init(-1);\n }\n }\n }\n else {\n // Don't skip the next focus, we only skip once.\n keyboardNavigation.exiting = false;\n }\n });\n };\n /**\n * Get the ix of the first module that either does not require validation or\n * validates positively.\n * @private\n */\n KeyboardNavigation.prototype.getFirstValidModuleIx = function () {\n var len = this.modules.length;\n for (var i = 0; i < len; ++i) {\n var mod = this.modules[i];\n if (!mod.validate || mod.validate()) {\n return i;\n }\n }\n return null;\n };\n /**\n * Remove all traces of keyboard navigation.\n * @private\n */\n KeyboardNavigation.prototype.destroy = function () {\n this.removeExitAnchor();\n this.eventProvider.removeAddedEvents();\n this.chart.container.removeAttribute('tabindex');\n };\n return KeyboardNavigation;\n}());\n/* *\n *\n * Class Namespace\n *\n * */\n(function (KeyboardNavigation) {\n /* *\n *\n * Declarations\n *\n * */\n /* *\n *\n * Functions\n *\n * */\n /**\n * Composition function.\n * @private\n */\n function compose(ChartClass) {\n Components_MenuComponent.compose(ChartClass);\n var chartProto = ChartClass.prototype;\n if (!chartProto.dismissPopupContent) {\n chartProto.dismissPopupContent = chartDismissPopupContent;\n KeyboardNavigation_addEvent(KeyboardNavigation_doc, 'keydown', documentOnKeydown);\n }\n return ChartClass;\n }\n KeyboardNavigation.compose = compose;\n /**\n * Dismiss popup content in chart, including export menu and tooltip.\n * @private\n */\n function chartDismissPopupContent() {\n var chart = this;\n KeyboardNavigation_fireEvent(this, 'dismissPopupContent', {}, function () {\n if (chart.tooltip) {\n chart.tooltip.hide(0);\n }\n chart.hideExportMenu();\n });\n }\n /**\n * Add event listener to document to detect ESC key press and dismiss\n * hover/popup content.\n * @private\n */\n function documentOnKeydown(e) {\n var keycode = e.which || e.keyCode;\n var esc = 27;\n if (keycode === esc && (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).charts) {\n highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().charts.forEach(function (chart) {\n if (chart && chart.dismissPopupContent) {\n chart.dismissPopupContent();\n }\n });\n }\n }\n})(KeyboardNavigation || (KeyboardNavigation = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Accessibility_KeyboardNavigation = (KeyboardNavigation);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Legend\"],\"commonjs\":[\"highcharts\",\"Legend\"],\"commonjs2\":[\"highcharts\",\"Legend\"],\"root\":[\"Highcharts\",\"Legend\"]}\nvar highcharts_Legend_commonjs_highcharts_Legend_commonjs2_highcharts_Legend_root_Highcharts_Legend_ = __webpack_require__(632);\nvar highcharts_Legend_commonjs_highcharts_Legend_commonjs2_highcharts_Legend_root_Highcharts_Legend_default = /*#__PURE__*/__webpack_require__.n(highcharts_Legend_commonjs_highcharts_Legend_commonjs2_highcharts_Legend_root_Highcharts_Legend_);\n;// ./code/es5/es-modules/Accessibility/Components/LegendComponent.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Accessibility component for chart legend.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar LegendComponent_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nvar animObject = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).animObject;\n\nvar LegendComponent_doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc;\n\n\nvar LegendComponent_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, LegendComponent_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, LegendComponent_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, syncTimeout = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).syncTimeout;\n\n\n\nvar LegendComponent_getChartTitle = Utils_ChartUtilities.getChartTitle;\n\nvar LegendComponent_stripHTMLTags = Utils_HTMLUtilities.stripHTMLTagsFromString, LegendComponent_addClass = Utils_HTMLUtilities.addClass, LegendComponent_removeClass = Utils_HTMLUtilities.removeClass;\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction scrollLegendToItem(legend, itemIx) {\n var itemPage = (legend.allItems[itemIx].legendItem || {}).pageIx,\n curPage = legend.currentPage;\n if (typeof itemPage !== 'undefined' && itemPage + 1 !== curPage) {\n legend.scroll(1 + itemPage - curPage);\n }\n}\n/**\n * @private\n */\nfunction shouldDoLegendA11y(chart) {\n var items = chart.legend && chart.legend.allItems,\n legendA11yOptions = (chart.options.legend.accessibility || {}),\n unsupportedColorAxis = chart.colorAxis && chart.colorAxis.some(function (c) { return !c.dataClasses || !c.dataClasses.length; });\n return !!(items && items.length &&\n !unsupportedColorAxis &&\n legendA11yOptions.enabled !== false);\n}\n/**\n * @private\n */\nfunction setLegendItemHoverState(hoverActive, item) {\n var legendItem = item.legendItem || {};\n item.setState(hoverActive ? 'hover' : '', true);\n for (var _i = 0, _a = ['group', 'label', 'symbol']; _i < _a.length; _i++) {\n var key = _a[_i];\n var svgElement = legendItem[key];\n var element = svgElement && svgElement.element || svgElement;\n if (element) {\n LegendComponent_fireEvent(element, hoverActive ? 'mouseover' : 'mouseout');\n }\n }\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * The LegendComponent class\n *\n * @private\n * @class\n * @name Highcharts.LegendComponent\n */\nvar LegendComponent = /** @class */ (function (_super) {\n LegendComponent_extends(LegendComponent, _super);\n function LegendComponent() {\n /* *\n *\n * Properties\n *\n * */\n var _this = _super !== null && _super.apply(this,\n arguments) || this;\n _this.highlightedLegendItemIx = NaN;\n _this.proxyGroup = null;\n return _this;\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Init the component\n * @private\n */\n LegendComponent.prototype.init = function () {\n var component = this;\n this.recreateProxies();\n // Note: Chart could create legend dynamically, so events cannot be\n // tied to the component's chart's current legend.\n // @todo 1. attach component to created legends\n // @todo 2. move listeners to composition and access `this.component`\n this.addEvent((highcharts_Legend_commonjs_highcharts_Legend_commonjs2_highcharts_Legend_root_Highcharts_Legend_default()), 'afterScroll', function () {\n if (this.chart === component.chart) {\n component.proxyProvider.updateGroupProxyElementPositions('legend');\n component.updateLegendItemProxyVisibility();\n if (component.highlightedLegendItemIx > -1) {\n this.chart.highlightLegendItem(component.highlightedLegendItemIx);\n }\n }\n });\n this.addEvent((highcharts_Legend_commonjs_highcharts_Legend_commonjs2_highcharts_Legend_root_Highcharts_Legend_default()), 'afterPositionItem', function (e) {\n if (this.chart === component.chart && this.chart.renderer) {\n component.updateProxyPositionForItem(e.item);\n }\n });\n this.addEvent((highcharts_Legend_commonjs_highcharts_Legend_commonjs2_highcharts_Legend_root_Highcharts_Legend_default()), 'afterRender', function () {\n if (this.chart === component.chart &&\n this.chart.renderer &&\n component.recreateProxies()) {\n syncTimeout(function () { return component.proxyProvider\n .updateGroupProxyElementPositions('legend'); }, animObject(LegendComponent_pick(this.chart.renderer.globalAnimation, true)).duration);\n }\n });\n };\n /**\n * Update visibility of legend items when using paged legend\n * @private\n */\n LegendComponent.prototype.updateLegendItemProxyVisibility = function () {\n var chart = this.chart;\n var legend = chart.legend;\n var items = legend.allItems || [];\n var curPage = legend.currentPage || 1;\n var clipHeight = legend.clipHeight || 0;\n var legendItem;\n items.forEach(function (item) {\n if (item.a11yProxyElement) {\n var hasPages = legend.pages && legend.pages.length;\n var proxyEl = item.a11yProxyElement.element;\n var hide = false;\n legendItem = item.legendItem || {};\n if (hasPages) {\n var itemPage = legendItem.pageIx || 0;\n var y = legendItem.y || 0;\n var h = legendItem.label ?\n Math.round(legendItem.label.getBBox().height) :\n 0;\n hide = y + h - legend.pages[itemPage] > clipHeight ||\n itemPage !== curPage - 1;\n }\n if (hide) {\n if (chart.styledMode) {\n LegendComponent_addClass(proxyEl, 'highcharts-a11y-invisible');\n }\n else {\n proxyEl.style.visibility = 'hidden';\n }\n }\n else {\n LegendComponent_removeClass(proxyEl, 'highcharts-a11y-invisible');\n proxyEl.style.visibility = '';\n }\n }\n });\n };\n /**\n * @private\n */\n LegendComponent.prototype.onChartRender = function () {\n if (!shouldDoLegendA11y(this.chart)) {\n this.removeProxies();\n }\n };\n /**\n * @private\n */\n LegendComponent.prototype.highlightAdjacentLegendPage = function (direction) {\n var chart = this.chart;\n var legend = chart.legend;\n var curPageIx = legend.currentPage || 1;\n var newPageIx = curPageIx + direction;\n var pages = legend.pages || [];\n if (newPageIx > 0 && newPageIx <= pages.length) {\n var i = 0,\n res = void 0;\n for (var _i = 0, _a = legend.allItems; _i < _a.length; _i++) {\n var item = _a[_i];\n if (((item.legendItem || {}).pageIx || 0) + 1 === newPageIx) {\n res = chart.highlightLegendItem(i);\n if (res) {\n this.highlightedLegendItemIx = i;\n }\n }\n ++i;\n }\n }\n };\n /**\n * @private\n */\n LegendComponent.prototype.updateProxyPositionForItem = function (item) {\n if (item.a11yProxyElement) {\n item.a11yProxyElement.refreshPosition();\n }\n };\n /**\n * Returns false if legend a11y is disabled and proxies were not created,\n * true otherwise.\n * @private\n */\n LegendComponent.prototype.recreateProxies = function () {\n var focusedElement = LegendComponent_doc.activeElement;\n var proxyGroup = this.proxyGroup;\n var shouldRestoreFocus = focusedElement && proxyGroup &&\n proxyGroup.contains(focusedElement);\n this.removeProxies();\n if (shouldDoLegendA11y(this.chart)) {\n this.addLegendProxyGroup();\n this.proxyLegendItems();\n this.updateLegendItemProxyVisibility();\n this.updateLegendTitle();\n if (shouldRestoreFocus) {\n this.chart.highlightLegendItem(this.highlightedLegendItemIx);\n }\n return true;\n }\n return false;\n };\n /**\n * @private\n */\n LegendComponent.prototype.removeProxies = function () {\n this.proxyProvider.removeGroup('legend');\n };\n /**\n * @private\n */\n LegendComponent.prototype.updateLegendTitle = function () {\n var chart = this.chart;\n var legendTitle = LegendComponent_stripHTMLTags((chart.legend &&\n chart.legend.options.title &&\n chart.legend.options.title.text ||\n '').replace(/<br ?\\/?>/g, ' '), chart.renderer.forExport);\n var legendLabel = chart.langFormat('accessibility.legend.legendLabel' + (legendTitle ? '' : 'NoTitle'), {\n chart: chart,\n legendTitle: legendTitle,\n chartTitle: LegendComponent_getChartTitle(chart)\n });\n this.proxyProvider.updateGroupAttrs('legend', {\n 'aria-label': legendLabel\n });\n };\n /**\n * @private\n */\n LegendComponent.prototype.addLegendProxyGroup = function () {\n var a11yOptions = this.chart.options.accessibility;\n var groupRole = a11yOptions.landmarkVerbosity === 'all' ?\n 'region' : null;\n this.proxyGroup = this.proxyProvider.addGroup('legend', 'ul', {\n // Filled by updateLegendTitle, to keep up to date without\n // recreating group\n 'aria-label': '_placeholder_',\n role: groupRole\n });\n };\n /**\n * @private\n */\n LegendComponent.prototype.proxyLegendItems = function () {\n var component = this,\n items = (this.chart.legend || {}).allItems || [];\n var legendItem;\n items.forEach(function (item) {\n legendItem = item.legendItem || {};\n if (legendItem.label && legendItem.label.element) {\n component.proxyLegendItem(item);\n }\n });\n };\n /**\n * @private\n * @param {Highcharts.BubbleLegendItem|Point|Highcharts.Series} item\n */\n LegendComponent.prototype.proxyLegendItem = function (item) {\n var legendItem = item.legendItem || {};\n if (!legendItem.label || !legendItem.group) {\n return;\n }\n var itemLabel = this.chart.langFormat('accessibility.legend.legendItem', {\n chart: this.chart,\n itemName: LegendComponent_stripHTMLTags(item.name,\n this.chart.renderer.forExport),\n item: item\n });\n var attribs = {\n tabindex: -1,\n 'aria-pressed': item.visible,\n 'aria-label': itemLabel\n };\n // Considers useHTML\n var proxyPositioningElement = legendItem.group.div ?\n legendItem.label :\n legendItem.group;\n item.a11yProxyElement = this.proxyProvider.addProxyElement('legend', {\n click: legendItem.label,\n visual: proxyPositioningElement.element\n }, 'button', attribs);\n };\n /**\n * Get keyboard navigation handler for this component.\n * @private\n */\n LegendComponent.prototype.getKeyboardNavigation = function () {\n var keys = this.keyCodes,\n component = this,\n chart = this.chart;\n return new Accessibility_KeyboardNavigationHandler(chart, {\n keyCodeMap: [\n [\n [keys.left, keys.right, keys.up, keys.down],\n function (keyCode) {\n return component.onKbdArrowKey(this, keyCode);\n }\n ],\n [\n [keys.enter, keys.space],\n function () {\n return component.onKbdClick(this);\n }\n ],\n [\n [keys.pageDown, keys.pageUp],\n function (keyCode) {\n var direction = keyCode === keys.pageDown ? 1 : -1;\n component.highlightAdjacentLegendPage(direction);\n return this.response.success;\n }\n ]\n ],\n validate: function () {\n return component.shouldHaveLegendNavigation();\n },\n init: function () {\n chart.highlightLegendItem(0);\n component.highlightedLegendItemIx = 0;\n },\n terminate: function () {\n component.highlightedLegendItemIx = -1;\n chart.legend.allItems.forEach(function (item) { return setLegendItemHoverState(false, item); });\n }\n });\n };\n /**\n * Arrow key navigation\n * @private\n */\n LegendComponent.prototype.onKbdArrowKey = function (keyboardNavigationHandler, key) {\n var _a = this,\n _b = _a.keyCodes,\n left = _b.left,\n up = _b.up,\n highlightedLegendItemIx = _a.highlightedLegendItemIx,\n chart = _a.chart,\n numItems = chart.legend.allItems.length,\n wrapAround = chart.options.accessibility\n .keyboardNavigation.wrapAround,\n direction = (key === left || key === up) ? -1 : 1,\n res = chart.highlightLegendItem(highlightedLegendItemIx + direction);\n if (res) {\n this.highlightedLegendItemIx += direction;\n }\n else if (wrapAround && numItems > 1) {\n this.highlightedLegendItemIx = direction > 0 ?\n 0 : numItems - 1;\n chart.highlightLegendItem(this.highlightedLegendItemIx);\n }\n return keyboardNavigationHandler.response.success;\n };\n /**\n * @private\n * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler\n * @return {number} Response code\n */\n LegendComponent.prototype.onKbdClick = function (keyboardNavigationHandler) {\n var legendItem = this.chart.legend.allItems[this.highlightedLegendItemIx];\n if (legendItem && legendItem.a11yProxyElement) {\n legendItem.a11yProxyElement.click();\n }\n return keyboardNavigationHandler.response.success;\n };\n /**\n * @private\n */\n LegendComponent.prototype.shouldHaveLegendNavigation = function () {\n if (!shouldDoLegendA11y(this.chart)) {\n return false;\n }\n var chart = this.chart,\n legendOptions = chart.options.legend || {},\n legendA11yOptions = (legendOptions.accessibility || {});\n return !!(chart.legend.display &&\n legendA11yOptions.keyboardNavigation &&\n legendA11yOptions.keyboardNavigation.enabled);\n };\n /**\n * Clean up\n * @private\n */\n LegendComponent.prototype.destroy = function () {\n this.removeProxies();\n };\n return LegendComponent;\n}(Accessibility_AccessibilityComponent));\n/* *\n *\n * Class Namespace\n *\n * */\n(function (LegendComponent) {\n /* *\n *\n * Declarations\n *\n * */\n /* *\n *\n * Functions\n *\n * */\n /**\n * Highlight legend item by index.\n * @private\n */\n function chartHighlightLegendItem(ix) {\n var items = this.legend.allItems;\n var oldIx = this.accessibility &&\n this.accessibility.components.legend.highlightedLegendItemIx;\n var itemToHighlight = items[ix],\n legendItem = (itemToHighlight === null || itemToHighlight === void 0 ? void 0 : itemToHighlight.legendItem) || {};\n if (itemToHighlight) {\n if (isNumber(oldIx) && items[oldIx]) {\n setLegendItemHoverState(false, items[oldIx]);\n }\n scrollLegendToItem(this.legend, ix);\n var legendItemProp = legendItem.label;\n var proxyBtn = itemToHighlight.a11yProxyElement &&\n itemToHighlight.a11yProxyElement.innerElement;\n if (legendItemProp && legendItemProp.element && proxyBtn) {\n this.setFocusToElement(legendItemProp, proxyBtn);\n }\n setLegendItemHoverState(true, itemToHighlight);\n return true;\n }\n return false;\n }\n /**\n * @private\n */\n function compose(ChartClass, LegendClass) {\n var chartProto = ChartClass.prototype;\n if (!chartProto.highlightLegendItem) {\n chartProto.highlightLegendItem = chartHighlightLegendItem;\n LegendComponent_addEvent(LegendClass, 'afterColorizeItem', legendOnAfterColorizeItem);\n }\n }\n LegendComponent.compose = compose;\n /**\n * Keep track of pressed state for legend items.\n * @private\n */\n function legendOnAfterColorizeItem(e) {\n var chart = this.chart,\n a11yOptions = chart.options.accessibility,\n legendItem = e.item;\n if (a11yOptions.enabled && legendItem && legendItem.a11yProxyElement) {\n legendItem.a11yProxyElement.innerElement.setAttribute('aria-pressed', e.visible ? 'true' : 'false');\n }\n }\n})(LegendComponent || (LegendComponent = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Components_LegendComponent = (LegendComponent);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Axis\"],\"commonjs\":[\"highcharts\",\"Axis\"],\"commonjs2\":[\"highcharts\",\"Axis\"],\"root\":[\"Highcharts\",\"Axis\"]}\nvar highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_ = __webpack_require__(532);\nvar highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_default = /*#__PURE__*/__webpack_require__.n(highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_);\n;// ./code/es5/es-modules/Stock/Navigator/ChartNavigatorComposition.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar isTouchDevice = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isTouchDevice;\n\nvar ChartNavigatorComposition_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, ChartNavigatorComposition_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Constants\n *\n * */\nvar composedMembers = [];\n/* *\n *\n * Variables\n *\n * */\nvar NavigatorConstructor;\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction compose(ChartClass, NavigatorClass) {\n if (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().pushUnique(composedMembers, ChartClass)) {\n var chartProto = ChartClass.prototype;\n NavigatorConstructor = NavigatorClass;\n chartProto.callbacks.push(onChartCallback);\n ChartNavigatorComposition_addEvent(ChartClass, 'afterAddSeries', onChartAfterAddSeries);\n ChartNavigatorComposition_addEvent(ChartClass, 'afterSetChartSize', onChartAfterSetChartSize);\n ChartNavigatorComposition_addEvent(ChartClass, 'afterUpdate', onChartAfterUpdate);\n ChartNavigatorComposition_addEvent(ChartClass, 'beforeRender', onChartBeforeRender);\n ChartNavigatorComposition_addEvent(ChartClass, 'beforeShowResetZoom', onChartBeforeShowResetZoom);\n ChartNavigatorComposition_addEvent(ChartClass, 'update', onChartUpdate);\n }\n}\n/**\n * Handle adding new series.\n * @private\n */\nfunction onChartAfterAddSeries() {\n if (this.navigator) {\n // Recompute which series should be shown in navigator, and add them\n this.navigator.setBaseSeries(null, false);\n }\n}\n/**\n * For stock charts, extend the Chart.setChartSize method so that we can set the\n * final top position of the navigator once the height of the chart, including\n * the legend, is determined. #367. We can't use Chart.getMargins, because\n * labels offsets are not calculated yet.\n * @private\n */\nfunction onChartAfterSetChartSize() {\n var _a;\n var legend = this.legend,\n navigator = this.navigator;\n var legendOptions,\n xAxis,\n yAxis;\n if (navigator) {\n legendOptions = legend && legend.options;\n xAxis = navigator.xAxis;\n yAxis = navigator.yAxis;\n var scrollbarHeight = navigator.scrollbarHeight,\n scrollButtonSize = navigator.scrollButtonSize;\n // Compute the top position\n if (this.inverted) {\n navigator.left = navigator.opposite ?\n this.chartWidth - scrollbarHeight -\n navigator.height :\n this.spacing[3] + scrollbarHeight;\n navigator.top = this.plotTop + scrollButtonSize;\n }\n else {\n navigator.left = ChartNavigatorComposition_pick(xAxis.left, this.plotLeft + scrollButtonSize);\n navigator.top = navigator.navigatorOptions.top ||\n this.chartHeight -\n navigator.height -\n scrollbarHeight -\n (((_a = this.scrollbar) === null || _a === void 0 ? void 0 : _a.options.margin) || 0) -\n this.spacing[2] -\n (this.rangeSelector && this.extraBottomMargin ?\n this.rangeSelector.getHeight() :\n 0) -\n ((legendOptions &&\n legendOptions.verticalAlign === 'bottom' &&\n legendOptions.layout !== 'proximate' && // #13392\n legendOptions.enabled &&\n !legendOptions.floating) ?\n legend.legendHeight +\n ChartNavigatorComposition_pick(legendOptions.margin, 10) :\n 0) -\n (this.titleOffset ? this.titleOffset[2] : 0);\n }\n if (xAxis && yAxis) { // False if navigator is disabled (#904)\n if (this.inverted) {\n xAxis.options.left = yAxis.options.left = navigator.left;\n }\n else {\n xAxis.options.top = yAxis.options.top = navigator.top;\n }\n xAxis.setAxisSize();\n yAxis.setAxisSize();\n }\n }\n}\n/**\n * Initialize navigator, if no scrolling exists yet.\n * @private\n */\nfunction onChartAfterUpdate(event) {\n if (!this.navigator && !this.scroller &&\n (this.options.navigator.enabled ||\n this.options.scrollbar.enabled)) {\n this.scroller = this.navigator = new NavigatorConstructor(this);\n if (ChartNavigatorComposition_pick(event.redraw, true)) {\n this.redraw(event.animation); // #7067\n }\n }\n}\n/**\n * Initialize navigator for stock charts\n * @private\n */\nfunction onChartBeforeRender() {\n var options = this.options;\n if (options.navigator.enabled ||\n options.scrollbar.enabled) {\n this.scroller = this.navigator = new NavigatorConstructor(this);\n }\n}\n/**\n * For Stock charts. For x only zooming, do not to create the zoom button\n * because X axis zooming is already allowed by the Navigator and Range\n * selector. (#9285)\n * @private\n */\nfunction onChartBeforeShowResetZoom() {\n var chartOptions = this.options,\n navigator = chartOptions.navigator,\n rangeSelector = chartOptions.rangeSelector;\n if (((navigator && navigator.enabled) ||\n (rangeSelector && rangeSelector.enabled)) &&\n ((!isTouchDevice &&\n this.zooming.type === 'x') ||\n (isTouchDevice && this.zooming.pinchType === 'x'))) {\n return false;\n }\n}\n/**\n * @private\n */\nfunction onChartCallback(chart) {\n var navigator = chart.navigator;\n // Initialize the navigator\n if (navigator && chart.xAxis[0]) {\n var extremes = chart.xAxis[0].getExtremes();\n navigator.render(extremes.min, extremes.max);\n }\n}\n/**\n * Merge options, if no scrolling exists yet\n * @private\n */\nfunction onChartUpdate(e) {\n var navigatorOptions = (e.options.navigator || {}),\n scrollbarOptions = (e.options.scrollbar || {});\n if (!this.navigator && !this.scroller &&\n (navigatorOptions.enabled || scrollbarOptions.enabled)) {\n merge(true, this.options.navigator, navigatorOptions);\n merge(true, this.options.scrollbar, scrollbarOptions);\n delete e.options.navigator;\n delete e.options.scrollbar;\n }\n}\n/* *\n *\n * Default Export\n *\n * */\nvar ChartNavigatorComposition = {\n compose: compose\n};\n/* harmony default export */ var Navigator_ChartNavigatorComposition = (ChartNavigatorComposition);\n\n;// ./code/es5/es-modules/Core/Axis/NavigatorAxisComposition.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar NavigatorAxisComposition_isTouchDevice = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isTouchDevice;\n\nvar NavigatorAxisComposition_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, NavigatorAxisComposition_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, NavigatorAxisComposition_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, NavigatorAxisComposition_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction onAxisInit() {\n var axis = this;\n if (!axis.navigatorAxis) {\n axis.navigatorAxis = new NavigatorAxisAdditions(axis);\n }\n}\n/**\n * For Stock charts, override selection zooming with some special features\n * because X axis zooming is already allowed by the Navigator and Range\n * selector.\n * @private\n */\nfunction onAxisSetExtremes(e) {\n var axis = this,\n chart = axis.chart,\n chartOptions = chart.options,\n navigator = chartOptions.navigator,\n navigatorAxis = axis.navigatorAxis,\n pinchType = chart.zooming.pinchType,\n rangeSelector = chartOptions.rangeSelector,\n zoomType = chart.zooming.type;\n var zoomed;\n if (axis.isXAxis &&\n ((navigator === null || navigator === void 0 ? void 0 : navigator.enabled) || (rangeSelector === null || rangeSelector === void 0 ? void 0 : rangeSelector.enabled))) {\n // For y only zooming, ignore the X axis completely\n if (zoomType === 'y' && e.trigger === 'zoom') {\n zoomed = false;\n // For xy zooming, record the state of the zoom before zoom selection,\n // then when the reset button is pressed, revert to this state. This\n // should apply only if the chart is initialized with a range (#6612),\n // otherwise zoom all the way out.\n }\n else if (((e.trigger === 'zoom' && zoomType === 'xy') ||\n (NavigatorAxisComposition_isTouchDevice && pinchType === 'xy')) &&\n axis.options.range) {\n var previousZoom = navigatorAxis.previousZoom;\n // Minimum defined, zooming in\n if (NavigatorAxisComposition_defined(e.min)) {\n navigatorAxis.previousZoom = [axis.min, axis.max];\n // Minimum undefined, resetting zoom\n }\n else if (previousZoom) {\n e.min = previousZoom[0];\n e.max = previousZoom[1];\n navigatorAxis.previousZoom = void 0;\n }\n }\n }\n if (typeof zoomed !== 'undefined') {\n e.preventDefault();\n }\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * @private\n * @class\n */\nvar NavigatorAxisAdditions = /** @class */ (function () {\n /* *\n *\n * Constructors\n *\n * */\n function NavigatorAxisAdditions(axis) {\n this.axis = axis;\n }\n /* *\n *\n * Static Functions\n *\n * */\n /**\n * @private\n */\n NavigatorAxisAdditions.compose = function (AxisClass) {\n if (!AxisClass.keepProps.includes('navigatorAxis')) {\n AxisClass.keepProps.push('navigatorAxis');\n NavigatorAxisComposition_addEvent(AxisClass, 'init', onAxisInit);\n NavigatorAxisComposition_addEvent(AxisClass, 'setExtremes', onAxisSetExtremes);\n }\n };\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n NavigatorAxisAdditions.prototype.destroy = function () {\n this.axis = void 0;\n };\n /**\n * Add logic to normalize the zoomed range in order to preserve the pressed\n * state of range selector buttons\n *\n * @private\n * @function Highcharts.Axis#toFixedRange\n */\n NavigatorAxisAdditions.prototype.toFixedRange = function (pxMin, pxMax, fixedMin, fixedMax) {\n var axis = this.axis,\n halfPointRange = (axis.pointRange || 0) / 2;\n var newMin = NavigatorAxisComposition_pick(fixedMin,\n axis.translate(pxMin,\n true, !axis.horiz)),\n newMax = NavigatorAxisComposition_pick(fixedMax,\n axis.translate(pxMax,\n true, !axis.horiz));\n // Add/remove half point range to/from the extremes (#1172)\n if (!NavigatorAxisComposition_defined(fixedMin)) {\n newMin = correctFloat(newMin + halfPointRange);\n }\n if (!NavigatorAxisComposition_defined(fixedMax)) {\n newMax = correctFloat(newMax - halfPointRange);\n }\n if (!NavigatorAxisComposition_isNumber(newMin) || !NavigatorAxisComposition_isNumber(newMax)) { // #1195, #7411\n newMin = newMax = void 0;\n }\n return {\n min: newMin,\n max: newMax\n };\n };\n return NavigatorAxisAdditions;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var NavigatorAxisComposition = (NavigatorAxisAdditions);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Color\"],\"commonjs\":[\"highcharts\",\"Color\"],\"commonjs2\":[\"highcharts\",\"Color\"],\"root\":[\"Highcharts\",\"Color\"]}\nvar highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_ = __webpack_require__(239);\nvar highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default = /*#__PURE__*/__webpack_require__.n(highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_);\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"SeriesRegistry\"],\"commonjs\":[\"highcharts\",\"SeriesRegistry\"],\"commonjs2\":[\"highcharts\",\"SeriesRegistry\"],\"root\":[\"Highcharts\",\"SeriesRegistry\"]}\nvar highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_ = __webpack_require__(512);\nvar highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default = /*#__PURE__*/__webpack_require__.n(highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_);\n;// ./code/es5/es-modules/Stock/Navigator/NavigatorDefaults.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar color = (highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default()).parse;\n\nvar seriesTypes = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes;\n/* *\n *\n * Constants\n *\n * */\n/**\n * The navigator is a small series below the main series, displaying\n * a view of the entire data set. It provides tools to zoom in and\n * out on parts of the data as well as panning across the dataset.\n *\n * @product highstock gantt\n * @optionparent navigator\n */\nvar NavigatorDefaults = {\n /**\n * Whether the navigator and scrollbar should adapt to updated data\n * in the base X axis. When loading data async, as in the demo below,\n * this should be `false`. Otherwise new data will trigger navigator\n * redraw, which will cause unwanted looping. In the demo below, the\n * data in the navigator is set only once. On navigating, only the main\n * chart content is updated.\n *\n * @sample {highstock} stock/demo/lazy-loading/\n * Set to false with async data loading\n *\n * @type {boolean}\n * @default true\n * @apioption navigator.adaptToUpdatedData\n */\n /**\n * An integer identifying the index to use for the base series, or a\n * string representing the id of the series.\n *\n * **Note**: As of Highcharts 5.0, this is now a deprecated option.\n * Prefer [series.showInNavigator](#plotOptions.series.showInNavigator).\n *\n * @see [series.showInNavigator](#plotOptions.series.showInNavigator)\n *\n * @deprecated\n * @type {number|string}\n * @default 0\n * @apioption navigator.baseSeries\n */\n /**\n * Enable or disable the navigator.\n *\n * @sample {highstock} stock/navigator/enabled/\n * Disable the navigator\n *\n * @type {boolean}\n * @default true\n * @apioption navigator.enabled\n */\n /**\n * When the chart is inverted, whether to draw the navigator on the\n * opposite side.\n *\n * @type {boolean}\n * @default false\n * @since 5.0.8\n * @apioption navigator.opposite\n */\n /**\n * The height of the navigator.\n *\n * @sample {highstock} stock/navigator/height/\n * A higher navigator\n */\n height: 40,\n /**\n * The distance from the nearest element, the X axis or X axis labels.\n *\n * @sample {highstock} stock/navigator/margin/\n * A margin of 2 draws the navigator closer to the X axis labels\n */\n margin: 25,\n /**\n * Whether the mask should be inside the range marking the zoomed\n * range, or outside. In Highcharts Stock 1.x it was always `false`.\n *\n * @sample {highstock} stock/demo/maskinside-false/\n * False, mask outside\n *\n * @since 2.0\n */\n maskInside: true,\n /**\n * Options for the handles for dragging the zoomed area.\n *\n * @sample {highstock} stock/navigator/handles/\n * Colored handles\n */\n handles: {\n /**\n * Width for handles.\n *\n * @sample {highstock} stock/navigator/styled-handles/\n * Styled handles\n *\n * @since 6.0.0\n */\n width: 7,\n /**\n * Border radius of the handles.\n *\n * @sample {highstock} stock/navigator/handles-border-radius/\n * Border radius on the navigator handles.\n *\n * @since 11.4.2\n */\n borderRadius: 0,\n /**\n * Height for handles.\n *\n * @sample {highstock} stock/navigator/styled-handles/\n * Styled handles\n *\n * @since 6.0.0\n */\n height: 15,\n /**\n * Array to define shapes of handles. 0-index for left, 1-index for\n * right.\n *\n * Additionally, the URL to a graphic can be given on this form:\n * `url(graphic.png)`. Note that for the image to be applied to\n * exported charts, its URL needs to be accessible by the export\n * server.\n *\n * Custom callbacks for symbol path generation can also be added to\n * `Highcharts.SVGRenderer.prototype.symbols`. The callback is then\n * used by its method name, as shown in the demo.\n *\n * @sample {highstock} stock/navigator/styled-handles/\n * Styled handles\n *\n * @type {Array<string>}\n * @default [\"navigator-handle\", \"navigator-handle\"]\n * @since 6.0.0\n */\n symbols: ['navigator-handle', 'navigator-handle'],\n /**\n * Allows to enable/disable handles.\n *\n * @since 6.0.0\n */\n enabled: true,\n /**\n * The width for the handle border and the stripes inside.\n *\n * @sample {highstock} stock/navigator/styled-handles/\n * Styled handles\n *\n * @since 6.0.0\n * @apioption navigator.handles.lineWidth\n */\n lineWidth: 1,\n /**\n * The fill for the handle.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n backgroundColor: \"#f2f2f2\" /* Palette.neutralColor5 */,\n /**\n * The stroke for the handle border and the stripes inside.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n borderColor: \"#999999\" /* Palette.neutralColor40 */\n },\n /**\n * The color of the mask covering the areas of the navigator series\n * that are currently not visible in the main series. The default\n * color is bluish with an opacity of 0.3 to see the series below.\n *\n * @see In styled mode, the mask is styled with the\n * `.highcharts-navigator-mask` and\n * `.highcharts-navigator-mask-inside` classes.\n *\n * @sample {highstock} stock/navigator/maskfill/\n * Blue, semi transparent mask\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @default rgba(102,133,194,0.3)\n */\n maskFill: color(\"#667aff\" /* Palette.highlightColor60 */).setOpacity(0.3).get(),\n /**\n * The color of the line marking the currently zoomed area in the\n * navigator.\n *\n * @sample {highstock} stock/navigator/outline/\n * 2px blue outline\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @default #cccccc\n */\n outlineColor: \"#999999\" /* Palette.neutralColor40 */,\n /**\n * The width of the line marking the currently zoomed area in the\n * navigator.\n *\n * @see In styled mode, the outline stroke width is set with the\n * `.highcharts-navigator-outline` class.\n *\n * @sample {highstock} stock/navigator/outline/\n * 2px blue outline\n *\n * @type {number}\n */\n outlineWidth: 1,\n /**\n * Options for the navigator series. Available options are the same\n * as any series, documented at [plotOptions](#plotOptions.series)\n * and [series](#series).\n *\n * Unless data is explicitly defined on navigator.series, the data\n * is borrowed from the first series in the chart.\n *\n * Default series options for the navigator series are:\n * ```js\n * series: {\n * type: 'areaspline',\n * fillOpacity: 0.05,\n * dataGrouping: {\n * smoothed: true\n * },\n * lineWidth: 1,\n * marker: {\n * enabled: false\n * }\n * }\n * ```\n *\n * @see In styled mode, the navigator series is styled with the\n * `.highcharts-navigator-series` class.\n *\n * @sample {highstock} stock/navigator/series-data/\n * Using a separate data set for the navigator\n * @sample {highstock} stock/navigator/series/\n * A green navigator series\n *\n * @type {*|Array<*>|Highcharts.SeriesOptionsType|Array<Highcharts.SeriesOptionsType>}\n */\n series: {\n /**\n * The type of the navigator series.\n *\n * Heads up:\n * In column-type navigator, zooming is limited to at least one\n * point with its `pointRange`.\n *\n * @sample {highstock} stock/navigator/column/\n * Column type navigator\n *\n * @type {string}\n * @default {highstock} `areaspline` if defined, otherwise `line`\n * @default {gantt} gantt\n */\n type: (typeof seriesTypes.areaspline === 'undefined' ?\n 'line' :\n 'areaspline'),\n /**\n * The fill opacity of the navigator series.\n */\n fillOpacity: 0.05,\n /**\n * The pixel line width of the navigator series.\n */\n lineWidth: 1,\n /**\n * @ignore-option\n */\n compare: null,\n /**\n * @ignore-option\n */\n sonification: {\n enabled: false\n },\n /**\n * Unless data is explicitly defined, the data is borrowed from the\n * first series in the chart.\n *\n * @type {Array<number|Array<number|string|null>|object|null>}\n * @product highstock\n * @apioption navigator.series.data\n */\n /**\n * Data grouping options for the navigator series.\n *\n * @extends plotOptions.series.dataGrouping\n */\n dataGrouping: {\n approximation: 'average',\n enabled: true,\n groupPixelWidth: 2,\n // Replace smoothed property by anchors, #12455.\n firstAnchor: 'firstPoint',\n anchor: 'middle',\n lastAnchor: 'lastPoint',\n // Day and week differs from plotOptions.series.dataGrouping\n units: [\n ['millisecond', [1, 2, 5, 10, 20, 25, 50, 100, 200, 500]],\n ['second', [1, 2, 5, 10, 15, 30]],\n ['minute', [1, 2, 5, 10, 15, 30]],\n ['hour', [1, 2, 3, 4, 6, 8, 12]],\n ['day', [1, 2, 3, 4]],\n ['week', [1, 2, 3]],\n ['month', [1, 3, 6]],\n ['year', null]\n ]\n },\n /**\n * Data label options for the navigator series. Data labels are\n * disabled by default on the navigator series.\n *\n * @extends plotOptions.series.dataLabels\n */\n dataLabels: {\n enabled: false,\n zIndex: 2 // #1839\n },\n id: 'highcharts-navigator-series',\n className: 'highcharts-navigator-series',\n /**\n * Sets the fill color of the navigator series.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @apioption navigator.series.color\n */\n /**\n * Line color for the navigator series. Allows setting the color\n * while disallowing the default candlestick setting.\n *\n * @type {Highcharts.ColorString|null}\n */\n lineColor: null, // #4602\n marker: {\n enabled: false\n },\n /**\n * Since Highcharts Stock v8, default value is the same as default\n * `pointRange` defined for a specific type (e.g. `null` for\n * column type).\n *\n * In Highcharts Stock version < 8, defaults to 0.\n *\n * @extends plotOptions.series.pointRange\n * @type {number|null}\n * @apioption navigator.series.pointRange\n */\n /**\n * The threshold option. Setting it to 0 will make the default\n * navigator area series draw its area from the 0 value and up.\n *\n * @type {number|null}\n */\n threshold: null\n },\n /**\n * Enable or disable navigator sticking to right, while adding new\n * points. If `undefined`, the navigator sticks to the axis maximum only\n * if it was already at the maximum prior to adding points.\n *\n * @type {boolean}\n * @default undefined\n * @since 10.2.1\n * @sample {highstock} stock/navigator/sticktomax-false/\n * stickToMax set to false\n * @apioption navigator.stickToMax\n */\n /**\n * Options for the navigator X axis. Default series options for the\n * navigator xAxis are:\n * ```js\n * xAxis: {\n * tickWidth: 0,\n * lineWidth: 0,\n * gridLineWidth: 1,\n * tickPixelInterval: 200,\n * labels: {\n * align: 'left',\n * style: {\n * color: '#888'\n * },\n * x: 3,\n * y: -4\n * }\n * }\n * ```\n *\n * @extends xAxis\n * @excluding linkedTo, maxZoom, minRange, opposite, range, scrollbar,\n * showEmpty, maxRange\n */\n xAxis: {\n /**\n * Additional range on the right side of the xAxis. Works similar to\n * `xAxis.maxPadding`, but the value is set in terms of axis values,\n * percentage or pixels.\n *\n * If it's a number, it is interpreted as axis values, which in a\n * datetime axis equals milliseconds.\n *\n * If it's a percentage string, is interpreted as percentages of the\n * axis length. An overscroll of 50% will make a 100px axis 50px longer.\n *\n * If it's a pixel string, it is interpreted as a fixed pixel value, but\n * limited to 90% of the axis length.\n *\n * If it's undefined, the value is inherited from `xAxis.overscroll`.\n *\n * Can be set for both, main xAxis and navigator's xAxis.\n *\n * @type {number | string | undefined}\n * @since 6.0.0\n * @apioption navigator.xAxis.overscroll\n */\n className: 'highcharts-navigator-xaxis',\n tickLength: 0,\n lineWidth: 0,\n gridLineColor: \"#e6e6e6\" /* Palette.neutralColor10 */,\n id: 'navigator-x-axis',\n gridLineWidth: 1,\n tickPixelInterval: 200,\n labels: {\n align: 'left',\n /**\n * @type {Highcharts.CSSObject}\n */\n style: {\n /** @ignore */\n color: \"#000000\" /* Palette.neutralColor100 */,\n /** @ignore */\n fontSize: '0.7em',\n /** @ignore */\n opacity: 0.6,\n /** @ignore */\n textOutline: '2px contrast'\n },\n x: 3,\n y: -4\n },\n crosshair: false\n },\n /**\n * Options for the navigator Y axis. Default series options for the\n * navigator yAxis are:\n * ```js\n * yAxis: {\n * gridLineWidth: 0,\n * startOnTick: false,\n * endOnTick: false,\n * minPadding: 0.1,\n * maxPadding: 0.1,\n * labels: {\n * enabled: false\n * },\n * title: {\n * text: null\n * },\n * tickWidth: 0\n * }\n * ```\n *\n * @extends yAxis\n * @excluding height, linkedTo, maxZoom, minRange, ordinal, range,\n * showEmpty, scrollbar, top, units, maxRange, minLength,\n * maxLength, resize\n */\n yAxis: {\n className: 'highcharts-navigator-yaxis',\n gridLineWidth: 0,\n startOnTick: false,\n endOnTick: false,\n minPadding: 0.1,\n id: 'navigator-y-axis',\n maxPadding: 0.1,\n labels: {\n enabled: false\n },\n crosshair: false,\n title: {\n text: null\n },\n tickLength: 0,\n tickWidth: 0\n }\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Navigator_NavigatorDefaults = (NavigatorDefaults);\n/* *\n *\n * API Options\n *\n * */\n/**\n * Maximum range which can be set using the navigator's handles.\n * Opposite of [xAxis.minRange](#xAxis.minRange).\n *\n * @sample {highstock} stock/navigator/maxrange/\n * Defined max and min range\n *\n * @type {number}\n * @since 6.0.0\n * @product highstock gantt\n * @apioption xAxis.maxRange\n */\n(''); // Keeps doclets above in JS file\n\n;// ./code/es5/es-modules/Core/Renderer/SVG/Symbols.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar Symbols_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, Symbols_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, Symbols_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Functions\n *\n * */\n/* eslint-disable require-jsdoc, valid-jsdoc */\n/**\n *\n */\nfunction arc(cx, cy, w, h, options) {\n var arc = [];\n if (options) {\n var start = options.start || 0,\n rx = Symbols_pick(options.r,\n w),\n ry = Symbols_pick(options.r,\n h || w), \n // Subtract a small number to prevent cos and sin of start and end\n // from becoming equal on 360 arcs (#1561). The size of the circle\n // affects the constant, therefore the division by `rx`. If the\n // proximity is too small, the arc disappears. If it is too great, a\n // gap appears. This can be seen in the animation of the official\n // bubble demo (#20586).\n proximity = 0.0002 / (options.borderRadius ? 1 : Math.max(rx, 1)),\n fullCircle = (Math.abs((options.end || 0) - start - 2 * Math.PI) <\n proximity),\n end = (options.end || 0) - (fullCircle ? proximity : 0),\n innerRadius = options.innerR,\n open_1 = Symbols_pick(options.open,\n fullCircle),\n cosStart = Math.cos(start),\n sinStart = Math.sin(start),\n cosEnd = Math.cos(end),\n sinEnd = Math.sin(end), \n // Proximity takes care of rounding errors around PI (#6971)\n longArc = Symbols_pick(options.longArc,\n end - start - Math.PI < proximity ? 0 : 1);\n var arcSegment = [\n 'A', // ArcTo\n rx, // X radius\n ry, // Y radius\n 0, // Slanting\n longArc, // Long or short arc\n Symbols_pick(options.clockwise, 1), // Clockwise\n cx + rx * cosEnd,\n cy + ry * sinEnd\n ];\n arcSegment.params = { start: start, end: end, cx: cx, cy: cy }; // Memo for border radius\n arc.push([\n 'M',\n cx + rx * cosStart,\n cy + ry * sinStart\n ], arcSegment);\n if (Symbols_defined(innerRadius)) {\n arcSegment = [\n 'A', // ArcTo\n innerRadius, // X radius\n innerRadius, // Y radius\n 0, // Slanting\n longArc, // Long or short arc\n // Clockwise - opposite to the outer arc clockwise\n Symbols_defined(options.clockwise) ? 1 - options.clockwise : 0,\n cx + innerRadius * cosStart,\n cy + innerRadius * sinStart\n ];\n // Memo for border radius\n arcSegment.params = {\n start: end,\n end: start,\n cx: cx,\n cy: cy\n };\n arc.push(open_1 ?\n [\n 'M',\n cx + innerRadius * cosEnd,\n cy + innerRadius * sinEnd\n ] : [\n 'L',\n cx + innerRadius * cosEnd,\n cy + innerRadius * sinEnd\n ], arcSegment);\n }\n if (!open_1) {\n arc.push(['Z']);\n }\n }\n return arc;\n}\n/**\n * Callout shape used for default tooltips.\n */\nfunction callout(x, y, w, h, options) {\n var arrowLength = 6,\n halfDistance = 6,\n r = Math.min((options && options.r) || 0,\n w,\n h),\n safeDistance = r + halfDistance,\n anchorX = options && options.anchorX,\n anchorY = options && options.anchorY || 0;\n var path = roundedRect(x,\n y,\n w,\n h, { r: r });\n if (!Symbols_isNumber(anchorX)) {\n return path;\n }\n // Do not render a connector, if anchor starts inside the label\n if (anchorX < w && anchorX > 0 && anchorY < h && anchorY > 0) {\n return path;\n }\n // Anchor on right side\n if (x + anchorX > w - safeDistance) {\n // Chevron\n if (anchorY > y + safeDistance &&\n anchorY < y + h - safeDistance) {\n path.splice(3, 1, ['L', x + w, anchorY - halfDistance], ['L', x + w + arrowLength, anchorY], ['L', x + w, anchorY + halfDistance], ['L', x + w, y + h - r]);\n // Simple connector\n }\n else {\n if (anchorX < w) { // Corner connector\n var isTopCorner = anchorY < y + safeDistance,\n cornerY = isTopCorner ? y : y + h,\n sliceStart = isTopCorner ? 2 : 5;\n path.splice(sliceStart, 0, ['L', anchorX, anchorY], ['L', x + w - r, cornerY]);\n }\n else { // Side connector\n path.splice(3, 1, ['L', x + w, h / 2], ['L', anchorX, anchorY], ['L', x + w, h / 2], ['L', x + w, y + h - r]);\n }\n }\n // Anchor on left side\n }\n else if (x + anchorX < safeDistance) {\n // Chevron\n if (anchorY > y + safeDistance &&\n anchorY < y + h - safeDistance) {\n path.splice(7, 1, ['L', x, anchorY + halfDistance], ['L', x - arrowLength, anchorY], ['L', x, anchorY - halfDistance], ['L', x, y + r]);\n // Simple connector\n }\n else {\n if (anchorX > 0) { // Corner connector\n var isTopCorner = anchorY < y + safeDistance,\n cornerY = isTopCorner ? y : y + h,\n sliceStart = isTopCorner ? 1 : 6;\n path.splice(sliceStart, 0, ['L', anchorX, anchorY], ['L', x + r, cornerY]);\n }\n else { // Side connector\n path.splice(7, 1, ['L', x, h / 2], ['L', anchorX, anchorY], ['L', x, h / 2], ['L', x, y + r]);\n }\n }\n }\n else if ( // Replace bottom\n anchorY > h &&\n anchorX < w - safeDistance) {\n path.splice(5, 1, ['L', anchorX + halfDistance, y + h], ['L', anchorX, y + h + arrowLength], ['L', anchorX - halfDistance, y + h], ['L', x + r, y + h]);\n }\n else if ( // Replace top\n anchorY < 0 &&\n anchorX > safeDistance) {\n path.splice(1, 1, ['L', anchorX - halfDistance, y], ['L', anchorX, y - arrowLength], ['L', anchorX + halfDistance, y], ['L', w - r, y]);\n }\n return path;\n}\n/**\n *\n */\nfunction circle(x, y, w, h) {\n // Return a full arc\n return arc(x + w / 2, y + h / 2, w / 2, h / 2, {\n start: Math.PI * 0.5,\n end: Math.PI * 2.5,\n open: false\n });\n}\n/**\n *\n */\nfunction diamond(x, y, w, h) {\n return [\n ['M', x + w / 2, y],\n ['L', x + w, y + h / 2],\n ['L', x + w / 2, y + h],\n ['L', x, y + h / 2],\n ['Z']\n ];\n}\n// #15291\n/**\n *\n */\nfunction rect(x, y, w, h, options) {\n if (options && options.r) {\n return roundedRect(x, y, w, h, options);\n }\n return [\n ['M', x, y],\n ['L', x + w, y],\n ['L', x + w, y + h],\n ['L', x, y + h],\n ['Z']\n ];\n}\n/**\n *\n */\nfunction roundedRect(x, y, w, h, options) {\n var r = (options === null || options === void 0 ? void 0 : options.r) || 0;\n return [\n ['M', x + r, y],\n ['L', x + w - r, y], // Top side\n ['A', r, r, 0, 0, 1, x + w, y + r], // Top-right corner\n ['L', x + w, y + h - r], // Right side\n ['A', r, r, 0, 0, 1, x + w - r, y + h], // Bottom-right corner\n ['L', x + r, y + h], // Bottom side\n ['A', r, r, 0, 0, 1, x, y + h - r], // Bottom-left corner\n ['L', x, y + r], // Left side\n ['A', r, r, 0, 0, 1, x + r, y],\n ['Z'] // Top-left corner\n ];\n}\n/**\n *\n */\nfunction triangle(x, y, w, h) {\n return [\n ['M', x + w / 2, y],\n ['L', x + w, y + h],\n ['L', x, y + h],\n ['Z']\n ];\n}\n/**\n *\n */\nfunction triangleDown(x, y, w, h) {\n return [\n ['M', x, y],\n ['L', x + w, y],\n ['L', x + w / 2, y + h],\n ['Z']\n ];\n}\nvar Symbols = {\n arc: arc,\n callout: callout,\n circle: circle,\n diamond: diamond,\n rect: rect,\n roundedRect: roundedRect,\n square: rect,\n triangle: triangle,\n 'triangle-down': triangleDown\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var SVG_Symbols = (Symbols);\n\n;// ./code/es5/es-modules/Stock/Navigator/NavigatorSymbols.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n\n\nvar relativeLength = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).relativeLength;\n/* *\n *\n * Constants\n *\n * */\n/**\n * Draw one of the handles on the side of the zoomed range in the navigator.\n * @private\n */\nfunction navigatorHandle(_x, _y, width, height, options) {\n if (options === void 0) { options = {}; }\n var halfWidth = options.width ? options.width / 2 : width,\n markerPosition = 1.5,\n r = relativeLength(options.borderRadius || 0,\n Math.min(halfWidth * 2,\n height));\n height = options.height || height;\n return __spreadArray([\n ['M', -markerPosition, height / 2 - 3.5],\n ['L', -markerPosition, height / 2 + 4.5],\n ['M', markerPosition - 1, height / 2 - 3.5],\n ['L', markerPosition - 1, height / 2 + 4.5]\n ], SVG_Symbols.rect(-halfWidth - 1, 0.5, halfWidth * 2 + 1, height, { r: r }), true);\n}\n/* *\n *\n * Default Export\n *\n * */\nvar NavigatorSymbols = {\n 'navigator-handle': navigatorHandle\n};\n/* harmony default export */ var Navigator_NavigatorSymbols = (NavigatorSymbols);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"RendererRegistry\"],\"commonjs\":[\"highcharts\",\"RendererRegistry\"],\"commonjs2\":[\"highcharts\",\"RendererRegistry\"],\"root\":[\"Highcharts\",\"RendererRegistry\"]}\nvar highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_ = __webpack_require__(608);\nvar highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_default = /*#__PURE__*/__webpack_require__.n(highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_);\n;// ./code/es5/es-modules/Stock/Utilities/StockUtilities.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar StockUtilities_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Sets the chart.fixedRange to the specified value. If the value is larger\n * than actual range, sets it to the maximum possible range. (#20327)\n *\n * @private\n * @function Highcharts.StockChart#setFixedRange\n * @param {number|undefined} range\n * Range to set in axis units.\n */\nfunction setFixedRange(range) {\n var xAxis = this.xAxis[0];\n if (StockUtilities_defined(xAxis.dataMax) &&\n StockUtilities_defined(xAxis.dataMin) &&\n range) {\n this.fixedRange = Math.min(range, xAxis.dataMax - xAxis.dataMin);\n }\n else {\n this.fixedRange = range;\n }\n}\nvar StockUtilities = {\n setFixedRange: setFixedRange\n};\n/* harmony default export */ var Utilities_StockUtilities = (StockUtilities);\n\n;// ./code/es5/es-modules/Stock/Navigator/NavigatorComposition.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar setOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).setOptions;\n\nvar composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed;\n\n\n\n\nvar getRendererType = (highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_default()).getRendererType;\n\nvar NavigatorComposition_setFixedRange = Utilities_StockUtilities.setFixedRange;\n\nvar NavigatorComposition_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique;\n/* *\n *\n * Variables\n *\n * */\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction NavigatorComposition_compose(ChartClass, AxisClass, SeriesClass) {\n NavigatorAxisComposition.compose(AxisClass);\n if (pushUnique(composed, 'Navigator')) {\n ChartClass.prototype.setFixedRange = NavigatorComposition_setFixedRange;\n extend(getRendererType().prototype.symbols, Navigator_NavigatorSymbols);\n NavigatorComposition_addEvent(SeriesClass, 'afterUpdate', onSeriesAfterUpdate);\n setOptions({ navigator: Navigator_NavigatorDefaults });\n }\n}\n/**\n * Handle updating series\n * @private\n */\nfunction onSeriesAfterUpdate() {\n if (this.chart.navigator && !this.options.isInternal) {\n this.chart.navigator.setBaseSeries(null, false);\n }\n}\n/* *\n *\n * Default Export\n *\n * */\nvar NavigatorComposition = {\n compose: NavigatorComposition_compose\n};\n/* harmony default export */ var Navigator_NavigatorComposition = (NavigatorComposition);\n\n;// ./code/es5/es-modules/Core/Axis/ScrollbarAxis.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar ScrollbarAxis_composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed;\n\nvar ScrollbarAxis_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, ScrollbarAxis_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, ScrollbarAxis_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, ScrollbarAxis_pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique;\n/* *\n *\n * Composition\n *\n * */\nvar ScrollbarAxis;\n(function (ScrollbarAxis) {\n /* *\n *\n * Variables\n *\n * */\n var Scrollbar;\n /* *\n *\n * Functions\n *\n * */\n /**\n * Attaches to axis events to create scrollbars if enabled.\n *\n * @private\n *\n * @param {Highcharts.Axis} AxisClass\n * Axis class to extend.\n *\n * @param {Highcharts.Scrollbar} ScrollbarClass\n * Scrollbar class to use.\n */\n function compose(AxisClass, ScrollbarClass) {\n if (ScrollbarAxis_pushUnique(ScrollbarAxis_composed, 'Axis.Scrollbar')) {\n Scrollbar = ScrollbarClass;\n ScrollbarAxis_addEvent(AxisClass, 'afterGetOffset', onAxisAfterGetOffset);\n ScrollbarAxis_addEvent(AxisClass, 'afterInit', onAxisAfterInit);\n ScrollbarAxis_addEvent(AxisClass, 'afterRender', onAxisAfterRender);\n }\n }\n ScrollbarAxis.compose = compose;\n /** @private */\n function getExtremes(axis) {\n var axisMin = ScrollbarAxis_pick(axis.options && axis.options.min,\n axis.min);\n var axisMax = ScrollbarAxis_pick(axis.options && axis.options.max,\n axis.max);\n return {\n axisMin: axisMin,\n axisMax: axisMax,\n scrollMin: ScrollbarAxis_defined(axis.dataMin) ?\n Math.min(axisMin, axis.min, axis.dataMin, ScrollbarAxis_pick(axis.threshold, Infinity)) : axisMin,\n scrollMax: ScrollbarAxis_defined(axis.dataMax) ?\n Math.max(axisMax, axis.max, axis.dataMax, ScrollbarAxis_pick(axis.threshold, -Infinity)) : axisMax\n };\n }\n /**\n * Make space for a scrollbar.\n * @private\n */\n function onAxisAfterGetOffset() {\n var axis = this,\n scrollbar = axis.scrollbar,\n opposite = scrollbar && !scrollbar.options.opposite,\n index = axis.horiz ? 2 : opposite ? 3 : 1;\n if (scrollbar) {\n // Reset scrollbars offsets\n axis.chart.scrollbarsOffsets = [0, 0];\n axis.chart.axisOffset[index] +=\n scrollbar.size + (scrollbar.options.margin || 0);\n }\n }\n /**\n * Wrap axis initialization and create scrollbar if enabled.\n * @private\n */\n function onAxisAfterInit() {\n var axis = this;\n if (axis.options &&\n axis.options.scrollbar &&\n axis.options.scrollbar.enabled) {\n // Predefined options:\n axis.options.scrollbar.vertical = !axis.horiz;\n axis.options.startOnTick = axis.options.endOnTick = false;\n axis.scrollbar = new Scrollbar(axis.chart.renderer, axis.options.scrollbar, axis.chart);\n ScrollbarAxis_addEvent(axis.scrollbar, 'changed', function (e) {\n var _a = getExtremes(axis),\n axisMin = _a.axisMin,\n axisMax = _a.axisMax,\n unitedMin = _a.scrollMin,\n unitedMax = _a.scrollMax,\n range = unitedMax - unitedMin;\n var to,\n from;\n // #12834, scroll when show/hide series, wrong extremes\n if (!ScrollbarAxis_defined(axisMin) || !ScrollbarAxis_defined(axisMax)) {\n return;\n }\n if ((axis.horiz && !axis.reversed) ||\n (!axis.horiz && axis.reversed)) {\n to = unitedMin + range * this.to;\n from = unitedMin + range * this.from;\n }\n else {\n // Y-values in browser are reversed, but this also\n // applies for reversed horizontal axis:\n to = unitedMin + range * (1 - this.from);\n from = unitedMin + range * (1 - this.to);\n }\n if (this.shouldUpdateExtremes(e.DOMType)) {\n // #17977, set animation to undefined instead of true\n var animate = e.DOMType === 'mousemove' ||\n e.DOMType === 'touchmove' ? false : void 0;\n axis.setExtremes(from, to, true, animate, e);\n }\n else {\n // When live redraw is disabled, don't change extremes\n // Only change the position of the scrollbar thumb\n this.setRange(this.from, this.to);\n }\n });\n }\n }\n /**\n * Wrap rendering axis, and update scrollbar if one is created.\n * @private\n */\n function onAxisAfterRender() {\n var axis = this,\n _a = getExtremes(axis),\n scrollMin = _a.scrollMin,\n scrollMax = _a.scrollMax,\n scrollbar = axis.scrollbar,\n offset = (axis.axisTitleMargin + (axis.titleOffset || 0)),\n scrollbarsOffsets = axis.chart.scrollbarsOffsets,\n axisMargin = axis.options.margin || 0;\n var offsetsIndex,\n from,\n to;\n if (scrollbar && scrollbarsOffsets) {\n if (axis.horiz) {\n // Reserve space for labels/title\n if (!axis.opposite) {\n scrollbarsOffsets[1] += offset;\n }\n scrollbar.position(axis.left, (axis.top +\n axis.height +\n 2 +\n scrollbarsOffsets[1] -\n (axis.opposite ? axisMargin : 0)), axis.width, axis.height);\n // Next scrollbar should reserve space for margin (if set)\n if (!axis.opposite) {\n scrollbarsOffsets[1] += axisMargin;\n }\n offsetsIndex = 1;\n }\n else {\n // Reserve space for labels/title\n if (axis.opposite) {\n scrollbarsOffsets[0] += offset;\n }\n var xPosition = void 0;\n if (!scrollbar.options.opposite) {\n xPosition = axis.opposite ? 0 : axisMargin;\n }\n else {\n xPosition = axis.left +\n axis.width +\n 2 +\n scrollbarsOffsets[0] -\n (axis.opposite ? 0 : axisMargin);\n }\n scrollbar.position(xPosition, axis.top, axis.width, axis.height);\n // Next scrollbar should reserve space for margin (if set)\n if (axis.opposite) {\n scrollbarsOffsets[0] += axisMargin;\n }\n offsetsIndex = 0;\n }\n scrollbarsOffsets[offsetsIndex] += scrollbar.size +\n (scrollbar.options.margin || 0);\n if (isNaN(scrollMin) ||\n isNaN(scrollMax) ||\n !ScrollbarAxis_defined(axis.min) ||\n !ScrollbarAxis_defined(axis.max) ||\n axis.dataMin === axis.dataMax // #10733\n ) {\n // Default action: when data extremes are the same or there is\n // not extremes on the axis, but scrollbar exists, make it\n // full size\n scrollbar.setRange(0, 1);\n }\n else if (axis.min === axis.max) { // #20359\n // When the extremes are the same, set the scrollbar to a point\n // within the extremes range. Utilize pointRange to perform the\n // calculations. (#20359)\n var interval = axis.pointRange / (axis.dataMax +\n 1);\n from = interval * axis.min;\n to = interval * (axis.max + 1);\n scrollbar.setRange(from, to);\n }\n else {\n from = ((axis.min - scrollMin) /\n (scrollMax - scrollMin));\n to = ((axis.max - scrollMin) /\n (scrollMax - scrollMin));\n if ((axis.horiz && !axis.reversed) ||\n (!axis.horiz && axis.reversed)) {\n scrollbar.setRange(from, to);\n }\n else {\n // Inverse vertical axis\n scrollbar.setRange(1 - to, 1 - from);\n }\n }\n }\n }\n})(ScrollbarAxis || (ScrollbarAxis = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Axis_ScrollbarAxis = (ScrollbarAxis);\n\n;// ./code/es5/es-modules/Stock/Scrollbar/ScrollbarDefaults.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n * Constant\n *\n * */\n/**\n *\n * The scrollbar is a means of panning over the X axis of a stock chart.\n * Scrollbars can also be applied to other types of axes.\n *\n * Another approach to scrollable charts is the [chart.scrollablePlotArea](\n * https://api.highcharts.com/highcharts/chart.scrollablePlotArea) option that\n * is especially suitable for simpler cartesian charts on mobile.\n *\n * In styled mode, all the presentational options for the\n * scrollbar are replaced by the classes `.highcharts-scrollbar-thumb`,\n * `.highcharts-scrollbar-arrow`, `.highcharts-scrollbar-button`,\n * `.highcharts-scrollbar-rifles` and `.highcharts-scrollbar-track`.\n *\n * @sample stock/yaxis/inverted-bar-scrollbar/\n * A scrollbar on a simple bar chart\n *\n * @product highstock gantt\n * @optionparent scrollbar\n *\n * @private\n */\nvar ScrollbarDefaults = {\n /**\n * The height of the scrollbar. If `buttonsEnabled` is true , the height\n * also applies to the width of the scroll arrows so that they are always\n * squares.\n *\n * @sample stock/scrollbar/style/\n * Non-default height\n *\n * @type {number}\n */\n height: 10,\n /**\n * The border rounding radius of the bar.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n */\n barBorderRadius: 5,\n /**\n * The corner radius of the scrollbar buttons.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n */\n buttonBorderRadius: 0,\n /**\n * Enable or disable the buttons at the end of the scrollbar.\n *\n * @since 11.0.0\n */\n buttonsEnabled: false,\n /**\n * Enable or disable the scrollbar.\n *\n * @sample stock/scrollbar/enabled/\n * Disable the scrollbar, only use navigator\n *\n * @type {boolean}\n * @default true\n * @apioption scrollbar.enabled\n */\n /**\n * Whether to redraw the main chart as the scrollbar or the navigator\n * zoomed window is moved. Defaults to `true` for modern browsers and\n * `false` for legacy IE browsers as well as mobile devices.\n *\n * @sample stock/scrollbar/liveredraw\n * Setting live redraw to false\n *\n * @type {boolean}\n * @since 1.3\n */\n liveRedraw: void 0,\n /**\n * The margin between the scrollbar and its axis when the scrollbar is\n * applied directly to an axis, or the navigator in case that is enabled.\n * Defaults to 10 for axis, 0 for navigator.\n *\n * @type {number|undefined}\n */\n margin: void 0,\n /**\n * The minimum width of the scrollbar.\n *\n * @since 1.2.5\n */\n minWidth: 6,\n /** @ignore-option */\n opposite: true,\n /**\n * Whether to show or hide the scrollbar when the scrolled content is\n * zoomed out to it full extent.\n *\n * @type {boolean}\n * @default true\n * @apioption scrollbar.showFull\n */\n step: 0.2,\n /**\n * The z index of the scrollbar group.\n */\n zIndex: 3,\n /**\n * The background color of the scrollbar itself.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n barBackgroundColor: \"#cccccc\" /* Palette.neutralColor20 */,\n /**\n * The width of the bar's border.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n */\n barBorderWidth: 0,\n /**\n * The color of the scrollbar's border.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n barBorderColor: \"#cccccc\" /* Palette.neutralColor20 */,\n /**\n * The color of the small arrow inside the scrollbar buttons.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n buttonArrowColor: \"#333333\" /* Palette.neutralColor80 */,\n /**\n * The color of scrollbar buttons.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n buttonBackgroundColor: \"#e6e6e6\" /* Palette.neutralColor10 */,\n /**\n * The color of the border of the scrollbar buttons.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n buttonBorderColor: \"#cccccc\" /* Palette.neutralColor20 */,\n /**\n * The border width of the scrollbar buttons.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n */\n buttonBorderWidth: 1,\n /**\n * The color of the small rifles in the middle of the scrollbar.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n rifleColor: 'none',\n /**\n * The color of the track background.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n trackBackgroundColor: 'rgba(255, 255, 255, 0.001)', // #18922\n /**\n * The color of the border of the scrollbar track.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n trackBorderColor: \"#cccccc\" /* Palette.neutralColor20 */,\n /**\n * The corner radius of the border of the scrollbar track.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n */\n trackBorderRadius: 5,\n /**\n * The width of the border of the scrollbar track.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n */\n trackBorderWidth: 1\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Scrollbar_ScrollbarDefaults = (ScrollbarDefaults);\n\n;// ./code/es5/es-modules/Stock/Scrollbar/Scrollbar.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar defaultOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defaultOptions;\n\n\n\n\nvar Scrollbar_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, Scrollbar_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, crisp = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).crisp, Scrollbar_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, destroyObjectProperties = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).destroyObjectProperties, Scrollbar_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, Scrollbar_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, Scrollbar_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, removeEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).removeEvent;\n/* *\n *\n * Constants\n *\n * */\n/* eslint-disable no-invalid-this, valid-jsdoc */\n/**\n * A reusable scrollbar, internally used in Highcharts Stock's\n * navigator and optionally on individual axes.\n *\n * @private\n * @class\n * @name Highcharts.Scrollbar\n * @param {Highcharts.SVGRenderer} renderer\n * @param {Highcharts.ScrollbarOptions} options\n * @param {Highcharts.Chart} chart\n */\nvar Scrollbar = /** @class */ (function () {\n /* *\n *\n * Constructors\n *\n * */\n function Scrollbar(renderer, options, chart) {\n /* *\n *\n * Properties\n *\n * */\n this._events = [];\n this.chartX = 0;\n this.chartY = 0;\n this.from = 0;\n this.scrollbarButtons = [];\n this.scrollbarLeft = 0;\n this.scrollbarStrokeWidth = 1;\n this.scrollbarTop = 0;\n this.size = 0;\n this.to = 0;\n this.trackBorderWidth = 1;\n this.x = 0;\n this.y = 0;\n this.init(renderer, options, chart);\n }\n /* *\n *\n * Static Functions\n *\n * */\n Scrollbar.compose = function (AxisClass) {\n Axis_ScrollbarAxis.compose(AxisClass, Scrollbar);\n };\n /**\n * When we have vertical scrollbar, rifles and arrow in buttons should be\n * rotated. The same method is used in Navigator's handles, to rotate them.\n *\n * @function Highcharts.swapXY\n *\n * @param {Highcharts.SVGPathArray} path\n * Path to be rotated.\n *\n * @param {boolean} [vertical]\n * If vertical scrollbar, swap x-y values.\n *\n * @return {Highcharts.SVGPathArray}\n * Rotated path.\n *\n * @requires modules/stock\n */\n Scrollbar.swapXY = function (path, vertical) {\n if (vertical) {\n path.forEach(function (seg) {\n var len = seg.length;\n var temp;\n for (var i = 0; i < len; i += 2) {\n temp = seg[i + 1];\n if (typeof temp === 'number') {\n seg[i + 1] = seg[i + 2];\n seg[i + 2] = temp;\n }\n }\n });\n }\n return path;\n };\n /* *\n *\n * Functions\n *\n * */\n /**\n * Set up the mouse and touch events for the Scrollbar\n *\n * @private\n * @function Highcharts.Scrollbar#addEvents\n */\n Scrollbar.prototype.addEvents = function () {\n var buttonsOrder = this.options.inverted ? [1, 0] : [0, 1],\n buttons = this.scrollbarButtons,\n bar = this.scrollbarGroup.element,\n track = this.track.element,\n mouseDownHandler = this.mouseDownHandler.bind(this),\n mouseMoveHandler = this.mouseMoveHandler.bind(this),\n mouseUpHandler = this.mouseUpHandler.bind(this);\n var _events = [\n // Mouse events\n [\n buttons[buttonsOrder[0]].element,\n 'click',\n this.buttonToMinClick.bind(this)\n ],\n [\n buttons[buttonsOrder[1]].element,\n 'click',\n this.buttonToMaxClick.bind(this)\n ],\n [track, 'click',\n this.trackClick.bind(this)],\n [bar, 'mousedown',\n mouseDownHandler],\n [bar.ownerDocument, 'mousemove',\n mouseMoveHandler],\n [bar.ownerDocument, 'mouseup',\n mouseUpHandler],\n // Touch events\n [bar, 'touchstart',\n mouseDownHandler],\n [bar.ownerDocument, 'touchmove',\n mouseMoveHandler],\n [bar.ownerDocument, 'touchend',\n mouseUpHandler]\n ];\n // Add them all\n _events.forEach(function (args) {\n Scrollbar_addEvent.apply(null, args);\n });\n this._events = _events;\n };\n Scrollbar.prototype.buttonToMaxClick = function (e) {\n var scroller = this;\n var range = ((scroller.to - scroller.from) *\n Scrollbar_pick(scroller.options.step, 0.2));\n scroller.updatePosition(scroller.from + range, scroller.to + range);\n Scrollbar_fireEvent(scroller, 'changed', {\n from: scroller.from,\n to: scroller.to,\n trigger: 'scrollbar',\n DOMEvent: e\n });\n };\n Scrollbar.prototype.buttonToMinClick = function (e) {\n var scroller = this;\n var range = Scrollbar_correctFloat(scroller.to - scroller.from) *\n Scrollbar_pick(scroller.options.step, 0.2);\n scroller.updatePosition(Scrollbar_correctFloat(scroller.from - range), Scrollbar_correctFloat(scroller.to - range));\n Scrollbar_fireEvent(scroller, 'changed', {\n from: scroller.from,\n to: scroller.to,\n trigger: 'scrollbar',\n DOMEvent: e\n });\n };\n /**\n * Get normalized (0-1) cursor position over the scrollbar\n *\n * @private\n * @function Highcharts.Scrollbar#cursorToScrollbarPosition\n *\n * @param {*} normalizedEvent\n * normalized event, with chartX and chartY values\n *\n * @return {Highcharts.Dictionary<number>}\n * Local position {chartX, chartY}\n */\n Scrollbar.prototype.cursorToScrollbarPosition = function (normalizedEvent) {\n var scroller = this,\n options = scroller.options,\n minWidthDifference = options.minWidth > scroller.calculatedWidth ?\n options.minWidth :\n 0; // `minWidth` distorts translation\n return {\n chartX: (normalizedEvent.chartX - scroller.x -\n scroller.xOffset) /\n (scroller.barWidth - minWidthDifference),\n chartY: (normalizedEvent.chartY - scroller.y -\n scroller.yOffset) /\n (scroller.barWidth - minWidthDifference)\n };\n };\n /**\n * Destroys allocated elements.\n *\n * @private\n * @function Highcharts.Scrollbar#destroy\n */\n Scrollbar.prototype.destroy = function () {\n var scroller = this,\n navigator = scroller.chart.scroller;\n // Disconnect events added in addEvents\n scroller.removeEvents();\n // Destroy properties\n [\n 'track',\n 'scrollbarRifles',\n 'scrollbar',\n 'scrollbarGroup',\n 'group'\n ].forEach(function (prop) {\n if (scroller[prop] && scroller[prop].destroy) {\n scroller[prop] = scroller[prop].destroy();\n }\n });\n // #6421, chart may have more scrollbars\n if (navigator && scroller === navigator.scrollbar) {\n navigator.scrollbar = null;\n // Destroy elements in collection\n destroyObjectProperties(navigator.scrollbarButtons);\n }\n };\n /**\n * Draw the scrollbar buttons with arrows\n *\n * @private\n * @function Highcharts.Scrollbar#drawScrollbarButton\n * @param {number} index\n * 0 is left, 1 is right\n */\n Scrollbar.prototype.drawScrollbarButton = function (index) {\n var scroller = this,\n renderer = scroller.renderer,\n scrollbarButtons = scroller.scrollbarButtons,\n options = scroller.options,\n size = scroller.size,\n group = renderer.g().add(scroller.group);\n scrollbarButtons.push(group);\n if (options.buttonsEnabled) {\n // Create a rectangle for the scrollbar button\n var rect = renderer.rect()\n .addClass('highcharts-scrollbar-button')\n .add(group);\n // Presentational attributes\n if (!scroller.chart.styledMode) {\n rect.attr({\n stroke: options.buttonBorderColor,\n 'stroke-width': options.buttonBorderWidth,\n fill: options.buttonBackgroundColor\n });\n }\n // Place the rectangle based on the rendered stroke width\n rect.attr(rect.crisp({\n x: -0.5,\n y: -0.5,\n width: size,\n height: size,\n r: options.buttonBorderRadius\n }, rect.strokeWidth()));\n // Button arrow\n var arrow = renderer\n .path(Scrollbar.swapXY([[\n 'M',\n size / 2 + (index ? -1 : 1),\n size / 2 - 3\n ],\n [\n 'L',\n size / 2 + (index ? -1 : 1),\n size / 2 + 3\n ],\n [\n 'L',\n size / 2 + (index ? 2 : -2),\n size / 2\n ]],\n options.vertical))\n .addClass('highcharts-scrollbar-arrow')\n .add(scrollbarButtons[index]);\n if (!scroller.chart.styledMode) {\n arrow.attr({\n fill: options.buttonArrowColor\n });\n }\n }\n };\n /**\n * @private\n * @function Highcharts.Scrollbar#init\n * @param {Highcharts.SVGRenderer} renderer\n * @param {Highcharts.ScrollbarOptions} options\n * @param {Highcharts.Chart} chart\n */\n Scrollbar.prototype.init = function (renderer, options, chart) {\n var scroller = this;\n scroller.scrollbarButtons = [];\n scroller.renderer = renderer;\n scroller.userOptions = options;\n scroller.options = Scrollbar_merge(Scrollbar_ScrollbarDefaults, defaultOptions.scrollbar, options);\n scroller.options.margin = Scrollbar_pick(scroller.options.margin, 10);\n scroller.chart = chart;\n // Backward compatibility\n scroller.size = Scrollbar_pick(scroller.options.size, scroller.options.height);\n // Init\n if (options.enabled) {\n scroller.render();\n scroller.addEvents();\n }\n };\n Scrollbar.prototype.mouseDownHandler = function (e) {\n var _a;\n var scroller = this,\n normalizedEvent = ((_a = scroller.chart.pointer) === null || _a === void 0 ? void 0 : _a.normalize(e)) || e,\n mousePosition = scroller.cursorToScrollbarPosition(normalizedEvent);\n scroller.chartX = mousePosition.chartX;\n scroller.chartY = mousePosition.chartY;\n scroller.initPositions = [scroller.from, scroller.to];\n scroller.grabbedCenter = true;\n };\n /**\n * Event handler for the mouse move event.\n * @private\n */\n Scrollbar.prototype.mouseMoveHandler = function (e) {\n var _a;\n var scroller = this,\n normalizedEvent = ((_a = scroller.chart.pointer) === null || _a === void 0 ? void 0 : _a.normalize(e)) || e,\n options = scroller.options,\n direction = options.vertical ?\n 'chartY' : 'chartX',\n initPositions = scroller.initPositions || [];\n var scrollPosition,\n chartPosition,\n change;\n // In iOS, a mousemove event with e.pageX === 0 is fired when\n // holding the finger down in the center of the scrollbar. This\n // should be ignored.\n if (scroller.grabbedCenter &&\n // #4696, scrollbar failed on Android\n (!e.touches || e.touches[0][direction] !== 0)) {\n chartPosition = scroller.cursorToScrollbarPosition(normalizedEvent)[direction];\n scrollPosition = scroller[direction];\n change = chartPosition - scrollPosition;\n scroller.hasDragged = true;\n scroller.updatePosition(initPositions[0] + change, initPositions[1] + change);\n if (scroller.hasDragged) {\n Scrollbar_fireEvent(scroller, 'changed', {\n from: scroller.from,\n to: scroller.to,\n trigger: 'scrollbar',\n DOMType: e.type,\n DOMEvent: e\n });\n }\n }\n };\n /**\n * Event handler for the mouse up event.\n * @private\n */\n Scrollbar.prototype.mouseUpHandler = function (e) {\n var scroller = this;\n if (scroller.hasDragged) {\n Scrollbar_fireEvent(scroller, 'changed', {\n from: scroller.from,\n to: scroller.to,\n trigger: 'scrollbar',\n DOMType: e.type,\n DOMEvent: e\n });\n }\n scroller.grabbedCenter =\n scroller.hasDragged =\n scroller.chartX =\n scroller.chartY = null;\n };\n /**\n * Position the scrollbar, method called from a parent with defined\n * dimensions.\n *\n * @private\n * @function Highcharts.Scrollbar#position\n * @param {number} x\n * x-position on the chart\n * @param {number} y\n * y-position on the chart\n * @param {number} width\n * width of the scrollbar\n * @param {number} height\n * height of the scrollbar\n */\n Scrollbar.prototype.position = function (x, y, width, height) {\n var scroller = this,\n options = scroller.options,\n buttonsEnabled = options.buttonsEnabled,\n _a = options.margin,\n margin = _a === void 0 ? 0 : _a,\n vertical = options.vertical,\n method = scroller.rendered ? 'animate' : 'attr';\n var xOffset = height,\n yOffset = 0;\n // Make the scrollbar visible when it is repositioned, #15763.\n scroller.group.show();\n scroller.x = x;\n scroller.y = y + this.trackBorderWidth;\n scroller.width = width; // Width with buttons\n scroller.height = height;\n scroller.xOffset = xOffset;\n scroller.yOffset = yOffset;\n // If Scrollbar is a vertical type, swap options:\n if (vertical) {\n scroller.width = scroller.yOffset = width = yOffset = scroller.size;\n scroller.xOffset = xOffset = 0;\n scroller.yOffset = yOffset = buttonsEnabled ? scroller.size : 0;\n // Width without buttons\n scroller.barWidth = height - (buttonsEnabled ? width * 2 : 0);\n scroller.x = x = x + margin;\n }\n else {\n scroller.height = height = scroller.size;\n scroller.xOffset = xOffset = buttonsEnabled ? scroller.size : 0;\n // Width without buttons\n scroller.barWidth = width - (buttonsEnabled ? height * 2 : 0);\n scroller.y = scroller.y + margin;\n }\n // Set general position for a group:\n scroller.group[method]({\n translateX: x,\n translateY: scroller.y\n });\n // Resize background/track:\n scroller.track[method]({\n width: width,\n height: height\n });\n // Move right/bottom button to its place:\n scroller.scrollbarButtons[1][method]({\n translateX: vertical ? 0 : width - xOffset,\n translateY: vertical ? height - yOffset : 0\n });\n };\n /**\n * Removes the event handlers attached previously with addEvents.\n *\n * @private\n * @function Highcharts.Scrollbar#removeEvents\n */\n Scrollbar.prototype.removeEvents = function () {\n this._events.forEach(function (args) {\n removeEvent.apply(null, args);\n });\n this._events.length = 0;\n };\n /**\n * Render scrollbar with all required items.\n *\n * @private\n * @function Highcharts.Scrollbar#render\n */\n Scrollbar.prototype.render = function () {\n var scroller = this,\n renderer = scroller.renderer,\n options = scroller.options,\n size = scroller.size,\n styledMode = scroller.chart.styledMode,\n group = renderer.g('scrollbar')\n .attr({\n zIndex: options.zIndex\n })\n .hide() // Initially hide the scrollbar #15863\n .add();\n // Draw the scrollbar group\n scroller.group = group;\n // Draw the scrollbar track:\n scroller.track = renderer.rect()\n .addClass('highcharts-scrollbar-track')\n .attr({\n r: options.trackBorderRadius || 0,\n height: size,\n width: size\n }).add(group);\n if (!styledMode) {\n scroller.track.attr({\n fill: options.trackBackgroundColor,\n stroke: options.trackBorderColor,\n 'stroke-width': options.trackBorderWidth\n });\n }\n var trackBorderWidth = scroller.trackBorderWidth =\n scroller.track.strokeWidth();\n scroller.track.attr({\n x: -crisp(0, trackBorderWidth),\n y: -crisp(0, trackBorderWidth)\n });\n // Draw the scrollbar itself\n scroller.scrollbarGroup = renderer.g().add(group);\n scroller.scrollbar = renderer.rect()\n .addClass('highcharts-scrollbar-thumb')\n .attr({\n height: size - trackBorderWidth,\n width: size - trackBorderWidth,\n r: options.barBorderRadius || 0\n }).add(scroller.scrollbarGroup);\n scroller.scrollbarRifles = renderer\n .path(Scrollbar.swapXY([\n ['M', -3, size / 4],\n ['L', -3, 2 * size / 3],\n ['M', 0, size / 4],\n ['L', 0, 2 * size / 3],\n ['M', 3, size / 4],\n ['L', 3, 2 * size / 3]\n ], options.vertical))\n .addClass('highcharts-scrollbar-rifles')\n .add(scroller.scrollbarGroup);\n if (!styledMode) {\n scroller.scrollbar.attr({\n fill: options.barBackgroundColor,\n stroke: options.barBorderColor,\n 'stroke-width': options.barBorderWidth\n });\n scroller.scrollbarRifles.attr({\n stroke: options.rifleColor,\n 'stroke-width': 1\n });\n }\n scroller.scrollbarStrokeWidth = scroller.scrollbar.strokeWidth();\n scroller.scrollbarGroup.translate(-crisp(0, scroller.scrollbarStrokeWidth), -crisp(0, scroller.scrollbarStrokeWidth));\n // Draw the buttons:\n scroller.drawScrollbarButton(0);\n scroller.drawScrollbarButton(1);\n };\n /**\n * Set scrollbar size, with a given scale.\n *\n * @private\n * @function Highcharts.Scrollbar#setRange\n * @param {number} from\n * scale (0-1) where bar should start\n * @param {number} to\n * scale (0-1) where bar should end\n */\n Scrollbar.prototype.setRange = function (from, to) {\n var scroller = this,\n options = scroller.options,\n vertical = options.vertical,\n minWidth = options.minWidth,\n fullWidth = scroller.barWidth,\n method = (this.rendered &&\n !this.hasDragged &&\n !(this.chart.navigator && this.chart.navigator.hasDragged)) ? 'animate' : 'attr';\n if (!Scrollbar_defined(fullWidth)) {\n return;\n }\n var toPX = fullWidth * Math.min(to, 1);\n var fromPX,\n newSize;\n from = Math.max(from, 0);\n fromPX = Math.ceil(fullWidth * from);\n scroller.calculatedWidth = newSize = Scrollbar_correctFloat(toPX - fromPX);\n // We need to recalculate position, if minWidth is used\n if (newSize < minWidth) {\n fromPX = (fullWidth - minWidth + newSize) * from;\n newSize = minWidth;\n }\n var newPos = Math.floor(fromPX + scroller.xOffset + scroller.yOffset);\n var newRiflesPos = newSize / 2 - 0.5; // -0.5 -> rifle line width / 2\n // Store current position:\n scroller.from = from;\n scroller.to = to;\n if (!vertical) {\n scroller.scrollbarGroup[method]({\n translateX: newPos\n });\n scroller.scrollbar[method]({\n width: newSize\n });\n scroller.scrollbarRifles[method]({\n translateX: newRiflesPos\n });\n scroller.scrollbarLeft = newPos;\n scroller.scrollbarTop = 0;\n }\n else {\n scroller.scrollbarGroup[method]({\n translateY: newPos\n });\n scroller.scrollbar[method]({\n height: newSize\n });\n scroller.scrollbarRifles[method]({\n translateY: newRiflesPos\n });\n scroller.scrollbarTop = newPos;\n scroller.scrollbarLeft = 0;\n }\n if (newSize <= 12) {\n scroller.scrollbarRifles.hide();\n }\n else {\n scroller.scrollbarRifles.show();\n }\n // Show or hide the scrollbar based on the showFull setting\n if (options.showFull === false) {\n if (from <= 0 && to >= 1) {\n scroller.group.hide();\n }\n else {\n scroller.group.show();\n }\n }\n scroller.rendered = true;\n };\n /**\n * Checks if the extremes should be updated in response to a scrollbar\n * change event.\n *\n * @private\n * @function Highcharts.Scrollbar#shouldUpdateExtremes\n */\n Scrollbar.prototype.shouldUpdateExtremes = function (eventType) {\n return (Scrollbar_pick(this.options.liveRedraw, (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).svg &&\n !(highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isTouchDevice &&\n !this.chart.boosted) ||\n // Mouseup always should change extremes\n eventType === 'mouseup' ||\n eventType === 'touchend' ||\n // Internal events\n !Scrollbar_defined(eventType));\n };\n Scrollbar.prototype.trackClick = function (e) {\n var _a;\n var scroller = this;\n var normalizedEvent = ((_a = scroller.chart.pointer) === null || _a === void 0 ? void 0 : _a.normalize(e)) || e,\n range = scroller.to - scroller.from,\n top = scroller.y + scroller.scrollbarTop,\n left = scroller.x + scroller.scrollbarLeft;\n if ((scroller.options.vertical && normalizedEvent.chartY > top) ||\n (!scroller.options.vertical && normalizedEvent.chartX > left)) {\n // On the top or on the left side of the track:\n scroller.updatePosition(scroller.from + range, scroller.to + range);\n }\n else {\n // On the bottom or the right side of the track:\n scroller.updatePosition(scroller.from - range, scroller.to - range);\n }\n Scrollbar_fireEvent(scroller, 'changed', {\n from: scroller.from,\n to: scroller.to,\n trigger: 'scrollbar',\n DOMEvent: e\n });\n };\n /**\n * Update the scrollbar with new options\n *\n * @private\n * @function Highcharts.Scrollbar#update\n * @param {Highcharts.ScrollbarOptions} options\n */\n Scrollbar.prototype.update = function (options) {\n this.destroy();\n this.init(this.chart.renderer, Scrollbar_merge(true, this.options, options), this.chart);\n };\n /**\n * Update position option in the Scrollbar, with normalized 0-1 scale\n *\n * @private\n * @function Highcharts.Scrollbar#updatePosition\n * @param {number} from\n * @param {number} to\n */\n Scrollbar.prototype.updatePosition = function (from, to) {\n if (to > 1) {\n from = Scrollbar_correctFloat(1 - Scrollbar_correctFloat(to - from));\n to = 1;\n }\n if (from < 0) {\n to = Scrollbar_correctFloat(to - from);\n from = 0;\n }\n this.from = from;\n this.to = to;\n };\n /* *\n *\n * Static Properties\n *\n * */\n Scrollbar.defaultOptions = Scrollbar_ScrollbarDefaults;\n return Scrollbar;\n}());\n/* *\n *\n * Registry\n *\n * */\ndefaultOptions.scrollbar = Scrollbar_merge(true, Scrollbar.defaultOptions, defaultOptions.scrollbar);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Scrollbar_Scrollbar = (Scrollbar);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"SVGRenderer\"],\"commonjs\":[\"highcharts\",\"SVGRenderer\"],\"commonjs2\":[\"highcharts\",\"SVGRenderer\"],\"root\":[\"Highcharts\",\"SVGRenderer\"]}\nvar highcharts_SVGRenderer_commonjs_highcharts_SVGRenderer_commonjs2_highcharts_SVGRenderer_root_Highcharts_SVGRenderer_ = __webpack_require__(540);\nvar highcharts_SVGRenderer_commonjs_highcharts_SVGRenderer_commonjs2_highcharts_SVGRenderer_root_Highcharts_SVGRenderer_default = /*#__PURE__*/__webpack_require__.n(highcharts_SVGRenderer_commonjs_highcharts_SVGRenderer_commonjs2_highcharts_SVGRenderer_root_Highcharts_SVGRenderer_);\n;// ./code/es5/es-modules/Stock/Navigator/Navigator.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n\n\nvar Navigator_defaultOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defaultOptions;\n\nvar Navigator_isTouchDevice = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isTouchDevice;\n\n\n\n\nvar symbols = (highcharts_SVGRenderer_commonjs_highcharts_SVGRenderer_commonjs2_highcharts_SVGRenderer_root_Highcharts_SVGRenderer_default()).prototype.symbols;\n\nvar Navigator_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, clamp = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).clamp, Navigator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, Navigator_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, Navigator_destroyObjectProperties = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).destroyObjectProperties, erase = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).erase, Navigator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, Navigator_find = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).find, Navigator_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, Navigator_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, Navigator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, Navigator_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, Navigator_removeEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).removeEvent, splat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).splat;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Finding the min or max of a set of variables where we don't know if they are\n * defined, is a pattern that is repeated several places in Highcharts. Consider\n * making this a global utility method.\n * @private\n */\nfunction numExt(extreme) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var numbers = [].filter.call(args,\n Navigator_isNumber);\n if (numbers.length) {\n return Math[extreme].apply(0, numbers);\n }\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * The Navigator class\n *\n * @private\n * @class\n * @name Highcharts.Navigator\n *\n * @param {Highcharts.Chart} chart\n * Chart object\n */\nvar Navigator = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function Navigator(chart) {\n this.isDirty = false;\n this.scrollbarHeight = 0;\n this.init(chart);\n }\n /* *\n *\n * Static Properties\n *\n * */\n Navigator.compose = function (ChartClass, AxisClass, SeriesClass) {\n Navigator_ChartNavigatorComposition.compose(ChartClass, Navigator);\n Navigator_NavigatorComposition.compose(ChartClass, AxisClass, SeriesClass);\n };\n /* *\n *\n * Functions\n *\n * */\n /**\n * Draw one of the handles on the side of the zoomed range in the navigator.\n *\n * @private\n * @function Highcharts.Navigator#drawHandle\n *\n * @param {number} x\n * The x center for the handle\n *\n * @param {number} index\n * 0 for left and 1 for right\n *\n * @param {boolean|undefined} inverted\n * Flag for chart.inverted\n *\n * @param {string} verb\n * Use 'animate' or 'attr'\n */\n Navigator.prototype.drawHandle = function (x, index, inverted, verb) {\n var navigator = this,\n height = navigator.navigatorOptions.handles.height;\n // Place it\n navigator.handles[index][verb](inverted ? {\n translateX: Math.round(navigator.left + navigator.height / 2),\n translateY: Math.round(navigator.top + parseInt(x, 10) + 0.5 - height)\n } : {\n translateX: Math.round(navigator.left + parseInt(x, 10)),\n translateY: Math.round(navigator.top + navigator.height / 2 - height / 2 - 1)\n });\n };\n /**\n * Render outline around the zoomed range\n *\n * @private\n * @function Highcharts.Navigator#drawOutline\n *\n * @param {number} zoomedMin\n * in pixels position where zoomed range starts\n *\n * @param {number} zoomedMax\n * in pixels position where zoomed range ends\n *\n * @param {boolean|undefined} inverted\n * flag if chart is inverted\n *\n * @param {string} verb\n * use 'animate' or 'attr'\n */\n Navigator.prototype.drawOutline = function (zoomedMin, zoomedMax, inverted, verb) {\n var navigator = this, maskInside = navigator.navigatorOptions.maskInside, outlineWidth = navigator.outline.strokeWidth(), halfOutline = outlineWidth / 2, outlineCorrection = (outlineWidth % 2) / 2, // #5800\n scrollButtonSize = navigator.scrollButtonSize, navigatorSize = navigator.size, navigatorTop = navigator.top, height = navigator.height, lineTop = navigatorTop - halfOutline, lineBtm = navigatorTop + height;\n var left = navigator.left,\n verticalMin,\n path;\n if (inverted) {\n verticalMin = navigatorTop + zoomedMax + outlineCorrection;\n zoomedMax = navigatorTop + zoomedMin + outlineCorrection;\n path = [\n [\n 'M',\n left + height,\n navigatorTop - scrollButtonSize - outlineCorrection\n ],\n // Top right of zoomed range\n ['L', left + height, verticalMin],\n ['L', left, verticalMin], // Top left of z.r.\n ['M', left, zoomedMax], // Bottom left of z.r.\n ['L', left + height, zoomedMax], // Bottom right of z.r.\n [\n 'L',\n left + height,\n navigatorTop + navigatorSize + scrollButtonSize\n ]\n ];\n if (maskInside) {\n path.push(\n // Upper left of zoomed range\n ['M', left + height, verticalMin - halfOutline], \n // Upper right of z.r.\n [\n 'L',\n left + height,\n zoomedMax + halfOutline\n ]);\n }\n }\n else {\n left -= scrollButtonSize;\n zoomedMin += left + scrollButtonSize - outlineCorrection;\n zoomedMax += left + scrollButtonSize - outlineCorrection;\n path = [\n // Left\n ['M', left, lineTop],\n // Upper left of zoomed range\n ['L', zoomedMin, lineTop],\n // Lower left of z.r.\n ['L', zoomedMin, lineBtm],\n // Lower right of z.r.\n ['M', zoomedMax, lineBtm],\n // Upper right of z.r.\n ['L', zoomedMax, lineTop],\n // Right\n [\n 'L',\n left + navigatorSize + scrollButtonSize * 2,\n lineTop\n ]\n ];\n if (maskInside) {\n path.push(\n // Upper left of zoomed range\n ['M', zoomedMin - halfOutline, lineTop], \n // Upper right of z.r.\n ['L', zoomedMax + halfOutline, lineTop]);\n }\n }\n navigator.outline[verb]({\n d: path\n });\n };\n /**\n * Render outline around the zoomed range\n *\n * @private\n * @function Highcharts.Navigator#drawMasks\n *\n * @param {number} zoomedMin\n * in pixels position where zoomed range starts\n *\n * @param {number} zoomedMax\n * in pixels position where zoomed range ends\n *\n * @param {boolean|undefined} inverted\n * flag if chart is inverted\n *\n * @param {string} verb\n * use 'animate' or 'attr'\n */\n Navigator.prototype.drawMasks = function (zoomedMin, zoomedMax, inverted, verb) {\n var navigator = this,\n left = navigator.left,\n top = navigator.top,\n navigatorHeight = navigator.height;\n var height,\n width,\n x,\n y;\n // Determine rectangle position & size\n // According to (non)inverted position:\n if (inverted) {\n x = [left, left, left];\n y = [top, top + zoomedMin, top + zoomedMax];\n width = [navigatorHeight, navigatorHeight, navigatorHeight];\n height = [\n zoomedMin,\n zoomedMax - zoomedMin,\n navigator.size - zoomedMax\n ];\n }\n else {\n x = [left, left + zoomedMin, left + zoomedMax];\n y = [top, top, top];\n width = [\n zoomedMin,\n zoomedMax - zoomedMin,\n navigator.size - zoomedMax\n ];\n height = [navigatorHeight, navigatorHeight, navigatorHeight];\n }\n navigator.shades.forEach(function (shade, i) {\n shade[verb]({\n x: x[i],\n y: y[i],\n width: width[i],\n height: height[i]\n });\n });\n };\n /**\n * Generate and update DOM elements for a navigator:\n *\n * - main navigator group\n *\n * - all shades\n *\n * - outline\n *\n * - handles\n *\n * @private\n * @function Highcharts.Navigator#renderElements\n */\n Navigator.prototype.renderElements = function () {\n var _a,\n _b;\n var navigator = this,\n navigatorOptions = navigator.navigatorOptions,\n maskInside = navigatorOptions.maskInside,\n chart = navigator.chart,\n inverted = chart.inverted,\n renderer = chart.renderer,\n mouseCursor = {\n cursor: inverted ? 'ns-resize' : 'ew-resize'\n }, \n // Create the main navigator group\n navigatorGroup = (_a = navigator.navigatorGroup) !== null && _a !== void 0 ? _a : (navigator.navigatorGroup = renderer\n .g('navigator')\n .attr({\n zIndex: 8,\n visibility: 'hidden'\n })\n .add());\n // Create masks, each mask will get events and fill:\n [\n !maskInside,\n maskInside,\n !maskInside\n ].forEach(function (hasMask, index) {\n var _a;\n var shade = (_a = navigator.shades[index]) !== null && _a !== void 0 ? _a : (navigator.shades[index] = renderer.rect()\n .addClass('highcharts-navigator-mask' +\n (index === 1 ? '-inside' : '-outside'))\n .add(navigatorGroup));\n if (!chart.styledMode) {\n shade.attr({\n fill: hasMask ? navigatorOptions.maskFill : 'rgba(0,0,0,0)'\n });\n if (index === 1) {\n shade.css(mouseCursor);\n }\n }\n });\n // Create the outline:\n if (!navigator.outline) {\n navigator.outline = renderer.path()\n .addClass('highcharts-navigator-outline')\n .add(navigatorGroup);\n }\n if (!chart.styledMode) {\n navigator.outline.attr({\n 'stroke-width': navigatorOptions.outlineWidth,\n stroke: navigatorOptions.outlineColor\n });\n }\n // Create the handlers:\n if ((_b = navigatorOptions.handles) === null || _b === void 0 ? void 0 : _b.enabled) {\n var handlesOptions_1 = navigatorOptions.handles,\n height_1 = handlesOptions_1.height,\n width_1 = handlesOptions_1.width;\n [0, 1].forEach(function (index) {\n var _a;\n var symbolName = handlesOptions_1.symbols[index];\n if (!navigator.handles[index] ||\n navigator.handles[index].symbolUrl !== symbolName) {\n // Generate symbol from scratch if we're dealing with an URL\n (_a = navigator.handles[index]) === null || _a === void 0 ? void 0 : _a.destroy();\n navigator.handles[index] = renderer.symbol(symbolName, -width_1 / 2 - 1, 0, width_1, height_1, handlesOptions_1);\n // Z index is 6 for right handle, 7 for left. Can't be 10,\n // because of the tooltip in inverted chart (#2908).\n navigator.handles[index].attr({ zIndex: 7 - index })\n .addClass('highcharts-navigator-handle ' +\n 'highcharts-navigator-handle-' +\n ['left', 'right'][index]).add(navigatorGroup);\n navigator.addMouseEvents();\n // If the navigator symbol changed, update its path and name\n }\n else if (!navigator.handles[index].isImg &&\n navigator.handles[index].symbolName !== symbolName) {\n var symbolFn = symbols[symbolName],\n path = symbolFn.call(symbols, -width_1 / 2 - 1, 0,\n width_1,\n height_1);\n navigator.handles[index].attr({\n d: path\n });\n navigator.handles[index].symbolName = symbolName;\n }\n if (chart.inverted) {\n navigator.handles[index].attr({\n rotation: 90,\n rotationOriginX: Math.floor(-width_1 / 2),\n rotationOriginY: (height_1 + width_1) / 2\n });\n }\n if (!chart.styledMode) {\n navigator.handles[index]\n .attr({\n fill: handlesOptions_1.backgroundColor,\n stroke: handlesOptions_1.borderColor,\n 'stroke-width': handlesOptions_1.lineWidth,\n width: handlesOptions_1.width,\n height: handlesOptions_1.height,\n x: -width_1 / 2 - 1,\n y: 0\n })\n .css(mouseCursor);\n }\n });\n }\n };\n /**\n * Update navigator\n *\n * @private\n * @function Highcharts.Navigator#update\n *\n * @param {Highcharts.NavigatorOptions} options\n * Options to merge in when updating navigator\n */\n Navigator.prototype.update = function (options, redraw) {\n var _a,\n _b;\n var _this = this;\n var _c,\n _d;\n if (redraw === void 0) { redraw = false; }\n var chart = this.chart,\n invertedUpdate = chart.options.chart.inverted !==\n ((_c = chart.scrollbar) === null || _c === void 0 ? void 0 : _c.options.vertical);\n Navigator_merge(true, chart.options.navigator, options);\n this.navigatorOptions = chart.options.navigator || {};\n this.setOpposite();\n // Revert to destroy/init for navigator/scrollbar enabled toggle\n if (Navigator_defined(options.enabled) || invertedUpdate) {\n this.destroy();\n this.navigatorEnabled = options.enabled || this.navigatorEnabled;\n return this.init(chart);\n }\n if (this.navigatorEnabled) {\n this.isDirty = true;\n if (options.adaptToUpdatedData === false) {\n this.baseSeries.forEach(function (series) {\n Navigator_removeEvent(series, 'updatedData', _this.updatedDataHandler);\n }, this);\n }\n if (options.adaptToUpdatedData) {\n this.baseSeries.forEach(function (series) {\n series.eventsToUnbind.push(Navigator_addEvent(series, 'updatedData', _this.updatedDataHandler));\n }, this);\n }\n // Update navigator series\n if (options.series || options.baseSeries) {\n this.setBaseSeries(void 0, false);\n }\n // Update navigator axis\n if (options.height || options.xAxis || options.yAxis) {\n this.height = (_d = options.height) !== null && _d !== void 0 ? _d : this.height;\n var offsets = this.getXAxisOffsets();\n this.xAxis.update(__assign(__assign({}, options.xAxis), (_a = { offsets: offsets }, _a[chart.inverted ? 'width' : 'height'] = this.height, _a[chart.inverted ? 'height' : 'width'] = void 0, _a)), false);\n this.yAxis.update(__assign(__assign({}, options.yAxis), (_b = {}, _b[chart.inverted ? 'width' : 'height'] = this.height, _b)), false);\n }\n }\n if (redraw) {\n chart.redraw();\n }\n };\n /**\n * Render the navigator\n *\n * @private\n * @function Highcharts.Navigator#render\n * @param {number} min\n * X axis value minimum\n * @param {number} max\n * X axis value maximum\n * @param {number} [pxMin]\n * Pixel value minimum\n * @param {number} [pxMax]\n * Pixel value maximum\n */\n Navigator.prototype.render = function (min, max, pxMin, pxMax) {\n var navigator = this,\n chart = navigator.chart,\n xAxis = navigator.xAxis,\n pointRange = xAxis.pointRange || 0,\n scrollbarXAxis = xAxis.navigatorAxis.fake ? chart.xAxis[0] : xAxis,\n navigatorEnabled = navigator.navigatorEnabled,\n rendered = navigator.rendered,\n inverted = chart.inverted,\n minRange = chart.xAxis[0].minRange,\n maxRange = chart.xAxis[0].options.maxRange,\n scrollButtonSize = navigator.scrollButtonSize;\n var navigatorWidth,\n scrollbarLeft,\n scrollbarTop,\n scrollbarHeight = navigator.scrollbarHeight,\n navigatorSize,\n verb;\n // Don't redraw while moving the handles (#4703).\n if (this.hasDragged && !Navigator_defined(pxMin)) {\n return;\n }\n if (this.isDirty) {\n // Update DOM navigator elements\n this.renderElements();\n }\n min = Navigator_correctFloat(min - pointRange / 2);\n max = Navigator_correctFloat(max + pointRange / 2);\n // Don't render the navigator until we have data (#486, #4202, #5172).\n if (!Navigator_isNumber(min) || !Navigator_isNumber(max)) {\n // However, if navigator was already rendered, we may need to resize\n // it. For example hidden series, but visible navigator (#6022).\n if (rendered) {\n pxMin = 0;\n pxMax = Navigator_pick(xAxis.width, scrollbarXAxis.width);\n }\n else {\n return;\n }\n }\n navigator.left = Navigator_pick(xAxis.left, \n // In case of scrollbar only, without navigator\n chart.plotLeft + scrollButtonSize +\n (inverted ? chart.plotWidth : 0));\n var zoomedMax = navigator.size = navigatorSize = Navigator_pick(xAxis.len, (inverted ? chart.plotHeight : chart.plotWidth) -\n 2 * scrollButtonSize);\n if (inverted) {\n navigatorWidth = scrollbarHeight;\n }\n else {\n navigatorWidth = navigatorSize + 2 * scrollButtonSize;\n }\n // Get the pixel position of the handles\n pxMin = Navigator_pick(pxMin, xAxis.toPixels(min, true));\n pxMax = Navigator_pick(pxMax, xAxis.toPixels(max, true));\n // Verify (#1851, #2238)\n if (!Navigator_isNumber(pxMin) || Math.abs(pxMin) === Infinity) {\n pxMin = 0;\n pxMax = navigatorWidth;\n }\n // Are we below the minRange? (#2618, #6191)\n var newMin = xAxis.toValue(pxMin,\n true),\n newMax = xAxis.toValue(pxMax,\n true),\n currentRange = Math.abs(Navigator_correctFloat(newMax - newMin));\n if (currentRange < minRange) {\n if (this.grabbedLeft) {\n pxMin = xAxis.toPixels(newMax - minRange - pointRange, true);\n }\n else if (this.grabbedRight) {\n pxMax = xAxis.toPixels(newMin + minRange + pointRange, true);\n }\n }\n else if (Navigator_defined(maxRange) &&\n Navigator_correctFloat(currentRange - pointRange) > maxRange) {\n if (this.grabbedLeft) {\n pxMin = xAxis.toPixels(newMax - maxRange - pointRange, true);\n }\n else if (this.grabbedRight) {\n pxMax = xAxis.toPixels(newMin + maxRange + pointRange, true);\n }\n }\n // Handles are allowed to cross, but never exceed the plot area\n navigator.zoomedMax = clamp(Math.max(pxMin, pxMax), 0, zoomedMax);\n navigator.zoomedMin = clamp(navigator.fixedWidth ?\n navigator.zoomedMax - navigator.fixedWidth :\n Math.min(pxMin, pxMax), 0, zoomedMax);\n navigator.range = navigator.zoomedMax - navigator.zoomedMin;\n zoomedMax = Math.round(navigator.zoomedMax);\n var zoomedMin = Math.round(navigator.zoomedMin);\n if (navigatorEnabled) {\n navigator.navigatorGroup.attr({\n visibility: 'inherit'\n });\n // Place elements\n verb = rendered && !navigator.hasDragged ? 'animate' : 'attr';\n navigator.drawMasks(zoomedMin, zoomedMax, inverted, verb);\n navigator.drawOutline(zoomedMin, zoomedMax, inverted, verb);\n if (navigator.navigatorOptions.handles.enabled) {\n navigator.drawHandle(zoomedMin, 0, inverted, verb);\n navigator.drawHandle(zoomedMax, 1, inverted, verb);\n }\n }\n if (navigator.scrollbar) {\n if (inverted) {\n scrollbarTop = navigator.top - scrollButtonSize;\n scrollbarLeft = navigator.left - scrollbarHeight +\n (navigatorEnabled || !scrollbarXAxis.opposite ? 0 :\n // Multiple axes has offsets:\n (scrollbarXAxis.titleOffset || 0) +\n // Self margin from the axis.title\n scrollbarXAxis.axisTitleMargin);\n scrollbarHeight = navigatorSize + 2 * scrollButtonSize;\n }\n else {\n scrollbarTop = navigator.top + (navigatorEnabled ?\n navigator.height :\n -scrollbarHeight);\n scrollbarLeft = navigator.left - scrollButtonSize;\n }\n // Reposition scrollbar\n navigator.scrollbar.position(scrollbarLeft, scrollbarTop, navigatorWidth, scrollbarHeight);\n // Keep scale 0-1\n navigator.scrollbar.setRange(\n // Use real value, not rounded because range can be very small\n // (#1716)\n navigator.zoomedMin / (navigatorSize || 1), navigator.zoomedMax / (navigatorSize || 1));\n }\n navigator.rendered = true;\n this.isDirty = false;\n Navigator_fireEvent(this, 'afterRender');\n };\n /**\n * Set up the mouse and touch events for the navigator\n *\n * @private\n * @function Highcharts.Navigator#addMouseEvents\n */\n Navigator.prototype.addMouseEvents = function () {\n var navigator = this,\n chart = navigator.chart,\n container = chart.container;\n var eventsToUnbind = [],\n mouseMoveHandler,\n mouseUpHandler;\n /**\n * Create mouse events' handlers.\n * Make them as separate functions to enable wrapping them:\n */\n navigator.mouseMoveHandler = mouseMoveHandler = function (e) {\n navigator.onMouseMove(e);\n };\n navigator.mouseUpHandler = mouseUpHandler = function (e) {\n navigator.onMouseUp(e);\n };\n // Add shades and handles mousedown events\n eventsToUnbind = navigator.getPartsEvents('mousedown');\n eventsToUnbind.push(\n // Add mouse move and mouseup events. These are bind to doc/div,\n // because Navigator.grabbedSomething flags are stored in mousedown\n // events\n Navigator_addEvent(chart.renderTo, 'mousemove', mouseMoveHandler), Navigator_addEvent(container.ownerDocument, 'mouseup', mouseUpHandler), \n // Touch events\n Navigator_addEvent(chart.renderTo, 'touchmove', mouseMoveHandler), Navigator_addEvent(container.ownerDocument, 'touchend', mouseUpHandler));\n eventsToUnbind.concat(navigator.getPartsEvents('touchstart'));\n navigator.eventsToUnbind = eventsToUnbind;\n // Data events\n if (navigator.series && navigator.series[0]) {\n eventsToUnbind.push(Navigator_addEvent(navigator.series[0].xAxis, 'foundExtremes', function () {\n chart.navigator.modifyNavigatorAxisExtremes();\n }));\n }\n };\n /**\n * Generate events for handles and masks\n *\n * @private\n * @function Highcharts.Navigator#getPartsEvents\n *\n * @param {string} eventName\n * Event name handler, 'mousedown' or 'touchstart'\n *\n * @return {Array<Function>}\n * An array of functions to remove navigator functions from the\n * events again.\n */\n Navigator.prototype.getPartsEvents = function (eventName) {\n var navigator = this,\n events = [];\n ['shades', 'handles'].forEach(function (name) {\n navigator[name].forEach(function (navigatorItem, index) {\n events.push(Navigator_addEvent(navigatorItem.element, eventName, function (e) {\n navigator[name + 'Mousedown'](e, index);\n }));\n });\n });\n return events;\n };\n /**\n * Mousedown on a shaded mask, either:\n *\n * - will be stored for future drag&drop\n *\n * - will directly shift to a new range\n *\n * @private\n * @function Highcharts.Navigator#shadesMousedown\n *\n * @param {Highcharts.PointerEventObject} e\n * Mouse event\n *\n * @param {number} index\n * Index of a mask in Navigator.shades array\n */\n Navigator.prototype.shadesMousedown = function (e, index) {\n var _a;\n e = ((_a = this.chart.pointer) === null || _a === void 0 ? void 0 : _a.normalize(e)) || e;\n var navigator = this,\n chart = navigator.chart,\n xAxis = navigator.xAxis,\n zoomedMin = navigator.zoomedMin,\n navigatorSize = navigator.size,\n range = navigator.range;\n var navigatorPosition = navigator.left,\n chartX = e.chartX,\n fixedMax,\n fixedMin,\n ext,\n left;\n // For inverted chart, swap some options:\n if (chart.inverted) {\n chartX = e.chartY;\n navigatorPosition = navigator.top;\n }\n if (index === 1) {\n // Store information for drag&drop\n navigator.grabbedCenter = chartX;\n navigator.fixedWidth = range;\n navigator.dragOffset = chartX - zoomedMin;\n }\n else {\n // Shift the range by clicking on shaded areas\n left = chartX - navigatorPosition - range / 2;\n if (index === 0) {\n left = Math.max(0, left);\n }\n else if (index === 2 && left + range >= navigatorSize) {\n left = navigatorSize - range;\n if (navigator.reversedExtremes) {\n // #7713\n left -= range;\n fixedMin = navigator.getUnionExtremes().dataMin;\n }\n else {\n // #2293, #3543\n fixedMax = navigator.getUnionExtremes().dataMax;\n }\n }\n if (left !== zoomedMin) { // It has actually moved\n navigator.fixedWidth = range; // #1370\n ext = xAxis.navigatorAxis.toFixedRange(left, left + range, fixedMin, fixedMax);\n if (Navigator_defined(ext.min)) { // #7411\n Navigator_fireEvent(this, 'setRange', {\n min: Math.min(ext.min, ext.max),\n max: Math.max(ext.min, ext.max),\n redraw: true,\n eventArguments: {\n trigger: 'navigator'\n }\n });\n }\n }\n }\n };\n /**\n * Mousedown on a handle mask.\n * Will store necessary information for drag&drop.\n *\n * @private\n * @function Highcharts.Navigator#handlesMousedown\n * @param {Highcharts.PointerEventObject} e\n * Mouse event\n * @param {number} index\n * Index of a handle in Navigator.handles array\n */\n Navigator.prototype.handlesMousedown = function (e, index) {\n var _a;\n e = ((_a = this.chart.pointer) === null || _a === void 0 ? void 0 : _a.normalize(e)) || e;\n var navigator = this,\n chart = navigator.chart,\n baseXAxis = chart.xAxis[0], \n // For reversed axes, min and max are changed,\n // so the other extreme should be stored\n reverse = navigator.reversedExtremes;\n if (index === 0) {\n // Grab the left handle\n navigator.grabbedLeft = true;\n navigator.otherHandlePos = navigator.zoomedMax;\n navigator.fixedExtreme = reverse ? baseXAxis.min : baseXAxis.max;\n }\n else {\n // Grab the right handle\n navigator.grabbedRight = true;\n navigator.otherHandlePos = navigator.zoomedMin;\n navigator.fixedExtreme = reverse ? baseXAxis.max : baseXAxis.min;\n }\n chart.setFixedRange(void 0);\n };\n /**\n * Mouse move event based on x/y mouse position.\n *\n * @private\n * @function Highcharts.Navigator#onMouseMove\n *\n * @param {Highcharts.PointerEventObject} e\n * Mouse event\n */\n Navigator.prototype.onMouseMove = function (e) {\n var _a;\n var navigator = this,\n chart = navigator.chart,\n navigatorSize = navigator.navigatorSize,\n range = navigator.range,\n dragOffset = navigator.dragOffset,\n inverted = chart.inverted;\n var left = navigator.left,\n chartX;\n // In iOS, a mousemove event with e.pageX === 0 is fired when holding\n // the finger down in the center of the scrollbar. This should be\n // ignored.\n if (!e.touches || e.touches[0].pageX !== 0) { // #4696\n e = ((_a = chart.pointer) === null || _a === void 0 ? void 0 : _a.normalize(e)) || e;\n chartX = e.chartX;\n // Swap some options for inverted chart\n if (inverted) {\n left = navigator.top;\n chartX = e.chartY;\n }\n // Drag left handle or top handle\n if (navigator.grabbedLeft) {\n navigator.hasDragged = true;\n navigator.render(0, 0, chartX - left, navigator.otherHandlePos);\n // Drag right handle or bottom handle\n }\n else if (navigator.grabbedRight) {\n navigator.hasDragged = true;\n navigator.render(0, 0, navigator.otherHandlePos, chartX - left);\n // Drag scrollbar or open area in navigator\n }\n else if (navigator.grabbedCenter) {\n navigator.hasDragged = true;\n if (chartX < dragOffset) { // Outside left\n chartX = dragOffset;\n // Outside right\n }\n else if (chartX >\n navigatorSize + dragOffset - range) {\n chartX = navigatorSize + dragOffset - range;\n }\n navigator.render(0, 0, chartX - dragOffset, chartX - dragOffset + range);\n }\n if (navigator.hasDragged &&\n navigator.scrollbar &&\n Navigator_pick(navigator.scrollbar.options.liveRedraw, \n // By default, don't run live redraw on touch\n // devices or if the chart is in boost.\n !Navigator_isTouchDevice &&\n !this.chart.boosted)) {\n e.DOMType = e.type;\n setTimeout(function () {\n navigator.onMouseUp(e);\n }, 0);\n }\n }\n };\n /**\n * Mouse up event based on x/y mouse position.\n *\n * @private\n * @function Highcharts.Navigator#onMouseUp\n * @param {Highcharts.PointerEventObject} e\n * Mouse event\n */\n Navigator.prototype.onMouseUp = function (e) {\n var navigator = this,\n chart = navigator.chart,\n xAxis = navigator.xAxis,\n scrollbar = navigator.scrollbar,\n DOMEvent = e.DOMEvent || e,\n inverted = chart.inverted,\n verb = navigator.rendered && !navigator.hasDragged ?\n 'animate' : 'attr';\n var zoomedMax,\n zoomedMin,\n unionExtremes,\n fixedMin,\n fixedMax,\n ext;\n if (\n // MouseUp is called for both, navigator and scrollbar (that order),\n // which causes calling afterSetExtremes twice. Prevent first call\n // by checking if scrollbar is going to set new extremes (#6334)\n (navigator.hasDragged && (!scrollbar || !scrollbar.hasDragged)) ||\n e.trigger === 'scrollbar') {\n unionExtremes = navigator.getUnionExtremes();\n // When dragging one handle, make sure the other one doesn't change\n if (navigator.zoomedMin === navigator.otherHandlePos) {\n fixedMin = navigator.fixedExtreme;\n }\n else if (navigator.zoomedMax === navigator.otherHandlePos) {\n fixedMax = navigator.fixedExtreme;\n }\n // Snap to right edge (#4076)\n if (navigator.zoomedMax === navigator.size) {\n fixedMax = navigator.reversedExtremes ?\n unionExtremes.dataMin :\n unionExtremes.dataMax;\n }\n // Snap to left edge (#7576)\n if (navigator.zoomedMin === 0) {\n fixedMin = navigator.reversedExtremes ?\n unionExtremes.dataMax :\n unionExtremes.dataMin;\n }\n ext = xAxis.navigatorAxis.toFixedRange(navigator.zoomedMin, navigator.zoomedMax, fixedMin, fixedMax);\n if (Navigator_defined(ext.min)) {\n Navigator_fireEvent(this, 'setRange', {\n min: Math.min(ext.min, ext.max),\n max: Math.max(ext.min, ext.max),\n redraw: true,\n animation: navigator.hasDragged ? false : null,\n eventArguments: {\n trigger: 'navigator',\n triggerOp: 'navigator-drag',\n DOMEvent: DOMEvent // #1838\n }\n });\n }\n }\n if (e.DOMType !== 'mousemove' &&\n e.DOMType !== 'touchmove') {\n navigator.grabbedLeft = navigator.grabbedRight =\n navigator.grabbedCenter = navigator.fixedWidth =\n navigator.fixedExtreme = navigator.otherHandlePos =\n navigator.hasDragged = navigator.dragOffset = null;\n }\n // Update position of navigator shades, outline and handles (#12573)\n if (navigator.navigatorEnabled &&\n Navigator_isNumber(navigator.zoomedMin) &&\n Navigator_isNumber(navigator.zoomedMax)) {\n zoomedMin = Math.round(navigator.zoomedMin);\n zoomedMax = Math.round(navigator.zoomedMax);\n if (navigator.shades) {\n navigator.drawMasks(zoomedMin, zoomedMax, inverted, verb);\n }\n if (navigator.outline) {\n navigator.drawOutline(zoomedMin, zoomedMax, inverted, verb);\n }\n if (navigator.navigatorOptions.handles.enabled &&\n Object.keys(navigator.handles).length ===\n navigator.handles.length) {\n navigator.drawHandle(zoomedMin, 0, inverted, verb);\n navigator.drawHandle(zoomedMax, 1, inverted, verb);\n }\n }\n };\n /**\n * Removes the event handlers attached previously with addEvents.\n *\n * @private\n * @function Highcharts.Navigator#removeEvents\n */\n Navigator.prototype.removeEvents = function () {\n if (this.eventsToUnbind) {\n this.eventsToUnbind.forEach(function (unbind) {\n unbind();\n });\n this.eventsToUnbind = void 0;\n }\n this.removeBaseSeriesEvents();\n };\n /**\n * Remove data events.\n *\n * @private\n * @function Highcharts.Navigator#removeBaseSeriesEvents\n */\n Navigator.prototype.removeBaseSeriesEvents = function () {\n var baseSeries = this.baseSeries || [];\n if (this.navigatorEnabled && baseSeries[0]) {\n if (this.navigatorOptions.adaptToUpdatedData !== false) {\n baseSeries.forEach(function (series) {\n Navigator_removeEvent(series, 'updatedData', this.updatedDataHandler);\n }, this);\n }\n // We only listen for extremes-events on the first baseSeries\n if (baseSeries[0].xAxis) {\n Navigator_removeEvent(baseSeries[0].xAxis, 'foundExtremes', this.modifyBaseAxisExtremes);\n }\n }\n };\n /**\n * Calculate the navigator xAxis offsets\n *\n * @private\n */\n Navigator.prototype.getXAxisOffsets = function () {\n return (this.chart.inverted ?\n [this.scrollButtonSize, 0, -this.scrollButtonSize, 0] :\n [0, -this.scrollButtonSize, 0, this.scrollButtonSize]);\n };\n /**\n * Initialize the Navigator object\n *\n * @private\n * @function Highcharts.Navigator#init\n */\n Navigator.prototype.init = function (chart) {\n var _a;\n var chartOptions = chart.options,\n navigatorOptions = chartOptions.navigator || {},\n navigatorEnabled = navigatorOptions.enabled,\n scrollbarOptions = chartOptions.scrollbar || {},\n scrollbarEnabled = scrollbarOptions.enabled,\n height = navigatorEnabled && navigatorOptions.height || 0,\n scrollbarHeight = scrollbarEnabled && scrollbarOptions.height || 0,\n scrollButtonSize = scrollbarOptions.buttonsEnabled && scrollbarHeight || 0;\n this.handles = [];\n this.shades = [];\n this.chart = chart;\n this.setBaseSeries();\n this.height = height;\n this.scrollbarHeight = scrollbarHeight;\n this.scrollButtonSize = scrollButtonSize;\n this.scrollbarEnabled = scrollbarEnabled;\n this.navigatorEnabled = navigatorEnabled;\n this.navigatorOptions = navigatorOptions;\n this.scrollbarOptions = scrollbarOptions;\n this.setOpposite();\n var navigator = this,\n baseSeries = navigator.baseSeries,\n xAxisIndex = chart.xAxis.length,\n yAxisIndex = chart.yAxis.length,\n baseXaxis = baseSeries && baseSeries[0] && baseSeries[0].xAxis ||\n chart.xAxis[0] || { options: {} };\n chart.isDirtyBox = true;\n if (navigator.navigatorEnabled) {\n var offsets = this.getXAxisOffsets();\n // An x axis is required for scrollbar also\n navigator.xAxis = new (highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_default())(chart, Navigator_merge({\n // Inherit base xAxis' break, ordinal options and overscroll\n breaks: baseXaxis.options.breaks,\n ordinal: baseXaxis.options.ordinal,\n overscroll: baseXaxis.options.overscroll\n }, navigatorOptions.xAxis, {\n type: 'datetime',\n yAxis: (_a = navigatorOptions.yAxis) === null || _a === void 0 ? void 0 : _a.id,\n index: xAxisIndex,\n isInternal: true,\n offset: 0,\n keepOrdinalPadding: true, // #2436\n startOnTick: false,\n endOnTick: false,\n // Inherit base xAxis' padding when ordinal is false (#16915).\n minPadding: baseXaxis.options.ordinal ? 0 :\n baseXaxis.options.minPadding,\n maxPadding: baseXaxis.options.ordinal ? 0 :\n baseXaxis.options.maxPadding,\n zoomEnabled: false\n }, chart.inverted ? {\n offsets: offsets,\n width: height\n } : {\n offsets: offsets,\n height: height\n }), 'xAxis');\n navigator.yAxis = new (highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_default())(chart, Navigator_merge(navigatorOptions.yAxis, {\n alignTicks: false,\n offset: 0,\n index: yAxisIndex,\n isInternal: true,\n reversed: Navigator_pick((navigatorOptions.yAxis &&\n navigatorOptions.yAxis.reversed), (chart.yAxis[0] && chart.yAxis[0].reversed), false), // #14060\n zoomEnabled: false\n }, chart.inverted ? {\n width: height\n } : {\n height: height\n }), 'yAxis');\n // If we have a base series, initialize the navigator series\n if (baseSeries || navigatorOptions.series.data) {\n navigator.updateNavigatorSeries(false);\n // If not, set up an event to listen for added series\n }\n else if (chart.series.length === 0) {\n navigator.unbindRedraw = Navigator_addEvent(chart, 'beforeRedraw', function () {\n // We've got one, now add it as base\n if (chart.series.length > 0 && !navigator.series) {\n navigator.setBaseSeries();\n navigator.unbindRedraw(); // Reset\n }\n });\n }\n navigator.reversedExtremes = (chart.inverted && !navigator.xAxis.reversed) || (!chart.inverted && navigator.xAxis.reversed);\n // Render items, so we can bind events to them:\n navigator.renderElements();\n // Add mouse events\n navigator.addMouseEvents();\n // In case of scrollbar only, fake an x axis to get translation\n }\n else {\n navigator.xAxis = {\n chart: chart,\n navigatorAxis: {\n fake: true\n },\n translate: function (value, reverse) {\n var axis = chart.xAxis[0], ext = axis.getExtremes(), scrollTrackWidth = axis.len - 2 * scrollButtonSize, min = numExt('min', axis.options.min, ext.dataMin), valueRange = numExt('max', axis.options.max, ext.dataMax) - min;\n return reverse ?\n // From pixel to value\n (value * valueRange / scrollTrackWidth) + min :\n // From value to pixel\n scrollTrackWidth * (value - min) / valueRange;\n },\n toPixels: function (value) {\n return this.translate(value);\n },\n toValue: function (value) {\n return this.translate(value, true);\n }\n };\n navigator.xAxis.navigatorAxis.axis = navigator.xAxis;\n navigator.xAxis.navigatorAxis.toFixedRange = (NavigatorAxisComposition.prototype.toFixedRange.bind(navigator.xAxis.navigatorAxis));\n }\n // Initialize the scrollbar\n if (chart.options.scrollbar.enabled) {\n var options = Navigator_merge(chart.options.scrollbar, { vertical: chart.inverted });\n if (!Navigator_isNumber(options.margin) && navigator.navigatorEnabled) {\n options.margin = chart.inverted ? -3 : 3;\n }\n chart.scrollbar = navigator.scrollbar = new Scrollbar_Scrollbar(chart.renderer, options, chart);\n Navigator_addEvent(navigator.scrollbar, 'changed', function (e) {\n var range = navigator.size,\n to = range * this.to,\n from = range * this.from;\n navigator.hasDragged = navigator.scrollbar.hasDragged;\n navigator.render(0, 0, from, to);\n if (this.shouldUpdateExtremes(e.DOMType)) {\n setTimeout(function () {\n navigator.onMouseUp(e);\n });\n }\n });\n }\n // Add data events\n navigator.addBaseSeriesEvents();\n // Add redraw events\n navigator.addChartEvents();\n };\n /**\n * Set the opposite property on navigator\n *\n * @private\n */\n Navigator.prototype.setOpposite = function () {\n var navigatorOptions = this.navigatorOptions,\n navigatorEnabled = this.navigatorEnabled,\n chart = this.chart;\n this.opposite = Navigator_pick(navigatorOptions.opposite, Boolean(!navigatorEnabled && chart.inverted)); // #6262\n };\n /**\n * Get the union data extremes of the chart - the outer data extremes of the\n * base X axis and the navigator axis.\n *\n * @private\n * @function Highcharts.Navigator#getUnionExtremes\n */\n Navigator.prototype.getUnionExtremes = function (returnFalseOnNoBaseSeries) {\n var baseAxis = this.chart.xAxis[0],\n time = this.chart.time,\n navAxis = this.xAxis,\n navAxisOptions = navAxis.options,\n baseAxisOptions = baseAxis.options;\n var ret;\n if (!returnFalseOnNoBaseSeries || baseAxis.dataMin !== null) {\n ret = {\n dataMin: Navigator_pick(// #4053\n time.parse(navAxisOptions === null || navAxisOptions === void 0 ? void 0 : navAxisOptions.min), numExt('min', time.parse(baseAxisOptions.min), baseAxis.dataMin, navAxis.dataMin, navAxis.min)),\n dataMax: Navigator_pick(time.parse(navAxisOptions === null || navAxisOptions === void 0 ? void 0 : navAxisOptions.max), numExt('max', time.parse(baseAxisOptions.max), baseAxis.dataMax, navAxis.dataMax, navAxis.max))\n };\n }\n return ret;\n };\n /**\n * Set the base series and update the navigator series from this. With a bit\n * of modification we should be able to make this an API method to be called\n * from the outside\n *\n * @private\n * @function Highcharts.Navigator#setBaseSeries\n * @param {Highcharts.SeriesOptionsType} [baseSeriesOptions]\n * Additional series options for a navigator\n * @param {boolean} [redraw]\n * Whether to redraw after update.\n */\n Navigator.prototype.setBaseSeries = function (baseSeriesOptions, redraw) {\n var chart = this.chart,\n baseSeries = this.baseSeries = [];\n baseSeriesOptions = (baseSeriesOptions ||\n chart.options && chart.options.navigator.baseSeries ||\n (chart.series.length ?\n // Find the first non-navigator series (#8430)\n Navigator_find(chart.series, function (s) { return (!s.options.isInternal); }).index :\n 0));\n // Iterate through series and add the ones that should be shown in\n // navigator.\n (chart.series || []).forEach(function (series, i) {\n if (\n // Don't include existing nav series\n !series.options.isInternal &&\n (series.options.showInNavigator ||\n (i === baseSeriesOptions ||\n series.options.id === baseSeriesOptions) &&\n series.options.showInNavigator !== false)) {\n baseSeries.push(series);\n }\n });\n // When run after render, this.xAxis already exists\n if (this.xAxis && !this.xAxis.navigatorAxis.fake) {\n this.updateNavigatorSeries(true, redraw);\n }\n };\n /**\n * Update series in the navigator from baseSeries, adding new if does not\n * exist.\n *\n * @private\n * @function Highcharts.Navigator.updateNavigatorSeries\n */\n Navigator.prototype.updateNavigatorSeries = function (addEvents, redraw) {\n var _a,\n _b;\n var navigator = this,\n chart = navigator.chart,\n baseSeries = navigator.baseSeries,\n navSeriesMixin = {\n enableMouseTracking: false,\n index: null, // #6162\n linkedTo: null, // #6734\n group: 'nav', // For columns\n padXAxis: false,\n xAxis: (_a = this.navigatorOptions.xAxis) === null || _a === void 0 ? void 0 : _a.id,\n yAxis: (_b = this.navigatorOptions.yAxis) === null || _b === void 0 ? void 0 : _b.id,\n showInLegend: false,\n stacking: void 0, // #4823\n isInternal: true,\n states: {\n inactive: {\n opacity: 1\n }\n }\n }, \n // Remove navigator series that are no longer in the baseSeries\n navigatorSeries = navigator.series =\n (navigator.series || []).filter(function (navSeries) {\n var base = navSeries.baseSeries;\n if (baseSeries.indexOf(base) < 0) { // Not in array\n // If there is still a base series connected to this\n // series, remove event handler and reference.\n if (base) {\n Navigator_removeEvent(base, 'updatedData', navigator.updatedDataHandler);\n delete base.navigatorSeries;\n }\n // Kill the nav series. It may already have been\n // destroyed (#8715).\n if (navSeries.chart) {\n navSeries.destroy();\n }\n return false;\n }\n return true;\n });\n var baseOptions,\n mergedNavSeriesOptions,\n chartNavigatorSeriesOptions = navigator.navigatorOptions.series,\n baseNavigatorOptions;\n // Go through each base series and merge the options to create new\n // series\n if (baseSeries && baseSeries.length) {\n baseSeries.forEach(function (base) {\n var _a;\n var linkedNavSeries = base.navigatorSeries,\n userNavOptions = Navigator_extend(\n // Grab color and visibility from base as default\n {\n color: base.color,\n visible: base.visible\n }, !isArray(chartNavigatorSeriesOptions) ?\n chartNavigatorSeriesOptions :\n Navigator_defaultOptions.navigator.series);\n // Don't update if the series exists in nav and we have disabled\n // adaptToUpdatedData.\n if (linkedNavSeries &&\n navigator.navigatorOptions.adaptToUpdatedData === false) {\n return;\n }\n navSeriesMixin.name = 'Navigator ' + baseSeries.length;\n baseOptions = base.options || {};\n baseNavigatorOptions = baseOptions.navigatorOptions || {};\n // The dataLabels options are not merged correctly\n // if the settings are an array, #13847.\n userNavOptions.dataLabels = splat(userNavOptions.dataLabels);\n mergedNavSeriesOptions = Navigator_merge(baseOptions, navSeriesMixin, userNavOptions, baseNavigatorOptions);\n // Once nav series type is resolved, pick correct pointRange\n mergedNavSeriesOptions.pointRange = Navigator_pick(\n // Stricte set pointRange in options\n userNavOptions.pointRange, baseNavigatorOptions.pointRange, \n // Fallback to default values, e.g. `null` for column\n Navigator_defaultOptions.plotOptions[mergedNavSeriesOptions.type || 'line'].pointRange);\n // Merge data separately. Do a slice to avoid mutating the\n // navigator options from base series (#4923).\n var navigatorSeriesData = baseNavigatorOptions.data || userNavOptions.data;\n navigator.hasNavigatorData =\n navigator.hasNavigatorData || !!navigatorSeriesData;\n mergedNavSeriesOptions.data = (navigatorSeriesData ||\n ((_a = baseOptions.data) === null || _a === void 0 ? void 0 : _a.slice(0)));\n // Update or add the series\n if (linkedNavSeries && linkedNavSeries.options) {\n linkedNavSeries.update(mergedNavSeriesOptions, redraw);\n }\n else {\n base.navigatorSeries = chart.initSeries(mergedNavSeriesOptions);\n // Set data on initial run with dataSorting enabled (#20318)\n chart.setSortedData();\n base.navigatorSeries.baseSeries = base; // Store ref\n navigatorSeries.push(base.navigatorSeries);\n }\n });\n }\n // If user has defined data (and no base series) or explicitly defined\n // navigator.series as an array, we create these series on top of any\n // base series.\n if (chartNavigatorSeriesOptions.data &&\n !(baseSeries && baseSeries.length) ||\n isArray(chartNavigatorSeriesOptions)) {\n navigator.hasNavigatorData = false;\n // Allow navigator.series to be an array\n chartNavigatorSeriesOptions =\n splat(chartNavigatorSeriesOptions);\n chartNavigatorSeriesOptions.forEach(function (userSeriesOptions, i) {\n navSeriesMixin.name =\n 'Navigator ' + (navigatorSeries.length + 1);\n mergedNavSeriesOptions = Navigator_merge(Navigator_defaultOptions.navigator.series, {\n // Since we don't have a base series to pull color from,\n // try to fake it by using color from series with same\n // index. Otherwise pull from the colors array. We need\n // an explicit color as otherwise updates will increment\n // color counter and we'll get a new color for each\n // update of the nav series.\n color: chart.series[i] &&\n !chart.series[i].options.isInternal &&\n chart.series[i].color ||\n chart.options.colors[i] ||\n chart.options.colors[0]\n }, navSeriesMixin, userSeriesOptions);\n mergedNavSeriesOptions.data = userSeriesOptions.data;\n if (mergedNavSeriesOptions.data) {\n navigator.hasNavigatorData = true;\n navigatorSeries.push(chart.initSeries(mergedNavSeriesOptions));\n }\n });\n }\n if (addEvents) {\n this.addBaseSeriesEvents();\n }\n };\n /**\n * Add data events.\n * For example when main series is updated we need to recalculate extremes\n *\n * @private\n * @function Highcharts.Navigator#addBaseSeriesEvent\n */\n Navigator.prototype.addBaseSeriesEvents = function () {\n var _this = this;\n var navigator = this,\n baseSeries = navigator.baseSeries || [];\n // Bind modified extremes event to first base's xAxis only.\n // In event of > 1 base-xAxes, the navigator will ignore those.\n // Adding this multiple times to the same axis is no problem, as\n // duplicates should be discarded by the browser.\n if (baseSeries[0] && baseSeries[0].xAxis) {\n baseSeries[0].eventsToUnbind.push(Navigator_addEvent(baseSeries[0].xAxis, 'foundExtremes', this.modifyBaseAxisExtremes));\n }\n baseSeries.forEach(function (base) {\n // Link base series show/hide to navigator series visibility\n base.eventsToUnbind.push(Navigator_addEvent(base, 'show', function () {\n if (this.navigatorSeries) {\n this.navigatorSeries.setVisible(true, false);\n }\n }));\n base.eventsToUnbind.push(Navigator_addEvent(base, 'hide', function () {\n if (this.navigatorSeries) {\n this.navigatorSeries.setVisible(false, false);\n }\n }));\n // Respond to updated data in the base series, unless explicitly\n // not adapting to data changes.\n if (_this.navigatorOptions.adaptToUpdatedData !== false) {\n if (base.xAxis) {\n base.eventsToUnbind.push(Navigator_addEvent(base, 'updatedData', _this.updatedDataHandler));\n }\n }\n // Handle series removal\n base.eventsToUnbind.push(Navigator_addEvent(base, 'remove', function () {\n if (baseSeries) {\n erase(baseSeries, base); // #21043\n }\n if (this.navigatorSeries && navigator.series) {\n erase(navigator.series, this.navigatorSeries);\n if (Navigator_defined(this.navigatorSeries.options)) {\n this.navigatorSeries.remove(false);\n }\n delete this.navigatorSeries;\n }\n }));\n });\n };\n /**\n * Get minimum from all base series connected to the navigator\n * @private\n * @param {number} currentSeriesMin\n * Minium from the current series\n * @return {number}\n * Minimum from all series\n */\n Navigator.prototype.getBaseSeriesMin = function (currentSeriesMin) {\n return this.baseSeries.reduce(function (min, series) {\n var _a;\n // #10193\n return Math.min(min, (_a = series.getColumn('x')[0]) !== null && _a !== void 0 ? _a : min);\n }, currentSeriesMin);\n };\n /**\n * Set the navigator x axis extremes to reflect the total. The navigator\n * extremes should always be the extremes of the union of all series in the\n * chart as well as the navigator series.\n *\n * @private\n * @function Highcharts.Navigator#modifyNavigatorAxisExtremes\n */\n Navigator.prototype.modifyNavigatorAxisExtremes = function () {\n var xAxis = this.xAxis;\n if (typeof xAxis.getExtremes !== 'undefined') {\n var unionExtremes = this.getUnionExtremes(true);\n if (unionExtremes &&\n (unionExtremes.dataMin !== xAxis.min ||\n unionExtremes.dataMax !== xAxis.max)) {\n xAxis.min = unionExtremes.dataMin;\n xAxis.max = unionExtremes.dataMax;\n }\n }\n };\n /**\n * Hook to modify the base axis extremes with information from the Navigator\n *\n * @private\n * @function Highcharts.Navigator#modifyBaseAxisExtremes\n */\n Navigator.prototype.modifyBaseAxisExtremes = function () {\n var _a;\n var baseXAxis = this,\n navigator = baseXAxis.chart.navigator,\n baseExtremes = baseXAxis.getExtremes(),\n baseMin = baseExtremes.min,\n baseMax = baseExtremes.max,\n baseDataMin = baseExtremes.dataMin,\n baseDataMax = baseExtremes.dataMax,\n range = baseMax - baseMin,\n stickToMin = navigator.stickToMin,\n stickToMax = navigator.stickToMax,\n overscroll = Navigator_pick((_a = baseXAxis.ordinal) === null || _a === void 0 ? void 0 : _a.convertOverscroll(baseXAxis.options.overscroll), 0),\n navigatorSeries = navigator.series && navigator.series[0],\n hasSetExtremes = !!baseXAxis.setExtremes, \n // When the extremes have been set by range selector button, don't\n // stick to min or max. The range selector buttons will handle the\n // extremes. (#5489)\n unmutable = baseXAxis.eventArgs &&\n baseXAxis.eventArgs.trigger === 'rangeSelectorButton';\n var newMax,\n newMin;\n if (!unmutable) {\n // If the zoomed range is already at the min, move it to the right\n // as new data comes in\n if (stickToMin) {\n newMin = baseDataMin;\n newMax = newMin + range;\n }\n // If the zoomed range is already at the max, move it to the right\n // as new data comes in\n if (stickToMax) {\n newMax = baseDataMax + overscroll;\n // If stickToMin is true, the new min value is set above\n if (!stickToMin) {\n newMin = Math.max(baseDataMin, // Don't go below data extremes (#13184)\n newMax - range, navigator.getBaseSeriesMin(navigatorSeries && navigatorSeries.xData ?\n navigatorSeries.xData[0] :\n -Number.MAX_VALUE));\n }\n }\n // Update the extremes\n if (hasSetExtremes && (stickToMin || stickToMax)) {\n if (Navigator_isNumber(newMin)) {\n baseXAxis.min = baseXAxis.userMin = newMin;\n baseXAxis.max = baseXAxis.userMax = newMax;\n }\n }\n }\n // Reset\n navigator.stickToMin =\n navigator.stickToMax = null;\n };\n /**\n * Handler for updated data on the base series. When data is modified, the\n * navigator series must reflect it. This is called from the Chart.redraw\n * function before axis and series extremes are computed.\n *\n * @private\n * @function Highcharts.Navigator#updateDataHandler\n */\n Navigator.prototype.updatedDataHandler = function () {\n var navigator = this.chart.navigator,\n baseSeries = this,\n navigatorSeries = this.navigatorSeries,\n shouldStickToMax = navigator.reversedExtremes ?\n Math.round(navigator.zoomedMin) === 0 :\n Math.round(navigator.zoomedMax) >= Math.round(navigator.size);\n // If the scrollbar is scrolled all the way to the right, keep right as\n // new data comes in, unless user set navigator.stickToMax to false.\n navigator.stickToMax = Navigator_pick(this.chart.options.navigator &&\n this.chart.options.navigator.stickToMax, shouldStickToMax);\n navigator.stickToMin = navigator.shouldStickToMin(baseSeries, navigator);\n // Set the navigator series data to the new data of the base series\n if (navigatorSeries && !navigator.hasNavigatorData) {\n navigatorSeries.options.pointStart = baseSeries.getColumn('x')[0];\n navigatorSeries.setData(baseSeries.options.data, false, null, false); // #5414\n }\n };\n /**\n * Detect if the zoomed area should stick to the minimum, #14742.\n *\n * @private\n * @function Highcharts.Navigator#shouldStickToMin\n */\n Navigator.prototype.shouldStickToMin = function (baseSeries, navigator) {\n var xDataMin = navigator.getBaseSeriesMin(baseSeries.getColumn('x')[0]),\n xAxis = baseSeries.xAxis,\n max = xAxis.max,\n min = xAxis.min,\n range = xAxis.options.range;\n var stickToMin = true;\n if (Navigator_isNumber(max) && Navigator_isNumber(min)) {\n // If range declared, stick to the minimum only if the range\n // is smaller than the data set range.\n if (range && max - xDataMin > 0) {\n stickToMin = max - xDataMin < range;\n }\n else {\n // If the current axis minimum falls outside the new\n // updated dataset, we must adjust.\n stickToMin = min <= xDataMin;\n }\n }\n else {\n stickToMin = false; // #15864\n }\n return stickToMin;\n };\n /**\n * Add chart events, like redrawing navigator, when chart requires that.\n *\n * @private\n * @function Highcharts.Navigator#addChartEvents\n */\n Navigator.prototype.addChartEvents = function () {\n if (!this.eventsToUnbind) {\n this.eventsToUnbind = [];\n }\n this.eventsToUnbind.push(\n // Move the scrollbar after redraw, like after data updata even if\n // axes don't redraw\n Navigator_addEvent(this.chart, 'redraw', function () {\n var navigator = this.navigator,\n xAxis = navigator && (navigator.baseSeries &&\n navigator.baseSeries[0] &&\n navigator.baseSeries[0].xAxis ||\n this.xAxis[0]); // #5709, #13114\n if (xAxis) {\n navigator.render(xAxis.min,\n xAxis.max);\n }\n }), \n // Make room for the navigator, can be placed around the chart:\n Navigator_addEvent(this.chart, 'getMargins', function () {\n var chart = this,\n navigator = chart.navigator;\n var marginName = navigator.opposite ?\n 'plotTop' : 'marginBottom';\n if (chart.inverted) {\n marginName = navigator.opposite ?\n 'marginRight' : 'plotLeft';\n }\n chart[marginName] =\n (chart[marginName] || 0) + (navigator.navigatorEnabled || !chart.inverted ?\n navigator.height + navigator.scrollbarHeight :\n 0) + navigator.navigatorOptions.margin;\n }), Navigator_addEvent(Navigator, 'setRange', function (e) {\n this.chart.xAxis[0].setExtremes(e.min, e.max, e.redraw, e.animation, e.eventArguments);\n }));\n };\n /**\n * Destroys allocated elements.\n *\n * @private\n * @function Highcharts.Navigator#destroy\n */\n Navigator.prototype.destroy = function () {\n var _this = this;\n // Disconnect events added in addEvents\n this.removeEvents();\n if (this.xAxis) {\n erase(this.chart.xAxis, this.xAxis);\n erase(this.chart.axes, this.xAxis);\n }\n if (this.yAxis) {\n erase(this.chart.yAxis, this.yAxis);\n erase(this.chart.axes, this.yAxis);\n }\n // Destroy series\n (this.series || []).forEach(function (s) {\n if (s.destroy) {\n s.destroy();\n }\n });\n // Destroy properties\n [\n 'series', 'xAxis', 'yAxis', 'shades', 'outline', 'scrollbarTrack',\n 'scrollbarRifles', 'scrollbarGroup', 'scrollbar', 'navigatorGroup',\n 'rendered'\n ].forEach(function (prop) {\n if (_this[prop] && _this[prop].destroy) {\n _this[prop].destroy();\n }\n _this[prop] = null;\n });\n // Destroy elements in collection\n [this.handles].forEach(function (coll) {\n Navigator_destroyObjectProperties(coll);\n });\n this.navigatorEnabled = false;\n };\n return Navigator;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Navigator_Navigator = (Navigator);\n\n;// ./code/es5/es-modules/Accessibility/Components/NavigatorComponent.js\n/* *\n *\n * (c) 2009-2024 Highsoft AS\n *\n * Accessibility component for the navigator.\n *\n * Author: Øystein Moseng\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar NavigatorComponent_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* *\n *\n * Imports\n *\n * */\n\n\n\n\n\nvar NavigatorComponent_animObject = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).animObject;\n\nvar NavigatorComponent_format = (highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default()).format;\n\nvar NavigatorComponent_clamp = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).clamp, NavigatorComponent_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, NavigatorComponent_syncTimeout = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).syncTimeout;\n\nvar NavigatorComponent_getFakeMouseEvent = Utils_HTMLUtilities.getFakeMouseEvent;\n\nvar NavigatorComponent_getAxisRangeDescription = Utils_ChartUtilities.getAxisRangeDescription, NavigatorComponent_fireEventOnWrappedOrUnwrappedElement = Utils_ChartUtilities.fireEventOnWrappedOrUnwrappedElement;\n/**\n * The NavigatorComponent class\n *\n * @private\n * @class\n * @name Highcharts.NavigatorComponent\n */\nvar NavigatorComponent = /** @class */ (function (_super) {\n NavigatorComponent_extends(NavigatorComponent, _super);\n function NavigatorComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Init the component\n * @private\n */\n NavigatorComponent.prototype.init = function () {\n var chart = this.chart,\n component = this;\n this.announcer = new Utils_Announcer(chart, 'polite');\n // Update positions after render\n this.addEvent(Navigator_Navigator, 'afterRender', function () {\n if (this.chart === component.chart &&\n this.chart.renderer) {\n NavigatorComponent_syncTimeout(function () {\n component.proxyProvider\n .updateGroupProxyElementPositions('navigator');\n component.updateHandleValues();\n }, NavigatorComponent_animObject(NavigatorComponent_pick(this.chart.renderer.globalAnimation, true)).duration);\n }\n });\n };\n /**\n * Called on updates\n * @private\n */\n NavigatorComponent.prototype.onChartUpdate = function () {\n var _this = this;\n var _a,\n _b,\n _c;\n var chart = this.chart,\n options = chart.options,\n navigator = options.navigator;\n if (navigator.enabled && ((_a = navigator.accessibility) === null || _a === void 0 ? void 0 : _a.enabled)) {\n var verbosity = options.accessibility.landmarkVerbosity,\n groupFormatStr = (_b = options.lang\n .accessibility) === null || _b === void 0 ? void 0 : _b.navigator.groupLabel;\n // We just recreate the group for simplicity. Could consider\n // updating the existing group if the verbosity has not changed.\n this.proxyProvider.removeGroup('navigator');\n this.proxyProvider.addGroup('navigator', 'div', {\n role: verbosity === 'all' ? 'region' : 'group',\n 'aria-label': NavigatorComponent_format(groupFormatStr, { chart: chart }, chart)\n });\n var handleFormatStr_1 = (_c = options.lang\n .accessibility) === null || _c === void 0 ? void 0 : _c.navigator.handleLabel;\n [0, 1].forEach(function (n) {\n var handle = _this.getHandleByIx(n);\n if (handle) {\n var proxyEl = _this.proxyProvider.addProxyElement('navigator', {\n click: handle\n }, 'input', {\n type: 'range',\n 'aria-label': NavigatorComponent_format(handleFormatStr_1, { handleIx: n,\n chart: chart },\n chart)\n });\n _this[n ? 'maxHandleProxy' : 'minHandleProxy'] =\n proxyEl.innerElement;\n proxyEl.innerElement.style.pointerEvents = 'none';\n proxyEl.innerElement.oninput =\n function () { return _this.updateNavigator(); };\n }\n });\n this.updateHandleValues();\n }\n else {\n this.proxyProvider.removeGroup('navigator');\n }\n };\n /**\n * Get navigation for a navigator handle.\n * @private\n * @return {Highcharts.KeyboardNavigationHandler} The module object.\n */\n NavigatorComponent.prototype.getNavigatorHandleNavigation = function (handleIx) {\n var _this = this;\n var component = this,\n chart = this.chart,\n proxyEl = handleIx ? this.maxHandleProxy : this.minHandleProxy,\n keys = this.keyCodes;\n return new Accessibility_KeyboardNavigationHandler(chart, {\n keyCodeMap: [[\n [keys.left, keys.right, keys.up, keys.down],\n function (keyCode) {\n if (proxyEl) {\n var delta = keyCode === keys.left ||\n keyCode === keys.up ? -1 : 1;\n proxyEl.value = '' + NavigatorComponent_clamp(parseFloat(proxyEl.value) + delta, 0, 100);\n component.updateNavigator(function () {\n var handle = component.getHandleByIx(handleIx);\n if (handle) {\n chart.setFocusToElement(handle, proxyEl);\n }\n });\n }\n return this.response.success;\n }\n ]],\n init: function () {\n chart.setFocusToElement(_this.getHandleByIx(handleIx), proxyEl);\n },\n validate: function () {\n var _a;\n return !!(_this.getHandleByIx(handleIx) && proxyEl &&\n ((_a = chart.options.navigator.accessibility) === null || _a === void 0 ? void 0 : _a.enabled));\n }\n });\n };\n /**\n * Get keyboard navigation handlers for this component.\n * @return {Array<Highcharts.KeyboardNavigationHandler>}\n * List of module objects.\n */\n NavigatorComponent.prototype.getKeyboardNavigation = function () {\n return [\n this.getNavigatorHandleNavigation(0),\n this.getNavigatorHandleNavigation(1)\n ];\n };\n /**\n * Remove component traces\n */\n NavigatorComponent.prototype.destroy = function () {\n if (this.updateNavigatorThrottleTimer) {\n clearTimeout(this.updateNavigatorThrottleTimer);\n }\n this.proxyProvider.removeGroup('navigator');\n if (this.announcer) {\n this.announcer.destroy();\n }\n };\n /**\n * Update the value of the handles to match current navigator pos.\n * @private\n */\n NavigatorComponent.prototype.updateHandleValues = function () {\n var navigator = this.chart.navigator;\n if (navigator && this.minHandleProxy && this.maxHandleProxy) {\n var length_1 = navigator.size;\n this.minHandleProxy.value =\n '' + Math.round(navigator.zoomedMin / length_1 * 100);\n this.maxHandleProxy.value =\n '' + Math.round(navigator.zoomedMax / length_1 * 100);\n }\n };\n /**\n * Get a navigator handle by its index\n * @private\n */\n NavigatorComponent.prototype.getHandleByIx = function (ix) {\n var navigator = this.chart.navigator;\n return navigator && navigator.handles &&\n navigator.handles[ix];\n };\n /**\n * Update navigator to match changed proxy values.\n * @private\n */\n NavigatorComponent.prototype.updateNavigator = function (beforeAnnounce) {\n var _this = this;\n var performUpdate = function (beforeAnnounce) {\n var _a;\n var chart = _this.chart,\n navigator = chart.navigator,\n pointer = chart.pointer;\n if (navigator &&\n pointer &&\n _this.minHandleProxy &&\n _this.maxHandleProxy) {\n var chartPos_1 = pointer.getChartPosition(),\n minNewX = parseFloat(_this.minHandleProxy.value) /\n 100 * navigator.size,\n maxNewX = parseFloat(_this.maxHandleProxy.value) /\n 100 * navigator.size;\n // Fire fake events in order for each handle.\n [\n [0, 'mousedown', navigator.zoomedMin],\n [0, 'mousemove', minNewX],\n [0, 'mouseup', minNewX],\n [1, 'mousedown', navigator.zoomedMax],\n [1, 'mousemove', maxNewX],\n [1, 'mouseup', maxNewX]\n ].forEach(function (_a) {\n var _b;\n var handleIx = _a[0],\n type = _a[1],\n x = _a[2];\n var handle = (_b = _this.getHandleByIx(handleIx)) === null || _b === void 0 ? void 0 : _b.element;\n if (handle) {\n NavigatorComponent_fireEventOnWrappedOrUnwrappedElement(handle, NavigatorComponent_getFakeMouseEvent(type, {\n x: chartPos_1.left + navigator.left + x,\n y: chartPos_1.top + navigator.top\n }, handle));\n }\n });\n if (beforeAnnounce) {\n beforeAnnounce();\n }\n // Announce the update\n var announceFormatStr = (_a = chart.options.lang\n .accessibility) === null || _a === void 0 ? void 0 : _a.navigator.changeAnnouncement,\n axisRangeDescription = NavigatorComponent_getAxisRangeDescription(chart.xAxis[0]);\n _this.announcer.announce(NavigatorComponent_format(announceFormatStr, { axisRangeDescription: axisRangeDescription, chart: chart }, chart));\n }\n };\n // Throttle updates so as not to reduce performance with\n // continuous keypress.\n if (this.updateNavigatorThrottleTimer) {\n clearTimeout(this.updateNavigatorThrottleTimer);\n }\n this.updateNavigatorThrottleTimer = setTimeout(performUpdate.bind(this, beforeAnnounce), 20);\n };\n return NavigatorComponent;\n}(Accessibility_AccessibilityComponent));\n/* *\n *\n * Export Default\n *\n * */\n/* harmony default export */ var Components_NavigatorComponent = (NavigatorComponent);\n\n;// ./code/es5/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Place desriptions on a series and its points.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar SeriesDescriber_getPointAnnotationTexts = Components_AnnotationsA11y.getPointAnnotationTexts;\n\nvar SeriesDescriber_getAxisDescription = Utils_ChartUtilities.getAxisDescription, SeriesDescriber_getSeriesFirstPointElement = Utils_ChartUtilities.getSeriesFirstPointElement, SeriesDescriber_getSeriesA11yElement = Utils_ChartUtilities.getSeriesA11yElement, SeriesDescriber_unhideChartElementFromAT = Utils_ChartUtilities.unhideChartElementFromAT;\n\nvar SeriesDescriber_format = (highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default()).format, numberFormat = (highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default()).numberFormat;\n\nvar SeriesDescriber_reverseChildNodes = Utils_HTMLUtilities.reverseChildNodes, SeriesDescriber_stripHTMLTags = Utils_HTMLUtilities.stripHTMLTagsFromString;\n\nvar SeriesDescriber_find = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).find, SeriesDescriber_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, isString = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isString, SeriesDescriber_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, SeriesDescriber_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined;\n/* *\n *\n * Functions\n *\n * */\n/* eslint-disable valid-jsdoc */\n/**\n * @private\n */\nfunction findFirstPointWithGraphic(point) {\n var sourcePointIndex = point.index;\n if (!point.series || !point.series.data || !SeriesDescriber_defined(sourcePointIndex)) {\n return null;\n }\n return SeriesDescriber_find(point.series.data, function (p) {\n return !!(p &&\n typeof p.index !== 'undefined' &&\n p.index > sourcePointIndex &&\n p.graphic &&\n p.graphic.element);\n }) || null;\n}\n/**\n * Whether or not we should add a mock point element in\n * order to describe a point that has no graphic.\n * @private\n */\nfunction shouldAddMockPoint(point) {\n // Note: Sunburst series use isNull for hidden points on drilldown.\n // Ignore these.\n var series = point.series,\n chart = series && series.chart,\n isSunburst = series && series.is('sunburst'),\n isNull = point.isNull,\n shouldDescribeNull = chart &&\n chart\n .options.accessibility.point.describeNull;\n return isNull && !isSunburst && shouldDescribeNull;\n}\n/**\n * @private\n */\nfunction makeMockElement(point, pos) {\n var renderer = point.series.chart.renderer,\n mock = renderer.rect(pos.x,\n pos.y, 1, 1);\n mock.attr({\n 'class': 'highcharts-a11y-mock-point',\n fill: 'none',\n opacity: 0,\n 'fill-opacity': 0,\n 'stroke-opacity': 0\n });\n return mock;\n}\n/**\n * @private\n */\nfunction addMockPointElement(point) {\n var series = point.series,\n firstPointWithGraphic = findFirstPointWithGraphic(point),\n firstGraphic = firstPointWithGraphic && firstPointWithGraphic.graphic,\n parentGroup = firstGraphic ?\n firstGraphic.parentGroup :\n series.graph || series.group,\n mockPos = firstPointWithGraphic ? {\n x: SeriesDescriber_pick(point.plotX,\n firstPointWithGraphic.plotX, 0),\n y: SeriesDescriber_pick(point.plotY,\n firstPointWithGraphic.plotY, 0)\n } : {\n x: SeriesDescriber_pick(point.plotX, 0),\n y: SeriesDescriber_pick(point.plotY, 0)\n },\n mockElement = makeMockElement(point,\n mockPos);\n if (parentGroup && parentGroup.element) {\n point.graphic = mockElement;\n point.hasMockGraphic = true;\n mockElement.add(parentGroup);\n // Move to correct pos in DOM\n parentGroup.element.insertBefore(mockElement.element, firstGraphic ? firstGraphic.element : null);\n return mockElement.element;\n }\n}\n/**\n * @private\n */\nfunction hasMorePointsThanDescriptionThreshold(series) {\n var chartA11yOptions = series.chart.options.accessibility,\n threshold = (chartA11yOptions.series.pointDescriptionEnabledThreshold);\n return !!(threshold !== false &&\n series.points &&\n series.points.length >= +threshold);\n}\n/**\n * @private\n */\nfunction shouldSetScreenReaderPropsOnPoints(series) {\n var seriesA11yOptions = series.options.accessibility || {};\n return !hasMorePointsThanDescriptionThreshold(series) &&\n !seriesA11yOptions.exposeAsGroupOnly;\n}\n/**\n * @private\n */\nfunction shouldSetKeyboardNavPropsOnPoints(series) {\n var chartA11yOptions = series.chart.options.accessibility,\n seriesNavOptions = chartA11yOptions.keyboardNavigation.seriesNavigation;\n return !!(series.points && (series.points.length <\n +seriesNavOptions.pointNavigationEnabledThreshold ||\n seriesNavOptions.pointNavigationEnabledThreshold === false));\n}\n/**\n * @private\n */\nfunction shouldDescribeSeriesElement(series) {\n var chart = series.chart,\n chartOptions = chart.options.chart,\n chartHas3d = chartOptions.options3d && chartOptions.options3d.enabled,\n hasMultipleSeries = chart.series.length > 1,\n describeSingleSeriesOption = chart.options.accessibility.series.describeSingleSeries,\n exposeAsGroupOnlyOption = (series.options.accessibility || {}).exposeAsGroupOnly,\n noDescribe3D = chartHas3d && hasMultipleSeries;\n return !noDescribe3D && (hasMultipleSeries || describeSingleSeriesOption ||\n exposeAsGroupOnlyOption || hasMorePointsThanDescriptionThreshold(series));\n}\n/**\n * @private\n */\nfunction pointNumberToString(point, value) {\n var series = point.series,\n chart = series.chart,\n a11yPointOptions = chart.options.accessibility.point || {},\n seriesA11yPointOptions = series.options.accessibility &&\n series.options.accessibility.point || {},\n tooltipOptions = series.tooltipOptions || {},\n lang = chart.options.lang;\n if (SeriesDescriber_isNumber(value)) {\n return numberFormat(value, seriesA11yPointOptions.valueDecimals ||\n a11yPointOptions.valueDecimals ||\n tooltipOptions.valueDecimals ||\n -1, lang.decimalPoint, lang.accessibility.thousandsSep || lang.thousandsSep);\n }\n return value;\n}\n/**\n * @private\n */\nfunction getSeriesDescriptionText(series) {\n var seriesA11yOptions = series.options.accessibility || {},\n descOpt = seriesA11yOptions.description;\n return descOpt && series.chart.langFormat('accessibility.series.description', {\n description: descOpt,\n series: series\n }) || '';\n}\n/**\n * @private\n */\nfunction getSeriesAxisDescriptionText(series, axisCollection) {\n var axis = series[axisCollection];\n return series.chart.langFormat('accessibility.series.' + axisCollection + 'Description', {\n name: SeriesDescriber_getAxisDescription(axis),\n series: series\n });\n}\n/**\n * Get accessible time description for a point on a datetime axis.\n *\n * @private\n */\nfunction getPointA11yTimeDescription(point) {\n var series = point.series,\n chart = series.chart,\n seriesA11yOptions = series.options.accessibility &&\n series.options.accessibility.point || {},\n a11yOptions = chart.options.accessibility.point || {},\n dateXAxis = series.xAxis && series.xAxis.dateTime;\n if (dateXAxis) {\n var tooltipDateFormat = dateXAxis.getXDateFormat(point.x || 0,\n chart.options.tooltip.dateTimeLabelFormats),\n dateFormat = seriesA11yOptions.dateFormatter &&\n seriesA11yOptions.dateFormatter(point) ||\n a11yOptions.dateFormatter && a11yOptions.dateFormatter(point) ||\n seriesA11yOptions.dateFormat ||\n a11yOptions.dateFormat ||\n tooltipDateFormat;\n return chart.time.dateFormat(dateFormat, point.x || 0, void 0);\n }\n}\n/**\n * @private\n */\nfunction getPointXDescription(point) {\n var timeDesc = getPointA11yTimeDescription(point), xAxis = point.series.xAxis || {}, pointCategory = xAxis.categories && SeriesDescriber_defined(point.category) &&\n ('' + point.category).replace('<br/>', ' '), canUseId = SeriesDescriber_defined(point.id) &&\n ('' + point.id).indexOf('highcharts-') < 0, fallback = 'x, ' + point.x;\n return point.name || timeDesc || pointCategory ||\n (canUseId ? point.id : fallback);\n}\n/**\n * @private\n */\nfunction getPointArrayMapValueDescription(point, prefix, suffix) {\n var pre = prefix || '', suf = suffix || '', keyToValStr = function (key) {\n var num = pointNumberToString(point, SeriesDescriber_pick(point[key], point.options[key]));\n return num !== void 0 ?\n key + ': ' + pre + num + suf :\n num;\n }, pointArrayMap = point.series.pointArrayMap;\n return pointArrayMap.reduce(function (desc, key) {\n var propDesc = keyToValStr(key);\n return propDesc ?\n (desc + (desc.length ? ', ' : '') + propDesc) :\n desc;\n }, '');\n}\n/**\n * @private\n */\nfunction getPointValue(point) {\n var series = point.series,\n a11yPointOpts = series.chart.options.accessibility.point || {},\n seriesA11yPointOpts = series.chart.options.accessibility &&\n series.chart.options.accessibility.point || {},\n tooltipOptions = series.tooltipOptions || {},\n valuePrefix = seriesA11yPointOpts.valuePrefix ||\n a11yPointOpts.valuePrefix ||\n tooltipOptions.valuePrefix ||\n '',\n valueSuffix = seriesA11yPointOpts.valueSuffix ||\n a11yPointOpts.valueSuffix ||\n tooltipOptions.valueSuffix ||\n '',\n fallbackKey = (typeof point.value !==\n 'undefined' ?\n 'value' : 'y'),\n fallbackDesc = pointNumberToString(point,\n point[fallbackKey]);\n if (point.isNull) {\n return series.chart.langFormat('accessibility.series.nullPointValue', {\n point: point\n });\n }\n if (series.pointArrayMap) {\n return getPointArrayMapValueDescription(point, valuePrefix, valueSuffix);\n }\n return valuePrefix + fallbackDesc + valueSuffix;\n}\n/**\n * Return the description for the annotation(s) connected to a point, or\n * empty string if none.\n *\n * @private\n * @param {Highcharts.Point} point\n * The data point to get the annotation info from.\n * @return {string}\n * Annotation description\n */\nfunction getPointAnnotationDescription(point) {\n var chart = point.series.chart;\n var langKey = 'accessibility.series.pointAnnotationsDescription';\n var annotations = SeriesDescriber_getPointAnnotationTexts(point);\n var context = { point: point,\n annotations: annotations };\n return annotations.length ? chart.langFormat(langKey, context) : '';\n}\n/**\n * Return string with information about point.\n * @private\n */\nfunction getPointValueDescription(point) {\n var series = point.series, chart = series.chart, seriesA11yOptions = series.options.accessibility, seriesValueDescFormat = seriesA11yOptions && seriesA11yOptions.point &&\n seriesA11yOptions.point.valueDescriptionFormat, pointValueDescriptionFormat = seriesValueDescFormat ||\n chart.options.accessibility.point.valueDescriptionFormat, showXDescription = SeriesDescriber_pick(series.xAxis &&\n series.xAxis.options.accessibility &&\n series.xAxis.options.accessibility.enabled, !chart.angular && series.type !== 'flowmap'), xDesc = showXDescription ? getPointXDescription(point) : '', context = {\n point: point,\n index: SeriesDescriber_defined(point.index) ? (point.index + 1) : '',\n xDescription: xDesc,\n value: getPointValue(point),\n separator: showXDescription ? ', ' : ''\n };\n return SeriesDescriber_format(pointValueDescriptionFormat, context, chart);\n}\n/**\n * Return string with information about point.\n * @private\n */\nfunction defaultPointDescriptionFormatter(point) {\n var series = point.series, shouldExposeSeriesName = series.chart.series.length > 1 ||\n series.options.name, valText = getPointValueDescription(point), description = point.options && point.options.accessibility &&\n point.options.accessibility.description, userDescText = description ? ' ' + description : '', seriesNameText = shouldExposeSeriesName ? ' ' + series.name + '.' : '', annotationsDesc = getPointAnnotationDescription(point), pointAnnotationsText = annotationsDesc ? ' ' + annotationsDesc : '';\n point.accessibility = point.accessibility || {};\n point.accessibility.valueDescription = valText;\n return valText + userDescText + seriesNameText + pointAnnotationsText;\n}\n/**\n * Set a11y props on a point element\n * @private\n * @param {Highcharts.Point} point\n * @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} pointElement\n */\nfunction setPointScreenReaderAttribs(point, pointElement) {\n var _a,\n _b,\n _c;\n var series = point.series,\n seriesPointA11yOptions = ((_a = series.options.accessibility) === null || _a === void 0 ? void 0 : _a.point) || {},\n a11yPointOptions = series.chart.options.accessibility.point || {},\n label = SeriesDescriber_stripHTMLTags((isString(seriesPointA11yOptions.descriptionFormat) &&\n SeriesDescriber_format(seriesPointA11yOptions.descriptionFormat,\n point,\n series.chart)) ||\n ((_b = seriesPointA11yOptions.descriptionFormatter) === null || _b === void 0 ? void 0 : _b.call(seriesPointA11yOptions,\n point)) ||\n (isString(a11yPointOptions.descriptionFormat) &&\n SeriesDescriber_format(a11yPointOptions.descriptionFormat,\n point,\n series.chart)) ||\n ((_c = a11yPointOptions.descriptionFormatter) === null || _c === void 0 ? void 0 : _c.call(a11yPointOptions,\n point)) ||\n defaultPointDescriptionFormatter(point),\n series.chart.renderer.forExport);\n pointElement.setAttribute('role', 'img');\n pointElement.setAttribute('aria-label', label);\n}\n/**\n * Add accessible info to individual point elements of a series\n * @private\n * @param {Highcharts.Series} series\n */\nfunction describePointsInSeries(series) {\n var setScreenReaderProps = shouldSetScreenReaderPropsOnPoints(series),\n setKeyboardProps = shouldSetKeyboardNavPropsOnPoints(series),\n shouldDescribeNullPoints = series.chart.options.accessibility\n .point.describeNull;\n if (setScreenReaderProps || setKeyboardProps) {\n series.points.forEach(function (point) {\n var pointEl = point.graphic && point.graphic.element ||\n shouldAddMockPoint(point) && addMockPointElement(point),\n pointA11yDisabled = (point.options &&\n point.options.accessibility &&\n point.options.accessibility.enabled === false);\n if (pointEl) {\n if (point.isNull && !shouldDescribeNullPoints) {\n pointEl.setAttribute('aria-hidden', true);\n return;\n }\n // We always set tabindex, as long as we are setting props.\n // When setting tabindex, also remove default outline to\n // avoid ugly border on click.\n pointEl.setAttribute('tabindex', '-1');\n if (!series.chart.styledMode) {\n pointEl.style.outline = 'none';\n }\n if (setScreenReaderProps && !pointA11yDisabled) {\n setPointScreenReaderAttribs(point, pointEl);\n }\n else {\n pointEl.setAttribute('aria-hidden', true);\n }\n }\n });\n }\n}\n/**\n * Return string with information about series.\n * @private\n */\nfunction defaultSeriesDescriptionFormatter(series) {\n var chart = series.chart,\n chartTypes = chart.types || [],\n description = getSeriesDescriptionText(series),\n shouldDescribeAxis = function (coll) {\n return chart[coll] && chart[coll].length > 1 && series[coll];\n }, seriesNumber = series.index + 1, xAxisInfo = getSeriesAxisDescriptionText(series, 'xAxis'), yAxisInfo = getSeriesAxisDescriptionText(series, 'yAxis'), summaryContext = {\n seriesNumber: seriesNumber,\n series: series,\n chart: chart\n }, combinationSuffix = chartTypes.length > 1 ? 'Combination' : '', summary = chart.langFormat('accessibility.series.summary.' + series.type + combinationSuffix, summaryContext) || chart.langFormat('accessibility.series.summary.default' + combinationSuffix, summaryContext), axisDescription = (shouldDescribeAxis('yAxis') ? ' ' + yAxisInfo + '.' : '') + (shouldDescribeAxis('xAxis') ? ' ' + xAxisInfo + '.' : ''), formatStr = SeriesDescriber_pick(series.options.accessibility &&\n series.options.accessibility.descriptionFormat, chart.options.accessibility.series.descriptionFormat, '');\n return SeriesDescriber_format(formatStr, {\n seriesDescription: summary,\n authorDescription: (description ? ' ' + description : ''),\n axisDescription: axisDescription,\n series: series,\n chart: chart,\n seriesNumber: seriesNumber\n }, void 0);\n}\n/**\n * Set a11y props on a series element\n * @private\n * @param {Highcharts.Series} series\n * @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} seriesElement\n */\nfunction describeSeriesElement(series, seriesElement) {\n var seriesA11yOptions = series.options.accessibility || {},\n a11yOptions = series.chart.options.accessibility,\n landmarkVerbosity = a11yOptions.landmarkVerbosity;\n // Handle role attribute\n if (seriesA11yOptions.exposeAsGroupOnly) {\n seriesElement.setAttribute('role', 'img');\n }\n else if (landmarkVerbosity === 'all') {\n seriesElement.setAttribute('role', 'region');\n }\n else {\n seriesElement.setAttribute('role', 'group');\n }\n seriesElement.setAttribute('tabindex', '-1');\n if (!series.chart.styledMode) {\n // Don't show browser outline on click, despite tabindex\n seriesElement.style.outline = 'none';\n }\n seriesElement.setAttribute('aria-label', SeriesDescriber_stripHTMLTags(a11yOptions.series.descriptionFormatter &&\n a11yOptions.series.descriptionFormatter(series) ||\n defaultSeriesDescriptionFormatter(series), series.chart.renderer.forExport));\n}\n/**\n * Put accessible info on series and points of a series.\n * @param {Highcharts.Series} series The series to add info on.\n */\nfunction describeSeries(series) {\n var chart = series.chart,\n firstPointEl = SeriesDescriber_getSeriesFirstPointElement(series),\n seriesEl = SeriesDescriber_getSeriesA11yElement(series),\n is3d = chart.is3d && chart.is3d();\n if (seriesEl) {\n // For some series types the order of elements do not match the\n // order of points in series. In that case we have to reverse them\n // in order for AT to read them out in an understandable order.\n // Due to z-index issues we cannot do this for 3D charts.\n if (seriesEl.lastChild === firstPointEl && !is3d) {\n SeriesDescriber_reverseChildNodes(seriesEl);\n }\n describePointsInSeries(series);\n SeriesDescriber_unhideChartElementFromAT(chart, seriesEl);\n if (shouldDescribeSeriesElement(series)) {\n describeSeriesElement(series, seriesEl);\n }\n else {\n seriesEl.removeAttribute('aria-label');\n }\n }\n}\n/* *\n *\n * Default Export\n *\n * */\nvar SeriesDescriber = {\n defaultPointDescriptionFormatter: defaultPointDescriptionFormatter,\n defaultSeriesDescriptionFormatter: defaultSeriesDescriptionFormatter,\n describeSeries: describeSeries\n};\n/* harmony default export */ var SeriesComponent_SeriesDescriber = (SeriesDescriber);\n\n;// ./code/es5/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Handle announcing new data for a chart.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar NewDataAnnouncer_composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed;\n\nvar NewDataAnnouncer_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, NewDataAnnouncer_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, NewDataAnnouncer_pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique;\n\n\nvar NewDataAnnouncer_getChartTitle = Utils_ChartUtilities.getChartTitle;\n\n\nvar NewDataAnnouncer_defaultPointDescriptionFormatter = SeriesComponent_SeriesDescriber.defaultPointDescriptionFormatter, NewDataAnnouncer_defaultSeriesDescriptionFormatter = SeriesComponent_SeriesDescriber.defaultSeriesDescriptionFormatter;\n/* *\n *\n * Functions\n *\n * */\n/* eslint-disable valid-jsdoc */\n/**\n * @private\n */\nfunction chartHasAnnounceEnabled(chart) {\n return !!chart.options.accessibility.announceNewData.enabled;\n}\n/**\n * @private\n */\nfunction findPointInDataArray(point) {\n var candidates = point.series.data.filter(function (candidate) { return (point.x === candidate.x && point.y === candidate.y); });\n return candidates.length === 1 ? candidates[0] : point;\n}\n/**\n * Get array of unique series from two arrays\n * @private\n */\nfunction getUniqueSeries(arrayA, arrayB) {\n var uniqueSeries = (arrayA || []).concat(arrayB || []).reduce(function (acc,\n cur) {\n acc[cur.name + cur.index] = cur;\n return acc;\n }, {});\n return Object\n .keys(uniqueSeries)\n .map(function (ix) { return uniqueSeries[ix]; });\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * @private\n * @class\n */\nvar NewDataAnnouncer = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function NewDataAnnouncer(chart) {\n this.dirty = {\n allSeries: {}\n };\n this.lastAnnouncementTime = 0;\n this.chart = chart;\n }\n /* *\n *\n * Functions\n *\n * */\n /* eslint-disable valid-jsdoc */\n /**\n * Initialize the new data announcer.\n * @private\n */\n NewDataAnnouncer.prototype.init = function () {\n var chart = this.chart;\n var announceOptions = (chart.options.accessibility.announceNewData);\n var announceType = announceOptions.interruptUser ?\n 'assertive' : 'polite';\n this.lastAnnouncementTime = 0;\n this.dirty = {\n allSeries: {}\n };\n this.eventProvider = new Utils_EventProvider();\n this.announcer = new Utils_Announcer(chart, announceType);\n this.addEventListeners();\n };\n /**\n * Remove traces of announcer.\n * @private\n */\n NewDataAnnouncer.prototype.destroy = function () {\n this.eventProvider.removeAddedEvents();\n this.announcer.destroy();\n };\n /**\n * Add event listeners for the announcer\n * @private\n */\n NewDataAnnouncer.prototype.addEventListeners = function () {\n var announcer = this,\n chart = this.chart,\n e = this.eventProvider;\n e.addEvent(chart, 'afterApplyDrilldown', function () {\n announcer.lastAnnouncementTime = 0;\n });\n e.addEvent(chart, 'afterAddSeries', function (e) {\n announcer.onSeriesAdded(e.series);\n });\n e.addEvent(chart, 'redraw', function () {\n announcer.announceDirtyData();\n });\n };\n /**\n * On new data series added, update dirty list.\n * @private\n * @param {Highcharts.Series} series\n */\n NewDataAnnouncer.prototype.onSeriesAdded = function (series) {\n if (chartHasAnnounceEnabled(this.chart)) {\n this.dirty.hasDirty = true;\n this.dirty.allSeries[series.name + series.index] = series;\n // Add it to newSeries storage unless we already have one\n this.dirty.newSeries = NewDataAnnouncer_defined(this.dirty.newSeries) ?\n void 0 : series;\n }\n };\n /**\n * Gather what we know and announce the data to user.\n * @private\n */\n NewDataAnnouncer.prototype.announceDirtyData = function () {\n var chart = this.chart,\n announcer = this;\n if (chart.options.accessibility.announceNewData &&\n this.dirty.hasDirty) {\n var newPoint = this.dirty.newPoint;\n // If we have a single new point, see if we can find it in the\n // data array. Otherwise we can only pass through options to\n // the description builder, and it is a bit sparse in info.\n if (newPoint) {\n newPoint = findPointInDataArray(newPoint);\n }\n this.queueAnnouncement(Object\n .keys(this.dirty.allSeries)\n .map(function (ix) {\n return announcer.dirty.allSeries[ix];\n }), this.dirty.newSeries, newPoint);\n // Reset\n this.dirty = {\n allSeries: {}\n };\n }\n };\n /**\n * Announce to user that there is new data.\n * @private\n * @param {Array<Highcharts.Series>} dirtySeries\n * Array of series with new data.\n * @param {Highcharts.Series} [newSeries]\n * If a single new series was added, a reference to this series.\n * @param {Highcharts.Point} [newPoint]\n * If a single point was added, a reference to this point.\n */\n NewDataAnnouncer.prototype.queueAnnouncement = function (dirtySeries, newSeries, newPoint) {\n var _this = this;\n var chart = this.chart;\n var annOptions = chart.options.accessibility.announceNewData;\n if (annOptions.enabled) {\n var now = +new Date();\n var dTime = now - this.lastAnnouncementTime;\n var time = Math.max(0,\n annOptions.minAnnounceInterval - dTime);\n // Add series from previously queued announcement.\n var allSeries = getUniqueSeries(this.queuedAnnouncement && this.queuedAnnouncement.series,\n dirtySeries);\n // Build message and announce\n var message = this.buildAnnouncementMessage(allSeries,\n newSeries,\n newPoint);\n if (message) {\n // Is there already one queued?\n if (this.queuedAnnouncement) {\n clearTimeout(this.queuedAnnouncementTimer);\n }\n // Build the announcement\n this.queuedAnnouncement = {\n time: now,\n message: message,\n series: allSeries\n };\n // Queue the announcement\n this.queuedAnnouncementTimer = setTimeout(function () {\n if (_this && _this.announcer) {\n _this.lastAnnouncementTime = +new Date();\n _this.announcer.announce(_this.queuedAnnouncement.message);\n delete _this.queuedAnnouncement;\n delete _this.queuedAnnouncementTimer;\n }\n }, time);\n }\n }\n };\n /**\n * Get announcement message for new data.\n * @private\n * @param {Array<Highcharts.Series>} dirtySeries\n * Array of series with new data.\n * @param {Highcharts.Series} [newSeries]\n * If a single new series was added, a reference to this series.\n * @param {Highcharts.Point} [newPoint]\n * If a single point was added, a reference to this point.\n *\n * @return {string|null}\n * The announcement message to give to user.\n */\n NewDataAnnouncer.prototype.buildAnnouncementMessage = function (dirtySeries, newSeries, newPoint) {\n var chart = this.chart,\n annOptions = chart.options.accessibility.announceNewData;\n // User supplied formatter?\n if (annOptions.announcementFormatter) {\n var formatterRes = annOptions.announcementFormatter(dirtySeries,\n newSeries,\n newPoint);\n if (formatterRes !== false) {\n return formatterRes.length ? formatterRes : null;\n }\n }\n // Default formatter - use lang options\n var multiple = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).charts && (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).charts.length > 1 ?\n 'Multiple' : 'Single', langKey = newSeries ? 'newSeriesAnnounce' + multiple :\n newPoint ? 'newPointAnnounce' + multiple : 'newDataAnnounce', chartTitle = NewDataAnnouncer_getChartTitle(chart);\n return chart.langFormat('accessibility.announceNewData.' + langKey, {\n chartTitle: chartTitle,\n seriesDesc: newSeries ?\n NewDataAnnouncer_defaultSeriesDescriptionFormatter(newSeries) :\n null,\n pointDesc: newPoint ?\n NewDataAnnouncer_defaultPointDescriptionFormatter(newPoint) :\n null,\n point: newPoint,\n series: newSeries\n });\n };\n return NewDataAnnouncer;\n}());\n/* *\n *\n * Class Namespace\n *\n * */\n(function (NewDataAnnouncer) {\n /* *\n *\n * Declarations\n *\n * */\n /* *\n *\n * Static Functions\n *\n * */\n /**\n * @private\n */\n function compose(SeriesClass) {\n if (NewDataAnnouncer_pushUnique(NewDataAnnouncer_composed, 'A11y.NDA')) {\n NewDataAnnouncer_addEvent(SeriesClass, 'addPoint', seriesOnAddPoint);\n NewDataAnnouncer_addEvent(SeriesClass, 'updatedData', seriesOnUpdatedData);\n }\n }\n NewDataAnnouncer.compose = compose;\n /**\n * On new point added, update dirty list.\n * @private\n * @param {Highcharts.Point} point\n */\n function seriesOnAddPoint(e) {\n var _a;\n var chart = this.chart,\n newDataAnnouncer = (_a = chart.accessibility) === null || _a === void 0 ? void 0 : _a.components.series.newDataAnnouncer;\n if (newDataAnnouncer &&\n newDataAnnouncer.chart === chart &&\n chartHasAnnounceEnabled(chart)) {\n // Add it to newPoint storage unless we already have one\n newDataAnnouncer.dirty.newPoint = (NewDataAnnouncer_defined(newDataAnnouncer.dirty.newPoint) ?\n void 0 :\n e.point);\n }\n }\n /**\n * On new data in the series, make sure we add it to the dirty list.\n * @private\n * @param {Highcharts.Series} series\n */\n function seriesOnUpdatedData() {\n var _a;\n var chart = this.chart,\n newDataAnnouncer = (_a = chart.accessibility) === null || _a === void 0 ? void 0 : _a.components.series.newDataAnnouncer;\n if (newDataAnnouncer &&\n newDataAnnouncer.chart === chart &&\n chartHasAnnounceEnabled(chart)) {\n newDataAnnouncer.dirty.hasDirty = true;\n newDataAnnouncer.dirty.allSeries[this.name + this.index] = this;\n }\n }\n})(NewDataAnnouncer || (NewDataAnnouncer = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var SeriesComponent_NewDataAnnouncer = (NewDataAnnouncer);\n\n;// ./code/es5/es-modules/Accessibility/ProxyElement.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Proxy elements are used to shadow SVG elements in HTML for assistive\n * technology, such as screen readers or voice input software.\n *\n * The ProxyElement class represents such an element, and deals with\n * overlay positioning and mirroring events for the target.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar ProxyElement_doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc;\n\nvar ProxyElement_attr = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).attr, ProxyElement_css = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).css, ProxyElement_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n\n\nvar ProxyElement_fireEventOnWrappedOrUnwrappedElement = Utils_ChartUtilities.fireEventOnWrappedOrUnwrappedElement;\n\nvar ProxyElement_cloneMouseEvent = Utils_HTMLUtilities.cloneMouseEvent, ProxyElement_cloneTouchEvent = Utils_HTMLUtilities.cloneTouchEvent, ProxyElement_getFakeMouseEvent = Utils_HTMLUtilities.getFakeMouseEvent, ProxyElement_removeElement = Utils_HTMLUtilities.removeElement;\n/* *\n *\n * Class\n *\n * */\n/**\n * Represents a proxy element that overlays a target and relays events\n * to its target.\n *\n * @private\n * @class\n */\nvar ProxyElement = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function ProxyElement(chart, target, proxyElementType, wrapperElementType, attributes) {\n if (proxyElementType === void 0) { proxyElementType = 'button'; }\n this.chart = chart;\n this.target = target;\n this.eventProvider = new Utils_EventProvider();\n var innerEl = this.innerElement =\n ProxyElement_doc.createElement(proxyElementType),\n wrapperEl = this.element = wrapperElementType ?\n ProxyElement_doc.createElement(wrapperElementType) : innerEl;\n if (!chart.styledMode) {\n this.hideElementVisually(innerEl);\n }\n if (wrapperElementType) {\n if (wrapperElementType === 'li' && !chart.styledMode) {\n wrapperEl.style.listStyle = 'none';\n }\n wrapperEl.appendChild(innerEl);\n this.element = wrapperEl;\n }\n this.updateTarget(target, attributes);\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Fake a click event on the target.\n */\n ProxyElement.prototype.click = function () {\n var pos = this.getTargetPosition();\n pos.x += pos.width / 2;\n pos.y += pos.height / 2;\n var fakeEventObject = ProxyElement_getFakeMouseEvent('click',\n pos);\n ProxyElement_fireEventOnWrappedOrUnwrappedElement(this.target.click, fakeEventObject);\n };\n /**\n * Update the target to be proxied. The position and events are updated to\n * match the new target.\n * @param target The new target definition\n * @param attributes New HTML attributes to apply to the proxy. Set an\n * attribute to null to remove.\n */\n ProxyElement.prototype.updateTarget = function (target, attributes) {\n this.target = target;\n this.updateCSSClassName();\n var attrs = attributes || {};\n Object.keys(attrs).forEach(function (a) {\n if (attrs[a] === null) {\n delete attrs[a];\n }\n });\n var targetAriaLabel = this.getTargetAttr(target.click, 'aria-label');\n ProxyElement_attr(this.innerElement, ProxyElement_merge(targetAriaLabel ? {\n 'aria-label': targetAriaLabel\n } : {}, attrs));\n this.eventProvider.removeAddedEvents();\n this.addProxyEventsToElement(this.innerElement, target.click);\n this.refreshPosition();\n };\n /**\n * Refresh the position of the proxy element to match the current target\n */\n ProxyElement.prototype.refreshPosition = function () {\n var bBox = this.getTargetPosition();\n ProxyElement_css(this.innerElement, {\n width: (bBox.width || 1) + 'px',\n height: (bBox.height || 1) + 'px',\n left: (Math.round(bBox.x) || 0) + 'px',\n top: (Math.round(bBox.y) || 0) + 'px'\n });\n };\n /**\n * Remove button from DOM, and clear events.\n */\n ProxyElement.prototype.remove = function () {\n this.eventProvider.removeAddedEvents();\n ProxyElement_removeElement(this.element);\n };\n // -------------------------- private ------------------------------------\n /**\n * Update the CSS class name to match target\n */\n ProxyElement.prototype.updateCSSClassName = function () {\n var stringHasNoTooltip = function (s) { return (s.indexOf('highcharts-no-tooltip') > -1); };\n var legend = this.chart.legend;\n var groupDiv = legend.group && legend.group.div;\n var noTooltipOnGroup = stringHasNoTooltip(groupDiv && groupDiv.className || '');\n var targetClassName = this.getTargetAttr(this.target.click, 'class') || '';\n var noTooltipOnTarget = stringHasNoTooltip(targetClassName);\n this.innerElement.className = noTooltipOnGroup || noTooltipOnTarget ?\n 'highcharts-a11y-proxy-element highcharts-no-tooltip' :\n 'highcharts-a11y-proxy-element';\n };\n /**\n * Mirror events for a proxy element to a target\n */\n ProxyElement.prototype.addProxyEventsToElement = function (element, target) {\n var _this = this;\n [\n 'click', 'touchstart', 'touchend', 'touchcancel', 'touchmove',\n 'mouseover', 'mouseenter', 'mouseleave', 'mouseout'\n ].forEach(function (evtType) {\n var isTouchEvent = evtType.indexOf('touch') === 0;\n _this.eventProvider.addEvent(element, evtType, function (e) {\n var clonedEvent = isTouchEvent ?\n ProxyElement_cloneTouchEvent(e) :\n ProxyElement_cloneMouseEvent(e);\n if (target) {\n ProxyElement_fireEventOnWrappedOrUnwrappedElement(target, clonedEvent);\n }\n e.stopPropagation();\n // #9682, #15318: Touch scrolling didn't work when touching\n // proxy\n if (!isTouchEvent) {\n e.preventDefault();\n }\n }, { passive: false });\n });\n };\n /**\n * Set visually hidden style on a proxy element\n */\n ProxyElement.prototype.hideElementVisually = function (el) {\n ProxyElement_css(el, {\n borderWidth: 0,\n backgroundColor: 'transparent',\n cursor: 'pointer',\n outline: 'none',\n opacity: 0.001,\n filter: 'alpha(opacity=1)',\n zIndex: 999,\n overflow: 'hidden',\n padding: 0,\n margin: 0,\n display: 'block',\n position: 'absolute',\n '-ms-filter': 'progid:DXImageTransform.Microsoft.Alpha(Opacity=1)'\n });\n };\n /**\n * Get the position relative to chart container for the target\n */\n ProxyElement.prototype.getTargetPosition = function () {\n var clickTarget = this.target.click;\n // We accept both DOM elements and wrapped elements as click targets.\n var clickTargetElement = clickTarget.element ?\n clickTarget.element :\n clickTarget;\n var posElement = this.target.visual || clickTargetElement;\n var chartDiv = this.chart.renderTo,\n pointer = this.chart.pointer;\n if (chartDiv && (posElement === null || posElement === void 0 ? void 0 : posElement.getBoundingClientRect) && pointer) {\n var rectEl = posElement.getBoundingClientRect(),\n chartPos = pointer.getChartPosition();\n return {\n x: (rectEl.left - chartPos.left) / chartPos.scaleX,\n y: (rectEl.top - chartPos.top) / chartPos.scaleY,\n width: rectEl.right / chartPos.scaleX -\n rectEl.left / chartPos.scaleX,\n height: rectEl.bottom / chartPos.scaleY -\n rectEl.top / chartPos.scaleY\n };\n }\n return { x: 0, y: 0, width: 1, height: 1 };\n };\n /**\n * Get an attribute value of a target\n */\n ProxyElement.prototype.getTargetAttr = function (target, key) {\n if (target.element) {\n return target.element.getAttribute(key);\n }\n return target.getAttribute(key);\n };\n return ProxyElement;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Accessibility_ProxyElement = (ProxyElement);\n\n;// ./code/es5/es-modules/Accessibility/ProxyProvider.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Proxy elements are used to shadow SVG elements in HTML for assistive\n * technology, such as screen readers or voice input software.\n *\n * The ProxyProvider keeps track of all proxy elements of the a11y module,\n * and updating their order and positioning.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar ProxyProvider_doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc;\n\nvar ProxyProvider_attr = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).attr, ProxyProvider_css = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).css;\n\nvar ProxyProvider_unhideChartElementFromAT = Utils_ChartUtilities.unhideChartElementFromAT;\n\n\nvar ProxyProvider_removeChildNodes = Utils_HTMLUtilities.removeChildNodes;\n\n/* *\n *\n * Class\n *\n * */\n/**\n * Keeps track of all proxy elements and proxy groups.\n *\n * @private\n * @class\n */\nvar ProxyProvider = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function ProxyProvider(chart) {\n this.chart = chart;\n this.domElementProvider = new Utils_DOMElementProvider();\n this.groups = {};\n this.groupOrder = [];\n this.beforeChartProxyPosContainer = this.createProxyPosContainer('before');\n this.afterChartProxyPosContainer = this.createProxyPosContainer('after');\n this.update();\n }\n /* *\n *\n * Functions\n *\n * */\n /* eslint-disable */\n /**\n * Add a new proxy element to a group, proxying a target control.\n */\n ProxyProvider.prototype.addProxyElement = function (groupKey, target, proxyElementType, attributes) {\n if (proxyElementType === void 0) { proxyElementType = 'button'; }\n var group = this.groups[groupKey];\n if (!group) {\n throw new Error('ProxyProvider.addProxyElement: Invalid group key ' + groupKey);\n }\n var wrapperElementType = group.type === 'ul' || group.type === 'ol' ?\n 'li' : void 0,\n proxy = new Accessibility_ProxyElement(this.chart,\n target,\n proxyElementType,\n wrapperElementType,\n attributes);\n group.proxyContainerElement.appendChild(proxy.element);\n group.proxyElements.push(proxy);\n return proxy;\n };\n /**\n * Create a group that will contain proxy elements. The group order is\n * automatically updated according to the last group order keys.\n *\n * Returns the added group.\n */\n ProxyProvider.prototype.addGroup = function (groupKey, groupElementType, attributes) {\n if (groupElementType === void 0) { groupElementType = 'div'; }\n var existingGroup = this.groups[groupKey];\n if (existingGroup) {\n return existingGroup.groupElement;\n }\n var proxyContainer = this.domElementProvider\n .createElement(groupElementType);\n // If we want to add a role to the group, and still use e.g.\n // a list group, we need a wrapper div around the proxyContainer.\n // Used for setting region role on legend.\n var groupElement;\n if (attributes && attributes.role && groupElementType !== 'div') {\n groupElement = this.domElementProvider.createElement('div');\n groupElement.appendChild(proxyContainer);\n }\n else {\n groupElement = proxyContainer;\n }\n groupElement.className = 'highcharts-a11y-proxy-group highcharts-a11y-proxy-group-' +\n groupKey.replace(/\\W/g, '-');\n this.groups[groupKey] = {\n proxyContainerElement: proxyContainer,\n groupElement: groupElement,\n type: groupElementType,\n proxyElements: []\n };\n ProxyProvider_attr(groupElement, attributes || {});\n if (groupElementType === 'ul') {\n proxyContainer.setAttribute('role', 'list'); // Needed for webkit\n }\n // Add the group to the end by default, and perhaps then we\n // won't have to reorder the whole set of groups.\n this.afterChartProxyPosContainer.appendChild(groupElement);\n this.updateGroupOrder(this.groupOrder);\n return groupElement;\n };\n /**\n * Update HTML attributes of a group.\n */\n ProxyProvider.prototype.updateGroupAttrs = function (groupKey, attributes) {\n var group = this.groups[groupKey];\n if (!group) {\n throw new Error('ProxyProvider.updateGroupAttrs: Invalid group key ' + groupKey);\n }\n ProxyProvider_attr(group.groupElement, attributes);\n };\n /**\n * Reorder the proxy groups.\n *\n * The group key \"series\" refers to the chart's data points / <svg> element.\n * This is so that the keyboardNavigation.order option can be used to\n * determine the proxy group order.\n */\n ProxyProvider.prototype.updateGroupOrder = function (groupKeys) {\n var _this = this;\n // Store so that we can update order when a new group is created\n this.groupOrder = groupKeys.slice();\n // Don't unnecessarily reorder, because keyboard focus is lost\n if (this.isDOMOrderGroupOrder()) {\n return;\n }\n var seriesIx = groupKeys.indexOf('series');\n var beforeKeys = seriesIx > -1 ? groupKeys.slice(0,\n seriesIx) : groupKeys;\n var afterKeys = seriesIx > -1 ? groupKeys.slice(seriesIx + 1) : [];\n // Store focused element since it will be lost when reordering\n var activeElement = ProxyProvider_doc.activeElement;\n // Add groups to correct container\n ['before', 'after'].forEach(function (pos) {\n var posContainer = _this[pos === 'before' ?\n 'beforeChartProxyPosContainer' :\n 'afterChartProxyPosContainer'];\n var keys = pos === 'before' ? beforeKeys : afterKeys;\n ProxyProvider_removeChildNodes(posContainer);\n keys.forEach(function (groupKey) {\n var group = _this.groups[groupKey];\n if (group) {\n posContainer.appendChild(group.groupElement);\n }\n });\n });\n // Attempt to restore focus after reordering, but note that this may\n // cause screen readers re-announcing the button.\n if ((this.beforeChartProxyPosContainer.contains(activeElement) ||\n this.afterChartProxyPosContainer.contains(activeElement)) &&\n activeElement && activeElement.focus) {\n activeElement.focus();\n }\n };\n /**\n * Remove all proxy elements in a group\n */\n ProxyProvider.prototype.clearGroup = function (groupKey) {\n var group = this.groups[groupKey];\n if (!group) {\n throw new Error('ProxyProvider.clearGroup: Invalid group key ' + groupKey);\n }\n ProxyProvider_removeChildNodes(group.proxyContainerElement);\n };\n /**\n * Remove a group from the DOM and from the proxy provider's group list.\n * All child elements are removed.\n * If the group does not exist, nothing happens.\n */\n ProxyProvider.prototype.removeGroup = function (groupKey) {\n var group = this.groups[groupKey];\n if (group) {\n // Remove detached HTML elements to prevent memory leak (#20329).\n this.domElementProvider.removeElement(group.groupElement);\n // Sometimes groupElement is a wrapper around the proxyContainer, so\n // the real one proxyContainer needs to be removed also.\n if (group.groupElement !== group.proxyContainerElement) {\n this.domElementProvider.removeElement(group.proxyContainerElement);\n }\n delete this.groups[groupKey];\n }\n };\n /**\n * Update the position and order of all proxy groups and elements\n */\n ProxyProvider.prototype.update = function () {\n this.updatePosContainerPositions();\n this.updateGroupOrder(this.groupOrder);\n this.updateProxyElementPositions();\n };\n /**\n * Update all proxy element positions\n */\n ProxyProvider.prototype.updateProxyElementPositions = function () {\n Object.keys(this.groups).forEach(this.updateGroupProxyElementPositions.bind(this));\n };\n /**\n * Update a group's proxy elements' positions.\n * If the group does not exist, nothing happens.\n */\n ProxyProvider.prototype.updateGroupProxyElementPositions = function (groupKey) {\n var group = this.groups[groupKey];\n if (group) {\n group.proxyElements.forEach(function (el) { return el.refreshPosition(); });\n }\n };\n /**\n * Remove all added elements\n */\n ProxyProvider.prototype.destroy = function () {\n this.domElementProvider.destroyCreatedElements();\n };\n // -------------------------- private ------------------------------------\n /**\n * Create and return a pos container element (the overall containers for\n * the proxy groups).\n */\n ProxyProvider.prototype.createProxyPosContainer = function (classNamePostfix) {\n var el = this.domElementProvider.createElement('div');\n el.setAttribute('aria-hidden', 'false');\n el.className = 'highcharts-a11y-proxy-container' + (classNamePostfix ? '-' + classNamePostfix : '');\n ProxyProvider_css(el, {\n top: '0',\n left: '0'\n });\n if (!this.chart.styledMode) {\n el.style.whiteSpace = 'nowrap';\n el.style.position = 'absolute';\n }\n return el;\n };\n /**\n * Get an array of group keys that corresponds to the current group order\n * in the DOM.\n */\n ProxyProvider.prototype.getCurrentGroupOrderInDOM = function () {\n var _this = this;\n var getGroupKeyFromElement = function (el) {\n var allGroups = Object.keys(_this.groups);\n var i = allGroups.length;\n while (i--) {\n var groupKey = allGroups[i];\n var group = _this.groups[groupKey];\n if (group && el === group.groupElement) {\n return groupKey;\n }\n }\n };\n var getChildrenGroupOrder = function (el) {\n var childrenOrder = [];\n var children = el.children;\n for (var i = 0; i < children.length; ++i) {\n var groupKey = getGroupKeyFromElement(children[i]);\n if (groupKey) {\n childrenOrder.push(groupKey);\n }\n }\n return childrenOrder;\n };\n var before = getChildrenGroupOrder(this.beforeChartProxyPosContainer);\n var after = getChildrenGroupOrder(this.afterChartProxyPosContainer);\n before.push('series');\n return before.concat(after);\n };\n /**\n * Check if the current DOM order matches the current group order, so that\n * a reordering/update is unnecessary.\n */\n ProxyProvider.prototype.isDOMOrderGroupOrder = function () {\n var _this = this;\n var domOrder = this.getCurrentGroupOrderInDOM();\n var groupOrderWithGroups = this.groupOrder.filter(function (x) { return x === 'series' || !!_this.groups[x]; });\n var i = domOrder.length;\n if (i !== groupOrderWithGroups.length) {\n return false;\n }\n while (i--) {\n if (domOrder[i] !== groupOrderWithGroups[i]) {\n return false;\n }\n }\n return true;\n };\n /**\n * Update the DOM positions of the before/after proxy\n * positioning containers for the groups.\n */\n ProxyProvider.prototype.updatePosContainerPositions = function () {\n var chart = this.chart;\n // If exporting, don't add these containers to the DOM.\n if (chart.renderer.forExport) {\n return;\n }\n var rendererSVGEl = chart.renderer.box;\n chart.container.insertBefore(this.afterChartProxyPosContainer, rendererSVGEl.nextSibling);\n chart.container.insertBefore(this.beforeChartProxyPosContainer, rendererSVGEl);\n ProxyProvider_unhideChartElementFromAT(this.chart, this.afterChartProxyPosContainer);\n ProxyProvider_unhideChartElementFromAT(this.chart, this.beforeChartProxyPosContainer);\n };\n return ProxyProvider;\n}());\n/* *\n *\n * Export Default\n *\n * */\n/* harmony default export */ var Accessibility_ProxyProvider = (ProxyProvider);\n\n;// ./code/es5/es-modules/Accessibility/Components/RangeSelectorComponent.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Accessibility component for the range selector.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar RangeSelectorComponent_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\nvar RangeSelectorComponent_unhideChartElementFromAT = Utils_ChartUtilities.unhideChartElementFromAT, RangeSelectorComponent_getAxisRangeDescription = Utils_ChartUtilities.getAxisRangeDescription;\n\n\nvar RangeSelectorComponent_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, RangeSelectorComponent_attr = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).attr;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Do we want date input navigation\n * @private\n */\nfunction shouldRunInputNavigation(chart) {\n return Boolean(chart.rangeSelector &&\n chart.rangeSelector.inputGroup &&\n chart.rangeSelector.inputGroup.element.style.visibility !== 'hidden' &&\n chart.options.rangeSelector.inputEnabled !== false &&\n chart.rangeSelector.minInput &&\n chart.rangeSelector.maxInput);\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * The RangeSelectorComponent class\n *\n * @private\n * @class\n * @name Highcharts.RangeSelectorComponent\n */\nvar RangeSelectorComponent = /** @class */ (function (_super) {\n RangeSelectorComponent_extends(RangeSelectorComponent, _super);\n function RangeSelectorComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n /* eslint-disable valid-jsdoc */\n /**\n * Init the component\n * @private\n */\n RangeSelectorComponent.prototype.init = function () {\n var chart = this.chart;\n this.announcer = new Utils_Announcer(chart, 'polite');\n };\n /**\n * Called on first render/updates to the chart, including options changes.\n */\n RangeSelectorComponent.prototype.onChartUpdate = function () {\n var chart = this.chart,\n component = this,\n rangeSelector = chart.rangeSelector;\n if (!rangeSelector) {\n return;\n }\n this.updateSelectorVisibility();\n this.setDropdownAttrs();\n if (rangeSelector.buttons &&\n rangeSelector.buttons.length) {\n rangeSelector.buttons.forEach(function (button) {\n component.setRangeButtonAttrs(button);\n });\n }\n // Make sure input boxes are accessible and focusable\n if (rangeSelector.maxInput && rangeSelector.minInput) {\n ['minInput', 'maxInput'].forEach(function (key, i) {\n var input = rangeSelector[key];\n if (input) {\n RangeSelectorComponent_unhideChartElementFromAT(chart, input);\n component.setRangeInputAttrs(input, 'accessibility.rangeSelector.' + (i ? 'max' : 'min') +\n 'InputLabel');\n }\n });\n }\n };\n /**\n * Hide buttons from AT when showing dropdown, and vice versa.\n * @private\n */\n RangeSelectorComponent.prototype.updateSelectorVisibility = function () {\n var chart = this.chart;\n var rangeSelector = chart.rangeSelector;\n var dropdown = (rangeSelector &&\n rangeSelector.dropdown);\n var buttons = (rangeSelector &&\n rangeSelector.buttons ||\n []);\n var hideFromAT = function (el) { return el.setAttribute('aria-hidden',\n true); };\n if (rangeSelector &&\n rangeSelector.hasVisibleDropdown &&\n dropdown) {\n RangeSelectorComponent_unhideChartElementFromAT(chart, dropdown);\n buttons.forEach(function (btn) { return hideFromAT(btn.element); });\n }\n else {\n if (dropdown) {\n hideFromAT(dropdown);\n }\n buttons.forEach(function (btn) { return RangeSelectorComponent_unhideChartElementFromAT(chart, btn.element); });\n }\n };\n /**\n * Set accessibility related attributes on dropdown element.\n * @private\n */\n RangeSelectorComponent.prototype.setDropdownAttrs = function () {\n var chart = this.chart;\n var dropdown = (chart.rangeSelector &&\n chart.rangeSelector.dropdown);\n if (dropdown) {\n var label = chart.langFormat('accessibility.rangeSelector.dropdownLabel', { rangeTitle: chart.options.lang.rangeSelectorZoom });\n dropdown.setAttribute('aria-label', label);\n dropdown.setAttribute('tabindex', -1);\n }\n };\n /**\n * Set attrs for a range button\n * @private\n */\n RangeSelectorComponent.prototype.setRangeButtonAttrs = function (button) {\n RangeSelectorComponent_attr(button.element, {\n tabindex: -1,\n role: 'button'\n });\n };\n /**\n * Set attrs for a date input\n * @private\n */\n RangeSelectorComponent.prototype.setRangeInputAttrs = function (input, langKey) {\n var chart = this.chart;\n RangeSelectorComponent_attr(input, {\n tabindex: -1,\n 'aria-label': chart.langFormat(langKey, { chart: chart })\n });\n };\n /**\n * Handle arrow key nav\n * @private\n */\n RangeSelectorComponent.prototype.onButtonNavKbdArrowKey = function (keyboardNavigationHandler, keyCode) {\n var response = keyboardNavigationHandler.response,\n keys = this.keyCodes,\n chart = this.chart,\n wrapAround = chart.options.accessibility\n .keyboardNavigation.wrapAround,\n direction = (keyCode === keys.left || keyCode === keys.up) ? -1 : 1,\n didHighlight = chart.highlightRangeSelectorButton(chart.highlightedRangeSelectorItemIx + direction);\n if (!didHighlight) {\n if (wrapAround) {\n keyboardNavigationHandler.init(direction);\n return response.success;\n }\n return response[direction > 0 ? 'next' : 'prev'];\n }\n return response.success;\n };\n /**\n * Handle keyboard click\n * @private\n */\n RangeSelectorComponent.prototype.onButtonNavKbdClick = function (keyboardNavigationHandler) {\n var response = keyboardNavigationHandler.response,\n chart = this.chart,\n wasDisabled = chart.oldRangeSelectorItemState === 3;\n if (!wasDisabled) {\n this.fakeClickEvent(chart.rangeSelector.buttons[chart.highlightedRangeSelectorItemIx].element);\n }\n return response.success;\n };\n /**\n * Called whenever a range selector button has been clicked, either by\n * mouse, touch, or kbd/voice/other.\n * @private\n */\n RangeSelectorComponent.prototype.onAfterBtnClick = function () {\n var chart = this.chart;\n var axisRangeDescription = RangeSelectorComponent_getAxisRangeDescription(chart.xAxis[0]);\n var announcement = chart.langFormat('accessibility.rangeSelector.clickButtonAnnouncement', { chart: chart,\n axisRangeDescription: axisRangeDescription });\n if (announcement) {\n this.announcer.announce(announcement);\n }\n };\n /**\n * Handle move between input elements with Tab key\n * @private\n */\n RangeSelectorComponent.prototype.onInputKbdMove = function (direction) {\n var chart = this.chart;\n var rangeSel = chart.rangeSelector;\n var newIx = chart.highlightedInputRangeIx = (chart.highlightedInputRangeIx || 0) + direction;\n var newIxOutOfRange = newIx > 1 || newIx < 0;\n if (newIxOutOfRange) {\n if (chart.accessibility) {\n // Ignore focus\n chart.accessibility.keyboardNavigation.exiting = true;\n chart.accessibility.keyboardNavigation.tabindexContainer\n .focus();\n return chart.accessibility.keyboardNavigation.move(direction);\n }\n }\n else if (rangeSel) {\n var svgEl = rangeSel[newIx ? 'maxDateBox' : 'minDateBox'];\n var inputEl = rangeSel[newIx ? 'maxInput' : 'minInput'];\n if (svgEl && inputEl) {\n chart.setFocusToElement(svgEl, inputEl);\n }\n }\n return true;\n };\n /**\n * Init date input navigation\n * @private\n */\n RangeSelectorComponent.prototype.onInputNavInit = function (direction) {\n var _this = this;\n var component = this;\n var chart = this.chart;\n var buttonIxToHighlight = direction > 0 ? 0 : 1;\n var rangeSel = chart.rangeSelector;\n var svgEl = (rangeSel &&\n rangeSel[buttonIxToHighlight ? 'maxDateBox' : 'minDateBox']);\n var minInput = (rangeSel && rangeSel.minInput);\n var maxInput = (rangeSel && rangeSel.maxInput);\n var inputEl = buttonIxToHighlight ? maxInput : minInput;\n chart.highlightedInputRangeIx = buttonIxToHighlight;\n if (svgEl && minInput && maxInput) {\n chart.setFocusToElement(svgEl, inputEl);\n // Tab-press with the input focused does not propagate to chart\n // automatically, so we manually catch and handle it when relevant.\n if (this.removeInputKeydownHandler) {\n this.removeInputKeydownHandler();\n }\n var keydownHandler = function (e) {\n var isTab = (e.which || e.keyCode) === _this.keyCodes.tab;\n if (isTab &&\n component.onInputKbdMove(e.shiftKey ? -1 : 1)) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n var minRemover_1 = RangeSelectorComponent_addEvent(minInput, 'keydown',\n keydownHandler);\n var maxRemover_1 = RangeSelectorComponent_addEvent(maxInput, 'keydown',\n keydownHandler);\n this.removeInputKeydownHandler = function () {\n minRemover_1();\n maxRemover_1();\n };\n }\n };\n /**\n * Terminate date input nav\n * @private\n */\n RangeSelectorComponent.prototype.onInputNavTerminate = function () {\n var rangeSel = (this.chart.rangeSelector || {});\n if (rangeSel.maxInput) {\n rangeSel.hideInput('max');\n }\n if (rangeSel.minInput) {\n rangeSel.hideInput('min');\n }\n if (this.removeInputKeydownHandler) {\n this.removeInputKeydownHandler();\n delete this.removeInputKeydownHandler;\n }\n };\n /**\n * Init range selector dropdown nav\n * @private\n */\n RangeSelectorComponent.prototype.initDropdownNav = function () {\n var _this = this;\n var chart = this.chart;\n var rangeSelector = chart.rangeSelector;\n var dropdown = (rangeSelector && rangeSelector.dropdown);\n if (rangeSelector && dropdown) {\n chart.setFocusToElement(rangeSelector.buttonGroup, dropdown);\n if (this.removeDropdownKeydownHandler) {\n this.removeDropdownKeydownHandler();\n }\n // Tab-press with dropdown focused does not propagate to chart\n // automatically, so we manually catch and handle it when relevant.\n this.removeDropdownKeydownHandler = RangeSelectorComponent_addEvent(dropdown, 'keydown', function (e) {\n var isTab = (e.which || e.keyCode) === _this.keyCodes.tab,\n a11y = chart.accessibility;\n if (isTab) {\n e.preventDefault();\n e.stopPropagation();\n if (a11y) {\n a11y.keyboardNavigation.move(e.shiftKey ? -1 : 1);\n }\n }\n });\n }\n };\n /**\n * Get navigation for the range selector buttons.\n * @private\n * @return {Highcharts.KeyboardNavigationHandler} The module object.\n */\n RangeSelectorComponent.prototype.getRangeSelectorButtonNavigation = function () {\n var chart = this.chart;\n var keys = this.keyCodes;\n var component = this;\n return new Accessibility_KeyboardNavigationHandler(chart, {\n keyCodeMap: [\n [\n [keys.left, keys.right, keys.up, keys.down],\n function (keyCode) {\n return component.onButtonNavKbdArrowKey(this, keyCode);\n }\n ],\n [\n [keys.enter, keys.space],\n function () {\n return component.onButtonNavKbdClick(this);\n }\n ]\n ],\n validate: function () {\n return !!(chart.rangeSelector &&\n chart.rangeSelector.buttons &&\n chart.rangeSelector.buttons.length);\n },\n init: function (direction) {\n var rangeSelector = chart.rangeSelector;\n if (rangeSelector && rangeSelector.hasVisibleDropdown) {\n component.initDropdownNav();\n }\n else if (rangeSelector) {\n var lastButtonIx = rangeSelector.buttons.length - 1;\n chart.highlightRangeSelectorButton(direction > 0 ? 0 : lastButtonIx);\n }\n },\n terminate: function () {\n if (component.removeDropdownKeydownHandler) {\n component.removeDropdownKeydownHandler();\n delete component.removeDropdownKeydownHandler;\n }\n }\n });\n };\n /**\n * Get navigation for the range selector input boxes.\n * @private\n * @return {Highcharts.KeyboardNavigationHandler}\n * The module object.\n */\n RangeSelectorComponent.prototype.getRangeSelectorInputNavigation = function () {\n var chart = this.chart;\n var component = this;\n return new Accessibility_KeyboardNavigationHandler(chart, {\n keyCodeMap: [],\n validate: function () {\n return shouldRunInputNavigation(chart);\n },\n init: function (direction) {\n component.onInputNavInit(direction);\n },\n terminate: function () {\n component.onInputNavTerminate();\n }\n });\n };\n /**\n * Get keyboard navigation handlers for this component.\n * @return {Array<Highcharts.KeyboardNavigationHandler>}\n * List of module objects.\n */\n RangeSelectorComponent.prototype.getKeyboardNavigation = function () {\n return [\n this.getRangeSelectorButtonNavigation(),\n this.getRangeSelectorInputNavigation()\n ];\n };\n /**\n * Remove component traces\n */\n RangeSelectorComponent.prototype.destroy = function () {\n if (this.removeDropdownKeydownHandler) {\n this.removeDropdownKeydownHandler();\n }\n if (this.removeInputKeydownHandler) {\n this.removeInputKeydownHandler();\n }\n if (this.announcer) {\n this.announcer.destroy();\n }\n };\n return RangeSelectorComponent;\n}(Accessibility_AccessibilityComponent));\n/* *\n *\n * Class Namespace\n *\n * */\n(function (RangeSelectorComponent) {\n /* *\n *\n * Declarations\n *\n * */\n /* *\n *\n * Functions\n *\n * */\n /**\n * Highlight range selector button by index.\n *\n * @private\n * @function Highcharts.Chart#highlightRangeSelectorButton\n */\n function chartHighlightRangeSelectorButton(ix) {\n var buttons = (this.rangeSelector &&\n this.rangeSelector.buttons ||\n []);\n var curHighlightedIx = this.highlightedRangeSelectorItemIx;\n var curSelectedIx = (this.rangeSelector &&\n this.rangeSelector.selected);\n // Deselect old\n if (typeof curHighlightedIx !== 'undefined' &&\n buttons[curHighlightedIx] &&\n curHighlightedIx !== curSelectedIx) {\n buttons[curHighlightedIx].setState(this.oldRangeSelectorItemState || 0);\n }\n // Select new\n this.highlightedRangeSelectorItemIx = ix;\n if (buttons[ix]) {\n this.setFocusToElement(buttons[ix].box, buttons[ix].element);\n if (ix !== curSelectedIx) {\n this.oldRangeSelectorItemState = buttons[ix].state;\n buttons[ix].setState(1);\n }\n return true;\n }\n return false;\n }\n /**\n * Build compositions\n * @private\n */\n function compose(ChartClass, RangeSelectorClass) {\n var chartProto = ChartClass.prototype;\n if (!chartProto.highlightRangeSelectorButton) {\n chartProto.highlightRangeSelectorButton = (chartHighlightRangeSelectorButton);\n RangeSelectorComponent_addEvent(RangeSelectorClass, 'afterBtnClick', rangeSelectorAfterBtnClick);\n }\n }\n RangeSelectorComponent.compose = compose;\n /**\n * Range selector does not have destroy-setup for class instance events - so\n * we set it on the class and call the component from here.\n * @private\n */\n function rangeSelectorAfterBtnClick() {\n var a11y = this.chart.accessibility;\n if (a11y && a11y.components.rangeSelector) {\n return a11y.components.rangeSelector.onAfterBtnClick();\n }\n }\n})(RangeSelectorComponent || (RangeSelectorComponent = {}));\n/* *\n *\n * Export Default\n *\n * */\n/* harmony default export */ var Components_RangeSelectorComponent = (RangeSelectorComponent);\n\n;// ./code/es5/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Handle forcing series markers.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar ForcedMarkers_composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed;\n\nvar ForcedMarkers_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, ForcedMarkers_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, ForcedMarkers_pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique;\n/* *\n *\n * Composition\n *\n * */\nvar ForcedMarkersComposition;\n(function (ForcedMarkersComposition) {\n /* *\n *\n * Declarations\n *\n * */\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n function compose(SeriesClass) {\n if (ForcedMarkers_pushUnique(ForcedMarkers_composed, 'A11y.FM')) {\n ForcedMarkers_addEvent(SeriesClass, 'afterSetOptions', seriesOnAfterSetOptions);\n ForcedMarkers_addEvent(SeriesClass, 'render', seriesOnRender);\n ForcedMarkers_addEvent(SeriesClass, 'afterRender', seriesOnAfterRender);\n ForcedMarkers_addEvent(SeriesClass, 'renderCanvas', seriesOnRenderCanvas);\n }\n }\n ForcedMarkersComposition.compose = compose;\n /**\n * @private\n */\n function forceZeroOpacityMarkerOptions(options) {\n ForcedMarkers_merge(true, options, {\n marker: {\n enabled: true,\n states: {\n normal: {\n opacity: 0\n }\n }\n }\n });\n }\n /**\n * @private\n */\n function getPointMarkerOpacity(pointOptions) {\n return pointOptions.marker.states &&\n pointOptions.marker.states.normal &&\n pointOptions.marker.states.normal.opacity;\n }\n /**\n * @private\n */\n function handleForcePointMarkers(series) {\n var i = series.points.length;\n while (i--) {\n var point = series.points[i];\n var pointOptions = point.options;\n var hadForcedMarker = point.hasForcedA11yMarker;\n delete point.hasForcedA11yMarker;\n if (pointOptions.marker) {\n var isStillForcedMarker = hadForcedMarker &&\n getPointMarkerOpacity(pointOptions) === 0;\n if (pointOptions.marker.enabled && !isStillForcedMarker) {\n unforcePointMarkerOptions(pointOptions);\n point.hasForcedA11yMarker = false;\n }\n else if (pointOptions.marker.enabled === false) {\n forceZeroOpacityMarkerOptions(pointOptions);\n point.hasForcedA11yMarker = true;\n }\n }\n }\n }\n /**\n * @private\n */\n function hasIndividualPointMarkerOptions(series) {\n return !!(series._hasPointMarkers &&\n series.points &&\n series.points.length);\n }\n /**\n * @private\n */\n function isWithinDescriptionThreshold(series) {\n var a11yOptions = series.chart.options.accessibility;\n return series.points.length <\n a11yOptions.series.pointDescriptionEnabledThreshold ||\n a11yOptions.series\n .pointDescriptionEnabledThreshold === false;\n }\n /**\n * Process marker graphics after render\n * @private\n */\n function seriesOnAfterRender() {\n var series = this;\n // For styled mode the rendered graphic does not reflect the style\n // options, and we need to add/remove classes to achieve the same.\n if (series.chart.styledMode) {\n if (series.markerGroup) {\n series.markerGroup[series.a11yMarkersForced ? 'addClass' : 'removeClass']('highcharts-a11y-markers-hidden');\n }\n // Do we need to handle individual points?\n if (hasIndividualPointMarkerOptions(series)) {\n series.points.forEach(function (point) {\n if (point.graphic) {\n point.graphic[point.hasForcedA11yMarker ?\n 'addClass' : 'removeClass']('highcharts-a11y-marker-hidden');\n point.graphic[point.hasForcedA11yMarker === false ?\n 'addClass' :\n 'removeClass']('highcharts-a11y-marker-visible');\n }\n });\n }\n }\n }\n /**\n * Keep track of options to reset markers to if no longer forced.\n * @private\n */\n function seriesOnAfterSetOptions(e) {\n this.resetA11yMarkerOptions = ForcedMarkers_merge(e.options.marker || {}, this.userOptions.marker || {});\n }\n /**\n * Keep track of forcing markers.\n * @private\n */\n function seriesOnRender() {\n var series = this,\n options = series.options;\n if (shouldForceMarkers(series)) {\n if (options.marker && options.marker.enabled === false) {\n series.a11yMarkersForced = true;\n forceZeroOpacityMarkerOptions(series.options);\n }\n if (hasIndividualPointMarkerOptions(series)) {\n handleForcePointMarkers(series);\n }\n }\n else if (series.a11yMarkersForced) {\n delete series.a11yMarkersForced;\n unforceSeriesMarkerOptions(series);\n delete series.resetA11yMarkerOptions;\n }\n }\n /**\n * @private\n */\n function shouldForceMarkers(series) {\n var chart = series.chart,\n chartA11yEnabled = chart.options.accessibility.enabled,\n seriesA11yEnabled = (series.options.accessibility &&\n series.options.accessibility.enabled) !== false;\n return (chartA11yEnabled &&\n seriesA11yEnabled &&\n isWithinDescriptionThreshold(series));\n }\n /**\n * @private\n */\n function unforcePointMarkerOptions(pointOptions) {\n ForcedMarkers_merge(true, pointOptions.marker, {\n states: {\n normal: {\n opacity: getPointMarkerOpacity(pointOptions) || 1\n }\n }\n });\n }\n /**\n * Reset markers to normal\n * @private\n */\n function unforceSeriesMarkerOptions(series) {\n var resetMarkerOptions = series.resetA11yMarkerOptions;\n if (resetMarkerOptions) {\n var originalOpacity = resetMarkerOptions.states &&\n resetMarkerOptions.states.normal &&\n resetMarkerOptions.states.normal.opacity;\n // Temporarily set the old marker options to enabled in order to\n // trigger destruction of the markers in Series.update.\n if (series.userOptions && series.userOptions.marker) {\n series.userOptions.marker.enabled = true;\n }\n series.update({\n marker: {\n enabled: resetMarkerOptions.enabled,\n states: {\n normal: { opacity: originalOpacity }\n }\n }\n });\n }\n }\n /**\n * Reset markers if series is boosted and had forced markers (#17320).\n * @private\n */\n function seriesOnRenderCanvas() {\n if (this.boosted && this.a11yMarkersForced) {\n ForcedMarkers_merge(true, this.options, {\n marker: {\n enabled: false\n }\n });\n delete this.a11yMarkersForced;\n }\n }\n})(ForcedMarkersComposition || (ForcedMarkersComposition = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var ForcedMarkers = (ForcedMarkersComposition);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Point\"],\"commonjs\":[\"highcharts\",\"Point\"],\"commonjs2\":[\"highcharts\",\"Point\"],\"root\":[\"Highcharts\",\"Point\"]}\nvar highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_ = __webpack_require__(260);\nvar highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_default = /*#__PURE__*/__webpack_require__.n(highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_);\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Series\"],\"commonjs\":[\"highcharts\",\"Series\"],\"commonjs2\":[\"highcharts\",\"Series\"],\"root\":[\"Highcharts\",\"Series\"]}\nvar highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_ = __webpack_require__(820);\nvar highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_default = /*#__PURE__*/__webpack_require__.n(highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_);\n;// ./code/es5/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Handle keyboard navigation for series.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar SeriesKeyboardNavigation_assign = (undefined && undefined.__assign) || function () {\n SeriesKeyboardNavigation_assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return SeriesKeyboardNavigation_assign.apply(this, arguments);\n};\n\n\n\nvar SeriesKeyboardNavigation_seriesTypes = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes;\n\nvar SeriesKeyboardNavigation_doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc;\n\nvar SeriesKeyboardNavigation_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, SeriesKeyboardNavigation_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent;\n\n\n\nvar SeriesKeyboardNavigation_getPointFromXY = Utils_ChartUtilities.getPointFromXY, SeriesKeyboardNavigation_getSeriesFromName = Utils_ChartUtilities.getSeriesFromName, SeriesKeyboardNavigation_scrollAxisToPoint = Utils_ChartUtilities.scrollAxisToPoint;\n/* *\n *\n * Functions\n *\n * */\n/* eslint-disable valid-jsdoc */\n/**\n * Get the index of a point in a series. This is needed when using e.g. data\n * grouping.\n *\n * @private\n * @function getPointIndex\n * @param {Highcharts.AccessibilityPoint} point\n * The point to find index of.\n * @return {number|undefined}\n * The index in the series.points array of the point.\n */\nfunction getPointIndex(point) {\n var index = point.index,\n points = point.series.points;\n var i = points.length;\n if (points[index] !== point) {\n while (i--) {\n if (points[i] === point) {\n return i;\n }\n }\n }\n else {\n return index;\n }\n}\n/**\n * Determine if series navigation should be skipped\n * @private\n */\nfunction isSkipSeries(series) {\n var a11yOptions = series.chart.options.accessibility,\n seriesNavOptions = a11yOptions.keyboardNavigation.seriesNavigation,\n seriesA11yOptions = series.options.accessibility || {},\n seriesKbdNavOptions = seriesA11yOptions.keyboardNavigation;\n return seriesKbdNavOptions && seriesKbdNavOptions.enabled === false ||\n seriesA11yOptions.enabled === false ||\n series.options.enableMouseTracking === false || // #8440\n !series.visible ||\n // Skip all points in a series where pointNavigationEnabledThreshold is\n // reached\n (seriesNavOptions.pointNavigationEnabledThreshold &&\n +seriesNavOptions.pointNavigationEnabledThreshold <=\n series.points.length);\n}\n/**\n * Determine if navigation for a point should be skipped\n * @private\n */\nfunction isSkipPoint(point) {\n var a11yOptions = point.series.chart.options.accessibility;\n var pointA11yDisabled = (point.options.accessibility &&\n point.options.accessibility.enabled === false);\n return point.isNull &&\n a11yOptions.keyboardNavigation.seriesNavigation.skipNullPoints ||\n point.visible === false ||\n point.isInside === false ||\n pointA11yDisabled ||\n isSkipSeries(point.series);\n}\n/**\n * Get the first point that is not a skip point in this series.\n * @private\n */\nfunction getFirstValidPointInSeries(series) {\n var points = series.points || [],\n len = points.length;\n for (var i = 0; i < len; ++i) {\n if (!isSkipPoint(points[i])) {\n return points[i];\n }\n }\n return null;\n}\n/**\n * Get the first point that is not a skip point in this chart.\n * @private\n */\nfunction getFirstValidPointInChart(chart) {\n var series = chart.series || [],\n len = series.length;\n for (var i = 0; i < len; ++i) {\n if (!isSkipSeries(series[i])) {\n var point = getFirstValidPointInSeries(series[i]);\n if (point) {\n return point;\n }\n }\n }\n return null;\n}\n/**\n * @private\n */\nfunction highlightLastValidPointInChart(chart) {\n var numSeries = chart.series.length;\n var i = numSeries,\n res = false;\n while (i--) {\n chart.highlightedPoint = chart.series[i].points[chart.series[i].points.length - 1];\n // Highlight first valid point in the series will also\n // look backwards. It always starts from currently\n // highlighted point.\n res = chart.series[i].highlightNextValidPoint();\n if (res) {\n break;\n }\n }\n return res;\n}\n/**\n * After drilling down/up, we need to set focus to the first point for\n * screen readers and keyboard nav.\n * @private\n */\nfunction updateChartFocusAfterDrilling(chart) {\n var point = getFirstValidPointInChart(chart);\n if (point) {\n point.highlight(false); // Do not visually highlight\n }\n}\n/**\n * Highlight the first point in chart that is not a skip point\n * @private\n */\nfunction highlightFirstValidPointInChart(chart) {\n delete chart.highlightedPoint;\n var point = getFirstValidPointInChart(chart);\n return point ? point.highlight() : false;\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * @private\n * @class\n * @name Highcharts.SeriesKeyboardNavigation\n */\nvar SeriesKeyboardNavigation = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function SeriesKeyboardNavigation(chart, keyCodes) {\n this.keyCodes = keyCodes;\n this.chart = chart;\n }\n /* *\n *\n * Functions\n *\n * */\n /* eslint-disable valid-jsdoc */\n /**\n * Init the keyboard navigation\n */\n SeriesKeyboardNavigation.prototype.init = function () {\n var keyboardNavigation = this,\n chart = this.chart,\n e = this.eventProvider = new Utils_EventProvider();\n e.addEvent((highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_default()), 'destroy', function () {\n return keyboardNavigation.onSeriesDestroy(this);\n });\n e.addEvent(chart, 'afterApplyDrilldown', function () {\n updateChartFocusAfterDrilling(this);\n });\n e.addEvent(chart, 'drilldown', function (e) {\n var point = e.point,\n series = point.series;\n keyboardNavigation.lastDrilledDownPoint = {\n x: point.x,\n y: point.y,\n seriesName: series ? series.name : ''\n };\n });\n e.addEvent(chart, 'drillupall', function () {\n setTimeout(function () {\n keyboardNavigation.onDrillupAll();\n }, 10);\n });\n // Heatmaps et al. alter z-index in setState, causing elements\n // to lose focus\n e.addEvent((highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_default()), 'afterSetState', function () {\n var point = this;\n var pointEl = point.graphic && point.graphic.element;\n var focusedElement = SeriesKeyboardNavigation_doc.activeElement;\n // VO brings focus with it to container, causing series nav to run.\n // If then navigating with virtual cursor, it is possible to leave\n // keyboard nav module state on the data points and still activate\n // proxy buttons.\n var focusedElClassName = (focusedElement && focusedElement.getAttribute('class'));\n var isProxyFocused = focusedElClassName &&\n focusedElClassName.indexOf('highcharts-a11y-proxy-element') > -1;\n if (chart.highlightedPoint === point &&\n focusedElement !== pointEl &&\n !isProxyFocused &&\n pointEl &&\n pointEl.focus) {\n pointEl.focus();\n }\n });\n };\n /**\n * After drillup we want to find the point that was drilled down to and\n * highlight it.\n * @private\n */\n SeriesKeyboardNavigation.prototype.onDrillupAll = function () {\n var last = this.lastDrilledDownPoint,\n chart = this.chart,\n series = last && SeriesKeyboardNavigation_getSeriesFromName(chart,\n last.seriesName);\n var point;\n if (last && series && SeriesKeyboardNavigation_defined(last.x) && SeriesKeyboardNavigation_defined(last.y)) {\n point = SeriesKeyboardNavigation_getPointFromXY(series, last.x, last.y);\n }\n point = point || getFirstValidPointInChart(chart);\n // Container focus can be lost on drillup due to deleted elements.\n if (chart.container) {\n chart.container.focus();\n }\n if (point && point.highlight) {\n point.highlight(false); // Do not visually highlight\n }\n };\n /**\n * @private\n */\n SeriesKeyboardNavigation.prototype.getKeyboardNavigationHandler = function () {\n var keyboardNavigation = this,\n keys = this.keyCodes,\n chart = this.chart,\n inverted = chart.inverted;\n return new Accessibility_KeyboardNavigationHandler(chart, {\n keyCodeMap: [\n [\n inverted ? [keys.up, keys.down] : [keys.left, keys.right],\n function (keyCode) {\n return keyboardNavigation.onKbdSideways(this, keyCode);\n }\n ],\n [\n inverted ? [keys.left, keys.right] : [keys.up, keys.down],\n function (keyCode) {\n return keyboardNavigation.onKbdVertical(this, keyCode);\n }\n ],\n [\n [keys.enter, keys.space],\n function (keyCode, event) {\n var _a;\n var point = chart.highlightedPoint;\n if (point) {\n var _b = this.chart,\n plotLeft = _b.plotLeft,\n plotTop = _b.plotTop,\n _c = point.plotX,\n plotX = _c === void 0 ? 0 : _c,\n _d = point.plotY,\n plotY = _d === void 0 ? 0 : _d;\n event = SeriesKeyboardNavigation_assign(SeriesKeyboardNavigation_assign({}, event), { chartX: plotLeft + plotX, chartY: plotTop + plotY, point: point, target: ((_a = point.graphic) === null || _a === void 0 ? void 0 : _a.element) || event.target });\n SeriesKeyboardNavigation_fireEvent(point.series, 'click', event);\n point.firePointEvent('click', event);\n }\n return this.response.success;\n }\n ],\n [\n [keys.home],\n function () {\n highlightFirstValidPointInChart(chart);\n return this.response.success;\n }\n ],\n [\n [keys.end],\n function () {\n highlightLastValidPointInChart(chart);\n return this.response.success;\n }\n ],\n [\n [keys.pageDown, keys.pageUp],\n function (keyCode) {\n chart.highlightAdjacentSeries(keyCode === keys.pageDown);\n return this.response.success;\n }\n ]\n ],\n init: function () {\n return keyboardNavigation.onHandlerInit(this);\n },\n validate: function () {\n return !!getFirstValidPointInChart(chart);\n },\n terminate: function () {\n return keyboardNavigation.onHandlerTerminate();\n }\n });\n };\n /**\n * @private\n * @param {Highcharts.KeyboardNavigationHandler} handler\n * @param {number} keyCode\n * @return {number}\n * response\n */\n SeriesKeyboardNavigation.prototype.onKbdSideways = function (handler, keyCode) {\n var keys = this.keyCodes,\n isNext = keyCode === keys.right || keyCode === keys.down;\n return this.attemptHighlightAdjacentPoint(handler, isNext);\n };\n /**\n * When keyboard navigation inits.\n * @private\n * @param {Highcharts.KeyboardNavigationHandler} handler The handler object\n * @return {number}\n * response\n */\n SeriesKeyboardNavigation.prototype.onHandlerInit = function (handler) {\n var chart = this.chart,\n kbdNavOptions = chart.options.accessibility.keyboardNavigation;\n if (kbdNavOptions.seriesNavigation.rememberPointFocus &&\n chart.highlightedPoint) {\n chart.highlightedPoint.highlight();\n }\n else {\n highlightFirstValidPointInChart(chart);\n }\n return handler.response.success;\n };\n /**\n * @private\n * @param {Highcharts.KeyboardNavigationHandler} handler\n * @param {number} keyCode\n * @return {number}\n * response\n */\n SeriesKeyboardNavigation.prototype.onKbdVertical = function (handler, keyCode) {\n var chart = this.chart,\n keys = this.keyCodes,\n isNext = keyCode === keys.down || keyCode === keys.right,\n navOptions = chart.options.accessibility.keyboardNavigation\n .seriesNavigation;\n // Handle serialized mode, act like left/right\n if (navOptions.mode && navOptions.mode === 'serialize') {\n return this.attemptHighlightAdjacentPoint(handler, isNext);\n }\n // Normal mode, move between series\n var highlightMethod = (chart.highlightedPoint &&\n chart.highlightedPoint.series.keyboardMoveVertical) ?\n 'highlightAdjacentPointVertical' :\n 'highlightAdjacentSeries';\n chart[highlightMethod](isNext);\n return handler.response.success;\n };\n /**\n * @private\n */\n SeriesKeyboardNavigation.prototype.onHandlerTerminate = function () {\n var chart = this.chart,\n kbdNavOptions = chart.options.accessibility.keyboardNavigation;\n if (chart.tooltip) {\n chart.tooltip.hide(0);\n }\n var hoverSeries = (chart.highlightedPoint && chart.highlightedPoint.series);\n if (hoverSeries && hoverSeries.onMouseOut) {\n hoverSeries.onMouseOut();\n }\n if (chart.highlightedPoint && chart.highlightedPoint.onMouseOut) {\n chart.highlightedPoint.onMouseOut();\n }\n if (!kbdNavOptions.seriesNavigation.rememberPointFocus) {\n delete chart.highlightedPoint;\n }\n };\n /**\n * Function that attempts to highlight next/prev point. Handles wrap around.\n * @private\n */\n SeriesKeyboardNavigation.prototype.attemptHighlightAdjacentPoint = function (handler, directionIsNext) {\n var chart = this.chart,\n wrapAround = chart.options.accessibility.keyboardNavigation\n .wrapAround,\n highlightSuccessful = chart.highlightAdjacentPoint(directionIsNext);\n if (!highlightSuccessful) {\n if (wrapAround && (directionIsNext ?\n highlightFirstValidPointInChart(chart) :\n highlightLastValidPointInChart(chart))) {\n return handler.response.success;\n }\n return handler.response[directionIsNext ? 'next' : 'prev'];\n }\n return handler.response.success;\n };\n /**\n * @private\n */\n SeriesKeyboardNavigation.prototype.onSeriesDestroy = function (series) {\n var chart = this.chart,\n currentHighlightedPointDestroyed = chart.highlightedPoint &&\n chart.highlightedPoint.series === series;\n if (currentHighlightedPointDestroyed) {\n delete chart.highlightedPoint;\n if (chart.focusElement) {\n chart.focusElement.removeFocusBorder();\n }\n }\n };\n /**\n * @private\n */\n SeriesKeyboardNavigation.prototype.destroy = function () {\n this.eventProvider.removeAddedEvents();\n };\n return SeriesKeyboardNavigation;\n}());\n/* *\n *\n * Class Namespace\n *\n * */\n(function (SeriesKeyboardNavigation) {\n /* *\n *\n * Declarations\n *\n * */\n /* *\n *\n * Functions\n *\n * */\n /**\n * Function to highlight next/previous point in chart.\n *\n * @private\n * @function Highcharts.Chart#highlightAdjacentPoint\n *\n * @param {boolean} next\n * Flag for the direction.\n *\n * @return {Highcharts.Point|boolean}\n * Returns highlighted point on success, false on failure (no adjacent point\n * to highlight in chosen direction).\n */\n function chartHighlightAdjacentPoint(next) {\n var chart = this,\n series = chart.series,\n curPoint = chart.highlightedPoint,\n curPointIndex = curPoint && getPointIndex(curPoint) || 0,\n curPoints = curPoint && curPoint.series.points || [],\n lastSeries = chart.series && chart.series[chart.series.length - 1],\n lastPoint = lastSeries &&\n lastSeries.points &&\n lastSeries.points[lastSeries.points.length - 1];\n var newSeries,\n newPoint;\n // If no points, return false\n if (!series[0] || !series[0].points) {\n return false;\n }\n if (!curPoint) {\n // No point is highlighted yet. Try first/last point depending on\n // move direction\n newPoint = next ? series[0].points[0] : lastPoint;\n }\n else {\n // We have a highlighted point. Grab next/prev point & series.\n newSeries = series[curPoint.series.index + (next ? 1 : -1)];\n newPoint = curPoints[curPointIndex + (next ? 1 : -1)];\n if (!newPoint && newSeries) {\n // Done with this series, try next one\n newPoint = newSeries.points[next ? 0 : newSeries.points.length - 1];\n }\n // If there is no adjacent point, we return false\n if (!newPoint) {\n return false;\n }\n }\n // Recursively skip points\n if (isSkipPoint(newPoint)) {\n // If we skip this whole series, move to the end of the series\n // before we recurse, just to optimize\n newSeries = newPoint.series;\n if (isSkipSeries(newSeries)) {\n chart.highlightedPoint = next ?\n newSeries.points[newSeries.points.length - 1] :\n newSeries.points[0];\n }\n else {\n // Otherwise, just move one point\n chart.highlightedPoint = newPoint;\n }\n // Retry\n return chart.highlightAdjacentPoint(next);\n }\n // There is an adjacent point, highlight it\n return newPoint.highlight();\n }\n /**\n * Highlight the closest point vertically.\n * @private\n */\n function chartHighlightAdjacentPointVertical(down) {\n var curPoint = this.highlightedPoint;\n var minDistance = Infinity,\n bestPoint;\n if (!SeriesKeyboardNavigation_defined(curPoint.plotX) || !SeriesKeyboardNavigation_defined(curPoint.plotY)) {\n return false;\n }\n this.series.forEach(function (series) {\n if (isSkipSeries(series)) {\n return;\n }\n series.points.forEach(function (point) {\n if (!SeriesKeyboardNavigation_defined(point.plotY) || !SeriesKeyboardNavigation_defined(point.plotX) ||\n point === curPoint) {\n return;\n }\n var yDistance = point.plotY - curPoint.plotY;\n var width = Math.abs(point.plotX - curPoint.plotX),\n distance = Math.abs(yDistance) * Math.abs(yDistance) +\n width * width * 4; // Weigh horizontal distance highly\n // Reverse distance number if axis is reversed\n if (series.yAxis && series.yAxis.reversed) {\n yDistance *= -1;\n }\n if (yDistance <= 0 && down || yDistance >= 0 && !down ||\n distance < 5 || // Points in same spot => infinite loop\n isSkipPoint(point)) {\n return;\n }\n if (distance < minDistance) {\n minDistance = distance;\n bestPoint = point;\n }\n });\n });\n return bestPoint ? bestPoint.highlight() : false;\n }\n /**\n * Highlight next/previous series in chart. Returns false if no adjacent\n * series in the direction, otherwise returns new highlighted point.\n * @private\n */\n function chartHighlightAdjacentSeries(down) {\n var chart = this,\n curPoint = chart.highlightedPoint,\n lastSeries = chart.series && chart.series[chart.series.length - 1],\n lastPoint = lastSeries && lastSeries.points &&\n lastSeries.points[lastSeries.points.length - 1];\n var newSeries,\n newPoint,\n adjacentNewPoint;\n // If no point is highlighted, highlight the first/last point\n if (!chart.highlightedPoint) {\n newSeries = down ? (chart.series && chart.series[0]) : lastSeries;\n newPoint = down ?\n (newSeries && newSeries.points && newSeries.points[0]) :\n lastPoint;\n return newPoint ? newPoint.highlight() : false;\n }\n newSeries = (chart.series[curPoint.series.index + (down ? -1 : 1)]);\n if (!newSeries) {\n return false;\n }\n // We have a new series in this direction, find the right point\n // Weigh xDistance as counting much higher than Y distance\n newPoint = getClosestPoint(curPoint, newSeries, 4);\n if (!newPoint) {\n return false;\n }\n // New series and point exists, but we might want to skip it\n if (isSkipSeries(newSeries)) {\n // Skip the series\n newPoint.highlight();\n // Try recurse\n adjacentNewPoint = chart.highlightAdjacentSeries(down);\n if (!adjacentNewPoint) {\n // Recurse failed\n curPoint.highlight();\n return false;\n }\n // Recurse succeeded\n return adjacentNewPoint;\n }\n // Highlight the new point or any first valid point back or forwards\n // from it\n newPoint.highlight();\n return newPoint.series.highlightNextValidPoint();\n }\n /**\n * @private\n */\n function compose(ChartClass, PointClass, SeriesClass) {\n var chartProto = ChartClass.prototype,\n pointProto = PointClass.prototype,\n seriesProto = SeriesClass.prototype;\n if (!chartProto.highlightAdjacentPoint) {\n chartProto.highlightAdjacentPoint = chartHighlightAdjacentPoint;\n chartProto.highlightAdjacentPointVertical = (chartHighlightAdjacentPointVertical);\n chartProto.highlightAdjacentSeries = chartHighlightAdjacentSeries;\n pointProto.highlight = pointHighlight;\n /**\n * Set for which series types it makes sense to move to the closest\n * point with up/down arrows, and which series types should just\n * move to next series.\n * @private\n */\n seriesProto.keyboardMoveVertical = true;\n [\n 'column',\n 'gantt',\n 'pie'\n ].forEach(function (type) {\n if (SeriesKeyboardNavigation_seriesTypes[type]) {\n SeriesKeyboardNavigation_seriesTypes[type].prototype.keyboardMoveVertical = false;\n }\n });\n seriesProto.highlightNextValidPoint = (seriesHighlightNextValidPoint);\n }\n }\n SeriesKeyboardNavigation.compose = compose;\n /**\n * Get the point in a series that is closest (in pixel distance) to a\n * reference point. Optionally supply weight factors for x and y directions.\n * @private\n */\n function getClosestPoint(point, series, xWeight, yWeight) {\n var minDistance = Infinity,\n dPoint,\n minIx,\n distance,\n i = series.points.length;\n var hasUndefinedPosition = function (point) { return (!(SeriesKeyboardNavigation_defined(point.plotX) && SeriesKeyboardNavigation_defined(point.plotY))); };\n if (hasUndefinedPosition(point)) {\n return;\n }\n while (i--) {\n dPoint = series.points[i];\n if (hasUndefinedPosition(dPoint)) {\n continue;\n }\n distance = (point.plotX - dPoint.plotX) *\n (point.plotX - dPoint.plotX) *\n (xWeight || 1) +\n (point.plotY - dPoint.plotY) *\n (point.plotY - dPoint.plotY) *\n (yWeight || 1);\n if (distance < minDistance) {\n minDistance = distance;\n minIx = i;\n }\n }\n return SeriesKeyboardNavigation_defined(minIx) ? series.points[minIx] : void 0;\n }\n /**\n * Highlights a point (show tooltip, display hover state, focus element).\n *\n * @private\n * @function Highcharts.Point#highlight\n *\n * @return {Highcharts.Point}\n * This highlighted point.\n */\n function pointHighlight(highlightVisually) {\n var _a,\n _b;\n if (highlightVisually === void 0) { highlightVisually = true; }\n var chart = this.series.chart,\n tooltipElement = (_b = (_a = chart.tooltip) === null || _a === void 0 ? void 0 : _a.label) === null || _b === void 0 ? void 0 : _b.element;\n if (!this.isNull && highlightVisually) {\n this.onMouseOver(); // Show the hover marker and tooltip\n }\n else {\n if (chart.tooltip) {\n chart.tooltip.hide(0);\n }\n // Do not call blur on the element, as it messes up the focus of the\n // div element of the chart\n }\n SeriesKeyboardNavigation_scrollAxisToPoint(this);\n // We focus only after calling onMouseOver because the state change can\n // change z-index and mess up the element.\n if (this.graphic) {\n chart.setFocusToElement(this.graphic);\n if (!highlightVisually && chart.focusElement) {\n chart.focusElement.removeFocusBorder();\n }\n }\n chart.highlightedPoint = this;\n // Get position of the tooltip.\n var tooltipTop = tooltipElement === null || tooltipElement === void 0 ? void 0 : tooltipElement.getBoundingClientRect().top;\n if (tooltipElement && tooltipTop && tooltipTop < 0) {\n // Calculate scroll position.\n var scrollTop = window.scrollY,\n newScrollTop = scrollTop + tooltipTop;\n // Scroll window to new position.\n window.scrollTo({\n behavior: 'smooth',\n top: newScrollTop\n });\n }\n return this;\n }\n /**\n * Highlight first valid point in a series. Returns the point if\n * successfully highlighted, otherwise false. If there is a highlighted\n * point in the series, use that as starting point.\n *\n * @private\n * @function Highcharts.Series#highlightNextValidPoint\n */\n function seriesHighlightNextValidPoint() {\n var curPoint = this.chart.highlightedPoint,\n start = (curPoint && curPoint.series) === this ?\n getPointIndex(curPoint) :\n 0,\n points = this.points,\n len = points.length;\n if (points && len) {\n for (var i = start; i < len; ++i) {\n if (!isSkipPoint(points[i])) {\n return points[i].highlight();\n }\n }\n for (var j = start; j >= 0; --j) {\n if (!isSkipPoint(points[j])) {\n return points[j].highlight();\n }\n }\n }\n return false;\n }\n})(SeriesKeyboardNavigation || (SeriesKeyboardNavigation = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var SeriesComponent_SeriesKeyboardNavigation = (SeriesKeyboardNavigation);\n\n;// ./code/es5/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Accessibility component for series and points.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar SeriesComponent_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar SeriesComponent_hideSeriesFromAT = Utils_ChartUtilities.hideSeriesFromAT;\n\n\n\nvar SeriesComponent_describeSeries = SeriesComponent_SeriesDescriber.describeSeries;\n\n/* *\n *\n * Class\n *\n * */\n/**\n * The SeriesComponent class\n *\n * @private\n * @class\n * @name Highcharts.SeriesComponent\n */\nvar SeriesComponent = /** @class */ (function (_super) {\n SeriesComponent_extends(SeriesComponent, _super);\n function SeriesComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Static Functions\n *\n * */\n /* eslint-disable valid-jsdoc */\n /**\n * @private\n */\n SeriesComponent.compose = function (ChartClass, PointClass, SeriesClass) {\n SeriesComponent_NewDataAnnouncer.compose(SeriesClass);\n ForcedMarkers.compose(SeriesClass);\n SeriesComponent_SeriesKeyboardNavigation.compose(ChartClass, PointClass, SeriesClass);\n };\n /* *\n *\n * Functions\n *\n * */\n /**\n * Init the component.\n */\n SeriesComponent.prototype.init = function () {\n this.newDataAnnouncer = new SeriesComponent_NewDataAnnouncer(this.chart);\n this.newDataAnnouncer.init();\n this.keyboardNavigation = new SeriesComponent_SeriesKeyboardNavigation(this.chart, this.keyCodes);\n this.keyboardNavigation.init();\n this.hideTooltipFromATWhenShown();\n this.hideSeriesLabelsFromATWhenShown();\n };\n /**\n * @private\n */\n SeriesComponent.prototype.hideTooltipFromATWhenShown = function () {\n var component = this;\n if (this.chart.tooltip) {\n this.addEvent(this.chart.tooltip.constructor, 'refresh', function () {\n if (this.chart === component.chart &&\n this.label &&\n this.label.element) {\n this.label.element.setAttribute('aria-hidden', true);\n }\n });\n }\n };\n /**\n * @private\n */\n SeriesComponent.prototype.hideSeriesLabelsFromATWhenShown = function () {\n this.addEvent(this.chart, 'afterDrawSeriesLabels', function () {\n this.series.forEach(function (series) {\n if (series.labelBySeries) {\n series.labelBySeries.attr('aria-hidden', true);\n }\n });\n });\n };\n /**\n * Called on chart render. It is necessary to do this for render in case\n * markers change on zoom/pixel density.\n */\n SeriesComponent.prototype.onChartRender = function () {\n var chart = this.chart;\n chart.series.forEach(function (series) {\n var shouldDescribeSeries = (series.options.accessibility &&\n series.options.accessibility.enabled) !== false &&\n series.visible && series.getPointsCollection().length !== 0;\n if (shouldDescribeSeries) {\n SeriesComponent_describeSeries(series);\n }\n else {\n SeriesComponent_hideSeriesFromAT(series);\n }\n });\n };\n /**\n * Get keyboard navigation handler for this component.\n * @private\n */\n SeriesComponent.prototype.getKeyboardNavigation = function () {\n return this.keyboardNavigation.getKeyboardNavigationHandler();\n };\n /**\n * Remove traces\n * @private\n */\n SeriesComponent.prototype.destroy = function () {\n this.newDataAnnouncer.destroy();\n this.keyboardNavigation.destroy();\n };\n return SeriesComponent;\n}(Accessibility_AccessibilityComponent));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var SeriesComponent_SeriesComponent = (SeriesComponent);\n\n;// ./code/es5/es-modules/Accessibility/Components/ZoomComponent.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Accessibility component for chart zoom.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar ZoomComponent_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar ZoomComponent_unhideChartElementFromAT = Utils_ChartUtilities.unhideChartElementFromAT;\n\nvar ZoomComponent_getFakeMouseEvent = Utils_HTMLUtilities.getFakeMouseEvent;\n\n\nvar ZoomComponent_attr = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).attr, ZoomComponent_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction chartHasMapZoom(chart) {\n return !!((chart.mapView) &&\n chart.mapNavigation &&\n chart.mapNavigation.navButtons.length);\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * The ZoomComponent class\n *\n * @private\n * @class\n * @name Highcharts.ZoomComponent\n */\nvar ZoomComponent = /** @class */ (function (_super) {\n ZoomComponent_extends(ZoomComponent, _super);\n function ZoomComponent() {\n /* *\n *\n * Properties\n *\n * */\n var _this = _super !== null && _super.apply(this,\n arguments) || this;\n _this.focusedMapNavButtonIx = -1;\n return _this;\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Initialize the component\n */\n ZoomComponent.prototype.init = function () {\n var component = this,\n chart = this.chart;\n this.proxyProvider.addGroup('zoom', 'div');\n [\n 'afterShowResetZoom', 'afterApplyDrilldown', 'drillupall'\n ].forEach(function (eventType) {\n component.addEvent(chart, eventType, function () {\n component.updateProxyOverlays();\n });\n });\n };\n /**\n * Called when chart is updated\n */\n ZoomComponent.prototype.onChartUpdate = function () {\n var chart = this.chart,\n component = this;\n // Make map zoom buttons accessible\n if (chart.mapNavigation) {\n chart.mapNavigation.navButtons.forEach(function (button, i) {\n ZoomComponent_unhideChartElementFromAT(chart, button.element);\n component.setMapNavButtonAttrs(button.element, 'accessibility.zoom.mapZoom' + (i ? 'Out' : 'In'));\n });\n }\n };\n /**\n * @private\n * @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} button\n * @param {string} labelFormatKey\n */\n ZoomComponent.prototype.setMapNavButtonAttrs = function (button, labelFormatKey) {\n var chart = this.chart,\n label = chart.langFormat(labelFormatKey, { chart: chart });\n ZoomComponent_attr(button, {\n tabindex: -1,\n role: 'button',\n 'aria-label': label\n });\n };\n /**\n * Update the proxy overlays on every new render to ensure positions are\n * correct.\n */\n ZoomComponent.prototype.onChartRender = function () {\n this.updateProxyOverlays();\n };\n /**\n * Update proxy overlays, recreating the buttons.\n */\n ZoomComponent.prototype.updateProxyOverlays = function () {\n var chart = this.chart;\n // Always start with a clean slate\n this.proxyProvider.clearGroup('zoom');\n if (chart.resetZoomButton) {\n this.createZoomProxyButton(chart.resetZoomButton, 'resetZoomProxyButton', chart.langFormat('accessibility.zoom.resetZoomButton', { chart: chart }));\n }\n if (chart.drillUpButton &&\n chart.breadcrumbs &&\n chart.breadcrumbs.list) {\n var lastBreadcrumb = chart.breadcrumbs.list[chart.breadcrumbs.list.length - 1];\n this.createZoomProxyButton(chart.drillUpButton, 'drillUpProxyButton', chart.langFormat('accessibility.drillUpButton', {\n chart: chart,\n buttonText: chart.breadcrumbs.getButtonText(lastBreadcrumb)\n }));\n }\n };\n /**\n * @private\n * @param {Highcharts.SVGElement} buttonEl\n * @param {string} buttonProp\n * @param {string} label\n */\n ZoomComponent.prototype.createZoomProxyButton = function (buttonEl, buttonProp, label) {\n this[buttonProp] = this.proxyProvider.addProxyElement('zoom', {\n click: buttonEl\n }, 'button', {\n 'aria-label': label,\n tabindex: -1\n });\n };\n /**\n * Get keyboard navigation handler for map zoom.\n * @private\n * @return {Highcharts.KeyboardNavigationHandler} The module object\n */\n ZoomComponent.prototype.getMapZoomNavigation = function () {\n var keys = this.keyCodes,\n chart = this.chart,\n component = this;\n return new Accessibility_KeyboardNavigationHandler(chart, {\n keyCodeMap: [\n [\n [keys.up, keys.down, keys.left, keys.right],\n function (keyCode) {\n return component.onMapKbdArrow(this, keyCode);\n }\n ],\n [\n [keys.tab],\n function (_keyCode, e) {\n return component.onMapKbdTab(this, e);\n }\n ],\n [\n [keys.space, keys.enter],\n function () {\n return component.onMapKbdClick(this);\n }\n ]\n ],\n validate: function () {\n return chartHasMapZoom(chart);\n },\n init: function (direction) {\n return component.onMapNavInit(direction);\n }\n });\n };\n /**\n * Arrow key panning for maps.\n * @private\n * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler The handler context.\n * @param {number} keyCode Key pressed.\n * @return {number} Response code\n */\n ZoomComponent.prototype.onMapKbdArrow = function (keyboardNavigationHandler, keyCode) {\n var chart = this.chart,\n keys = this.keyCodes,\n target = chart.container,\n isY = keyCode === keys.up || keyCode === keys.down,\n stepDirection = (keyCode === keys.left || keyCode === keys.up) ?\n 1 : -1,\n granularity = 10,\n diff = (isY ? chart.plotHeight : chart.plotWidth) /\n granularity * stepDirection, \n // Randomize since same mousedown coords twice is ignored in MapView\n r = Math.random() * 10,\n startPos = {\n x: target.offsetLeft + chart.plotLeft + chart.plotWidth / 2 + r,\n y: target.offsetTop + chart.plotTop + chart.plotHeight / 2 + r\n },\n endPos = isY ? { x: startPos.x,\n y: startPos.y + diff } :\n { x: startPos.x + diff,\n y: startPos.y };\n [\n ZoomComponent_getFakeMouseEvent('mousedown', startPos),\n ZoomComponent_getFakeMouseEvent('mousemove', endPos),\n ZoomComponent_getFakeMouseEvent('mouseup', endPos)\n ].forEach(function (e) { return target.dispatchEvent(e); });\n return keyboardNavigationHandler.response.success;\n };\n /**\n * @private\n * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler\n * @param {global.KeyboardEvent} event\n * @return {number} Response code\n */\n ZoomComponent.prototype.onMapKbdTab = function (keyboardNavigationHandler, event) {\n var chart = this.chart;\n var response = keyboardNavigationHandler.response;\n var isBackwards = event.shiftKey;\n var isMoveOutOfRange = isBackwards && !this.focusedMapNavButtonIx ||\n !isBackwards && this.focusedMapNavButtonIx;\n // Deselect old\n chart.mapNavigation.navButtons[this.focusedMapNavButtonIx].setState(0);\n if (isMoveOutOfRange) {\n if (chart.mapView) {\n chart.mapView.zoomBy(); // Reset zoom\n }\n return response[isBackwards ? 'prev' : 'next'];\n }\n // Select other button\n this.focusedMapNavButtonIx += isBackwards ? -1 : 1;\n var button = chart.mapNavigation.navButtons[this.focusedMapNavButtonIx];\n chart.setFocusToElement(button.box, button.element);\n button.setState(2);\n return response.success;\n };\n /**\n * Called on map button click.\n * @private\n * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler The handler context object\n * @return {number} Response code\n */\n ZoomComponent.prototype.onMapKbdClick = function (keyboardNavigationHandler) {\n var el = this.chart.mapNavigation.navButtons[this.focusedMapNavButtonIx].element;\n this.fakeClickEvent(el);\n return keyboardNavigationHandler.response.success;\n };\n /**\n * @private\n * @param {number} direction\n */\n ZoomComponent.prototype.onMapNavInit = function (direction) {\n var chart = this.chart,\n zoomIn = chart.mapNavigation.navButtons[0],\n zoomOut = chart.mapNavigation.navButtons[1],\n initialButton = direction > 0 ? zoomIn : zoomOut;\n chart.setFocusToElement(initialButton.box, initialButton.element);\n initialButton.setState(2);\n this.focusedMapNavButtonIx = direction > 0 ? 0 : 1;\n };\n /**\n * Get keyboard navigation handler for a simple chart button. Provide the\n * button reference for the chart, and a function to call on click.\n *\n * @private\n * @param {string} buttonProp The property on chart referencing the button.\n * @return {Highcharts.KeyboardNavigationHandler} The module object\n */\n ZoomComponent.prototype.simpleButtonNavigation = function (buttonProp, proxyProp, onClick) {\n var keys = this.keyCodes,\n component = this,\n chart = this.chart;\n return new Accessibility_KeyboardNavigationHandler(chart, {\n keyCodeMap: [\n [\n [keys.tab, keys.up, keys.down, keys.left, keys.right],\n function (keyCode, e) {\n var isBackwards = (keyCode === keys.tab && e.shiftKey ||\n keyCode === keys.left ||\n keyCode === keys.up);\n // Arrow/tab => just move\n return this.response[isBackwards ? 'prev' : 'next'];\n }\n ],\n [\n [keys.space, keys.enter],\n function () {\n var res = onClick(this,\n chart);\n return ZoomComponent_pick(res, this.response.success);\n }\n ]\n ],\n validate: function () {\n var hasButton = (chart[buttonProp] &&\n chart[buttonProp].box &&\n component[proxyProp].innerElement);\n return hasButton;\n },\n init: function () {\n chart.setFocusToElement(chart[buttonProp].box, component[proxyProp].innerElement);\n }\n });\n };\n /**\n * Get keyboard navigation handlers for this component.\n * @return {Array<Highcharts.KeyboardNavigationHandler>}\n * List of module objects\n */\n ZoomComponent.prototype.getKeyboardNavigation = function () {\n return [\n this.simpleButtonNavigation('resetZoomButton', 'resetZoomProxyButton', function (_handler, chart) {\n chart.zoomOut();\n }),\n this.simpleButtonNavigation('drillUpButton', 'drillUpProxyButton', function (handler, chart) {\n chart.drillUp();\n return handler.response.prev;\n }),\n this.getMapZoomNavigation()\n ];\n };\n return ZoomComponent;\n}(Accessibility_AccessibilityComponent));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Components_ZoomComponent = (ZoomComponent);\n\n;// ./code/es5/es-modules/Accessibility/HighContrastMode.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Handling for Windows High Contrast Mode.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar HighContrastMode_doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc, isMS = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isMS, HighContrastMode_win = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).win;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Detect WHCM in the browser.\n *\n * @function Highcharts#isHighContrastModeActive\n * @private\n * @return {boolean} Returns true if the browser is in High Contrast mode.\n */\nfunction isHighContrastModeActive() {\n // Use media query on Edge, but not on IE\n var isEdge = /(Edg)/.test(HighContrastMode_win.navigator.userAgent);\n if (HighContrastMode_win.matchMedia && isEdge) {\n return HighContrastMode_win.matchMedia('(-ms-high-contrast: active)').matches;\n }\n // Test BG image for IE\n if (isMS && HighContrastMode_win.getComputedStyle) {\n var testDiv = HighContrastMode_doc.createElement('div');\n var imageSrc = 'data:image/gif;base64,' +\n 'R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n testDiv.style.backgroundImage = \"url(\".concat(imageSrc, \")\"); // #13071\n HighContrastMode_doc.body.appendChild(testDiv);\n var bi = (testDiv.currentStyle ||\n HighContrastMode_win.getComputedStyle(testDiv)).backgroundImage;\n HighContrastMode_doc.body.removeChild(testDiv);\n return bi === 'none';\n }\n // Other browsers use the forced-colors standard\n return HighContrastMode_win.matchMedia && HighContrastMode_win.matchMedia('(forced-colors: active)').matches;\n}\n/**\n * Force high contrast theme for the chart. The default theme is defined in\n * a separate file.\n *\n * @function Highcharts#setHighContrastTheme\n * @private\n * @param {Highcharts.AccessibilityChart} chart The chart to set the theme of.\n * @return {void}\n */\nfunction setHighContrastTheme(chart) {\n // We might want to add additional functionality here in the future for\n // storing the old state so that we can reset the theme if HC mode is\n // disabled. For now, the user will have to reload the page.\n var _a;\n chart.highContrastModeActive = true;\n // Apply theme to chart\n var theme = (chart.options.accessibility.highContrastTheme);\n chart.update(theme, false);\n var hasCustomColors = ((_a = theme.colors) === null || _a === void 0 ? void 0 : _a.length) > 1;\n // Force series colors (plotOptions is not enough)\n chart.series.forEach(function (s) {\n var plotOpts = theme.plotOptions[s.type] || {};\n var fillColor = hasCustomColors && s.colorIndex !== void 0 ?\n theme.colors[s.colorIndex] :\n plotOpts.color || 'window';\n var seriesOptions = {\n color: plotOpts.color || 'windowText',\n colors: hasCustomColors ?\n theme.colors : [plotOpts.color || 'windowText'],\n borderColor: plotOpts.borderColor || 'window',\n fillColor: fillColor\n };\n s.update(seriesOptions, false);\n if (s.points) {\n // Force point colors if existing\n s.points.forEach(function (p) {\n if (p.options && p.options.color) {\n p.update({\n color: plotOpts.color || 'windowText',\n borderColor: plotOpts.borderColor || 'window'\n }, false);\n }\n });\n }\n });\n // The redraw for each series and after is required for 3D pie\n // (workaround)\n chart.redraw();\n}\n/* *\n *\n * Default Export\n *\n * */\nvar whcm = {\n isHighContrastModeActive: isHighContrastModeActive,\n setHighContrastTheme: setHighContrastTheme\n};\n/* harmony default export */ var HighContrastMode = (whcm);\n\n;// ./code/es5/es-modules/Accessibility/HighContrastTheme.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Default theme for Windows High Contrast Mode.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar theme = {\n chart: {\n backgroundColor: 'window'\n },\n title: {\n style: {\n color: 'windowText'\n }\n },\n subtitle: {\n style: {\n color: 'windowText'\n }\n },\n colorAxis: {\n minColor: 'windowText',\n maxColor: 'windowText',\n stops: [],\n dataClasses: []\n },\n colors: ['windowText'],\n xAxis: {\n gridLineColor: 'windowText',\n labels: {\n style: {\n color: 'windowText'\n }\n },\n lineColor: 'windowText',\n minorGridLineColor: 'windowText',\n tickColor: 'windowText',\n title: {\n style: {\n color: 'windowText'\n }\n }\n },\n yAxis: {\n gridLineColor: 'windowText',\n labels: {\n style: {\n color: 'windowText'\n }\n },\n lineColor: 'windowText',\n minorGridLineColor: 'windowText',\n tickColor: 'windowText',\n title: {\n style: {\n color: 'windowText'\n }\n }\n },\n tooltip: {\n backgroundColor: 'window',\n borderColor: 'windowText',\n style: {\n color: 'windowText'\n }\n },\n plotOptions: {\n series: {\n lineColor: 'windowText',\n fillColor: 'window',\n borderColor: 'windowText',\n edgeColor: 'windowText',\n borderWidth: 1,\n dataLabels: {\n connectorColor: 'windowText',\n color: 'windowText',\n style: {\n color: 'windowText',\n textOutline: 'none'\n }\n },\n marker: {\n lineColor: 'windowText',\n fillColor: 'windowText'\n }\n },\n pie: {\n color: 'window',\n colors: ['window'],\n borderColor: 'windowText',\n borderWidth: 1\n },\n boxplot: {\n fillColor: 'window'\n },\n candlestick: {\n lineColor: 'windowText',\n fillColor: 'window'\n },\n errorbar: {\n fillColor: 'window'\n }\n },\n legend: {\n backgroundColor: 'window',\n itemStyle: {\n color: 'windowText'\n },\n itemHoverStyle: {\n color: 'windowText'\n },\n itemHiddenStyle: {\n color: '#555'\n },\n title: {\n style: {\n color: 'windowText'\n }\n }\n },\n credits: {\n style: {\n color: 'windowText'\n }\n },\n drilldown: {\n activeAxisLabelStyle: {\n color: 'windowText'\n },\n activeDataLabelStyle: {\n color: 'windowText'\n }\n },\n navigation: {\n buttonOptions: {\n symbolStroke: 'windowText',\n theme: {\n fill: 'window'\n }\n }\n },\n rangeSelector: {\n buttonTheme: {\n fill: 'window',\n stroke: 'windowText',\n style: {\n color: 'windowText'\n },\n states: {\n hover: {\n fill: 'window',\n stroke: 'windowText',\n style: {\n color: 'windowText'\n }\n },\n select: {\n fill: '#444',\n stroke: 'windowText',\n style: {\n color: 'windowText'\n }\n }\n }\n },\n inputBoxBorderColor: 'windowText',\n inputStyle: {\n backgroundColor: 'window',\n color: 'windowText'\n },\n labelStyle: {\n color: 'windowText'\n }\n },\n navigator: {\n handles: {\n backgroundColor: 'window',\n borderColor: 'windowText'\n },\n outlineColor: 'windowText',\n maskFill: 'transparent',\n series: {\n color: 'windowText',\n lineColor: 'windowText'\n },\n xAxis: {\n gridLineColor: 'windowText'\n }\n },\n scrollbar: {\n barBackgroundColor: '#444',\n barBorderColor: 'windowText',\n buttonArrowColor: 'windowText',\n buttonBackgroundColor: 'window',\n buttonBorderColor: 'windowText',\n rifleColor: 'windowText',\n trackBackgroundColor: 'window',\n trackBorderColor: 'windowText'\n }\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var HighContrastTheme = (theme);\n\n;// ./code/es5/es-modules/Accessibility/Options/A11yDefaults.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Default options for accessibility.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n * API Options\n *\n * */\n/**\n * Formatter callback for the accessibility announcement.\n *\n * @callback Highcharts.AccessibilityAnnouncementFormatter\n *\n * @param {Array<Highcharts.Series>} updatedSeries\n * Array of all series that received updates. If an announcement is already\n * queued, the series that received updates for that announcement are also\n * included in this array.\n *\n * @param {Highcharts.Series} [addedSeries]\n * This is provided if {@link Highcharts.Chart#addSeries} was called, and there\n * is a new series. In that case, this argument is a reference to the new\n * series.\n *\n * @param {Highcharts.Point} [addedPoint]\n * This is provided if {@link Highcharts.Series#addPoint} was called, and there\n * is a new point. In that case, this argument is a reference to the new point.\n *\n * @return {false|string}\n * The function should return a string with the text to announce to the user.\n * Return empty string to not announce anything. Return `false` to use the\n * default announcement format.\n */\n/**\n * @interface Highcharts.PointAccessibilityOptionsObject\n */ /**\n* Provide a description of the data point, announced to screen readers.\n* @name Highcharts.PointAccessibilityOptionsObject#description\n* @type {string|undefined}\n* @requires modules/accessibility\n* @since 7.1.0\n*/ /**\n* Enable or disable exposing the point to assistive technology\n* @name Highcharts.PointAccessibilityOptionsObject#enabled\n* @type {boolean|undefined}\n* @requires modules/accessibility\n* @since 9.0.1\n*/\n/* *\n * @interface Highcharts.PointOptionsObject in parts/Point.ts\n */ /**\n* @name Highcharts.PointOptionsObject#accessibility\n* @type {Highcharts.PointAccessibilityOptionsObject|undefined}\n* @requires modules/accessibility\n* @since 7.1.0\n*/\n/**\n * @callback Highcharts.ScreenReaderClickCallbackFunction\n *\n * @param {global.MouseEvent} evt\n * Mouse click event\n *\n * @return {void}\n */\n/**\n * Creates a formatted string for the screen reader module.\n *\n * @callback Highcharts.ScreenReaderFormatterCallbackFunction<T>\n *\n * @param {T} context\n * Context to format\n *\n * @return {string}\n * Formatted string for the screen reader module.\n */\nvar Options = {\n /**\n * Options for configuring accessibility for the chart. Requires the\n * [accessibility module](https://code.highcharts.com/modules/accessibility.js)\n * to be loaded. For a description of the module and information\n * on its features, see\n * [Highcharts Accessibility](https://www.highcharts.com/docs/accessibility/accessibility-module).\n *\n * @since 5.0.0\n * @requires modules/accessibility\n * @optionparent accessibility\n */\n accessibility: {\n /**\n * Enable accessibility functionality for the chart. For more\n * information on how to include these features, and why this is\n * recommended, see [Highcharts Accessibility](https://www.highcharts.com/docs/accessibility/accessibility-module).\n *\n * Highcharts will by default emit a warning to the console if\n * the [accessibility module](https://code.highcharts.com/modules/accessibility.js)\n * is not loaded. Setting this option to `false` will override\n * and silence the warning.\n *\n * Once the module is loaded, setting this option to `false`\n * will disable the module for this chart.\n *\n * @since 5.0.0\n */\n enabled: true,\n /**\n * Accessibility options for the screen reader information sections\n * added before and after the chart.\n *\n * @since 8.0.0\n */\n screenReaderSection: {\n /**\n * Function to run upon clicking the \"View as Data Table\" link in\n * the screen reader region.\n *\n * By default Highcharts will insert and set focus to a data table\n * representation of the chart.\n *\n * @type {Highcharts.ScreenReaderClickCallbackFunction}\n * @since 8.0.0\n * @apioption accessibility.screenReaderSection.onViewDataTableClick\n */\n /**\n * Function to run upon clicking the \"Play as sound\" button in\n * the screen reader region.\n *\n * By default Highcharts will call the `chart.sonify` function.\n *\n * @type {Highcharts.ScreenReaderClickCallbackFunction}\n * @since 8.0.1\n * @apioption accessibility.screenReaderSection.onPlayAsSoundClick\n */\n /**\n * A formatter function to create the HTML contents of the hidden\n * screen reader information region before the chart. Receives one\n * argument, `chart`, referring to the chart object. Should return a\n * string with the HTML content of the region. By default this\n * returns an automatic description of the chart based on\n * [beforeChartFormat](#accessibility.screenReaderSection.beforeChartFormat).\n *\n * @type {Highcharts.ScreenReaderFormatterCallbackFunction<Highcharts.Chart>}\n * @since 8.0.0\n * @apioption accessibility.screenReaderSection.beforeChartFormatter\n */\n /**\n * Format for the screen reader information region before the chart.\n * Supported HTML tags are `<h1-6>`, `<p>`, `<div>`, `<a>`, `<ul>`,\n * `<ol>`, `<li>`, and `<button>`. Attributes are not supported,\n * except for id on `<div>`, `<a>`, and `<button>`. Id is required\n * on `<a>` and `<button>` in the format `<tag id=\"abcd\">`. Numbers,\n * lower- and uppercase letters, \"-\" and \"#\" are valid characters in\n * IDs.\n *\n * The headingTagName is an auto-detected heading (h1-h6) that\n * corresponds to the heading level below the previous heading in\n * the DOM.\n *\n * Set to empty string to remove the region altogether.\n *\n * @since 8.0.0\n */\n beforeChartFormat: '<{headingTagName}>{chartTitle}</{headingTagName}>' +\n '<div>{typeDescription}</div>' +\n '<div>{chartSubtitle}</div>' +\n '<div>{chartLongdesc}</div>' +\n '<div>{playAsSoundButton}</div>' +\n '<div>{viewTableButton}</div>' +\n '<div>{xAxisDescription}</div>' +\n '<div>{yAxisDescription}</div>' +\n '<div>{annotationsTitle}{annotationsList}</div>',\n /**\n * A formatter function to create the HTML contents of the hidden\n * screen reader information region after the chart. Analogous to\n * [beforeChartFormatter](#accessibility.screenReaderSection.beforeChartFormatter).\n *\n * @type {Highcharts.ScreenReaderFormatterCallbackFunction<Highcharts.Chart>}\n * @since 8.0.0\n * @apioption accessibility.screenReaderSection.afterChartFormatter\n */\n /**\n * Format for the screen reader information region after the chart.\n * Analogous to [beforeChartFormat](#accessibility.screenReaderSection.beforeChartFormat).\n *\n * @since 8.0.0\n */\n afterChartFormat: '{endOfChartMarker}',\n /**\n * Date format to use to describe range of datetime axes.\n *\n * For an overview of the replacement codes, see\n * [dateFormat](/class-reference/Highcharts.Time#dateFormat).\n *\n * @see [point.dateFormat](#accessibility.point.dateFormat)\n *\n * @since 8.0.0\n */\n axisRangeDateFormat: '%Y-%m-%d %H:%M:%S'\n },\n /**\n * Accessibility options global to all data series. Individual series\n * can also have specific [accessibility options](#plotOptions.series.accessibility)\n * set.\n *\n * @since 8.0.0\n */\n series: {\n /**\n * Formatter function to use instead of the default for series\n * descriptions. Receives one argument, `series`, referring to the\n * series to describe. Should return a string with the description\n * of the series for a screen reader user. If `false` is returned,\n * the default formatter will be used for that series.\n *\n * @see [series.descriptionFormat](#accessibility.series.descriptionFormat)\n * @see [series.description](#plotOptions.series.description)\n *\n * @type {Highcharts.ScreenReaderFormatterCallbackFunction<Highcharts.Series>}\n * @since 8.0.0\n * @apioption accessibility.series.descriptionFormatter\n */\n /**\n * Format to use for describing the data series group to assistive\n * technology - including screen readers.\n *\n * The series context and its subproperties are available under the\n * variable `{series}`, for example `{series.name}` for the series\n * name, and `{series.points.length}` for the number of data points.\n *\n * The chart context and its subproperties are available under the\n * variable `{chart}`, for example `{chart.series.length}` for the\n * number of series in the chart.\n *\n * `{seriesDescription}` refers to the automatic description of the\n * series type and number of points added by Highcharts by default.\n * `{authorDescription}` refers to the description added in\n * [series.description](#plotOptions.series.description) if one is\n * present. `{axisDescription}` refers to the description added if\n * the chart has multiple X or Y axes.\n *\n * Note that if [series.descriptionFormatter](#accessibility.series.descriptionFormatter)\n * is declared it will take precedence, and this option will be\n * overridden.\n *\n * @sample highcharts/accessibility/advanced-accessible\n * Accessible low-medium-high chart\n *\n * @type {string}\n * @since 10.1.0\n */\n descriptionFormat: '{seriesDescription}{authorDescription}{axisDescription}',\n /**\n * Whether or not to add series descriptions to charts with a single\n * series.\n *\n * @since 8.0.0\n */\n describeSingleSeries: false,\n /**\n * When a series contains more points than this, we no longer expose\n * information about individual points to screen readers.\n * Note that the keyboard navigation remains functional, but points\n * won't have accessible descriptions unless handled separately.\n *\n * Set to `false` to disable.\n *\n * @type {boolean|number}\n * @since 8.0.0\n */\n pointDescriptionEnabledThreshold: 200\n },\n /**\n * Options for descriptions of individual data points.\n *\n * @since 8.0.0\n */\n point: {\n /**\n * Date format to use for points on datetime axes when describing\n * them to screen reader users.\n *\n * Defaults to the same format as in tooltip.\n *\n * For an overview of the replacement codes, see\n * [dateFormat](/class-reference/Highcharts.Time#dateFormat).\n *\n * @see [dateFormatter](#accessibility.point.dateFormatter)\n *\n * @type {string}\n * @since 8.0.0\n * @apioption accessibility.point.dateFormat\n */\n /**\n * Formatter function to determine the date/time format used with\n * points on datetime axes when describing them to screen reader\n * users. Receives one argument, `point`, referring to the point\n * to describe. Should return a date format string compatible with\n * [dateFormat](/class-reference/Highcharts.Time#dateFormat).\n *\n * @see [dateFormat](#accessibility.point.dateFormat)\n *\n * @type {Highcharts.ScreenReaderFormatterCallbackFunction<Highcharts.Point>}\n * @since 8.0.0\n * @apioption accessibility.point.dateFormatter\n */\n /**\n * Prefix to add to the values in the point descriptions. Uses\n * [tooltip.valuePrefix](#tooltip.valuePrefix) if not defined.\n *\n * @type {string}\n * @since 8.0.0\n * @apioption accessibility.point.valuePrefix\n */\n /**\n * Suffix to add to the values in the point descriptions. Uses\n * [tooltip.valueSuffix](#tooltip.valueSuffix) if not defined.\n *\n * @type {string}\n * @since 8.0.0\n * @apioption accessibility.point.valueSuffix\n */\n /**\n * Decimals to use for the values in the point descriptions. Uses\n * [tooltip.valueDecimals](#tooltip.valueDecimals) if not defined.\n *\n * @type {number}\n * @since 8.0.0\n * @apioption accessibility.point.valueDecimals\n */\n /**\n * A [format string](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting)\n * to use instead of the default for point descriptions.\n *\n * The context of the format string is the point instance.\n *\n * As opposed to [accessibility.point.valueDescriptionFormat](#accessibility.point.valueDescriptionFormat),\n * this option replaces the whole description.\n *\n * @type {string}\n * @since 11.1.0\n * @sample highcharts/demo/advanced-accessible\n * Description format\n * @apioption accessibility.point.descriptionFormat\n */\n /**\n * Formatter function to use instead of the default for point\n * descriptions.\n *\n * Receives one argument, `point`, referring to the point to\n * describe. Should return a string with the description of the\n * point for a screen reader user. If `false` is returned, the\n * default formatter will be used for that point.\n *\n * Note: Prefer using [accessibility.point.valueDescriptionFormat](#accessibility.point.valueDescriptionFormat)\n * instead if possible, as default functionality such as describing\n * annotations will be preserved.\n *\n * @see [accessibility.point.valueDescriptionFormat](#accessibility.point.valueDescriptionFormat)\n * @see [point.accessibility.description](#series.line.data.accessibility.description)\n *\n * @type {Highcharts.ScreenReaderFormatterCallbackFunction<Highcharts.Point>}\n * @since 8.0.0\n * @apioption accessibility.point.descriptionFormatter\n */\n /**\n * Format to use for describing the values of data points\n * to assistive technology - including screen readers.\n * The point context is available as `{point}`.\n *\n * Other available context variables include `{index}`, `{value}`, and `{xDescription}`.\n *\n * Additionally, the series name, annotation info, and\n * description added in `point.accessibility.description`\n * is added by default if relevant. To override this, use the\n * [accessibility.point.descriptionFormatter](#accessibility.point.descriptionFormatter)\n * option.\n *\n * @see [point.accessibility.description](#series.line.data.accessibility.description)\n * @see [accessibility.point.descriptionFormatter](#accessibility.point.descriptionFormatter)\n *\n * @type {string}\n * @since 8.0.1\n */\n valueDescriptionFormat: '{xDescription}{separator}{value}.',\n /**\n * Whether or not to describe points with the value `null` to\n * assistive technology, such as screen readers.\n *\n * @sample {highmaps} maps/demo/all-areas-as-null\n * Accessible map with null points\n *\n * @type {boolean}\n * @since 10.1.0\n */\n describeNull: true\n },\n /**\n * Amount of landmarks/regions to create for screen reader users. More\n * landmarks can make navigation with screen readers easier, but can\n * be distracting if there are lots of charts on the page. Three modes\n * are available:\n * - `all`: Adds regions for all series, legend, information\n * region.\n * - `one`: Adds a single landmark per chart.\n * - `disabled`: No landmarks are added.\n *\n * @since 7.1.0\n * @validvalue [\"all\", \"one\", \"disabled\"]\n */\n landmarkVerbosity: 'all',\n /**\n * Link the chart to an HTML element describing the contents of the\n * chart.\n *\n * It is always recommended to describe charts using visible text, to\n * improve SEO as well as accessibility for users with disabilities.\n * This option lets an HTML element with a description be linked to the\n * chart, so that screen reader users can connect the two.\n *\n * By setting this option to a string, Highcharts runs the string as an\n * HTML selector query on the entire document. If there is only a single\n * match, this element is linked to the chart. The content of the linked\n * element will be included in the chart description for screen reader\n * users.\n *\n * By default, the chart looks for an adjacent sibling element with the\n * `highcharts-description` class.\n *\n * The feature can be disabled by setting the option to an empty string,\n * or overridden by providing the\n * [accessibility.description](#accessibility.description) option.\n * Alternatively, the HTML element to link can be passed in directly as\n * an HTML node.\n *\n * If you need the description to be part of the exported image,\n * consider using the [caption](#caption) feature.\n *\n * If you need the description to be hidden visually, use the\n * [accessibility.description](#accessibility.description) option.\n *\n * @see [caption](#caption)\n * @see [description](#accessibility.description)\n * @see [typeDescription](#accessibility.typeDescription)\n *\n * @sample highcharts/accessibility/accessible-line\n * Accessible line chart\n *\n * @type {string|Highcharts.HTMLDOMElement}\n * @since 8.0.0\n */\n linkedDescription: '*[data-highcharts-chart=\"{index}\"] + .highcharts-description', // eslint-disable-line\n /**\n * A hook for adding custom components to the accessibility module.\n * Should be an object mapping component names to instances of classes\n * inheriting from the Highcharts.AccessibilityComponent base class.\n * Remember to add the component to the\n * [keyboardNavigation.order](#accessibility.keyboardNavigation.order)\n * for the keyboard navigation to be usable.\n *\n * @sample highcharts/accessibility/custom-component\n * Custom accessibility component\n *\n * @type {*}\n * @since 7.1.0\n * @apioption accessibility.customComponents\n */\n /**\n * Theme to apply to the chart when Windows High Contrast Mode is\n * detected. By default, a high contrast theme matching the high\n * contrast system colors is used.\n *\n * @type {*}\n * @since 7.1.3\n * @apioption accessibility.highContrastTheme\n */\n /**\n * Controls how [highContrastTheme](#accessibility.highContrastTheme)\n * is applied.\n *\n * The default option is `auto`, which applies the high contrast theme\n * the user's system has a high contrast theme active.\n *\n * @since 11.4.0\n */\n highContrastMode: 'auto',\n /**\n * A text description of the chart.\n *\n * **Note: Prefer using [linkedDescription](#accessibility.linkedDescription)\n * or [caption](#caption.text) instead.**\n *\n * If the Accessibility module is loaded, this option is included by\n * default as a long description of the chart in the hidden screen\n * reader information region.\n *\n * Note: Since Highcharts now supports captions and linked descriptions,\n * it is preferred to define the description using those methods, as a\n * visible caption/description benefits all users. If the\n * `accessibility.description` option is defined, the linked description\n * is ignored, and the caption is hidden from screen reader users.\n *\n * @see [linkedDescription](#accessibility.linkedDescription)\n * @see [caption](#caption)\n * @see [typeDescription](#accessibility.typeDescription)\n *\n * @type {string}\n * @since 5.0.0\n * @apioption accessibility.description\n */\n /**\n * A text description of the chart type.\n *\n * If the Accessibility module is loaded, this will be included in the\n * description of the chart in the screen reader information region.\n *\n * Highcharts will by default attempt to guess the chart type, but for\n * more complex charts it is recommended to specify this property for\n * clarity.\n *\n * @type {string}\n * @since 5.0.0\n * @apioption accessibility.typeDescription\n */\n /**\n * Options for keyboard navigation.\n *\n * @declare Highcharts.KeyboardNavigationOptionsObject\n * @since 5.0.0\n */\n keyboardNavigation: {\n /**\n * Enable keyboard navigation for the chart.\n *\n * @since 5.0.0\n */\n enabled: true,\n /**\n * Options for the focus border drawn around elements while\n * navigating through them.\n *\n * @sample highcharts/accessibility/custom-focus\n * Custom focus ring\n *\n * @declare Highcharts.KeyboardNavigationFocusBorderOptionsObject\n * @since 6.0.3\n */\n focusBorder: {\n /**\n * Enable/disable focus border for chart.\n *\n * @since 6.0.3\n */\n enabled: true,\n /**\n * Hide the browser's default focus indicator.\n *\n * @since 6.0.4\n */\n hideBrowserFocusOutline: true,\n /**\n * Style options for the focus border drawn around elements\n * while navigating through them. Note that some browsers in\n * addition draw their own borders for focused elements. These\n * automatic borders cannot be styled by Highcharts.\n *\n * In styled mode, the border is given the\n * `.highcharts-focus-border` class.\n *\n * @type {Highcharts.CSSObject}\n * @since 6.0.3\n */\n style: {\n /** @internal */\n color: \"#334eff\" /* Palette.highlightColor80 */,\n /** @internal */\n lineWidth: 2,\n /** @internal */\n borderRadius: 3\n },\n /**\n * Focus border margin around the elements.\n *\n * @since 6.0.3\n */\n margin: 2\n },\n /**\n * Order of tab navigation in the chart. Determines which elements\n * are tabbed to first. Available elements are: `series`, `zoom`,\n * `rangeSelector`, `navigator`, `chartMenu`, `legend` and `container`.\n * In addition, any custom components can be added here. Adding\n * `container` first in order will make the keyboard focus stop on\n * the chart container first, requiring the user to tab again to\n * enter the chart.\n *\n * @type {Array<string>}\n * @since 7.1.0\n */\n order: [\n 'series', 'zoom', 'rangeSelector',\n 'navigator', 'legend', 'chartMenu'\n ],\n /**\n * Whether or not to wrap around when reaching the end of arrow-key\n * navigation for an element in the chart.\n * @since 7.1.0\n */\n wrapAround: true,\n /**\n * Options for the keyboard navigation of data points and series.\n *\n * @declare Highcharts.KeyboardNavigationSeriesNavigationOptionsObject\n * @since 8.0.0\n */\n seriesNavigation: {\n /**\n * Set the keyboard navigation mode for the chart. Can be\n * \"normal\" or \"serialize\". In normal mode, left/right arrow\n * keys move between points in a series, while up/down arrow\n * keys move between series. Up/down navigation acts\n * intelligently to figure out which series makes sense to move\n * to from any given point.\n *\n * In \"serialize\" mode, points are instead navigated as a single\n * list. Left/right behaves as in \"normal\" mode. Up/down arrow\n * keys will behave like left/right. This can be useful for\n * unifying navigation behavior with/without screen readers\n * enabled.\n *\n * @type {string}\n * @default normal\n * @since 8.0.0\n * @validvalue [\"normal\", \"serialize\"]\n * @apioption accessibility.keyboardNavigation.seriesNavigation.mode\n */\n /**\n * Skip null points when navigating through points with the\n * keyboard.\n *\n * @since 8.0.0\n */\n skipNullPoints: true,\n /**\n * When a series contains more points than this, we no longer\n * allow keyboard navigation for it.\n *\n * Set to `false` to disable.\n *\n * @type {boolean|number}\n * @since 8.0.0\n */\n pointNavigationEnabledThreshold: false,\n /**\n * Remember which point was focused even after navigating away\n * from the series, so that when navigating back to the series\n * you start at the last focused point.\n *\n * @type {boolean}\n * @since 10.1.0\n */\n rememberPointFocus: false\n }\n },\n /**\n * Options for announcing new data to screen reader users. Useful\n * for dynamic data applications and drilldown.\n *\n * Keep in mind that frequent announcements will not be useful to\n * users, as they won't have time to explore the new data. For these\n * applications, consider making snapshots of the data accessible, and\n * do the announcements in batches.\n *\n * @declare Highcharts.AccessibilityAnnounceNewDataOptionsObject\n * @since 7.1.0\n */\n announceNewData: {\n /**\n * Optional formatter callback for the announcement. Receives\n * up to three arguments. The first argument is always an array\n * of all series that received updates. If an announcement is\n * already queued, the series that received updates for that\n * announcement are also included in this array. The second\n * argument is provided if `chart.addSeries` was called, and\n * there is a new series. In that case, this argument is a\n * reference to the new series. The third argument, similarly,\n * is provided if `series.addPoint` was called, and there is a\n * new point. In that case, this argument is a reference to the\n * new point.\n *\n * The function should return a string with the text to announce\n * to the user. Return empty string to not announce anything.\n * Return `false` to use the default announcement format.\n *\n * @sample highcharts/accessibility/custom-dynamic\n * High priority live alerts\n *\n * @type {Highcharts.AccessibilityAnnouncementFormatter}\n * @apioption accessibility.announceNewData.announcementFormatter\n */\n /**\n * Enable announcing new data to screen reader users\n * @sample highcharts/accessibility/accessible-dynamic\n * Dynamic data accessible\n */\n enabled: false,\n /**\n * Minimum interval between announcements in milliseconds. If\n * new data arrives before this amount of time has passed, it is\n * queued for announcement. If another new data event happens\n * while an announcement is queued, the queued announcement is\n * dropped, and the latest announcement is queued instead. Set\n * to 0 to allow all announcements, but be warned that frequent\n * announcements are disturbing to users.\n */\n minAnnounceInterval: 5000,\n /**\n * Choose whether or not the announcements should interrupt the\n * screen reader. If not enabled, the user will be notified once\n * idle. It is recommended not to enable this setting unless\n * there is a specific reason to do so.\n */\n interruptUser: false\n }\n },\n /**\n * Accessibility options for a data point.\n *\n * @declare Highcharts.PointAccessibilityOptionsObject\n * @since 7.1.0\n * @apioption series.line.data.accessibility\n */\n /**\n * Provide a description of the data point, announced to screen readers.\n *\n * @type {string}\n * @since 7.1.0\n * @apioption series.line.data.accessibility.description\n */\n /**\n * Set to false to disable accessibility functionality for a specific point.\n * The point will not be included in keyboard navigation, and will not be\n * exposed to assistive technology.\n *\n * @type {boolean}\n * @since 9.0.1\n * @apioption series.line.data.accessibility.enabled\n */\n /**\n * Accessibility options for a series.\n *\n * @declare Highcharts.SeriesAccessibilityOptionsObject\n * @since 7.1.0\n * @requires modules/accessibility\n * @apioption plotOptions.series.accessibility\n */\n /**\n * Enable/disable accessibility functionality for a specific series.\n *\n * @type {boolean}\n * @since 7.1.0\n * @apioption plotOptions.series.accessibility.enabled\n */\n /**\n * Provide a description of the series, announced to screen readers.\n *\n * @type {string}\n * @since 7.1.0\n * @apioption plotOptions.series.accessibility.description\n */\n /**\n * Format to use for describing the data series group to assistive\n * technology - including screen readers.\n *\n * @see [series.descriptionFormat](#accessibility.series.descriptionFormat)\n * @type {string}\n * @since 11.0.0\n * @apioption plotOptions.series.accessibility.descriptionFormat\n */\n /**\n * Expose only the series element to screen readers, not its points.\n *\n * @type {boolean}\n * @since 7.1.0\n * @apioption plotOptions.series.accessibility.exposeAsGroupOnly\n */\n /**\n * Point accessibility options for a series.\n *\n * @extends accessibility.point\n * @since 9.3.0\n * @requires modules/accessibility\n * @apioption plotOptions.series.accessibility.point\n */\n /**\n * Formatter function to use instead of the default for point\n * descriptions. Same as `accessibility.point.descriptionFormatter`, but\n * applies to a series instead of the whole chart.\n *\n * Note: Prefer using [accessibility.point.valueDescriptionFormat](#plotOptions.series.accessibility.point.valueDescriptionFormat)\n * instead if possible, as default functionality such as describing\n * annotations will be preserved.\n *\n * @see [accessibility.point.valueDescriptionFormat](#plotOptions.series.accessibility.point.valueDescriptionFormat)\n * @see [point.accessibility.description](#series.line.data.accessibility.description)\n * @see [accessibility.point.descriptionFormatter](#accessibility.point.descriptionFormatter)\n *\n * @type {Highcharts.ScreenReaderFormatterCallbackFunction<Highcharts.Point>}\n * @since 9.3.0\n * @apioption plotOptions.series.accessibility.point.descriptionFormatter\n */\n /**\n * Keyboard navigation for a series\n *\n * @declare Highcharts.SeriesAccessibilityKeyboardNavigationOptionsObject\n * @since 7.1.0\n * @apioption plotOptions.series.accessibility.keyboardNavigation\n */\n /**\n * Enable/disable keyboard navigation support for a specific series.\n *\n * @type {boolean}\n * @since 7.1.0\n * @apioption plotOptions.series.accessibility.keyboardNavigation.enabled\n */\n /**\n * Accessibility options for an annotation label.\n *\n * @declare Highcharts.AnnotationLabelAccessibilityOptionsObject\n * @since 8.0.1\n * @requires modules/accessibility\n * @apioption annotations.labelOptions.accessibility\n */\n /**\n * Description of an annotation label for screen readers and other assistive\n * technology.\n *\n * @type {string}\n * @since 8.0.1\n * @apioption annotations.labelOptions.accessibility.description\n */\n /**\n * Accessibility options for an axis. Requires the accessibility module.\n *\n * @declare Highcharts.AxisAccessibilityOptionsObject\n * @since 7.1.0\n * @requires modules/accessibility\n * @apioption xAxis.accessibility\n */\n /**\n * Enable axis accessibility features, including axis information in the\n * screen reader information region. If this is disabled on the xAxis, the\n * x values are not exposed to screen readers for the individual data points\n * by default.\n *\n * @type {boolean}\n * @since 7.1.0\n * @apioption xAxis.accessibility.enabled\n */\n /**\n * Description for an axis to expose to screen reader users.\n *\n * @type {string}\n * @since 7.1.0\n * @apioption xAxis.accessibility.description\n */\n /**\n * Range description for an axis. Overrides the default range description.\n * Set to empty to disable range description for this axis.\n *\n * @type {string}\n * @since 7.1.0\n * @apioption xAxis.accessibility.rangeDescription\n */\n /**\n * @optionparent legend\n */\n legend: {\n /**\n * Accessibility options for the legend. Requires the Accessibility\n * module.\n *\n * @since 7.1.0\n * @requires modules/accessibility\n */\n accessibility: {\n /**\n * Enable accessibility support for the legend.\n *\n * @since 7.1.0\n */\n enabled: true,\n /**\n * Options for keyboard navigation for the legend.\n *\n * @since 7.1.0\n * @requires modules/accessibility\n */\n keyboardNavigation: {\n /**\n * Enable keyboard navigation for the legend.\n *\n * @see [accessibility.keyboardNavigation](#accessibility.keyboardNavigation.enabled)\n *\n * @since 7.1.0\n */\n enabled: true\n }\n }\n },\n /**\n * @optionparent exporting\n */\n exporting: {\n /**\n * Accessibility options for the exporting menu. Requires the\n * Accessibility module.\n *\n * @since 7.1.0\n * @requires modules/accessibility\n */\n accessibility: {\n /**\n * Enable accessibility support for the export menu.\n *\n * @since 7.1.0\n */\n enabled: true\n }\n },\n /**\n * @optionparent navigator\n */\n navigator: {\n /**\n * Accessibility options for the navigator. Requires the\n * Accessibility module.\n *\n * @since 11.2.0\n * @requires modules/accessibility\n */\n accessibility: {\n /**\n * Enable accessibility support for the navigator.\n *\n * @since 11.2.0\n */\n enabled: true\n }\n }\n};\n/* harmony default export */ var A11yDefaults = (Options);\n\n;// ./code/es5/es-modules/Accessibility/Options/LangDefaults.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Default lang/i18n options for accessibility.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n * API Options\n *\n * */\nvar langOptions = {\n /**\n * Configure the accessibility strings in the chart. Requires the\n * [accessibility module](https://code.highcharts.com/modules/accessibility.js)\n * to be loaded. For a description of the module and information on its\n * features, see\n * [Highcharts Accessibility](https://www.highcharts.com/docs/chart-concepts/accessibility).\n *\n * The lang options use [Format Strings](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting#format-strings)\n * with variables that are replaced at run time. These variables should be\n * used when available, to avoid duplicating text that is defined elsewhere.\n *\n * For more dynamic control over the accessibility functionality, see\n * [accessibility.point.descriptionFormatter](#accessibility.point.descriptionFormatter),\n * [accessibility.series.descriptionFormatter](#accessibility.series.descriptionFormatter),\n * and\n * [accessibility.screenReaderSection.beforeChartFormatter](#accessibility.screenReaderSection.beforeChartFormatter).\n *\n * @since 6.0.6\n * @optionparent lang.accessibility\n */\n accessibility: {\n /**\n * @deprecated 10.2.1\n * @type {string}\n * @apioption lang.accessibility.resetZoomButton\n */\n /**\n * Default title of the chart for assistive technology, for charts\n * without a chart title.\n */\n defaultChartTitle: 'Chart',\n /**\n * Accessible label for the chart container HTML element.\n * `{title}` refers to the chart title.\n */\n chartContainerLabel: '{title}. Highcharts interactive chart.',\n /**\n * Accessible label for the chart SVG element.\n * `{chartTitle}` refers to the chart title.\n */\n svgContainerLabel: 'Interactive chart',\n /**\n * Accessible label for the drill-up button.\n * `{buttonText}` refers to the visual text on the button.\n */\n drillUpButton: '{buttonText}',\n /**\n * Accessible label for the chart credits.\n * `{creditsStr}` refers to the visual text in the credits.\n */\n credits: 'Chart credits: {creditsStr}',\n /**\n * Thousands separator to use when formatting numbers for screen\n * readers. Note that many screen readers will not handle space as a\n * thousands separator, and will consider \"11 700\" as two numbers.\n *\n * Set to `null` to use the separator defined in\n * [lang.thousandsSep](lang.thousandsSep).\n *\n * @since 7.1.0\n */\n thousandsSep: ',',\n /**\n * Title element text for the chart SVG element. Leave this\n * empty to disable adding the title element. Browsers will display\n * this content when hovering over elements in the chart. Assistive\n * technology may use this element to label the chart.\n *\n * @since 6.0.8\n */\n svgContainerTitle: '',\n /**\n * Set a label on the container wrapping the SVG.\n *\n * @see [chartContainerLabel](#lang.accessibility.chartContainerLabel)\n *\n * @since 8.0.0\n */\n graphicContainerLabel: '',\n /**\n * Language options for the screen reader information sections added\n * before and after the charts.\n *\n * @since 8.0.0\n */\n screenReaderSection: {\n beforeRegionLabel: '',\n afterRegionLabel: '',\n /**\n * Language options for annotation descriptions.\n *\n * @since 8.0.1\n */\n annotations: {\n heading: 'Chart annotations summary',\n descriptionSinglePoint: ('{annotationText}. Related to {annotationPoint}'),\n descriptionMultiplePoints: ('{annotationText}. Related to {annotationPoint}' +\n '{#each additionalAnnotationPoints}' +\n ', also related to {this}' +\n '{/each}'),\n descriptionNoPoints: '{annotationText}'\n },\n /**\n * Label for the end of the chart. Announced by screen readers.\n *\n * @since 8.0.0\n */\n endOfChartMarker: 'End of interactive chart.'\n },\n /**\n * Language options for sonification.\n *\n * @since 8.0.1\n */\n sonification: {\n playAsSoundButtonText: 'Play as sound, {chartTitle}',\n playAsSoundClickAnnouncement: 'Play'\n },\n /**\n * Language options for accessibility of the legend.\n *\n * @since 8.0.0\n */\n legend: {\n /**\n * Accessible label for the legend, for charts where there is no\n * legend title defined.\n */\n legendLabelNoTitle: 'Toggle series visibility, {chartTitle}',\n /**\n * Accessible label for the legend, for charts where there is a\n * legend title defined. `{legendTitle}` refers to the visual text\n * in the legend title.\n */\n legendLabel: 'Chart legend: {legendTitle}',\n /**\n * Accessible label for individual legend items. `{itemName}` refers\n * to the visual text in the legend for that item.\n */\n legendItem: 'Show {itemName}'\n },\n /**\n * Chart and map zoom accessibility language options.\n *\n * @since 8.0.0\n */\n zoom: {\n mapZoomIn: 'Zoom chart',\n mapZoomOut: 'Zoom out chart',\n resetZoomButton: 'Reset zoom'\n },\n /**\n * Range selector language options for accessibility.\n *\n * @since 8.0.0\n */\n rangeSelector: {\n dropdownLabel: '{rangeTitle}',\n minInputLabel: 'Select start date.',\n maxInputLabel: 'Select end date.',\n clickButtonAnnouncement: 'Viewing {axisRangeDescription}'\n },\n /**\n * Navigator language options for accessibility.\n *\n * @since 11.2.0\n */\n navigator: {\n /**\n * Label for the navigator handles.\n *\n * Receives `handleIx` and `chart` as context.\n * `handleIx` refers to the index of the navigator handle.\n */\n handleLabel: '{#eq handleIx 0}Start, percent{else}End, percent{/eq}',\n /**\n * Label for the navigator region.\n *\n * Receives `chart` as context.\n */\n groupLabel: 'Axis zoom',\n /**\n * Announcement for assistive technology when navigator values\n * are changed.\n *\n * Receives `axisRangeDescription` and `chart` as context.\n * `axisRangeDescription` corresponds to the range description\n * defined in [lang.accessibility.axis](#lang.accessibility.axis)\n */\n changeAnnouncement: '{axisRangeDescription}'\n },\n /**\n * Accessibility language options for the data table.\n *\n * @since 8.0.0\n */\n table: {\n viewAsDataTableButtonText: 'View as data table, {chartTitle}',\n tableSummary: 'Table representation of chart.'\n },\n /**\n * Default announcement for new data in charts. If addPoint or\n * addSeries is used, and only one series/point is added, the\n * `newPointAnnounce` and `newSeriesAnnounce` strings are used.\n * The `...Single` versions will be used if there is only one chart\n * on the page, and the `...Multiple` versions will be used if there\n * are multiple charts on the page. For all other new data events,\n * the `newDataAnnounce` string will be used.\n *\n * @since 7.1.0\n */\n announceNewData: {\n newDataAnnounce: 'Updated data for chart {chartTitle}',\n newSeriesAnnounceSingle: 'New data series: {seriesDesc}',\n newPointAnnounceSingle: 'New data point: {pointDesc}',\n newSeriesAnnounceMultiple: 'New data series in chart {chartTitle}: {seriesDesc}',\n newPointAnnounceMultiple: 'New data point in chart {chartTitle}: {pointDesc}'\n },\n /**\n * Descriptions of lesser known series types. The relevant\n * description is added to the screen reader information region\n * when these series types are used.\n *\n * @since 6.0.6\n */\n seriesTypeDescriptions: {\n boxplot: 'Box plot charts are typically used to display ' +\n 'groups of statistical data. Each data point in the ' +\n 'chart can have up to 5 values: minimum, lower quartile, ' +\n 'median, upper quartile, and maximum.',\n arearange: 'Arearange charts are line charts displaying a ' +\n 'range between a lower and higher value for each point.',\n areasplinerange: 'These charts are line charts displaying a ' +\n 'range between a lower and higher value for each point.',\n bubble: 'Bubble charts are scatter charts where each data ' +\n 'point also has a size value.',\n columnrange: 'Columnrange charts are column charts ' +\n 'displaying a range between a lower and higher value for ' +\n 'each point.',\n errorbar: 'Errorbar series are used to display the ' +\n 'variability of the data.',\n funnel: 'Funnel charts are used to display reduction of data ' +\n 'in stages.',\n pyramid: 'Pyramid charts consist of a single pyramid with ' +\n 'item heights corresponding to each point value.',\n waterfall: 'A waterfall chart is a column chart where each ' +\n 'column contributes towards a total end value.'\n },\n /**\n * Chart type description strings. This is added to the chart\n * information region.\n *\n * If there is only a single series type used in the chart, we use\n * the format string for the series type, or default if missing.\n * There is one format string for cases where there is only a single\n * series in the chart, and one for multiple series of the same\n * type.\n *\n * @since 6.0.6\n */\n chartTypes: {\n /* eslint-disable max-len */\n emptyChart: 'Empty chart',\n mapTypeDescription: 'Map of {mapTitle} with {numSeries} data series.',\n unknownMap: 'Map of unspecified region with {numSeries} data series.',\n combinationChart: 'Combination chart with {numSeries} data series.',\n defaultSingle: 'Chart with {numPoints} data ' +\n '{#eq numPoints 1}point{else}points{/eq}.',\n defaultMultiple: 'Chart with {numSeries} data series.',\n splineSingle: 'Line chart with {numPoints} data ' +\n '{#eq numPoints 1}point{else}points{/eq}.',\n splineMultiple: 'Line chart with {numSeries} lines.',\n lineSingle: 'Line chart with {numPoints} data ' +\n '{#eq numPoints 1}point{else}points{/eq}.',\n lineMultiple: 'Line chart with {numSeries} lines.',\n columnSingle: 'Bar chart with {numPoints} ' +\n '{#eq numPoints 1}bar{else}bars{/eq}.',\n columnMultiple: 'Bar chart with {numSeries} data series.',\n barSingle: 'Bar chart with {numPoints} ' +\n '{#eq numPoints 1}bar{else}bars{/eq}.',\n barMultiple: 'Bar chart with {numSeries} data series.',\n pieSingle: 'Pie chart with {numPoints} ' +\n '{#eq numPoints 1}slice{else}slices{/eq}.',\n pieMultiple: 'Pie chart with {numSeries} pies.',\n scatterSingle: 'Scatter chart with {numPoints} ' +\n '{#eq numPoints 1}point{else}points{/eq}.',\n scatterMultiple: 'Scatter chart with {numSeries} data series.',\n boxplotSingle: 'Boxplot with {numPoints} ' +\n '{#eq numPoints 1}box{else}boxes{/eq}.',\n boxplotMultiple: 'Boxplot with {numSeries} data series.',\n bubbleSingle: 'Bubble chart with {numPoints} ' +\n '{#eq numPoints 1}bubbles{else}bubble{/eq}.',\n bubbleMultiple: 'Bubble chart with {numSeries} data series.'\n }, /* eslint-enable max-len */\n /**\n * Axis description format strings.\n *\n * @since 6.0.6\n */\n axis: {\n /* eslint-disable max-len */\n xAxisDescriptionSingular: 'The chart has 1 X axis displaying {names[0]}. {ranges[0]}',\n xAxisDescriptionPlural: 'The chart has {numAxes} X axes displaying {#each names}{#unless @first},{/unless}{#if @last} and{/if} {this}{/each}.',\n yAxisDescriptionSingular: 'The chart has 1 Y axis displaying {names[0]}. {ranges[0]}',\n yAxisDescriptionPlural: 'The chart has {numAxes} Y axes displaying {#each names}{#unless @first},{/unless}{#if @last} and{/if} {this}{/each}.',\n timeRangeDays: 'Data range: {range} days.',\n timeRangeHours: 'Data range: {range} hours.',\n timeRangeMinutes: 'Data range: {range} minutes.',\n timeRangeSeconds: 'Data range: {range} seconds.',\n rangeFromTo: 'Data ranges from {rangeFrom} to {rangeTo}.',\n rangeCategories: 'Data range: {numCategories} categories.'\n }, /* eslint-enable max-len */\n /**\n * Exporting menu format strings for accessibility module.\n *\n * @since 6.0.6\n */\n exporting: {\n chartMenuLabel: 'Chart menu',\n menuButtonLabel: 'View chart menu, {chartTitle}'\n },\n /**\n * Lang configuration for different series types. For more dynamic\n * control over the series element descriptions, see\n * [accessibility.seriesDescriptionFormatter](#accessibility.seriesDescriptionFormatter).\n *\n * @since 6.0.6\n */\n series: {\n /**\n * Lang configuration for the series main summary. Each series\n * type has two modes:\n *\n * 1. This series type is the only series type used in the\n * chart\n *\n * 2. This is a combination chart with multiple series types\n *\n * If a definition does not exist for the specific series type\n * and mode, the 'default' lang definitions are used.\n *\n * Chart and its subproperties can be accessed with the `{chart}` variable.\n * The series and its subproperties can be accessed with the `{series}` variable.\n *\n * The series index (starting from 1) can be accessed with the `{seriesNumber}` variable.\n *\n * @since 6.0.6\n */\n summary: {\n /* eslint-disable max-len */\n 'default': '{series.name}, series {seriesNumber} of {chart.series.length} with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.',\n defaultCombination: '{series.name}, series {seriesNumber} of {chart.series.length} with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.',\n line: '{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.',\n lineCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.',\n spline: '{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.',\n splineCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.',\n column: '{series.name}, bar series {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}bar{else}bars{/eq}.',\n columnCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Bar series with {series.points.length} {#eq series.points.length 1}bar{else}bars{/eq}.',\n bar: '{series.name}, bar series {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}bar{else}bars{/eq}.',\n barCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Bar series with {series.points.length} {#eq series.points.length 1}bar{else}bars{/eq}.',\n pie: '{series.name}, pie {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}slice{else}slices{/eq}.',\n pieCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Pie with {series.points.length} {#eq series.points.length 1}slice{else}slices{/eq}.',\n scatter: '{series.name}, scatter plot {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}point{else}points{/eq}.',\n scatterCombination: '{series.name}, series {seriesNumber} of {chart.series.length}, scatter plot with {series.points.length} {#eq series.points.length 1}point{else}points{/eq}.',\n boxplot: '{series.name}, boxplot {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}box{else}boxes{/eq}.',\n boxplotCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Boxplot with {series.points.length} {#eq series.points.length 1}box{else}boxes{/eq}.',\n bubble: '{series.name}, bubble series {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}bubble{else}bubbles{/eq}.',\n bubbleCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Bubble series with {series.points.length} {#eq series.points.length 1}bubble{else}bubbles{/eq}.',\n map: '{series.name}, map {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}area{else}areas{/eq}.',\n mapCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Map with {series.points.length} {#eq series.points.length 1}area{else}areas{/eq}.',\n mapline: '{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.',\n maplineCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.',\n mapbubble: '{series.name}, bubble series {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}bubble{else}bubbles{/eq}.',\n mapbubbleCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Bubble series with {series.points.length} {#eq series.points.length 1}bubble{else}bubbles{/eq}.'\n }, /* eslint-enable max-len */\n /**\n * User supplied description text. This is added in the point\n * comment description by default if present.\n *\n * `{description}` refers to the value given in\n * [point.accessibility.description](#series.line.data.accessibility.description).\n *\n * @since 6.0.6\n */\n description: '{description}',\n /**\n * X-axis description for series if there are multiple xAxes in\n * the chart.\n *\n * @since 6.0.6\n */\n xAxisDescription: 'X axis, {name}',\n /**\n * Y-axis description for series if there are multiple yAxes in\n * the chart.\n *\n * @since 6.0.6\n */\n yAxisDescription: 'Y axis, {name}',\n /**\n * Description for the value of null points.\n *\n * @since 8.0.0\n */\n nullPointValue: 'No value',\n /**\n * Description for annotations on a point, as it is made available\n * to assistive technology.\n *\n * @since 8.0.1\n */\n pointAnnotationsDescription: '{#each annotations}' +\n 'Annotation: {this}{/each}'\n }\n }\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var LangDefaults = (langOptions);\n\n;// ./code/es5/es-modules/Accessibility/Options/DeprecatedOptions.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Default options for accessibility.\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n/* eslint-disable max-len */\n/*\n * List of deprecated options:\n *\n * chart.description -> accessibility.description\n * chart.typeDescription -> accessibility.typeDescription\n * series.description -> series.accessibility.description\n * series.exposeElementToA11y -> series.accessibility.exposeAsGroupOnly\n * series.pointDescriptionFormatter ->\n * series.accessibility.pointDescriptionFormatter\n * series.accessibility.pointDescriptionFormatter ->\n * series.accessibility.point.descriptionFormatter\n * series.skipKeyboardNavigation ->\n * series.accessibility.keyboardNavigation.enabled\n * point.description -> point.accessibility.description !!!! WARNING: No longer deprecated and handled, removed for HC8.\n * axis.description -> axis.accessibility.description\n *\n * accessibility.pointDateFormat -> accessibility.point.dateFormat\n * accessibility.addTableShortcut -> Handled by screenReaderSection.beforeChartFormat\n * accessibility.pointDateFormatter -> accessibility.point.dateFormatter\n * accessibility.pointDescriptionFormatter -> accessibility.point.descriptionFormatter\n * accessibility.pointDescriptionThreshold -> accessibility.series.pointDescriptionEnabledThreshold\n * accessibility.pointNavigationThreshold -> accessibility.keyboardNavigation.seriesNavigation.pointNavigationEnabledThreshold\n * accessibility.pointValueDecimals -> accessibility.point.valueDecimals\n * accessibility.pointValuePrefix -> accessibility.point.valuePrefix\n * accessibility.pointValueSuffix -> accessibility.point.valueSuffix\n * accessibility.screenReaderSectionFormatter -> accessibility.screenReaderSection.beforeChartFormatter\n * accessibility.describeSingleSeries -> accessibility.series.describeSingleSeries\n * accessibility.seriesDescriptionFormatter -> accessibility.series.descriptionFormatter\n * accessibility.onTableAnchorClick -> accessibility.screenReaderSection.onViewDataTableClick\n * accessibility.axisRangeDateFormat -> accessibility.screenReaderSection.axisRangeDateFormat\n * accessibility.keyboardNavigation.skipNullPoints -> accessibility.keyboardNavigation.seriesNavigation.skipNullPoints\n * accessibility.keyboardNavigation.mode -> accessibility.keyboardNavigation.seriesNavigation.mode\n *\n * lang.accessibility.chartHeading -> no longer used, remove\n * lang.accessibility.legendItem -> lang.accessibility.legend.legendItem\n * lang.accessibility.legendLabel -> lang.accessibility.legend.legendLabel\n * lang.accessibility.mapZoomIn -> lang.accessibility.zoom.mapZoomIn\n * lang.accessibility.mapZoomOut -> lang.accessibility.zoom.mapZoomOut\n * lang.accessibility.resetZoomButton -> lang.accessibility.zoom.resetZoomButton\n * lang.accessibility.screenReaderRegionLabel -> lang.accessibility.screenReaderSection.beforeRegionLabel\n * lang.accessibility.rangeSelectorButton -> lang.accessibility.rangeSelector.buttonText\n * lang.accessibility.rangeSelectorMaxInput -> lang.accessibility.rangeSelector.maxInputLabel\n * lang.accessibility.rangeSelectorMinInput -> lang.accessibility.rangeSelector.minInputLabel\n * lang.accessibility.svgContainerEnd -> lang.accessibility.screenReaderSection.endOfChartMarker\n * lang.accessibility.viewAsDataTable -> lang.accessibility.table.viewAsDataTableButtonText\n * lang.accessibility.tableSummary -> lang.accessibility.table.tableSummary\n *\n */\n/* eslint-enable max-len */\n\n\nvar error = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).error, DeprecatedOptions_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Functions\n *\n * */\n/* eslint-disable valid-jsdoc */\n/**\n * Set a new option on a root prop, where the option is defined as an array of\n * suboptions.\n * @private\n * @param root\n * @param {Array<string>} optionAsArray\n * @param {*} val\n * @return {void}\n */\nfunction traverseSetOption(root, optionAsArray, val) {\n var opt = root,\n prop,\n i = 0;\n for (; i < optionAsArray.length - 1; ++i) {\n prop = optionAsArray[i];\n opt = opt[prop] = DeprecatedOptions_pick(opt[prop], {});\n }\n opt[optionAsArray[optionAsArray.length - 1]] = val;\n}\n/**\n * If we have a clear root option node for old and new options and a mapping\n * between, we can use this generic function for the copy and warn logic.\n */\nfunction deprecateFromOptionsMap(chart, rootOldAsArray, rootNewAsArray, mapToNewOptions) {\n /**\n * @private\n */\n function getChildProp(root, propAsArray) {\n return propAsArray.reduce(function (acc, cur) {\n return acc[cur];\n }, root);\n }\n var rootOld = getChildProp(chart.options,\n rootOldAsArray),\n rootNew = getChildProp(chart.options,\n rootNewAsArray);\n Object.keys(mapToNewOptions).forEach(function (oldOptionKey) {\n var _a;\n var val = rootOld[oldOptionKey];\n if (typeof val !== 'undefined') {\n traverseSetOption(rootNew, mapToNewOptions[oldOptionKey], val);\n error(32, false, chart, (_a = {},\n _a[rootOldAsArray.join('.') + '.' + oldOptionKey] = (rootNewAsArray.join('.') + '.' +\n mapToNewOptions[oldOptionKey].join('.')),\n _a));\n }\n });\n}\n/**\n * @private\n */\nfunction copyDeprecatedChartOptions(chart) {\n var chartOptions = chart.options.chart,\n a11yOptions = chart.options.accessibility || {};\n ['description', 'typeDescription'].forEach(function (prop) {\n var _a;\n if (chartOptions[prop]) {\n a11yOptions[prop] = chartOptions[prop];\n error(32, false, chart, (_a = {}, _a[\"chart.\".concat(prop)] = \"use accessibility.\".concat(prop), _a));\n }\n });\n}\n/**\n * @private\n */\nfunction copyDeprecatedAxisOptions(chart) {\n chart.axes.forEach(function (axis) {\n var opts = axis.options;\n if (opts && opts.description) {\n opts.accessibility = opts.accessibility || {};\n opts.accessibility.description = opts.description;\n error(32, false, chart, {\n 'axis.description': 'use axis.accessibility.description'\n });\n }\n });\n}\n/**\n * @private\n */\nfunction copyDeprecatedSeriesOptions(chart) {\n // Map of deprecated series options. New options are defined as\n // arrays of paths under series.options.\n var oldToNewSeriesOptions = {\n description: ['accessibility', 'description'],\n exposeElementToA11y: ['accessibility', 'exposeAsGroupOnly'],\n pointDescriptionFormatter: [\n 'accessibility', 'point', 'descriptionFormatter'\n ],\n skipKeyboardNavigation: [\n 'accessibility', 'keyboardNavigation', 'enabled'\n ],\n 'accessibility.pointDescriptionFormatter': [\n 'accessibility', 'point', 'descriptionFormatter'\n ]\n };\n chart.series.forEach(function (series) {\n // Handle series wide options\n Object.keys(oldToNewSeriesOptions).forEach(function (oldOption) {\n var _a;\n var optionVal = series.options[oldOption];\n // Special case\n if (oldOption === 'accessibility.pointDescriptionFormatter') {\n optionVal = (series.options.accessibility &&\n series.options.accessibility\n .pointDescriptionFormatter);\n }\n if (typeof optionVal !== 'undefined') {\n // Set the new option\n traverseSetOption(series.options, oldToNewSeriesOptions[oldOption], \n // Note that skipKeyboardNavigation has inverted option\n // value, since we set enabled rather than disabled\n oldOption === 'skipKeyboardNavigation' ?\n !optionVal : optionVal);\n error(32, false, chart, (_a = {},\n _a[\"series.\".concat(oldOption)] = ('series.' +\n oldToNewSeriesOptions[oldOption].join('.')),\n _a));\n }\n });\n });\n}\n/**\n * @private\n */\nfunction copyDeprecatedTopLevelAccessibilityOptions(chart) {\n deprecateFromOptionsMap(chart, ['accessibility'], ['accessibility'], {\n pointDateFormat: ['point', 'dateFormat'],\n pointDateFormatter: ['point', 'dateFormatter'],\n pointDescriptionFormatter: ['point', 'descriptionFormatter'],\n pointDescriptionThreshold: [\n 'series',\n 'pointDescriptionEnabledThreshold'\n ],\n pointNavigationThreshold: [\n 'keyboardNavigation', 'seriesNavigation',\n 'pointNavigationEnabledThreshold'\n ],\n pointValueDecimals: ['point', 'valueDecimals'],\n pointValuePrefix: ['point', 'valuePrefix'],\n pointValueSuffix: ['point', 'valueSuffix'],\n screenReaderSectionFormatter: [\n 'screenReaderSection',\n 'beforeChartFormatter'\n ],\n describeSingleSeries: ['series', 'describeSingleSeries'],\n seriesDescriptionFormatter: ['series', 'descriptionFormatter'],\n onTableAnchorClick: ['screenReaderSection', 'onViewDataTableClick'],\n axisRangeDateFormat: ['screenReaderSection', 'axisRangeDateFormat']\n });\n}\n/**\n * @private\n */\nfunction copyDeprecatedKeyboardNavigationOptions(chart) {\n deprecateFromOptionsMap(chart, ['accessibility', 'keyboardNavigation'], ['accessibility', 'keyboardNavigation', 'seriesNavigation'], {\n skipNullPoints: ['skipNullPoints'],\n mode: ['mode']\n });\n}\n/**\n * @private\n */\nfunction copyDeprecatedLangOptions(chart) {\n deprecateFromOptionsMap(chart, ['lang', 'accessibility'], ['lang', 'accessibility'], {\n legendItem: ['legend', 'legendItem'],\n legendLabel: ['legend', 'legendLabel'],\n mapZoomIn: ['zoom', 'mapZoomIn'],\n mapZoomOut: ['zoom', 'mapZoomOut'],\n resetZoomButton: ['zoom', 'resetZoomButton'],\n screenReaderRegionLabel: [\n 'screenReaderSection',\n 'beforeRegionLabel'\n ],\n rangeSelectorButton: ['rangeSelector', 'buttonText'],\n rangeSelectorMaxInput: ['rangeSelector', 'maxInputLabel'],\n rangeSelectorMinInput: ['rangeSelector', 'minInputLabel'],\n svgContainerEnd: ['screenReaderSection', 'endOfChartMarker'],\n viewAsDataTable: ['table', 'viewAsDataTableButtonText'],\n tableSummary: ['table', 'tableSummary']\n });\n}\n/**\n * Copy options that are deprecated over to new options. Logs warnings to\n * console if deprecated options are used.\n *\n * @private\n */\nfunction copyDeprecatedOptions(chart) {\n copyDeprecatedChartOptions(chart);\n copyDeprecatedAxisOptions(chart);\n if (chart.series) {\n copyDeprecatedSeriesOptions(chart);\n }\n copyDeprecatedTopLevelAccessibilityOptions(chart);\n copyDeprecatedKeyboardNavigationOptions(chart);\n copyDeprecatedLangOptions(chart);\n}\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var DeprecatedOptions = (copyDeprecatedOptions);\n\n;// ./code/es5/es-modules/Accessibility/Accessibility.js\n/* *\n *\n * (c) 2009-2024 Øystein Moseng\n *\n * Accessibility module for Highcharts\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar Accessibility_defaultOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defaultOptions;\n\nvar Accessibility_doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc;\n\nvar Accessibility_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, Accessibility_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, Accessibility_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, Accessibility_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n\nvar Accessibility_removeElement = Utils_HTMLUtilities.removeElement;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* *\n *\n * Class\n *\n * */\n/**\n * The Accessibility class\n *\n * @private\n * @requires modules/accessibility\n *\n * @class\n * @name Highcharts.Accessibility\n *\n * @param {Highcharts.Chart} chart\n * Chart object\n */\nvar Accessibility = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function Accessibility(chart) {\n this.init(chart);\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Initialize the accessibility class\n * @private\n * @param {Highcharts.Chart} chart\n * Chart object\n */\n Accessibility.prototype.init = function (chart) {\n this.chart = chart;\n // Abort on old browsers\n if (!Accessibility_doc.addEventListener) {\n this.zombie = true;\n this.components = {};\n chart.renderTo.setAttribute('aria-hidden', true);\n return;\n }\n // Copy over any deprecated options that are used. We could do this on\n // every update, but it is probably not needed.\n DeprecatedOptions(chart);\n this.proxyProvider = new Accessibility_ProxyProvider(this.chart);\n this.initComponents();\n this.keyboardNavigation = new Accessibility_KeyboardNavigation(chart, this.components);\n };\n /**\n * @private\n */\n Accessibility.prototype.initComponents = function () {\n var chart = this.chart;\n var proxyProvider = this.proxyProvider;\n var a11yOptions = chart.options.accessibility;\n this.components = {\n container: new Components_ContainerComponent(),\n infoRegions: new Components_InfoRegionsComponent(),\n legend: new Components_LegendComponent(),\n chartMenu: new Components_MenuComponent(),\n rangeSelector: new Components_RangeSelectorComponent(),\n series: new SeriesComponent_SeriesComponent(),\n zoom: new Components_ZoomComponent(),\n navigator: new Components_NavigatorComponent()\n };\n if (a11yOptions.customComponents) {\n Accessibility_extend(this.components, a11yOptions.customComponents);\n }\n var components = this.components;\n this.getComponentOrder().forEach(function (componentName) {\n components[componentName].initBase(chart, proxyProvider);\n components[componentName].init();\n });\n };\n /**\n * Get order to update components in.\n * @private\n */\n Accessibility.prototype.getComponentOrder = function () {\n if (!this.components) {\n return []; // For zombie accessibility object on old browsers\n }\n if (!this.components.series) {\n return Object.keys(this.components);\n }\n var componentsExceptSeries = Object.keys(this.components)\n .filter(function (c) { return c !== 'series'; });\n // Update series first, so that other components can read accessibility\n // info on points.\n return ['series'].concat(componentsExceptSeries);\n };\n /**\n * Update all components.\n */\n Accessibility.prototype.update = function () {\n var components = this.components,\n chart = this.chart,\n a11yOptions = chart.options.accessibility;\n Accessibility_fireEvent(chart, 'beforeA11yUpdate');\n // Update the chart type list as this is used by multiple modules\n chart.types = this.getChartTypes();\n // Update proxies. We don't update proxy positions since most likely we\n // need to recreate the proxies on update.\n var kbdNavOrder = a11yOptions.keyboardNavigation.order;\n this.proxyProvider.updateGroupOrder(kbdNavOrder);\n // Update markup\n this.getComponentOrder().forEach(function (componentName) {\n components[componentName].onChartUpdate();\n Accessibility_fireEvent(chart, 'afterA11yComponentUpdate', {\n name: componentName,\n component: components[componentName]\n });\n });\n // Update keyboard navigation\n this.keyboardNavigation.update(kbdNavOrder);\n // Handle high contrast mode\n // Should only be applied once, and not if explicitly disabled\n if (!chart.highContrastModeActive &&\n a11yOptions.highContrastMode !== false && (HighContrastMode.isHighContrastModeActive() ||\n a11yOptions.highContrastMode === true)) {\n HighContrastMode.setHighContrastTheme(chart);\n }\n Accessibility_fireEvent(chart, 'afterA11yUpdate', {\n accessibility: this\n });\n };\n /**\n * Destroy all elements.\n */\n Accessibility.prototype.destroy = function () {\n var chart = this.chart || {};\n // Destroy components\n var components = this.components;\n Object.keys(components).forEach(function (componentName) {\n components[componentName].destroy();\n components[componentName].destroyBase();\n });\n // Destroy proxy provider\n if (this.proxyProvider) {\n this.proxyProvider.destroy();\n }\n // Remove announcer container\n if (chart.announcerContainer) {\n Accessibility_removeElement(chart.announcerContainer);\n }\n // Kill keyboard nav\n if (this.keyboardNavigation) {\n this.keyboardNavigation.destroy();\n }\n // Hide container from screen readers if it exists\n if (chart.renderTo) {\n chart.renderTo.setAttribute('aria-hidden', true);\n }\n // Remove focus border if it exists\n if (chart.focusElement) {\n chart.focusElement.removeFocusBorder();\n }\n };\n /**\n * Return a list of the types of series we have in the chart.\n * @private\n */\n Accessibility.prototype.getChartTypes = function () {\n var types = {};\n this.chart.series.forEach(function (series) {\n types[series.type] = 1;\n });\n return Object.keys(types);\n };\n return Accessibility;\n}());\n/* *\n *\n * Class Namespace\n *\n * */\n(function (Accessibility) {\n /* *\n *\n * Declarations\n *\n * */\n /* *\n *\n * Constants\n *\n * */\n Accessibility.i18nFormat = A11yI18n.i18nFormat;\n /* *\n *\n * Functions\n *\n * */\n /**\n * Destroy with chart.\n * @private\n */\n function chartOnDestroy() {\n if (this.accessibility) {\n this.accessibility.destroy();\n }\n }\n /**\n * Handle updates to the module and send render updates to components.\n * @private\n */\n function chartOnRender() {\n // Update/destroy\n if (this.a11yDirty && this.renderTo) {\n delete this.a11yDirty;\n this.updateA11yEnabled();\n }\n var a11y = this.accessibility;\n if (a11y && !a11y.zombie) {\n a11y.proxyProvider.updateProxyElementPositions();\n a11y.getComponentOrder().forEach(function (componentName) {\n a11y.components[componentName].onChartRender();\n });\n }\n }\n /**\n * Update with chart/series/point updates.\n * @private\n */\n function chartOnUpdate(e) {\n // Merge new options\n var newOptions = e.options.accessibility;\n if (newOptions) {\n // Handle custom component updating specifically\n if (newOptions.customComponents) {\n this.options.accessibility.customComponents =\n newOptions.customComponents;\n delete newOptions.customComponents;\n }\n Accessibility_merge(true, this.options.accessibility, newOptions);\n // Recreate from scratch\n if (this.accessibility && this.accessibility.destroy) {\n this.accessibility.destroy();\n delete this.accessibility;\n }\n }\n // Mark dirty for update\n this.a11yDirty = true;\n }\n /**\n * @private\n */\n function chartUpdateA11yEnabled() {\n var a11y = this.accessibility;\n var accessibilityOptions = this.options.accessibility,\n svg = this.renderer.boxWrapper.element,\n title = this.title;\n if (accessibilityOptions && accessibilityOptions.enabled) {\n if (a11y && !a11y.zombie) {\n a11y.update();\n }\n else {\n this.accessibility = a11y = new Accessibility(this);\n if (a11y && !a11y.zombie) {\n a11y.update();\n }\n // If a11y has been disabled, and is now enabled\n if (svg.getAttribute('role') === 'img') {\n svg.removeAttribute('role');\n }\n }\n }\n else if (a11y) {\n // Destroy if after update we have a11y and it is disabled\n if (a11y.destroy) {\n a11y.destroy();\n }\n delete this.accessibility;\n }\n else {\n // If a11y has been disabled dynamically or is disabled\n this.renderTo.setAttribute('role', 'img');\n this.renderTo.setAttribute('aria-hidden', false);\n this.renderTo.setAttribute('aria-label', ((title && title.element.textContent) || '').replace(/</g, '<'));\n svg.setAttribute('aria-hidden', true);\n var description = document.getElementsByClassName('highcharts-description')[0];\n if (description) {\n description.setAttribute('aria-hidden', false);\n description.classList.remove('highcharts-linked-description');\n }\n }\n }\n /**\n * @private\n */\n function compose(ChartClass, LegendClass, PointClass, SeriesClass, SVGElementClass, RangeSelectorClass) {\n // Ordered:\n Accessibility_KeyboardNavigation.compose(ChartClass);\n SeriesComponent_NewDataAnnouncer.compose(SeriesClass);\n Components_LegendComponent.compose(ChartClass, LegendClass);\n Components_MenuComponent.compose(ChartClass);\n SeriesComponent_SeriesComponent.compose(ChartClass, PointClass, SeriesClass);\n A11yI18n.compose(ChartClass);\n FocusBorder.compose(ChartClass, SVGElementClass);\n // RangeSelector\n if (RangeSelectorClass) {\n Components_RangeSelectorComponent.compose(ChartClass, RangeSelectorClass);\n }\n var chartProto = ChartClass.prototype;\n if (!chartProto.updateA11yEnabled) {\n chartProto.updateA11yEnabled = chartUpdateA11yEnabled;\n Accessibility_addEvent(ChartClass, 'destroy', chartOnDestroy);\n Accessibility_addEvent(ChartClass, 'render', chartOnRender);\n Accessibility_addEvent(ChartClass, 'update', chartOnUpdate);\n // Mark dirty for update\n ['addSeries', 'init'].forEach(function (event) {\n Accessibility_addEvent(ChartClass, event, function () {\n this.a11yDirty = true;\n });\n });\n // Direct updates (events happen after render)\n ['afterApplyDrilldown', 'drillupall'].forEach(function (event) {\n Accessibility_addEvent(ChartClass, event, function chartOnAfterDrilldown() {\n var a11y = this.accessibility;\n if (a11y && !a11y.zombie) {\n a11y.update();\n }\n });\n });\n Accessibility_addEvent(PointClass, 'update', pointOnUpdate);\n // Mark dirty for update\n ['update', 'updatedData', 'remove'].forEach(function (event) {\n Accessibility_addEvent(SeriesClass, event, function () {\n if (this.chart.accessibility) {\n this.chart.a11yDirty = true;\n }\n });\n });\n }\n }\n Accessibility.compose = compose;\n /**\n * Mark dirty for update.\n * @private\n */\n function pointOnUpdate() {\n if (this.series.chart.accessibility) {\n this.series.chart.a11yDirty = true;\n }\n }\n})(Accessibility || (Accessibility = {}));\n/* *\n *\n * Registry\n *\n * */\n// Add default options\nAccessibility_merge(true, Accessibility_defaultOptions, A11yDefaults, {\n accessibility: {\n highContrastTheme: HighContrastTheme\n },\n lang: LangDefaults\n});\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Accessibility_Accessibility = (Accessibility);\n\n;// ./code/es5/es-modules/masters/modules/accessibility.src.js\n\n\n\n\n\n\n\n\n\nvar G = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n// Classes\nG.i18nFormat = Accessibility_Accessibility.i18nFormat;\nG.A11yChartUtilities = Utils_ChartUtilities;\nG.A11yHTMLUtilities = Utils_HTMLUtilities;\nG.AccessibilityComponent = Accessibility_AccessibilityComponent;\nG.KeyboardNavigationHandler = Accessibility_KeyboardNavigationHandler;\nG.SeriesAccessibilityDescriber = SeriesComponent_SeriesDescriber;\n// Compositions\nAccessibility_Accessibility.compose(G.Chart, G.Legend, G.Point, G.Series, G.SVGElement, G.RangeSelector);\n/* harmony default export */ var accessibility_src = ((highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()));\n\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});"],"names":["root","factory","exports","module","require","define","amd","__WEBPACK_EXTERNAL_MODULE__944__","__WEBPACK_EXTERNAL_MODULE__984__","__WEBPACK_EXTERNAL_MODULE__660__","__WEBPACK_EXTERNAL_MODULE__632__","__WEBPACK_EXTERNAL_MODULE__532__","__WEBPACK_EXTERNAL_MODULE__239__","__WEBPACK_EXTERNAL_MODULE__512__","__WEBPACK_EXTERNAL_MODULE__608__","__WEBPACK_EXTERNAL_MODULE__540__","__WEBPACK_EXTERNAL_MODULE__260__","__WEBPACK_EXTERNAL_MODULE__820__","extendStatics","A11yI18nComposition","FocusBorderComposition","NavigatorConstructor","ScrollbarAxis","ForcedMarkersComposition","__webpack_modules__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","__webpack_exports__","accessibility_src","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default","doc","win","css","simulatedEventTarget","EventTarget","cloneMouseEvent","e","MouseEvent","type","createEvent","evt","initMouseEvent","bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","getFakeMouseEvent","position","pos","x","y","composed","buttons","Utils_HTMLUtilities","addClass","el","className","classList","add","indexOf","cloneTouchEvent","touchListToTouchArray","l","touchArray","i","length","item","push","TouchEvent","newEvent","touches","targetTouches","changedTouches","defaultPrevented","preventDefault","fakeEvt","escapeStringForHTML","str","replace","getElement","id","getElementById","getHeadingTagNameForElement","element","getIncreasedHeadingLevel","tagName","Math","min","headingLevel","parseInt","slice","isHeading","test","getPreviousSiblingsHeading","sibling","previousSibling","getHeadingRecursive","prevSiblingsHeading","parent","parentElement","parentTagName","removeChildNodes","lastChild","removeChild","removeClass","remove","RegExp","removeElement","parentNode","reverseChildNodes","node","childNodes","appendChild","stripHTMLTagsFromString","isForExport","visuallyHideElement","width","height","overflow","whiteSpace","clip","marginTop","filter","opacity","highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_","highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default","format","getNestedProperty","pick","i18nFormat","formatString","context","chart","bracketRes","constRes","tokens","cursor","getFirstBracketStatement","sourceStr","offset","startBracket","endBracket","statement","substring","begin","end","value","forEach","token","formatExtendedStatement","ctx","arr","result","eachStart","pluralStart","indexStart","indexEnd","eachEnd","preEach","postEach","eachArguments","eachStatement","split","lenArg","Number","len","isNaN","pluralEnd","pluralArguments","pluralStatement","trim","arrayName","ix","val","reduce","acc","cur","langFormat","langKey","keys","options","lang","compose","ChartClass","chartProto","A11yI18n","ChartUtilities_doc","stripHTMLTags","defined","find","fireEvent","getSeriesFirstPointElement","series","points","firstPointWithGraphic","p","graphic","getSeriesA11yElement","firstPointEl","graph","group","Utils_ChartUtilities","fireEventOnWrappedOrUnwrappedElement","eventObject","hcEvents","dispatchEvent","getChartTitle","title","text","renderer","forExport","getAxisDescription","axis","_a","_b","accessibility","description","axisTitle","textStr","categories","dateTime","getAxisRangeDescription","range","max","rangeUnit","rangeValue","dateRangeFormat","extremes","axisOptions","rangeDescription","dataMax","dataMin","numCategories","Seconds","Minutes","Hours","Days","unit","toFixed","screenReaderSection","axisRangeDateFormat","time","dateFormat","toString","rangeFrom","rangeTo","getPointFromXY","res","getSeriesFromName","name","s","unhideChartElementFromAT","setAttribute","renderTo","body","Array","hasAttribute","hideSeriesFromAT","seriesEl","scrollAxisToPoint","point","xAxis","yAxis","scrollbar","to","from","getRelativePointAxisPosition","axisStart","toPixels","axisEnd","positionProp","coll","pointPos","updatePosition","trigger","DOMEvent","DOMElementProvider_doc","DOMElementProvider_removeElement","DOMElementProvider","elements","createElement","apply","arguments","splice","destroyCreatedElements","addEvent","EventProvider","eventRemovers","remover","removeEvent","event","map","removeAddedEvents","AccessibilityComponent_fireEventOnWrappedOrUnwrappedElement","AccessibilityComponent_getFakeMouseEvent","AccessibilityComponent","destroy","getKeyboardNavigation","init","onChartRender","onChartUpdate","initBase","proxyProvider","eventProvider","domElementProvider","keyCodes","left","right","up","down","enter","space","esc","tab","pageUp","pageDown","home","fn","fakeClickEvent","destroyBase","KeyboardNavigationHandler_find","KeyboardNavigationHandler","keyCodeMap","validate","terminate","response","success","prev","next","noHandler","fail","run","keyCode","which","handlerCodeSet","codeSet","__extends","b","setPrototypeOf","__proto__","__","constructor","create","ContainerComponent_unhideChartElementFromAT","ContainerComponent_getChartTitle","ContainerComponent_doc","ContainerComponent_stripHTMLTags","ContainerComponent","_super","handleSVGTitleElement","setSVGContainerLabel","setGraphicContainerAttrs","setRenderToAttrs","makeCreditsAccessible","titleId","index","titleContents","chartTitle","titleElement","svgTitleElement","createElementNS","textContent","insertBefore","firstChild","svgContainerLabel","box","label","container","shouldHaveLandmark","landmarkVerbosity","containerLabel","credits","creditsStr","a11y","keyboardNavigation","tabindexContainer","focus","FocusBorder_addEvent","FocusBorder_pick","svgElementBorderUpdateTriggers","chartRenderFocusBorder","focusElement","focusBorderOptions","focusBorder","removeFocusBorder","enabled","addFocusBorder","margin","stroke","style","color","strokeWidth","lineWidth","r","borderRadius","chartSetFocusToElement","svgElement","browserFocusElement","focusin","hideBrowserFocusOutline","outline","renderFocusBorder","svgElementAddFocusBorder","attribs","bb","getBBox","pad","parentGroup","scaleX","scaleY","scaleBoth","oneDefined","abs","lineHeight","fontMetrics","h","translateX","translateY","borderPosX","borderPosY","borderWidth","borderHeight","isLabel","nodeName","posXCorrection","posYCorrection","isRotated","rotation","correction","attr","attrX","attrY","dim","temp","rect","zIndex","styledMode","avgElementAddUpdateFocusBorderHooks","updateParams","_i","focusBorderUpdateHooks","setterKey","origSetter","_defaultSetter","ret","svgElementAddDestroyFocusBorderHook","focusBorderDestroyHook","origDestroy","svgElementRemoveFocusBorder","SVGElementClass","svgElementProto","setFocusToElement","FocusBorder","highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_","highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default","Announcer_doc","Announcer_addClass","Announcer_visuallyHideElement","Announcer","announceRegion","addAnnounceRegion","announce","message","_this","setElementHTML","clearAnnouncementRegionTimer","clearTimeout","setTimeout","innerHTML","emptyHTML","chartContainer","announcerContainer","createAnnouncerContainer","div","AnnotationsA11y_escapeStringForHTML","AnnotationsA11y_stripHTMLTagsFromString","getChartAnnotationLabels","annotations","visible","concat","labels","getLabelText","annotationItems","desc","getAnnotationLabelDescription","a11yDesc","labelText","pointValueDescriptions","valDesc","valueDescription","getAttribute","seriesName","numPoints","pointsSelector","annotationText","annotation","annotationPoint","additionalAnnotationPoints","join","pointLabels","InfoRegionsComponent_extends","TypeError","String","InfoRegionsComponent_getAxisDescription","InfoRegionsComponent_getAxisRangeDescription","InfoRegionsComponent_getChartTitle","InfoRegionsComponent_unhideChartElementFromAT","InfoRegionsComponent_format","InfoRegionsComponent_doc","InfoRegionsComponent_addClass","InfoRegionsComponent_getElement","InfoRegionsComponent_getHeadingTagNameForElement","InfoRegionsComponent_stripHTMLTagsFromString","InfoRegionsComponent_visuallyHideElement","InfoRegionsComponent_attr","InfoRegionsComponent_pick","replaceNested","stripEmptyHTMLTags","InfoRegionsComponent","screenReaderSections","component","initRegionsDefinitions","onDataTableCreated","wasHidden","dataTableDiv","focusDataTable","viewDataTableButton","exporting","updateAllScreenReaderSections","announcer","accessibilityOptions","before","buildContent","formatter","beforeChartFormatter","defaultBeforeChartFormatter","insertIntoDOM","afterInserted","sonifyButtonId","initSonifyButton","dataTableButtonId","initDataTableButton","after","afterChartFormatter","defaultAfterChartFormatter","nextSibling","updateExitAnchor","linkedDescriptionElement","getLinkedDescriptionElement","setLinkedDescriptionAttrs","regionKey","updateScreenReaderSection","linkedDescOption","chartOptions","linkedDescription","query","queryMatch","querySelectorAll","region","content","sectionDiv","hiddenDiv","setScreenReaderSectionAttribs","beforeChartFormat","axesDesc","getAxesDescription","shouldHaveSonifyBtn","sonify","sonification","annotationsList","InfoRegionsComponent_getAnnotationsInfoHTML","annotationsTitleStr","headingTagName","typeDescription","getTypeDescriptionText","chartSubtitle","getSubtitleText","chartLongdesc","getLongdescText","xAxisDescription","yAxisDescription","playAsSoundButton","getSonifyButtonText","viewTableButton","getCSV","getDataTableButtonText","annotationsTitle","formattedString","afterChartFormat","endOfChartMarker","getEndOfChartMarkerText","getLinkedDescription","captionOptions","caption","captionText","types","firstType","typeExplanation","multi","firstSeries","mapTitle","formatContext","mapView","geoMap","numSeries","buttonId","subtitle","endMarker","outerHTML","markerText","attributes","tree","tabindex","summary","tableDiv","table","getElementsByTagName","sonifyButton","defaultHandler","stopPropagation","announceMsg","removeAttribute","onclick","onPlayAsSoundClick","tableButtonId","tableId","onViewDataTableClick","viewData","shouldDescribeColl","collectionKey","defaultCondition","axes","hasNoMap","hasCartesian","hasCartesianSeries","showXAxes","angular","showYAxes","getAxisDescriptionText","names","ranges","numAxes","MenuComponent_extends","MenuComponent_attr","MenuComponent_getChartTitle","MenuComponent_unhideChartElementFromAT","MenuComponent_getFakeMouseEvent","getExportMenuButtonElement","exportSVGElements","MenuComponent","onMenuShown","onMenuHidden","createProxyGroup","menu","exportContextMenu","setExportButtonExpandedState","addAccessibleContextMenuAttribs","stateStr","exportButtonProxy","innerElement","focusEl","clearGroup","proxyMenuButton","exportingGroup","exportingOpts","exportButton","buttonEl","exportingShouldHaveA11y","addProxyElement","click","contextButtonTitle","addGroup","exportList","exportDivElements","children","parentDiv","role","onKbdPrevious","onKbdNext","onKbdClick","proxy","svgEl","hideExportMenu","keyboardNavigationHandler","a11yOptions","highlightedExportItemIx","highlightExportItem","wrapAround","highlightLastExportItem","curHighlightedItem","exportButtonElement","openMenu","chartShowExportMenu","chartHideExportMenu","onmouseout","hideMenu","chartHighlightExportItem","listItem","curHighlighted","hasSVGFocusSupport","onmouseover","chartHighlightLastExportItem","showExportMenu","Components_MenuComponent","KeyboardNavigation_doc","KeyboardNavigation_win","KeyboardNavigation_addEvent","KeyboardNavigation_defined","KeyboardNavigation_fireEvent","KeyboardNavigation_getElement","KeyboardNavigation_simulatedEventTarget","KeyboardNavigation","components","currentModuleIx","NaN","modules","ep","update","onKeydown","onFocus","eventName","onMouseUp","isClickingChart","order","keyboardOptions","updateContainerTabindex","componentName","navModules","removeExitAnchor","makeElementAnExitAnchor","exitAnchor","createExitAnchor","move","direction","curModule","newModule","exiting","focusComesFromChart","contains","tabbingInBackwards","getFirstValidModuleIx","keyboardReset","target","curMod","ev","curNavModule","shouldHaveTabindex","curTabindex","chartTabindex","addExitAnchorEventsToEl","comingInBackwards","mod","chartDismissPopupContent","tooltip","hide","documentOnKeydown","charts","dismissPopupContent","Accessibility_KeyboardNavigation","highcharts_Legend_commonjs_highcharts_Legend_commonjs2_highcharts_Legend_root_Highcharts_Legend_","highcharts_Legend_commonjs_highcharts_Legend_commonjs2_highcharts_Legend_root_Highcharts_Legend_default","LegendComponent_extends","animObject","LegendComponent_doc","LegendComponent_addEvent","LegendComponent_fireEvent","isNumber","LegendComponent_pick","syncTimeout","LegendComponent_getChartTitle","LegendComponent_stripHTMLTags","LegendComponent_addClass","LegendComponent_removeClass","shouldDoLegendA11y","items","legend","allItems","legendA11yOptions","unsupportedColorAxis","colorAxis","some","c","dataClasses","setLegendItemHoverState","hoverActive","legendItem","setState","LegendComponent","highlightedLegendItemIx","proxyGroup","recreateProxies","updateGroupProxyElementPositions","updateLegendItemProxyVisibility","highlightLegendItem","updateProxyPositionForItem","globalAnimation","duration","curPage","currentPage","clipHeight","a11yProxyElement","hasPages","pages","proxyEl","itemPage","pageIx","round","visibility","removeProxies","highlightAdjacentLegendPage","newPageIx","curPageIx","refreshPosition","focusedElement","activeElement","shouldRestoreFocus","addLegendProxyGroup","proxyLegendItems","updateLegendTitle","removeGroup","legendTitle","legendLabel","updateGroupAttrs","groupRole","proxyLegendItem","itemLabel","itemName","proxyPositioningElement","visual","onKbdArrowKey","shouldHaveLegendNavigation","numItems","legendOptions","display","chartHighlightLegendItem","oldIx","itemToHighlight","scroll","legendItemProp","proxyBtn","legendOnAfterColorizeItem","LegendClass","Components_LegendComponent","highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_","highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_default","isTouchDevice","ChartNavigatorComposition_addEvent","merge","ChartNavigatorComposition_pick","composedMembers","onChartAfterAddSeries","navigator","setBaseSeries","onChartAfterSetChartSize","scrollbarHeight","scrollButtonSize","inverted","opposite","chartWidth","spacing","top","plotTop","plotLeft","navigatorOptions","chartHeight","rangeSelector","extraBottomMargin","getHeight","verticalAlign","layout","floating","legendHeight","titleOffset","setAxisSize","onChartAfterUpdate","scroller","redraw","animation","onChartBeforeRender","onChartBeforeShowResetZoom","zooming","pinchType","onChartCallback","getExtremes","render","scrollbarOptions","NavigatorClass","pushUnique","callbacks","NavigatorAxisComposition_isTouchDevice","NavigatorAxisComposition_addEvent","correctFloat","NavigatorAxisComposition_defined","NavigatorAxisComposition_isNumber","NavigatorAxisComposition_pick","onAxisInit","navigatorAxis","NavigatorAxisAdditions","onAxisSetExtremes","zoomed","zoomType","isXAxis","previousZoom","AxisClass","keepProps","includes","toFixedRange","pxMin","pxMax","fixedMin","fixedMax","halfPointRange","pointRange","newMin","translate","horiz","newMax","highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_","highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default","highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_","highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default","parse","seriesTypes","NavigatorDefaults","maskInside","handles","symbols","backgroundColor","borderColor","maskFill","setOpacity","outlineColor","outlineWidth","areaspline","fillOpacity","compare","dataGrouping","approximation","groupPixelWidth","firstAnchor","anchor","lastAnchor","units","dataLabels","lineColor","marker","threshold","tickLength","gridLineColor","gridLineWidth","tickPixelInterval","align","fontSize","textOutline","crosshair","startOnTick","endOnTick","minPadding","maxPadding","tickWidth","__spreadArray","pack","ar","relativeLength","Navigator_NavigatorSymbols","_x","_y","w","halfWidth","markerPosition","highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_","highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_default","StockUtilities_defined","setOptions","getRendererType","NavigatorComposition_setFixedRange","Utilities_StockUtilities","setFixedRange","fixedRange","NavigatorComposition_addEvent","extend","onSeriesAfterUpdate","isInternal","SeriesClass","NavigatorAxisComposition","ScrollbarAxis_composed","ScrollbarAxis_addEvent","ScrollbarAxis_defined","ScrollbarAxis_pick","ScrollbarAxis_pushUnique","Scrollbar","axisMin","axisMax","scrollMin","Infinity","scrollMax","onAxisAfterGetOffset","scrollbarsOffsets","axisOffset","size","onAxisAfterInit","vertical","unitedMin","unitedMax","reversed","shouldUpdateExtremes","DOMType","animate","setExtremes","setRange","onAxisAfterRender","offsetsIndex","axisTitleMargin","axisMargin","xPosition","interval","ScrollbarClass","Axis_ScrollbarAxis","Scrollbar_ScrollbarDefaults","barBorderRadius","buttonBorderRadius","buttonsEnabled","liveRedraw","minWidth","step","barBackgroundColor","barBorderWidth","barBorderColor","buttonArrowColor","buttonBackgroundColor","buttonBorderColor","buttonBorderWidth","rifleColor","trackBackgroundColor","trackBorderColor","trackBorderRadius","trackBorderWidth","defaultOptions","Scrollbar_addEvent","Scrollbar_correctFloat","crisp","Scrollbar_defined","destroyObjectProperties","Scrollbar_fireEvent","Scrollbar_merge","Scrollbar_pick","_events","chartX","chartY","scrollbarButtons","scrollbarLeft","scrollbarStrokeWidth","scrollbarTop","swapXY","path","seg","addEvents","buttonsOrder","bar","scrollbarGroup","track","mouseDownHandler","bind","mouseMoveHandler","mouseUpHandler","buttonToMinClick","buttonToMaxClick","trackClick","ownerDocument","args","cursorToScrollbarPosition","normalizedEvent","minWidthDifference","calculatedWidth","xOffset","barWidth","yOffset","removeEvents","drawScrollbarButton","g","fill","arrow","userOptions","pointer","normalize","mousePosition","initPositions","grabbedCenter","change","chartPosition","hasDragged","method","rendered","show","scrollbarRifles","fromPX","newSize","fullWidth","toPX","ceil","newPos","floor","newRiflesPos","showFull","eventType","svg","boosted","highcharts_SVGRenderer_commonjs_highcharts_SVGRenderer_commonjs2_highcharts_SVGRenderer_root_Highcharts_SVGRenderer_","highcharts_SVGRenderer_commonjs_highcharts_SVGRenderer_commonjs2_highcharts_SVGRenderer_root_Highcharts_SVGRenderer_default","__assign","assign","t","Navigator_defaultOptions","Navigator_isTouchDevice","Navigator_addEvent","clamp","Navigator_correctFloat","Navigator_defined","Navigator_destroyObjectProperties","erase","Navigator_extend","Navigator_find","Navigator_fireEvent","isArray","Navigator_isNumber","Navigator_merge","Navigator_pick","Navigator_removeEvent","splat","numExt","extreme","numbers","Navigator","isDirty","Navigator_ChartNavigatorComposition","Navigator_NavigatorComposition","drawHandle","verb","drawOutline","zoomedMin","zoomedMax","verticalMin","halfOutline","outlineCorrection","navigatorSize","navigatorTop","lineTop","lineBtm","drawMasks","navigatorHeight","shades","shade","renderElements","mouseCursor","navigatorGroup","hasMask","handlesOptions_1","height_1","width_1","symbolName","symbolUrl","isImg","symbolFn","symbol","addMouseEvents","rotationOriginX","rotationOriginY","_c","_d","invertedUpdate","setOpposite","navigatorEnabled","adaptToUpdatedData","baseSeries","updatedDataHandler","eventsToUnbind","offsets","getXAxisOffsets","navigatorWidth","scrollbarXAxis","fake","minRange","maxRange","plotWidth","plotHeight","toValue","currentRange","grabbedLeft","grabbedRight","fixedWidth","onMouseMove","getPartsEvents","modifyNavigatorAxisExtremes","events","navigatorItem","shadesMousedown","ext","navigatorPosition","dragOffset","reversedExtremes","getUnionExtremes","eventArguments","handlesMousedown","baseXAxis","reverse","otherHandlePos","fixedExtreme","pageX","unionExtremes","triggerOp","unbind","removeBaseSeriesEvents","modifyBaseAxisExtremes","scrollbarEnabled","xAxisIndex","yAxisIndex","baseXaxis","isDirtyBox","breaks","ordinal","overscroll","keepOrdinalPadding","zoomEnabled","alignTicks","data","updateNavigatorSeries","unbindRedraw","scrollTrackWidth","valueRange","addBaseSeriesEvents","addChartEvents","Boolean","returnFalseOnNoBaseSeries","baseAxis","navAxis","navAxisOptions","baseAxisOptions","baseSeriesOptions","showInNavigator","baseOptions","mergedNavSeriesOptions","baseNavigatorOptions","navSeriesMixin","enableMouseTracking","linkedTo","padXAxis","showInLegend","stacking","states","inactive","navigatorSeries","navSeries","base","chartNavigatorSeriesOptions","linkedNavSeries","userNavOptions","plotOptions","navigatorSeriesData","hasNavigatorData","initSeries","setSortedData","userSeriesOptions","colors","setVisible","getBaseSeriesMin","currentSeriesMin","getColumn","baseExtremes","baseMin","baseMax","baseDataMin","baseDataMax","stickToMin","stickToMax","convertOverscroll","hasSetExtremes","eventArgs","xData","MAX_VALUE","userMin","userMax","shouldStickToMax","shouldStickToMin","pointStart","setData","xDataMin","marginName","NavigatorComponent_extends","NavigatorComponent_animObject","NavigatorComponent_format","NavigatorComponent_clamp","NavigatorComponent_pick","NavigatorComponent_syncTimeout","NavigatorComponent_getFakeMouseEvent","NavigatorComponent_getAxisRangeDescription","NavigatorComponent_fireEventOnWrappedOrUnwrappedElement","NavigatorComponent","updateHandleValues","verbosity","groupFormatStr","groupLabel","handleFormatStr_1","handleLabel","handle","getHandleByIx","handleIx","pointerEvents","oninput","updateNavigator","getNavigatorHandleNavigation","maxHandleProxy","minHandleProxy","delta","parseFloat","updateNavigatorThrottleTimer","length_1","beforeAnnounce","performUpdate","chartPos_1","getChartPosition","minNewX","maxNewX","announceFormatStr","changeAnnouncement","axisRangeDescription","SeriesDescriber_getAxisDescription","SeriesDescriber_getSeriesFirstPointElement","SeriesDescriber_getSeriesA11yElement","SeriesDescriber_unhideChartElementFromAT","SeriesDescriber_format","numberFormat","SeriesDescriber_reverseChildNodes","SeriesDescriber_stripHTMLTags","SeriesDescriber_find","SeriesDescriber_isNumber","isString","SeriesDescriber_pick","SeriesDescriber_defined","hasMorePointsThanDescriptionThreshold","chartA11yOptions","pointDescriptionEnabledThreshold","pointNumberToString","a11yPointOptions","seriesA11yPointOptions","tooltipOptions","valueDecimals","decimalPoint","thousandsSep","getSeriesAxisDescriptionText","axisCollection","defaultPointDescriptionFormatter","pre","suf","keyToValStr","a11yPointOpts","seriesA11yPointOpts","valuePrefix","valueSuffix","fallbackKey","fallbackDesc","timeDesc","pointCategory","canUseId","fallback","seriesA11yOptions","pointValueDescriptionFormat","showXDescription","xDesc","shouldExposeSeriesName","valText","seriesValueDescFormat","valueDescriptionFormat","getPointA11yTimeDescription","dateXAxis","tooltipDateFormat","getXDateFormat","dateTimeLabelFormats","dateFormatter","category","xDescription","isNull","pointArrayMap","prefix","suffix","num","propDesc","separator","seriesNameText","annotationsDesc","SeriesDescriber_getPointAnnotationTexts","defaultSeriesDescriptionFormatter","descOpt","chartTypes","shouldDescribeAxis","seriesNumber","xAxisInfo","yAxisInfo","summaryContext","combinationSuffix","axisDescription","descriptionFormat","seriesDescription","authorDescription","SeriesComponent_SeriesDescriber","describeSeries","seriesNavOptions","setScreenReaderProps","setKeyboardProps","shouldDescribeNullPoints","chartHas3d","hasMultipleSeries","describeSingleSeriesOption","exposeAsGroupOnlyOption","is3d","exposeAsGroupOnly","seriesNavigation","pointNavigationEnabledThreshold","describeNull","isSunburst","shouldDescribeNull","seriesPointA11yOptions","pointEl","shouldAddMockPoint","is","addMockPointElement","sourcePointIndex","mock","firstGraphic","mockPos","plotX","plotY","mockElement","hasMockGraphic","pointA11yDisabled","descriptionFormatter","pointElement","options3d","describeSingleSeries","seriesElement","NewDataAnnouncer_composed","NewDataAnnouncer_addEvent","NewDataAnnouncer_defined","NewDataAnnouncer_pushUnique","NewDataAnnouncer_getChartTitle","NewDataAnnouncer_defaultPointDescriptionFormatter","NewDataAnnouncer_defaultSeriesDescriptionFormatter","chartHasAnnounceEnabled","announceNewData","NewDataAnnouncer","dirty","allSeries","lastAnnouncementTime","announceType","announceOptions","interruptUser","addEventListeners","onSeriesAdded","announceDirtyData","hasDirty","newSeries","candidates","newPoint","candidate","queueAnnouncement","dirtySeries","annOptions","uniqueSeries","now","Date","dTime","minAnnounceInterval","arrayA","queuedAnnouncement","arrayB","buildAnnouncementMessage","queuedAnnouncementTimer","announcementFormatter","formatterRes","multiple","seriesDesc","pointDesc","seriesOnAddPoint","newDataAnnouncer","seriesOnUpdatedData","SeriesComponent_NewDataAnnouncer","ProxyElement_doc","ProxyElement_attr","ProxyElement_css","ProxyElement_merge","ProxyElement_fireEventOnWrappedOrUnwrappedElement","ProxyElement_cloneMouseEvent","ProxyElement_cloneTouchEvent","ProxyElement_getFakeMouseEvent","ProxyElement_removeElement","ProxyElement","proxyElementType","wrapperElementType","innerEl","wrapperEl","hideElementVisually","listStyle","updateTarget","getTargetPosition","fakeEventObject","updateCSSClassName","attrs","targetAriaLabel","getTargetAttr","addProxyEventsToElement","bBox","stringHasNoTooltip","groupDiv","noTooltipOnGroup","noTooltipOnTarget","evtType","isTouchEvent","clonedEvent","passive","padding","clickTarget","clickTargetElement","posElement","chartDiv","getBoundingClientRect","rectEl","chartPos","bottom","ProxyProvider_doc","ProxyProvider_attr","ProxyProvider_css","ProxyProvider_unhideChartElementFromAT","ProxyProvider_removeChildNodes","ProxyProvider","groups","groupOrder","beforeChartProxyPosContainer","createProxyPosContainer","afterChartProxyPosContainer","groupKey","Error","proxyContainerElement","proxyElements","groupElementType","groupElement","existingGroup","proxyContainer","updateGroupOrder","groupKeys","isDOMOrderGroupOrder","seriesIx","beforeKeys","afterKeys","posContainer","updatePosContainerPositions","updateProxyElementPositions","classNamePostfix","getCurrentGroupOrderInDOM","getGroupKeyFromElement","allGroups","getChildrenGroupOrder","childrenOrder","domOrder","groupOrderWithGroups","rendererSVGEl","RangeSelectorComponent_extends","RangeSelectorComponent_unhideChartElementFromAT","RangeSelectorComponent_getAxisRangeDescription","RangeSelectorComponent_addEvent","RangeSelectorComponent_attr","RangeSelectorComponent","updateSelectorVisibility","setDropdownAttrs","setRangeButtonAttrs","maxInput","minInput","input","setRangeInputAttrs","dropdown","hideFromAT","hasVisibleDropdown","btn","rangeTitle","rangeSelectorZoom","onButtonNavKbdArrowKey","highlightRangeSelectorButton","highlightedRangeSelectorItemIx","onButtonNavKbdClick","oldRangeSelectorItemState","onAfterBtnClick","announcement","onInputKbdMove","rangeSel","newIx","highlightedInputRangeIx","inputEl","onInputNavInit","buttonIxToHighlight","removeInputKeydownHandler","keydownHandler","minRemover_1","maxRemover_1","onInputNavTerminate","hideInput","initDropdownNav","buttonGroup","removeDropdownKeydownHandler","isTab","getRangeSelectorButtonNavigation","lastButtonIx","getRangeSelectorInputNavigation","inputGroup","inputEnabled","chartHighlightRangeSelectorButton","curHighlightedIx","curSelectedIx","selected","state","rangeSelectorAfterBtnClick","RangeSelectorClass","Components_RangeSelectorComponent","ForcedMarkers_composed","ForcedMarkers_addEvent","ForcedMarkers_merge","ForcedMarkers_pushUnique","forceZeroOpacityMarkerOptions","normal","getPointMarkerOpacity","pointOptions","hasIndividualPointMarkerOptions","_hasPointMarkers","seriesOnAfterRender","markerGroup","a11yMarkersForced","hasForcedA11yMarker","seriesOnAfterSetOptions","resetA11yMarkerOptions","seriesOnRender","chartA11yEnabled","seriesA11yEnabled","handleForcePointMarkers","hadForcedMarker","isStillForcedMarker","unforceSeriesMarkerOptions","resetMarkerOptions","originalOpacity","seriesOnRenderCanvas","ForcedMarkers","highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_","highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_default","highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_","highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_default","SeriesKeyboardNavigation_assign","SeriesKeyboardNavigation_seriesTypes","SeriesKeyboardNavigation_doc","SeriesKeyboardNavigation_defined","SeriesKeyboardNavigation_fireEvent","SeriesKeyboardNavigation_getPointFromXY","SeriesKeyboardNavigation_getSeriesFromName","SeriesKeyboardNavigation_scrollAxisToPoint","getPointIndex","isSkipSeries","seriesKbdNavOptions","isSkipPoint","skipNullPoints","isInside","getFirstValidPointInChart","getFirstValidPointInSeries","highlightLastValidPointInChart","highlightedPoint","highlightNextValidPoint","highlightFirstValidPointInChart","highlight","SeriesKeyboardNavigation","onSeriesDestroy","lastDrilledDownPoint","onDrillupAll","focusedElClassName","isProxyFocused","last","getKeyboardNavigationHandler","onKbdSideways","onKbdVertical","firePointEvent","highlightAdjacentSeries","onHandlerInit","onHandlerTerminate","handler","isNext","attemptHighlightAdjacentPoint","kbdNavOptions","rememberPointFocus","navOptions","mode","highlightMethod","keyboardMoveVertical","hoverSeries","onMouseOut","directionIsNext","highlightAdjacentPoint","chartHighlightAdjacentPoint","curPoint","curPointIndex","curPoints","lastSeries","lastPoint","chartHighlightAdjacentPointVertical","bestPoint","minDistance","yDistance","distance","chartHighlightAdjacentSeries","adjacentNewPoint","getClosestPoint","xWeight","yWeight","dPoint","minIx","hasUndefinedPosition","pointHighlight","highlightVisually","tooltipElement","onMouseOver","tooltipTop","scrollTop","window","scrollY","scrollTo","behavior","seriesHighlightNextValidPoint","start","j","PointClass","pointProto","seriesProto","highlightAdjacentPointVertical","SeriesComponent_SeriesKeyboardNavigation","SeriesComponent_extends","SeriesComponent_hideSeriesFromAT","SeriesComponent_describeSeries","SeriesComponent","hideTooltipFromATWhenShown","hideSeriesLabelsFromATWhenShown","labelBySeries","getPointsCollection","ZoomComponent_extends","ZoomComponent_unhideChartElementFromAT","ZoomComponent_getFakeMouseEvent","ZoomComponent_attr","ZoomComponent_pick","ZoomComponent","focusedMapNavButtonIx","updateProxyOverlays","mapNavigation","navButtons","setMapNavButtonAttrs","labelFormatKey","resetZoomButton","createZoomProxyButton","drillUpButton","breadcrumbs","list","lastBreadcrumb","buttonText","getButtonText","buttonProp","getMapZoomNavigation","onMapKbdArrow","_keyCode","onMapKbdTab","onMapKbdClick","onMapNavInit","isY","stepDirection","diff","random","startPos","offsetLeft","offsetTop","endPos","isBackwards","isMoveOutOfRange","zoomBy","zoomIn","zoomOut","initialButton","simpleButtonNavigation","proxyProp","onClick","_handler","drillUp","HighContrastMode_doc","isMS","HighContrastMode_win","HighContrastMode","isHighContrastModeActive","isEdge","userAgent","matchMedia","matches","getComputedStyle","testDiv","backgroundImage","bi","currentStyle","setHighContrastTheme","highContrastModeActive","theme","highContrastTheme","hasCustomColors","plotOpts","fillColor","colorIndex","seriesOptions","error","DeprecatedOptions_pick","traverseSetOption","optionAsArray","opt","deprecateFromOptionsMap","rootOldAsArray","rootNewAsArray","mapToNewOptions","getChildProp","propAsArray","rootOld","rootNew","oldOptionKey","DeprecatedOptions","copyDeprecatedAxisOptions","opts","copyDeprecatedSeriesOptions","oldToNewSeriesOptions","exposeElementToA11y","pointDescriptionFormatter","skipKeyboardNavigation","oldOption","optionVal","pointDateFormat","pointDateFormatter","pointDescriptionThreshold","pointNavigationThreshold","pointValueDecimals","pointValuePrefix","pointValueSuffix","screenReaderSectionFormatter","seriesDescriptionFormatter","onTableAnchorClick","mapZoomIn","mapZoomOut","screenReaderRegionLabel","rangeSelectorButton","rangeSelectorMaxInput","rangeSelectorMinInput","svgContainerEnd","viewAsDataTable","tableSummary","Accessibility_defaultOptions","Accessibility_doc","Accessibility_addEvent","Accessibility_extend","Accessibility_fireEvent","Accessibility_merge","Accessibility_removeElement","Accessibility","addEventListener","zombie","initComponents","infoRegions","chartMenu","zoom","customComponents","getComponentOrder","getChartTypes","kbdNavOrder","highContrastMode","chartOnDestroy","chartOnRender","a11yDirty","updateA11yEnabled","chartOnUpdate","newOptions","chartUpdateA11yEnabled","boxWrapper","document","getElementsByClassName","pointOnUpdate","SeriesComponent_SeriesComponent","minColor","maxColor","stops","minorGridLineColor","tickColor","edgeColor","connectorColor","pie","boxplot","candlestick","errorbar","itemStyle","itemHoverStyle","itemHiddenStyle","drilldown","activeAxisLabelStyle","activeDataLabelStyle","navigation","buttonOptions","symbolStroke","buttonTheme","hover","select","inputBoxBorderColor","inputStyle","labelStyle","defaultChartTitle","chartContainerLabel","svgContainerTitle","graphicContainerLabel","beforeRegionLabel","afterRegionLabel","heading","descriptionSinglePoint","descriptionMultiplePoints","descriptionNoPoints","playAsSoundButtonText","playAsSoundClickAnnouncement","legendLabelNoTitle","dropdownLabel","minInputLabel","maxInputLabel","clickButtonAnnouncement","viewAsDataTableButtonText","newDataAnnounce","newSeriesAnnounceSingle","newPointAnnounceSingle","newSeriesAnnounceMultiple","newPointAnnounceMultiple","seriesTypeDescriptions","arearange","areasplinerange","bubble","columnrange","funnel","pyramid","waterfall","emptyChart","mapTypeDescription","unknownMap","combinationChart","defaultSingle","defaultMultiple","splineSingle","splineMultiple","lineSingle","lineMultiple","columnSingle","columnMultiple","barSingle","barMultiple","pieSingle","pieMultiple","scatterSingle","scatterMultiple","boxplotSingle","boxplotMultiple","bubbleSingle","bubbleMultiple","xAxisDescriptionSingular","xAxisDescriptionPlural","yAxisDescriptionSingular","yAxisDescriptionPlural","timeRangeDays","timeRangeHours","timeRangeMinutes","timeRangeSeconds","rangeFromTo","rangeCategories","chartMenuLabel","menuButtonLabel","defaultCombination","line","lineCombination","spline","splineCombination","column","columnCombination","barCombination","pieCombination","scatter","scatterCombination","boxplotCombination","bubbleCombination","mapCombination","mapline","maplineCombination","mapbubble","mapbubbleCombination","nullPointValue","pointAnnotationsDescription","Accessibility_Accessibility","G","A11yChartUtilities","A11yHTMLUtilities","SeriesAccessibilityDescriber","Chart","Legend","Point","Series","SVGElement","RangeSelector"],"mappings":"CAYA,AAZA;;;;;;;;;;;CAWC,EACA,SAA0CA,CAAI,CAAEC,CAAO,EACpD,AAAmB,UAAnB,OAAOC,SAAwB,AAAkB,UAAlB,OAAOC,OACxCA,OAAOD,OAAO,CAAGD,EAAQG,QAAQ,cAAeA,QAAQ,cAAc,UAAa,CAAEA,QAAQ,cAAc,GAAM,CAAEA,QAAQ,cAAc,MAAS,CAAEA,QAAQ,cAAc,IAAO,CAAEA,QAAQ,cAAc,KAAQ,CAAEA,QAAQ,cAAc,cAAiB,CAAEA,QAAQ,cAAc,gBAAmB,CAAEA,QAAQ,cAAc,WAAc,CAAEA,QAAQ,cAAc,KAAQ,CAAEA,QAAQ,cAAc,MAAS,EACrY,AAAkB,YAAlB,OAAOC,QAAyBA,OAAOC,GAAG,CACjDD,OAAO,mCAAoC,CAAC,CAAC,wBAAwB,CAAE,CAAC,wBAAwB,aAAa,CAAE,CAAC,wBAAwB,MAAM,CAAE,CAAC,wBAAwB,SAAS,CAAE,CAAC,wBAAwB,OAAO,CAAE,CAAC,wBAAwB,QAAQ,CAAE,CAAC,wBAAwB,iBAAiB,CAAE,CAAC,wBAAwB,mBAAmB,CAAE,CAAC,wBAAwB,cAAc,CAAE,CAAC,wBAAwB,QAAQ,CAAE,CAAC,wBAAwB,SAAS,CAAC,CAAEJ,GAC7b,AAAmB,UAAnB,OAAOC,QACdA,OAAO,CAAC,mCAAmC,CAAGD,EAAQG,QAAQ,cAAeA,QAAQ,cAAc,UAAa,CAAEA,QAAQ,cAAc,GAAM,CAAEA,QAAQ,cAAc,MAAS,CAAEA,QAAQ,cAAc,IAAO,CAAEA,QAAQ,cAAc,KAAQ,CAAEA,QAAQ,cAAc,cAAiB,CAAEA,QAAQ,cAAc,gBAAmB,CAAEA,QAAQ,cAAc,WAAc,CAAEA,QAAQ,cAAc,KAAQ,CAAEA,QAAQ,cAAc,MAAS,EAEzaJ,EAAK,UAAa,CAAGC,EAAQD,EAAK,UAAa,CAAEA,EAAK,UAAa,CAAC,UAAa,CAAEA,EAAK,UAAa,CAAC,GAAM,CAAEA,EAAK,UAAa,CAAC,MAAS,CAAEA,EAAK,UAAa,CAAC,IAAO,CAAEA,EAAK,UAAa,CAAC,KAAQ,CAAEA,EAAK,UAAa,CAAC,cAAiB,CAAEA,EAAK,UAAa,CAAC,gBAAmB,CAAEA,EAAK,UAAa,CAAC,WAAc,CAAEA,EAAK,UAAa,CAAC,KAAQ,CAAEA,EAAK,UAAa,CAAC,MAAS,CACjX,EAAG,IAAI,CAAE,SAASO,CAAgC,CAAEC,CAAgC,CAAEC,CAAgC,CAAEC,CAAgC,CAAEC,CAAgC,CAAEC,CAAgC,CAAEC,CAAgC,CAAEC,CAAgC,CAAEC,CAAgC,CAAEC,CAAgC,CAAEC,CAAgC,EACtY,OAAgB,AAAC,WACP,aACA,IAy/CFC,EA4uBAA,EAmmBAA,EAu6BAA,EAikJAA,EAqnDAA,EA0gDAA,EA4JAA,EA3lWJC,EAurCAC,EAylFAC,EAgzCAC,EAg4JAC,EAh7UUC,EAAuB,CAE/B,IACC,SAASrB,CAAM,EAEtBA,EAAOD,OAAO,CAAGO,CAEX,EAEA,IACC,SAASN,CAAM,EAEtBA,EAAOD,OAAO,CAAGS,CAEX,EAEA,IACC,SAASR,CAAM,EAEtBA,EAAOD,OAAO,CAAGU,CAEX,EAEA,IACC,SAAST,CAAM,EAEtBA,EAAOD,OAAO,CAAGQ,CAEX,EAEA,IACC,SAASP,CAAM,EAEtBA,EAAOD,OAAO,CAAGc,CAEX,EAEA,IACC,SAASb,CAAM,EAEtBA,EAAOD,OAAO,CAAGY,CAEX,EAEA,IACC,SAASX,CAAM,EAEtBA,EAAOD,OAAO,CAAGa,CAEX,EAEA,IACC,SAASZ,CAAM,EAEtBA,EAAOD,OAAO,CAAGe,CAEX,EAEA,IACC,SAASd,CAAM,EAEtBA,EAAOD,OAAO,CAAGW,CAEX,EAEA,IACC,SAASV,CAAM,EAEtBA,EAAOD,OAAO,CAAGM,CAEX,EAEA,IACC,SAASL,CAAM,EAEtBA,EAAOD,OAAO,CAAGK,CAEX,CAEI,EAGIkB,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,CAAQ,EAEpC,IAAIC,EAAeH,CAAwB,CAACE,EAAS,CACrD,GAAIC,AAAiBC,KAAAA,IAAjBD,EACH,OAAOA,EAAa1B,OAAO,CAG5B,IAAIC,EAASsB,CAAwB,CAACE,EAAS,CAAG,CAGjDzB,QAAS,CAAC,CACX,EAMA,OAHAsB,CAAmB,CAACG,EAAS,CAACxB,EAAQA,EAAOD,OAAO,CAAEwB,GAG/CvB,EAAOD,OAAO,AACtB,CAMCwB,EAAoBI,CAAC,CAAG,SAAS3B,CAAM,EACtC,IAAI4B,EAAS5B,GAAUA,EAAO6B,UAAU,CACvC,WAAa,OAAO7B,EAAO,OAAU,AAAE,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADAuB,EAAoBO,CAAC,CAACF,EAAQ,CAAEG,EAAGH,CAAO,GACnCA,CACR,EAMAL,EAAoBO,CAAC,CAAG,SAAS/B,CAAO,CAAEiC,CAAU,EACnD,IAAI,IAAIC,KAAOD,EACXT,EAAoBW,CAAC,CAACF,EAAYC,IAAQ,CAACV,EAAoBW,CAAC,CAACnC,EAASkC,IAC5EE,OAAOC,cAAc,CAACrC,EAASkC,EAAK,CAAEI,WAAY,CAAA,EAAMC,IAAKN,CAAU,CAACC,EAAI,AAAC,EAGhF,EAKAV,EAAoBW,CAAC,CAAG,SAASK,CAAG,CAAEC,CAAI,EAAI,OAAOL,OAAOM,SAAS,CAACC,cAAc,CAACC,IAAI,CAACJ,EAAKC,EAAO,EAIjH,IAAII,EAAsB,CAAC,EAG3BrB,EAAoBO,CAAC,CAACc,EAAqB,CACzC,QAAW,WAAa,OAAqBC,EAAmB,CAClE,GAGA,IAAIC,EAAuEvB,EAAoB,KAC3FwB,EAA2FxB,EAAoBI,CAAC,CAACmB,GAejHE,EAAM,AAACD,IAA+EC,GAAG,CAAEC,EAAM,AAACF,IAA+EE,GAAG,CAEpLC,EAAM,AAACH,IAA+EG,GAAG,CAMzFC,EAAuBF,EAAIG,WAAW,EAAI,IAAIH,EAAIG,WAAW,EAAM,OA4CvE,SAASC,EAAgBC,CAAC,EACtB,GAAI,AAA0B,YAA1B,OAAOL,EAAIM,UAAU,CACrB,OAAO,IAAIN,EAAIM,UAAU,CAACD,EAAEE,IAAI,CAAEF,GAGtC,GAAIN,EAAIS,WAAW,CAAE,CACjB,IAAIC,EAAMV,EAAIS,WAAW,CAAC,cAC1B,GAAIC,EAAIC,cAAc,CAGlB,OAFAD,EAAIC,cAAc,CAACL,EAAEE,IAAI,CAAEF,EAAEM,OAAO,CACpCN,EAAEO,UAAU,CAAEP,EAAEQ,IAAI,EAAIb,EAAKK,EAAES,MAAM,CAAET,EAAEU,OAAO,CAAEV,EAAEW,OAAO,CAAEX,EAAEY,OAAO,CAAEZ,EAAEa,OAAO,CAAEb,EAAEc,OAAO,CAAEd,EAAEe,MAAM,CAAEf,EAAEgB,QAAQ,CAAEhB,EAAEiB,OAAO,CAAEjB,EAAEkB,MAAM,CAAElB,EAAEmB,aAAa,EACjJf,CAEf,CACA,OAAOgB,EAAkBpB,EAAEE,IAAI,CACnC,CAmEA,SAASkB,EAAkBlB,CAAI,CAAEmB,CAAQ,CAAEF,CAAa,EACpD,IAAIG,EAAMD,GAAY,CACdE,EAAG,EACHC,EAAG,CACP,EACJ,GAAI,AAA0B,YAA1B,OAAO7B,EAAIM,UAAU,CACrB,OAAO,IAAIN,EAAIM,UAAU,CAACC,EAAM,CAC5BI,QAAS,CAAA,EACTC,WAAY,CAAA,EACZkB,SAAU,CAAA,EACVP,OAAQ,EACRQ,QAAS,EACTP,cAAeA,GAAiBtB,EAChCW,KAAMb,EACNc,OAAQP,AAAS,UAATA,EAAmB,EAAI,EAC/BQ,QAASY,EAAIC,CAAC,CACdZ,QAASW,EAAIE,CAAC,CACdZ,QAASU,EAAIC,CAAC,CACdV,QAASS,EAAIE,CAAC,AAClB,GAGJ,GAAI9B,EAAIS,WAAW,CAAE,CACjB,IAAIC,EAAMV,EAAIS,WAAW,CAAC,cAC1B,GAAIC,EAAIC,cAAc,CAWlB,OAVAD,EAAIC,cAAc,CAACH,EAAM,CAAA,EACzB,CAAA,EACAP,EACAO,AAAS,UAATA,EAAmB,EAAI,EAEvBoB,EAAIC,CAAC,CAAED,EAAIE,CAAC,CAAEF,EAAIC,CAAC,CAAED,EAAIE,CAAC,CAE1B,CAAA,EAAO,CAAA,EAAO,CAAA,EAAO,CAAA,EAAO,EAC5B,MAEOpB,CAEf,CACA,MAAO,CAAEF,KAAMA,CAAK,CACxB,CAwI6B,IAAIyB,EAhBb,CAChBC,SAhRJ,SAAkBC,CAAE,CAAEC,CAAS,EACvBD,EAAGE,SAAS,CACZF,EAAGE,SAAS,CAACC,GAAG,CAACF,GAEsB,EAAlCD,EAAGC,SAAS,CAACG,OAAO,CAACH,IAI1BD,CAAAA,EAAGC,SAAS,EAAI,IAAMA,CAAQ,CAEtC,EAuQI/B,gBAAiBA,EACjBmC,gBAhOJ,SAAyBlC,CAAC,EACtB,IAAImC,EAAwB,SAAUC,CAAC,EAEnC,IAAK,IADGC,EAAa,EAAE,CACdC,EAAI,EAAGA,EAAIF,EAAEG,MAAM,CAAE,EAAED,EAAG,CAC/B,IAAIE,EAAOJ,EAAEI,IAAI,CAACF,GACdE,GACAH,EAAWI,IAAI,CAACD,EAExB,CACA,OAAOH,CACX,EACA,GAAI,AAA0B,YAA1B,OAAO1C,EAAI+C,UAAU,CAAiB,CACtC,IAAIC,EAAW,IAAIhD,EAAI+C,UAAU,CAAC1C,EAAEE,IAAI,CAAE,CAClC0C,QAAST,EAAsBnC,EAAE4C,OAAO,EACxCC,cAAeV,EAAsBnC,EAAE6C,aAAa,EACpDC,eAAgBX,EAAsBnC,EAAE8C,cAAc,EACtDhC,QAASd,EAAEc,OAAO,CAClBE,SAAUhB,EAAEgB,QAAQ,CACpBD,OAAQf,EAAEe,MAAM,CAChBE,QAASjB,EAAEiB,OAAO,CAClBX,QAASN,EAAEM,OAAO,CAClBC,WAAYP,EAAEO,UAAU,CACxBkB,SAAUzB,EAAEyB,QAAQ,CACpBhB,OAAQT,EAAES,MAAM,CAChBD,KAAMR,EAAEQ,IAAI,AAChB,GAIJ,OAHIR,EAAE+C,gBAAgB,EAClBJ,EAASK,cAAc,GAEpBL,CACX,CACA,IAAIM,EAAUlD,EAAgBC,GAI9B,OAHAiD,EAAQL,OAAO,CAAG5C,EAAE4C,OAAO,CAC3BK,EAAQH,cAAc,CAAG9C,EAAE8C,cAAc,CACzCG,EAAQJ,aAAa,CAAG7C,EAAE6C,aAAa,CAChCI,CACX,EA6LIC,oBAzLJ,SAA6BC,CAAG,EAC5B,OAAOA,EACFC,OAAO,CAAC,KAAM,SACdA,OAAO,CAAC,KAAM,QACdA,OAAO,CAAC,KAAM,QACdA,OAAO,CAAC,KAAM,UACdA,OAAO,CAAC,KAAM,UACdA,OAAO,CAAC,MAAO,SACxB,EAkLIC,WA7KJ,SAAoBC,CAAE,EAClB,OAAO5D,EAAI6D,cAAc,CAACD,EAC9B,EA4KIlC,kBAAmBA,EACnBoC,4BA/GJ,SAAqCC,CAAO,EACxC,IAAIC,EAA2B,SAAUC,CAAO,EAI5C,MAAO,IAFIC,KAAKC,GAAG,CAAC,EACpBC,AAFuBC,SAASJ,EAAQK,KAAK,CAAC,GAAI,IAEnC,EAEnB,EACIC,EAAY,SAAUN,CAAO,EAAI,MAAO,YAAYO,IAAI,CAACP,EAAU,EACnEQ,EAA6B,SAAUtC,CAAE,EAEzC,IADI,IAAIuC,EAAUvC,EACXuC,EAAUA,EAAQC,eAAe,EAAE,CACtC,IAAIV,EAAUS,EAAQT,OAAO,EAAI,GACjC,GAAIM,EAAUN,GACV,OAAOA,CAEf,CACA,MAAO,EACX,EACIW,EAAsB,SAAUzC,CAAE,EAC9B,IAAI0C,EAAsBJ,EAA2BtC,GACzD,GAAI0C,EACA,OAAOb,EAAyBa,GAGpC,IAAIC,EAAS3C,EAAG4C,aAAa,CAC7B,GAAI,CAACD,EACD,MAAO,KAEX,IAAIE,EAAgBF,EAAOb,OAAO,QAClC,AAAIM,EAAUS,GACHhB,EAAyBgB,GAE7BJ,EAAoBE,EAC/B,EACA,OAAOF,EAAoBb,EAC/B,EA6EIkB,iBA3DJ,SAA0BlB,CAAO,EAC7B,KAAOA,EAAQmB,SAAS,EACpBnB,EAAQoB,WAAW,CAACpB,EAAQmB,SAAS,CAE7C,EAwDIE,YAvQJ,SAAqBjD,CAAE,CAAEC,CAAS,EAC1BD,EAAGE,SAAS,CACZF,EAAGE,SAAS,CAACgD,MAAM,CAACjD,GAKpBD,EAAGC,SAAS,CAAGD,EAAGC,SAAS,CAACsB,OAAO,CAAC,AAAI4B,OAAOlD,EAAW,KAAM,GAExE,EA+PImD,cAxEJ,SAAuBxB,CAAO,EACtBA,GAAWA,EAAQyB,UAAU,EAC7BzB,EAAQyB,UAAU,CAACL,WAAW,CAACpB,EAEvC,EAqEI0B,kBArDJ,SAA2BC,CAAI,EAE3B,IADA,IAAI9C,EAAI8C,EAAKC,UAAU,CAAC9C,MAAM,CACvBD,KACH8C,EAAKE,WAAW,CAACF,EAAKC,UAAU,CAAC/C,EAAE,CAE3C,EAiDIzC,qBAAsBA,EACtB0F,wBA5CJ,SAAiCpC,CAAG,CAAEqC,CAAW,EAE7C,OADoB,KAAK,IAArBA,GAA0BA,CAAAA,EAAc,CAAA,CAAI,EACzC,AAAC,AAAe,UAAf,OAAOrC,EACVqC,EACGrC,EAAIC,OAAO,CAAC,kBAAmB,IAC/BD,EAAIC,OAAO,CAAC,wBAAyB,IAAOD,CACxD,EAuCIsC,oBAjCJ,SAA6BhC,CAAO,EAChC7D,EAAI6D,EAAS,CACTpC,SAAU,WACVqE,MAAO,MACPC,OAAQ,MACRC,SAAU,SACVC,WAAY,SACZC,KAAM,2BACNC,UAAW,OACX,aAAc,qDACdC,OAAQ,mBACRC,QAAS,GACb,EACJ,CAqBA,EAIIC,EAAmHjI,EAAoB,KACvIkI,EAAuIlI,EAAoBI,CAAC,CAAC6H,GAgB7JE,EAAS,AAACD,IAA2HC,MAAM,CAE3IC,EAAoB,AAAC5G,IAA+E4G,iBAAiB,CAAEC,EAAO,AAAC7G,IAA+E6G,IAAI,EAOtN,AAAC,SAAU5I,CAAmB,EAqL1B,SAAS6I,EAAWC,CAAY,CAAEC,CAAO,CAAEC,CAAK,EAC5C,IAUIC,EACAC,EAFDC,EAAS,EAAE,CAGVC,EAAS,EAEb,GACIH,EAAaI,AAfc,SAAUC,CAAS,CAAEC,CAAM,EAClD,IAAI9D,EAAM6D,EAAUhD,KAAK,CAACiD,GAAU,GAAIC,EAAe/D,EAAIlB,OAAO,CAAC,KAAMkF,EAAahE,EAAIlB,OAAO,CAAC,KACtG,GAAIiF,EAAe,IAAMC,EAAaD,EAClC,MAAO,CACHE,UAAWjE,EAAIkE,SAAS,CAACH,EAAe,EAAGC,GAC3CG,MAAOL,EAASC,EAAe,EAC/BK,IAAKN,EAASE,CAClB,CAER,EAM0CX,EAAcM,GAGhDF,AAFJA,CAAAA,EAAWJ,EAAaa,SAAS,CAACP,EAAQH,GAAcA,EAAWW,KAAK,CAAG,EAAC,EAE/D/E,MAAM,EACfsE,EAAOpE,IAAI,CAAC,CACR+E,MAAOZ,EACP1G,KAAM,UACV,GAGAyG,GACAE,EAAOpE,IAAI,CAAC,CACR+E,MAAOb,EAAWS,SAAS,CAC3BlH,KAAM,WACV,GAEJ4G,EAASH,EAAaA,EAAWY,GAAG,CAAG,EAAIT,EAAS,QAC/CH,EAAY,CAWrB,OAPAE,EAAOY,OAAO,CAAC,SAAUC,CAAK,EACP,cAAfA,EAAMxH,IAAI,EACVwH,CAAAA,EAAMF,KAAK,CAAGG,AA3L1B,SAAiCP,CAAS,CAAEQ,CAAG,EAC3C,IACIC,EACAC,EAFAC,EAAYX,EAAUnF,OAAO,CAAC,UAAW+F,EAAcZ,EAAUnF,OAAO,CAAC,YAAagG,EAAab,EAAUnF,OAAO,CAAC,KAAMiG,EAAWd,EAAUnF,OAAO,CAAC,KAI5J,GAAI8F,EAAY,GAAI,CAChB,IAAII,EAAUf,EAAUpD,KAAK,CAAC+D,GAAW9F,OAAO,CAAC,KAAO8F,EAAWK,EAAUhB,EAAUC,SAAS,CAAC,EAAGU,GAAYM,EAAWjB,EAAUC,SAAS,CAACc,EAAU,GAAiEG,EAAgBC,AAA7DnB,EAAUC,SAAS,CAACU,EAAY,EAAGI,GAAwCK,KAAK,CAAC,KAC1PC,EAASC,OAAOJ,CAAa,CAAC,EAAE,EAChCK,EAAM,KAAK,EAGf,GAFAb,EAAS,GACTD,EAAMxB,EAAkBiC,CAAa,CAAC,EAAE,CAAEV,GACjC,CAELe,EAAMF,AADNA,CAAAA,EAASG,MAAMH,GAAUZ,EAAItF,MAAM,CAAGkG,CAAK,EAC5B,EACXZ,EAAItF,MAAM,CAAGkG,EACb7E,KAAKC,GAAG,CAAC4E,EAAQZ,EAAItF,MAAM,EAE/B,IAAK,IAAID,EAAI,EAAGA,EAAIqG,EAAK,EAAErG,EACvBwF,GAAUM,EAAUP,CAAG,CAACvF,EAAE,CAAG+F,CAErC,CACA,OAAOP,EAAOvF,MAAM,CAAGuF,EAAS,EACpC,CAEA,GAAIE,EAAc,GAAI,CAClB,IA+MY7E,EA/MR0F,EAAazB,EAAUpD,KAAK,CAACgE,GAAa/F,OAAO,CAAC,KAAO+F,EAAiFc,EAAkBC,AAAnE3B,EAAUC,SAAS,CAACW,EAAc,EAAGa,GAA8CL,KAAK,CAAC,KACtL,OADkME,OAAOrC,EAAkByC,CAAe,CAAC,EAAE,CAAElB,KAE3O,KAAK,EACDE,EAASxB,EAAKwC,CAAe,CAAC,EAAE,CAAEA,CAAe,CAAC,EAAE,EACpD,KACJ,MAAK,EACDhB,EAASxB,EAAKwC,CAAe,CAAC,EAAE,CAAEA,CAAe,CAAC,EAAE,EACpD,KACJ,MAAK,EACDhB,EAASxB,EAAKwC,CAAe,CAAC,EAAE,CAAEA,CAAe,CAAC,EAAE,EACpD,KACJ,SACIhB,EAASgB,CAAe,CAAC,EAAE,AACnC,CACA,OAAOhB,EAkMJ3E,CADSA,EAjMe2E,GAkMpBkB,IAAI,EAAI7F,EAAI6F,IAAI,IAAM7F,EAAIC,OAAO,CAAC,aAAc,IAlMlB,EACzC,CAEA,GAAI6E,EAAa,GAAI,CACjB,IAAIgB,EAAY7B,EAAUC,SAAS,CAAC,EAChCY,GACAiB,EAAKR,OAAOtB,EAAUC,SAAS,CAACY,EAAa,EAC7CC,IACAiB,EAAM,KAAK,EAkBf,OAjBAtB,EAAMxB,EAAkB4C,EAAWrB,GAC/B,CAACgB,MAAMM,IAAOrB,IACVqB,EAAK,EAGc,KAAA,IAFnBC,CAAAA,EAAMtB,CAAG,CAACA,EAAItF,MAAM,CAAG2G,EAAG,AAAD,GAGrBC,CAAAA,EAAMtB,CAAG,CAAC,EAAE,AAAD,EAMI,KAAA,IAFnBsB,CAAAA,EAAMtB,CAAG,CAACqB,EAAG,AAAD,GAGRC,CAAAA,EAAMtB,CAAG,CAACA,EAAItF,MAAM,CAAG,EAAE,AAAD,GAI7B,AAAe,KAAA,IAAR4G,EAAsBA,EAAM,EAC9C,CAEA,MAAO,IAAM/B,EAAY,GAC7B,EAsHkDM,EAAMF,KAAK,CAAEf,EAAO,CAElE,GAGOL,EAAOS,EAAOuC,MAAM,CAAC,SAAUC,CAAG,CAAEC,CAAG,EAAI,OAAOD,EAAMC,EAAI9B,KAAK,AAAE,EAAG,IAAKf,EAASC,EAC/F,CAmBA,SAAS6C,EAAWC,CAAO,CAAE/C,CAAO,EAIhC,IAHA,IAAIgD,EAAOD,EAAQhB,KAAK,CAAC,KACrBhC,EAAe,IAAI,CAACkD,OAAO,CAACC,IAAI,CAChCrH,EAAI,EACDA,EAAImH,EAAKlH,MAAM,CAAE,EAAED,EACtBkE,EAAeA,GAAgBA,CAAY,CAACiD,CAAI,CAACnH,EAAE,CAAC,CAExD,MAAO,AAAwB,UAAxB,OAAOkE,EACVD,EAAWC,EAAcC,EAAS,IAAI,EAAI,EAClD,CA1OA/I,EAAoBkM,OAAO,CAN3B,SAAiBC,CAAU,EACvB,IAAIC,EAAaD,EAAW1K,SAAS,AAChC2K,CAAAA,EAAWP,UAAU,EACtBO,CAAAA,EAAWP,UAAU,CAAGA,CAAS,CAEzC,EAgNA7L,EAAoB6I,UAAU,CAAGA,CAyCrC,EAAG7I,GAAwBA,CAAAA,EAAsB,CAAC,CAAA,GAMrB,IAAIqM,EAAYrM,EAgBzCsM,EAAqB,AAACvK,IAA+EC,GAAG,CAExGuK,EAAgBtI,EAAoB4D,uBAAuB,CAE3D2E,EAAU,AAACzK,IAA+EyK,OAAO,CAAEC,EAAO,AAAC1K,IAA+E0K,IAAI,CAAEC,EAAY,AAAC3K,IAA+E2K,SAAS,CA+JzS,SAASC,EAA2BC,CAAM,EACtC,GAAIA,EAAOC,MAAM,EAAID,EAAOC,MAAM,CAAChI,MAAM,CAAE,CACvC,IAAIiI,EAAwBL,EAAKG,EAAOC,MAAM,CAC1C,SAAUE,CAAC,EAAI,MAAO,CAAC,CAACA,EAAEC,OAAO,AAAE,GACvC,OAAQF,GACJA,EAAsBE,OAAO,EAC7BF,EAAsBE,OAAO,CAACjH,OAAO,AAC7C,CACJ,CASA,SAASkH,EAAqBL,CAAM,EAChC,IAAIM,EAAeP,EAA2BC,GAC9C,OAAQM,GACJA,EAAa1F,UAAU,EAAIoF,EAAOO,KAAK,EACvCP,EAAOO,KAAK,CAACpH,OAAO,EAAI6G,EAAOQ,KAAK,EACpCR,EAAOQ,KAAK,CAACrH,OAAO,AAC5B,CAoH6B,IAAIsH,EAbZ,CACjBC,qCAlRJ,SAASA,EAAqCnJ,CAAE,CAAEoJ,CAAW,EACzD,IAAI/K,EAAO+K,EAAY/K,IAAI,CACvBgL,EAAWrJ,EAAGqJ,QAAQ,AACtB,AAAElB,CAAAA,EAAmB7J,WAAW,EAC/B0B,CAAAA,EAAGsJ,aAAa,EAAItJ,EAAGuI,SAAS,AAAD,EAC5BvI,EAAGsJ,aAAa,CAChBtJ,EAAGsJ,aAAa,CAACF,GAGjBpJ,EAAGuI,SAAS,CAAClK,EAAM+K,GAGlBC,GAAYA,CAAQ,CAAChL,EAAK,CAC/BkK,EAAUvI,EAAI3B,EAAM+K,GAEfpJ,EAAG4B,OAAO,EACfuH,EAAqCnJ,EAAG4B,OAAO,CAAEwH,EAEzD,EAiQIG,cA7PJ,SAAuB1E,CAAK,EACxB,OAAOuD,EAAcvD,EAAMgD,OAAO,CAAC2B,KAAK,CAACC,IAAI,EACzC5E,EAAM6C,UAAU,CAAC,kCAAmC,CAAE7C,MAAOA,CAAM,GAAIA,EAAM6E,QAAQ,CAACC,SAAS,CACvG,EA2PIC,mBAtPJ,SAA4BC,CAAI,EAC5B,IAAIC,EACAC,EACJ,OAAOF,GAAS,CAAA,AAAC,CAAA,AAAsC,OAArCC,CAAAA,EAAKD,EAAKhC,OAAO,CAACmC,aAAa,AAAD,GAAeF,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGG,WAAW,AAAD,GAChG,CAAA,AAA0B,OAAzBF,CAAAA,EAAKF,EAAKK,SAAS,AAAD,GAAeH,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGI,OAAO,AAAD,GACrEN,EAAKhC,OAAO,CAACpG,EAAE,EACfoI,EAAKO,UAAU,EAAI,cACnBP,EAAKQ,QAAQ,EAAI,QACjB,QAAO,CACf,EA8OIC,wBArOJ,SAAiCT,CAAI,EACjC,IAuBIhF,EAeAA,EACA0F,EACAvI,EACAwI,EACAC,EAUAC,EAeA7F,EACAgD,EACA8C,EAIAC,EAIArG,EA7EAsG,EAAchB,EAAKhC,OAAO,EAAI,CAAC,SAEnC,AAAIgD,EAAYb,aAAa,EACzB,AAAsD,KAAA,IAA/Ca,EAAYb,aAAa,CAACc,gBAAgB,CAC1CD,EAAYb,aAAa,CAACc,gBAAgB,CAGjDjB,EAAKO,UAAU,EAgBfvF,EAAQgF,AAfwBA,EAenBhF,KAAK,CACtB,AAAIgF,AAhBgCA,EAgB3BkB,OAAO,EAAIlB,AAhBgBA,EAgBXmB,OAAO,CACrBnG,EAAM6C,UAAU,CAAC,qCAAsC,CAC1D7C,MAAOA,EACPgF,KAnB4BA,EAoB5BoB,cAAepB,AApBaA,EAoBRkB,OAAO,CAAGlB,AApBFA,EAoBOmB,OAAO,CAAG,CACjD,GAEG,IApBHnB,EAAKQ,QAAQ,EAAKR,CAAAA,AAAa,IAAbA,EAAK7H,GAAG,EAAU6H,AAAiB,IAAjBA,EAAKmB,OAAO,AAAK,GA2BrDnG,EAAQgF,AA1BqBA,EA0BhBhF,KAAK,CAClB0F,EAAQ,CAAC,EACTvI,EAAM6H,AA5BuBA,EA4BlBmB,OAAO,EAAInB,AA5BOA,EA4BF7H,GAAG,EAAI,EAClCwI,EAAMX,AA7BuBA,EA6BlBkB,OAAO,EAAIlB,AA7BOA,EA6BFW,GAAG,EAAI,EAClCC,EAAY,UAChBF,EAAMW,OAAO,CAAG,AAACV,CAAAA,EAAMxI,CAAE,EAAK,IAC9BuI,EAAMY,OAAO,CAAGZ,EAAMW,OAAO,CAAG,GAChCX,EAAMa,KAAK,CAAGb,EAAMY,OAAO,CAAG,GAC9BZ,EAAMc,IAAI,CAAGd,EAAMa,KAAK,CAAG,GAC3B,CAAC,UAAW,QAAS,OAAO,CAACxF,OAAO,CAAC,SAAU0F,CAAI,EAC3Cf,CAAK,CAACe,EAAK,CAAG,GACdb,CAAAA,EAAYa,CAAG,CAEvB,GACIZ,EAAaH,CAAK,CAACE,EAAU,CAACc,OAAO,CAACd,AAAc,YAAdA,GAClCA,AAAc,YAAdA,EAA0B,EAAI,GAG/B5F,EAAM6C,UAAU,CAAC,+BAAiC+C,EAAW,CAChE5F,MAAOA,EACPgF,KA9C6BA,EA+C7BU,MAAOG,EAAWnJ,OAAO,CAAC,KAAM,GACpC,KASIoJ,EAAmB9C,CADnBA,EAAUhD,CADVA,EAAQgF,AAnDoBA,EAmDfhF,KAAK,EACFgD,OAAO,GAEnBA,EAAQmC,aAAa,EACrBnC,EAAQmC,aAAa,CAACwB,mBAAmB,CAACC,mBAAmB,EAC7D,GACJb,EAAW,CACP5I,IAAK6H,AA1DmBA,EA0DdmB,OAAO,EAAInB,AA1DGA,EA0DE7H,GAAG,EAAI,EACjCwI,IAAKX,AA3DmBA,EA2DdkB,OAAO,EAAIlB,AA3DGA,EA2DEW,GAAG,EAAI,CACrC,EACAjG,EAAS,SAAUzH,CAAG,EAClB,OAAO+M,AA9DiBA,EA8DZQ,QAAQ,CAChBxF,EAAM6G,IAAI,CAACC,UAAU,CAAChB,EAC9BC,CAAQ,CAAC9N,EAAI,EACL8N,CAAQ,CAAC9N,EAAI,CAAC8O,QAAQ,EAClC,EACO/G,EAAM6C,UAAU,CAAC,iCAAkC,CACtD7C,MAAOA,EACPgF,KArE4BA,EAsE5BgC,UAAWtH,EAAO,OAClBuH,QAASvH,EAAO,MACpB,GAvEJ,EAoNIwH,eA3DJ,SAAwBtD,CAAM,CAAE/I,CAAC,CAAEC,CAAC,EAGhC,IAFA,IACIqM,EADAvL,EAAIgI,EAAO/H,MAAM,CAEdD,KAIH,GAHAuL,EAAM1D,EAAKG,CAAM,CAAChI,EAAE,CAACiI,MAAM,EAAI,EAAE,CAAE,SAAUE,CAAC,EAC1C,OAAOA,EAAElJ,CAAC,GAAKA,GAAKkJ,EAAEjJ,CAAC,GAAKA,CAChC,GAEI,OAAOqM,CAGnB,EAiDIxD,2BAA4BA,EAC5ByD,kBAzEJ,SAA2BpH,CAAK,CAAEqH,CAAI,SAClC,AAAKA,EAGE,AAACrH,CAAAA,EAAM4D,MAAM,EAAI,EAAE,AAAD,EAAGtE,MAAM,CAAC,SAAUgI,CAAC,EAC1C,OAAOA,EAAED,IAAI,GAAKA,CACtB,GAJWrH,EAAM4D,MAAM,AAK3B,EAmEIK,qBAAsBA,EACtBsD,yBA1GJ,SAASA,EAAyBvH,CAAK,CAAEjD,CAAO,EAC5CA,EAAQyK,YAAY,CAAC,cAAe,CAAA,GAChCzK,IAAYiD,EAAMyH,QAAQ,EACzB1K,EAAQyB,UAAU,EACnBzB,EAAQyB,UAAU,GAAK8E,EAAmBoE,IAAI,GAKlDC,MAAMlP,SAAS,CAACsI,OAAO,CAACpI,IAAI,CAACoE,EAAQyB,UAAU,CAACG,UAAU,CAAE,SAAUD,CAAI,EACjEA,EAAKkJ,YAAY,CAAC,gBACnBlJ,EAAK8I,YAAY,CAAC,cAAe,CAAA,EAEzC,GAEAD,EAAyBvH,EAAOjD,EAAQyB,UAAU,EACtD,EA2FIqJ,iBAtFJ,SAA0BjE,CAAM,EAC5B,IAAIkE,EAAW7D,EAAqBL,GAChCkE,GACAA,EAASN,YAAY,CAAC,cAAe,CAAA,EAE7C,EAkFIO,kBAlCJ,SAA2BC,CAAK,EAC5B,IAAIC,EAAQD,EAAMpE,MAAM,CAACqE,KAAK,CAC1BC,EAAQF,EAAMpE,MAAM,CAACsE,KAAK,CAC1BlD,EAAQiD,GAASA,EAAME,SAAS,CAAGF,EAAQC,EAC3CC,EAAanD,GAAQA,EAAKmD,SAAS,CACvC,GAAIA,GAAa3E,EAAQ2E,EAAUC,EAAE,GAAK5E,EAAQ2E,EAAUE,IAAI,EAAG,CAC/D,IAAI3C,EAAQyC,EAAUC,EAAE,CAAGD,EAAUE,IAAI,CACrCzN,EAAM0N,AAtBlB,SAAsCtD,CAAI,CAAEgD,CAAK,EAC7C,GAAI,CAACxE,EAAQwB,EAAKmB,OAAO,GAAK,CAAC3C,EAAQwB,EAAKkB,OAAO,EAC/C,OAAO,EAEX,IAAIqC,EAAYvD,EAAKwD,QAAQ,CAACxD,EAAKmB,OAAO,EACtCsC,EAAUzD,EAAKwD,QAAQ,CAACxD,EAAKkB,OAAO,EAEpCwC,EAAe1D,AAAc,UAAdA,EAAK2D,IAAI,CAAe,IAAM,IAEjD,MAAO,AAACC,CAAAA,AADO5D,EAAKwD,QAAQ,CAACR,CAAK,CAACU,EAAa,EAAI,GACjCH,CAAQ,EAAME,CAAAA,EAAUF,CAAQ,CACvD,EAY+CvD,EACnCgD,GACJG,EAAUU,cAAc,CAACjO,EAAM8K,EAAQ,EAAG9K,EAAM8K,EAAQ,GACxDhC,EAAUyE,EAAW,UAAW,CAC5BE,KAAMF,EAAUE,IAAI,CACpBD,GAAID,EAAUC,EAAE,CAChBU,QAAS,YACTC,SAAU,IACd,EACJ,CACJ,CAkBA,EAkBIC,EAAyB,AAACjQ,IAA+EC,GAAG,CAE5GiQ,EAAmChO,EAAoBsD,aAAa,CASpE2K,EAAoC,WAMpC,SAASA,IACL,IAAI,CAACC,QAAQ,CAAG,EAAE,AACtB,CA8BA,OAxBAD,EAAmBzQ,SAAS,CAAC2Q,aAAa,CAAG,WACzC,IAAIjO,EAAK6N,EAAuBI,aAAa,CAACC,KAAK,CAACL,EAChDM,WAEJ,OADA,IAAI,CAACH,QAAQ,CAACpN,IAAI,CAACZ,GACZA,CACX,EAKA+N,EAAmBzQ,SAAS,CAAC8F,aAAa,CAAG,SAAUxB,CAAO,EAC1DkM,EAAiClM,GACjC,IAAI,CAACoM,QAAQ,CAACI,MAAM,CAAC,IAAI,CAACJ,QAAQ,CAAC5N,OAAO,CAACwB,GAAU,EACzD,EAKAmM,EAAmBzQ,SAAS,CAAC+Q,sBAAsB,CAAG,WAClD,IAAI,CAACL,QAAQ,CAACpI,OAAO,CAAC,SAAUhE,CAAO,EACnCkM,EAAiClM,EACrC,GACA,IAAI,CAACoM,QAAQ,CAAG,EAAE,AACtB,EACOD,CACX,IAuBIO,GAAW,AAAC1Q,IAA+E0Q,QAAQ,CAInGC,GAA+B,WAM/B,SAASA,IACL,IAAI,CAACC,aAAa,CAAG,EAAE,AAC3B,CAiCA,OA3BAD,EAAcjR,SAAS,CAACgR,QAAQ,CAAG,WAC/B,IAAIG,EAAUH,GAASJ,KAAK,CAAEtQ,IAC1BuQ,WAKJ,OAJA,IAAI,CAACK,aAAa,CAAC5N,IAAI,CAAC,CACpBgB,QAASuM,SAAS,CAAC,EAAE,CACrBM,QAASA,CACb,GACOA,CACX,EAKAF,EAAcjR,SAAS,CAACoR,WAAW,CAAG,SAAUC,CAAK,EACjD,IAAIlP,EAAM,IAAI,CAAC+O,aAAa,CAACI,GAAG,CAAC,SAAUzQ,CAAC,EAAI,OAAOA,EAAEsQ,OAAO,AAAE,GAAGrO,OAAO,CAACuO,GAC7E,IAAI,CAACH,aAAa,CAAC/O,EAAI,CAACgP,OAAO,GAC/B,IAAI,CAACD,aAAa,CAACJ,MAAM,CAAC3O,EAAK,EACnC,EAKA8O,EAAcjR,SAAS,CAACuR,iBAAiB,CAAG,WACxC,IAAI,CAACL,aAAa,CAACI,GAAG,CAAC,SAAUzQ,CAAC,EAAI,OAAOA,EAAEsQ,OAAO,AAAE,GACnD7I,OAAO,CAAC,SAAU6I,CAAO,EAAI,OAAOA,GAAW,GACpD,IAAI,CAACD,aAAa,CAAG,EAAE,AAC3B,EACOD,CACX,IAsBIO,GAA8D5F,EAAqBC,oCAAoC,CAIvH4F,GAA2CjP,EAAoBP,iBAAiB,CAsBhFyP,GAAwC,WACxC,SAASA,IACT,CAqGA,OA1FAA,EAAuB1R,SAAS,CAAC2R,OAAO,CAAG,WAAc,EAQzDD,EAAuB1R,SAAS,CAAC4R,qBAAqB,CAAG,WACrD,MAAO,EAAE,AACb,EAMAF,EAAuB1R,SAAS,CAAC6R,IAAI,CAAG,WAAc,EAMtDH,EAAuB1R,SAAS,CAAC8R,aAAa,CAAG,WAAc,EAO/DJ,EAAuB1R,SAAS,CAAC+R,aAAa,CAAG,WAAc,EAO/DL,EAAuB1R,SAAS,CAACgS,QAAQ,CAAG,SAAUzK,CAAK,CAAE0K,CAAa,EACtE,IAAI,CAAC1K,KAAK,CAAGA,EACb,IAAI,CAAC2K,aAAa,CAAG,IA7F2BjB,GA8FhD,IAAI,CAACkB,kBAAkB,CAAG,IAnK2B1B,EAoKrD,IAAI,CAACwB,aAAa,CAAGA,EAErB,IAAI,CAACG,QAAQ,CAAG,CACZC,KAAM,GACNC,MAAO,GACPC,GAAI,GACJC,KAAM,GACNC,MAAO,GACPC,MAAO,GACPC,IAAK,GACLC,IAAK,EACLC,OAAQ,GACRC,SAAU,GACV1K,IAAK,GACL2K,KAAM,EACV,CACJ,EAMArB,EAAuB1R,SAAS,CAACgR,QAAQ,CAAG,SAAUtO,CAAE,CAAE3B,CAAI,CAAEiS,CAAE,CAAEzI,CAAO,EACvE,OAAO,IAAI,CAAC2H,aAAa,CAAClB,QAAQ,CAACtO,EAAI3B,EAAMiS,EAAIzI,EACrD,EAMAmH,EAAuB1R,SAAS,CAAC2Q,aAAa,CAAG,SAAUnM,CAAO,CAAE+F,CAAO,EACvE,OAAO,IAAI,CAAC4H,kBAAkB,CAACxB,aAAa,CAACnM,EAAS+F,EAC1D,EAMAmH,EAAuB1R,SAAS,CAACiT,cAAc,CAAG,SAAUvQ,CAAE,EAE1D8O,GAA4D9O,EAD5C+O,GAAyC,SAE7D,EAKAC,EAAuB1R,SAAS,CAACkT,WAAW,CAAG,WAC3C,IAAI,CAACf,kBAAkB,CAACpB,sBAAsB,GAC9C,IAAI,CAACmB,aAAa,CAACX,iBAAiB,EACxC,EACOG,CACX,IAsBIyB,GAAiC,AAAC7S,IAA+E0K,IAAI,CA0BrHoI,GAA2C,WAM3C,SAASA,EAA0B7L,CAAK,CAAEgD,CAAO,EAC7C,IAAI,CAAChD,KAAK,CAAGA,EACb,IAAI,CAAC8L,UAAU,CAAG9I,EAAQ8I,UAAU,EAAI,EAAE,CAC1C,IAAI,CAACC,QAAQ,CAAG/I,EAAQ+I,QAAQ,CAChC,IAAI,CAACzB,IAAI,CAAGtH,EAAQsH,IAAI,CACxB,IAAI,CAAC0B,SAAS,CAAGhJ,EAAQgJ,SAAS,CAElC,IAAI,CAACC,QAAQ,CAAG,CACZC,QAAS,EACTC,KAAM,EACNC,KAAM,EACNC,UAAW,EACXC,KAAM,CACV,CACJ,CA8BA,OAhBAT,EAA0BpT,SAAS,CAAC8T,GAAG,CAAG,SAAUjT,CAAC,EACjD,IAAIkT,EAAUlT,EAAEmT,KAAK,EAAInT,EAAEkT,OAAO,CAC9BP,EAAW,IAAI,CAACA,QAAQ,CAACI,SAAS,CAClCK,EAAiBd,GAA+B,IAAI,CAACE,UAAU,CAC/D,SAAUa,CAAO,EACb,OAAOA,CAAO,CAAC,EAAE,CAACpR,OAAO,CAACiR,GAAW,EAC7C,GAQA,OAPIE,EACAT,EAAWS,CAAc,CAAC,EAAE,CAAC/T,IAAI,CAAC,IAAI,CAAE6T,EAASlT,GAEhC,IAAZkT,GAELP,CAAAA,EAAW,IAAI,CAACA,QAAQ,CAAC3S,EAAEgB,QAAQ,CAAG,OAAS,OAAO,AAAD,EAElD2R,CACX,EACOJ,CACX,IAoDIe,IACI7V,EAAgB,SAAUe,CAAC,CAC3B+U,CAAC,EAMD,MAAO9V,AALHA,CAAAA,EAAgBoB,OAAO2U,cAAc,EAChC,CAAA,CAAEC,UAAW,EAAE,AAAC,CAAA,YAAapF,OAAS,SAAU7P,CAAC,CAC1D+U,CAAC,EAAI/U,EAAEiV,SAAS,CAAGF,CAAG,GACd,SAAU/U,CAAC,CACnB+U,CAAC,EAAI,IAAK,IAAI9I,KAAK8I,EAAOA,EAAEnU,cAAc,CAACqL,IAAIjM,CAAAA,CAAC,CAACiM,EAAE,CAAG8I,CAAC,CAAC9I,EAAE,AAAD,CAAG,CAAA,EACvCjM,EAAG+U,EAC5B,EACO,SAAU/U,CAAC,CAAE+U,CAAC,EAEjB,SAASG,IAAO,IAAI,CAACC,WAAW,CAAGnV,CAAG,CADtCf,EAAce,EAAG+U,GAEjB/U,EAAEW,SAAS,CAAGoU,AAAM,OAANA,EAAa1U,OAAO+U,MAAM,CAACL,GAAMG,CAAAA,EAAGvU,SAAS,CAAGoU,EAAEpU,SAAS,CAAE,IAAIuU,CAAG,CACtF,GAKAG,GAA8C9I,EAAqBkD,wBAAwB,CAAE6F,GAAmC/I,EAAqBK,aAAa,CAElK2I,GAAyB,AAACtU,IAA+EC,GAAG,CAE5GsU,GAAmCrS,EAAoB4D,uBAAuB,CAQ9E0O,GAAoC,SAAUC,CAAM,EAEpD,SAASD,IACL,OAAOC,AAAW,OAAXA,GAAmBA,EAAOnE,KAAK,CAAC,IAAI,CAAEC,YAAc,IAAI,AACnE,CA+GA,OAlHAsD,GAAUW,EAAoBC,GAa9BD,EAAmB9U,SAAS,CAAC+R,aAAa,CAAG,WACzC,IAAI,CAACiD,qBAAqB,GAC1B,IAAI,CAACC,oBAAoB,GACzB,IAAI,CAACC,wBAAwB,GAC7B,IAAI,CAACC,gBAAgB,GACrB,IAAI,CAACC,qBAAqB,EAC9B,EAIAN,EAAmB9U,SAAS,CAACgV,qBAAqB,CAAG,WACjD,IAAIzN,EAAQ,IAAI,CAACA,KAAK,CAAE8N,EAAU,oBAAsB9N,EAAM+N,KAAK,CAAEC,EAAgBV,GAAiCtN,EAAM6C,UAAU,CAAC,kCAAmC,CAClKoL,WAAYb,GAAiCpN,EACjD,IACJ,GAAIgO,EAAcnS,MAAM,CAAE,CACtB,IAAIqS,EAAe,IAAI,CAACC,eAAe,CAC/B,IAAI,CAACA,eAAe,EAAId,GAAuBe,eAAe,CAAC,6BAA8B,QACrGF,CAAAA,EAAaG,WAAW,CAAGL,EAC3BE,EAAatR,EAAE,CAAGkR,EAClB9N,EAAMyH,QAAQ,CAAC6G,YAAY,CAACJ,EAAclO,EAAMyH,QAAQ,CAAC8G,UAAU,CACvE,CACJ,EAIAhB,EAAmB9U,SAAS,CAACiV,oBAAoB,CAAG,WAChD,IAAI1N,EAAQ,IAAI,CAACA,KAAK,CAClBwO,EAAoBxO,EAAM6C,UAAU,CAAC,kCAAmC,CACpEoL,WAAYb,GAAiCpN,EACjD,EACAA,CAAAA,EAAM6E,QAAQ,CAAC4J,GAAG,EAAID,EAAkB3S,MAAM,EAC9CmE,EAAM6E,QAAQ,CAAC4J,GAAG,CAACjH,YAAY,CAAC,aAAcgH,EAEtD,EAIAjB,EAAmB9U,SAAS,CAACkV,wBAAwB,CAAG,WACpD,IAAI3N,EAAQ,IAAI,CAACA,KAAK,CAClB0O,EAAQ1O,EAAM6C,UAAU,CAAC,sCAAuC,CAC5DoL,WAAYb,GAAiCpN,EACjD,EACA0O,CAAAA,EAAM7S,MAAM,EACZmE,EAAM2O,SAAS,CAACnH,YAAY,CAAC,aAAckH,EAEnD,EAKAnB,EAAmB9U,SAAS,CAACmV,gBAAgB,CAAG,WAC5C,IAAI5N,EAAQ,IAAI,CAACA,KAAK,CAAE4O,EAAqB5O,AACd,aADcA,EAAMgD,OAAO,CAACmC,aAAa,CAC/D0J,iBAAiB,CAAiBC,EAAiB9O,EAAM6C,UAAU,CAAC,oCAAqC,CAC1G8B,MAAOyI,GAAiCpN,GACxCA,MAAOA,CACX,GACA8O,IACA9O,EAAMyH,QAAQ,CAACD,YAAY,CAAC,OAAQoH,EAAqB,SAAW,SACpE5O,EAAMyH,QAAQ,CAACD,YAAY,CAAC,aAAcsH,GAElD,EAIAvB,EAAmB9U,SAAS,CAACoV,qBAAqB,CAAG,WACjD,IAAI7N,EAAQ,IAAI,CAACA,KAAK,CAClB+O,EAAU/O,EAAM+O,OAAO,CACvBA,IACIA,EAAQzJ,OAAO,EACfyJ,EAAQhS,OAAO,CAACyK,YAAY,CAAC,aAAcxH,EAAM6C,UAAU,CAAC,wBAAyB,CACjFmM,WAAY1B,GAAiCyB,EAAQzJ,OAAO,CAAEtF,EAAM6E,QAAQ,CAACC,SAAS,CAC1F,IAEJqI,GAA4CnN,EAAO+O,EAAQhS,OAAO,EAE1E,EAKAwQ,EAAmB9U,SAAS,CAAC4R,qBAAqB,CAAG,WACjD,IAAIrK,EAAQ,IAAI,CAACA,KAAK,CACtB,OAAO,IA7K6D6L,GA6KjB7L,EAAO,CACtD8L,WAAY,EAAE,CACdC,SAAU,WACN,MAAO,CAAA,CACX,EACAzB,KAAM,WACF,IAAI2E,EAAOjP,EAAMmF,aAAa,CAC1B8J,GACAA,EAAKC,kBAAkB,CAACC,iBAAiB,CAACC,KAAK,EAEvD,CACJ,EACJ,EAIA7B,EAAmB9U,SAAS,CAAC2R,OAAO,CAAG,WACnC,IAAI,CAACpK,KAAK,CAACyH,QAAQ,CAACD,YAAY,CAAC,cAAe,CAAA,EACpD,EACO+F,CACX,EApSyEpD,IA0TrEkF,GAAuB,AAACtW,IAA+E0Q,QAAQ,CAAE6F,GAAmB,AAACvW,IAA+E6G,IAAI,EAO5N,AAAC,SAAU3I,CAAsB,EAY7B,IAAIsY,EAAiC,CAC7B,IAAK,IAAK,YAAa,QAAS,SAAU,IAAK,IAAK,eACvD,CA4BL,SAASC,IACL,IAAIC,EAAe,IAAI,CAACA,YAAY,CAChCC,EAAqB,IAAI,CAAC1M,OAAO,CAACmC,aAAa,CAAC+J,kBAAkB,CAACS,WAAW,CAC9EF,IACAA,EAAaG,iBAAiB,GAC1BF,EAAmBG,OAAO,EAC1BJ,EAAaK,cAAc,CAACJ,EAAmBK,MAAM,CAAE,CACnDC,OAAQN,EAAmBO,KAAK,CAACC,KAAK,CACtCC,YAAaT,EAAmBO,KAAK,CAACG,SAAS,CAC/CC,EAAGX,EAAmBO,KAAK,CAACK,YAAY,AAC5C,GAGZ,CAeA,SAASC,EAAuBC,CAAU,CAAEf,CAAY,EACpD,IAAIC,EAAqB,IAAI,CAAC1M,OAAO,CAACmC,aAAa,CAAC+J,kBAAkB,CAACS,WAAW,CAC9Ec,EAAsBhB,GAAgBe,EAAWzT,OAAO,CAExD0T,GACAA,EAAoBrB,KAAK,GAGnBqB,EAAoBjM,QAAQ,EAC9BiM,EAAoBjM,QAAQ,CAACkM,OAAO,EACpCrB,GAAqBoB,EAAqB,UAAW,WAAc,GAEvEA,EAAoBrB,KAAK,GAErBM,EAAmBiB,uBAAuB,EAC1CF,CAAAA,EAAoBR,KAAK,CAACW,OAAO,CAAG,MAAK,GAG7C,IAAI,CAACnB,YAAY,EACjB,IAAI,CAACA,YAAY,CAACG,iBAAiB,GAEvC,IAAI,CAACH,YAAY,CAAGe,EACpB,IAAI,CAACK,iBAAiB,EAC1B,CA+BA,SAASC,EAAyBf,CAAM,CAAEgB,CAAO,EAEzC,IAAI,CAACpB,WAAW,EAChB,IAAI,CAACC,iBAAiB,GAG1B,IAAIoB,EAAK,IAAI,CAACC,OAAO,GACjBC,EAAM5B,GAAiBS,EAAQ,GAC/BjS,EAAS,IAAI,CAACqT,WAAW,CACzBC,EAAS,IAAI,CAACA,MAAM,EAAItT,GAAUA,EAAOsT,MAAM,CAC/CC,EAAS,IAAI,CAACA,MAAM,EAAIvT,GAAUA,EAAOuT,MAAM,CAE/CC,EAAYC,AADCH,CAAAA,EAAS,CAACC,EAASA,CAAK,EACZnU,KAAKsU,GAAG,CAACJ,GAAUC,GAAU,GAClD,AAACnU,CAAAA,KAAKsU,GAAG,CAACJ,GAAU,GAAKlU,KAAKsU,GAAG,CAACH,GAAU,EAAC,EAAK,EACtDI,EAAa,IAAI,CAAC5M,QAAQ,CAAC6M,WAAW,CAAC,IAAI,EAAEC,CAAC,AAClDX,CAAAA,EAAGnW,CAAC,EAAI,IAAI,CAAC+W,UAAU,CAAG,IAAI,CAACA,UAAU,CAAG,EAC5CZ,EAAGlW,CAAC,EAAI,IAAI,CAAC+W,UAAU,CAAG,IAAI,CAACA,UAAU,CAAG,EAC5C,IAAIC,EAAad,EAAGnW,CAAC,CAAGqW,EACpBa,EAAaf,EAAGlW,CAAC,CAAGoW,EACpBc,EAAchB,EAAGhS,KAAK,CAAG,EAAIkS,EAC7Be,EAAejB,EAAG/R,MAAM,CAAG,EAAIiS,EAsB/BgB,EAAU,CAAC,CAAC,IAAI,CAACtN,IAAI,CACzB,GAAI,AAA0B,SAA1B,IAAI,CAAC7H,OAAO,CAACoV,QAAQ,EAAeD,EAAS,CAC7C,IAlBIE,EACAC,EAiBAC,EAAY,CAAC,CAAC,IAAI,CAACC,QAAQ,CAC3BC,EAAa,AAACN,EACV,CACIrX,EAAGyX,EAAY,EAAI,EACnBxX,EAAG,CACP,GAvBJsX,EAAiB,EACjBC,EAAiB,EACjBzN,AAA6B,WAA7BA,AAiBgD,IAAI,CAjB/C6N,IAAI,CAAC,eACVL,EAAiBC,EAAiB,GAE5BzN,AAc0C,IAAI,CAdzC2N,QAAQ,CAInBH,EAAiB,IAHjBC,EAAiB,IAKd,CACHxX,EAAGuX,EACHtX,EAAGuX,CACP,GAUIK,EAAQ,CAAC,IAAI,CAACD,IAAI,CAAC,KACnBE,EAAQ,CAAC,IAAI,CAACF,IAAI,CAAC,KAWvB,GAVKvQ,MAAMwQ,IACPZ,CAAAA,EAAaY,EAAS1B,EAAGhS,KAAK,CAAGwT,EAAW3X,CAAC,CAAIqW,CAAE,EAElDhP,MAAMyQ,IAKPZ,CAAAA,EAAaY,EAASC,AAHZ,CAAA,AAA6B,UAA7B,IAAI,CAACH,IAAI,CAAC,eACZhB,EACAT,EAAG/R,MAAM,AAAD,EACYuT,EAAW1X,CAAC,CAAIoW,CAAE,EAE9CgB,GAAWI,EAAW,CACtB,IAAIO,EAAOb,EACXA,EAAcC,EACdA,EAAeY,EACV3Q,MAAMwQ,IACPZ,CAAAA,EAAaY,EAAS1B,EAAG/R,MAAM,CAAGuT,EAAW3X,CAAC,CAAIqW,CAAE,EAEnDhP,MAAMyQ,IACPZ,CAAAA,EAAaY,EAAS3B,EAAGhS,KAAK,CAAGwT,EAAW1X,CAAC,CAAIoW,CAAE,CAE3D,CACJ,CACA,IAAI,CAACvB,WAAW,CAAG,IAAI,CAAC9K,QAAQ,CAACiO,IAAI,CAAChB,EAAYC,EAAYC,EAAaC,EAAc5U,SAAS,AAAC0T,CAAAA,GAAWA,EAAQV,CAAC,EAAI,CAAA,EAAGtJ,QAAQ,GAAI,IAAMuK,GAC3IpW,QAAQ,CAAC,2BACTuX,IAAI,CAAC,CACNM,OAAQ,EACZ,GACKzX,GAAG,CAACwC,GACJ,IAAI,CAAC+G,QAAQ,CAACmO,UAAU,EACzB,IAAI,CAACrD,WAAW,CAAC8C,IAAI,CAAC,CAClBzC,OAAQe,GAAWA,EAAQf,MAAM,CACjC,eAAgB,AAACe,CAAAA,GAAWA,EAAQZ,WAAW,EAAI,CAAA,EAAKmB,CAC5D,GAEJ2B,AAUJ,SAA6C9X,CAAE,EAE3C,IAAK,IADD+X,EAAe,EAAE,CACZC,EAAK,EAAGA,EAAK7J,UAAUzN,MAAM,CAAEsX,IACpCD,CAAY,CAACC,EAAK,EAAE,CAAG7J,SAAS,CAAC6J,EAAG,AAEpChY,CAAAA,EAAGiY,sBAAsB,GAG7BjY,EAAGiY,sBAAsB,CAAG,CAAC,EAC7B7D,EAA+BxO,OAAO,CAAC,SAAU+H,CAAO,EACpD,IAAIuK,EAAYvK,EAAU,SACtBwK,EAAanY,CAAE,CAACkY,EAAU,EAAIlY,EAAGoY,cAAc,AACnDpY,CAAAA,EAAGiY,sBAAsB,CAACC,EAAU,CAAGC,EACvCnY,CAAE,CAACkY,EAAU,CAAG,WACZ,IAAIG,EAAMF,EAAWjK,KAAK,CAAClO,EACvBmO,WAEJ,OADAnO,EAAG2U,cAAc,CAACzG,KAAK,CAAClO,EAAI+X,GACrBM,CACX,CACJ,GACJ,EA9BwC,IAAI,CAAEzD,EAAQgB,GAClD0C,AA/GJ,SAA6CtY,CAAE,EAC3C,IAAIA,EAAGuY,sBAAsB,EAG7B,IAAIC,EAAcxY,EAAGiP,OAAO,AAC5BjP,CAAAA,EAAGiP,OAAO,CAAG,WAIT,OAHIjP,EAAGwU,WAAW,EAAIxU,EAAGwU,WAAW,CAACvF,OAAO,EACxCjP,EAAGwU,WAAW,CAACvF,OAAO,GAEnBuJ,EAAYtK,KAAK,CAAClO,EAAImO,UACjC,EACAnO,EAAGuY,sBAAsB,CAAGC,EAChC,EAmGwC,IAAI,CAC5C,CAgDA,SAASC,QAcuCzY,EAAAA,EAbL,IAAI,CActCA,EAAGiY,sBAAsB,GAG9Bjb,OAAO4K,IAAI,CAAC5H,EAAGiY,sBAAsB,EAAErS,OAAO,CAAC,SAAUsS,CAAS,EAC9D,IAAIC,EAAanY,EAAGiY,sBAAsB,CAACC,EAAU,AACjDC,CAAAA,IAAenY,EAAGoY,cAAc,CAChC,OAAOpY,CAAE,CAACkY,EAAU,CAGpBlY,CAAE,CAACkY,EAAU,CAAGC,CAExB,GACA,OAAOnY,EAAGiY,sBAAsB,EAvC3BjY,AAckC,IAAI,CAdnCuY,sBAAsB,GAG9BvY,AAWuC,IAAI,CAXxCiP,OAAO,CAAGjP,AAW0B,IAAI,CAX3BuY,sBAAsB,CACtC,OAAOvY,AAUgC,IAAI,CAVjCuY,sBAAsB,EAW5B,IAAI,CAAC/D,WAAW,GAChB,IAAI,CAACA,WAAW,CAACvF,OAAO,GACxB,OAAO,IAAI,CAACuF,WAAW,CAE/B,CAxOA1Y,EAAuBiM,OAAO,CAZ9B,SAAiBC,CAAU,CAAE0Q,CAAe,EACxC,IAAIzQ,EAAaD,EAAW1K,SAAS,CACjCqb,EAAkBD,EAAgBpb,SAAS,AAC1C2K,CAAAA,EAAWyN,iBAAiB,GAC7BzN,EAAWyN,iBAAiB,CAAGrB,EAC/BpM,EAAW2Q,iBAAiB,CAAGxD,GAE9BuD,EAAgBhE,cAAc,GAC/BgE,EAAgBhE,cAAc,CAAGgB,EACjCgD,EAAgBlE,iBAAiB,CAAGgE,EAE5C,CA+PJ,EAAG3c,GAA2BA,CAAAA,EAAyB,CAAC,CAAA,GAM3B,IAAI+c,GAAe/c,EAG5Cgd,GAAuF1c,EAAoB,KAC3G2c,GAA2G3c,EAAoBI,CAAC,CAACsc,IAiBjIE,GAAgB,AAACpb,IAA+EC,GAAG,CAEnGob,GAAqBnZ,EAAoBC,QAAQ,CAAEmZ,GAAgCpZ,EAAoB8D,mBAAmB,CAE1H0T,GAAO,AAAC1Z,IAA+E0Z,IAAI,CAM3F6B,GAA2B,WAM3B,SAASA,EAAUtU,CAAK,CAAExG,CAAI,EAC1B,IAAI,CAACwG,KAAK,CAAGA,EACb,IAAI,CAAC4K,kBAAkB,CAAG,IA52B2B1B,EA62BrD,IAAI,CAACqL,cAAc,CAAG,IAAI,CAACC,iBAAiB,CAAChb,EACjD,CAmDA,OA7CA8a,EAAU7b,SAAS,CAAC2R,OAAO,CAAG,WAC1B,IAAI,CAACQ,kBAAkB,CAACpB,sBAAsB,EAClD,EACA8K,EAAU7b,SAAS,CAACgc,QAAQ,CAAG,SAAUC,CAAO,EAC5C,IAAIC,EAAQ,IAAI,CAChBT,KAA8FU,cAAc,CAAC,IAAI,CAACL,cAAc,CAAEG,GAG9H,IAAI,CAACG,4BAA4B,EACjCC,aAAa,IAAI,CAACD,4BAA4B,EAElD,IAAI,CAACA,4BAA4B,CAAGE,WAAW,WAC3CJ,EAAMJ,cAAc,CAACS,SAAS,CAAG,AAACd,KAA+Fe,SAAS,CAC1I,OAAON,EAAME,4BAA4B,AAC7C,EAAG,IACP,EACAP,EAAU7b,SAAS,CAAC+b,iBAAiB,CAAG,SAAUhb,CAAI,EAClD,IAAI0b,EAAkB,IAAI,CAAClV,KAAK,CAACmV,kBAAkB,EAAI,IAAI,CAACC,wBAAwB,GAChFC,EAAM,IAAI,CAACzK,kBAAkB,CAACxB,aAAa,CAAC,OAahD,OAZAqJ,GAAK4C,EAAK,CACN,cAAe,CAAA,EACf,YAAa7b,EACb,cAAe,CAAA,CACnB,GACI,IAAI,CAACwG,KAAK,CAACgT,UAAU,CACrBoB,GAAmBiB,EAAK,8BAGxBhB,GAA8BgB,GAElCH,EAAetW,WAAW,CAACyW,GACpBA,CACX,EACAf,EAAU7b,SAAS,CAAC2c,wBAAwB,CAAG,WAC3C,IAAIpV,EAAQ,IAAI,CAACA,KAAK,CAClB2O,EAAYwF,GAAc/K,aAAa,CAAC,OAQ5C,OAPAqJ,GAAK9D,EAAW,CACZ,cAAe,CAAA,EACf,MAAS,gCACb,GACAA,EAAUsB,KAAK,CAACtV,QAAQ,CAAG,WAC3BqF,EAAMyH,QAAQ,CAAC6G,YAAY,CAACK,EAAW3O,EAAMyH,QAAQ,CAAC8G,UAAU,EAChEvO,EAAMmV,kBAAkB,CAAGxG,EACpBA,CACX,EACO2F,CACX,IAsBIgB,GAAsCra,EAAoBuB,mBAAmB,CAAE+Y,GAA0Cta,EAAoB4D,uBAAuB,CAaxK,SAAS2W,GAAyBxV,CAAK,EAEnC,MAAOyV,AADWzV,CAAAA,EAAMyV,WAAW,EAAI,EAAE,AAAD,EACrB/S,MAAM,CAAC,SAAUC,CAAG,CAAEC,CAAG,EAKxC,OAJIA,EAAII,OAAO,EACXJ,AAAwB,CAAA,IAAxBA,EAAII,OAAO,CAAC0S,OAAO,EACnB/S,CAAAA,EAAMA,EAAIgT,MAAM,CAAC/S,EAAIgT,MAAM,CAAA,EAExBjT,CACX,EAAG,EAAE,CACT,CAQA,SAASkT,GAAanH,CAAK,EACvB,OAAQ,AAACA,EAAM1L,OAAO,EAClB0L,EAAM1L,OAAO,CAACmC,aAAa,EAC3BuJ,EAAM1L,OAAO,CAACmC,aAAa,CAACC,WAAW,EACtCsJ,EAAM1K,OAAO,EACV0K,EAAM1K,OAAO,CAACY,IAAI,EAClB8J,EAAM1K,OAAO,CAACY,IAAI,CAACU,OAAO,EAC9B,EACR,CA6G6B,OApC7B,SAAgCtF,CAAK,EACjC,IAAIyV,EAAczV,EAAMyV,WAAW,CACnC,GAAI,CAAEA,CAAAA,GAAeA,EAAY5Z,MAAM,AAAD,EAClC,MAAO,GAEX,IAAIia,EAlBGF,AADMJ,GAmBgCxV,GAlB/B+J,GAAG,CAAC,SAAU2E,CAAK,EAC7B,IAAIqH,EAAOT,GAAoCC,GAAwCS,AArD/F,SAAuCtH,CAAK,EACxC,IAAIuH,EAAYvH,EAAM1L,OAAO,EACrB0L,EAAM1L,OAAO,CAACmC,aAAa,EAC3BuJ,EAAM1L,OAAO,CAACmC,aAAa,CAACC,WAAW,CAC/C,GAAI6Q,EACA,OAAOA,EAEX,IAAIjW,EAAQ0O,EAAM1O,KAAK,CACnBkW,EAAYL,GAAanH,GAezByH,EAAyBtS,AAdhB6K,EAAM7K,MAAM,CAehBvE,MAAM,CAAC,SAAUyE,CAAC,EAAI,MAAO,CAAC,CAACA,EAAEC,OAAO,AAAE,GAC1C+F,GAAG,CAXO,SAAU/B,CAAK,EAC1B,IAAIoO,EAAWpO,EAAM7C,aAAa,EAC9B6C,EAAM7C,aAAa,CAACkR,gBAAgB,EANFrO,AAOrBA,EAP2BhE,OAAO,EACnDgE,AAMiBA,EANXhE,OAAO,CAACjH,OAAO,EACrBiL,AAKiBA,EALXhE,OAAO,CAACjH,OAAO,CAACuZ,YAAY,CAAC,eACnC,GAKAC,EAAcvO,GACVA,EAAMpE,MAAM,CAACyD,IAAI,EACjB,GACR,MAAO,AAACkP,CAAAA,EAAaA,EAAa,KAAO,EAAC,EAAK,cAAgBH,CACnE,GAKS9W,MAAM,CAAC,SAAUyW,CAAI,EAAI,MAAO,CAAC,CAACA,CAAM,GAC7CS,EAAYL,EAAuBta,MAAM,CACzC4a,EAAiBD,EAAY,EACzB,iBAAmBA,EACnB,cAAgB,WAGpBzW,EAAU,CACN2W,eAAgBR,EAChBS,WAAYjI,EACZ8H,UAAWA,EACXI,gBAAiBT,CAAsB,CAAC,EAAE,CAC1CU,2BAA4BV,EAAuB7Y,KAAK,CAAC,EAC7D,EACJ,OAAO0C,EAAM6C,UAAU,CATF,4DACb4T,EAQ+B1W,EAC3C,EAW6H2O,GACjH1O,AAgBqCA,EAhB/B6E,QAAQ,CAACC,SAAS,GAC5B,OAAOiR,EAAO,OAAOJ,MAAM,CAACI,EAAM,SAAW,EACjD,GAeA,MAAO,qCAAuCJ,MAAM,CAACG,EAAgBgB,IAAI,CAAC,KAAM,QACpF,KASA,SAAiC9O,CAAK,EAElC,IAAI+O,EAAcnB,AADLJ,GAAyBxN,EAAMpE,MAAM,CAAC5D,KAAK,EAE/CV,MAAM,CAAC,SAAUoP,CAAK,EAAI,OAAOA,EAAM7K,MAAM,CAACtI,OAAO,CAACyM,GAAS,EAAI,UAC5E,AAAK+O,EAAYlb,MAAM,CAGhBkb,EAAYhN,GAAG,CAAC,SAAU2E,CAAK,EAAI,MAAO,GAAGiH,MAAM,CAACE,GAAanH,GAAS,GAFtE,EAAE,AAGjB,EA2BIsI,IACIjgB,EAAgB,SAAUe,CAAC,CAC3B+U,CAAC,EAOD,MAAO9V,AANHA,CAAAA,EAAgBoB,OAAO2U,cAAc,EAChC,CAAA,CAAEC,UAAW,EAAE,AAAC,CAAA,YAAapF,OAAS,SAAU7P,CAAC,CAC1D+U,CAAC,EAAI/U,EAAEiV,SAAS,CAAGF,CAAG,GACd,SAAU/U,CAAC,CACnB+U,CAAC,EAAI,IAAK,IAAI9I,KAAK8I,EAAO1U,OAAOM,SAAS,CAACC,cAAc,CAACC,IAAI,CAACkU,EAC/D9I,IAAIjM,CAAAA,CAAC,CAACiM,EAAE,CAAG8I,CAAC,CAAC9I,EAAE,AAAD,CAAG,CAAA,EACIjM,EAAG+U,EAC5B,EACO,SAAU/U,CAAC,CAAE+U,CAAC,EACjB,GAAI,AAAa,YAAb,OAAOA,GAAoBA,AAAM,OAANA,EAC3B,MAAM,AAAIoK,UAAU,uBAAyBC,OAAOrK,GAAK,iCAE7D,SAASG,IAAO,IAAI,CAACC,WAAW,CAAGnV,CAAG,CADtCf,EAAce,EAAG+U,GAEjB/U,EAAEW,SAAS,CAAGoU,AAAM,OAANA,EAAa1U,OAAO+U,MAAM,CAACL,GAAMG,CAAAA,EAAGvU,SAAS,CAAGoU,EAAEpU,SAAS,CAAE,IAAIuU,CAAG,CACtF,GASAmK,GAA0C9S,EAAqBU,kBAAkB,CAAEqS,GAA+C/S,EAAqBoB,uBAAuB,CAAE4R,GAAqChT,EAAqBK,aAAa,CAAE4S,GAAgDjT,EAAqBkD,wBAAwB,CAEtVgQ,GAA8B,AAAC9X,IAA2HC,MAAM,CAEhK8X,GAA2B,AAACze,IAA+EC,GAAG,CAE9Gye,GAAgCxc,EAAoBC,QAAQ,CAAEwc,GAAkCzc,EAAoB0B,UAAU,CAAEgb,GAAmD1c,EAAoB6B,2BAA2B,CAAE8a,GAA+C3c,EAAoB4D,uBAAuB,CAAEgZ,GAA2C5c,EAAoB8D,mBAAmB,CAElZ+Y,GAA4B,AAAC/e,IAA+E0Z,IAAI,CAAEsF,GAA4B,AAAChf,IAA+E6G,IAAI,CAAEoY,GAAgB,AAACjf,IAA+Eif,aAAa,CA4ErV,SAASC,GAAmBxb,CAAG,EAE3B,OAAOub,GAAcvb,EAAK,CAAC,mCAAoC,GAAG,CACtE,CAaA,IAAIyb,GAAsC,SAAU1K,CAAM,EAEtD,SAAS0K,IAML,IAAIvD,EAAQnH,AAAW,OAAXA,GAAmBA,EAAOnE,KAAK,CAAC,IAAI,CAC5CC,YAAc,IAAI,CAEtB,OADAqL,EAAMwD,oBAAoB,CAAG,CAAC,EACvBxD,CACX,CAmcA,OA9cAqC,GAA6BkB,EAAsB1K,GAsBnD0K,EAAqBzf,SAAS,CAAC6R,IAAI,CAAG,WAClC,IAAItK,EAAQ,IAAI,CAACA,KAAK,CAClBoY,EAAY,IAAI,CACpB,IAAI,CAACC,sBAAsB,GAC3B,IAAI,CAAC5O,QAAQ,CAACzJ,EAAO,mBAAoB,SAAU1G,CAAC,EAChD8e,EAAUE,kBAAkB,CAAChf,EACjC,GACA,IAAI,CAACmQ,QAAQ,CAACzJ,EAAO,gBAAiB,SAAU1G,CAAC,EACzCA,EAAEif,SAAS,GACXH,EAAUI,YAAY,CAAGlf,EAAEyD,OAAO,CAGlCgY,WAAW,WACPqD,EAAUK,cAAc,EAC5B,EAAG,KAEX,GACA,IAAI,CAAChP,QAAQ,CAACzJ,EAAO,gBAAiB,WAC9BoY,EAAUM,mBAAmB,EAC7BN,EAAUM,mBAAmB,CACxBlR,YAAY,CAAC,gBAAiB,QAE3C,GACIxH,EAAM2Y,SAAS,EAIf,IAAI,CAAClP,QAAQ,CAACzJ,EAAO,aAAc,WAC/BoY,EAAUQ,6BAA6B,EAC3C,GAEJ,IAAI,CAACC,SAAS,CAAG,IAtW2BvE,GAsWPtU,EAAO,YAChD,EAIAkY,EAAqBzf,SAAS,CAAC4f,sBAAsB,CAAG,WACpD,IAAID,EAAY,IAAI,CAChBU,EAAuB,IAAI,CAAC9Y,KAAK,CAACgD,OAAO,CAACmC,aAAa,AAC3D,CAAA,IAAI,CAACgT,oBAAoB,CAAG,CACxBY,OAAQ,CACJhc,QAAS,KACTic,aAAc,SAAUhZ,CAAK,EACzB,IAAIiZ,EAAYH,EAAqBnS,mBAAmB,CAC/CuS,oBAAoB,CAC7B,OAAOD,EAAYA,EAAUjZ,GACzBoY,EAAUe,2BAA2B,CAACnZ,EAC9C,EACAoZ,cAAe,SAAUje,CAAE,CAAE6E,CAAK,EAC9BA,EAAMyH,QAAQ,CAAC6G,YAAY,CAACnT,EAAI6E,EAAMyH,QAAQ,CAAC8G,UAAU,CAC7D,EACA8K,cAAe,WAC6B,KAAA,IAA7BjB,EAAUkB,cAAc,EAC/BlB,EAAUmB,gBAAgB,CAACnB,EAAUkB,cAAc,EAEZ,KAAA,IAAhClB,EAAUoB,iBAAiB,EAClCpB,EAAUqB,mBAAmB,CAACrB,EAAUoB,iBAAiB,CAEjE,CACJ,EACAE,MAAO,CACH3c,QAAS,KACTic,aAAc,SAAUhZ,CAAK,EACzB,IAAIiZ,EAAYH,EAAqBnS,mBAAmB,CAC/CgT,mBAAmB,CAC5B,OAAOV,EAAYA,EAAUjZ,GACzBoY,EAAUwB,0BAA0B,EAC5C,EACAR,cAAe,SAAUje,CAAE,CAAE6E,CAAK,EAC9BA,EAAMyH,QAAQ,CAAC6G,YAAY,CAACnT,EAAI6E,EAAM2O,SAAS,CAACkL,WAAW,CAC/D,EACAR,cAAe,WACPjB,EAAUpY,KAAK,CAACmF,aAAa,EAC7B2T,EAAqB5J,kBAAkB,CAACW,OAAO,EAC/CuI,EAAUpY,KAAK,CAACmF,aAAa,CACxB+J,kBAAkB,CAAC4K,gBAAgB,EAEhD,CACJ,CACJ,CACJ,EAKA5B,EAAqBzf,SAAS,CAAC8R,aAAa,CAAG,WAC3C,IAAI,CAACwP,wBAAwB,CAAG,IAAI,CAACC,2BAA2B,GAChE,IAAI,CAACC,yBAAyB,GAC9B,IAAI,CAACrB,6BAA6B,EACtC,EACAV,EAAqBzf,SAAS,CAACmgB,6BAA6B,CAAG,WAC3D,IAAIR,EAAY,IAAI,CACpBjgB,OAAO4K,IAAI,CAAC,IAAI,CAACoV,oBAAoB,EAAEpX,OAAO,CAAC,SAAUmZ,CAAS,EAC9D9B,EAAU+B,yBAAyB,CAACD,EACxC,EACJ,EAIAhC,EAAqBzf,SAAS,CAACuhB,2BAA2B,CAAG,WACzD,IACII,EAAmBC,AADJ,IAAI,CAACra,KAAK,CAACgD,OAAO,CACDmC,aAAa,CAACmV,iBAAiB,CACnE,GAAKF,GAGL,GAAI,AAA4B,UAA5B,OAAOA,EACP,OAAOA,EAEX,IAAIG,EAAQhD,GAA4B6C,EACpC,IAAI,CAACpa,KAAK,EACVwa,EAAahD,GAAyBiD,gBAAgB,CAACF,GAC3D,GAAIC,AAAsB,IAAtBA,EAAW3e,MAAM,CACjB,OAAO2e,CAAU,CAAC,EAAE,CAE5B,EAIAtC,EAAqBzf,SAAS,CAACwhB,yBAAyB,CAAG,WACvD,IAAI9e,EAAK,IAAI,CAAC4e,wBAAwB,CAClC5e,IACAA,EAAGqM,YAAY,CAAC,cAAe,QAC/BiQ,GAA8Btc,EAAI,iCAE1C,EAMA+c,EAAqBzf,SAAS,CAAC0hB,yBAAyB,CAAG,SAAUD,CAAS,EAC1E,IAAIla,EAAQ,IAAI,CAACA,KAAK,CAClB0a,EAAS,IAAI,CAACvC,oBAAoB,CAAC+B,EAAU,CAC7CS,EAAUD,EAAO1B,YAAY,CAAChZ,GAC9B4a,EAAaF,EAAO3d,OAAO,CAAI2d,EAAO3d,OAAO,EAAI,IAAI,CAACqM,aAAa,CAAC,OACpEyR,EAAaD,EAAWrM,UAAU,EAAI,IAAI,CAACnF,aAAa,CAAC,OACzDuR,GACA,IAAI,CAACG,6BAA6B,CAACF,EAAYV,GAC/ChG,KAA8FU,cAAc,CAACiG,EAAWF,GACxHC,EAAWhc,WAAW,CAACic,GACvBH,EAAOtB,aAAa,CAACwB,EAAY5a,GAC7BA,EAAMgT,UAAU,CAChByE,GAA8BoD,EAAW,8BAGzChD,GAAyCgD,GAE7CvD,GAA8CtX,EAAO6a,GACjDH,EAAOrB,aAAa,EACpBqB,EAAOrB,aAAa,KAIpBuB,EAAWpc,UAAU,EACrBoc,EAAWpc,UAAU,CAACL,WAAW,CAACyc,GAEtCF,EAAO3d,OAAO,CAAG,KAEzB,EAOAmb,EAAqBzf,SAAS,CAACqiB,6BAA6B,CAAG,SAAUF,CAAU,CAAEV,CAAS,EAC1F,IAAIla,EAAQ,IAAI,CAACA,KAAK,CAAEkW,EAAYlW,EAAM6C,UAAU,CAAC,qCAAuCqX,EACpF,cAAe,CAAEla,MAAOA,EAAOiO,WAAYoJ,GAAmCrX,EAAO,GAC7F8X,GAA0B8C,EAAY,CAClChe,GAFyG,mCAAmC+Y,MAAM,CAACuE,EAAW,KAAKvE,MAAM,CAAC3V,EAAM+N,KAAK,EAGrL,aAAcmI,GAAa,KAAK,CACpC,GAGA0E,EAAW3K,KAAK,CAACtV,QAAQ,CAAG,WACxBub,GACA0E,EAAWpT,YAAY,CAAC,OAAQxH,AAAkD,QAAlDA,EAAMgD,OAAO,CAACmC,aAAa,CAAC0J,iBAAiB,CACzE,SAAW,QAEvB,EAIAqJ,EAAqBzf,SAAS,CAAC0gB,2BAA2B,CAAG,WACzD,IAAInZ,EAAQ,IAAI,CAACA,KAAK,CAClBN,EAASM,EAAMgD,OAAO,CAACmC,aAAa,CAACwB,mBAAmB,CACnDoU,iBAAiB,CAC1B,GAAI,CAACrb,EACD,MAAO,GAEX,IAAIsb,EAAW,IAAI,CAACC,kBAAkB,GAClCC,EAAuBlb,EAAMmb,MAAM,EAC/Bnb,EAAMgD,OAAO,CAACoY,YAAY,EAC1Bpb,EAAMgD,OAAO,CAACoY,YAAY,CAACvL,OAAO,CACtCyJ,EAAiB,mCACbtZ,EAAM+N,KAAK,CACfyL,EAAoB,mCAChBxZ,EAAM+N,KAAK,CACfsN,EAAkBC,GAA4Ctb,GAC9Dub,EAAsBvb,EAAM6C,UAAU,CAAC,wDAAyD,CAAE7C,MAAOA,CAAM,GAC/GD,EAAU,CACNyb,eAAgB7D,GAAiD3X,EAAMyH,QAAQ,EAC/EwG,WAAYoJ,GAAmCrX,GAC/Cyb,gBAAiB,IAAI,CAACC,sBAAsB,GAC5CC,cAAe,IAAI,CAACC,eAAe,GACnCC,cAAe,IAAI,CAACC,eAAe,GACnCC,iBAAkBf,EAAS/S,KAAK,CAChC+T,iBAAkBhB,EAAS9S,KAAK,CAChC+T,kBAAmBf,EACf,IAAI,CAACgB,mBAAmB,CAAC5C,GAAkB,GAC/C6C,gBAAiBnc,EAAMoc,MAAM,CACzB,IAAI,CAACC,sBAAsB,CAAC7C,GAAqB,GACrD8C,iBAAkBjB,EAAkBE,EAAsB,GAC1DF,gBAAiBA,CACrB,EACAkB,EAAkBlZ,EAASxD,UAAU,CAACH,EACtCK,EACAC,GAGJ,OAFA,IAAI,CAACwZ,iBAAiB,CAAGA,EACzB,IAAI,CAACF,cAAc,CAAGA,EACfrB,GAAmBsE,EAC9B,EAIArE,EAAqBzf,SAAS,CAACmhB,0BAA0B,CAAG,WACxD,IAAI5Z,EAAQ,IAAI,CAACA,KAAK,CAClBN,EAASM,EAAMgD,OAAO,CAACmC,aAAa,CAACwB,mBAAmB,CACnD6V,gBAAgB,CACzB,GAAI,CAAC9c,EACD,MAAO,GAEX,IAAIK,EAAU,CAAE0c,iBAAkB,IAAI,CAACC,uBAAuB,EAAG,EAIjE,OAAOzE,GAHe5U,EAASxD,UAAU,CAACH,EACtCK,EACAC,GAER,EAIAkY,EAAqBzf,SAAS,CAACkkB,oBAAoB,CAAG,WAClD,IAAIxhB,EAAK,IAAI,CAAC4e,wBAAwB,CAEtC,OAAOnC,GADOzc,GAAMA,EAAG6Z,SAAS,EAAI,GACyB,IAAI,CAAChV,KAAK,CAAC6E,QAAQ,CAACC,SAAS,CAC9F,EAIAoT,EAAqBzf,SAAS,CAACqjB,eAAe,CAAG,WAC7C,IAAIzB,EAAe,IAAI,CAACra,KAAK,CAACgD,OAAO,CACjC4Z,EAAiBvC,EAAawC,OAAO,CACrCC,EAAcF,GAAkBA,EAAehY,IAAI,CACnD0V,EAAoB,IAAI,CAACqC,oBAAoB,GACjD,OAAQtC,EAAalV,aAAa,CAACC,WAAW,EAC1CkV,GACAwC,GACA,EACR,EAIA5E,EAAqBzf,SAAS,CAACijB,sBAAsB,CAAG,WACpD,IAvUoB1b,EAAO+c,EAd3BC,EAAsBC,EAAkGC,EAexHF,EACAG,EACAC,EAEAC,EAkUIrd,EAAQ,IAAI,CAACA,KAAK,CACtB,OAAOA,EAAM+c,KAAK,CACd/c,EAAMgD,OAAO,CAACmC,aAAa,CAACsW,eAAe,GAzU3Bzb,EA0UOA,EAzU3Bgd,EAAYD,CADeA,EA0UO/c,EAAM+c,KAAK,CAzU5B,CAAC,EAAE,CACpBI,EAAcnd,EAAM4D,MAAM,EAAI5D,EAAM4D,MAAM,CAAC,EAAE,EAAI,CAAC,EAClDwZ,EAAWpd,EAAMsd,OAAO,EAAItd,EAAMsd,OAAO,CAACC,MAAM,EAC5Cvd,EAAMsd,OAAO,CAACC,MAAM,CAAC5Y,KAAK,CAC9B0Y,EAAgB,CACZG,UAAWxd,EAAM4D,MAAM,CAAC/H,MAAM,CAC9B2a,UAAW2G,EAAYtZ,MAAM,EAAIsZ,EAAYtZ,MAAM,CAAChI,MAAM,CAC1DmE,MAAOA,EACPod,SAAUA,CACd,EACJ,AAAKJ,EAGDA,AAAc,QAAdA,GAAuBA,AAAc,gBAAdA,EAhDpBK,AAiDkCA,EAjDpBD,QAAQ,CACzBpd,AAgD8BA,EAhDxB6C,UAAU,CAAC,8CAgDoBwa,GA/CrCrd,AA+C8BA,EA/CxB6C,UAAU,CAAC,sCA+CoBwa,GAErCrd,EAAM+c,KAAK,CAAClhB,MAAM,CAAG,EA3ClBmE,AA4CmCA,EA5C7B6C,UAAU,CAAC,4CA4CyBwa,IAhC7CL,EAAYD,AAkC6BA,CAlCxB,CAAC,EAAE,CAAEE,EAAkBjd,AAkCNA,EAlCY6C,UAAU,CAAC,wCAA0Cma,EAkCnDK,GAlCwEH,EAAQld,AAkC9FA,EAlCoG4D,MAAM,EAAI5D,AAkC9GA,EAlCoH4D,MAAM,CAAC/H,MAAM,CAAG,EAAI,SAAW,WAClL,AAACmE,CAAAA,AAiC8BA,EAjCxB6C,UAAU,CAAC,4BAA8Bma,EAAYE,EAiCfG,IAhChDrd,AAgCkCA,EAhC5B6C,UAAU,CAAC,mCAAqCqa,EAgCNG,EAhCoB,EAAMJ,CAAAA,EAAkB,IAAMA,EAAkB,EAAC,GARlHjd,AAgC6BA,EAhCvB6C,UAAU,CAAC,sCAgCmBwa,IA8TU,EACrD,EAIAnF,EAAqBzf,SAAS,CAAC4jB,sBAAsB,CAAG,SAAUoB,CAAQ,EACtE,IAAIzd,EAAQ,IAAI,CAACA,KAAK,CAGtB,MAAO,eAAiByd,EAAW,KAFlBzd,EAAM6C,UAAU,CAAC,gDAAiD,CAAE7C,MAAOA,EACxFiO,WAAYoJ,GAAmCrX,EAAO,GACH,WAC3D,EAIAkY,EAAqBzf,SAAS,CAACyjB,mBAAmB,CAAG,SAAUuB,CAAQ,EACnE,IAAIzd,EAAQ,IAAI,CAACA,KAAK,QACtB,AAAIA,EAAMgD,OAAO,CAACoY,YAAY,EAC1Bpb,AAAuC,CAAA,IAAvCA,EAAMgD,OAAO,CAACoY,YAAY,CAACvL,OAAO,CAC3B,GAIJ,eAAiB4N,EAAW,KAFlBzd,EAAM6C,UAAU,CAAC,mDAAoD,CAAE7C,MAAOA,EAC3FiO,WAAYoJ,GAAmCrX,EAAO,GACH,WAC3D,EAIAkY,EAAqBzf,SAAS,CAACmjB,eAAe,CAAG,WAC7C,IAAI8B,EAAY,IAAI,CAAC1d,KAAK,CAACgD,OAAO,CAAC0a,QAAQ,CAC3C,OAAO9F,GAA6C8F,GAAYA,EAAS9Y,IAAI,EAAI,GAAI,IAAI,CAAC5E,KAAK,CAAC6E,QAAQ,CAACC,SAAS,CACtH,EAIAoT,EAAqBzf,SAAS,CAACikB,uBAAuB,CAAG,WACrD,IACIiB,EAAYjG,GADE,kCAAkC/B,MAAM,CAAC,IAAI,CAAC3V,KAAK,CAAC+N,KAAK,GAE3E,GAAI4P,EACA,OAAOA,EAAUC,SAAS,CAE9B,IAAI5d,EAAQ,IAAI,CAACA,KAAK,CAAE6d,EAAa7d,EAAM6C,UAAU,CAAC,qDAAsD,CAAE7C,MAAOA,CAAM,GAC3H,MAAO,2CADiKA,EAAM+N,KAAK,CACzJ,KAAO8P,EAAa,QAClD,EAKA3F,EAAqBzf,SAAS,CAAC6f,kBAAkB,CAAG,SAAUhf,CAAC,EAC3D,IAAI0G,EAAQ,IAAI,CAACA,KAAK,CACtB,GAAIA,EAAMgD,OAAO,CAACmC,aAAa,CAAC0K,OAAO,CAAE,CACjC,IAAI,CAAC6I,mBAAmB,EACxB,IAAI,CAACA,mBAAmB,CAAClR,YAAY,CAAC,gBAAiB,QAE3D,IAAIsW,EAAaxkB,EAAEykB,IAAI,CAACD,UAAU,EAAI,CAAC,CACvCA,CAAAA,EAAWE,QAAQ,CAAG,GACtBF,EAAWG,OAAO,CAzanBje,AAyasCA,EAzahC6C,UAAU,CAAC,mCAAoC,CAAE7C,MAyajBA,CAza8B,GA0anE1G,EAAEykB,IAAI,CAACD,UAAU,CAAGA,CACxB,CACJ,EAIA5F,EAAqBzf,SAAS,CAACggB,cAAc,CAAG,WAC5C,IAAIyF,EAAW,IAAI,CAAC1F,YAAY,CAC5B2F,EAAQD,GAAYA,EAASE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAC7DD,GAASA,EAAM/O,KAAK,EACpB+O,EAAM/O,KAAK,EAEnB,EAKA8I,EAAqBzf,SAAS,CAAC8gB,gBAAgB,CAAG,SAAUD,CAAc,EACtE,IAAI3E,EAAQ,IAAI,CACZxZ,EAAK,IAAI,CAACkjB,YAAY,CAAG3G,GAAgC4B,GACzDtZ,EAAQ,IAAI,CAACA,KAAK,CAClBse,EAAiB,SAAUhlB,CAAC,EACpB6B,IACAA,EAAGqM,YAAY,CAAC,cAAe,QACnCrM,EAAGqM,YAAY,CAAC,aAAc,KAElClO,EAAEgD,cAAc,GAChBhD,EAAEilB,eAAe,GACjB,IAAIC,EAAcxe,EAAM6C,UAAU,CAAC,0DAA2D,CAAE7C,MAAOA,CAAM,GAC7G2U,EAAMkE,SAAS,CAACpE,QAAQ,CAAC+J,GACzBzJ,WAAW,WACH5Z,IACAA,EAAGsjB,eAAe,CAAC,eACnBtjB,EAAGsjB,eAAe,CAAC,eAEnBze,EAAMmb,MAAM,EACZnb,EAAMmb,MAAM,EAEpB,EAAG,IACP,EACIhgB,GAAM6E,IACN7E,EAAGqM,YAAY,CAAC,WAAY,IAC5BrM,EAAGujB,OAAO,CAAG,SAAUplB,CAAC,EAIpB,AAACqlB,CAAAA,AAHyB3e,EAAMgD,OAAO,CAACmC,aAAa,EAC7CnF,EAAMgD,OAAO,CAACmC,aAAa,CAACwB,mBAAmB,CAC1CgY,kBAAkB,EACRL,CAAa,EAAG3lB,IAAI,CAAC,IAAI,CAAEW,EAAG0G,EACzD,EAER,EAMAkY,EAAqBzf,SAAS,CAACghB,mBAAmB,CAAG,SAAUmF,CAAa,EACxE,IAAIzjB,EAAK,IAAI,CAACud,mBAAmB,CAAGhB,GAAgCkH,GAAgB5e,EAAQ,IAAI,CAACA,KAAK,CAAE6e,EAAUD,EAAcliB,OAAO,CAAC,aAAc,IAClJvB,IACA2c,GAA0B3c,EAAI,CAC1B6iB,SAAU,GACV,gBAAiB,CAAC,CAACtG,GAAgCmH,EACvD,GACA1jB,EAAGujB,OAAO,CAAG1e,EAAMgD,OAAO,CAACmC,aAAa,CACnCwB,mBAAmB,CAACmY,oBAAoB,EACzC,WACI9e,EAAM+e,QAAQ,EAClB,EAEZ,EAKA7G,EAAqBzf,SAAS,CAACwiB,kBAAkB,CAAG,WAChD,IAAIjb,EAAQ,IAAI,CAACA,KAAK,CAClBgf,EAAqB,SAAUC,CAAa,CAC5CC,CAAgB,EACZ,IAAIC,EAAOnf,CAAK,CAACif,EAAc,CACnC,OAAOE,EAAKtjB,MAAM,CAAG,GAAKsjB,CAAI,CAAC,EAAE,EAC7BpH,GAA0BoH,CAAI,CAAC,EAAE,CAACnc,OAAO,CAACmC,aAAa,EACnDga,CAAI,CAAC,EAAE,CAACnc,OAAO,CAACmC,aAAa,CAAC0K,OAAO,CAAEqP,EACnD,EAAGE,EAAW,CAAC,CAACpf,EAAM+c,KAAK,EACvB/c,AAA6B,EAA7BA,EAAM+c,KAAK,CAACxhB,OAAO,CAAC,QACpByE,AAAiC,EAAjCA,EAAM+c,KAAK,CAACxhB,OAAO,CAAC,YACpByE,AAAiC,EAAjCA,EAAM+c,KAAK,CAACxhB,OAAO,CAAC,WAAgB8jB,EAAe,CAAC,CAACrf,EAAMsf,kBAAkB,CAAEC,EAAYP,EAAmB,QAAS,CAAChf,EAAMwf,OAAO,EAAIH,GAAgBD,GAAWK,EAAYT,EAAmB,QAASK,GAAgBD,GAAWrJ,EAAO,CAAC,EAOnP,OANIwJ,GACAxJ,CAAAA,EAAK9N,KAAK,CAAG,IAAI,CAACyX,sBAAsB,CAAC,QAAO,EAEhDD,GACA1J,CAAAA,EAAK7N,KAAK,CAAG,IAAI,CAACwX,sBAAsB,CAAC,QAAO,EAE7C3J,CACX,EAIAmC,EAAqBzf,SAAS,CAACinB,sBAAsB,CAAG,SAAUT,CAAa,EAC3E,IAAIjf,EAAQ,IAAI,CAACA,KAAK,CAClBmf,EAAOnf,CAAK,CAACif,EAAc,CAC/B,OAAOjf,EAAM6C,UAAU,CAAC,sBAAwBoc,EAAgB,cAAiBE,CAAAA,EAAKtjB,MAAM,CAAG,EAAI,SAAW,UAAS,EAAI,CACvHmE,MAAOA,EACP2f,MAAOR,EAAKpV,GAAG,CAAC,SAAU/E,CAAI,EAC1B,OAAOmS,GAAwCnS,EACnD,GACA4a,OAAQT,EAAKpV,GAAG,CAAC,SAAU/E,CAAI,EAC3B,OAAOoS,GAA6CpS,EACxD,GACA6a,QAASV,EAAKtjB,MAAM,AACxB,EACJ,EAIAqc,EAAqBzf,SAAS,CAAC2R,OAAO,CAAG,WACjC,IAAI,CAACyO,SAAS,EACd,IAAI,CAACA,SAAS,CAACzO,OAAO,EAE9B,EACO8N,CACX,EA38CyE/N,IAg+CrE2V,IACI/oB,EAAgB,SAAUe,CAAC,CAC3B+U,CAAC,EAOD,MAAO9V,AANHA,CAAAA,EAAgBoB,OAAO2U,cAAc,EAChC,CAAA,CAAEC,UAAW,EAAE,AAAC,CAAA,YAAapF,OAAS,SAAU7P,CAAC,CAC1D+U,CAAC,EAAI/U,EAAEiV,SAAS,CAAGF,CAAG,GACd,SAAU/U,CAAC,CACnB+U,CAAC,EAAI,IAAK,IAAI9I,KAAK8I,EAAO1U,OAAOM,SAAS,CAACC,cAAc,CAACC,IAAI,CAACkU,EAC/D9I,IAAIjM,CAAAA,CAAC,CAACiM,EAAE,CAAG8I,CAAC,CAAC9I,EAAE,AAAD,CAAG,CAAA,EACIjM,EAAG+U,EAC5B,EACO,SAAU/U,CAAC,CAAE+U,CAAC,EACjB,GAAI,AAAa,YAAb,OAAOA,GAAoBA,AAAM,OAANA,EAC3B,MAAM,AAAIoK,UAAU,uBAAyBC,OAAOrK,GAAK,iCAE7D,SAASG,IAAO,IAAI,CAACC,WAAW,CAAGnV,CAAG,CADtCf,EAAce,EAAG+U,GAEjB/U,EAAEW,SAAS,CAAGoU,AAAM,OAANA,EAAa1U,OAAO+U,MAAM,CAACL,GAAMG,CAAAA,EAAGvU,SAAS,CAAGoU,EAAEpU,SAAS,CAAE,IAAIuU,CAAG,CACtF,GAGA+S,GAAqB,AAAChnB,IAA+E0Z,IAAI,CAIzGuN,GAA8B3b,EAAqBK,aAAa,CAAEub,GAAyC5b,EAAqBkD,wBAAwB,CAExJ2Y,GAAkCjlB,EAAoBP,iBAAiB,CAU3E,SAASylB,GAA2BngB,CAAK,EACrC,OAAOA,EAAMogB,iBAAiB,EAAIpgB,EAAMogB,iBAAiB,CAAC,EAAE,AAChE,CA0BA,IAAIC,GAA+B,SAAU7S,CAAM,EAE/C,SAAS6S,IACL,OAAO7S,AAAW,OAAXA,GAAmBA,EAAOnE,KAAK,CAAC,IAAI,CAAEC,YAAc,IAAI,AACnE,CA0PA,OA7PAwW,GAAsBO,EAAe7S,GAarC6S,EAAc5nB,SAAS,CAAC6R,IAAI,CAAG,WAC3B,IAAItK,EAAQ,IAAI,CAACA,KAAK,CAClBoY,EAAY,IAAI,CACpB,IAAI,CAAC3O,QAAQ,CAACzJ,EAAO,kBAAmB,WACpCoY,EAAUkI,WAAW,EACzB,GACA,IAAI,CAAC7W,QAAQ,CAACzJ,EAAO,mBAAoB,WACrCoY,EAAUmI,YAAY,EAC1B,GACA,IAAI,CAACC,gBAAgB,EACzB,EAIAH,EAAc5nB,SAAS,CAAC8nB,YAAY,CAAG,WACnC,IAAIE,EAAO,IAAI,CAACzgB,KAAK,CAAC0gB,iBAAiB,CACnCD,GACAA,EAAKjZ,YAAY,CAAC,cAAe,QAErC,IAAI,CAACmZ,4BAA4B,CAAC,QACtC,EAIAN,EAAc5nB,SAAS,CAAC6nB,WAAW,CAAG,WAClC,IAAItgB,EAAQ,IAAI,CAACA,KAAK,CAClBygB,EAAOzgB,EAAM0gB,iBAAiB,CAC9BD,IACA,IAAI,CAACG,+BAA+B,GACpCX,GAAuCjgB,EAAOygB,IAElD,IAAI,CAACE,4BAA4B,CAAC,OACtC,EAKAN,EAAc5nB,SAAS,CAACkoB,4BAA4B,CAAG,SAAUE,CAAQ,EACjE,IAAI,CAACC,iBAAiB,EACtB,IAAI,CAACA,iBAAiB,CAACC,YAAY,CAACvZ,YAAY,CAAC,gBAAiBqZ,EAE1E,EAKAR,EAAc5nB,SAAS,CAAC8R,aAAa,CAAG,WACpC,IAAIvK,EAAQ,IAAI,CAACA,KAAK,CAClBghB,EAAUhhB,EAAMyP,YAAY,CAC5BR,EAAOjP,EAAMmF,aAAa,CAC9B,IAAI,CAACuF,aAAa,CAACuW,UAAU,CAAC,aAC9B,IAAI,CAACC,eAAe,GAChB,IAAI,CAACJ,iBAAiB,EACtBE,GACAA,IAAYhhB,EAAMmhB,cAAc,GAC5BH,EAAQrR,WAAW,CACnB3P,EAAM+T,iBAAiB,CAACiN,EAAS,IAAI,CAACF,iBAAiB,CAACC,YAAY,EAE/D9R,GACLA,EAAKC,kBAAkB,CAACC,iBAAiB,CAACC,KAAK,GAG3D,EAIAiR,EAAc5nB,SAAS,CAACyoB,eAAe,CAAG,WACtC,IAtGAE,EACAC,EAqGIrhB,EAAQ,IAAI,CAACA,KAAK,CAClB0K,EAAgB,IAAI,CAACA,aAAa,CAClC4W,EAAWnB,GAA2BngB,GAxG1CohB,EAAgBphB,AAyGYA,EAzGNgD,OAAO,CAAC2V,SAAS,CACvC0I,EAAelB,GAwGangB,GAAxBuhB,AAvGEH,GACNA,AAA0B,CAAA,IAA1BA,EAAcvR,OAAO,EACrBuR,EAAcjc,aAAa,EAC3Bic,EAAcjc,aAAa,CAAC0K,OAAO,EACnCwR,GACAA,EAAatkB,OAAO,EAkGkBukB,GAClC,CAAA,IAAI,CAACR,iBAAiB,CAAGpW,EAAc8W,eAAe,CAAC,YAAa,CAAEC,MAAOH,CAAS,EAAG,SAAU,CAC/F,aAActhB,EAAM6C,UAAU,CAAC,0CAA2C,CACtE7C,MAAOA,EACPiO,WAAY+R,GAA4BhgB,EAC5C,GACA,gBAAiB,CAAA,EACjB2E,MAAO3E,EAAMgD,OAAO,CAACC,IAAI,CAACye,kBAAkB,EAAI,IACpD,EAAC,CAET,EAIArB,EAAc5nB,SAAS,CAAC+nB,gBAAgB,CAAG,WAC3B,IAAI,CAACxgB,KAAK,EACT,IAAI,CAAC0K,aAAa,EAC3B,IAAI,CAACA,aAAa,CAACiX,QAAQ,CAAC,YAEpC,EAIAtB,EAAc5nB,SAAS,CAACmoB,+BAA+B,CAAG,WACtD,IAAI5gB,EAAQ,IAAI,CAACA,KAAK,CAClB4hB,EAAa5hB,EAAM6hB,iBAAiB,CACxC,GAAID,GAAcA,EAAW/lB,MAAM,CAAE,CAGjC+lB,EAAW7gB,OAAO,CAAC,SAAUjF,CAAI,EACzBA,IACIA,AAAiB,OAAjBA,EAAKmB,OAAO,EACVnB,EAAKgmB,QAAQ,EAAIhmB,EAAKgmB,QAAQ,CAACjmB,MAAM,CAIvCC,EAAK0L,YAAY,CAAC,cAAe,QAHjC1L,EAAK0L,YAAY,CAAC,WAAY,IAM1C,GAEA,IAAIua,EAAaH,CAAU,CAAC,EAAE,EAAIA,CAAU,CAAC,EAAE,CAACpjB,UAAU,CACtDujB,GACAhC,GAAmBgC,EAAW,CAC1B,cAAe,KAAK,EACpB,aAAc/hB,EAAM6C,UAAU,CAAC,yCAA0C,CAAE7C,MAAOA,CAAM,GACxFgiB,KAAM,MACV,EAER,CACJ,EAKA3B,EAAc5nB,SAAS,CAAC4R,qBAAqB,CAAG,WAC5C,IAAItH,EAAO,IAAI,CAAC8H,QAAQ,CACpB7K,EAAQ,IAAI,CAACA,KAAK,CAClBoY,EAAY,IAAI,CACpB,OAAO,IA5kD6DvM,GA4kDjB7L,EAAO,CACtD8L,WAAY,CAER,CACI,CAAC/I,EAAK+H,IAAI,CAAE/H,EAAKiI,EAAE,CAAC,CACpB,WACI,OAAOoN,EAAU6J,aAAa,CAAC,IAAI,CACvC,EACH,CAED,CACI,CAAClf,EAAKgI,KAAK,CAAEhI,EAAKkI,IAAI,CAAC,CACvB,WACI,OAAOmN,EAAU8J,SAAS,CAAC,IAAI,CACnC,EACH,CAED,CACI,CAACnf,EAAKmI,KAAK,CAAEnI,EAAKoI,KAAK,CAAC,CACxB,WACI,OAAOiN,EAAU+J,UAAU,CAAC,IAAI,CACpC,EACH,CACJ,CAGDpW,SAAU,WACN,MAAO,CAAC,CAAC/L,EAAM2Y,SAAS,EACpB3Y,AAAoC,CAAA,IAApCA,EAAMgD,OAAO,CAAC2V,SAAS,CAAC9I,OAAO,EAC/B7P,AACI,CAAA,IADJA,EAAMgD,OAAO,CAAC2V,SAAS,CAACxT,aAAa,CAAC0K,OAAO,AAErD,EAEAvF,KAAM,WACF,IAAI8X,EAAQhK,EAAU0I,iBAAiB,CACnCuB,EAAQjK,EAAUpY,KAAK,CAACmhB,cAAc,CACtCiB,GAASC,GACTriB,EAAM+T,iBAAiB,CAACsO,EAAOD,EAAMrB,YAAY,CAEzD,EAEA/U,UAAW,WACPhM,EAAMsiB,cAAc,EACxB,CACJ,EACJ,EAMAjC,EAAc5nB,SAAS,CAACwpB,aAAa,CAAG,SAAUM,CAAyB,EAOvE,IANA,IAAIviB,EAAQ,IAAI,CAACA,KAAK,CAClBwiB,EAAcxiB,EAAMgD,OAAO,CAACmC,aAAa,CACzC8G,EAAWsW,EAA0BtW,QAAQ,CAG7CrQ,EAAIoE,EAAMyiB,uBAAuB,EAAI,EAClC7mB,KACH,GAAIoE,EAAM0iB,mBAAmB,CAAC9mB,GAC1B,OAAOqQ,EAASC,OAAO,QAI/B,AAAIsW,EAAYtT,kBAAkB,CAACyT,UAAU,EACzC3iB,EAAM4iB,uBAAuB,GACtB3W,EAASC,OAAO,EAEpBD,EAASE,IAAI,AACxB,EAMAkU,EAAc5nB,SAAS,CAACypB,SAAS,CAAG,SAAUK,CAAyB,EAMnE,IAAK,IALDviB,EAAQ,IAAI,CAACA,KAAK,CAClBwiB,EAAcxiB,EAAMgD,OAAO,CAACmC,aAAa,CACzC8G,EAAWsW,EAA0BtW,QAAQ,CAGxCrQ,EAAI,AAACoE,CAAAA,EAAMyiB,uBAAuB,EAAI,CAAA,EAAK,EAAG7mB,EAAIoE,EAAM6hB,iBAAiB,CAAChmB,MAAM,CAAE,EAAED,EACzF,GAAIoE,EAAM0iB,mBAAmB,CAAC9mB,GAC1B,OAAOqQ,EAASC,OAAO,QAI/B,AAAIsW,EAAYtT,kBAAkB,CAACyT,UAAU,EACzC3iB,EAAM0iB,mBAAmB,CAAC,GACnBzW,EAASC,OAAO,EAEpBD,EAASG,IAAI,AACxB,EAMAiU,EAAc5nB,SAAS,CAAC0pB,UAAU,CAAG,SAAUI,CAAyB,EACpE,IAAIviB,EAAQ,IAAI,CAACA,KAAK,CAClB6iB,EAAqB7iB,EAAM6hB,iBAAiB,CAAC7hB,EAAMyiB,uBAAuB,CAAC,CAC3EK,EAAsB3C,GAA2BngB,GAAOjD,OAAO,CAQnE,OAPIiD,EAAM+iB,QAAQ,CACd,IAAI,CAACrX,cAAc,CAACmX,IAGpB,IAAI,CAACnX,cAAc,CAACoX,GACpB9iB,EAAM0iB,mBAAmB,CAAC,IAEvBH,EAA0BtW,QAAQ,CAACC,OAAO,AACrD,EACOmU,CACX,EA/xDyElW,KAqyDzE,AAAC,SAAUkW,CAAa,EA8BpB,SAAS2C,IACL,IAAI3B,EAAelB,GAA2B,IAAI,EAClD,GAAIkB,EAAc,CACd,IAAIlmB,EAAKkmB,EAAatkB,OAAO,AACzB5B,CAAAA,EAAGujB,OAAO,EACVvjB,EAAGujB,OAAO,CAACwB,GAAgC,SAEnD,CACJ,CAKA,SAAS+C,IACL,IACIrB,EAAa5hB,AADL,IAAI,CACO6hB,iBAAiB,CACpCD,GAAc5hB,AAFN,IAAI,CAEQ0gB,iBAAiB,EAAI1gB,AAFjC,IAAI,CAEmC+iB,QAAQ,GAEvDnB,EAAW7gB,OAAO,CAAC,SAAU5F,CAAE,EACvBA,GACAA,AAAiB,yBAAjBA,EAAGC,SAAS,EACZD,EAAG+nB,UAAU,EACb/nB,EAAG+nB,UAAU,CAAChD,GAAgC,YAEtD,GACAlgB,AAXQ,IAAI,CAWNyiB,uBAAuB,CAAG,EAEhCziB,AAbQ,IAAI,CAaN0gB,iBAAiB,CAACyC,QAAQ,GAEhCnjB,AAfQ,IAAI,CAeN2O,SAAS,CAACS,KAAK,GAE7B,CAOA,SAASgU,EAAyB5gB,CAAE,EAChC,IAAI6gB,EAAW,IAAI,CAACxB,iBAAiB,EAAI,IAAI,CAACA,iBAAiB,CAACrf,EAAG,CAC/D8gB,EAAiB,IAAI,CAACzB,iBAAiB,EACnC,IAAI,CAACA,iBAAiB,CAAC,IAAI,CAACY,uBAAuB,CAAC,CAC5D,GAAIY,GACAA,AAAqB,OAArBA,EAASpmB,OAAO,EAChB,CAAEomB,CAAAA,EAASvB,QAAQ,EAAIuB,EAASvB,QAAQ,CAACjmB,MAAM,AAAD,EAAI,CAElD,IAAI0nB,EAAqB,CAAC,CAAC,AAAC,CAAA,IAAI,CAAC9b,QAAQ,CAAC2W,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAI,CAAC,CAAA,EAAGhP,KAAK,CAanF,OAVIiU,EAASjU,KAAK,EAAImU,GAClBF,EAASjU,KAAK,GAEdkU,GAAkBA,EAAeJ,UAAU,EAC3CI,EAAeJ,UAAU,CAAChD,GAAgC,aAE1DmD,EAASG,WAAW,EACpBH,EAASG,WAAW,CAACtD,GAAgC,cAEzD,IAAI,CAACuC,uBAAuB,CAAGjgB,EACxB,CAAA,CACX,CACA,MAAO,CAAA,CACX,CAOA,SAASihB,IAEL,GAAIzjB,AADQ,IAAI,CACN6hB,iBAAiB,CAEvB,CAAA,IADA,IAAIjmB,EAAIoE,AAFA,IAAI,CAEE6hB,iBAAiB,CAAChmB,MAAM,CAC/BD,KACH,GAAIoE,AAJA,IAAI,CAIE0iB,mBAAmB,CAAC9mB,GAC1B,MAAO,CAAA,CAEf,CAEJ,MAAO,CAAA,CACX,CAvFAykB,EAAcnd,OAAO,CATrB,SAAiBC,CAAU,EACvB,IAAIC,EAAaD,EAAW1K,SAAS,AAChC2K,CAAAA,EAAWkf,cAAc,GAC1Blf,EAAWkf,cAAc,CAAGW,EAC5B7f,EAAWsf,mBAAmB,CAAGU,EACjChgB,EAAWwf,uBAAuB,CAAGa,EACrCrgB,EAAWsgB,cAAc,CAAGV,EAEpC,CAyFJ,EAAG3C,IAAkBA,CAAAA,GAAgB,CAAC,CAAA,GAMT,IAAIsD,GAA4BtD,GAgBzDuD,GAAyB,AAAC7qB,IAA+EC,GAAG,CAAE6qB,GAAyB,AAAC9qB,IAA+EE,GAAG,CAG1N6qB,GAA8B,AAAC/qB,IAA+E0Q,QAAQ,CAAEsa,GAA6B,AAAChrB,IAA+EyK,OAAO,CAAEwgB,GAA+B,AAACjrB,IAA+E2K,SAAS,CAGtWugB,GAAgChpB,EAAoB0B,UAAU,CAAEunB,GAA0CjpB,EAAoB9B,oBAAoB,CAoBlJgrB,GAAoC,WAMpC,SAASA,EAAmBnkB,CAAK,CAAEokB,CAAU,EACzC,IAAI,CAACC,eAAe,CAAGC,IACvB,IAAI,CAACC,OAAO,CAAG,EAAE,CACjB,IAAI,CAACja,IAAI,CAACtK,EAAOokB,EACrB,CAoWA,OAtVAD,EAAmB1rB,SAAS,CAAC6R,IAAI,CAAG,SAAUtK,CAAK,CAAEokB,CAAU,EAC3D,IAAIzP,EAAQ,IAAI,CACZ6P,EAAK,IAAI,CAAC7Z,aAAa,CAAG,IAtnEkBjB,EAunEhD,CAAA,IAAI,CAAC1J,KAAK,CAAGA,EACb,IAAI,CAACokB,UAAU,CAAGA,EAClB,IAAI,CAACG,OAAO,CAAG,EAAE,CACjB,IAAI,CAACF,eAAe,CAAG,EACvB,IAAI,CAACI,MAAM,GACXD,EAAG/a,QAAQ,CAAC,IAAI,CAAC0F,iBAAiB,CAAE,UAAW,SAAU7V,CAAC,EAAI,OAAOqb,EAAM+P,SAAS,CAACprB,EAAI,GACzFkrB,EAAG/a,QAAQ,CAAC,IAAI,CAAC0F,iBAAiB,CAAE,QAAS,SAAU7V,CAAC,EAAI,OAAOqb,EAAMgQ,OAAO,CAACrrB,EAAI,GACrF,CAAC,UAAW,WAAW,CAACyH,OAAO,CAAC,SAAU6jB,CAAS,EAC/C,OAAOJ,EAAG/a,QAAQ,CAACma,GAAwBgB,EAAW,SAAUtrB,CAAC,EAAI,OAAOqb,EAAMkQ,SAAS,CAACvrB,EAAI,EACpG,GACA,CAAC,YAAa,aAAa,CAACyH,OAAO,CAAC,SAAU6jB,CAAS,EACnD,OAAOJ,EAAG/a,QAAQ,CAACzJ,EAAMyH,QAAQ,CAAEmd,EAAW,WAC1CjQ,EAAMmQ,eAAe,CAAG,CAAA,CAC5B,EACJ,EACJ,EAMAX,EAAmB1rB,SAAS,CAACgsB,MAAM,CAAG,SAAUM,CAAK,EACjD,IAAIvC,EAAc,IAAI,CAACxiB,KAAK,CAACgD,OAAO,CAACmC,aAAa,CAC9C6f,EAAkBxC,GAAeA,EAAYtT,kBAAkB,CAC/DkV,EAAa,IAAI,CAACA,UAAU,CAChC,IAAI,CAACa,uBAAuB,GACxBD,GACAA,EAAgBnV,OAAO,EACvBkV,GACAA,EAAMlpB,MAAM,EAEZ,IAAI,CAAC0oB,OAAO,CAAGQ,EAAMriB,MAAM,CAAC,SAAU6hB,CAAO,CAAEW,CAAa,EACxD,IAAIC,EAAaf,CAAU,CAACc,EAAc,CACjC7a,qBAAqB,GAC9B,OAAOka,EAAQ5O,MAAM,CAACwP,EAC1B,EAAG,EAAE,EACL,IAAI,CAACrL,gBAAgB,KAGrB,IAAI,CAACyK,OAAO,CAAG,EAAE,CACjB,IAAI,CAACF,eAAe,CAAG,EACvB,IAAI,CAACe,gBAAgB,GAE7B,EAQAjB,EAAmB1rB,SAAS,CAACqhB,gBAAgB,CAAG,WAC5C,IACI6D,EAAYsG,GADE,kCAAkCtO,MAAM,CAAC,IAAI,CAAC3V,KAAK,CAAC+N,KAAK,GAE3E,IAAI,CAACqX,gBAAgB,GACjBzH,GACA,IAAI,CAAC0H,uBAAuB,CAAC1H,GAC7B,IAAI,CAAC2H,UAAU,CAAG3H,GAGlB,IAAI,CAAC4H,gBAAgB,EAE7B,EASApB,EAAmB1rB,SAAS,CAAC+sB,IAAI,CAAG,SAAUC,CAAS,EACnD,IAAIC,EAAY,IAAI,CAACnB,OAAO,EAAI,IAAI,CAACA,OAAO,CAAC,IAAI,CAACF,eAAe,CAAC,CAC9DqB,GAAaA,EAAU1Z,SAAS,EAChC0Z,EAAU1Z,SAAS,CAACyZ,GAGpB,IAAI,CAACzlB,KAAK,CAACyP,YAAY,EACvB,IAAI,CAACzP,KAAK,CAACyP,YAAY,CAACG,iBAAiB,GAE7C,IAAI,CAACyU,eAAe,EAAIoB,EACxB,IAAIE,EAAY,IAAI,CAACpB,OAAO,EAAI,IAAI,CAACA,OAAO,CAAC,IAAI,CAACF,eAAe,CAAC,CAClE,GAAIsB,EAAW,CACX,GAAIA,EAAU5Z,QAAQ,EAAI,CAAC4Z,EAAU5Z,QAAQ,GACzC,OAAO,IAAI,CAACyZ,IAAI,CAACC,GAErB,GAAIE,EAAUrb,IAAI,CAEd,OADAqb,EAAUrb,IAAI,CAACmb,GACR,CAAA,CAEf,CAWA,OATA,IAAI,CAACpB,eAAe,CAAG,EAEvB,IAAI,CAACuB,OAAO,CAAG,CAAA,EACXH,EAAY,EACZ,IAAI,CAACH,UAAU,EAAI,IAAI,CAACA,UAAU,CAAClW,KAAK,GAGxC,IAAI,CAACD,iBAAiB,CAACC,KAAK,GAEzB,CAAA,CACX,EAMA+U,EAAmB1rB,SAAS,CAACksB,OAAO,CAAG,SAAUrrB,CAAC,EAC9C,IAAI0G,EAAQ,IAAI,CAACA,KAAK,CAClB6lB,EAAuBvsB,EAAEmB,aAAa,EAClCuF,EAAM2O,SAAS,CAACmX,QAAQ,CAACxsB,EAAEmB,aAAa,EAC5C+nB,EAAcxiB,EAAMgD,OAAO,CAACmC,aAAa,CACzC6f,EAAkBxC,GAAeA,EAAYtT,kBAAkB,CAGnE,GAAIW,AAFUmV,GAAmBA,EAAgBnV,OAAO,EAGpD,CAAC,IAAI,CAAC+V,OAAO,EACb,CAAC,IAAI,CAACG,kBAAkB,EACxB,CAAC,IAAI,CAACjB,eAAe,EACrB,CAACe,EAAqB,CACtB,IAAIrjB,EAAK,IAAI,CAACwjB,qBAAqB,EACxB,QAAPxjB,IACA,IAAI,CAAC6hB,eAAe,CAAG7hB,EACvB,IAAI,CAAC+hB,OAAO,CAAC/hB,EAAG,CAAC8H,IAAI,CAAC,GAE9B,CACA,IAAI,CAAC2b,aAAa,CAAG,CAAA,EACrB,IAAI,CAACL,OAAO,CAAG,CAAA,CACnB,EAOAzB,EAAmB1rB,SAAS,CAACosB,SAAS,CAAG,SAAUvrB,CAAC,EAEhD,GADA,OAAO,IAAI,CAACwrB,eAAe,CACvB,CAAC,IAAI,CAACmB,aAAa,EACnB3sB,EAAEmB,aAAa,GAAKypB,GAAyC,CAC7D,IAAIlkB,EAAQ,IAAI,CAACA,KAAK,CACtB,GAAI,CAAC1G,EAAE4sB,MAAM,EACT,CAAClmB,EAAM2O,SAAS,CAACmX,QAAQ,CAACxsB,EAAE4sB,MAAM,EAAG,CACrC,IAAIC,EAAS,IAAI,CAAC5B,OAAO,EACjB,IAAI,CAACA,OAAO,CAAC,IAAI,CAACF,eAAe,EAAI,EAAE,CAC3C8B,GAAUA,EAAOna,SAAS,EAC1Bma,EAAOna,SAAS,GAEpB,IAAI,CAACqY,eAAe,CAAG,CAC3B,CACIrkB,EAAMyP,YAAY,GAClBzP,EAAMyP,YAAY,CAACG,iBAAiB,GACpC,OAAO5P,EAAMyP,YAAY,EAE7B,IAAI,CAACwW,aAAa,CAAG,CAAA,CACzB,CACJ,EAMA9B,EAAmB1rB,SAAS,CAACisB,SAAS,CAAG,SAAU0B,CAAE,EACjD,IAII9pB,EAJAhD,EAAI8sB,GAAMvC,GAAuB/Z,KAAK,CACtCuc,EAAgB,IAAI,CAAC9B,OAAO,EACxB,IAAI,CAACA,OAAO,CAAC1oB,MAAM,EACnB,IAAI,CAAC0oB,OAAO,CAAC,IAAI,CAACF,eAAe,CAAC,CAEtC6B,EAAS5sB,EAAE4sB,MAAM,CACrB,GAAIA,CAAAA,CAAAA,GACAA,AAAoB,UAApBA,EAAO/T,QAAQ,EACd+T,EAAO7qB,SAAS,CAACyqB,QAAQ,CAAC,gCAA+B,IAI9D,IAAI,CAACG,aAAa,CAAG,CAAA,EAErB,IAAI,CAACL,OAAO,CAAG,CAAA,EAGXS,GAAc,CACd,IAAIpa,EAAWoa,EAAa9Z,GAAG,CAACjT,EAC5B2S,CAAAA,IAAaoa,EAAapa,QAAQ,CAACC,OAAO,CAC1C5P,EAAiB,CAAA,EAEZ2P,IAAaoa,EAAapa,QAAQ,CAACE,IAAI,CAC5C7P,EAAiB,IAAI,CAACkpB,IAAI,CAAC,IAEtBvZ,IAAaoa,EAAapa,QAAQ,CAACG,IAAI,EAC5C9P,CAAAA,EAAiB,IAAI,CAACkpB,IAAI,CAAC,EAAC,EAE5BlpB,IACAhD,EAAEgD,cAAc,GAChBhD,EAAEilB,eAAe,GAEzB,CACJ,EAKA4F,EAAmB1rB,SAAS,CAACwsB,uBAAuB,CAAG,WACnD,IAKI9V,EALAqT,EAAc,IAAI,CAACxiB,KAAK,CAACgD,OAAO,CAACmC,aAAa,CAC9C6f,EAAkBxC,GAAeA,EAAYtT,kBAAkB,CAC/DoX,EAAqB,CAAEtB,CAAAA,GAAmBA,AAA4B,CAAA,IAA5BA,EAAgBnV,OAAO,AAAS,EAC1E7P,EAAQ,IAAI,CAACA,KAAK,CAClB2O,EAAY3O,EAAM2O,SAAS,CAE3B3O,EAAMyH,QAAQ,CAACG,YAAY,CAAC,aAC5B+G,EAAU8P,eAAe,CAAC,YAC1BtP,EAAoBnP,EAAMyH,QAAQ,EAGlC0H,EAAoBR,EAExB,IAAI,CAACQ,iBAAiB,CAAGA,EACzB,IAAIoX,EAAcpX,EAAkBmH,YAAY,CAAC,WAC7CgQ,CAAAA,GAAsB,CAACC,EACvBpX,EAAkB3H,YAAY,CAAC,WAAY,KAErC8e,GACNtmB,EAAM2O,SAAS,CAAC8P,eAAe,CAAC,WAExC,EAKA0F,EAAmB1rB,SAAS,CAAC8sB,gBAAgB,CAAG,WAC5C,IAAIvlB,EAAQ,IAAI,CAACA,KAAK,CAClBslB,EAAa,IAAI,CAACA,UAAU,CAAG1B,GAAuBxa,aAAa,CAAC,OACxEpJ,EAAMyH,QAAQ,CAAC7I,WAAW,CAAC0mB,GAC3B,IAAI,CAACD,uBAAuB,CAACC,EACjC,EAMAnB,EAAmB1rB,SAAS,CAAC4sB,uBAAuB,CAAG,SAAUlqB,CAAE,EAC/D,IAAIqrB,EAAgB,IAAI,CAACrX,iBAAiB,CAACmH,YAAY,CAAC,aAAe,EACvEnb,EAAGqM,YAAY,CAAC,QAAS,0BACzBrM,EAAGqM,YAAY,CAAC,WAAYgf,GAC5BrrB,EAAGqM,YAAY,CAAC,cAAe,CAAA,GAE/B,IAAI,CAACif,uBAAuB,CAACtrB,EACjC,EAKAgpB,EAAmB1rB,SAAS,CAAC2sB,gBAAgB,CAAG,WAC5C,IAAIzQ,EAAQ,IAAI,CAGhB,GAAI,IAAI,CAAC2Q,UAAU,CAAE,CACjB,IAAInqB,EAAK,IAAI,CAACwP,aAAa,CAAChB,aAAa,CAAClG,IAAI,CAAC,SAAUtI,CAAE,EACnD,OAAOA,EAAG4B,OAAO,GAAK4X,EAAM2Q,UAAU,AAC9C,GACInqB,GAAM4oB,GAA2B5oB,EAAGyO,OAAO,GAC3C,IAAI,CAACe,aAAa,CAACd,WAAW,CAAC1O,EAAGyO,OAAO,EAEzC,IAAI,CAAC0b,UAAU,CAAC9mB,UAAU,EAC1B,IAAI,CAAC8mB,UAAU,CAAC9mB,UAAU,CAACL,WAAW,CAAC,IAAI,CAACmnB,UAAU,EAE1D,OAAO,IAAI,CAACA,UAAU,AAC1B,CACJ,EAKAnB,EAAmB1rB,SAAS,CAACguB,uBAAuB,CAAG,SAAU1pB,CAAO,EACpE,IAAIiD,EAAQ,IAAI,CAACA,KAAK,CAClBkP,EAAqB,IAAI,CAC7B,IAAI,CAACvE,aAAa,CAAClB,QAAQ,CAAC1M,EAAS,QAAS,SAAUqpB,CAAE,EACtD,IAAI9sB,EAAI8sB,GAAMvC,GAAuB/Z,KAAK,CAGtC4c,EAAoB,CAAEb,CAAAA,AAFCvsB,EAAEmB,aAAa,EAClCuF,EAAM2O,SAAS,CAACmX,QAAQ,CAACxsB,EAAEmB,aAAa,GACCyU,EAAmB0W,OAAO,AAAD,EAI1E,GAHI5lB,EAAMyP,YAAY,EAClB,OAAOzP,EAAMyP,YAAY,CAEzBiX,EAQA,CAAA,GANAxX,EAAmB6W,kBAAkB,CAAG,CAAA,EACxC7W,EAAmBC,iBAAiB,CAACC,KAAK,GAC1C,OAAOF,EAAmB6W,kBAAkB,CAC5CzsB,EAAEgD,cAAc,GAGZ4S,EAAmBqV,OAAO,EAC1BrV,EAAmBqV,OAAO,CAAC1oB,MAAM,CAAE,CACnCqT,EAAmBmV,eAAe,CAC9BnV,EAAmBqV,OAAO,CAAC1oB,MAAM,CAAG,EACxC,IAAI6pB,EAAYxW,EAAmBqV,OAAO,CAACrV,EAAmBmV,eAAe,CAAC,AAE1EqB,CAAAA,GACAA,EAAU3Z,QAAQ,EAAI,CAAC2Z,EAAU3Z,QAAQ,GAGzCmD,EAAmBsW,IAAI,CAAC,IAEnBE,GAELA,EAAUpb,IAAI,CAAC,GAEvB,CAAA,MAIA4E,EAAmB0W,OAAO,CAAG,CAAA,CAErC,EACJ,EAMAzB,EAAmB1rB,SAAS,CAACutB,qBAAqB,CAAG,WAEjD,IAAK,IADD/jB,EAAM,IAAI,CAACsiB,OAAO,CAAC1oB,MAAM,CACpBD,EAAI,EAAGA,EAAIqG,EAAK,EAAErG,EAAG,CAC1B,IAAI+qB,EAAM,IAAI,CAACpC,OAAO,CAAC3oB,EAAE,CACzB,GAAI,CAAC+qB,EAAI5a,QAAQ,EAAI4a,EAAI5a,QAAQ,GAC7B,OAAOnQ,CAEf,CACA,OAAO,IACX,EAKAuoB,EAAmB1rB,SAAS,CAAC2R,OAAO,CAAG,WACnC,IAAI,CAACgb,gBAAgB,GACrB,IAAI,CAACza,aAAa,CAACX,iBAAiB,GACpC,IAAI,CAAChK,KAAK,CAAC2O,SAAS,CAAC8P,eAAe,CAAC,WACzC,EACO0F,CACX,KAMA,AAAC,SAAUA,CAAkB,EA6BzB,SAASyC,IACL,IAAI5mB,EAAQ,IAAI,CAChBgkB,GAA6B,IAAI,CAAE,sBAAuB,CAAC,EAAG,WACtDhkB,EAAM6mB,OAAO,EACb7mB,EAAM6mB,OAAO,CAACC,IAAI,CAAC,GAEvB9mB,EAAMsiB,cAAc,EACxB,EACJ,CAMA,SAASyE,EAAkBztB,CAAC,EAEd,KADIA,CAAAA,EAAEmT,KAAK,EAAInT,EAAEkT,OAAO,AAAD,GAEV,AAACzT,IAA+EiuB,MAAM,EACzGjuB,IAA8EiuB,MAAM,CAACjmB,OAAO,CAAC,SAAUf,CAAK,EACpGA,GAASA,EAAMinB,mBAAmB,EAClCjnB,EAAMinB,mBAAmB,EAEjC,EAER,CA7BA9C,EAAmBjhB,OAAO,CAT1B,SAAiBC,CAAU,EACvBwgB,GAAyBzgB,OAAO,CAACC,GACjC,IAAIC,EAAaD,EAAW1K,SAAS,CAKrC,OAJK2K,EAAW6jB,mBAAmB,GAC/B7jB,EAAW6jB,mBAAmB,CAAGL,EACjC9C,GAA4BF,GAAwB,UAAWmD,IAE5D5jB,CACX,CA+BJ,EAAGghB,IAAuBA,CAAAA,GAAqB,CAAC,CAAA,GAMnB,IAAI+C,GAAoC/C,GAGjEgD,GAAmG5vB,EAAoB,KACvH6vB,GAAuH7vB,EAAoBI,CAAC,CAACwvB,IAc7IE,IACItwB,EAAgB,SAAUe,CAAC,CAC3B+U,CAAC,EAOD,MAAO9V,AANHA,CAAAA,EAAgBoB,OAAO2U,cAAc,EAChC,CAAA,CAAEC,UAAW,EAAE,AAAC,CAAA,YAAapF,OAAS,SAAU7P,CAAC,CAC1D+U,CAAC,EAAI/U,EAAEiV,SAAS,CAAGF,CAAG,GACd,SAAU/U,CAAC,CACnB+U,CAAC,EAAI,IAAK,IAAI9I,KAAK8I,EAAO1U,OAAOM,SAAS,CAACC,cAAc,CAACC,IAAI,CAACkU,EAC/D9I,IAAIjM,CAAAA,CAAC,CAACiM,EAAE,CAAG8I,CAAC,CAAC9I,EAAE,AAAD,CAAG,CAAA,EACIjM,EAAG+U,EAC5B,EACO,SAAU/U,CAAC,CAAE+U,CAAC,EACjB,GAAI,AAAa,YAAb,OAAOA,GAAoBA,AAAM,OAANA,EAC3B,MAAM,AAAIoK,UAAU,uBAAyBC,OAAOrK,GAAK,iCAE7D,SAASG,IAAO,IAAI,CAACC,WAAW,CAAGnV,CAAG,CADtCf,EAAce,EAAG+U,GAEjB/U,EAAEW,SAAS,CAAGoU,AAAM,OAANA,EAAa1U,OAAO+U,MAAM,CAACL,GAAMG,CAAAA,EAAGvU,SAAS,CAAGoU,EAAEpU,SAAS,CAAE,IAAIuU,CAAG,CACtF,GAGAsa,GAAa,AAACvuB,IAA+EuuB,UAAU,CAEvGC,GAAsB,AAACxuB,IAA+EC,GAAG,CAGzGwuB,GAA2B,AAACzuB,IAA+E0Q,QAAQ,CAAEge,GAA4B,AAAC1uB,IAA+E2K,SAAS,CAAEgkB,GAAW,AAAC3uB,IAA+E2uB,QAAQ,CAAEC,GAAuB,AAAC5uB,IAA+E6G,IAAI,CAAEgoB,GAAc,AAAC7uB,IAA+E6uB,WAAW,CAIviBC,GAAgCxjB,EAAqBK,aAAa,CAElEojB,GAAgC7sB,EAAoB4D,uBAAuB,CAAEkpB,GAA2B9sB,EAAoBC,QAAQ,CAAE8sB,GAA8B/sB,EAAoBmD,WAAW,CAmBvM,SAAS6pB,GAAmBjoB,CAAK,EAC7B,IAAIkoB,EAAQloB,EAAMmoB,MAAM,EAAInoB,EAAMmoB,MAAM,CAACC,QAAQ,CAC7CC,EAAqBroB,EAAMgD,OAAO,CAACmlB,MAAM,CAAChjB,aAAa,EAAI,CAAC,EAC5DmjB,EAAuBtoB,EAAMuoB,SAAS,EAAIvoB,EAAMuoB,SAAS,CAACC,IAAI,CAAC,SAAUC,CAAC,EAAI,MAAO,CAACA,EAAEC,WAAW,EAAI,CAACD,EAAEC,WAAW,CAAC7sB,MAAM,AAAE,GAClI,MAAO,CAAC,CAAEqsB,CAAAA,GAASA,EAAMrsB,MAAM,EAC3B,CAACysB,GACDD,AAA8B,CAAA,IAA9BA,EAAkBxY,OAAO,AAAS,CAC1C,CAIA,SAAS8Y,GAAwBC,CAAW,CAAE9sB,CAAI,EAC9C,IAAI+sB,EAAa/sB,EAAK+sB,UAAU,EAAI,CAAC,EACrC/sB,EAAKgtB,QAAQ,CAACF,EAAc,QAAU,GAAI,CAAA,GAC1C,IAAK,IAAIzV,EAAK,EAAGlO,EAAK,CAAC,QAAS,QAAS,SAAS,CAAEkO,EAAKlO,EAAGpJ,MAAM,CAAEsX,IAAM,CAEtE,IAAI3C,EAAaqY,CAAU,CADjB5jB,CAAE,CAACkO,EAAG,CACgB,CAC5BpW,EAAUyT,GAAcA,EAAWzT,OAAO,EAAIyT,EAC9CzT,GACA0qB,GAA0B1qB,EAAS6rB,EAAc,YAAc,WAEvE,CACJ,CAaA,IAAIG,GAAiC,SAAUvb,CAAM,EAEjD,SAASub,IAML,IAAIpU,EAAQnH,AAAW,OAAXA,GAAmBA,EAAOnE,KAAK,CAAC,IAAI,CAC5CC,YAAc,IAAI,CAGtB,OAFAqL,EAAMqU,uBAAuB,CAAG1E,IAChC3P,EAAMsU,UAAU,CAAG,KACZtU,CACX,CAwUA,OApVA0S,GAAwB0B,EAAiBvb,GAsBzCub,EAAgBtwB,SAAS,CAAC6R,IAAI,CAAG,WAC7B,IAAI8N,EAAY,IAAI,CACpB,IAAI,CAAC8Q,eAAe,GAKpB,IAAI,CAACzf,QAAQ,CAAE2d,KAA4G,cAAe,WAClI,IAAI,CAACpnB,KAAK,GAAKoY,EAAUpY,KAAK,GAC9BoY,EAAU1N,aAAa,CAACye,gCAAgC,CAAC,UACzD/Q,EAAUgR,+BAA+B,GACrChR,EAAU4Q,uBAAuB,CAAG,IACpC,IAAI,CAAChpB,KAAK,CAACqpB,mBAAmB,CAACjR,EAAU4Q,uBAAuB,EAG5E,GACA,IAAI,CAACvf,QAAQ,CAAE2d,KAA4G,oBAAqB,SAAU9tB,CAAC,EACnJ,IAAI,CAAC0G,KAAK,GAAKoY,EAAUpY,KAAK,EAAI,IAAI,CAACA,KAAK,CAAC6E,QAAQ,EACrDuT,EAAUkR,0BAA0B,CAAChwB,EAAEwC,IAAI,CAEnD,GACA,IAAI,CAAC2N,QAAQ,CAAE2d,KAA4G,cAAe,WAClI,IAAI,CAACpnB,KAAK,GAAKoY,EAAUpY,KAAK,EAC9B,IAAI,CAACA,KAAK,CAAC6E,QAAQ,EACnBuT,EAAU8Q,eAAe,IACzBtB,GAAY,WAAc,OAAOxP,EAAU1N,aAAa,CACnDye,gCAAgC,CAAC,SAAW,EAAG7B,GAAWK,GAAqB,IAAI,CAAC3nB,KAAK,CAAC6E,QAAQ,CAAC0kB,eAAe,CAAE,CAAA,IAAOC,QAAQ,CAEhJ,EACJ,EAKAT,EAAgBtwB,SAAS,CAAC2wB,+BAA+B,CAAG,WACxD,IAKIP,EALA7oB,EAAQ,IAAI,CAACA,KAAK,CAClBmoB,EAASnoB,EAAMmoB,MAAM,CACrBD,EAAQC,EAAOC,QAAQ,EAAI,EAAE,CAC7BqB,EAAUtB,EAAOuB,WAAW,EAAI,EAChCC,EAAaxB,EAAOwB,UAAU,EAAI,EAEtCzB,EAAMnnB,OAAO,CAAC,SAAUjF,CAAI,EACxB,GAAIA,EAAK8tB,gBAAgB,CAAE,CACvB,IAAIC,EAAW1B,EAAO2B,KAAK,EAAI3B,EAAO2B,KAAK,CAACjuB,MAAM,CAC9CkuB,EAAUjuB,EAAK8tB,gBAAgB,CAAC7sB,OAAO,CACvC+pB,EAAO,CAAA,EAEX,GADA+B,EAAa/sB,EAAK+sB,UAAU,EAAI,CAAC,EAC7BgB,EAAU,CACV,IAAIG,EAAWnB,EAAWoB,MAAM,EAAI,EAKpCnD,EAAOhsB,AAJC+tB,CAAAA,EAAW/tB,CAAC,EAAI,CAAA,EAChB+tB,CAAAA,EAAWna,KAAK,CAChBxR,KAAKgtB,KAAK,CAACrB,EAAWna,KAAK,CAACuC,OAAO,GAAGhS,MAAM,EAC5C,CAAA,EACOkpB,EAAO2B,KAAK,CAACE,EAAS,CAAGL,GACpCK,IAAaP,EAAU,CAC/B,CACI3C,EACI9mB,EAAMgT,UAAU,CAChB+U,GAAyBgC,EAAS,6BAGlCA,EAAQ9Z,KAAK,CAACka,UAAU,CAAG,UAI/BnC,GAA4B+B,EAAS,6BACrCA,EAAQ9Z,KAAK,CAACka,UAAU,CAAG,GAEnC,CACJ,EACJ,EAIApB,EAAgBtwB,SAAS,CAAC8R,aAAa,CAAG,WACjC0d,GAAmB,IAAI,CAACjoB,KAAK,GAC9B,IAAI,CAACoqB,aAAa,EAE1B,EAIArB,EAAgBtwB,SAAS,CAAC4xB,2BAA2B,CAAG,SAAU5E,CAAS,EACvE,IAAIzlB,EAAQ,IAAI,CAACA,KAAK,CAClBmoB,EAASnoB,EAAMmoB,MAAM,CAErBmC,EAAYC,AADApC,CAAAA,EAAOuB,WAAW,EAAI,CAAA,EACVjE,EACxBqE,EAAQ3B,EAAO2B,KAAK,EAAI,EAAE,CAC9B,GAAIQ,EAAY,GAAKA,GAAaR,EAAMjuB,MAAM,CAG1C,IAAK,IAFDD,EAAI,EAECuX,EAAK,EAAGlO,EAAKkjB,EAAOC,QAAQ,CAAEjV,EAAKlO,EAAGpJ,MAAM,CAAEsX,IAE9C,CAAA,AAACrX,CAAAA,AADKmJ,CAAE,CAACkO,EAAG,CACN0V,UAAU,EAAI,CAAC,CAAA,EAAGoB,MAAM,EAAI,CAAA,EAAK,IAAMK,GACxCtqB,EAAMqpB,mBAAmB,CAACztB,IAE5B,CAAA,IAAI,CAACotB,uBAAuB,CAAGptB,CAAAA,EAGvC,EAAEA,CAGd,EAIAmtB,EAAgBtwB,SAAS,CAAC6wB,0BAA0B,CAAG,SAAUxtB,CAAI,EAC7DA,EAAK8tB,gBAAgB,EACrB9tB,EAAK8tB,gBAAgB,CAACY,eAAe,EAE7C,EAMAzB,EAAgBtwB,SAAS,CAACywB,eAAe,CAAG,WACxC,IAAIuB,EAAiBlD,GAAoBmD,aAAa,CAClDzB,EAAa,IAAI,CAACA,UAAU,CAC5B0B,EAAqBF,GAAkBxB,GACnCA,EAAWnD,QAAQ,CAAC2E,UAE5B,AADA,IAAI,CAACL,aAAa,KACdnC,GAAmB,IAAI,CAACjoB,KAAK,IAC7B,IAAI,CAAC4qB,mBAAmB,GACxB,IAAI,CAACC,gBAAgB,GACrB,IAAI,CAACzB,+BAA+B,GACpC,IAAI,CAAC0B,iBAAiB,GAClBH,GACA,IAAI,CAAC3qB,KAAK,CAACqpB,mBAAmB,CAAC,IAAI,CAACL,uBAAuB,EAExD,CAAA,EAGf,EAIAD,EAAgBtwB,SAAS,CAAC2xB,aAAa,CAAG,WACtC,IAAI,CAAC1f,aAAa,CAACqgB,WAAW,CAAC,SACnC,EAIAhC,EAAgBtwB,SAAS,CAACqyB,iBAAiB,CAAG,WAC1C,IAAI9qB,EAAQ,IAAI,CAACA,KAAK,CAClBgrB,EAAclD,GAA8B,AAAC9nB,CAAAA,EAAMmoB,MAAM,EACrDnoB,EAAMmoB,MAAM,CAACnlB,OAAO,CAAC2B,KAAK,EAC1B3E,EAAMmoB,MAAM,CAACnlB,OAAO,CAAC2B,KAAK,CAACC,IAAI,EAC/B,EAAC,EAAGlI,OAAO,CAAC,aAAc,KAAMsD,EAAM6E,QAAQ,CAACC,SAAS,EAC5DmmB,EAAcjrB,EAAM6C,UAAU,CAAC,mCAAsCmoB,CAAAA,EAAc,GAAK,SAAQ,EAAI,CAChGhrB,MAAOA,EACPgrB,YAAaA,EACb/c,WAAY4Z,GAA8B7nB,EAC9C,GACJ,IAAI,CAAC0K,aAAa,CAACwgB,gBAAgB,CAAC,SAAU,CAC1C,aAAcD,CAClB,EACJ,EAIAlC,EAAgBtwB,SAAS,CAACmyB,mBAAmB,CAAG,WAE5C,IAAIO,EAAY3I,AAAkC,QAAlCA,AADE,IAAI,CAACxiB,KAAK,CAACgD,OAAO,CAACmC,aAAa,CACtB0J,iBAAiB,CACrC,SAAW,IACnB,CAAA,IAAI,CAACoa,UAAU,CAAG,IAAI,CAACve,aAAa,CAACiX,QAAQ,CAAC,SAAU,KAAM,CAG1D,aAAc,gBACdK,KAAMmJ,CACV,EACJ,EAIApC,EAAgBtwB,SAAS,CAACoyB,gBAAgB,CAAG,WACzC,IAEIhC,EAFAzQ,EAAY,IAAI,CAGpB8P,AAFY,CAAA,AAAC,CAAA,IAAI,CAACloB,KAAK,CAACmoB,MAAM,EAAI,CAAC,CAAA,EAAGC,QAAQ,EAAI,EAAE,AAAD,EAE7CrnB,OAAO,CAAC,SAAUjF,CAAI,EAEpB+sB,AADJA,CAAAA,EAAa/sB,EAAK+sB,UAAU,EAAI,CAAC,CAAA,EAClBna,KAAK,EAAIma,EAAWna,KAAK,CAAC3R,OAAO,EAC5Cqb,EAAUgT,eAAe,CAACtvB,EAElC,EACJ,EAKAitB,EAAgBtwB,SAAS,CAAC2yB,eAAe,CAAG,SAAUtvB,CAAI,EACtD,IAAI+sB,EAAa/sB,EAAK+sB,UAAU,EAAI,CAAC,EACrC,GAAI,AAACA,EAAWna,KAAK,EAAKma,EAAWzkB,KAAK,EAG1C,IAAIinB,EAAY,IAAI,CAACrrB,KAAK,CAAC6C,UAAU,CAAC,kCAAmC,CACjE7C,MAAO,IAAI,CAACA,KAAK,CACjBsrB,SAAUxD,GAA8BhsB,EAAKuL,IAAI,CACrD,IAAI,CAACrH,KAAK,CAAC6E,QAAQ,CAACC,SAAS,EACzBhJ,KAAMA,CACV,GACAiV,EAAU,CACNiN,SAAU,GACV,eAAgBliB,EAAK4Z,OAAO,CAC5B,aAAc2V,CAClB,EAEAE,EAA0B1C,EAAWzkB,KAAK,CAACiR,GAAG,CAC1CwT,EAAWna,KAAK,CAChBma,EAAWzkB,KAAK,AACxBtI,CAAAA,EAAK8tB,gBAAgB,CAAG,IAAI,CAAClf,aAAa,CAAC8W,eAAe,CAAC,SAAU,CACjEC,MAAOoH,EAAWna,KAAK,CACvB8c,OAAQD,EAAwBxuB,OAAO,AAC3C,EAAG,SAAUgU,GACjB,EAKAgY,EAAgBtwB,SAAS,CAAC4R,qBAAqB,CAAG,WAC9C,IAAItH,EAAO,IAAI,CAAC8H,QAAQ,CACpBuN,EAAY,IAAI,CAChBpY,EAAQ,IAAI,CAACA,KAAK,CACtB,OAAO,IA/mF6D6L,GA+mFjB7L,EAAO,CACtD8L,WAAY,CACR,CACI,CAAC/I,EAAK+H,IAAI,CAAE/H,EAAKgI,KAAK,CAAEhI,EAAKiI,EAAE,CAAEjI,EAAKkI,IAAI,CAAC,CAC3C,SAAUuB,CAAO,EACb,OAAO4L,EAAUqT,aAAa,CAAC,IAAI,CAAEjf,EACzC,EACH,CACD,CACI,CAACzJ,EAAKmI,KAAK,CAAEnI,EAAKoI,KAAK,CAAC,CACxB,WACI,OAAOiN,EAAU+J,UAAU,CAAC,IAAI,CACpC,EACH,CACD,CACI,CAACpf,EAAKwI,QAAQ,CAAExI,EAAKuI,MAAM,CAAC,CAC5B,SAAUkB,CAAO,EACb,IAAIiZ,EAAYjZ,IAAYzJ,EAAKwI,QAAQ,CAAG,EAAI,GAEhD,OADA6M,EAAUiS,2BAA2B,CAAC5E,GAC/B,IAAI,CAACxZ,QAAQ,CAACC,OAAO,AAChC,EACH,CACJ,CACDH,SAAU,WACN,OAAOqM,EAAUsT,0BAA0B,EAC/C,EACAphB,KAAM,WACFtK,EAAMqpB,mBAAmB,CAAC,GAC1BjR,EAAU4Q,uBAAuB,CAAG,CACxC,EACAhd,UAAW,WACPoM,EAAU4Q,uBAAuB,CAAG,GACpChpB,EAAMmoB,MAAM,CAACC,QAAQ,CAACrnB,OAAO,CAAC,SAAUjF,CAAI,EAAI,OAAO6sB,GAAwB,CAAA,EAAO7sB,EAAO,EACjG,CACJ,EACJ,EAKAitB,EAAgBtwB,SAAS,CAACgzB,aAAa,CAAG,SAAUlJ,CAAyB,CAAEtqB,CAAG,EAC9E,IACIiN,EAAKD,AADA,IAAI,CACD4F,QAAQ,CAChBC,EAAO5F,EAAG4F,IAAI,CACdE,EAAK9F,EAAG8F,EAAE,CACVge,EAA0B/jB,AAJrB,IAAI,CAIoB+jB,uBAAuB,CACpDhpB,EAAQiF,AALH,IAAI,CAKEjF,KAAK,CAChB2rB,EAAW3rB,EAAMmoB,MAAM,CAACC,QAAQ,CAACvsB,MAAM,CACvC8mB,EAAa3iB,EAAMgD,OAAO,CAACmC,aAAa,CACnC+J,kBAAkB,CAACyT,UAAU,CAClC8C,EAAY,AAACxtB,IAAQ6S,GAAQ7S,IAAQ+S,EAAM,GAAK,EAUpD,OATUhL,EAAMqpB,mBAAmB,CAACL,EAA0BvD,GAE1D,IAAI,CAACuD,uBAAuB,EAAIvD,EAE3B9C,GAAcgJ,EAAW,IAC9B,IAAI,CAAC3C,uBAAuB,CAAGvD,EAAY,EACvC,EAAIkG,EAAW,EACnB3rB,EAAMqpB,mBAAmB,CAAC,IAAI,CAACL,uBAAuB,GAEnDzG,EAA0BtW,QAAQ,CAACC,OAAO,AACrD,EAMA6c,EAAgBtwB,SAAS,CAAC0pB,UAAU,CAAG,SAAUI,CAAyB,EACtE,IAAIsG,EAAa,IAAI,CAAC7oB,KAAK,CAACmoB,MAAM,CAACC,QAAQ,CAAC,IAAI,CAACY,uBAAuB,CAAC,CAIzE,OAHIH,GAAcA,EAAWe,gBAAgB,EACzCf,EAAWe,gBAAgB,CAACnI,KAAK,GAE9Bc,EAA0BtW,QAAQ,CAACC,OAAO,AACrD,EAIA6c,EAAgBtwB,SAAS,CAACizB,0BAA0B,CAAG,WACnD,GAAI,CAACzD,GAAmB,IAAI,CAACjoB,KAAK,EAC9B,MAAO,CAAA,EAEX,IAAIA,EAAQ,IAAI,CAACA,KAAK,CAElBqoB,EAAqBuD,AADL5rB,CAAAA,EAAMgD,OAAO,CAACmlB,MAAM,EAAI,CAAC,CAAA,EACNhjB,aAAa,EAAI,CAAC,EACzD,MAAO,CAAC,CAAEnF,CAAAA,EAAMmoB,MAAM,CAAC0D,OAAO,EAC1BxD,EAAkBnZ,kBAAkB,EACpCmZ,EAAkBnZ,kBAAkB,CAACW,OAAO,AAAD,CACnD,EAKAkZ,EAAgBtwB,SAAS,CAAC2R,OAAO,CAAG,WAChC,IAAI,CAACggB,aAAa,EACtB,EACOrB,CACX,EAlzFyE5e,KAwzFzE,AAAC,SAAU4e,CAAe,EAetB,SAAS+C,EAAyBtpB,CAAE,EAChC,IAAI0lB,EAAQ,IAAI,CAACC,MAAM,CAACC,QAAQ,CAC5B2D,EAAQ,IAAI,CAAC5mB,aAAa,EACtB,IAAI,CAACA,aAAa,CAACif,UAAU,CAAC+D,MAAM,CAACa,uBAAuB,CAChEgD,EAAkB9D,CAAK,CAAC1lB,EAAG,CAC3BqmB,EAAa,AAACmD,CAAAA,MAAAA,EAAyD,KAAK,EAAIA,EAAgBnD,UAAU,AAAD,GAAM,CAAC,EACpH,GAAImD,EAAiB,CACbtE,GAASqE,IAAU7D,CAAK,CAAC6D,EAAM,EAC/BpD,GAAwB,CAAA,EAAOT,CAAK,CAAC6D,EAAM,EA/ZnD/B,EAAW,AAAC7B,CAAAA,CADQA,EAkaG,IAAI,CAACA,MAAM,EAjafC,QAAQ,CAiaS5lB,EAjaD,CAACqmB,UAAU,EAAI,CAAC,CAAA,EAAGoB,MAAM,CAC5DR,EAAUtB,EAAOuB,WAAW,CACR,KAAA,IAAbM,GAA4BA,EAAW,IAAMP,GACpDtB,EAAO8D,MAAM,CAAC,EAAIjC,EAAWP,GA+ZzB,IAnagBtB,EACpB6B,EACAP,EAiaQyC,EAAiBrD,EAAWna,KAAK,CACjCyd,EAAWH,EAAgBpC,gBAAgB,EACvCoC,EAAgBpC,gBAAgB,CAAC7I,YAAY,CAKrD,OAJImL,GAAkBA,EAAenvB,OAAO,EAAIovB,GAC5C,IAAI,CAACpY,iBAAiB,CAACmY,EAAgBC,GAE3CxD,GAAwB,CAAA,EAAMqD,GACvB,CAAA,CACX,CACA,MAAO,CAAA,CACX,CAgBA,SAASI,EAA0B9yB,CAAC,EAChC,IACIkpB,EAAcxiB,AADN,IAAI,CAACA,KAAK,CACEgD,OAAO,CAACmC,aAAa,CACzC0jB,EAAavvB,EAAEwC,IAAI,AACnB0mB,CAAAA,EAAY3S,OAAO,EAAIgZ,GAAcA,EAAWe,gBAAgB,EAChEf,EAAWe,gBAAgB,CAAC7I,YAAY,CAACvZ,YAAY,CAAC,eAAgBlO,EAAEoc,OAAO,CAAG,OAAS,QAEnG,CAZAqT,EAAgB7lB,OAAO,CAPvB,SAAiBC,CAAU,CAAEkpB,CAAW,EACpC,IAAIjpB,EAAaD,EAAW1K,SAAS,AAChC2K,CAAAA,EAAWimB,mBAAmB,GAC/BjmB,EAAWimB,mBAAmB,CAAGyC,EACjCtE,GAAyB6E,EAAa,oBAAqBD,GAEnE,CAcJ,EAAGrD,IAAoBA,CAAAA,GAAkB,CAAC,CAAA,GAMb,IAAIuD,GAA8BvD,GAG3DwD,GAA2Fh1B,EAAoB,KAC/Gi1B,GAA+Gj1B,EAAoBI,CAAC,CAAC40B,IAarIE,GAAgB,AAAC1zB,IAA+E0zB,aAAa,CAE7GC,GAAqC,AAAC3zB,IAA+E0Q,QAAQ,CAAEkjB,GAAQ,AAAC5zB,IAA+E4zB,KAAK,CAAEC,GAAiC,AAAC7zB,IAA+E6G,IAAI,CAMnVitB,GAAkB,EAAE,CAgCxB,SAASC,KACD,IAAI,CAACC,SAAS,EAEd,IAAI,CAACA,SAAS,CAACC,aAAa,CAAC,KAAM,CAAA,EAE3C,CAQA,SAASC,KAEL,IADIhoB,EAGA2mB,EACA3jB,EACAC,EAJAigB,EAAS,IAAI,CAACA,MAAM,CACpB4E,EAAY,IAAI,CAACA,SAAS,CAI9B,GAAIA,EAAW,CACXnB,EAAgBzD,GAAUA,EAAOnlB,OAAO,CACxCiF,EAAQ8kB,EAAU9kB,KAAK,CACvBC,EAAQ6kB,EAAU7kB,KAAK,CACvB,IAAIglB,EAAkBH,EAAUG,eAAe,CAC3CC,EAAmBJ,EAAUI,gBAAgB,AAE7C,CAAA,IAAI,CAACC,QAAQ,EACbL,EAAUjiB,IAAI,CAAGiiB,EAAUM,QAAQ,CAC/B,IAAI,CAACC,UAAU,CAAGJ,EACdH,EAAU9tB,MAAM,CACpB,IAAI,CAACsuB,OAAO,CAAC,EAAE,CAAGL,EACtBH,EAAUS,GAAG,CAAG,IAAI,CAACC,OAAO,CAAGN,IAG/BJ,EAAUjiB,IAAI,CAAG8hB,GAA+B3kB,EAAM6C,IAAI,CAAE,IAAI,CAAC4iB,QAAQ,CAAGP,GAC5EJ,EAAUS,GAAG,CAAGT,EAAUY,gBAAgB,CAACH,GAAG,EAC1C,IAAI,CAACI,WAAW,CACZb,EAAU9tB,MAAM,CAChBiuB,EACC,CAAA,AAAC,CAAA,AAA0B,OAAzBjoB,CAAAA,EAAK,IAAI,CAACkD,SAAS,AAAD,GAAelD,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGjC,OAAO,CAAC+M,MAAM,AAAD,GAAM,CAAA,EACnF,IAAI,CAACwd,OAAO,CAAC,EAAE,CACd,CAAA,IAAI,CAACM,aAAa,EAAI,IAAI,CAACC,iBAAiB,CACzC,IAAI,CAACD,aAAa,CAACE,SAAS,GAC5B,CAAA,EACH,CAAA,AAACnC,GACEA,AAAgC,WAAhCA,EAAcoC,aAAa,EAC3BpC,AAAyB,cAAzBA,EAAcqC,MAAM,EACpBrC,EAAc/b,OAAO,EACrB,CAAC+b,EAAcsC,QAAQ,CACvB/F,EAAOgG,YAAY,CACfvB,GAA+BhB,EAAc7b,MAAM,CAAE,IACzD,CAAA,EACH,CAAA,IAAI,CAACqe,WAAW,CAAG,IAAI,CAACA,WAAW,CAAC,EAAE,CAAG,CAAA,GAElDnmB,GAASC,IACL,IAAI,CAACklB,QAAQ,CACbnlB,EAAMjF,OAAO,CAAC8H,IAAI,CAAG5C,EAAMlF,OAAO,CAAC8H,IAAI,CAAGiiB,EAAUjiB,IAAI,CAGxD7C,EAAMjF,OAAO,CAACwqB,GAAG,CAAGtlB,EAAMlF,OAAO,CAACwqB,GAAG,CAAGT,EAAUS,GAAG,CAEzDvlB,EAAMomB,WAAW,GACjBnmB,EAAMmmB,WAAW,GAEzB,CACJ,CAKA,SAASC,GAAmBxkB,CAAK,EACzB,CAAC,IAAI,CAACijB,SAAS,EAAI,CAAC,IAAI,CAACwB,QAAQ,EAChC,CAAA,IAAI,CAACvrB,OAAO,CAAC+pB,SAAS,CAACld,OAAO,EAC3B,IAAI,CAAC7M,OAAO,CAACmF,SAAS,CAAC0H,OAAO,AAAD,IACjC,IAAI,CAAC0e,QAAQ,CAAG,IAAI,CAACxB,SAAS,CAAG,IAAI71B,EAAqB,IAAI,EAC1D01B,GAA+B9iB,EAAM0kB,MAAM,CAAE,CAAA,IAC7C,IAAI,CAACA,MAAM,CAAC1kB,EAAM2kB,SAAS,EAGvC,CAKA,SAASC,KACL,IAAI1rB,EAAU,IAAI,CAACA,OAAO,CACtBA,CAAAA,EAAQ+pB,SAAS,CAACld,OAAO,EACzB7M,EAAQmF,SAAS,CAAC0H,OAAO,AAAD,GACxB,CAAA,IAAI,CAAC0e,QAAQ,CAAG,IAAI,CAACxB,SAAS,CAAG,IAAI71B,EAAqB,IAAI,CAAA,CAEtE,CAOA,SAASy3B,KACL,IAAItU,EAAe,IAAI,CAACrX,OAAO,CAC3B+pB,EAAY1S,EAAa0S,SAAS,CAClCc,EAAgBxT,EAAawT,aAAa,CAC9C,GAAI,AAAC,CAAA,AAACd,GAAaA,EAAUld,OAAO,EAC/Bge,GAAiBA,EAAche,OAAO,GACtC,CAAA,AAAC,CAAC4c,IACC,AAAsB,MAAtB,IAAI,CAACmC,OAAO,CAACp1B,IAAI,EAChBizB,IAAiB,AAA2B,MAA3B,IAAI,CAACmC,OAAO,CAACC,SAAS,AAAQ,EACpD,MAAO,CAAA,CAEf,CAIA,SAASC,GAAgB9uB,CAAK,EAC1B,IAAI+sB,EAAY/sB,EAAM+sB,SAAS,CAE/B,GAAIA,GAAa/sB,EAAMiI,KAAK,CAAC,EAAE,CAAE,CAC7B,IAAIlC,EAAW/F,EAAMiI,KAAK,CAAC,EAAE,CAAC8mB,WAAW,GACzChC,EAAUiC,MAAM,CAACjpB,EAAS5I,GAAG,CAAE4I,EAASJ,GAAG,CAC/C,CACJ,CAKA,SAAS6E,GAAclR,CAAC,EACpB,IAAIq0B,EAAoBr0B,EAAE0J,OAAO,CAAC+pB,SAAS,EAAI,CAAC,EAC5CkC,EAAoB31B,EAAE0J,OAAO,CAACmF,SAAS,EAAI,CAAC,CAC5C,EAAC,IAAI,CAAC4kB,SAAS,EAAI,CAAC,IAAI,CAACwB,QAAQ,EAChCZ,CAAAA,EAAiB9d,OAAO,EAAIof,EAAiBpf,OAAO,AAAD,IACpD8c,GAAM,CAAA,EAAM,IAAI,CAAC3pB,OAAO,CAAC+pB,SAAS,CAAEY,GACpChB,GAAM,CAAA,EAAM,IAAI,CAAC3pB,OAAO,CAACmF,SAAS,CAAE8mB,GACpC,OAAO31B,EAAE0J,OAAO,CAAC+pB,SAAS,CAC1B,OAAOzzB,EAAE0J,OAAO,CAACmF,SAAS,CAElC,CAS6B,OAjK7B,SAAiBhF,CAAU,CAAE+rB,CAAc,EACvC,GAAIn2B,IAA8Eo2B,UAAU,CAACtC,GAAiB1pB,GAAa,CACvH,IAAIC,EAAaD,EAAW1K,SAAS,CACrCvB,EAAuBg4B,EACvB9rB,EAAWgsB,SAAS,CAACrzB,IAAI,CAAC+yB,IAC1BpC,GAAmCvpB,EAAY,iBAAkB2pB,IACjEJ,GAAmCvpB,EAAY,oBAAqB8pB,IACpEP,GAAmCvpB,EAAY,cAAemrB,IAC9D5B,GAAmCvpB,EAAY,eAAgBurB,IAC/DhC,GAAmCvpB,EAAY,sBAAuBwrB,IACtEjC,GAAmCvpB,EAAY,SAAUqH,GAC7D,CACJ,EAmKI6kB,GAAyC,AAACt2B,IAA+E0zB,aAAa,CAEtI6C,GAAoC,AAACv2B,IAA+E0Q,QAAQ,CAAE8lB,GAAe,AAACx2B,IAA+Ew2B,YAAY,CAAEC,GAAmC,AAACz2B,IAA+EyK,OAAO,CAAEisB,GAAoC,AAAC12B,IAA+E2uB,QAAQ,CAAEgI,GAAgC,AAAC32B,IAA+E6G,IAAI,CAS7lB,SAAS+vB,KAEA3qB,AADM,IAAI,CACL4qB,aAAa,EACnB5qB,CAAAA,AAFO,IAAI,CAEN4qB,aAAa,CAAG,IAAIC,GAFlB,IAAI,CAEyC,CAE5D,CAOA,SAASC,GAAkBx2B,CAAC,EACxB,IAQIy2B,EAPA/vB,EAAQgF,AADD,IAAI,CACEhF,KAAK,CAClBqa,EAAera,EAAMgD,OAAO,CAC5B+pB,EAAY1S,EAAa0S,SAAS,CAClC6C,EAAgB5qB,AAJT,IAAI,CAIU4qB,aAAa,CAClCf,EAAY7uB,EAAM4uB,OAAO,CAACC,SAAS,CACnChB,EAAgBxT,EAAawT,aAAa,CAC1CmC,EAAWhwB,EAAM4uB,OAAO,CAACp1B,IAAI,CAEjC,GAAIwL,AATO,IAAI,CASNirB,OAAO,EACX,CAAA,AAAClD,CAAAA,MAAAA,EAA6C,KAAK,EAAIA,EAAUld,OAAO,AAAD,GAAOge,CAAAA,MAAAA,EAAqD,KAAK,EAAIA,EAAche,OAAO,AAAD,CAAC,GAElK,GAAImgB,AAAa,MAAbA,GAAoB12B,AAAc,SAAdA,EAAEwP,OAAO,CAC7BinB,EAAS,CAAA,OAMR,GAAI,AAAC,CAAA,AAAe,SAAdz2B,EAAEwP,OAAO,EAAeknB,AAAa,OAAbA,GAC9BX,IAA0CR,AAAc,OAAdA,CAAkB,GAC7D7pB,AArBG,IAAI,CAqBFhC,OAAO,CAAC0C,KAAK,CAAE,CACpB,IAAIwqB,EAAeN,EAAcM,YAAY,CAEzCV,GAAiCl2B,EAAE6D,GAAG,EACtCyyB,EAAcM,YAAY,CAAG,CAAClrB,AAzB/B,IAAI,CAyBgC7H,GAAG,CAAE6H,AAzBzC,IAAI,CAyB0CW,GAAG,CAAC,CAG5CuqB,IACL52B,EAAE6D,GAAG,CAAG+yB,CAAY,CAAC,EAAE,CACvB52B,EAAEqM,GAAG,CAAGuqB,CAAY,CAAC,EAAE,CACvBN,EAAcM,YAAY,CAAG,KAAK,EAE1C,EAEkB,KAAA,IAAXH,GACPz2B,EAAEgD,cAAc,EAExB,CAUA,IAAIuzB,GAAwC,WAMxC,SAASA,EAAuB7qB,CAAI,EAChC,IAAI,CAACA,IAAI,CAAGA,CAChB,CA0DA,OAjDA6qB,EAAuB3sB,OAAO,CAAG,SAAUitB,CAAS,EAC3CA,EAAUC,SAAS,CAACC,QAAQ,CAAC,mBAC9BF,EAAUC,SAAS,CAACr0B,IAAI,CAAC,iBACzBuzB,GAAkCa,EAAW,OAAQR,IACrDL,GAAkCa,EAAW,cAAeL,IAEpE,EASAD,EAAuBp3B,SAAS,CAAC2R,OAAO,CAAG,WACvC,IAAI,CAACpF,IAAI,CAAG,KAAK,CACrB,EAQA6qB,EAAuBp3B,SAAS,CAAC63B,YAAY,CAAG,SAAUC,CAAK,CAAEC,CAAK,CAAEC,CAAQ,CAAEC,CAAQ,EACtF,IAAI1rB,EAAO,IAAI,CAACA,IAAI,CAChB2rB,EAAiB,AAAC3rB,CAAAA,EAAK4rB,UAAU,EAAI,CAAA,EAAK,EAC1CC,EAASnB,GAA8Be,EACvCzrB,EAAK8rB,SAAS,CAACP,EACf,CAAA,EAAM,CAACvrB,EAAK+rB,KAAK,GACjBC,EAAStB,GAA8BgB,EACvC1rB,EAAK8rB,SAAS,CAACN,EACf,CAAA,EAAM,CAACxrB,EAAK+rB,KAAK,GAWrB,OATKvB,GAAiCiB,IAClCI,CAAAA,EAAStB,GAAasB,EAASF,EAAc,EAE5CnB,GAAiCkB,IAClCM,CAAAA,EAASzB,GAAayB,EAASL,EAAc,EAE5ClB,GAAkCoB,IAAYpB,GAAkCuB,IACjFH,CAAAA,EAASG,EAAS,KAAK,CAAA,EAEpB,CACH7zB,IAAK0zB,EACLlrB,IAAKqrB,CACT,CACJ,EACOnB,CACX,IASIoB,GAA+F15B,EAAoB,KACnH25B,GAAmH35B,EAAoBI,CAAC,CAACs5B,IAEzIE,GAAmI55B,EAAoB,KACvJ65B,GAAuJ75B,EAAoBI,CAAC,CAACw5B,IAa7KjhB,GAAQ,AAACghB,KAAuGG,KAAK,CAErHC,GAAc,AAACF,KAA2IE,WAAW,CAcrKC,GAAoB,CAuDpBtyB,OAAQ,GAOR8Q,OAAQ,GAURyhB,WAAY,CAAA,EAOZC,QAAS,CASLzyB,MAAO,EASPsR,aAAc,EASdrR,OAAQ,GAqBRyyB,QAAS,CAAC,mBAAoB,mBAAmB,CAMjD7hB,QAAS,CAAA,EAUTO,UAAW,EAMXuhB,gBAAiB,UAMjBC,YAAa,SACjB,EAgBAC,SAAU3hB,GAAM,WAA0C4hB,UAAU,CAAC,IAAKx5B,GAAG,GAW7Ey5B,aAAc,UAadC,aAAc,EAkCdpuB,OAAQ,CAeJpK,KAAO,AAAkC,KAAA,IAA3B83B,GAAYW,UAAU,CAChC,OACA,aAIJC,YAAa,IAIb9hB,UAAW,EAIX+hB,QAAS,KAIT/W,aAAc,CACVvL,QAAS,CAAA,CACb,EAcAuiB,aAAc,CACVC,cAAe,UACfxiB,QAAS,CAAA,EACTyiB,gBAAiB,EAEjBC,YAAa,aACbC,OAAQ,SACRC,WAAY,YAEZC,MAAO,CACH,CAAC,cAAe,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAI,CAAC,CACzD,CAAC,SAAU,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAG,CAAC,CACjC,CAAC,SAAU,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAG,CAAC,CACjC,CAAC,OAAQ,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAG,CAAC,CAChC,CAAC,MAAO,CAAC,EAAG,EAAG,EAAG,EAAE,CAAC,CACrB,CAAC,OAAQ,CAAC,EAAG,EAAG,EAAE,CAAC,CACnB,CAAC,QAAS,CAAC,EAAG,EAAG,EAAE,CAAC,CACpB,CAAC,OAAQ,KAAK,CACjB,AACL,EAOAC,WAAY,CACR9iB,QAAS,CAAA,EACTkD,OAAQ,CACZ,EACAnW,GAAI,8BACJxB,UAAW,8BAaXw3B,UAAW,KACXC,OAAQ,CACJhjB,QAAS,CAAA,CACb,EAkBAijB,UAAW,IACf,EAqCA7qB,MAAO,CAuBH7M,UAAW,6BACX23B,WAAY,EACZ3iB,UAAW,EACX4iB,cAAe,UACfp2B,GAAI,mBACJq2B,cAAe,EACfC,kBAAmB,IACnBtd,OAAQ,CACJud,MAAO,OAIPljB,MAAO,CAEHC,MAAO,UAEPkjB,SAAU,QAEV7zB,QAAS,GAET8zB,YAAa,cACjB,EACAx4B,EAAG,EACHC,EAAG,EACP,EACAw4B,UAAW,CAAA,CACf,EA0BAprB,MAAO,CACH9M,UAAW,6BACX63B,cAAe,EACfM,YAAa,CAAA,EACbC,UAAW,CAAA,EACXC,WAAY,GACZ72B,GAAI,mBACJ82B,WAAY,GACZ9d,OAAQ,CACJ/F,QAAS,CAAA,CACb,EACAyjB,UAAW,CAAA,EACX3uB,MAAO,CACHC,KAAM,IACV,EACAmuB,WAAY,EACZY,UAAW,CACf,CACJ,EAuTIC,IAjRkB,AAAC76B,IAA+EyK,OAAO,CAAqB,AAACzK,IAA+E2uB,QAAQ,CAAiB,AAAC3uB,IAA+E6G,IAAI,CAiRjQ,SAAUwI,CAAE,CAAEC,CAAI,CAAEwrB,CAAI,EAClF,GAAIA,GAAQvqB,AAAqB,GAArBA,UAAUzN,MAAM,CAAQ,IAAK,IAA4Bi4B,EAAxBl4B,EAAI,EAAGF,EAAI2M,EAAKxM,MAAM,CAAMD,EAAIF,EAAGE,KACxEk4B,GAAQl4B,KAAKyM,IACRyrB,GAAIA,CAAAA,EAAKnsB,MAAMlP,SAAS,CAAC6E,KAAK,CAAC3E,IAAI,CAAC0P,EAAM,EAAGzM,EAAC,EACnDk4B,CAAE,CAACl4B,EAAE,CAAGyM,CAAI,CAACzM,EAAE,EAGvB,OAAOwM,EAAGuN,MAAM,CAACme,GAAMnsB,MAAMlP,SAAS,CAAC6E,KAAK,CAAC3E,IAAI,CAAC0P,GACtD,GAGI0rB,GAAiB,AAACh7B,IAA+Eg7B,cAAc,CAiClFC,GAHV,CACnB,mBArBJ,SAAyBC,CAAE,CAAEC,CAAE,CAAEl1B,CAAK,CAAEC,CAAM,CAAE+D,CAAO,EACnC,KAAK,IAAjBA,GAAsBA,CAAAA,EAAU,CAAC,CAAA,EACrC,IAzFiBnI,EAAGC,EAAGq5B,EAAGxiB,EAAG3O,EACzBqN,EAhBMxV,EAAMs5B,EAAGxiB,EAAG3O,EAwGlBoxB,EAAYpxB,EAAQhE,KAAK,CAAGgE,EAAQhE,KAAK,CAAG,EAAIA,EAEhDqR,EAAI0jB,GAAe/wB,EAAQsN,YAAY,EAAI,EAC3CpT,KAAKC,GAAG,CAACi3B,AAAY,EAAZA,EACTn1B,IAEJ,OAAO20B,GAAc,CACjB,CAAC,IAAK,KAAiB30B,AAF3BA,CAAAA,EAAS+D,EAAQ/D,MAAM,EAAIA,CAAK,EAEI,EAAI,IAAI,CACxC,CAAC,IAAK,KAAiBA,EAAS,EAAI,IAAI,CACxC,CAAC,IAAKo1B,GAAoBp1B,EAAS,EAAI,IAAI,CAC3C,CAAC,IAAKo1B,GAAoBp1B,EAAS,EAAI,IAAI,CAC9C,EAnHSpE,EAmHU,CAACu5B,EAAY,EAnHjBD,EAmHyBC,AAAY,EAAZA,EAAgB,EAnHtCziB,EAmHyC1S,EAlH5D,AAAI+D,CADkBA,EAmH8C,CAAEqN,EAAGA,CAAE,GAlHpDA,CAAC,EAcPxV,EAbMA,EAaHC,EAoGgB,GApGbq5B,EAbMA,EAaHxiB,EAbMA,EAezB,CACH,CAAC,IAAK9W,GAFNwV,EAAI,AAACrN,CAAAA,OADoBA,EAbMA,GAce,KAAK,EAAIA,EAAQqN,CAAC,AAADA,GAAM,GAmGrC,GAjGjB,CACf,CAAC,IAAKxV,EAAIs5B,EAAI9jB,EAAGvV,EAAE,CACnB,CAAC,IAAKuV,EAAGA,EAAG,EAAG,EAAG,EAAGxV,EAAIs5B,EAAGr5B,EAAIuV,EAAE,CAClC,CAAC,IAAKxV,EAAIs5B,EAAGr5B,EAAI6W,EAAItB,EAAE,CACvB,CAAC,IAAKA,EAAGA,EAAG,EAAG,EAAG,EAAGxV,EAAIs5B,EAAI9jB,EAAGvV,EAAI6W,EAAE,CACtC,CAAC,IAAK9W,EAAIwV,EAAGvV,EAAI6W,EAAE,CACnB,CAAC,IAAKtB,EAAGA,EAAG,EAAG,EAAG,EAAGxV,EAAGC,EAAI6W,EAAItB,EAAE,CAClC,CAAC,IAAKxV,EAAGC,EAAIuV,EAAE,CACf,CAAC,IAAKA,EAAGA,EAAG,EAAG,EAAG,EAAGxV,EAAIwV,EAAGvV,EAAE,CAC9B,CAAC,IAAI,CACR,EAxBM,CACH,CAAC,IAAKD,EA8G0B,GA9GrB,CACX,CAAC,IAAKA,EAAIs5B,EA6GsB,GA7GjB,CACf,CAAC,IAAKt5B,EAAIs5B,EAAGr5B,AA4GmB,GA5Gf6W,EAAE,CACnB,CAAC,IAAK9W,EAAGC,AA2GuB,GA3GnB6W,EAAE,CACf,CAAC,IAAI,CACR,EAyG8E,CAAA,EACnF,CAQA,EAII2iB,GAA2I/8B,EAAoB,KAC/Jg9B,GAA+Jh9B,EAAoBI,CAAC,CAAC28B,IAarLE,GAAyB,AAACz7B,IAA+EyK,OAAO,CA2ChHixB,GAAa,AAAC17B,IAA+E07B,UAAU,CAEvG15B,GAAW,AAAChC,IAA+EgC,QAAQ,CAKnG25B,GAAkB,AAACH,KAAmJG,eAAe,CAErLC,GAAqCC,AA1BpB,CACjBC,cAZJ,SAAuBnvB,CAAK,EACxB,IAAIuC,EAAQ,IAAI,CAACA,KAAK,CAAC,EAAE,AACrBusB,CAAAA,GAAuBvsB,EAAM/B,OAAO,GACpCsuB,GAAuBvsB,EAAM9B,OAAO,GACpCT,EACA,IAAI,CAACovB,UAAU,CAAG53B,KAAKC,GAAG,CAACuI,EAAOuC,EAAM/B,OAAO,CAAG+B,EAAM9B,OAAO,EAG/D,IAAI,CAAC2uB,UAAU,CAAGpvB,CAE1B,CAGA,EAwBkEmvB,aAAa,CAE3EE,GAAgC,AAACh8B,IAA+E0Q,QAAQ,CAAEurB,GAAS,AAACj8B,IAA+Ei8B,MAAM,CAAE7F,GAAa,AAACp2B,IAA+Eo2B,UAAU,CA2BtU,SAAS8F,KACD,IAAI,CAACj1B,KAAK,CAAC+sB,SAAS,EAAI,CAAC,IAAI,CAAC/pB,OAAO,CAACkyB,UAAU,EAChD,IAAI,CAACl1B,KAAK,CAAC+sB,SAAS,CAACC,aAAa,CAAC,KAAM,CAAA,EAEjD,CAS6B,OA1B7B,SAAsC7pB,CAAU,CAAEgtB,CAAS,CAAEgF,CAAW,EACpEC,AAx7ByDvF,GAw7BhC3sB,OAAO,CAACitB,GAC7BhB,GAAWp0B,GAAU,eACrBoI,EAAW1K,SAAS,CAACo8B,aAAa,CAAGF,GACrCK,GAAON,KAAkBj8B,SAAS,CAACi5B,OAAO,CAAEsC,IAC5Ce,GAA8BI,EAAa,cAAeF,IAC1DR,GAAW,CAAE1H,UAxb2CwE,EAwbJ,GAE5D,EAgCI8D,GAAyB,AAACt8B,IAA+EgC,QAAQ,CAEjHu6B,GAAyB,AAACv8B,IAA+E0Q,QAAQ,CAAE8rB,GAAwB,AAACx8B,IAA+EyK,OAAO,CAAEgyB,GAAqB,AAACz8B,IAA+E6G,IAAI,CAAE61B,GAA2B,AAAC18B,IAA+Eo2B,UAAU,EAOxc,AAAC,SAAUh4B,CAAa,EAMpB,IAAIu+B,EA2BJ,SAAS3G,EAAY/pB,CAAI,EACrB,IAAI2wB,EAAUH,GAAmBxwB,EAAKhC,OAAO,EAAIgC,EAAKhC,OAAO,CAAC7F,GAAG,CAC7D6H,EAAK7H,GAAG,EACRy4B,EAAUJ,GAAmBxwB,EAAKhC,OAAO,EAAIgC,EAAKhC,OAAO,CAAC2C,GAAG,CAC7DX,EAAKW,GAAG,EACZ,MAAO,CACHgwB,QAASA,EACTC,QAASA,EACTC,UAAWN,GAAsBvwB,EAAKmB,OAAO,EACzCjJ,KAAKC,GAAG,CAACw4B,EAAS3wB,EAAK7H,GAAG,CAAE6H,EAAKmB,OAAO,CAAEqvB,GAAmBxwB,EAAK8tB,SAAS,CAAEgD,MAAaH,EAC9FI,UAAWR,GAAsBvwB,EAAKkB,OAAO,EACzChJ,KAAKyI,GAAG,CAACiwB,EAAS5wB,EAAKW,GAAG,CAAEX,EAAKkB,OAAO,CAAEsvB,GAAmBxwB,EAAK8tB,SAAS,CAAE,CAACgD,MAAaF,CACnG,CACJ,CAKA,SAASI,IACL,IACI7tB,EAAYnD,AADL,IAAI,CACMmD,SAAS,CAC1BklB,EAAWllB,GAAa,CAACA,EAAUnF,OAAO,CAACqqB,QAAQ,CACnDtf,EAAQ/I,AAHD,IAAI,CAGE+rB,KAAK,CAAG,EAAI1D,EAAW,EAAI,EACxCllB,IAEAnD,AANO,IAAI,CAMNhF,KAAK,CAACi2B,iBAAiB,CAAG,CAAC,EAAG,EAAE,CACrCjxB,AAPO,IAAI,CAONhF,KAAK,CAACk2B,UAAU,CAACnoB,EAAM,EACxB5F,EAAUguB,IAAI,CAAIhuB,CAAAA,EAAUnF,OAAO,CAAC+M,MAAM,EAAI,CAAA,EAE1D,CAKA,SAASqmB,IACL,IAAIpxB,EAAO,IAAI,AACXA,CAAAA,EAAKhC,OAAO,EACZgC,EAAKhC,OAAO,CAACmF,SAAS,EACtBnD,EAAKhC,OAAO,CAACmF,SAAS,CAAC0H,OAAO,GAE9B7K,EAAKhC,OAAO,CAACmF,SAAS,CAACkuB,QAAQ,CAAG,CAACrxB,EAAK+rB,KAAK,CAC7C/rB,EAAKhC,OAAO,CAACuwB,WAAW,CAAGvuB,EAAKhC,OAAO,CAACwwB,SAAS,CAAG,CAAA,EACpDxuB,EAAKmD,SAAS,CAAG,IAAIutB,EAAU1wB,EAAKhF,KAAK,CAAC6E,QAAQ,CAAEG,EAAKhC,OAAO,CAACmF,SAAS,CAAEnD,EAAKhF,KAAK,EACtFs1B,GAAuBtwB,EAAKmD,SAAS,CAAE,UAAW,SAAU7O,CAAC,EACzD,IAMI8O,EACAC,EAPApD,EAAK8pB,EAAY/pB,GACjB2wB,EAAU1wB,EAAG0wB,OAAO,CACpBC,EAAU3wB,EAAG2wB,OAAO,CACpBU,EAAYrxB,EAAG4wB,SAAS,CAExBnwB,EAAQ6wB,AADItxB,EAAG8wB,SAAS,CACJO,EAIxB,GAAI,AAACf,GAAsBI,IAAaJ,GAAsBK,IAc9D,GAXI,AAAC5wB,EAAK+rB,KAAK,EAAI,CAAC/rB,EAAKwxB,QAAQ,EAC5B,CAACxxB,EAAK+rB,KAAK,EAAI/rB,EAAKwxB,QAAQ,EAC7BpuB,EAAKkuB,EAAY5wB,EAAQ,IAAI,CAAC0C,EAAE,CAChCC,EAAOiuB,EAAY5wB,EAAQ,IAAI,CAAC2C,IAAI,GAKpCD,EAAKkuB,EAAY5wB,EAAS,CAAA,EAAI,IAAI,CAAC2C,IAAI,AAAD,EACtCA,EAAOiuB,EAAY5wB,EAAS,CAAA,EAAI,IAAI,CAAC0C,EAAE,AAAD,GAEtC,IAAI,CAACquB,oBAAoB,CAACn9B,EAAEo9B,OAAO,EAAG,CAEtC,IAAIC,EAAUr9B,AAAc,cAAdA,EAAEo9B,OAAO,EACfp9B,AAAc,cAAdA,EAAEo9B,OAAO,EAA2B,KAAK,EACjD1xB,EAAK4xB,WAAW,CAACvuB,EAAMD,EAAI,CAAA,EAAMuuB,EAASr9B,EAC9C,MAII,IAAI,CAACu9B,QAAQ,CAAC,IAAI,CAACxuB,IAAI,CAAE,IAAI,CAACD,EAAE,EAExC,GAER,CAKA,SAAS0uB,IACL,IAQIC,EACA1uB,EACAD,EATAnD,EAAK8pB,EADE,IAAI,EAEX8G,EAAY5wB,EAAG4wB,SAAS,CACxBE,EAAY9wB,EAAG8wB,SAAS,CACxB5tB,EAAYnD,AAJL,IAAI,CAIMmD,SAAS,CAC1B5H,EAAUyE,AALH,IAAI,CAKIgyB,eAAe,CAAIhyB,CAAAA,AAL3B,IAAI,CAK4BopB,WAAW,EAAI,CAAA,EACtD6H,EAAoBjxB,AANb,IAAI,CAMchF,KAAK,CAACi2B,iBAAiB,CAChDgB,EAAajyB,AAPN,IAAI,CAOOhC,OAAO,CAAC+M,MAAM,EAAI,EAIxC,GAAI5H,GAAa8tB,EAAmB,CAChC,GAAIjxB,AAZG,IAAI,CAYF+rB,KAAK,CAEL/rB,AAdF,IAAI,CAcGqoB,QAAQ,EACd4I,CAAAA,CAAiB,CAAC,EAAE,EAAI11B,CAAK,EAEjC4H,EAAUxN,QAAQ,CAACqK,AAjBhB,IAAI,CAiBiB8F,IAAI,CAAG9F,AAjB5B,IAAI,CAiB6BwoB,GAAG,CACnCxoB,AAlBD,IAAI,CAkBE/F,MAAM,CACX,EACAg3B,CAAiB,CAAC,EAAE,CACnBjxB,CAAAA,AArBF,IAAI,CAqBGqoB,QAAQ,CAAG4J,EAAa,CAAA,EAAKjyB,AArBpC,IAAI,CAqBqChG,KAAK,CAAEgG,AArBhD,IAAI,CAqBiD/F,MAAM,EAEzD+F,AAvBF,IAAI,CAuBGqoB,QAAQ,EACd4I,CAAAA,CAAiB,CAAC,EAAE,EAAIgB,CAAS,EAErCF,EAAe,MAEd,CAEG/xB,AA9BD,IAAI,CA8BEqoB,QAAQ,EACb4I,CAAAA,CAAiB,CAAC,EAAE,EAAI11B,CAAK,EAEjC,IAAI22B,EAAY,KAAK,EAKjBA,EAJC/uB,EAAUnF,OAAO,CAACqqB,QAAQ,CAIfroB,AAtCb,IAAI,CAsCc8F,IAAI,CACjB9F,AAvCL,IAAI,CAuCMhG,KAAK,CACV,EACAi3B,CAAiB,CAAC,EAAE,CACnBjxB,CAAAA,AA1CN,IAAI,CA0COqoB,QAAQ,CAAG,EAAI4J,CAAS,EAPtBjyB,AAnCb,IAAI,CAmCcqoB,QAAQ,CAAG,EAAI4J,EASpC9uB,EAAUxN,QAAQ,CAACu8B,EAAWlyB,AA5C3B,IAAI,CA4C4BwoB,GAAG,CAAExoB,AA5CrC,IAAI,CA4CsChG,KAAK,CAAEgG,AA5CjD,IAAI,CA4CkD/F,MAAM,EAE3D+F,AA9CD,IAAI,CA8CEqoB,QAAQ,EACb4I,CAAAA,CAAiB,CAAC,EAAE,EAAIgB,CAAS,EAErCF,EAAe,CACnB,CAGA,GAFAd,CAAiB,CAACc,EAAa,EAAI5uB,EAAUguB,IAAI,CAC5ChuB,CAAAA,EAAUnF,OAAO,CAAC+M,MAAM,EAAI,CAAA,EAC7B7N,MAAM2zB,IACN3zB,MAAM6zB,IACN,CAACR,GAAsBvwB,AAvDpB,IAAI,CAuDqB7H,GAAG,GAC/B,CAACo4B,GAAsBvwB,AAxDpB,IAAI,CAwDqBW,GAAG,GAC/BX,AAzDG,IAAI,CAyDFmB,OAAO,GAAKnB,AAzDd,IAAI,CAyDekB,OAAO,CAK7BiC,EAAU0uB,QAAQ,CAAC,EAAG,QAErB,GAAI7xB,AAhEF,IAAI,CAgEG7H,GAAG,GAAK6H,AAhEf,IAAI,CAgEgBW,GAAG,CAAE,CAI5B,IAAIwxB,EAAWnyB,AApEZ,IAAI,CAoEa4rB,UAAU,CAAI5rB,CAAAA,AApE/B,IAAI,CAoEgCkB,OAAO,CACtC,CAAA,EACRmC,EAAO8uB,EAAWnyB,AAtEf,IAAI,CAsEgB7H,GAAG,CAC1BiL,EAAK+uB,EAAYnyB,CAAAA,AAvEd,IAAI,CAuEeW,GAAG,CAAG,CAAA,EAC5BwC,EAAU0uB,QAAQ,CAACxuB,EAAMD,EAC7B,MAEIC,EAAQ,AAACrD,CAAAA,AA3EN,IAAI,CA2EO7H,GAAG,CAAG04B,CAAQ,EACvBE,CAAAA,EAAYF,CAAQ,EACzBztB,EAAM,AAACpD,CAAAA,AA7EJ,IAAI,CA6EKW,GAAG,CAAGkwB,CAAQ,EACrBE,CAAAA,EAAYF,CAAQ,EACrB,AAAC7wB,AA/EF,IAAI,CA+EG+rB,KAAK,EAAI,CAAC/rB,AA/EjB,IAAI,CA+EkBwxB,QAAQ,EAC5B,CAACxxB,AAhFH,IAAI,CAgFI+rB,KAAK,EAAI/rB,AAhFjB,IAAI,CAgFkBwxB,QAAQ,CAC7BruB,EAAU0uB,QAAQ,CAACxuB,EAAMD,GAIzBD,EAAU0uB,QAAQ,CAAC,EAAIzuB,EAAI,EAAIC,EAG3C,CACJ,CAjLAlR,EAAc+L,OAAO,CARrB,SAAiBitB,CAAS,CAAEiH,CAAc,EAClC3B,GAAyBJ,GAAwB,oBACjDK,EAAY0B,EACZ9B,GAAuBnF,EAAW,iBAAkB6F,GACpDV,GAAuBnF,EAAW,YAAaiG,GAC/Cd,GAAuBnF,EAAW,cAAe2G,GAEzD,CAmLJ,EAAG3/B,GAAkBA,CAAAA,EAAgB,CAAC,CAAA,GAMT,IAAIkgC,GAAsBlgC,EA+NtBmgC,GAvLT,CAWpBr4B,OAAQ,GAORs4B,gBAAiB,EAOjBC,mBAAoB,EAMpBC,eAAgB,CAAA,EAsBhBC,WAAY,KAAK,EAQjB3nB,OAAQ,KAAK,EAMb4nB,SAAU,EAEVtK,SAAU,CAAA,EASVuK,KAAM,GAIN7kB,OAAQ,EASR8kB,mBAAoB,UAOpBC,eAAgB,EAMhBC,eAAgB,UAShBC,iBAAkB,UASlBC,sBAAuB,UASvBC,kBAAmB,UAOnBC,kBAAmB,EAMnBC,WAAY,OASZC,qBAAsB,6BAStBC,iBAAkB,UAOlBC,kBAAmB,EAOnBC,iBAAkB,CACtB,EAoBIC,GAAiB,AAAC1/B,IAA+E0/B,cAAc,CAK/GC,GAAqB,AAAC3/B,IAA+E0Q,QAAQ,CAAEkvB,GAAyB,AAAC5/B,IAA+Ew2B,YAAY,CAAEqJ,GAAQ,AAAC7/B,IAA+E6/B,KAAK,CAAEC,GAAoB,AAAC9/B,IAA+EyK,OAAO,CAAEs1B,GAA0B,AAAC//B,IAA+E+/B,uBAAuB,CAAEC,GAAsB,AAAChgC,IAA+E2K,SAAS,CAAEs1B,GAAkB,AAACjgC,IAA+E4zB,KAAK,CAAEsM,GAAiB,AAAClgC,IAA+E6G,IAAI,CAAEiK,GAAc,AAAC9Q,IAA+E8Q,WAAW,CAkB/9B6rB,GAA2B,WAM3B,SAASA,EAAU7wB,CAAQ,CAAE7B,CAAO,CAAEhD,CAAK,EAMvC,IAAI,CAACk5B,OAAO,CAAG,EAAE,CACjB,IAAI,CAACC,MAAM,CAAG,EACd,IAAI,CAACC,MAAM,CAAG,EACd,IAAI,CAAC/wB,IAAI,CAAG,EACZ,IAAI,CAACgxB,gBAAgB,CAAG,EAAE,CAC1B,IAAI,CAACC,aAAa,CAAG,EACrB,IAAI,CAACC,oBAAoB,CAAG,EAC5B,IAAI,CAACC,YAAY,CAAG,EACpB,IAAI,CAACrD,IAAI,CAAG,EACZ,IAAI,CAAC/tB,EAAE,CAAG,EACV,IAAI,CAACowB,gBAAgB,CAAG,EACxB,IAAI,CAAC39B,CAAC,CAAG,EACT,IAAI,CAACC,CAAC,CAAG,EACT,IAAI,CAACwP,IAAI,CAACzF,EAAU7B,EAAShD,EACjC,CAmoBA,OA7nBA01B,EAAUxyB,OAAO,CAAG,SAAUitB,CAAS,EACnCkH,GAAmBn0B,OAAO,CAACitB,EAAWuF,EAC1C,EAkBAA,EAAU+D,MAAM,CAAG,SAAUC,CAAI,CAAErD,CAAQ,EAcvC,OAbIA,GACAqD,EAAK34B,OAAO,CAAC,SAAU44B,CAAG,EAGtB,IAAK,IADD9mB,EADA5Q,EAAM03B,EAAI99B,MAAM,CAEXD,EAAI,EAAGA,EAAIqG,EAAKrG,GAAK,EAEN,UAAhB,MADJiX,CAAAA,EAAO8mB,CAAG,CAAC/9B,EAAI,EAAE,AAAD,IAEZ+9B,CAAG,CAAC/9B,EAAI,EAAE,CAAG+9B,CAAG,CAAC/9B,EAAI,EAAE,CACvB+9B,CAAG,CAAC/9B,EAAI,EAAE,CAAGiX,EAGzB,GAEG6mB,CACX,EAYAhE,EAAUj9B,SAAS,CAACmhC,SAAS,CAAG,WAC5B,IAAIC,EAAe,IAAI,CAAC72B,OAAO,CAACoqB,QAAQ,CAAG,CAAC,EAAG,EAAE,CAAG,CAAC,EAAG,EAAE,CACtDpyB,EAAU,IAAI,CAACq+B,gBAAgB,CAC/BS,EAAM,IAAI,CAACC,cAAc,CAACh9B,OAAO,CACjCi9B,EAAQ,IAAI,CAACA,KAAK,CAACj9B,OAAO,CAC1Bk9B,EAAmB,IAAI,CAACA,gBAAgB,CAACC,IAAI,CAAC,IAAI,EAClDC,EAAmB,IAAI,CAACA,gBAAgB,CAACD,IAAI,CAAC,IAAI,EAClDE,EAAiB,IAAI,CAACA,cAAc,CAACF,IAAI,CAAC,IAAI,EAC9ChB,EAAU,CAEN,CACIl+B,CAAO,CAAC6+B,CAAY,CAAC,EAAE,CAAC,CAAC98B,OAAO,CAChC,QACA,IAAI,CAACs9B,gBAAgB,CAACH,IAAI,CAAC,IAAI,EAClC,CACD,CACIl/B,CAAO,CAAC6+B,CAAY,CAAC,EAAE,CAAC,CAAC98B,OAAO,CAChC,QACA,IAAI,CAACu9B,gBAAgB,CAACJ,IAAI,CAAC,IAAI,EAClC,CACD,CAACF,EAAO,QACZ,IAAI,CAACO,UAAU,CAACL,IAAI,CAAC,IAAI,EAAE,CACvB,CAACJ,EAAK,YACVG,EAAiB,CACb,CAACH,EAAIU,aAAa,CAAE,YACxBL,EAAiB,CACb,CAACL,EAAIU,aAAa,CAAE,UACxBJ,EAAe,CAEX,CAACN,EAAK,aACVG,EAAiB,CACb,CAACH,EAAIU,aAAa,CAAE,YACxBL,EAAiB,CACb,CAACL,EAAIU,aAAa,CAAE,WACxBJ,EAAe,CACd,CAELlB,EAAQn4B,OAAO,CAAC,SAAU05B,CAAI,EAC1B/B,GAAmBrvB,KAAK,CAAC,KAAMoxB,EACnC,GACA,IAAI,CAACvB,OAAO,CAAGA,CACnB,EACAxD,EAAUj9B,SAAS,CAAC6hC,gBAAgB,CAAG,SAAUhhC,CAAC,EAE9C,IAAIoM,EAAS,AAAC6oB,CAAAA,AADC,IAAI,CACInmB,EAAE,CAAGmmB,AADb,IAAI,CACkBlmB,IAAI,AAAD,EAChC4wB,GAAe1K,AAFR,IAAI,CAEavrB,OAAO,CAAC40B,IAAI,CAAE,IAC9CrJ,AAHe,IAAI,CAGV1lB,cAAc,CAAC0lB,AAHT,IAAI,CAGclmB,IAAI,CAAG3C,EAAO6oB,AAHhC,IAAI,CAGqCnmB,EAAE,CAAG1C,GAC7DqzB,GAJe,IAAI,CAIW,UAAW,CACrC1wB,KAAMkmB,AALK,IAAI,CAKAlmB,IAAI,CACnBD,GAAImmB,AANO,IAAI,CAMFnmB,EAAE,CACfU,QAAS,YACTC,SAAUzP,CACd,EACJ,EACAo8B,EAAUj9B,SAAS,CAAC4hC,gBAAgB,CAAG,SAAU/gC,CAAC,EAE9C,IAAIoM,EAAQizB,GAAuBpK,AADpB,IAAI,CACyBnmB,EAAE,CAAGmmB,AADlC,IAAI,CACuClmB,IAAI,EACtD4wB,GAAe1K,AAFR,IAAI,CAEavrB,OAAO,CAAC40B,IAAI,CAAE,IAC9CrJ,AAHe,IAAI,CAGV1lB,cAAc,CAAC8vB,GAAuBpK,AAHhC,IAAI,CAGqClmB,IAAI,CAAG3C,GAAQizB,GAAuBpK,AAH/E,IAAI,CAGoFnmB,EAAE,CAAG1C,IAC5GqzB,GAJe,IAAI,CAIW,UAAW,CACrC1wB,KAAMkmB,AALK,IAAI,CAKAlmB,IAAI,CACnBD,GAAImmB,AANO,IAAI,CAMFnmB,EAAE,CACfU,QAAS,YACTC,SAAUzP,CACd,EACJ,EAaAo8B,EAAUj9B,SAAS,CAACiiC,yBAAyB,CAAG,SAAUC,CAAe,EACrE,IACI33B,EAAUurB,AADC,IAAI,CACIvrB,OAAO,CAC1B43B,EAAqB53B,EAAQ20B,QAAQ,CAAGpJ,AAF7B,IAAI,CAEkCsM,eAAe,CAC5D73B,EAAQ20B,QAAQ,CAChB,EACJ,MAAO,CACHwB,OAAQ,AAACwB,CAAAA,EAAgBxB,MAAM,CAAG5K,AAN3B,IAAI,CAMgC1zB,CAAC,CACxC0zB,AAPG,IAAI,CAOEuM,OAAO,AAAD,EACdvM,CAAAA,AARE,IAAI,CAQGwM,QAAQ,CAAGH,CAAiB,EAC1CxB,OAAQ,AAACuB,CAAAA,EAAgBvB,MAAM,CAAG7K,AAT3B,IAAI,CASgCzzB,CAAC,CACxCyzB,AAVG,IAAI,CAUEyM,OAAO,AAAD,EACdzM,CAAAA,AAXE,IAAI,CAWGwM,QAAQ,CAAGH,CAAiB,CAC9C,CACR,EAOAlF,EAAUj9B,SAAS,CAAC2R,OAAO,CAAG,WAC1B,IAAImkB,EAAW,IAAI,CACfxB,EAAYwB,EAASvuB,KAAK,CAACuuB,QAAQ,CAEvCA,EAAS0M,YAAY,GAErB,CACI,QACA,kBACA,YACA,iBACA,QACH,CAACl6B,OAAO,CAAC,SAAUvI,CAAI,EAChB+1B,CAAQ,CAAC/1B,EAAK,EAAI+1B,CAAQ,CAAC/1B,EAAK,CAAC4R,OAAO,EACxCmkB,CAAAA,CAAQ,CAAC/1B,EAAK,CAAG+1B,CAAQ,CAAC/1B,EAAK,CAAC4R,OAAO,EAAC,CAEhD,GAEI2iB,GAAawB,IAAaxB,EAAU5kB,SAAS,GAC7C4kB,EAAU5kB,SAAS,CAAG,KAEtB2wB,GAAwB/L,EAAUsM,gBAAgB,EAE1D,EASA3D,EAAUj9B,SAAS,CAACyiC,mBAAmB,CAAG,SAAUntB,CAAK,EACrD,IACIlJ,EAAW0pB,AADA,IAAI,CACK1pB,QAAQ,CAC5Bw0B,EAAmB9K,AAFR,IAAI,CAEa8K,gBAAgB,CAC5Cr2B,EAAUurB,AAHC,IAAI,CAGIvrB,OAAO,CAC1BmzB,EAAO5H,AAJI,IAAI,CAIC4H,IAAI,CACpB/xB,EAAQS,EAASs2B,CAAC,GAAG7/B,GAAG,CAACizB,AALd,IAAI,CAKmBnqB,KAAK,EAE3C,GADAi1B,EAAiBt9B,IAAI,CAACqI,GAClBpB,EAAQy0B,cAAc,CAAE,CAExB,IAAI3kB,EAAOjO,EAASiO,IAAI,GACf5X,QAAQ,CAAC,+BACTI,GAAG,CAAC8I,EAERmqB,CAbM,IAAI,CAaDvuB,KAAK,CAACgT,UAAU,EAC1BF,EAAKL,IAAI,CAAC,CACNzC,OAAQhN,EAAQk1B,iBAAiB,CACjC,eAAgBl1B,EAAQm1B,iBAAiB,CACzCiD,KAAMp4B,EAAQi1B,qBAAqB,AACvC,GAGJnlB,EAAKL,IAAI,CAACK,EAAK8lB,KAAK,CAAC,CACjB/9B,EAAG,IACHC,EAAG,IACHkE,MAAOm3B,EACPl3B,OAAQk3B,EACR9lB,EAAGrN,EAAQw0B,kBAAkB,AACjC,EAAG1kB,EAAK3C,WAAW,KAEnB,IAAIkrB,EAAQx2B,EACH60B,IAAI,CAAChE,EAAU+D,MAAM,CAAC,CAAC,CACpB,IACAtD,EAAO,EAAKpoB,CAAAA,EAAQ,GAAK,CAAA,EACzBooB,EAAO,EAAI,EACd,CACL,CACQ,IACAA,EAAO,EAAKpoB,CAAAA,EAAQ,GAAK,CAAA,EACzBooB,EAAO,EAAI,EACd,CACL,CACQ,IACAA,EAAO,EAAKpoB,CAAAA,EAAQ,EAAI,EAAC,EACzBooB,EAAO,EACV,CAAC,CACNnzB,EAAQqzB,QAAQ,GACXn7B,QAAQ,CAAC,8BACTI,GAAG,CAAC+9B,CAAgB,CAACtrB,EAAM,CAC/BwgB,CAhDM,IAAI,CAgDDvuB,KAAK,CAACgT,UAAU,EAC1BqoB,EAAM5oB,IAAI,CAAC,CACP2oB,KAAMp4B,EAAQg1B,gBAAgB,AAClC,EAER,CACJ,EAQAtC,EAAUj9B,SAAS,CAAC6R,IAAI,CAAG,SAAUzF,CAAQ,CAAE7B,CAAO,CAAEhD,CAAK,EAEzDuuB,AADe,IAAI,CACV8K,gBAAgB,CAAG,EAAE,CAC9B9K,AAFe,IAAI,CAEV1pB,QAAQ,CAAGA,EACpB0pB,AAHe,IAAI,CAGV+M,WAAW,CAAGt4B,EACvBurB,AAJe,IAAI,CAIVvrB,OAAO,CAAGg2B,GAAgB1B,GAA6BmB,GAAetwB,SAAS,CAAEnF,GAC1FurB,AALe,IAAI,CAKVvrB,OAAO,CAAC+M,MAAM,CAAGkpB,GAAe1K,AAL1B,IAAI,CAK+BvrB,OAAO,CAAC+M,MAAM,CAAE,IAClEwe,AANe,IAAI,CAMVvuB,KAAK,CAAGA,EAEjBuuB,AARe,IAAI,CAQV4H,IAAI,CAAG8C,GAAe1K,AARhB,IAAI,CAQqBvrB,OAAO,CAACmzB,IAAI,CAAE5H,AARvC,IAAI,CAQ4CvrB,OAAO,CAAC/D,MAAM,EAEzE+D,EAAQ6M,OAAO,GACf0e,AAXW,IAAI,CAWNS,MAAM,GACfT,AAZW,IAAI,CAYNqL,SAAS,GAE1B,EACAlE,EAAUj9B,SAAS,CAACwhC,gBAAgB,CAAG,SAAU3gC,CAAC,EAE9C,IADI2L,EAEA01B,EAAkB,AAAC,CAAA,AAAkC,OAAjC11B,CAAAA,EAAKspB,AADd,IAAI,CACmBvuB,KAAK,CAACu7B,OAAO,AAAD,GAAet2B,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGu2B,SAAS,CAACliC,EAAC,GAAMA,EAC1GmiC,EAAgBlN,AAFL,IAAI,CAEUmM,yBAAyB,CAACC,EACvDpM,CAHe,IAAI,CAGV4K,MAAM,CAAGsC,EAActC,MAAM,CACtC5K,AAJe,IAAI,CAIV6K,MAAM,CAAGqC,EAAcrC,MAAM,CACtC7K,AALe,IAAI,CAKVmN,aAAa,CAAG,CAACnN,AALX,IAAI,CAKgBlmB,IAAI,CAAEkmB,AAL1B,IAAI,CAK+BnmB,EAAE,CAAC,CACrDmmB,AANe,IAAI,CAMVoN,aAAa,CAAG,CAAA,CAC7B,EAKAjG,EAAUj9B,SAAS,CAAC0hC,gBAAgB,CAAG,SAAU7gC,CAAC,EAE9C,IADI2L,EASA22B,EAPAjB,EAAkB,AAAC,CAAA,AAAkC,OAAjC11B,CAAAA,EAAKspB,AADd,IAAI,CACmBvuB,KAAK,CAACu7B,OAAO,AAAD,GAAet2B,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGu2B,SAAS,CAACliC,EAAC,GAAMA,EAE1GmsB,EAAYziB,AADFurB,AAFC,IAAI,CAEIvrB,OAAO,CACNqzB,QAAQ,CACxB,SAAW,SACfqF,EAAgBnN,AALL,IAAI,CAKUmN,aAAa,EAAI,EAAE,AAO5CnN,CAZW,IAAI,CAYNoN,aAAa,EAErB,CAAA,CAACriC,EAAE4C,OAAO,EAAI5C,AAA4B,IAA5BA,EAAE4C,OAAO,CAAC,EAAE,CAACupB,EAAU,AAAK,IAG3CmW,EAASC,AAFOtN,AAfL,IAAI,CAeUmM,yBAAyB,CAACC,EAAgB,CAAClV,EAAU,CAC7D8I,AAhBN,IAAI,AAgBU,CAAC9I,EAAU,CAEpC8I,AAlBW,IAAI,CAkBNuN,UAAU,CAAG,CAAA,EACtBvN,AAnBW,IAAI,CAmBN1lB,cAAc,CAAC6yB,CAAa,CAAC,EAAE,CAAGE,EAAQF,CAAa,CAAC,EAAE,CAAGE,GAClErN,AApBO,IAAI,CAoBFuN,UAAU,EACnB/C,GArBO,IAAI,CAqBmB,UAAW,CACrC1wB,KAAMkmB,AAtBH,IAAI,CAsBQlmB,IAAI,CACnBD,GAAImmB,AAvBD,IAAI,CAuBMnmB,EAAE,CACfU,QAAS,YACT4tB,QAASp9B,EAAEE,IAAI,CACfuP,SAAUzP,CACd,GAGZ,EAKAo8B,EAAUj9B,SAAS,CAAC2hC,cAAc,CAAG,SAAU9gC,CAAC,EAExCi1B,AADW,IAAI,CACNuN,UAAU,EACnB/C,GAFW,IAAI,CAEe,UAAW,CACrC1wB,KAAMkmB,AAHC,IAAI,CAGIlmB,IAAI,CACnBD,GAAImmB,AAJG,IAAI,CAIEnmB,EAAE,CACfU,QAAS,YACT4tB,QAASp9B,EAAEE,IAAI,CACfuP,SAAUzP,CACd,GAEJi1B,AAVe,IAAI,CAUVoN,aAAa,CAClBpN,AAXW,IAAI,CAWNuN,UAAU,CACfvN,AAZO,IAAI,CAYF4K,MAAM,CACX5K,AAbG,IAAI,CAaE6K,MAAM,CAAG,IAClC,EAgBA1D,EAAUj9B,SAAS,CAACkC,QAAQ,CAAG,SAAUE,CAAC,CAAEC,CAAC,CAAEkE,CAAK,CAAEC,CAAM,EACxD,IACI+D,EAAUurB,AADC,IAAI,CACIvrB,OAAO,CAC1By0B,EAAiBz0B,EAAQy0B,cAAc,CACvCxyB,EAAKjC,EAAQ+M,MAAM,CACnBA,EAAS9K,AAAO,KAAK,IAAZA,EAAgB,EAAIA,EAC7BoxB,EAAWrzB,EAAQqzB,QAAQ,CAC3B0F,EAASxN,AANE,IAAI,CAMGyN,QAAQ,CAAG,UAAY,OACzClB,EAAU77B,EACV+7B,EAAU,EAEdzM,AAVe,IAAI,CAUVnqB,KAAK,CAAC63B,IAAI,GACnB1N,AAXe,IAAI,CAWV1zB,CAAC,CAAGA,EACb0zB,AAZe,IAAI,CAYVzzB,CAAC,CAAGA,EAAI,IAAI,CAAC09B,gBAAgB,CACtCjK,AAbe,IAAI,CAaVvvB,KAAK,CAAGA,EACjBuvB,AAde,IAAI,CAcVtvB,MAAM,CAAGA,EAClBsvB,AAfe,IAAI,CAeVuM,OAAO,CAAGA,EACnBvM,AAhBe,IAAI,CAgBVyM,OAAO,CAAGA,EAEf3E,GACA9H,AAnBW,IAAI,CAmBNvvB,KAAK,CAAGuvB,AAnBN,IAAI,CAmBWyM,OAAO,CAAGh8B,EAAQg8B,EAAUzM,AAnB3C,IAAI,CAmBgD4H,IAAI,CACnE5H,AApBW,IAAI,CAoBNuM,OAAO,CAAGA,EAAU,EAC7BvM,AArBW,IAAI,CAqBNyM,OAAO,CAAGA,EAAUvD,EAAiBlJ,AArBnC,IAAI,CAqBwC4H,IAAI,CAAG,EAE9D5H,AAvBW,IAAI,CAuBNwM,QAAQ,CAAG97B,EAAUw4B,CAAAA,EAAiBz4B,AAAQ,EAARA,EAAY,CAAA,EAC3DuvB,AAxBW,IAAI,CAwBN1zB,CAAC,CAAGA,GAAQkV,IAGrBwe,AA3BW,IAAI,CA2BNtvB,MAAM,CAAGA,EAASsvB,AA3BhB,IAAI,CA2BqB4H,IAAI,CACxC5H,AA5BW,IAAI,CA4BNuM,OAAO,CAAGA,EAAUrD,EAAiBlJ,AA5BnC,IAAI,CA4BwC4H,IAAI,CAAG,EAE9D5H,AA9BW,IAAI,CA8BNwM,QAAQ,CAAG/7B,EAASy4B,CAAAA,EAAiBx4B,AAAS,EAATA,EAAa,CAAA,EAC3DsvB,AA/BW,IAAI,CA+BNzzB,CAAC,CAAGyzB,AA/BF,IAAI,CA+BOzzB,CAAC,CAAGiV,GAG9Bwe,AAlCe,IAAI,CAkCVnqB,KAAK,CAAC23B,EAAO,CAAC,CACnBnqB,WAAY/W,EACZgX,WAAY0c,AApCD,IAAI,CAoCMzzB,CAAC,AAC1B,GAEAyzB,AAvCe,IAAI,CAuCVyL,KAAK,CAAC+B,EAAO,CAAC,CACnB/8B,MAAOA,EACPC,OAAQA,CACZ,GAEAsvB,AA5Ce,IAAI,CA4CV8K,gBAAgB,CAAC,EAAE,CAAC0C,EAAO,CAAC,CACjCnqB,WAAYykB,EAAW,EAAIr3B,EAAQ87B,EACnCjpB,WAAYwkB,EAAWp3B,EAAS+7B,EAAU,CAC9C,EACJ,EAOAtF,EAAUj9B,SAAS,CAACwiC,YAAY,CAAG,WAC/B,IAAI,CAAC/B,OAAO,CAACn4B,OAAO,CAAC,SAAU05B,CAAI,EAC/B5wB,GAAYR,KAAK,CAAC,KAAMoxB,EAC5B,GACA,IAAI,CAACvB,OAAO,CAACr9B,MAAM,CAAG,CAC1B,EAOA65B,EAAUj9B,SAAS,CAACu2B,MAAM,CAAG,WACzB,IACInqB,EAAW0pB,AADA,IAAI,CACK1pB,QAAQ,CAC5B7B,EAAUurB,AAFC,IAAI,CAEIvrB,OAAO,CAC1BmzB,EAAO5H,AAHI,IAAI,CAGC4H,IAAI,CACpBnjB,EAAaub,AAJF,IAAI,CAIOvuB,KAAK,CAACgT,UAAU,CACtC5O,EAAQS,EAASs2B,CAAC,CAAC,aACd1oB,IAAI,CAAC,CACNM,OAAQ/P,EAAQ+P,MAAM,AAC1B,GACK+T,IAAI,GACJxrB,GAAG,EAEZizB,CAZe,IAAI,CAYVnqB,KAAK,CAAGA,EAEjBmqB,AAde,IAAI,CAcVyL,KAAK,CAAGn1B,EAASiO,IAAI,GACzB5X,QAAQ,CAAC,8BACTuX,IAAI,CAAC,CACNpC,EAAGrN,EAAQu1B,iBAAiB,EAAI,EAChCt5B,OAAQk3B,EACRn3B,MAAOm3B,CACX,GAAG76B,GAAG,CAAC8I,GACF4O,GACDub,AAtBW,IAAI,CAsBNyL,KAAK,CAACvnB,IAAI,CAAC,CAChB2oB,KAAMp4B,EAAQq1B,oBAAoB,CAClCroB,OAAQhN,EAAQs1B,gBAAgB,CAChC,eAAgBt1B,EAAQw1B,gBAAgB,AAC5C,GAEJ,IAAIA,EAAmBjK,AA5BR,IAAI,CA4BaiK,gBAAgB,CACxCjK,AA7BO,IAAI,CA6BFyL,KAAK,CAAC7pB,WAAW,GAClCoe,AA9Be,IAAI,CA8BVyL,KAAK,CAACvnB,IAAI,CAAC,CAChB5X,EAAG,CAAC+9B,GAAM,EAAGJ,GACb19B,EAAG,CAAC89B,GAAM,EAAGJ,EACjB,GAEAjK,AAnCe,IAAI,CAmCVwL,cAAc,CAAGl1B,EAASs2B,CAAC,GAAG7/B,GAAG,CAAC8I,GAC3CmqB,AApCe,IAAI,CAoCVpmB,SAAS,CAAGtD,EAASiO,IAAI,GAC7B5X,QAAQ,CAAC,8BACTuX,IAAI,CAAC,CACNxT,OAAQk3B,EAAOqC,EACfx5B,MAAOm3B,EAAOqC,EACdnoB,EAAGrN,EAAQu0B,eAAe,EAAI,CAClC,GAAGj8B,GAAG,CAACizB,AA1CQ,IAAI,CA0CHwL,cAAc,EAC9BxL,AA3Ce,IAAI,CA2CV2N,eAAe,CAAGr3B,EACtB60B,IAAI,CAAChE,EAAU+D,MAAM,CAAC,CACvB,CAAC,IAAK,GAAItD,EAAO,EAAE,CACnB,CAAC,IAAK,GAAI,EAAIA,EAAO,EAAE,CACvB,CAAC,IAAK,EAAGA,EAAO,EAAE,CAClB,CAAC,IAAK,EAAG,EAAIA,EAAO,EAAE,CACtB,CAAC,IAAK,EAAGA,EAAO,EAAE,CAClB,CAAC,IAAK,EAAG,EAAIA,EAAO,EAAE,CACzB,CAAEnzB,EAAQqzB,QAAQ,GACdn7B,QAAQ,CAAC,+BACTI,GAAG,CAACizB,AArDM,IAAI,CAqDDwL,cAAc,EAC3B/mB,IACDub,AAvDW,IAAI,CAuDNpmB,SAAS,CAACsK,IAAI,CAAC,CACpB2oB,KAAMp4B,EAAQ60B,kBAAkB,CAChC7nB,OAAQhN,EAAQ+0B,cAAc,CAC9B,eAAgB/0B,EAAQ80B,cAAc,AAC1C,GACAvJ,AA5DW,IAAI,CA4DN2N,eAAe,CAACzpB,IAAI,CAAC,CAC1BzC,OAAQhN,EAAQo1B,UAAU,CAC1B,eAAgB,CACpB,IAEJ7J,AAjEe,IAAI,CAiEVgL,oBAAoB,CAAGhL,AAjEjB,IAAI,CAiEsBpmB,SAAS,CAACgI,WAAW,GAC9Doe,AAlEe,IAAI,CAkEVwL,cAAc,CAACjJ,SAAS,CAAC,CAAC8H,GAAM,EAAGrK,AAlE7B,IAAI,CAkEkCgL,oBAAoB,EAAG,CAACX,GAAM,EAAGrK,AAlEvE,IAAI,CAkE4EgL,oBAAoB,GAEnHhL,AApEe,IAAI,CAoEV2M,mBAAmB,CAAC,GAC7B3M,AArEe,IAAI,CAqEV2M,mBAAmB,CAAC,EACjC,EAWAxF,EAAUj9B,SAAS,CAACo+B,QAAQ,CAAG,SAAUxuB,CAAI,CAAED,CAAE,EAC7C,IAYI+zB,EACAC,EAZAp5B,EAAUurB,AADC,IAAI,CACIvrB,OAAO,CAC1BqzB,EAAWrzB,EAAQqzB,QAAQ,CAC3BsB,EAAW30B,EAAQ20B,QAAQ,CAC3B0E,EAAY9N,AAJD,IAAI,CAIMwM,QAAQ,CAC7BgB,EAAS,AAAC,CAAA,IAAI,CAACC,QAAQ,EAClB,IAAI,CAACF,UAAU,EACd,IAAI,CAAC97B,KAAK,CAAC+sB,SAAS,EAAI,IAAI,CAAC/sB,KAAK,CAAC+sB,SAAS,CAAC+O,UAAU,CAAiB,OAAZ,UACtE,GAAKjD,GAAkBwD,IAGvB,IAAIC,EAAOD,EAAYn/B,KAAKC,GAAG,CAACiL,EAAI,GAIpC+zB,EAASj/B,KAAKq/B,IAAI,CAACF,EADnBh0B,CAAAA,EAAOnL,KAAKyI,GAAG,CAAC0C,EAAM,EAAC,GAEvBkmB,AAhBe,IAAI,CAgBVsM,eAAe,CAAGuB,EAAUzD,GAAuB2D,EAAOH,GAE/DC,EAAUzE,IACVwE,EAAS,AAACE,CAAAA,EAAY1E,EAAWyE,CAAM,EAAK/zB,EAC5C+zB,EAAUzE,GAEd,IAAI6E,EAASt/B,KAAKu/B,KAAK,CAACN,EAAS5N,AAtBlB,IAAI,CAsBuBuM,OAAO,CAAGvM,AAtBrC,IAAI,CAsB0CyM,OAAO,EAChE0B,EAAeN,EAAU,EAAI,EAE7B7N,CAzBW,IAAI,CAyBNlmB,IAAI,CAAGA,EACpBkmB,AA1Be,IAAI,CA0BVnmB,EAAE,CAAGA,EACTiuB,GAcD9H,AAzCW,IAAI,CAyCNwL,cAAc,CAACgC,EAAO,CAAC,CAC5BlqB,WAAY2qB,CAChB,GACAjO,AA5CW,IAAI,CA4CNpmB,SAAS,CAAC4zB,EAAO,CAAC,CACvB98B,OAAQm9B,CACZ,GACA7N,AA/CW,IAAI,CA+CN2N,eAAe,CAACH,EAAO,CAAC,CAC7BlqB,WAAY6qB,CAChB,GACAnO,AAlDW,IAAI,CAkDNiL,YAAY,CAAGgD,EACxBjO,AAnDW,IAAI,CAmDN+K,aAAa,CAAG,IAvBzB/K,AA5BW,IAAI,CA4BNwL,cAAc,CAACgC,EAAO,CAAC,CAC5BnqB,WAAY4qB,CAChB,GACAjO,AA/BW,IAAI,CA+BNpmB,SAAS,CAAC4zB,EAAO,CAAC,CACvB/8B,MAAOo9B,CACX,GACA7N,AAlCW,IAAI,CAkCN2N,eAAe,CAACH,EAAO,CAAC,CAC7BnqB,WAAY8qB,CAChB,GACAnO,AArCW,IAAI,CAqCN+K,aAAa,CAAGkD,EACzBjO,AAtCW,IAAI,CAsCNiL,YAAY,CAAG,GAexB4C,GAAW,GACX7N,AAtDW,IAAI,CAsDN2N,eAAe,CAACpV,IAAI,GAG7ByH,AAzDW,IAAI,CAyDN2N,eAAe,CAACD,IAAI,GAGR,CAAA,IAArBj5B,EAAQ25B,QAAQ,GACZt0B,GAAQ,GAAKD,GAAM,EACnBmmB,AA9DO,IAAI,CA8DFnqB,KAAK,CAAC0iB,IAAI,GAGnByH,AAjEO,IAAI,CAiEFnqB,KAAK,CAAC63B,IAAI,IAG3B1N,AApEe,IAAI,CAoEVyN,QAAQ,CAAG,CAAA,EACxB,EAQAtG,EAAUj9B,SAAS,CAACg+B,oBAAoB,CAAG,SAAUmG,CAAS,EAC1D,OAAQ3D,GAAe,IAAI,CAACj2B,OAAO,CAAC00B,UAAU,CAAE,AAAC3+B,IAA+E8jC,GAAG,EAC/H,CAAC,AAAC9jC,IAA+E0zB,aAAa,EAC9F,CAAC,IAAI,CAACzsB,KAAK,CAAC88B,OAAO,GAEnBF,AAAc,YAAdA,GACAA,AAAc,aAAdA,GAEA,CAAC/D,GAAkB+D,EAC3B,EACAlH,EAAUj9B,SAAS,CAAC8hC,UAAU,CAAG,SAAUjhC,CAAC,EAGxC,IAFI2L,EAEA01B,EAAkB,AAAC,CAAA,AAAkC,OAAjC11B,CAAAA,EAAKspB,AADd,IAAI,CACmBvuB,KAAK,CAACu7B,OAAO,AAAD,GAAet2B,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGu2B,SAAS,CAACliC,EAAC,GAAMA,EAC1GoM,EAAQ6oB,AAFG,IAAI,CAEEnmB,EAAE,CAAGmmB,AAFX,IAAI,CAEgBlmB,IAAI,CACnCmlB,EAAMe,AAHK,IAAI,CAGAzzB,CAAC,CAAGyzB,AAHR,IAAI,CAGaiL,YAAY,CACxC1uB,EAAOyjB,AAJI,IAAI,CAIC1zB,CAAC,CAAG0zB,AAJT,IAAI,CAIc+K,aAAa,AAC1C,AAAC/K,CALU,IAAI,CAKLvrB,OAAO,CAACqzB,QAAQ,EAAIsE,EAAgBvB,MAAM,CAAG5L,GACtD,CAACe,AANS,IAAI,CAMJvrB,OAAO,CAACqzB,QAAQ,EAAIsE,EAAgBxB,MAAM,CAAGruB,EAExDyjB,AARW,IAAI,CAQN1lB,cAAc,CAAC0lB,AARb,IAAI,CAQkBlmB,IAAI,CAAG3C,EAAO6oB,AARpC,IAAI,CAQyCnmB,EAAE,CAAG1C,GAI7D6oB,AAZW,IAAI,CAYN1lB,cAAc,CAAC0lB,AAZb,IAAI,CAYkBlmB,IAAI,CAAG3C,EAAO6oB,AAZpC,IAAI,CAYyCnmB,EAAE,CAAG1C,GAEjEqzB,GAde,IAAI,CAcW,UAAW,CACrC1wB,KAAMkmB,AAfK,IAAI,CAeAlmB,IAAI,CACnBD,GAAImmB,AAhBO,IAAI,CAgBFnmB,EAAE,CACfU,QAAS,YACTC,SAAUzP,CACd,EACJ,EAQAo8B,EAAUj9B,SAAS,CAACgsB,MAAM,CAAG,SAAUzhB,CAAO,EAC1C,IAAI,CAACoH,OAAO,GACZ,IAAI,CAACE,IAAI,CAAC,IAAI,CAACtK,KAAK,CAAC6E,QAAQ,CAAEm0B,GAAgB,CAAA,EAAM,IAAI,CAACh2B,OAAO,CAAEA,GAAU,IAAI,CAAChD,KAAK,CAC3F,EASA01B,EAAUj9B,SAAS,CAACoQ,cAAc,CAAG,SAAUR,CAAI,CAAED,CAAE,EAC/CA,EAAK,IACLC,EAAOswB,GAAuB,EAAIA,GAAuBvwB,EAAKC,IAC9DD,EAAK,GAELC,EAAO,IACPD,EAAKuwB,GAAuBvwB,EAAKC,GACjCA,EAAO,GAEX,IAAI,CAACA,IAAI,CAAGA,EACZ,IAAI,CAACD,EAAE,CAAGA,CACd,EAMAstB,EAAU+C,cAAc,CAAGnB,GACpB5B,CACX,GAMA+C,CAAAA,GAAetwB,SAAS,CAAG6wB,GAAgB,CAAA,EAAMtD,GAAU+C,cAAc,CAAEA,GAAetwB,SAAS,EASnG,IAAI40B,GAAuHxlC,EAAoB,KAC3IylC,GAA2IzlC,EAAoBI,CAAC,CAAColC,IAYjKE,GAAgD,WAShD,MAAOA,AARPA,CAAAA,GAAW9kC,OAAO+kC,MAAM,EAAI,SAASC,CAAC,EAClC,IAAK,IAAI71B,EAAG1L,EAAI,EAAGjE,EAAI2R,UAAUzN,MAAM,CAAED,EAAIjE,EAAGiE,IAE5C,IAAK,IAAImI,KADTuD,EAAIgC,SAAS,CAAC1N,EAAE,CACKzD,OAAOM,SAAS,CAACC,cAAc,CAACC,IAAI,CAAC2O,EAAGvD,IACzDo5B,CAAAA,CAAC,CAACp5B,EAAE,CAAGuD,CAAC,CAACvD,EAAE,AAAD,EAElB,OAAOo5B,CACX,CAAA,EACgB9zB,KAAK,CAAC,IAAI,CAAEC,UAChC,EAII8zB,GAA2B,AAACrkC,IAA+E0/B,cAAc,CAEzH4E,GAA0B,AAACtkC,IAA+E0zB,aAAa,CAKvHiF,GAAU,AAACsL,KAA+HvkC,SAAS,CAACi5B,OAAO,CAE3J4L,GAAqB,AAACvkC,IAA+E0Q,QAAQ,CAAE8zB,GAAQ,AAACxkC,IAA+EwkC,KAAK,CAAEC,GAAyB,AAACzkC,IAA+Ew2B,YAAY,CAAEkO,GAAoB,AAAC1kC,IAA+EyK,OAAO,CAAEk6B,GAAoC,AAAC3kC,IAA+E+/B,uBAAuB,CAAE6E,GAAQ,AAAC5kC,IAA+E4kC,KAAK,CAAEC,GAAmB,AAAC7kC,IAA+Ei8B,MAAM,CAAE6I,GAAiB,AAAC9kC,IAA+E0K,IAAI,CAAEq6B,GAAsB,AAAC/kC,IAA+E2K,SAAS,CAAEq6B,GAAU,AAAChlC,IAA+EglC,OAAO,CAAEC,GAAqB,AAACjlC,IAA+E2uB,QAAQ,CAAEuW,GAAkB,AAACllC,IAA+E4zB,KAAK,CAAEuR,GAAiB,AAACnlC,IAA+E6G,IAAI,CAAEu+B,GAAwB,AAACplC,IAA+E8Q,WAAW,CAAEu0B,GAAQ,AAACrlC,IAA+EqlC,KAAK,CAYzlD,SAASC,GAAOC,CAAO,EAEnB,IAAK,IADD7D,EAAO,EAAE,CACJtnB,EAAK,EAAGA,EAAK7J,UAAUzN,MAAM,CAAEsX,IACpCsnB,CAAI,CAACtnB,EAAK,EAAE,CAAG7J,SAAS,CAAC6J,EAAG,CAFhC,IAIIorB,EAAU,EAAE,CAACj/B,MAAM,CAAC3G,IAAI,CAAC8hC,EACzBuD,IACJ,GAAIO,EAAQ1iC,MAAM,CACd,OAAOqB,IAAI,CAACohC,EAAQ,CAACj1B,KAAK,CAAC,EAAGk1B,EAEtC,CAgBA,IAAIC,GAA2B,WAM3B,SAASA,EAAUx+B,CAAK,EACpB,IAAI,CAACy+B,OAAO,CAAG,CAAA,EACf,IAAI,CAACvR,eAAe,CAAG,EACvB,IAAI,CAAC5iB,IAAI,CAACtK,EACd,CA2gDA,OArgDAw+B,EAAUt7B,OAAO,CAAG,SAAUC,CAAU,CAAEgtB,CAAS,CAAEgF,CAAW,EAC5DuJ,GAA4Cv7B,EAAYq7B,GACxDG,GAAuCx7B,EAAYgtB,EAAWgF,EAClE,EAwBAqJ,EAAU/lC,SAAS,CAACmmC,UAAU,CAAG,SAAU/jC,CAAC,CAAEkT,CAAK,CAAEqf,CAAQ,CAAEyR,CAAI,EAC/D,IACI5/B,EAAS8tB,AADG,IAAI,CACGY,gBAAgB,CAAC8D,OAAO,CAACxyB,MAAM,CAEtD8tB,AAHgB,IAAI,CAGV0E,OAAO,CAAC1jB,EAAM,CAAC8wB,EAAK,CAACzR,EAAW,CACtCxb,WAAY1U,KAAKgtB,KAAK,CAAC6C,AAJX,IAAI,CAIiBjiB,IAAI,CAAGiiB,AAJ5B,IAAI,CAIkC9tB,MAAM,CAAG,GAC3D4S,WAAY3U,KAAKgtB,KAAK,CAAC6C,AALX,IAAI,CAKiBS,GAAG,CAAGnwB,SAASxC,EAAG,IAAM,GAAMoE,EACnE,EAAI,CACA2S,WAAY1U,KAAKgtB,KAAK,CAAC6C,AAPX,IAAI,CAOiBjiB,IAAI,CAAGzN,SAASxC,EAAG,KACpDgX,WAAY3U,KAAKgtB,KAAK,CAAC6C,AARX,IAAI,CAQiBS,GAAG,CAAGT,AAR3B,IAAI,CAQiC9tB,MAAM,CAAG,EAAIA,EAAS,EAAI,EAC/E,EACJ,EAmBAu/B,EAAU/lC,SAAS,CAACqmC,WAAW,CAAG,SAAUC,CAAS,CAAEC,CAAS,CAAE5R,CAAQ,CAAEyR,CAAI,EAC5E,IAGII,EACAvF,EAJkBlI,EAAazE,AAAnB,IAAI,CAAyBY,gBAAgB,CAAC6D,UAAU,CAAEQ,EAAejF,AAAzE,IAAI,CAA+Enc,OAAO,CAACT,WAAW,GAAI+uB,EAAclN,EAAe,EAAGmN,EAAoB,AAACnN,EAAe,EAAK,EAC/L7E,EAAmBJ,AADP,IAAI,CACaI,gBAAgB,CAAEiS,EAAgBrS,AADnD,IAAI,CACyDoJ,IAAI,CAAEkJ,EAAetS,AADlF,IAAI,CACwFS,GAAG,CAAEvuB,EAAS8tB,AAD1G,IAAI,CACgH9tB,MAAM,CAAEqgC,EAAUD,EAAeH,EAAaK,EAAUF,EAAepgC,EACvM6L,EAAOiiB,AAFK,IAAI,CAECjiB,IAAI,CAGrBsiB,GACA6R,EAAcI,EAAeL,EAAYG,EACzCH,EAAYK,EAAeN,EAAYI,EACvCzF,EAAO,CACH,CACI,IACA5uB,EAAO7L,EACPogC,EAAelS,EAAmBgS,EACrC,CAED,CAAC,IAAKr0B,EAAO7L,EAAQggC,EAAY,CACjC,CAAC,IAAKn0B,EAAMm0B,EAAY,CACxB,CAAC,IAAKn0B,EAAMk0B,EAAU,CACtB,CAAC,IAAKl0B,EAAO7L,EAAQ+/B,EAAU,CAC/B,CACI,IACAl0B,EAAO7L,EACPogC,EAAeD,EAAgBjS,EAClC,CACJ,CACGqE,GACAkI,EAAK39B,IAAI,CAET,CAAC,IAAK+O,EAAO7L,EAAQggC,EAAcC,EAAY,CAE/C,CACI,IACAp0B,EAAO7L,EACP+/B,EAAYE,EACf,IAILp0B,GAAQqiB,EACR4R,GAAaj0B,EAAOqiB,EAAmBgS,EACvCH,GAAal0B,EAAOqiB,EAAmBgS,EACvCzF,EAAO,CAEH,CAAC,IAAK5uB,EAAMw0B,EAAQ,CAEpB,CAAC,IAAKP,EAAWO,EAAQ,CAEzB,CAAC,IAAKP,EAAWQ,EAAQ,CAEzB,CAAC,IAAKP,EAAWO,EAAQ,CAEzB,CAAC,IAAKP,EAAWM,EAAQ,CAEzB,CACI,IACAx0B,EAAOs0B,EAAgBjS,AAAmB,EAAnBA,EACvBmS,EACH,CACJ,CACG9N,GACAkI,EAAK39B,IAAI,CAET,CAAC,IAAKgjC,EAAYG,EAAaI,EAAQ,CAEvC,CAAC,IAAKN,EAAYE,EAAaI,EAAQ,GAG/CvS,AAnEgB,IAAI,CAmEVnc,OAAO,CAACiuB,EAAK,CAAC,CACpB/mC,EAAG4hC,CACP,EACJ,EAmBA8E,EAAU/lC,SAAS,CAAC+mC,SAAS,CAAG,SAAUT,CAAS,CAAEC,CAAS,CAAE5R,CAAQ,CAAEyR,CAAI,EAC1E,IAII5/B,EACAD,EACAnE,EACAC,EANAgQ,EAAOiiB,AADK,IAAI,CACCjiB,IAAI,CACrB0iB,EAAMT,AAFM,IAAI,CAEAS,GAAG,CACnBiS,EAAkB1S,AAHN,IAAI,CAGY9tB,MAAM,CAOlCmuB,GACAvyB,EAAI,CAACiQ,EAAMA,EAAMA,EAAK,CACtBhQ,EAAI,CAAC0yB,EAAKA,EAAMuR,EAAWvR,EAAMwR,EAAU,CAC3ChgC,EAAQ,CAACygC,EAAiBA,EAAiBA,EAAgB,CAC3DxgC,EAAS,CACL8/B,EACAC,EAAYD,EACZhS,AAjBQ,IAAI,CAiBFoJ,IAAI,CAAG6I,EACpB,GAGDnkC,EAAI,CAACiQ,EAAMA,EAAOi0B,EAAWj0B,EAAOk0B,EAAU,CAC9ClkC,EAAI,CAAC0yB,EAAKA,EAAKA,EAAI,CACnBxuB,EAAQ,CACJ+/B,EACAC,EAAYD,EACZhS,AA1BQ,IAAI,CA0BFoJ,IAAI,CAAG6I,EACpB,CACD//B,EAAS,CAACwgC,EAAiBA,EAAiBA,EAAgB,EAEhE1S,AA9BgB,IAAI,CA8BV2S,MAAM,CAAC3+B,OAAO,CAAC,SAAU4+B,CAAK,CAAE/jC,CAAC,EACvC+jC,CAAK,CAACd,EAAK,CAAC,CACRhkC,EAAGA,CAAC,CAACe,EAAE,CACPd,EAAGA,CAAC,CAACc,EAAE,CACPoD,MAAOA,CAAK,CAACpD,EAAE,CACfqD,OAAQA,CAAM,CAACrD,EAAE,AACrB,EACJ,EACJ,EAeA4iC,EAAU/lC,SAAS,CAACmnC,cAAc,CAAG,WAGjC,IAFI36B,EACAC,EACA6nB,EAAY,IAAI,CAChBY,EAAmBZ,EAAUY,gBAAgB,CAC7C6D,EAAa7D,EAAiB6D,UAAU,CACxCxxB,EAAQ+sB,EAAU/sB,KAAK,CACvBotB,EAAWptB,EAAMotB,QAAQ,CACzBvoB,EAAW7E,EAAM6E,QAAQ,CACzBg7B,EAAc,CACVz/B,OAAQgtB,EAAW,YAAc,WACrC,EAEA0S,EAAiB,AAAoC,OAAnC76B,CAAAA,EAAK8nB,EAAU+S,cAAc,AAAD,GAAe76B,AAAO,KAAK,IAAZA,EAAgBA,EAAM8nB,EAAU+S,cAAc,CAAGj7B,EACzGs2B,CAAC,CAAC,aACF1oB,IAAI,CAAC,CACNM,OAAQ,EACRoX,WAAY,QAChB,GACK7uB,GAAG,GAkCZ,GAhCA,CACI,CAACk2B,EACDA,EACA,CAACA,EACJ,CAACzwB,OAAO,CAAC,SAAUg/B,CAAO,CAAEhyB,CAAK,EAE9B,IADI9I,EACA06B,EAAQ,AAAmC,OAAlC16B,CAAAA,EAAK8nB,EAAU2S,MAAM,CAAC3xB,EAAM,AAAD,GAAe9I,AAAO,KAAK,IAAZA,EAAgBA,EAAM8nB,EAAU2S,MAAM,CAAC3xB,EAAM,CAAGlJ,EAASiO,IAAI,GAC3G5X,QAAQ,CAAC,4BACT6S,CAAAA,AAAU,IAAVA,EAAc,UAAY,UAAS,GACnCzS,GAAG,CAACwkC,EACR9/B,CAAAA,EAAMgT,UAAU,GACjB2sB,EAAMltB,IAAI,CAAC,CACP2oB,KAAM2E,EAAUpS,EAAiBkE,QAAQ,CAAG,eAChD,GACc,IAAV9jB,GACA4xB,EAAMzmC,GAAG,CAAC2mC,GAGtB,GAEK9S,EAAUnc,OAAO,EAClBmc,CAAAA,EAAUnc,OAAO,CAAG/L,EAAS60B,IAAI,GAC5Bx+B,QAAQ,CAAC,gCACTI,GAAG,CAACwkC,EAAc,EAEtB9/B,EAAMgT,UAAU,EACjB+Z,EAAUnc,OAAO,CAAC6B,IAAI,CAAC,CACnB,eAAgBkb,EAAiBqE,YAAY,CAC7ChiB,OAAQ2d,EAAiBoE,YAAY,AACzC,GAGA,AAAoC,OAAnC7sB,CAAAA,EAAKyoB,EAAiB8D,OAAO,AAAD,GAAevsB,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAG2K,OAAO,CAAE,CACjF,IAAImwB,EAAmBrS,EAAiB8D,OAAO,CAC3CwO,EAAWD,EAAiB/gC,MAAM,CAClCihC,EAAUF,EAAiBhhC,KAAK,CACpC,CAAC,EAAG,EAAE,CAAC+B,OAAO,CAAC,SAAUgN,CAAK,EAE1B,IADI9I,EACAk7B,EAAaH,EAAiBtO,OAAO,CAAC3jB,EAAM,CAChD,GAAI,AAACgf,EAAU0E,OAAO,CAAC1jB,EAAM,EACzBgf,EAAU0E,OAAO,CAAC1jB,EAAM,CAACqyB,SAAS,GAAKD,EAatC,CAAA,GAAI,CAACpT,EAAU0E,OAAO,CAAC1jB,EAAM,CAACsyB,KAAK,EACpCtT,EAAU0E,OAAO,CAAC1jB,EAAM,CAACoyB,UAAU,GAAKA,EAAY,CACpD,IACIzG,EAAO4G,AADI5O,EAAO,CAACyO,EAAW,CACdxnC,IAAI,CAAC+4B,GAAS,CAACwO,EAAU,EAAI,EAAG,EAChDA,EACAD,GACJlT,EAAU0E,OAAO,CAAC1jB,EAAM,CAAC0E,IAAI,CAAC,CAC1B3a,EAAG4hC,CACP,GACA3M,EAAU0E,OAAO,CAAC1jB,EAAM,CAACoyB,UAAU,CAAGA,CAC1C,CAAA,MArBI,AAAoC,OAAnCl7B,CAAAA,EAAK8nB,EAAU0E,OAAO,CAAC1jB,EAAM,AAAD,GAAe9I,AAAO,KAAK,IAAZA,GAAyBA,EAAGmF,OAAO,GAC/E2iB,EAAU0E,OAAO,CAAC1jB,EAAM,CAAGlJ,EAAS07B,MAAM,CAACJ,EAAY,CAACD,EAAU,EAAI,EAAG,EAAGA,EAASD,EAAUD,GAG/FjT,EAAU0E,OAAO,CAAC1jB,EAAM,CAAC0E,IAAI,CAAC,CAAEM,OAAQ,EAAIhF,CAAM,GAC7C7S,QAAQ,CAAC,2DAEV,CAAC,OAAQ,QAAQ,CAAC6S,EAAM,EAAEzS,GAAG,CAACwkC,GAClC/S,EAAUyT,cAAc,EAcxBxgC,CAAAA,EAAMotB,QAAQ,EACdL,EAAU0E,OAAO,CAAC1jB,EAAM,CAAC0E,IAAI,CAAC,CAC1BF,SAAU,GACVkuB,gBAAiBvjC,KAAKu/B,KAAK,CAAC,CAACyD,EAAU,GACvCQ,gBAAiB,AAACT,CAAAA,EAAWC,CAAM,EAAK,CAC5C,GAEClgC,EAAMgT,UAAU,EACjB+Z,EAAU0E,OAAO,CAAC1jB,EAAM,CACnB0E,IAAI,CAAC,CACN2oB,KAAM4E,EAAiBrO,eAAe,CACtC3hB,OAAQgwB,EAAiBpO,WAAW,CACpC,eAAgBoO,EAAiB5vB,SAAS,CAC1CpR,MAAOghC,EAAiBhhC,KAAK,CAC7BC,OAAQ+gC,EAAiB/gC,MAAM,CAC/BpE,EAAG,CAACqlC,EAAU,EAAI,EAClBplC,EAAG,CACP,GACK5B,GAAG,CAAC2mC,EAEjB,EACJ,CACJ,EAUArB,EAAU/lC,SAAS,CAACgsB,MAAM,CAAG,SAAUzhB,CAAO,CAAEwrB,CAAM,EAGlD,IAFIvpB,EACAC,EAEAy7B,EACAC,EAFAjsB,EAAQ,IAAI,AAGD,MAAK,IAAhB6Z,GAAqBA,CAAAA,EAAS,CAAA,CAAI,EACtC,IAAIxuB,EAAQ,IAAI,CAACA,KAAK,CAClB6gC,EAAiB7gC,EAAMgD,OAAO,CAAChD,KAAK,CAACotB,QAAQ,GACxC,CAAA,AAA2B,OAA1BuT,CAAAA,EAAK3gC,EAAMmI,SAAS,AAAD,GAAew4B,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAG39B,OAAO,CAACqzB,QAAQ,AAAD,EAKvF,GAJA4H,GAAgB,CAAA,EAAMj+B,EAAMgD,OAAO,CAAC+pB,SAAS,CAAE/pB,GAC/C,IAAI,CAAC2qB,gBAAgB,CAAG3tB,EAAMgD,OAAO,CAAC+pB,SAAS,EAAI,CAAC,EACpD,IAAI,CAAC+T,WAAW,GAEZrD,GAAkBz6B,EAAQ6M,OAAO,GAAKgxB,EAGtC,OAFA,IAAI,CAACz2B,OAAO,GACZ,IAAI,CAAC22B,gBAAgB,CAAG/9B,EAAQ6M,OAAO,EAAI,IAAI,CAACkxB,gBAAgB,CACzD,IAAI,CAACz2B,IAAI,CAACtK,GAErB,GAAI,IAAI,CAAC+gC,gBAAgB,GACrB,IAAI,CAACtC,OAAO,CAAG,CAAA,EACoB,CAAA,IAA/Bz7B,EAAQg+B,kBAAkB,EAC1B,IAAI,CAACC,UAAU,CAAClgC,OAAO,CAAC,SAAU6C,CAAM,EACpCu6B,GAAsBv6B,EAAQ,cAAe+Q,EAAMusB,kBAAkB,CACzE,EAAG,IAAI,EAEPl+B,EAAQg+B,kBAAkB,EAC1B,IAAI,CAACC,UAAU,CAAClgC,OAAO,CAAC,SAAU6C,CAAM,EACpCA,EAAOu9B,cAAc,CAACplC,IAAI,CAACuhC,GAAmB15B,EAAQ,cAAe+Q,EAAMusB,kBAAkB,EACjG,EAAG,IAAI,EAGPl+B,CAAAA,EAAQY,MAAM,EAAIZ,EAAQi+B,UAAU,AAAD,GACnC,IAAI,CAACjU,aAAa,CAAC,KAAK,EAAG,CAAA,GAG3BhqB,EAAQ/D,MAAM,EAAI+D,EAAQiF,KAAK,EAAIjF,EAAQkF,KAAK,EAAE,CAClD,IAAI,CAACjJ,MAAM,CAAG,AAA0B,OAAzB2hC,CAAAA,EAAK59B,EAAQ/D,MAAM,AAAD,GAAe2hC,AAAO,KAAK,IAAZA,EAAgBA,EAAK,IAAI,CAAC3hC,MAAM,CAChF,IAAImiC,EAAU,IAAI,CAACC,eAAe,GAClC,IAAI,CAACp5B,KAAK,CAACwc,MAAM,CAACwY,GAASA,GAAS,CAAC,EAAGj6B,EAAQiF,KAAK,EAAIhD,CAAAA,AAA2BA,CAA3BA,EAAK,CAAEm8B,QAASA,CAAQ,CAAA,CAAK,CAACphC,EAAMotB,QAAQ,CAAG,QAAU,SAAS,CAAG,IAAI,CAACnuB,MAAM,CAAEgG,CAAE,CAACjF,EAAMotB,QAAQ,CAAG,SAAW,QAAQ,CAAG,KAAK,EAAGnoB,CAAC,GAAK,CAAA,GACnM,IAAI,CAACiD,KAAK,CAACuc,MAAM,CAACwY,GAASA,GAAS,CAAC,EAAGj6B,EAAQkF,KAAK,EAAIhD,CAAAA,AAASA,CAATA,EAAK,CAAC,CAAA,CAAK,CAAClF,EAAMotB,QAAQ,CAAG,QAAU,SAAS,CAAG,IAAI,CAACnuB,MAAM,CAAEiG,CAAC,GAAK,CAAA,EACnI,CAEAspB,GACAxuB,EAAMwuB,MAAM,EAEpB,EAeAgQ,EAAU/lC,SAAS,CAACu2B,MAAM,CAAG,SAAU7xB,CAAG,CAAEwI,CAAG,CAAE4qB,CAAK,CAAEC,CAAK,EACzD,IAWI8Q,EACAhI,EACAE,EAEA4F,EACAP,EAfA7+B,EAAQ+sB,AADI,IAAI,CACE/sB,KAAK,CACvBiI,EAAQ8kB,AAFI,IAAI,CAEE9kB,KAAK,CACvB2oB,EAAa3oB,EAAM2oB,UAAU,EAAI,EACjC2Q,EAAiBt5B,EAAM2nB,aAAa,CAAC4R,IAAI,CAAGxhC,EAAMiI,KAAK,CAAC,EAAE,CAAGA,EAC7D84B,EAAmBhU,AALP,IAAI,CAKagU,gBAAgB,CAC7C/E,EAAWjP,AANC,IAAI,CAMKiP,QAAQ,CAC7B5O,EAAWptB,EAAMotB,QAAQ,CACzBqU,EAAWzhC,EAAMiI,KAAK,CAAC,EAAE,CAACw5B,QAAQ,CAClCC,EAAW1hC,EAAMiI,KAAK,CAAC,EAAE,CAACjF,OAAO,CAAC0+B,QAAQ,CAC1CvU,EAAmBJ,AAVP,IAAI,CAUaI,gBAAgB,CAI7CD,EAAkBH,AAdN,IAAI,CAcYG,eAAe,CAI/C,GAAI,CAAA,IAAI,CAAC4O,UAAU,EAAK2B,GAAkBlN,IAU1C,GAPI,IAAI,CAACkO,OAAO,EAEZ,IAAI,CAACmB,cAAc,GAEvBziC,EAAMqgC,GAAuBrgC,EAAMyzB,EAAa,GAChDjrB,EAAM63B,GAAuB73B,EAAMirB,EAAa,GAE5C,CAACoN,GAAmB7gC,IAAQ,CAAC6gC,GAAmBr4B,GAAM,CAGtD,IAAIq2B,EAKA,OAJAzL,EAAQ,EACRC,EAAQ0N,GAAej2B,EAAMjJ,KAAK,CAAEuiC,EAAeviC,KAAK,CAKhE,CACA+tB,AAvCgB,IAAI,CAuCVjiB,IAAI,CAAGozB,GAAej2B,EAAM6C,IAAI,CAE1C9K,EAAM0tB,QAAQ,CAAGP,EACZC,CAAAA,EAAWptB,EAAM2hC,SAAS,CAAG,CAAA,GAClC,IAAI3C,EAAYjS,AA3CA,IAAI,CA2CMoJ,IAAI,CAAGiJ,EAAgBlB,GAAej2B,EAAMhG,GAAG,CAAE,AAACmrB,CAAAA,EAAWptB,EAAM4hC,UAAU,CAAG5hC,EAAM2hC,SAAS,AAAD,EAChH,EAAIxU,GAERmU,EADAlU,EACiBF,EAGAkS,EAAgB,EAAIjS,EAGzCoD,EAAQ2N,GAAe3N,EAAOtoB,EAAMO,QAAQ,CAACrL,EAAK,CAAA,IAClDqzB,EAAQ0N,GAAe1N,EAAOvoB,EAAMO,QAAQ,CAAC7C,EAAK,CAAA,IAE7Cq4B,GAAmBzN,IAAUrzB,KAAKsU,GAAG,CAAC+e,KAAWuF,MAClDvF,EAAQ,EACRC,EAAQ8Q,GAGZ,IAAIzQ,EAAS5oB,EAAM45B,OAAO,CAACtR,EACvB,CAAA,GACAS,EAAS/oB,EAAM45B,OAAO,CAACrR,EACvB,CAAA,GACAsR,EAAe5kC,KAAKsU,GAAG,CAACgsB,GAAuBxM,EAASH,GACxDiR,CAAAA,EAAeL,EACX,IAAI,CAACM,WAAW,CAChBxR,EAAQtoB,EAAMO,QAAQ,CAACwoB,EAASyQ,EAAW7Q,EAAY,CAAA,GAElD,IAAI,CAACoR,YAAY,EACtBxR,CAAAA,EAAQvoB,EAAMO,QAAQ,CAACqoB,EAAS4Q,EAAW7Q,EAAY,CAAA,EAAI,EAG1D6M,GAAkBiE,IACvBlE,GAAuBsE,EAAelR,GAAc8Q,IAChD,IAAI,CAACK,WAAW,CAChBxR,EAAQtoB,EAAMO,QAAQ,CAACwoB,EAAS0Q,EAAW9Q,EAAY,CAAA,GAElD,IAAI,CAACoR,YAAY,EACtBxR,CAAAA,EAAQvoB,EAAMO,QAAQ,CAACqoB,EAAS6Q,EAAW9Q,EAAY,CAAA,EAAI,GAInE7D,AAnFgB,IAAI,CAmFViS,SAAS,CAAGzB,GAAMrgC,KAAKyI,GAAG,CAAC4qB,EAAOC,GAAQ,EAAGwO,GACvDjS,AApFgB,IAAI,CAoFVgS,SAAS,CAAGxB,GAAMxQ,AApFZ,IAAI,CAoFkBkV,UAAU,CAC5ClV,AArFY,IAAI,CAqFNiS,SAAS,CAAGjS,AArFV,IAAI,CAqFgBkV,UAAU,CAC1C/kC,KAAKC,GAAG,CAACozB,EAAOC,GAAQ,EAAGwO,GAC/BjS,AAvFgB,IAAI,CAuFVrnB,KAAK,CAAGqnB,AAvFF,IAAI,CAuFQiS,SAAS,CAAGjS,AAvFxB,IAAI,CAuF8BgS,SAAS,CAC3DC,EAAY9hC,KAAKgtB,KAAK,CAAC6C,AAxFP,IAAI,CAwFaiS,SAAS,EAC1C,IAAID,EAAY7hC,KAAKgtB,KAAK,CAAC6C,AAzFX,IAAI,CAyFiBgS,SAAS,EAC1CgC,IACAhU,AA3FY,IAAI,CA2FN+S,cAAc,CAACrtB,IAAI,CAAC,CAC1B0X,WAAY,SAChB,GAEA0U,EAAO7C,GAAY,CAACjP,AA/FR,IAAI,CA+Fc+O,UAAU,CAAG,UAAY,OACvD/O,AAhGY,IAAI,CAgGNyS,SAAS,CAACT,EAAWC,EAAW5R,EAAUyR,GACpD9R,AAjGY,IAAI,CAiGN+R,WAAW,CAACC,EAAWC,EAAW5R,EAAUyR,GAClD9R,AAlGQ,IAAI,CAkGFY,gBAAgB,CAAC8D,OAAO,CAAC5hB,OAAO,GAC1Ckd,AAnGQ,IAAI,CAmGF6R,UAAU,CAACG,EAAW,EAAG3R,EAAUyR,GAC7C9R,AApGQ,IAAI,CAoGF6R,UAAU,CAACI,EAAW,EAAG5R,EAAUyR,KAGjD9R,AAvGY,IAAI,CAuGN5kB,SAAS,GACfilB,GACAoM,EAAezM,AAzGP,IAAI,CAyGaS,GAAG,CAAGL,EAC/BmM,EAAgBvM,AA1GR,IAAI,CA0GcjiB,IAAI,CAAGoiB,EAC5B6T,CAAAA,GAAoB,CAACQ,EAAelU,QAAQ,CAAG,EAE5C,AAACkU,CAAAA,EAAenT,WAAW,EAAI,CAAA,EAE3BmT,EAAevK,eAAe,AAAD,EACzC9J,EAAkBkS,EAAgB,EAAIjS,IAGtCqM,EAAezM,AAnHP,IAAI,CAmHaS,GAAG,CAAIuT,CAAAA,EAC5BhU,AApHI,IAAI,CAoHE9tB,MAAM,CAChB,CAACiuB,CAAc,EACnBoM,EAAgBvM,AAtHR,IAAI,CAsHcjiB,IAAI,CAAGqiB,GAGrCJ,AAzHY,IAAI,CAyHN5kB,SAAS,CAACxN,QAAQ,CAAC2+B,EAAeE,EAAc8H,EAAgBpU,GAE1EH,AA3HY,IAAI,CA2HN5kB,SAAS,CAAC0uB,QAAQ,CAG5B9J,AA9HY,IAAI,CA8HNgS,SAAS,CAAIK,CAAAA,GAAiB,CAAA,EAAIrS,AA9HhC,IAAI,CA8HsCiS,SAAS,CAAII,CAAAA,GAAiB,CAAA,IAExFrS,AAhIgB,IAAI,CAgIViP,QAAQ,CAAG,CAAA,EACrB,IAAI,CAACyC,OAAO,CAAG,CAAA,EACfX,GAAoB,IAAI,CAAE,eAC9B,EAOAU,EAAU/lC,SAAS,CAAC+nC,cAAc,CAAG,WACjC,IAIIrG,EACAC,EALArN,EAAY,IAAI,CAChB/sB,EAAQ+sB,EAAU/sB,KAAK,CACvB2O,EAAY3O,EAAM2O,SAAS,CAC3BwyB,EAAiB,EAAE,AAOvBpU,CAAAA,EAAUoN,gBAAgB,CAAGA,EAAmB,SAAU7gC,CAAC,EACvDyzB,EAAUmV,WAAW,CAAC5oC,EAC1B,EACAyzB,EAAUqN,cAAc,CAAGA,EAAiB,SAAU9gC,CAAC,EACnDyzB,EAAUlI,SAAS,CAACvrB,EACxB,EAGA6nC,AADAA,CAAAA,EAAiBpU,EAAUoV,cAAc,CAAC,YAAW,EACtCpmC,IAAI,CAInBuhC,GAAmBt9B,EAAMyH,QAAQ,CAAE,YAAa0yB,GAAmBmD,GAAmB3uB,EAAU6rB,aAAa,CAAE,UAAWJ,GAE1HkD,GAAmBt9B,EAAMyH,QAAQ,CAAE,YAAa0yB,GAAmBmD,GAAmB3uB,EAAU6rB,aAAa,CAAE,WAAYJ,IAC3H+G,EAAexrB,MAAM,CAACoX,EAAUoV,cAAc,CAAC,eAC/CpV,EAAUoU,cAAc,CAAGA,EAEvBpU,EAAUnpB,MAAM,EAAImpB,EAAUnpB,MAAM,CAAC,EAAE,EACvCu9B,EAAeplC,IAAI,CAACuhC,GAAmBvQ,EAAUnpB,MAAM,CAAC,EAAE,CAACqE,KAAK,CAAE,gBAAiB,WAC/EjI,EAAM+sB,SAAS,CAACqV,2BAA2B,EAC/C,GAER,EAcA5D,EAAU/lC,SAAS,CAAC0pC,cAAc,CAAG,SAAUvd,CAAS,EACpD,IAAImI,EAAY,IAAI,CAChBsV,EAAS,EAAE,CAQf,MAPA,CAAC,SAAU,UAAU,CAACthC,OAAO,CAAC,SAAUsG,CAAI,EACxC0lB,CAAS,CAAC1lB,EAAK,CAACtG,OAAO,CAAC,SAAUuhC,CAAa,CAAEv0B,CAAK,EAClDs0B,EAAOtmC,IAAI,CAACuhC,GAAmBgF,EAAcvlC,OAAO,CAAE6nB,EAAW,SAAUtrB,CAAC,EACxEyzB,CAAS,CAAC1lB,EAAO,YAAY,CAAC/N,EAAGyU,EACrC,GACJ,EACJ,GACOs0B,CACX,EAiBA7D,EAAU/lC,SAAS,CAAC8pC,eAAe,CAAG,SAAUjpC,CAAC,CAAEyU,CAAK,EAEpDzU,EAAI,AAAC,CAAA,AAA8B,OAA7B2L,CAAAA,EAAK,IAAI,CAACjF,KAAK,CAACu7B,OAAO,AAAD,GAAet2B,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGu2B,SAAS,CAACliC,EAAC,GAAMA,EACxF,IAFI2L,EAUAyrB,EACAD,EACA+R,EACA13B,EAVA9K,EAAQ+sB,AADI,IAAI,CACE/sB,KAAK,CACvBiI,EAAQ8kB,AAFI,IAAI,CAEE9kB,KAAK,CACvB82B,EAAYhS,AAHA,IAAI,CAGMgS,SAAS,CAC/BK,EAAgBrS,AAJJ,IAAI,CAIUoJ,IAAI,CAC9BzwB,EAAQqnB,AALI,IAAI,CAKErnB,KAAK,CACvB+8B,EAAoB1V,AANR,IAAI,CAMcjiB,IAAI,CAClCquB,EAAS7/B,EAAE6/B,MAAM,AAMjBn5B,CAAAA,EAAMotB,QAAQ,GACd+L,EAAS7/B,EAAE8/B,MAAM,CACjBqJ,EAAoB1V,AAfR,IAAI,CAecS,GAAG,EAEjCzf,AAAU,IAAVA,GAEAgf,AAnBY,IAAI,CAmBN4O,aAAa,CAAGxC,EAC1BpM,AApBY,IAAI,CAoBNkV,UAAU,CAAGv8B,EACvBqnB,AArBY,IAAI,CAqBN2V,UAAU,CAAGvJ,EAAS4F,IAIhCj0B,EAAOquB,EAASsJ,EAAoB/8B,EAAQ,EACxCqI,AAAU,IAAVA,EACAjD,EAAO5N,KAAKyI,GAAG,CAAC,EAAGmF,GAEJ,IAAViD,GAAejD,EAAOpF,GAAS05B,IACpCt0B,EAAOs0B,EAAgB15B,EACnBqnB,AA/BI,IAAI,CA+BE4V,gBAAgB,EAE1B73B,GAAQpF,EACR+qB,EAAW1D,AAlCP,IAAI,CAkCa6V,gBAAgB,GAAGz8B,OAAO,EAI/CuqB,EAAW3D,AAtCP,IAAI,CAsCa6V,gBAAgB,GAAG18B,OAAO,EAGnD4E,IAASi0B,IACThS,AA1CQ,IAAI,CA0CFkV,UAAU,CAAGv8B,EAEnB+3B,GAAkB+E,AADtBA,CAAAA,EAAMv6B,EAAM2nB,aAAa,CAACU,YAAY,CAACxlB,EAAMA,EAAOpF,EAAO+qB,EAAUC,EAAQ,EACnDvzB,GAAG,GACzB2gC,GAAoB,IAAI,CAAE,WAAY,CAClC3gC,IAAKD,KAAKC,GAAG,CAACqlC,EAAIrlC,GAAG,CAAEqlC,EAAI78B,GAAG,EAC9BA,IAAKzI,KAAKyI,GAAG,CAAC68B,EAAIrlC,GAAG,CAAEqlC,EAAI78B,GAAG,EAC9B6oB,OAAQ,CAAA,EACRqU,eAAgB,CACZ/5B,QAAS,WACb,CACJ,IAIhB,EAYA01B,EAAU/lC,SAAS,CAACqqC,gBAAgB,CAAG,SAAUxpC,CAAC,CAAEyU,CAAK,EAErDzU,EAAI,AAAC,CAAA,AAA8B,OAA7B2L,CAAAA,EAAK,IAAI,CAACjF,KAAK,CAACu7B,OAAO,AAAD,GAAet2B,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGu2B,SAAS,CAACliC,EAAC,GAAMA,EACxF,IAFI2L,EAGAjF,EAAQ+sB,AADI,IAAI,CACE/sB,KAAK,CACvB+iC,EAAY/iC,EAAMiI,KAAK,CAAC,EAAE,CAG1B+6B,EAAUjW,AALE,IAAI,CAKI4V,gBAAgB,AACpC50B,AAAU,CAAA,IAAVA,GAEAgf,AARY,IAAI,CAQNgV,WAAW,CAAG,CAAA,EACxBhV,AATY,IAAI,CASNkW,cAAc,CAAGlW,AATf,IAAI,CASqBiS,SAAS,CAC9CjS,AAVY,IAAI,CAUNmW,YAAY,CAAGF,EAAUD,EAAU5lC,GAAG,CAAG4lC,EAAUp9B,GAAG,GAIhEonB,AAdY,IAAI,CAcNiV,YAAY,CAAG,CAAA,EACzBjV,AAfY,IAAI,CAeNkW,cAAc,CAAGlW,AAff,IAAI,CAeqBgS,SAAS,CAC9ChS,AAhBY,IAAI,CAgBNmW,YAAY,CAAGF,EAAUD,EAAUp9B,GAAG,CAAGo9B,EAAU5lC,GAAG,EAEpE6C,EAAM60B,aAAa,CAAC,KAAK,EAC7B,EAUA2J,EAAU/lC,SAAS,CAACypC,WAAW,CAAG,SAAU5oC,CAAC,EAEzC,IADI2L,EAQAk0B,EAPApM,EAAY,IAAI,CAChB/sB,EAAQ+sB,EAAU/sB,KAAK,CACvBo/B,EAAgBrS,EAAUqS,aAAa,CACvC15B,EAAQqnB,EAAUrnB,KAAK,CACvBg9B,EAAa3V,EAAU2V,UAAU,CACjCtV,EAAWptB,EAAMotB,QAAQ,CACzBtiB,EAAOiiB,EAAUjiB,IAAI,CAKrB,CAAA,CAACxR,EAAE4C,OAAO,EAAI5C,AAAuB,IAAvBA,EAAE4C,OAAO,CAAC,EAAE,CAACinC,KAAK,AAAK,IAErChK,EAAS7/B,AADTA,CAAAA,EAAI,AAAC,CAAA,AAAyB,OAAxB2L,CAAAA,EAAKjF,EAAMu7B,OAAO,AAAD,GAAet2B,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGu2B,SAAS,CAACliC,EAAC,GAAMA,CAAAA,EACxE6/B,MAAM,CAEb/L,IACAtiB,EAAOiiB,EAAUS,GAAG,CACpB2L,EAAS7/B,EAAE8/B,MAAM,EAGjBrM,EAAUgV,WAAW,EACrBhV,EAAU+O,UAAU,CAAG,CAAA,EACvB/O,EAAUiC,MAAM,CAAC,EAAG,EAAGmK,EAASruB,EAAMiiB,EAAUkW,cAAc,GAGzDlW,EAAUiV,YAAY,EAC3BjV,EAAU+O,UAAU,CAAG,CAAA,EACvB/O,EAAUiC,MAAM,CAAC,EAAG,EAAGjC,EAAUkW,cAAc,CAAE9J,EAASruB,IAGrDiiB,EAAU4O,aAAa,GAC5B5O,EAAU+O,UAAU,CAAG,CAAA,EACnB3C,EAASuJ,EACTvJ,EAASuJ,EAGJvJ,EACLiG,EAAgBsD,EAAah9B,GAC7ByzB,CAAAA,EAASiG,EAAgBsD,EAAah9B,CAAI,EAE9CqnB,EAAUiC,MAAM,CAAC,EAAG,EAAGmK,EAASuJ,EAAYvJ,EAASuJ,EAAah9B,IAElEqnB,EAAU+O,UAAU,EACpB/O,EAAU5kB,SAAS,EACnB+1B,GAAenR,EAAU5kB,SAAS,CAACnF,OAAO,CAAC00B,UAAU,CAGrD,CAAC2F,IACG,CAAC,IAAI,CAACr9B,KAAK,CAAC88B,OAAO,IACvBxjC,EAAEo9B,OAAO,CAAGp9B,EAAEE,IAAI,CAClBub,WAAW,WACPgY,EAAUlI,SAAS,CAACvrB,EACxB,EAAG,IAGf,EASAklC,EAAU/lC,SAAS,CAACosB,SAAS,CAAG,SAAUvrB,CAAC,EACvC,IAQI0lC,EACAD,EACAqE,EACA3S,EACAC,EACA8R,EAZAxiC,EAAQ+sB,AADI,IAAI,CACE/sB,KAAK,CACvBiI,EAAQ8kB,AAFI,IAAI,CAEE9kB,KAAK,CACvBE,EAAY4kB,AAHA,IAAI,CAGM5kB,SAAS,CAC/BY,EAAWzP,EAAEyP,QAAQ,EAAIzP,EACzB8zB,EAAWptB,EAAMotB,QAAQ,CACzByR,EAAO9R,AANK,IAAI,CAMCiP,QAAQ,EAAI,CAACjP,AANlB,IAAI,CAMwB+O,UAAU,CAC9C,UAAY,OAWpB,CAAA,AAAC/O,AAlBe,IAAI,CAkBT+O,UAAU,EAAK,CAAA,CAAC3zB,GAAa,CAACA,EAAU2zB,UAAU,AAAD,GACxDxiC,AAAc,cAAdA,EAAEwP,OAAO,AAAe,IACxBs6B,EAAgBrW,AApBJ,IAAI,CAoBU6V,gBAAgB,GAEtC7V,AAtBQ,IAAI,CAsBFgS,SAAS,GAAKhS,AAtBhB,IAAI,CAsBsBkW,cAAc,CAChDxS,EAAW1D,AAvBH,IAAI,CAuBSmW,YAAY,CAE5BnW,AAzBG,IAAI,CAyBGiS,SAAS,GAAKjS,AAzBrB,IAAI,CAyB2BkW,cAAc,EACrDvS,CAAAA,EAAW3D,AA1BH,IAAI,CA0BSmW,YAAY,AAAD,EAGhCnW,AA7BQ,IAAI,CA6BFiS,SAAS,GAAKjS,AA7BhB,IAAI,CA6BsBoJ,IAAI,EACtCzF,CAAAA,EAAW3D,AA9BH,IAAI,CA8BS4V,gBAAgB,CACjCS,EAAcj9B,OAAO,CACrBi9B,EAAcl9B,OAAO,AAAD,EAGA,IAAxB6mB,AAnCQ,IAAI,CAmCFgS,SAAS,EACnBtO,CAAAA,EAAW1D,AApCH,IAAI,CAoCS4V,gBAAgB,CACjCS,EAAcl9B,OAAO,CACrBk9B,EAAcj9B,OAAO,AAAD,EAGxBs3B,GAAkB+E,AADtBA,CAAAA,EAAMv6B,EAAM2nB,aAAa,CAACU,YAAY,CAACvD,AAxC3B,IAAI,CAwCiCgS,SAAS,CAAEhS,AAxChD,IAAI,CAwCsDiS,SAAS,CAAEvO,EAAUC,EAAQ,EACzEvzB,GAAG,GACzB2gC,GAAoB,IAAI,CAAE,WAAY,CAClC3gC,IAAKD,KAAKC,GAAG,CAACqlC,EAAIrlC,GAAG,CAAEqlC,EAAI78B,GAAG,EAC9BA,IAAKzI,KAAKyI,GAAG,CAAC68B,EAAIrlC,GAAG,CAAEqlC,EAAI78B,GAAG,EAC9B6oB,OAAQ,CAAA,EACRC,UAAW1B,CAAAA,AA9CP,IAAI,CA8Ca+O,UAAU,EAAW,KAC1C+G,eAAgB,CACZ/5B,QAAS,YACTu6B,UAAW,iBACXt6B,SAAUA,CACd,CACJ,IAGU,cAAdzP,EAAEo9B,OAAO,EACTp9B,AAAc,cAAdA,EAAEo9B,OAAO,EACT3J,CAAAA,AAzDY,IAAI,CAyDNgV,WAAW,CAAGhV,AAzDZ,IAAI,CAyDkBiV,YAAY,CAC1CjV,AA1DQ,IAAI,CA0DF4O,aAAa,CAAG5O,AA1DlB,IAAI,CA0DwBkV,UAAU,CAC1ClV,AA3DI,IAAI,CA2DEmW,YAAY,CAAGnW,AA3DrB,IAAI,CA2D2BkW,cAAc,CAC7ClW,AA5DA,IAAI,CA4DM+O,UAAU,CAAG/O,AA5DvB,IAAI,CA4D6B2V,UAAU,CAAG,IAAG,EAG7D3V,AA/DY,IAAI,CA+DNgU,gBAAgB,EAC1B/C,GAAmBjR,AAhEP,IAAI,CAgEagS,SAAS,GACtCf,GAAmBjR,AAjEP,IAAI,CAiEaiS,SAAS,IACtCD,EAAY7hC,KAAKgtB,KAAK,CAAC6C,AAlEX,IAAI,CAkEiBgS,SAAS,EAC1CC,EAAY9hC,KAAKgtB,KAAK,CAAC6C,AAnEX,IAAI,CAmEiBiS,SAAS,EACtCjS,AApEQ,IAAI,CAoEF2S,MAAM,EAChB3S,AArEQ,IAAI,CAqEFyS,SAAS,CAACT,EAAWC,EAAW5R,EAAUyR,GAEpD9R,AAvEQ,IAAI,CAuEFnc,OAAO,EACjBmc,AAxEQ,IAAI,CAwEF+R,WAAW,CAACC,EAAWC,EAAW5R,EAAUyR,GAEtD9R,AA1EQ,IAAI,CA0EFY,gBAAgB,CAAC8D,OAAO,CAAC5hB,OAAO,EAC1C1X,OAAO4K,IAAI,CAACgqB,AA3EJ,IAAI,CA2EU0E,OAAO,EAAE51B,MAAM,GACjCkxB,AA5EI,IAAI,CA4EE0E,OAAO,CAAC51B,MAAM,GAC5BkxB,AA7EQ,IAAI,CA6EF6R,UAAU,CAACG,EAAW,EAAG3R,EAAUyR,GAC7C9R,AA9EQ,IAAI,CA8EF6R,UAAU,CAACI,EAAW,EAAG5R,EAAUyR,IAGzD,EAOAL,EAAU/lC,SAAS,CAACwiC,YAAY,CAAG,WAC3B,IAAI,CAACkG,cAAc,GACnB,IAAI,CAACA,cAAc,CAACpgC,OAAO,CAAC,SAAUuiC,CAAM,EACxCA,GACJ,GACA,IAAI,CAACnC,cAAc,CAAG,KAAK,GAE/B,IAAI,CAACoC,sBAAsB,EAC/B,EAOA/E,EAAU/lC,SAAS,CAAC8qC,sBAAsB,CAAG,WACzC,IAAItC,EAAa,IAAI,CAACA,UAAU,EAAI,EAAE,AAClC,CAAA,IAAI,CAACF,gBAAgB,EAAIE,CAAU,CAAC,EAAE,GACW,CAAA,IAA7C,IAAI,CAACtT,gBAAgB,CAACqT,kBAAkB,EACxCC,EAAWlgC,OAAO,CAAC,SAAU6C,CAAM,EAC/Bu6B,GAAsBv6B,EAAQ,cAAe,IAAI,CAACs9B,kBAAkB,CACxE,EAAG,IAAI,EAGPD,CAAU,CAAC,EAAE,CAACh5B,KAAK,EACnBk2B,GAAsB8C,CAAU,CAAC,EAAE,CAACh5B,KAAK,CAAE,gBAAiB,IAAI,CAACu7B,sBAAsB,EAGnG,EAMAhF,EAAU/lC,SAAS,CAAC4oC,eAAe,CAAG,WAClC,OAAQ,IAAI,CAACrhC,KAAK,CAACotB,QAAQ,CACvB,CAAC,IAAI,CAACD,gBAAgB,CAAE,EAAG,CAAC,IAAI,CAACA,gBAAgB,CAAE,EAAE,CACrD,CAAC,EAAG,CAAC,IAAI,CAACA,gBAAgB,CAAE,EAAG,IAAI,CAACA,gBAAgB,CAAC,AAC7D,EAOAqR,EAAU/lC,SAAS,CAAC6R,IAAI,CAAG,SAAUtK,CAAK,EAEtC,IADIiF,EACAoV,EAAera,EAAMgD,OAAO,CAC5B2qB,EAAmBtT,EAAa0S,SAAS,EAAI,CAAC,EAC9CgU,EAAmBpT,EAAiB9d,OAAO,CAC3Cof,EAAmB5U,EAAalS,SAAS,EAAI,CAAC,EAC9Cs7B,EAAmBxU,EAAiBpf,OAAO,CAC3C5Q,EAAS8hC,GAAoBpT,EAAiB1uB,MAAM,EAAI,EACxDiuB,EAAkBuW,GAAoBxU,EAAiBhwB,MAAM,EAAI,EACjEkuB,EAAmB8B,EAAiBwI,cAAc,EAAIvK,GAAmB,CAC7E,CAAA,IAAI,CAACuE,OAAO,CAAG,EAAE,CACjB,IAAI,CAACiO,MAAM,CAAG,EAAE,CAChB,IAAI,CAAC1/B,KAAK,CAAGA,EACb,IAAI,CAACgtB,aAAa,GAClB,IAAI,CAAC/tB,MAAM,CAAGA,EACd,IAAI,CAACiuB,eAAe,CAAGA,EACvB,IAAI,CAACC,gBAAgB,CAAGA,EACxB,IAAI,CAACsW,gBAAgB,CAAGA,EACxB,IAAI,CAAC1C,gBAAgB,CAAGA,EACxB,IAAI,CAACpT,gBAAgB,CAAGA,EACxB,IAAI,CAACsB,gBAAgB,CAAGA,EACxB,IAAI,CAAC6R,WAAW,GAChB,IAAI/T,EAAY,IAAI,CAChBkU,EAAalU,EAAUkU,UAAU,CACjCyC,EAAa1jC,EAAMiI,KAAK,CAACpM,MAAM,CAC/B8nC,EAAa3jC,EAAMkI,KAAK,CAACrM,MAAM,CAC/B+nC,EAAY3C,GAAcA,CAAU,CAAC,EAAE,EAAIA,CAAU,CAAC,EAAE,CAACh5B,KAAK,EAC1DjI,EAAMiI,KAAK,CAAC,EAAE,EAAI,CAAEjF,QAAS,CAAC,CAAE,EAExC,GADAhD,EAAM6jC,UAAU,CAAG,CAAA,EACf9W,EAAUgU,gBAAgB,CAAE,CAC5B,IAAIK,EAAU,IAAI,CAACC,eAAe,EAElCtU,CAAAA,EAAU9kB,KAAK,CAAG,GAAKukB,CAAAA,IAAgG,EAAGxsB,EAAOi+B,GAAgB,CAE7I6F,OAAQF,EAAU5gC,OAAO,CAAC8gC,MAAM,CAChCC,QAASH,EAAU5gC,OAAO,CAAC+gC,OAAO,CAClCC,WAAYJ,EAAU5gC,OAAO,CAACghC,UAAU,AAC5C,EAAGrW,EAAiB1lB,KAAK,CAAE,CACvBzO,KAAM,WACN0O,MAAO,AAAkC,OAAjCjD,CAAAA,EAAK0oB,EAAiBzlB,KAAK,AAAD,GAAejD,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGrI,EAAE,CAC/EmR,MAAO21B,EACPxO,WAAY,CAAA,EACZ30B,OAAQ,EACR0jC,mBAAoB,CAAA,EACpB1Q,YAAa,CAAA,EACbC,UAAW,CAAA,EAEXC,WAAYmQ,EAAU5gC,OAAO,CAAC+gC,OAAO,CAAG,EACpCH,EAAU5gC,OAAO,CAACywB,UAAU,CAChCC,WAAYkQ,EAAU5gC,OAAO,CAAC+gC,OAAO,CAAG,EACpCH,EAAU5gC,OAAO,CAAC0wB,UAAU,CAChCwQ,YAAa,CAAA,CACjB,EAAGlkC,EAAMotB,QAAQ,CAAG,CAChBgU,QAASA,EACTpiC,MAAOC,CACX,EAAI,CACAmiC,QAASA,EACTniC,OAAQA,CACZ,GAAI,SACJ8tB,EAAU7kB,KAAK,CAAG,GAAKskB,CAAAA,IAAgG,EAAGxsB,EAAOi+B,GAAgBtQ,EAAiBzlB,KAAK,CAAE,CACrKi8B,WAAY,CAAA,EACZ5jC,OAAQ,EACRwN,MAAO41B,EACPzO,WAAY,CAAA,EACZsB,SAAU0H,GAAgBvQ,EAAiBzlB,KAAK,EAC5CylB,EAAiBzlB,KAAK,CAACsuB,QAAQ,CAAIx2B,EAAMkI,KAAK,CAAC,EAAE,EAAIlI,EAAMkI,KAAK,CAAC,EAAE,CAACsuB,QAAQ,CAAG,CAAA,GACnF0N,YAAa,CAAA,CACjB,EAAGlkC,EAAMotB,QAAQ,CAAG,CAChBpuB,MAAOC,CACX,EAAI,CACAA,OAAQA,CACZ,GAAI,SAEAgiC,GAActT,EAAiB/pB,MAAM,CAACwgC,IAAI,CAC1CrX,EAAUsX,qBAAqB,CAAC,CAAA,GAGH,IAAxBrkC,EAAM4D,MAAM,CAAC/H,MAAM,EACxBkxB,CAAAA,EAAUuX,YAAY,CAAGhH,GAAmBt9B,EAAO,eAAgB,WAE3DA,EAAM4D,MAAM,CAAC/H,MAAM,CAAG,GAAK,CAACkxB,EAAUnpB,MAAM,GAC5CmpB,EAAUC,aAAa,GACvBD,EAAUuX,YAAY,GAE9B,EAAC,EAELvX,EAAU4V,gBAAgB,CAAG,AAAC3iC,EAAMotB,QAAQ,EAAI,CAACL,EAAU9kB,KAAK,CAACuuB,QAAQ,EAAM,CAACx2B,EAAMotB,QAAQ,EAAIL,EAAU9kB,KAAK,CAACuuB,QAAQ,CAE1HzJ,EAAU6S,cAAc,GAExB7S,EAAUyT,cAAc,EAE5B,MAEIzT,EAAU9kB,KAAK,CAAG,CACdjI,MAAOA,EACP4vB,cAAe,CACX4R,KAAM,CAAA,CACV,EACA1Q,UAAW,SAAUhwB,CAAK,CAAEkiC,CAAO,EAC/B,IAAIh+B,EAAOhF,EAAMiI,KAAK,CAAC,EAAE,CAAEu6B,EAAMx9B,EAAK+pB,WAAW,GAAIwV,EAAmBv/B,EAAK/C,GAAG,CAAG,EAAIkrB,EAAkBhwB,EAAMkhC,GAAO,MAAOr5B,EAAKhC,OAAO,CAAC7F,GAAG,CAAEqlC,EAAIr8B,OAAO,EAAGq+B,EAAanG,GAAO,MAAOr5B,EAAKhC,OAAO,CAAC2C,GAAG,CAAE68B,EAAIt8B,OAAO,EAAI/I,EACzN,OAAO6lC,EAEH,AAACliC,EAAQ0jC,EAAaD,EAAoBpnC,EAE1ConC,EAAoBzjC,CAAAA,EAAQ3D,CAAE,EAAKqnC,CAC3C,EACAh8B,SAAU,SAAU1H,CAAK,EACrB,OAAO,IAAI,CAACgwB,SAAS,CAAChwB,EAC1B,EACA+gC,QAAS,SAAU/gC,CAAK,EACpB,OAAO,IAAI,CAACgwB,SAAS,CAAChwB,EAAO,CAAA,EACjC,CACJ,EACAisB,EAAU9kB,KAAK,CAAC2nB,aAAa,CAAC5qB,IAAI,CAAG+nB,EAAU9kB,KAAK,CACpD8kB,EAAU9kB,KAAK,CAAC2nB,aAAa,CAACU,YAAY,CAAI8E,AA9rGGvF,GA8rGsBp3B,SAAS,CAAC63B,YAAY,CAAC4J,IAAI,CAACnN,EAAU9kB,KAAK,CAAC2nB,aAAa,EAGpI,GAAI5vB,EAAMgD,OAAO,CAACmF,SAAS,CAAC0H,OAAO,CAAE,CACjC,IAAI7M,EAAUi7B,GAAgBj+B,EAAMgD,OAAO,CAACmF,SAAS,CAAE,CAAEkuB,SAAUr2B,EAAMotB,QAAQ,AAAC,EAC9E,EAAC4Q,GAAmBh7B,EAAQ+M,MAAM,GAAKgd,EAAUgU,gBAAgB,EACjE/9B,CAAAA,EAAQ+M,MAAM,CAAG/P,EAAMotB,QAAQ,CAAG,GAAK,CAAA,EAE3CptB,EAAMmI,SAAS,CAAG4kB,EAAU5kB,SAAS,CAAG,IAzlCIutB,GAylCoB11B,EAAM6E,QAAQ,CAAE7B,EAAShD,GACzFs9B,GAAmBvQ,EAAU5kB,SAAS,CAAE,UAAW,SAAU7O,CAAC,EAC1D,IAAIoM,EAAQqnB,EAAUoJ,IAAI,CACtB/tB,EAAK1C,EAAQ,IAAI,CAAC0C,EAAE,CACpBC,EAAO3C,EAAQ,IAAI,CAAC2C,IAAI,AAC5B0kB,CAAAA,EAAU+O,UAAU,CAAG/O,EAAU5kB,SAAS,CAAC2zB,UAAU,CACrD/O,EAAUiC,MAAM,CAAC,EAAG,EAAG3mB,EAAMD,GACzB,IAAI,CAACquB,oBAAoB,CAACn9B,EAAEo9B,OAAO,GACnC3hB,WAAW,WACPgY,EAAUlI,SAAS,CAACvrB,EACxB,EAER,EACJ,CAEAyzB,EAAU0X,mBAAmB,GAE7B1X,EAAU2X,cAAc,EAC5B,EAMAlG,EAAU/lC,SAAS,CAACqoC,WAAW,CAAG,WAC9B,IAAInT,EAAmB,IAAI,CAACA,gBAAgB,CACxCoT,EAAmB,IAAI,CAACA,gBAAgB,CACxC/gC,EAAQ,IAAI,CAACA,KAAK,AACtB,CAAA,IAAI,CAACqtB,QAAQ,CAAG6Q,GAAevQ,EAAiBN,QAAQ,CAAEsX,CAAAA,CAAQ,CAAA,CAAC5D,GAAoB/gC,EAAMotB,QAAQ,AAAD,EACxG,EAQAoR,EAAU/lC,SAAS,CAACmqC,gBAAgB,CAAG,SAAUgC,CAAyB,EACtE,IAKIpxB,EALAqxB,EAAW,IAAI,CAAC7kC,KAAK,CAACiI,KAAK,CAAC,EAAE,CAC9BpB,EAAO,IAAI,CAAC7G,KAAK,CAAC6G,IAAI,CACtBi+B,EAAU,IAAI,CAAC78B,KAAK,CACpB88B,EAAiBD,EAAQ9hC,OAAO,CAChCgiC,EAAkBH,EAAS7hC,OAAO,CAStC,OAPK4hC,GAA6BC,AAAqB,OAArBA,EAAS1+B,OAAO,EAC9CqN,CAAAA,EAAM,CACFrN,QAAS+3B,GACTr3B,EAAKwqB,KAAK,CAAC0T,MAAAA,EAAuD,KAAK,EAAIA,EAAe5nC,GAAG,EAAGkhC,GAAO,MAAOx3B,EAAKwqB,KAAK,CAAC2T,EAAgB7nC,GAAG,EAAG0nC,EAAS1+B,OAAO,CAAE2+B,EAAQ3+B,OAAO,CAAE2+B,EAAQ3nC,GAAG,GAC7L+I,QAASg4B,GAAer3B,EAAKwqB,KAAK,CAAC0T,MAAAA,EAAuD,KAAK,EAAIA,EAAep/B,GAAG,EAAG04B,GAAO,MAAOx3B,EAAKwqB,KAAK,CAAC2T,EAAgBr/B,GAAG,EAAGk/B,EAAS3+B,OAAO,CAAE4+B,EAAQ5+B,OAAO,CAAE4+B,EAAQn/B,GAAG,EACzN,CAAA,EAEG6N,CACX,EAaAgrB,EAAU/lC,SAAS,CAACu0B,aAAa,CAAG,SAAUiY,CAAiB,CAAEzW,CAAM,EACnE,IAAIxuB,EAAQ,IAAI,CAACA,KAAK,CAClBihC,EAAa,IAAI,CAACA,UAAU,CAAG,EAAE,CACrCgE,EAAqBA,GACjBjlC,EAAMgD,OAAO,EAAIhD,EAAMgD,OAAO,CAAC+pB,SAAS,CAACkU,UAAU,EAClDjhC,CAAAA,EAAM4D,MAAM,CAAC/H,MAAM,CAEhBgiC,GAAe79B,EAAM4D,MAAM,CAAE,SAAU0D,CAAC,EAAI,MAAQ,CAACA,EAAEtE,OAAO,CAACkyB,UAAU,AAAG,GAAGnnB,KAAK,CACpF,CAAA,EAGR,AAAC/N,CAAAA,EAAM4D,MAAM,EAAI,EAAE,AAAD,EAAG7C,OAAO,CAAC,SAAU6C,CAAM,CAAEhI,CAAC,EAG5C,CAACgI,EAAOZ,OAAO,CAACkyB,UAAU,EACrBtxB,CAAAA,EAAOZ,OAAO,CAACkiC,eAAe,EAC3B,AAACtpC,CAAAA,IAAMqpC,GACHrhC,EAAOZ,OAAO,CAACpG,EAAE,GAAKqoC,CAAgB,GACtCrhC,AAAmC,CAAA,IAAnCA,EAAOZ,OAAO,CAACkiC,eAAe,AAAS,GAC/CjE,EAAWllC,IAAI,CAAC6H,EAExB,GAEI,IAAI,CAACqE,KAAK,EAAI,CAAC,IAAI,CAACA,KAAK,CAAC2nB,aAAa,CAAC4R,IAAI,EAC5C,IAAI,CAAC6C,qBAAqB,CAAC,CAAA,EAAM7V,EAEzC,EAQAgQ,EAAU/lC,SAAS,CAAC4rC,qBAAqB,CAAG,SAAUzK,CAAS,CAAEpL,CAAM,EAGnE,IAFIvpB,EACAC,EAyCAigC,EACAC,EAEAC,EA3CAtY,EAAY,IAAI,CAChB/sB,EAAQ+sB,EAAU/sB,KAAK,CACvBihC,EAAalU,EAAUkU,UAAU,CACjCqE,EAAiB,CACbC,oBAAqB,CAAA,EACrBx3B,MAAO,KACPy3B,SAAU,KACVphC,MAAO,MACPqhC,SAAU,CAAA,EACVx9B,MAAO,AAAuC,OAAtChD,CAAAA,EAAK,IAAI,CAAC0oB,gBAAgB,CAAC1lB,KAAK,AAAD,GAAehD,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGrI,EAAE,CACpFsL,MAAO,AAAuC,OAAtChD,CAAAA,EAAK,IAAI,CAACyoB,gBAAgB,CAACzlB,KAAK,AAAD,GAAehD,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGtI,EAAE,CACpF8oC,aAAc,CAAA,EACdC,SAAU,KAAK,EACfzQ,WAAY,CAAA,EACZ0Q,OAAQ,CACJC,SAAU,CACNtmC,QAAS,CACb,CACJ,CACJ,EAEAumC,EAAkB/Y,EAAUnpB,MAAM,CAC9B,AAACmpB,CAAAA,EAAUnpB,MAAM,EAAI,EAAE,AAAD,EAAGtE,MAAM,CAAC,SAAUymC,CAAS,EAC/C,IAAIC,EAAOD,EAAU9E,UAAU,OACnC,CAAIA,CAAAA,AAA2B,EAA3BA,EAAW1lC,OAAO,CAACyqC,EAAQ,IAGvBA,IACA7H,GAAsB6H,EAAM,cAAejZ,EAAUmU,kBAAkB,EACvE,OAAO8E,EAAKF,eAAe,EAI3BC,EAAU/lC,KAAK,EACf+lC,EAAU37B,OAAO,GAEd,CAAA,EAGf,GAGA67B,EAA8BlZ,EAAUY,gBAAgB,CAAC/pB,MAAM,CAI/Dq9B,GAAcA,EAAWplC,MAAM,EAC/BolC,EAAWlgC,OAAO,CAAC,SAAUilC,CAAI,EAE7B,IADI/gC,EACAihC,EAAkBF,EAAKF,eAAe,CACtCK,EAAiBvI,GAEjB,CACI1tB,MAAO81B,EAAK91B,KAAK,CACjBwF,QAASswB,EAAKtwB,OAAO,AACzB,EAAG,AAACqoB,GAAQkI,GAER7I,GAAyBrQ,SAAS,CAACnpB,MAAM,CADzCqiC,GAIR,GAAIC,CAAAA,GACAnZ,AAAkD,CAAA,IAAlDA,EAAUY,gBAAgB,CAACqT,kBAAkB,EAGjDsE,EAAej+B,IAAI,CAAG,aAAe45B,EAAWplC,MAAM,CAEtDwpC,EAAuBF,AADvBA,CAAAA,EAAca,EAAKhjC,OAAO,EAAI,CAAC,CAAA,EACI2qB,gBAAgB,EAAI,CAAC,EAGxDwY,EAAexT,UAAU,CAAGyL,GAAM+H,EAAexT,UAAU,EAG3DyS,AAFAA,CAAAA,EAAyBnH,GAAgBkH,EAAaG,EAAgBa,EAAgBd,EAAoB,EAEnFzU,UAAU,CAAGsN,GAEpCiI,EAAevV,UAAU,CAAEyU,EAAqBzU,UAAU,CAE1DwM,GAAyBgJ,WAAW,CAAChB,EAAuB5rC,IAAI,EAAI,OAAO,CAACo3B,UAAU,EAGtF,IAAIyV,EAAsBhB,EAAqBjB,IAAI,EAAI+B,EAAe/B,IAAI,AAC1ErX,CAAAA,EAAUuZ,gBAAgB,CACtBvZ,EAAUuZ,gBAAgB,EAAI,CAAC,CAACD,EACpCjB,EAAuBhB,IAAI,CAAIiC,GAC1B,CAAA,AAA4B,OAA3BphC,CAAAA,EAAKkgC,EAAYf,IAAI,AAAD,GAAen/B,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAG3H,KAAK,CAAC,EAAC,EAExE4oC,GAAmBA,EAAgBljC,OAAO,CAC1CkjC,EAAgBzhB,MAAM,CAAC2gB,EAAwB5W,IAG/CwX,EAAKF,eAAe,CAAG9lC,EAAMumC,UAAU,CAACnB,GAExCplC,EAAMwmC,aAAa,GACnBR,EAAKF,eAAe,CAAC7E,UAAU,CAAG+E,EAClCF,EAAgB/pC,IAAI,CAACiqC,EAAKF,eAAe,GAEjD,GAKAG,CAAAA,EAA4B7B,IAAI,EAChC,CAAEnD,CAAAA,GAAcA,EAAWplC,MAAM,AAAD,GAChCkiC,GAAQkI,EAA2B,IACnClZ,EAAUuZ,gBAAgB,CAAG,CAAA,EAI7BL,AAFAA,CAAAA,EACI7H,GAAM6H,EAA2B,EACTllC,OAAO,CAAC,SAAU0lC,CAAiB,CAAE7qC,CAAC,EAC9D0pC,EAAej+B,IAAI,CACf,aAAgBy+B,CAAAA,EAAgBjqC,MAAM,CAAG,CAAA,EAc7CupC,AAbAA,CAAAA,EAAyBnH,GAAgBb,GAAyBrQ,SAAS,CAACnpB,MAAM,CAAE,CAOhFsM,MAAOlQ,EAAM4D,MAAM,CAAChI,EAAE,EAClB,CAACoE,EAAM4D,MAAM,CAAChI,EAAE,CAACoH,OAAO,CAACkyB,UAAU,EACnCl1B,EAAM4D,MAAM,CAAChI,EAAE,CAACsU,KAAK,EACrBlQ,EAAMgD,OAAO,CAAC0jC,MAAM,CAAC9qC,EAAE,EACvBoE,EAAMgD,OAAO,CAAC0jC,MAAM,CAAC,EAAE,AAC/B,EAAGpB,EAAgBmB,EAAiB,EACbrC,IAAI,CAAGqC,EAAkBrC,IAAI,CAChDgB,EAAuBhB,IAAI,GAC3BrX,EAAUuZ,gBAAgB,CAAG,CAAA,EAC7BR,EAAgB/pC,IAAI,CAACiE,EAAMumC,UAAU,CAACnB,IAE9C,IAEAxL,GACA,IAAI,CAAC6K,mBAAmB,EAEhC,EAQAjG,EAAU/lC,SAAS,CAACgsC,mBAAmB,CAAG,WACtC,IAAI9vB,EAAQ,IAAI,CACZoY,EAAY,IAAI,CAChBkU,EAAalU,EAAUkU,UAAU,EAAI,EAAE,AAKvCA,CAAAA,CAAU,CAAC,EAAE,EAAIA,CAAU,CAAC,EAAE,CAACh5B,KAAK,EACpCg5B,CAAU,CAAC,EAAE,CAACE,cAAc,CAACplC,IAAI,CAACuhC,GAAmB2D,CAAU,CAAC,EAAE,CAACh5B,KAAK,CAAE,gBAAiB,IAAI,CAACu7B,sBAAsB,GAE1HvC,EAAWlgC,OAAO,CAAC,SAAUilC,CAAI,EAE7BA,EAAK7E,cAAc,CAACplC,IAAI,CAACuhC,GAAmB0I,EAAM,OAAQ,WAClD,IAAI,CAACF,eAAe,EACpB,IAAI,CAACA,eAAe,CAACa,UAAU,CAAC,CAAA,EAAM,CAAA,EAE9C,IACAX,EAAK7E,cAAc,CAACplC,IAAI,CAACuhC,GAAmB0I,EAAM,OAAQ,WAClD,IAAI,CAACF,eAAe,EACpB,IAAI,CAACA,eAAe,CAACa,UAAU,CAAC,CAAA,EAAO,CAAA,EAE/C,IAGkD,CAAA,IAA9ChyB,EAAMgZ,gBAAgB,CAACqT,kBAAkB,EACrCgF,EAAK/9B,KAAK,EACV+9B,EAAK7E,cAAc,CAACplC,IAAI,CAACuhC,GAAmB0I,EAAM,cAAerxB,EAAMusB,kBAAkB,GAIjG8E,EAAK7E,cAAc,CAACplC,IAAI,CAACuhC,GAAmB0I,EAAM,SAAU,WACpD/E,GACAtD,GAAMsD,EAAY+E,GAElB,IAAI,CAACF,eAAe,EAAI/Y,EAAUnpB,MAAM,GACxC+5B,GAAM5Q,EAAUnpB,MAAM,CAAE,IAAI,CAACkiC,eAAe,EACxCrI,GAAkB,IAAI,CAACqI,eAAe,CAAC9iC,OAAO,GAC9C,IAAI,CAAC8iC,eAAe,CAACznC,MAAM,CAAC,CAAA,GAEhC,OAAO,IAAI,CAACynC,eAAe,CAEnC,GACJ,EACJ,EASAtH,EAAU/lC,SAAS,CAACmuC,gBAAgB,CAAG,SAAUC,CAAgB,EAC7D,OAAO,IAAI,CAAC5F,UAAU,CAACv+B,MAAM,CAAC,SAAUvF,CAAG,CAAEyG,CAAM,EAC/C,IAAIqB,EAEJ,OAAO/H,KAAKC,GAAG,CAACA,EAAK,AAAoC,OAAnC8H,CAAAA,EAAKrB,EAAOkjC,SAAS,CAAC,IAAI,CAAC,EAAE,AAAD,GAAe7hC,AAAO,KAAK,IAAZA,EAAgBA,EAAK9H,EAC1F,EAAG0pC,EACP,EASArI,EAAU/lC,SAAS,CAAC2pC,2BAA2B,CAAG,WAC9C,IAAIn6B,EAAQ,IAAI,CAACA,KAAK,CACtB,GAAI,AAA6B,KAAA,IAAtBA,EAAM8mB,WAAW,CAAkB,CAC1C,IAAIqU,EAAgB,IAAI,CAACR,gBAAgB,CAAC,CAAA,GACtCQ,GACCA,CAAAA,EAAcj9B,OAAO,GAAK8B,EAAM9K,GAAG,EAChCimC,EAAcl9B,OAAO,GAAK+B,EAAMtC,GAAG,AAAD,IACtCsC,EAAM9K,GAAG,CAAGimC,EAAcj9B,OAAO,CACjC8B,EAAMtC,GAAG,CAAGy9B,EAAcl9B,OAAO,CAEzC,CACJ,EAOAs4B,EAAU/lC,SAAS,CAAC+qC,sBAAsB,CAAG,WAEzC,IADIv+B,EAmBA+rB,EACAH,EAlBA9D,EAAYgW,AADA,IAAI,CACM/iC,KAAK,CAAC+sB,SAAS,CACrCga,EAAehE,AAFH,IAAI,CAEShU,WAAW,GACpCiY,EAAUD,EAAa5pC,GAAG,CAC1B8pC,EAAUF,EAAaphC,GAAG,CAC1BuhC,EAAcH,EAAa5gC,OAAO,CAClCghC,EAAcJ,EAAa7gC,OAAO,CAClCR,EAAQuhC,EAAUD,EAClBI,EAAara,EAAUqa,UAAU,CACjCC,EAAata,EAAUsa,UAAU,CACjCrD,EAAa9F,GAAe,AAA6B,OAA5Bj5B,CAAAA,EAAK89B,AAVtB,IAAI,CAU4BgB,OAAO,AAAD,GAAe9+B,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGqiC,iBAAiB,CAACvE,AAVnG,IAAI,CAUyG//B,OAAO,CAACghC,UAAU,EAAG,GAC9I8B,EAAkB/Y,EAAUnpB,MAAM,EAAImpB,EAAUnpB,MAAM,CAAC,EAAE,CACzD2jC,EAAiB,CAAC,CAACxE,AAZP,IAAI,CAYanM,WAAW,AAQxC,EAJYmM,CAAAA,AAhBA,IAAI,CAgBMyE,SAAS,EAC3BzE,AAAgC,wBAAhCA,AAjBQ,IAAI,CAiBFyE,SAAS,CAAC1+B,OAAO,AAAyB,IAMpDs+B,GAEApW,CAAAA,EAASH,AADTA,CAAAA,EAASqW,CAAU,EACDxhC,CAAI,EAItB2hC,IACArW,EAASmW,EAAcnD,EAElBoD,GACDvW,CAAAA,EAAS3zB,KAAKyI,GAAG,CAACuhC,EAClBlW,EAAStrB,EAAOqnB,EAAU6Z,gBAAgB,CAACd,GAAmBA,EAAgB2B,KAAK,CAC/E3B,EAAgB2B,KAAK,CAAC,EAAE,CACxB,CAACzlC,OAAO0lC,SAAS,EAAC,GAI1BH,GAAmBH,CAAAA,GAAcC,CAAS,GACtCrJ,GAAmBnN,KACnBkS,AA1CI,IAAI,CA0CE5lC,GAAG,CAAG4lC,AA1CZ,IAAI,CA0CkB4E,OAAO,CAAG9W,EACpCkS,AA3CI,IAAI,CA2CEp9B,GAAG,CAAGo9B,AA3CZ,IAAI,CA2CkB6E,OAAO,CAAG5W,IAKhDjE,EAAUqa,UAAU,CAChBra,EAAUsa,UAAU,CAAG,IAC/B,EASA7I,EAAU/lC,SAAS,CAACyoC,kBAAkB,CAAG,WACrC,IAAInU,EAAY,IAAI,CAAC/sB,KAAK,CAAC+sB,SAAS,CAEhC+Y,EAAkB,IAAI,CAACA,eAAe,CACtC+B,EAAmB9a,EAAU4V,gBAAgB,CACzCzlC,AAAoC,IAApCA,KAAKgtB,KAAK,CAAC6C,EAAUgS,SAAS,EAC9B7hC,KAAKgtB,KAAK,CAAC6C,EAAUiS,SAAS,GAAK9hC,KAAKgtB,KAAK,CAAC6C,EAAUoJ,IAAI,CAGpEpJ,CAAAA,EAAUsa,UAAU,CAAGnJ,GAAe,IAAI,CAACl+B,KAAK,CAACgD,OAAO,CAAC+pB,SAAS,EAC9D,IAAI,CAAC/sB,KAAK,CAACgD,OAAO,CAAC+pB,SAAS,CAACsa,UAAU,CAAEQ,GAC7C9a,EAAUqa,UAAU,CAAGra,EAAU+a,gBAAgB,CAThC,IAAI,CASyC/a,GAE1D+Y,GAAmB,CAAC/Y,EAAUuZ,gBAAgB,GAC9CR,EAAgB9iC,OAAO,CAAC+kC,UAAU,CAAG9G,AAZxB,IAAI,CAY+B6F,SAAS,CAAC,IAAI,CAAC,EAAE,CACjEhB,EAAgBkC,OAAO,CAAC/G,AAbX,IAAI,CAakBj+B,OAAO,CAACohC,IAAI,CAAE,CAAA,EAAO,KAAM,CAAA,GAEtE,EAOA5F,EAAU/lC,SAAS,CAACqvC,gBAAgB,CAAG,SAAU7G,CAAU,CAAElU,CAAS,EAClE,IAAIkb,EAAWlb,EAAU6Z,gBAAgB,CAAC3F,EAAW6F,SAAS,CAAC,IAAI,CAAC,EAAE,EAClE7+B,EAAQg5B,EAAWh5B,KAAK,CACxBtC,EAAMsC,EAAMtC,GAAG,CACfxI,EAAM8K,EAAM9K,GAAG,CACfuI,EAAQuC,EAAMjF,OAAO,CAAC0C,KAAK,CAiB/B,QAfIs4B,CAAAA,GAAmBr4B,IAAQq4B,GAAmB7gC,EAAG,IAG7CuI,GAASC,EAAMsiC,EAAW,EACbtiC,EAAMsiC,EAAWviC,EAKjBvI,GAAO8qC,EAOhC,EAOAzJ,EAAU/lC,SAAS,CAACisC,cAAc,CAAG,WAC5B,IAAI,CAACvD,cAAc,EACpB,CAAA,IAAI,CAACA,cAAc,CAAG,EAAE,AAAD,EAE3B,IAAI,CAACA,cAAc,CAACplC,IAAI,CAGxBuhC,GAAmB,IAAI,CAACt9B,KAAK,CAAE,SAAU,WACrC,IAAI+sB,EAAY,IAAI,CAACA,SAAS,CAC1B9kB,EAAQ8kB,GAAcA,CAAAA,EAAUkU,UAAU,EACtClU,EAAUkU,UAAU,CAAC,EAAE,EACvBlU,EAAUkU,UAAU,CAAC,EAAE,CAACh5B,KAAK,EAC7B,IAAI,CAACA,KAAK,CAAC,EAAE,AAAD,EACZA,GACA8kB,EAAUiC,MAAM,CAAC/mB,EAAM9K,GAAG,CAC9B8K,EAAMtC,GAAG,CAEjB,GAEA23B,GAAmB,IAAI,CAACt9B,KAAK,CAAE,aAAc,WACzC,IACI+sB,EAAY/sB,AADJ,IAAI,CACM+sB,SAAS,CAC3Bmb,EAAanb,EAAUM,QAAQ,CAC3B,UAAY,cAChBrtB,CAJQ,IAAI,CAINotB,QAAQ,EACd8a,CAAAA,EAAanb,EAAUM,QAAQ,CAC3B,cAAgB,UAAS,EAEjCrtB,AARY,IAAI,AAQX,CAACkoC,EAAW,CACb,AAACloC,CAAAA,AATO,IAAI,AASN,CAACkoC,EAAW,EAAI,CAAA,EAAMnb,CAAAA,EAAUgU,gBAAgB,EAAI,CAAC/gC,AATnD,IAAI,CASqDotB,QAAQ,CACrEL,EAAU9tB,MAAM,CAAG8tB,EAAUG,eAAe,CAC5C,CAAA,EAAKH,EAAUY,gBAAgB,CAAC5d,MAAM,AAClD,GAAIutB,GAAmBkB,EAAW,WAAY,SAAUllC,CAAC,EACrD,IAAI,CAAC0G,KAAK,CAACiI,KAAK,CAAC,EAAE,CAAC2uB,WAAW,CAACt9B,EAAE6D,GAAG,CAAE7D,EAAEqM,GAAG,CAAErM,EAAEk1B,MAAM,CAAEl1B,EAAEm1B,SAAS,CAAEn1B,EAAEupC,cAAc,CACzF,GACJ,EAOArE,EAAU/lC,SAAS,CAAC2R,OAAO,CAAG,WAC1B,IAAIuK,EAAQ,IAAI,CAEhB,IAAI,CAACsmB,YAAY,GACb,IAAI,CAAChzB,KAAK,GACV01B,GAAM,IAAI,CAAC39B,KAAK,CAACiI,KAAK,CAAE,IAAI,CAACA,KAAK,EAClC01B,GAAM,IAAI,CAAC39B,KAAK,CAACmf,IAAI,CAAE,IAAI,CAAClX,KAAK,GAEjC,IAAI,CAACC,KAAK,GACVy1B,GAAM,IAAI,CAAC39B,KAAK,CAACkI,KAAK,CAAE,IAAI,CAACA,KAAK,EAClCy1B,GAAM,IAAI,CAAC39B,KAAK,CAACmf,IAAI,CAAE,IAAI,CAACjX,KAAK,GAGrC,AAAC,CAAA,IAAI,CAACtE,MAAM,EAAI,EAAE,AAAD,EAAG7C,OAAO,CAAC,SAAUuG,CAAC,EAC/BA,EAAE8C,OAAO,EACT9C,EAAE8C,OAAO,EAEjB,GAEA,CACI,SAAU,QAAS,QAAS,SAAU,UAAW,iBACjD,kBAAmB,iBAAkB,YAAa,iBAClD,WACH,CAACrJ,OAAO,CAAC,SAAUvI,CAAI,EAChBmc,CAAK,CAACnc,EAAK,EAAImc,CAAK,CAACnc,EAAK,CAAC4R,OAAO,EAClCuK,CAAK,CAACnc,EAAK,CAAC4R,OAAO,GAEvBuK,CAAK,CAACnc,EAAK,CAAG,IAClB,GAEA,CAAC,IAAI,CAACi5B,OAAO,CAAC,CAAC1wB,OAAO,CAAC,SAAU4H,CAAI,EACjC+0B,GAAkC/0B,EACtC,GACA,IAAI,CAACo4B,gBAAgB,CAAG,CAAA,CAC5B,EACOvC,CACX,IAsBI2J,IACIpxC,EAAgB,SAAUe,CAAC,CAC3B+U,CAAC,EAOD,MAAO9V,AANHA,CAAAA,EAAgBoB,OAAO2U,cAAc,EAChC,CAAA,CAAEC,UAAW,EAAE,AAAC,CAAA,YAAapF,OAAS,SAAU7P,CAAC,CAC1D+U,CAAC,EAAI/U,EAAEiV,SAAS,CAAGF,CAAG,GACd,SAAU/U,CAAC,CACnB+U,CAAC,EAAI,IAAK,IAAI9I,KAAK8I,EAAO1U,OAAOM,SAAS,CAACC,cAAc,CAACC,IAAI,CAACkU,EAC/D9I,IAAIjM,CAAAA,CAAC,CAACiM,EAAE,CAAG8I,CAAC,CAAC9I,EAAE,AAAD,CAAG,CAAA,EACIjM,EAAG+U,EAC5B,EACO,SAAU/U,CAAC,CAAE+U,CAAC,EACjB,GAAI,AAAa,YAAb,OAAOA,GAAoBA,AAAM,OAANA,EAC3B,MAAM,AAAIoK,UAAU,uBAAyBC,OAAOrK,GAAK,iCAE7D,SAASG,IAAO,IAAI,CAACC,WAAW,CAAGnV,CAAG,CADtCf,EAAce,EAAG+U,GAEjB/U,EAAEW,SAAS,CAAGoU,AAAM,OAANA,EAAa1U,OAAO+U,MAAM,CAACL,GAAMG,CAAAA,EAAGvU,SAAS,CAAGoU,EAAEpU,SAAS,CAAE,IAAIuU,CAAG,CACtF,GAYAo7B,GAAgC,AAACrvC,IAA+EuuB,UAAU,CAE1H+gB,GAA4B,AAAC5oC,IAA2HC,MAAM,CAE9J4oC,GAA2B,AAACvvC,IAA+EwkC,KAAK,CAAEgL,GAA0B,AAACxvC,IAA+E6G,IAAI,CAAE4oC,GAAiC,AAACzvC,IAA+E6uB,WAAW,CAE9V6gB,GAAuCxtC,EAAoBP,iBAAiB,CAE5EguC,GAA6CrkC,EAAqBoB,uBAAuB,CAAEkjC,GAA0DtkC,EAAqBC,oCAAoC,CAQ9MskC,GAAoC,SAAUp7B,CAAM,EAEpD,SAASo7B,IACL,OAAOp7B,AAAW,OAAXA,GAAmBA,EAAOnE,KAAK,CAAC,IAAI,CAAEC,YAAc,IAAI,AACnE,CAqNA,OAxNA6+B,GAA2BS,EAAoBp7B,GAQ/Co7B,EAAmBnwC,SAAS,CAAC6R,IAAI,CAAG,WAChC,IAAItK,EAAQ,IAAI,CAACA,KAAK,CAClBoY,EAAY,IAAI,AACpB,CAAA,IAAI,CAACS,SAAS,CAAG,IAtzM2BvE,GAszMPtU,EAAO,UAE5C,IAAI,CAACyJ,QAAQ,CA3EmC+0B,GA2Eb,cAAe,WAC1C,IAAI,CAACx+B,KAAK,GAAKoY,EAAUpY,KAAK,EAC9B,IAAI,CAACA,KAAK,CAAC6E,QAAQ,EACnB2jC,GAA+B,WAC3BpwB,EAAU1N,aAAa,CAClBye,gCAAgC,CAAC,aACtC/Q,EAAUywB,kBAAkB,EAChC,EAAGT,GAA8BG,GAAwB,IAAI,CAACvoC,KAAK,CAAC6E,QAAQ,CAAC0kB,eAAe,CAAE,CAAA,IAAOC,QAAQ,CAErH,EACJ,EAKAof,EAAmBnwC,SAAS,CAAC+R,aAAa,CAAG,WACzC,IACIvF,EACAC,EACAy7B,EAHAhsB,EAAQ,IAAI,CAIZ3U,EAAQ,IAAI,CAACA,KAAK,CAClBgD,EAAUhD,EAAMgD,OAAO,CACvB+pB,EAAY/pB,EAAQ+pB,SAAS,CACjC,GAAIA,EAAUld,OAAO,EAAK,CAAA,AAAmC,OAAlC5K,CAAAA,EAAK8nB,EAAU5nB,aAAa,AAAD,GAAeF,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAG4K,OAAO,AAAD,EAAI,CACvG,IAAIi5B,EAAY9lC,EAAQmC,aAAa,CAAC0J,iBAAiB,CACnDk6B,EAAiB,AACO,OADN7jC,CAAAA,EAAKlC,EAAQC,IAAI,CAC9BkC,aAAa,AAAD,GAAeD,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAG6nB,SAAS,CAACic,UAAU,CAGpF,IAAI,CAACt+B,aAAa,CAACqgB,WAAW,CAAC,aAC/B,IAAI,CAACrgB,aAAa,CAACiX,QAAQ,CAAC,YAAa,MAAO,CAC5CK,KAAM8mB,AAAc,QAAdA,EAAsB,SAAW,QACvC,aAAcT,GAA0BU,EAAgB,CAAE/oC,MAAOA,CAAM,EAAGA,EAC9E,GACA,IAAIipC,EAAoB,AACI,OADHtI,CAAAA,EAAK39B,EAAQC,IAAI,CACjCkC,aAAa,AAAD,GAAew7B,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAG5T,SAAS,CAACmc,WAAW,CACrF,CAAC,EAAG,EAAE,CAACnoC,OAAO,CAAC,SAAUpJ,CAAC,EACtB,IAAIwxC,EAASx0B,EAAMy0B,aAAa,CAACzxC,GACjC,GAAIwxC,EAAQ,CACR,IAAIpf,EAAUpV,EAAMjK,aAAa,CAAC8W,eAAe,CAAC,YAAa,CACvDC,MAAO0nB,CACX,EAAG,QAAS,CACR3vC,KAAM,QACN,aAAc6uC,GAA0BY,EAAmB,CAAEI,SAAU1xC,EAC3EqI,MAAOA,CAAM,EACbA,EACA,EACJ2U,CAAAA,CAAK,CAAChd,EAAI,iBAAmB,iBAAiB,CAC1CoyB,EAAQhJ,YAAY,CACxBgJ,EAAQhJ,YAAY,CAAC9Q,KAAK,CAACq5B,aAAa,CAAG,OAC3Cvf,EAAQhJ,YAAY,CAACwoB,OAAO,CACxB,WAAc,OAAO50B,EAAM60B,eAAe,EAAI,CACtD,CACJ,GACA,IAAI,CAACX,kBAAkB,EAC3B,MAEI,IAAI,CAACn+B,aAAa,CAACqgB,WAAW,CAAC,YAEvC,EAMA6d,EAAmBnwC,SAAS,CAACgxC,4BAA4B,CAAG,SAAUJ,CAAQ,EAC1E,IAAI10B,EAAQ,IAAI,CACZyD,EAAY,IAAI,CAChBpY,EAAQ,IAAI,CAACA,KAAK,CAClB+pB,EAAUsf,EAAW,IAAI,CAACK,cAAc,CAAG,IAAI,CAACC,cAAc,CAC9D5mC,EAAO,IAAI,CAAC8H,QAAQ,CACxB,OAAO,IAv+N6DgB,GAu+NjB7L,EAAO,CACtD8L,WAAY,CAAC,CACL,CAAC/I,EAAK+H,IAAI,CAAE/H,EAAKgI,KAAK,CAAEhI,EAAKiI,EAAE,CAAEjI,EAAKkI,IAAI,CAAC,CAC3C,SAAUuB,CAAO,EACb,GAAIud,EAAS,CACT,IAAI6f,EAAQp9B,IAAYzJ,EAAK+H,IAAI,EACzB0B,IAAYzJ,EAAKiI,EAAE,CAAG,GAAK,CACnC+e,CAAAA,EAAQjpB,KAAK,CAAG,GAAKwnC,GAAyBuB,WAAW9f,EAAQjpB,KAAK,EAAI8oC,EAAO,EAAG,KACpFxxB,EAAUoxB,eAAe,CAAC,WACtB,IAAIL,EAAS/wB,EAAUgxB,aAAa,CAACC,GACjCF,GACAnpC,EAAM+T,iBAAiB,CAACo1B,EAAQpf,EAExC,EACJ,CACA,OAAO,IAAI,CAAC9d,QAAQ,CAACC,OAAO,AAChC,EACH,CAAC,CACN5B,KAAM,WACFtK,EAAM+T,iBAAiB,CAACY,EAAMy0B,aAAa,CAACC,GAAWtf,EAC3D,EACAhe,SAAU,WACN,IAAI9G,EACJ,MAAO,CAAC,CAAE0P,CAAAA,EAAMy0B,aAAa,CAACC,IAAatf,GACtC,CAAA,AAAiD,OAAhD9kB,CAAAA,EAAKjF,EAAMgD,OAAO,CAAC+pB,SAAS,CAAC5nB,aAAa,AAAD,GAAeF,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAG4K,OAAO,AAAD,CAAC,CACrG,CACJ,EACJ,EAMA+4B,EAAmBnwC,SAAS,CAAC4R,qBAAqB,CAAG,WACjD,MAAO,CACH,IAAI,CAACo/B,4BAA4B,CAAC,GAClC,IAAI,CAACA,4BAA4B,CAAC,GACrC,AACL,EAIAb,EAAmBnwC,SAAS,CAAC2R,OAAO,CAAG,WAC/B,IAAI,CAAC0/B,4BAA4B,EACjCh1B,aAAa,IAAI,CAACg1B,4BAA4B,EAElD,IAAI,CAACp/B,aAAa,CAACqgB,WAAW,CAAC,aAC3B,IAAI,CAAClS,SAAS,EACd,IAAI,CAACA,SAAS,CAACzO,OAAO,EAE9B,EAKAw+B,EAAmBnwC,SAAS,CAACowC,kBAAkB,CAAG,WAC9C,IAAI9b,EAAY,IAAI,CAAC/sB,KAAK,CAAC+sB,SAAS,CACpC,GAAIA,GAAa,IAAI,CAAC4c,cAAc,EAAI,IAAI,CAACD,cAAc,CAAE,CACzD,IAAIK,EAAWhd,EAAUoJ,IAAI,AAC7B,CAAA,IAAI,CAACwT,cAAc,CAAC7oC,KAAK,CACrB,GAAK5D,KAAKgtB,KAAK,CAAC6C,EAAUgS,SAAS,CAAGgL,EAAW,KACrD,IAAI,CAACL,cAAc,CAAC5oC,KAAK,CACrB,GAAK5D,KAAKgtB,KAAK,CAAC6C,EAAUiS,SAAS,CAAG+K,EAAW,IACzD,CACJ,EAKAnB,EAAmBnwC,SAAS,CAAC2wC,aAAa,CAAG,SAAU5mC,CAAE,EACrD,IAAIuqB,EAAY,IAAI,CAAC/sB,KAAK,CAAC+sB,SAAS,CACpC,OAAOA,GAAaA,EAAU0E,OAAO,EACjC1E,EAAU0E,OAAO,CAACjvB,EAAG,AAC7B,EAKAomC,EAAmBnwC,SAAS,CAAC+wC,eAAe,CAAG,SAAUQ,CAAc,EACnE,IAAIr1B,EAAQ,IAAI,AAgDZ,CAAA,IAAI,CAACm1B,4BAA4B,EACjCh1B,aAAa,IAAI,CAACg1B,4BAA4B,EAElD,IAAI,CAACA,4BAA4B,CAAG/0B,WAAWk1B,AAlD3B,CAAA,SAAUD,CAAc,EAExC,IADQ/kC,EACJjF,EAAQ2U,EAAM3U,KAAK,CACnB+sB,EAAY/sB,EAAM+sB,SAAS,CAC3BwO,EAAUv7B,EAAMu7B,OAAO,CAC3B,GAAIxO,GACAwO,GACA5mB,EAAMg1B,cAAc,EACpBh1B,EAAM+0B,cAAc,CAAE,CACtB,IAAIQ,EAAa3O,EAAQ4O,gBAAgB,GACrCC,EAAUP,WAAWl1B,EAAMg1B,cAAc,CAAC7oC,KAAK,EAC3C,IAAMisB,EAAUoJ,IAAI,CACxBkU,EAAUR,WAAWl1B,EAAM+0B,cAAc,CAAC5oC,KAAK,EAC3C,IAAMisB,EAAUoJ,IAAI,CAE5B,CACI,CAAC,EAAG,YAAapJ,EAAUgS,SAAS,CAAC,CACrC,CAAC,EAAG,YAAaqL,EAAQ,CACzB,CAAC,EAAG,UAAWA,EAAQ,CACvB,CAAC,EAAG,YAAard,EAAUiS,SAAS,CAAC,CACrC,CAAC,EAAG,YAAaqL,EAAQ,CACzB,CAAC,EAAG,UAAWA,EAAQ,CAC1B,CAACtpC,OAAO,CAAC,SAAUkE,CAAE,EAElB,IADIC,EACAmkC,EAAWpkC,CAAE,CAAC,EAAE,CAChBzL,EAAOyL,CAAE,CAAC,EAAE,CACZpK,EAAIoK,CAAE,CAAC,EAAE,CACTkkC,EAAS,AAAyC,OAAxCjkC,CAAAA,EAAKyP,EAAMy0B,aAAa,CAACC,EAAQ,GAAenkC,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGnI,OAAO,CAC7FosC,GACAR,GAAwDQ,EAAQV,GAAqCjvC,EAAM,CACvGqB,EAAGqvC,EAAWp/B,IAAI,CAAGiiB,EAAUjiB,IAAI,CAAGjQ,EACtCC,EAAGovC,EAAW1c,GAAG,CAAGT,EAAUS,GAAG,AACrC,EAAG2b,GAEX,GACIa,GACAA,IAGJ,IAAIM,EAAoB,AACI,OADHrlC,CAAAA,EAAKjF,EAAMgD,OAAO,CAACC,IAAI,CACvCkC,aAAa,AAAD,GAAeF,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAG8nB,SAAS,CAACwd,kBAAkB,CACxFC,EAAuB9B,GAA2C1oC,EAAMiI,KAAK,CAAC,EAAE,EACpF0M,EAAMkE,SAAS,CAACpE,QAAQ,CAAC4zB,GAA0BiC,EAAmB,CAAEE,qBAAsBA,EAAsBxqC,MAAOA,CAAM,EAAGA,GACxI,CACJ,CAAA,EAM6Dk6B,IAAI,CAAC,IAAI,CAAE8P,GAAiB,GAC7F,EACOpB,CACX,EA/sOyEz+B,IAuuOrEsgC,GAAqCpmC,EAAqBU,kBAAkB,CAAE2lC,GAA6CrmC,EAAqBV,0BAA0B,CAAEgnC,GAAuCtmC,EAAqBJ,oBAAoB,CAAE2mC,GAA2CvmC,EAAqBkD,wBAAwB,CAEtVsjC,GAAyB,AAACprC,IAA2HC,MAAM,CAAEorC,GAAe,AAACrrC,IAA2HqrC,YAAY,CAEpTC,GAAoC9vC,EAAoBwD,iBAAiB,CAAEusC,GAAgC/vC,EAAoB4D,uBAAuB,CAEtJosC,GAAuB,AAAClyC,IAA+E0K,IAAI,CAAEynC,GAA2B,AAACnyC,IAA+E2uB,QAAQ,CAAEyjB,GAAW,AAACpyC,IAA+EoyC,QAAQ,CAAEC,GAAuB,AAACryC,IAA+E6G,IAAI,CAAEyrC,GAA0B,AAACtyC,IAA+EyK,OAAO,CAyFziB,SAAS8nC,GAAsC1nC,CAAM,EACjD,IACIkvB,EAAayY,AADM3nC,EAAO5D,KAAK,CAACgD,OAAO,CAACmC,aAAa,CACvBvB,MAAM,CAAC4nC,gCAAgC,CACzE,MAAO,CAAC,CAAE1Y,CAAAA,AAAc,CAAA,IAAdA,GACNlvB,EAAOC,MAAM,EACbD,EAAOC,MAAM,CAAChI,MAAM,EAAI,CAACi3B,CAAQ,CACzC,CAoCA,SAAS2Y,GAAoBzjC,CAAK,CAAElH,CAAK,EACrC,IAAI8C,EAASoE,EAAMpE,MAAM,CACrB5D,EAAQ4D,EAAO5D,KAAK,CACpB0rC,EAAmB1rC,EAAMgD,OAAO,CAACmC,aAAa,CAAC6C,KAAK,EAAI,CAAC,EACzD2jC,EAAyB/nC,EAAOZ,OAAO,CAACmC,aAAa,EACjDvB,EAAOZ,OAAO,CAACmC,aAAa,CAAC6C,KAAK,EAAI,CAAC,EAC3C4jC,EAAiBhoC,EAAOgoC,cAAc,EAAI,CAAC,EAC3C3oC,EAAOjD,EAAMgD,OAAO,CAACC,IAAI,QAC7B,AAAIioC,GAAyBpqC,GAClBgqC,GAAahqC,EAAO6qC,EAAuBE,aAAa,EAC3DH,EAAiBG,aAAa,EAC9BD,EAAeC,aAAa,EAC5B,GAAI5oC,EAAK6oC,YAAY,CAAE7oC,EAAKkC,aAAa,CAAC4mC,YAAY,EAAI9oC,EAAK8oC,YAAY,EAE5EjrC,CACX,CAeA,SAASkrC,GAA6BpoC,CAAM,CAAEqoC,CAAc,EACxD,IAAIjnC,EAAOpB,CAAM,CAACqoC,EAAe,CACjC,OAAOroC,EAAO5D,KAAK,CAAC6C,UAAU,CAAC,wBAA0BopC,EAAiB,cAAe,CACrF5kC,KAAMojC,GAAmCzlC,GACzCpB,OAAQA,CACZ,EACJ,CA4HA,SAASsoC,GAAiClkC,CAAK,EAC3C,IAtEmBA,EAhBfmkC,EAAoBC,EAAoBC,EAiBxCzoC,EACA0oC,EACAC,EAEAX,EACAY,EAIAC,EAIAC,EAGAC,EA3CAC,EAAiFC,EAChCC,EACDC,EA4EhDnpC,EAAuB5D,EAAsBgtC,EACOC,EACUC,EAEgCC,EAhB9FntC,EAEAyV,EA4BA7R,EAASoE,EAAMpE,MAAM,CAAEwpC,EAAyBxpC,EAAO5D,KAAK,CAAC4D,MAAM,CAAC/H,MAAM,CAAG,GACzE+H,EAAOZ,OAAO,CAACqE,IAAI,CAAEgmC,GAnBFrtC,EAAQ4D,CAA/BA,EAASoE,AAmBmDA,EAnB7CpE,MAAM,EAAiB5D,KAAK,CACSitC,EAA8BK,CADrCN,EAAoBppC,EAAOZ,OAAO,CAACmC,aAAa,GAA+C6nC,EAAkBhlC,KAAK,EAC/JglC,EAAkBhlC,KAAK,CAACulC,sBAAsB,EAC9CvtC,EAAMgD,OAAO,CAACmC,aAAa,CAAC6C,KAAK,CAACulC,sBAAsB,CAEkCJ,EAAQD,CAFxCA,EAAmB9B,GAAqBxnC,EAAOqE,KAAK,EAC9GrE,EAAOqE,KAAK,CAACjF,OAAO,CAACmC,aAAa,EAClCvB,EAAOqE,KAAK,CAACjF,OAAO,CAACmC,aAAa,CAAC0K,OAAO,CAAE,CAAC7P,EAAMwf,OAAO,EAAI5b,AAAgB,YAAhBA,EAAOpK,IAAI,IAlF7EozC,EAAWY,AAvBnB,SAAqCxlC,CAAK,EACtC,IAAIpE,EAASoE,EAAMpE,MAAM,CACrB5D,EAAQ4D,EAAO5D,KAAK,CACpBgtC,EAAoBppC,EAAOZ,OAAO,CAACmC,aAAa,EAC5CvB,EAAOZ,OAAO,CAACmC,aAAa,CAAC6C,KAAK,EAAI,CAAC,EAC3Cwa,EAAcxiB,EAAMgD,OAAO,CAACmC,aAAa,CAAC6C,KAAK,EAAI,CAAC,EACpDylC,EAAY7pC,EAAOqE,KAAK,EAAIrE,EAAOqE,KAAK,CAACzC,QAAQ,CACrD,GAAIioC,EAAW,CACX,IAAIC,EAAoBD,EAAUE,cAAc,CAAC3lC,EAAMnN,CAAC,EAAI,EACxDmF,EAAMgD,OAAO,CAAC6jB,OAAO,CAAC+mB,oBAAoB,EAC1C9mC,EAAakmC,EAAkBa,aAAa,EACxCb,EAAkBa,aAAa,CAAC7lC,IAChCwa,EAAYqrB,aAAa,EAAIrrB,EAAYqrB,aAAa,CAAC7lC,IACvDglC,EAAkBlmC,UAAU,EAC5B0b,EAAY1b,UAAU,EACtB4mC,EACR,OAAO1tC,EAAM6G,IAAI,CAACC,UAAU,CAACA,EAAYkB,EAAMnN,CAAC,EAAI,EAAG,KAAK,EAChE,CACJ,EAsGoEmN,GAjGqB6kC,EAAgB5kC,AAA1CD,CAAAA,AAiGKA,EAjGCpE,MAAM,CAACqE,KAAK,EAAI,CAAC,CAAA,EAAyB1C,UAAU,EAAI8lC,GAAwBrjC,AAiGjFA,EAjGuF8lC,QAAQ,GACvJ,AAAC,CAAA,GAAK9lC,AAgGkDA,EAhG5C8lC,QAAQ,AAAD,EAAGpxC,OAAO,CAAC,QAAS,KAAMowC,EAAWzB,GAAwBrjC,AAgGxBA,EAhG8BpL,EAAE,GACxF,AAAyC,EAAzC,AAAC,CAAA,GAAKoL,AA+FkDA,EA/F5CpL,EAAE,AAAD,EAAGrB,OAAO,CAAC,eAAoBwxC,EAAW,MAAQ/kC,AA+FPA,EA/FanN,CAAC,CACvEmN,AA8FyDA,EA9FnDX,IAAI,EAAIulC,GAAYC,GAC5BC,CAAAA,EAAW9kC,AA6FgDA,EA7F1CpL,EAAE,CAAGmwC,CAAO,GA8EyH,GAOpJlC,GAAuBoC,EAP2I,CACjKjlC,MAcwDA,EAbxD+F,MAAOs9B,GAAwBrjC,AAayBA,EAbnB+F,KAAK,EAAK/F,AAaSA,EAbH+F,KAAK,CAAG,EAAK,GAClEggC,aAAcZ,EACdrsC,KAAK,EA1DTwrC,EAAgB1oC,CADhBA,EAASoE,CADMA,EAuE6CA,GAtE7CpE,MAAM,EACE5D,KAAK,CAACgD,OAAO,CAACmC,aAAa,CAAC6C,KAAK,EAAI,CAAC,EAC7DukC,EAAsB3oC,EAAO5D,KAAK,CAACgD,OAAO,CAACmC,aAAa,EACpDvB,EAAO5D,KAAK,CAACgD,OAAO,CAACmC,aAAa,CAAC6C,KAAK,EAAI,CAAC,EACjD4jC,EAAiBhoC,EAAOgoC,cAAc,EAAI,CAAC,EAC3CY,EAAcD,EAAoBC,WAAW,EACzCF,EAAcE,WAAW,EACzBZ,EAAeY,WAAW,EAC1B,GACJC,EAAcF,EAAoBE,WAAW,EACzCH,EAAcG,WAAW,EACzBb,EAAea,WAAW,EAC1B,GACJC,EAAe,AACX,KAAA,IADkB1kC,EAAMlH,KAAK,CAE7B,QAAU,IACd6rC,EAAelB,GAAoBzjC,EACnCA,CAAK,CAAC0kC,EAAY,EACtB,AAAI1kC,EAAMgmC,MAAM,CACLpqC,EAAO5D,KAAK,CAAC6C,UAAU,CAAC,sCAAuC,CAClEmF,MAAOA,CACX,GAEApE,EAAOqqC,aAAa,EAxCpB9B,EAAM+B,AAyCyC1B,GAzC/B,GAAIJ,EAAM+B,AAyCkC1B,GAzCxB,GAAIJ,EAAc,SAAUp0C,CAAG,EAC/D,IAAIm2C,EAAM3C,GAwC0BzjC,EAxCCojC,GAAqBpjC,AAwCtBA,CAxC2B,CAAC/P,EAAI,CAAE+P,AAwClCA,EAxCwChF,OAAO,CAAC/K,EAAI,GAC5F,OAAOm2C,AAAQ,KAAK,IAAbA,EACHn2C,EAAM,KAAOk0C,EAAMiC,EAAMhC,EACzBgC,CACR,EACOH,AADYjmC,AAoCyBA,EApCnBpE,MAAM,CAACqqC,aAAa,CACxBvrC,MAAM,CAAC,SAAUqT,CAAI,CAAE9d,CAAG,EAC3C,IAAIo2C,EAAWhC,EAAYp0C,GAC3B,OAAOo2C,EACFt4B,EAAQA,CAAAA,EAAKla,MAAM,CAAG,KAAO,EAAC,EAAKwyC,EACpCt4B,CACR,EAAG,KAgCIy2B,EAAcG,EAAeF,GAkC5B6B,UAAWpB,EAAmB,KAAO,EACzC,EACgEltC,IAQIoF,EAAc4C,EAAMhF,OAAO,EAAIgF,EAAMhF,OAAO,CAACmC,aAAa,EAC1H6C,EAAMhF,OAAO,CAACmC,aAAa,CAACC,WAAW,CAAuDmpC,EAAiBnB,EAAyB,IAAMxpC,EAAOyD,IAAI,CAAG,IAAM,GAAImnC,GAhC1KxuC,EAAQgI,AAgCkNA,EAhC5MpE,MAAM,CAAC5D,KAAK,CAKvByV,CAHHA,EAAcg5B,GA8B4MzmC,IA3B3MnM,MAAM,CAAGmE,EAAM6C,UAAU,CAJ9B,mDAEA,CAAEmF,MA6B8MA,EA5B1NyN,YAAaA,CAAY,GACoC,IA8BjE,OAFAzN,EAAM7C,aAAa,CAAG6C,EAAM7C,aAAa,EAAI,CAAC,EAC9C6C,EAAM7C,aAAa,CAACkR,gBAAgB,CAAGg3B,EAChCA,EAHyDjoC,CAAAA,EAAc,IAAMA,EAAc,EAAC,EAGnEmpC,EAH6NC,CAAAA,EAAkB,IAAMA,EAAkB,EAAC,CAI5S,CA0EA,SAASE,GAAkC9qC,CAAM,EAC7C,IA7NI+qC,EA6NA3uC,EAAQ4D,EAAO5D,KAAK,CACpB4uC,EAAa5uC,EAAM+c,KAAK,EAAI,EAAE,CAC9B3X,EA9NGupC,CADHA,EAAU3B,AADUppC,CAAAA,AAgOmBA,EAhOZZ,OAAO,CAACmC,aAAa,EAAI,CAAC,CAAA,EACzBC,WAAW,GACzBxB,AA8NyBA,EA9NlB5D,KAAK,CAAC6C,UAAU,CAAC,mCAAoC,CAC1EuC,YAAaupC,EACb/qC,OA4NuCA,CA3N3C,IAAM,GA4NFirC,EAAqB,SAAUlmC,CAAI,EAC/B,OAAO3I,CAAK,CAAC2I,EAAK,EAAI3I,CAAK,CAAC2I,EAAK,CAAC9M,MAAM,CAAG,GAAK+H,CAAM,CAAC+E,EAAK,AACpE,EAAGmmC,EAAelrC,EAAOmK,KAAK,CAAG,EAAGghC,EAAY/C,GAA6BpoC,EAAQ,SAAUorC,EAAYhD,GAA6BpoC,EAAQ,SAAUqrC,EAAiB,CACvKH,aAAcA,EACdlrC,OAAQA,EACR5D,MAAOA,CACX,EAAGkvC,EAAoBN,EAAW/yC,MAAM,CAAG,EAAI,cAAgB,GAAIoiB,EAAUje,EAAM6C,UAAU,CAAC,gCAAkCe,EAAOpK,IAAI,CAAG01C,EAAmBD,IAAmBjvC,EAAM6C,UAAU,CAAC,uCAAyCqsC,EAAmBD,GAAiBE,EAAkB,AAACN,CAAAA,EAAmB,SAAW,IAAMG,EAAY,IAAM,EAAC,EAAMH,CAAAA,EAAmB,SAAW,IAAME,EAAY,IAAM,EAAC,EAEzZ,OAAOlE,GAFkaO,GAAqBxnC,EAAOZ,OAAO,CAACmC,aAAa,EACtdvB,EAAOZ,OAAO,CAACmC,aAAa,CAACiqC,iBAAiB,CAAEpvC,EAAMgD,OAAO,CAACmC,aAAa,CAACvB,MAAM,CAACwrC,iBAAiB,CAAE,IACjE,CACrCC,kBAAmBpxB,EACnBqxB,kBAAoBlqC,EAAc,IAAMA,EAAc,GACtD+pC,gBAAiBA,EACjBvrC,OAAQA,EACR5D,MAAOA,EACP8uC,aAAcA,CAClB,EAAG,KAAK,EACZ,CAmE6B,IAAIS,GALX,CAClBrD,iCAAkCA,GAClCwC,kCAAmCA,GACnCc,eA/BJ,SAAwB5rC,CAAM,EAC1B,IAvUIopC,EASAyC,EAkOAC,EACAC,EACAC,EA3NA5vC,EACAqa,EACAw1B,EACAC,EACAC,EACAC,EAqRAhD,EACAxqB,EACA3T,EAyBA7O,EAAQ4D,EAAO5D,KAAK,CACpBkE,EAAewmC,GAA2C9mC,GAC1DkE,EAAW6iC,GAAqC/mC,GAChDqsC,EAAOjwC,EAAMiwC,IAAI,EAAIjwC,EAAMiwC,IAAI,GAC/BnoC,KAKIA,EAAS5J,SAAS,GAAKgG,GAAiB+rC,GACxClF,GAAkCjjC,GAjVtCklC,EAAoBppC,AAmVGA,EAnVIZ,OAAO,CAACmC,aAAa,EAAI,CAAC,EA2OrDuqC,EA1OG,CAACpE,GAkVmB1nC,IAjVvB,CAACopC,EAAkBkD,iBAAiB,CAOpCT,EAAmBlE,AADA3nC,AA2UIA,EA3UG5D,KAAK,CAACgD,OAAO,CAACmC,aAAa,CACjB+J,kBAAkB,CAACihC,gBAAgB,CAmOvER,EAlOG,CAAC,CAAE/rC,CAAAA,AAyUiBA,EAzUVC,MAAM,EAAKD,CAAAA,AAyUDA,EAzUQC,MAAM,CAAChI,MAAM,CAC5C,CAAC4zC,EAAiBW,+BAA+B,EACjDX,AAAqD,CAAA,IAArDA,EAAiBW,+BAA+B,AAAS,CAAC,EAiO1DR,EAA2BhsC,AAsGJA,EAtGW5D,KAAK,CAACgD,OAAO,CAACmC,aAAa,CACxD6C,KAAK,CAACqoC,YAAY,CACvBX,CAAAA,GAAwBC,CAAe,GACvC/rC,AAmGuBA,EAnGhBC,MAAM,CAAC9C,OAAO,CAAC,SAAUiH,CAAK,EACjC,IAtTJpE,EACA5D,EACAswC,EACAtC,EACAuC,EA+QAtrC,EACAC,EACAy7B,EACA/8B,EACA4sC,EACA9E,EACAh9B,EA6BQ+hC,EAAUzoC,EAAMhE,OAAO,EAAIgE,EAAMhE,OAAO,CAACjH,OAAO,EAC5C2zC,CAAAA,AAtTZ1wC,EAAQ4D,CADRA,EAASoE,AAuTsBA,EAvThBpE,MAAM,GACHA,EAAO5D,KAAK,CAC9BswC,EAAa1sC,GAAUA,EAAO+sC,EAAE,CAAC,YACjC3C,EAAShmC,AAoTsBA,EApThBgmC,MAAM,CACrBuC,EAAqBvwC,GACjBA,EACKgD,OAAO,CAACmC,aAAa,CAAC6C,KAAK,CAACqoC,YAAY,CAC9CrC,GAAU,CAACsC,GAAcC,GAgTaK,AA3RjD,SAA6B5oC,CAAK,EAC9B,IAjDI6oC,EAkCAC,EAeAltC,EAASoE,EAAMpE,MAAM,CACrBE,GAlDA+sC,EAAmB7oC,AAkD+BA,EAlDzB+F,KAAK,CAClC,AAAK/F,AAiDiDA,EAjD3CpE,MAAM,EAAKoE,AAiDgCA,EAjD1BpE,MAAM,CAACwgC,IAAI,EAAKiH,GAAwBwF,IAG7D5F,GAAqBjjC,AA8C0BA,EA9CpBpE,MAAM,CAACwgC,IAAI,CAAE,SAAUrgC,CAAC,EACtD,MAAO,CAAC,CAAEA,CAAAA,GACN,AAAmB,KAAA,IAAZA,EAAEgK,KAAK,EACdhK,EAAEgK,KAAK,CAAG8iC,GACV9sC,EAAEC,OAAO,EACTD,EAAEC,OAAO,CAACjH,OAAO,AAAD,CACxB,IAAM,MAyCFg0C,EAAejtC,GAAyBA,EAAsBE,OAAO,CACrEmN,EAAc4/B,EACVA,EAAa5/B,WAAW,CACxBvN,EAAOO,KAAK,EAAIP,EAAOQ,KAAK,CAChC4sC,EAAUltC,EAAwB,CAC9BjJ,EAAGuwC,GAAqBpjC,EAAMipC,KAAK,CACvCntC,EAAsBmtC,KAAK,CAAE,GACzBn2C,EAAGswC,GAAqBpjC,EAAMkpC,KAAK,CACvCptC,EAAsBotC,KAAK,CAAE,EAC7B,EAAI,CACAr2C,EAAGuwC,GAAqBpjC,EAAMipC,KAAK,CAAE,GACrCn2C,EAAGswC,GAAqBpjC,EAAMkpC,KAAK,CAAE,EACzC,EACAC,GA5BJL,CAFIA,EAAOjsC,AADImD,AA+BmBA,EA/BbpE,MAAM,CAAC5D,KAAK,CAAC6E,QAAQ,CACtBiO,IAAI,CAAClY,AA+BrBo2C,EA/ByBn2C,CAAC,CAC1BD,AA8BAo2C,EA9BIl2C,CAAC,CAAE,EAAG,IACT2X,IAAI,CAAC,CACN,MAAS,6BACT2oB,KAAM,OACN77B,QAAS,EACT,eAAgB,EAChB,iBAAkB,CACtB,GACOuxC,GAuBP,GAAI3/B,GAAeA,EAAYpU,OAAO,CAMlC,OALAiL,EAAMhE,OAAO,CAAGmtC,EAChBnpC,EAAMopC,cAAc,CAAG,CAAA,EACvBD,EAAY71C,GAAG,CAAC6V,GAEhBA,EAAYpU,OAAO,CAACuR,YAAY,CAAC6iC,EAAYp0C,OAAO,CAAEg0C,EAAeA,EAAah0C,OAAO,CAAG,MACrFo0C,EAAYp0C,OAAO,AAElC,EAiQqEiL,EAAK,EAC1DqpC,EAAqBrpC,EAAMhF,OAAO,EAC9BgF,EAAMhF,OAAO,CAACmC,aAAa,EAC3B6C,AAAwC,CAAA,IAAxCA,EAAMhF,OAAO,CAACmC,aAAa,CAAC0K,OAAO,CAC3C,GAAI4gC,EAAS,CACT,GAAIzoC,EAAMgmC,MAAM,EAAI,CAAC4B,EAA0B,CAC3Ca,EAAQjpC,YAAY,CAAC,cAAe,CAAA,GACpC,MACJ,EAIAipC,EAAQjpC,YAAY,CAAC,WAAY,MAC5B5D,AAoFUA,EApFH5D,KAAK,CAACgT,UAAU,EACxBy9B,CAAAA,EAAQxgC,KAAK,CAACW,OAAO,CAAG,MAAK,EAE7B8+B,GAAwB,CAAC2B,IAhDrCb,EAAyB,AAAC,CAAA,AAAwC,OAAvCvrC,CAAAA,EAAKrB,CADhCA,EAASoE,AAkD+BA,EAlDzBpE,MAAM,EACkBZ,OAAO,CAACmC,aAAa,AAAD,GAAeF,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAG+C,KAAK,AAAD,GAAM,CAAC,EACjH0jC,EAAmB9nC,EAAO5D,KAAK,CAACgD,OAAO,CAACmC,aAAa,CAAC6C,KAAK,EAAI,CAAC,EAChE0G,EAAQs8B,GAA8B,AAACG,GAASqF,EAAuBpB,iBAAiB,GACpFvE,GAAuB2F,EAAuBpB,iBAAiB,CA8C3BpnC,EA5CxCpE,EAAO5D,KAAK,GACP,CAAA,AAAuD,OAAtDkF,CAAAA,EAAKsrC,EAAuBc,oBAAoB,AAAD,GAAepsC,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGvM,IAAI,CAAC63C,EA2C7DxoC,EA1CnC,GACAmjC,GAASO,EAAiB0D,iBAAiB,GACxCvE,GAAuBa,EAAiB0D,iBAAiB,CAwCzBpnC,EAtCxCpE,EAAO5D,KAAK,GACP,CAAA,AAAiD,OAAhD2gC,CAAAA,EAAK+K,EAAiB4F,oBAAoB,AAAD,GAAe3Q,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGhoC,IAAI,CAAC+yC,EAqCvD1jC,EApCnC,GACDkkC,GAmCoClkC,GAlCxCpE,EAAO5D,KAAK,CAAC6E,QAAQ,CAACC,SAAS,EACnCysC,AAiCmDd,EAjCtCjpC,YAAY,CAAC,OAAQ,OAClC+pC,AAgCmDd,EAhCtCjpC,YAAY,CAAC,aAAckH,IAmCxB+hC,EAAQjpC,YAAY,CAAC,cAAe,CAAA,EAE5C,CACJ,GA2EAojC,GAAyC5qC,EAAO8H,GAhUhD+nC,EAAax1B,CADbA,EAAera,CADfA,EAAQ4D,AAmUwBA,EAnUjB5D,KAAK,EACCgD,OAAO,CAAChD,KAAK,EACRwxC,SAAS,EAAIn3B,EAAam3B,SAAS,CAAC3hC,OAAO,CACrEigC,EAAoB9vC,EAAM4D,MAAM,CAAC/H,MAAM,CAAG,EAC1Ck0C,EAA6B/vC,EAAMgD,OAAO,CAACmC,aAAa,CAACvB,MAAM,CAAC6tC,oBAAoB,CACpFzB,EAA0B,AAACpsC,CAAAA,AA8TKA,EA9TEZ,OAAO,CAACmC,aAAa,EAAI,CAAC,CAAA,EAAG+qC,iBAAiB,CAE7E,CADYL,CAAAA,GAAcC,CAAgB,GACxBA,CAAAA,GAAqBC,GAC1CC,GAA2B1E,GA2TK1nC,EA3TuC,IAkRvEopC,EAAoBppC,AA0CMA,EA1CCZ,OAAO,CAACmC,aAAa,EAAI,CAAC,EAErD0J,EAAoB2T,CADpBA,EAAc5e,AAyCYA,EAzCL5D,KAAK,CAACgD,OAAO,CAACmC,aAAa,EAChB0J,iBAAiB,CAEjDm+B,EAAkBkD,iBAAiB,CACnCwB,AAqCkC5pC,EArCpBN,YAAY,CAAC,OAAQ,OAE9BqH,AAAsB,QAAtBA,EACL6iC,AAkCkC5pC,EAlCpBN,YAAY,CAAC,OAAQ,UAGnCkqC,AA+BkC5pC,EA/BpBN,YAAY,CAAC,OAAQ,SAEvCkqC,AA6BsC5pC,EA7BxBN,YAAY,CAAC,WAAY,MAClC5D,AA4ByBA,EA5BlB5D,KAAK,CAACgT,UAAU,EAExB0+B,CAAAA,AA0BkC5pC,EA1BpBmI,KAAK,CAACW,OAAO,CAAG,MAAK,EAEvC8gC,AAwBsC5pC,EAxBxBN,YAAY,CAAC,aAAcwjC,GAA8BxoB,EAAY5e,MAAM,CAAC0tC,oBAAoB,EAC1G9uB,EAAY5e,MAAM,CAAC0tC,oBAAoB,CAuBb1tC,IAtB1B8qC,GAsB0B9qC,GAtBiBA,AAsBjBA,EAtBwB5D,KAAK,CAAC6E,QAAQ,CAACC,SAAS,IAyBtEgD,EAAS2W,eAAe,CAAC,cAGrC,CAUA,EAiBIkzB,GAA4B,AAAC54C,IAA+EgC,QAAQ,CAEpH62C,GAA4B,AAAC74C,IAA+E0Q,QAAQ,CAAEooC,GAA2B,AAAC94C,IAA+EyK,OAAO,CAAEsuC,GAA8B,AAAC/4C,IAA+Eo2B,UAAU,CAGlW4iB,GAAiC1tC,EAAqBK,aAAa,CAGnEstC,GAAoDzC,GAAgCrD,gCAAgC,CAAE+F,GAAqD1C,GAAgCb,iCAAiC,CAUhP,SAASwD,GAAwBlyC,CAAK,EAClC,MAAO,CAAC,CAACA,EAAMgD,OAAO,CAACmC,aAAa,CAACgtC,eAAe,CAACtiC,OAAO,AAChE,CA+BA,IAAIuiC,GAAkC,WAMlC,SAASA,EAAiBpyC,CAAK,EAC3B,IAAI,CAACqyC,KAAK,CAAG,CACTC,UAAW,CAAC,CAChB,EACA,IAAI,CAACC,oBAAoB,CAAG,EAC5B,IAAI,CAACvyC,KAAK,CAAGA,CACjB,CAqLA,OA1KAoyC,EAAiB35C,SAAS,CAAC6R,IAAI,CAAG,WAC9B,IAAItK,EAAQ,IAAI,CAACA,KAAK,CAElBwyC,EAAeC,AADIzyC,EAAMgD,OAAO,CAACmC,aAAa,CAACgtC,eAAe,CAC/BO,aAAa,CACxC,YAAc,QACtB,CAAA,IAAI,CAACH,oBAAoB,CAAG,EAC5B,IAAI,CAACF,KAAK,CAAG,CACTC,UAAW,CAAC,CAChB,EACA,IAAI,CAAC3nC,aAAa,CAAG,IAn7P2BjB,GAo7PhD,IAAI,CAACmP,SAAS,CAAG,IAjlO2BvE,GAilOPtU,EAAOwyC,GAC5C,IAAI,CAACG,iBAAiB,EAC1B,EAKAP,EAAiB35C,SAAS,CAAC2R,OAAO,CAAG,WACjC,IAAI,CAACO,aAAa,CAACX,iBAAiB,GACpC,IAAI,CAAC6O,SAAS,CAACzO,OAAO,EAC1B,EAKAgoC,EAAiB35C,SAAS,CAACk6C,iBAAiB,CAAG,WAC3C,IAAI95B,EAAY,IAAI,CAChB7Y,EAAQ,IAAI,CAACA,KAAK,CAClB1G,EAAI,IAAI,CAACqR,aAAa,CAC1BrR,EAAEmQ,QAAQ,CAACzJ,EAAO,sBAAuB,WACrC6Y,EAAU05B,oBAAoB,CAAG,CACrC,GACAj5C,EAAEmQ,QAAQ,CAACzJ,EAAO,iBAAkB,SAAU1G,CAAC,EAC3Cuf,EAAU+5B,aAAa,CAACt5C,EAAEsK,MAAM,CACpC,GACAtK,EAAEmQ,QAAQ,CAACzJ,EAAO,SAAU,WACxB6Y,EAAUg6B,iBAAiB,EAC/B,EACJ,EAMAT,EAAiB35C,SAAS,CAACm6C,aAAa,CAAG,SAAUhvC,CAAM,EACnDsuC,GAAwB,IAAI,CAAClyC,KAAK,IAClC,IAAI,CAACqyC,KAAK,CAACS,QAAQ,CAAG,CAAA,EACtB,IAAI,CAACT,KAAK,CAACC,SAAS,CAAC1uC,EAAOyD,IAAI,CAAGzD,EAAOmK,KAAK,CAAC,CAAGnK,EAEnD,IAAI,CAACyuC,KAAK,CAACU,SAAS,CAAGlB,GAAyB,IAAI,CAACQ,KAAK,CAACU,SAAS,EAChE,KAAK,EAAInvC,EAErB,EAKAwuC,EAAiB35C,SAAS,CAACo6C,iBAAiB,CAAG,WAC3C,IAAI7yC,EAAQ,IAAI,CAACA,KAAK,CAClB6Y,EAAY,IAAI,CACpB,GAAI7Y,EAAMgD,OAAO,CAACmC,aAAa,CAACgtC,eAAe,EAC3C,IAAI,CAACE,KAAK,CAACS,QAAQ,CAAE,CACrB,IAhHkB9qC,EACtBgrC,EA+GQC,EAAW,IAAI,CAACZ,KAAK,CAACY,QAAQ,CAI9BA,GACAA,CAAAA,EAnHLD,AAAsB,IAAtBA,CADHA,EAAahrC,CADSA,EAqHkBirC,GApHrBrvC,MAAM,CAACwgC,IAAI,CAAC9kC,MAAM,CAAC,SAAU4zC,CAAS,EAAI,OAAQlrC,EAAMnN,CAAC,GAAKq4C,EAAUr4C,CAAC,EAAImN,EAAMlN,CAAC,GAAKo4C,EAAUp4C,CAAC,AAAG,IAC5Ge,MAAM,CAASm3C,CAAU,CAAC,EAAE,CAAGhrC,CAmHG,EAE5C,IAAI,CAACmrC,iBAAiB,CAACh7C,OAClB4K,IAAI,CAAC,IAAI,CAACsvC,KAAK,CAACC,SAAS,EACzBvoC,GAAG,CAAC,SAAUvH,CAAE,EACjB,OAAOqW,EAAUw5B,KAAK,CAACC,SAAS,CAAC9vC,EAAG,AACxC,GAAI,IAAI,CAAC6vC,KAAK,CAACU,SAAS,CAAEE,GAE1B,IAAI,CAACZ,KAAK,CAAG,CACTC,UAAW,CAAC,CAChB,CACJ,CACJ,EAWAF,EAAiB35C,SAAS,CAAC06C,iBAAiB,CAAG,SAAUC,CAAW,CAAEL,CAAS,CAAEE,CAAQ,EACrF,IAAIt+B,EAAQ,IAAI,CAEZ0+B,EAAarzC,AADL,IAAI,CAACA,KAAK,CACCgD,OAAO,CAACmC,aAAa,CAACgtC,eAAe,CAC5D,GAAIkB,EAAWxjC,OAAO,CAAE,CACpB,IAxIJyjC,EAwIQC,EAAM,CAAC,IAAIC,KACXC,EAAQF,EAAM,IAAI,CAAChB,oBAAoB,CACvC1rC,EAAO3J,KAAKyI,GAAG,CAAC,EAChB0tC,EAAWK,mBAAmB,CAAGD,GAEjCnB,EAxILn6C,OACF4K,IAAI,CANLuwC,EAAe,AAACK,CAAAA,AA6IoB,IAAI,CAACC,kBAAkB,EAAI,IAAI,CAACA,kBAAkB,CAAChwC,MAAM,EA7InE,EAAE,AAAD,EAAG+R,MAAM,CAACk+B,AA8I7BT,GA9IuC,EAAE,EAAE1wC,MAAM,CAAC,SAAUC,CAAG,CACvEC,CAAG,EAEH,OADID,CAAG,CAACC,EAAIyE,IAAI,CAAGzE,EAAImL,KAAK,CAAC,CAAGnL,EACzBD,CACX,EAAG,CAAC,IAGCoH,GAAG,CAAC,SAAUvH,CAAE,EAAI,OAAO8wC,CAAY,CAAC9wC,EAAG,AAAE,GAyItCkS,EAAU,IAAI,CAACo/B,wBAAwB,CAACxB,EACxCS,EACAE,GACAv+B,IAEI,IAAI,CAACk/B,kBAAkB,EACvB9+B,aAAa,IAAI,CAACi/B,uBAAuB,EAG7C,IAAI,CAACH,kBAAkB,CAAG,CACtB/sC,KAAM0sC,EACN7+B,QAASA,EACT9Q,OAAQ0uC,CACZ,EAEA,IAAI,CAACyB,uBAAuB,CAAGh/B,WAAW,WAClCJ,GAASA,EAAMkE,SAAS,GACxBlE,EAAM49B,oBAAoB,CAAG,CAAC,IAAIiB,KAClC7+B,EAAMkE,SAAS,CAACpE,QAAQ,CAACE,EAAMi/B,kBAAkB,CAACl/B,OAAO,EACzD,OAAOC,EAAMi/B,kBAAkB,CAC/B,OAAOj/B,EAAMo/B,uBAAuB,CAE5C,EAAGltC,GAEX,CACJ,EAcAurC,EAAiB35C,SAAS,CAACq7C,wBAAwB,CAAG,SAAUV,CAAW,CAAEL,CAAS,CAAEE,CAAQ,EAC5F,IAAIjzC,EAAQ,IAAI,CAACA,KAAK,CAClBqzC,EAAarzC,EAAMgD,OAAO,CAACmC,aAAa,CAACgtC,eAAe,CAE5D,GAAIkB,EAAWW,qBAAqB,CAAE,CAClC,IAAIC,EAAeZ,EAAWW,qBAAqB,CAACZ,EAChDL,EACAE,GACJ,GAAIgB,AAAiB,CAAA,IAAjBA,EACA,OAAOA,EAAap4C,MAAM,CAAGo4C,EAAe,IAEpD,CAEA,IAAIC,EAAW,AAACn7C,IAA+EiuB,MAAM,EAAI,AAACjuB,IAA+EiuB,MAAM,CAACnrB,MAAM,CAAG,EACjM,WAAa,SAAUiH,EAAUiwC,EAAY,oBAAsBmB,EACnEjB,EAAW,mBAAqBiB,EAAW,kBAAmBjmC,EAAa8jC,GAA+B/xC,GAClH,OAAOA,EAAM6C,UAAU,CAAC,iCAAmCC,EAAS,CAChEmL,WAAYA,EACZkmC,WAAYpB,EACRd,GAAmDc,GACnD,KACJqB,UAAWnB,EACPjB,GAAkDiB,GAClD,KACJjrC,MAAOirC,EACPrvC,OAAQmvC,CACZ,EACJ,EACOX,CACX,KAMA,AAAC,SAAUA,CAAgB,EA0BvB,SAASiC,EAAiB/6C,CAAC,EAEvB,IADI2L,EACAjF,EAAQ,IAAI,CAACA,KAAK,CAClBs0C,EAAmB,AAA+B,OAA9BrvC,CAAAA,EAAKjF,EAAMmF,aAAa,AAAD,GAAeF,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGmf,UAAU,CAACxgB,MAAM,CAAC0wC,gBAAgB,CACxHA,GACAA,EAAiBt0C,KAAK,GAAKA,GAC3BkyC,GAAwBlyC,IAExBs0C,CAAAA,EAAiBjC,KAAK,CAACY,QAAQ,CAAIpB,GAAyByC,EAAiBjC,KAAK,CAACY,QAAQ,EACvF,KAAK,EACL35C,EAAE0O,KAAK,CAEnB,CAMA,SAASusC,IAEL,IADItvC,EACAjF,EAAQ,IAAI,CAACA,KAAK,CAClBs0C,EAAmB,AAA+B,OAA9BrvC,CAAAA,EAAKjF,EAAMmF,aAAa,AAAD,GAAeF,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGmf,UAAU,CAACxgB,MAAM,CAAC0wC,gBAAgB,CACxHA,GACAA,EAAiBt0C,KAAK,GAAKA,GAC3BkyC,GAAwBlyC,KACxBs0C,EAAiBjC,KAAK,CAACS,QAAQ,CAAG,CAAA,EAClCwB,EAAiBjC,KAAK,CAACC,SAAS,CAAC,IAAI,CAACjrC,IAAI,CAAG,IAAI,CAAC0G,KAAK,CAAC,CAAG,IAAI,CAEvE,CAlCAqkC,EAAiBlvC,OAAO,CANxB,SAAiBiyB,CAAW,EACpB2c,GAA4BH,GAA2B,cACvDC,GAA0Bzc,EAAa,WAAYkf,GACnDzC,GAA0Bzc,EAAa,cAAeof,GAE9D,CAoCJ,EAAGnC,IAAqBA,CAAAA,GAAmB,CAAC,CAAA,GAMf,IAAIoC,GAAoCpC,GAoBjEqC,GAAmB,AAAC17C,IAA+EC,GAAG,CAEtG07C,GAAoB,AAAC37C,IAA+E0Z,IAAI,CAAEkiC,GAAmB,AAAC57C,IAA+EG,GAAG,CAAE07C,GAAqB,AAAC77C,IAA+E4zB,KAAK,CAG5TkoB,GAAoDxwC,EAAqBC,oCAAoC,CAE7GwwC,GAA+B75C,EAAoB5B,eAAe,CAAE07C,GAA+B95C,EAAoBO,eAAe,CAAEw5C,GAAiC/5C,EAAoBP,iBAAiB,CAAEu6C,GAA6Bh6C,EAAoBsD,aAAa,CAa9Q22C,GAA8B,WAM9B,SAASA,EAAal1C,CAAK,CAAEkmB,CAAM,CAAEivB,CAAgB,CAAEC,CAAkB,CAAEt3B,CAAU,EACxD,KAAK,IAA1Bq3B,GAA+BA,CAAAA,EAAmB,QAAO,EAC7D,IAAI,CAACn1C,KAAK,CAAGA,EACb,IAAI,CAACkmB,MAAM,CAAGA,EACd,IAAI,CAACvb,aAAa,CAAG,IA1sQ2BjB,GA2sQhD,IAAI2rC,EAAU,IAAI,CAACt0B,YAAY,CACvB0zB,GAAiBrrC,aAAa,CAAC+rC,GACnCG,EAAY,IAAI,CAACv4C,OAAO,CAAGq4C,EACvBX,GAAiBrrC,aAAa,CAACgsC,GAAsBC,CACxDr1C,CAAAA,EAAMgT,UAAU,EACjB,IAAI,CAACuiC,mBAAmB,CAACF,GAEzBD,IAC2B,OAAvBA,GAAgCp1C,EAAMgT,UAAU,EAChDsiC,CAAAA,EAAUrlC,KAAK,CAACulC,SAAS,CAAG,MAAK,EAErCF,EAAU12C,WAAW,CAACy2C,GACtB,IAAI,CAACt4C,OAAO,CAAGu4C,GAEnB,IAAI,CAACG,YAAY,CAACvvB,EAAQpI,EAC9B,CA4JA,OAnJAo3B,EAAaz8C,SAAS,CAACgpB,KAAK,CAAG,WAC3B,IAAI7mB,EAAM,IAAI,CAAC86C,iBAAiB,EAChC96C,CAAAA,EAAIC,CAAC,EAAID,EAAIoE,KAAK,CAAG,EACrBpE,EAAIE,CAAC,EAAIF,EAAIqE,MAAM,CAAG,EACtB,IAAI02C,EAAkBX,GAA+B,QACjDp6C,GACJi6C,GAAkD,IAAI,CAAC3uB,MAAM,CAACzE,KAAK,CAAEk0B,EACzE,EAQAT,EAAaz8C,SAAS,CAACg9C,YAAY,CAAG,SAAUvvB,CAAM,CAAEpI,CAAU,EAC9D,IAAI,CAACoI,MAAM,CAAGA,EACd,IAAI,CAAC0vB,kBAAkB,GACvB,IAAIC,EAAQ/3B,GAAc,CAAC,EAC3B3lB,OAAO4K,IAAI,CAAC8yC,GAAO90C,OAAO,CAAC,SAAUhJ,CAAC,EACjB,OAAb89C,CAAK,CAAC99C,EAAE,EACR,OAAO89C,CAAK,CAAC99C,EAAE,AAEvB,GACA,IAAI+9C,EAAkB,IAAI,CAACC,aAAa,CAAC7vB,EAAOzE,KAAK,CAAE,cACvDizB,GAAkB,IAAI,CAAC3zB,YAAY,CAAE6zB,GAAmBkB,EAAkB,CACtE,aAAcA,CAClB,EAAI,CAAC,EAAGD,IACR,IAAI,CAAClrC,aAAa,CAACX,iBAAiB,GACpC,IAAI,CAACgsC,uBAAuB,CAAC,IAAI,CAACj1B,YAAY,CAAEmF,EAAOzE,KAAK,EAC5D,IAAI,CAAC+I,eAAe,EACxB,EAIA0qB,EAAaz8C,SAAS,CAAC+xB,eAAe,CAAG,WACrC,IAAIyrB,EAAO,IAAI,CAACP,iBAAiB,GACjCf,GAAiB,IAAI,CAAC5zB,YAAY,CAAE,CAChC/hB,MAAO,AAACi3C,CAAAA,EAAKj3C,KAAK,EAAI,CAAA,EAAK,KAC3BC,OAAQ,AAACg3C,CAAAA,EAAKh3C,MAAM,EAAI,CAAA,EAAK,KAC7B6L,KAAM,AAAC5N,CAAAA,KAAKgtB,KAAK,CAAC+rB,EAAKp7C,CAAC,GAAK,CAAA,EAAK,KAClC2yB,IAAK,AAACtwB,CAAAA,KAAKgtB,KAAK,CAAC+rB,EAAKn7C,CAAC,GAAK,CAAA,EAAK,IACrC,EACJ,EAIAo6C,EAAaz8C,SAAS,CAAC4F,MAAM,CAAG,WAC5B,IAAI,CAACsM,aAAa,CAACX,iBAAiB,GACpCirC,GAA2B,IAAI,CAACl4C,OAAO,CAC3C,EAKAm4C,EAAaz8C,SAAS,CAACm9C,kBAAkB,CAAG,WACxC,IAAIM,EAAqB,SAAU5uC,CAAC,EAAI,OAAQA,EAAE/L,OAAO,CAAC,yBAA2B,EAAK,EACtF4sB,EAAS,IAAI,CAACnoB,KAAK,CAACmoB,MAAM,CAC1BguB,EAAWhuB,EAAO/jB,KAAK,EAAI+jB,EAAO/jB,KAAK,CAACiR,GAAG,CAC3C+gC,EAAmBF,EAAmBC,GAAYA,EAAS/6C,SAAS,EAAI,IAExEi7C,EAAoBH,EADF,IAAI,CAACH,aAAa,CAAC,IAAI,CAAC7vB,MAAM,CAACzE,KAAK,CAAE,UAAY,GAExE,CAAA,IAAI,CAACV,YAAY,CAAC3lB,SAAS,CAAGg7C,GAAoBC,EAC9C,sDACA,+BACR,EAIAnB,EAAaz8C,SAAS,CAACu9C,uBAAuB,CAAG,SAAUj5C,CAAO,CAAEmpB,CAAM,EACtE,IAAIvR,EAAQ,IAAI,CAChB,CACI,QAAS,aAAc,WAAY,cAAe,YAClD,YAAa,aAAc,aAAc,WAC5C,CAAC5T,OAAO,CAAC,SAAUu1C,CAAO,EACvB,IAAIC,EAAeD,AAA6B,IAA7BA,EAAQ/6C,OAAO,CAAC,SACnCoZ,EAAMhK,aAAa,CAAClB,QAAQ,CAAC1M,EAASu5C,EAAS,SAAUh9C,CAAC,EACtD,IAAIk9C,EAAcD,EACVxB,GAA6Bz7C,GAC7Bw7C,GAA6Bx7C,GACjC4sB,GACA2uB,GAAkD3uB,EAAQswB,GAE9Dl9C,EAAEilB,eAAe,GAGZg4B,GACDj9C,EAAEgD,cAAc,EAExB,EAAG,CAAEm6C,QAAS,CAAA,CAAM,EACxB,EACJ,EAIAvB,EAAaz8C,SAAS,CAAC88C,mBAAmB,CAAG,SAAUp6C,CAAE,EACrDw5C,GAAiBx5C,EAAI,CACjB6W,YAAa,EACb2f,gBAAiB,cACjBvxB,OAAQ,UACRwQ,QAAS,OACTrR,QAAS,KACTD,OAAQ,mBACRyT,OAAQ,IACR7T,SAAU,SACVw3C,QAAS,EACT3mC,OAAQ,EACR8b,QAAS,QACTlxB,SAAU,WACV,aAAc,oDAClB,EACJ,EAIAu6C,EAAaz8C,SAAS,CAACi9C,iBAAiB,CAAG,WACvC,IAAIiB,EAAc,IAAI,CAACzwB,MAAM,CAACzE,KAAK,CAE/Bm1B,EAAqBD,EAAY55C,OAAO,CACpC45C,EAAY55C,OAAO,CACnB45C,EACJE,EAAa,IAAI,CAAC3wB,MAAM,CAACsF,MAAM,EAAIorB,EACnCE,EAAW,IAAI,CAAC92C,KAAK,CAACyH,QAAQ,CAC9B8zB,EAAU,IAAI,CAACv7B,KAAK,CAACu7B,OAAO,CAChC,GAAIub,GAAaD,CAAAA,MAAAA,EAA+C,KAAK,EAAIA,EAAWE,qBAAqB,AAAD,GAAMxb,EAAS,CACnH,IAAIyb,EAASH,EAAWE,qBAAqB,GACzCE,EAAW1b,EAAQ4O,gBAAgB,GACvC,MAAO,CACHtvC,EAAG,AAACm8C,CAAAA,EAAOlsC,IAAI,CAAGmsC,EAASnsC,IAAI,AAAD,EAAKmsC,EAAS7lC,MAAM,CAClDtW,EAAG,AAACk8C,CAAAA,EAAOxpB,GAAG,CAAGypB,EAASzpB,GAAG,AAAD,EAAKypB,EAAS5lC,MAAM,CAChDrS,MAAOg4C,EAAOjsC,KAAK,CAAGksC,EAAS7lC,MAAM,CACjC4lC,EAAOlsC,IAAI,CAAGmsC,EAAS7lC,MAAM,CACjCnS,OAAQ+3C,EAAOE,MAAM,CAAGD,EAAS5lC,MAAM,CACnC2lC,EAAOxpB,GAAG,CAAGypB,EAAS5lC,MAAM,AACpC,CACJ,CACA,MAAO,CAAExW,EAAG,EAAGC,EAAG,EAAGkE,MAAO,EAAGC,OAAQ,CAAE,CAC7C,EAIAi2C,EAAaz8C,SAAS,CAACs9C,aAAa,CAAG,SAAU7vB,CAAM,CAAEjuB,CAAG,SACxD,AAAIiuB,EAAOnpB,OAAO,CACPmpB,EAAOnpB,OAAO,CAACuZ,YAAY,CAACre,GAEhCiuB,EAAO5P,YAAY,CAACre,EAC/B,EACOi9C,CACX,IA0BIiC,GAAoB,AAACp+C,IAA+EC,GAAG,CAEvGo+C,GAAqB,AAACr+C,IAA+E0Z,IAAI,CAAE4kC,GAAoB,AAACt+C,IAA+EG,GAAG,CAElNo+C,GAAyCjzC,EAAqBkD,wBAAwB,CAGtFgwC,GAAiCt8C,EAAoBgD,gBAAgB,CAarEu5C,GAA+B,WAM/B,SAASA,EAAcx3C,CAAK,EACxB,IAAI,CAACA,KAAK,CAAGA,EACb,IAAI,CAAC4K,kBAAkB,CAAG,IAl/Q2B1B,EAm/QrD,IAAI,CAACuuC,MAAM,CAAG,CAAC,EACf,IAAI,CAACC,UAAU,CAAG,EAAE,CACpB,IAAI,CAACC,4BAA4B,CAAG,IAAI,CAACC,uBAAuB,CAAC,UACjE,IAAI,CAACC,2BAA2B,CAAG,IAAI,CAACD,uBAAuB,CAAC,SAChE,IAAI,CAACnzB,MAAM,EACf,CA4QA,OAlQA+yB,EAAc/+C,SAAS,CAAC+oB,eAAe,CAAG,SAAUs2B,CAAQ,CAAE5xB,CAAM,CAAEivB,CAAgB,CAAEr3B,CAAU,EACrE,KAAK,IAA1Bq3B,GAA+BA,CAAAA,EAAmB,QAAO,EAC7D,IAAI/wC,EAAQ,IAAI,CAACqzC,MAAM,CAACK,EAAS,CACjC,GAAI,CAAC1zC,EACD,MAAM,AAAI2zC,MAAM,oDAAsDD,GAE1E,IAAI1C,EAAqBhxC,AAAe,OAAfA,EAAM5K,IAAI,EAAa4K,AAAe,OAAfA,EAAM5K,IAAI,CAClD,KAAO,KAAK,EAChB4oB,EAAQ,IAxE2C8yB,GAwEZ,IAAI,CAACl1C,KAAK,CACjDkmB,EACAivB,EACAC,EACAt3B,GAGJ,OAFA1Z,EAAM4zC,qBAAqB,CAACp5C,WAAW,CAACwjB,EAAMrlB,OAAO,EACrDqH,EAAM6zC,aAAa,CAACl8C,IAAI,CAACqmB,GAClBA,CACX,EAOAo1B,EAAc/+C,SAAS,CAACkpB,QAAQ,CAAG,SAAUm2B,CAAQ,CAAEI,CAAgB,CAAEp6B,CAAU,EACtD,KAAK,IAA1Bo6B,GAA+BA,CAAAA,EAAmB,KAAI,EAC1D,IASIC,EATAC,EAAgB,IAAI,CAACX,MAAM,CAACK,EAAS,CACzC,GAAIM,EACA,OAAOA,EAAcD,YAAY,CAErC,IAAIE,EAAiB,IAAI,CAACztC,kBAAkB,CACnCxB,aAAa,CAAC8uC,GA4BvB,OAvBIp6B,GAAcA,EAAWkE,IAAI,EAAIk2B,AAAqB,QAArBA,EAEjCC,AADAA,CAAAA,EAAe,IAAI,CAACvtC,kBAAkB,CAACxB,aAAa,CAAC,MAAK,EAC7CxK,WAAW,CAACy5C,GAGzBF,EAAeE,EAEnBF,EAAa/8C,SAAS,CAAG,2DACrB08C,EAASp7C,OAAO,CAAC,MAAO,KAC5B,IAAI,CAAC+6C,MAAM,CAACK,EAAS,CAAG,CACpBE,sBAAuBK,EACvBF,aAAcA,EACd3+C,KAAM0+C,EACND,cAAe,EAAE,AACrB,EACAb,GAAmBe,EAAcr6B,GAAc,CAAC,GACvB,OAArBo6B,GACAG,EAAe7wC,YAAY,CAAC,OAAQ,QAIxC,IAAI,CAACqwC,2BAA2B,CAACj5C,WAAW,CAACu5C,GAC7C,IAAI,CAACG,gBAAgB,CAAC,IAAI,CAACZ,UAAU,EAC9BS,CACX,EAIAX,EAAc/+C,SAAS,CAACyyB,gBAAgB,CAAG,SAAU4sB,CAAQ,CAAEh6B,CAAU,EACrE,IAAI1Z,EAAQ,IAAI,CAACqzC,MAAM,CAACK,EAAS,CACjC,GAAI,CAAC1zC,EACD,MAAM,AAAI2zC,MAAM,qDAAuDD,GAE3EV,GAAmBhzC,EAAM+zC,YAAY,CAAEr6B,EAC3C,EAQA05B,EAAc/+C,SAAS,CAAC6/C,gBAAgB,CAAG,SAAUC,CAAS,EAC1D,IAAI5jC,EAAQ,IAAI,CAIhB,GAFA,IAAI,CAAC+iC,UAAU,CAAGa,EAAUj7C,KAAK,IAE7B,IAAI,CAACk7C,oBAAoB,IAG7B,IAAIC,EAAWF,EAAUh9C,OAAO,CAAC,UAC7Bm9C,EAAaD,EAAW,GAAKF,EAAUj7C,KAAK,CAAC,EAC7Cm7C,GAAYF,EACZI,EAAYF,EAAW,GAAKF,EAAUj7C,KAAK,CAACm7C,EAAW,GAAK,EAAE,CAE9D/tB,EAAgBysB,GAAkBzsB,aAAa,CAEnD,CAAC,SAAU,QAAQ,CAAC3pB,OAAO,CAAC,SAAUnG,CAAG,EACrC,IAAIg+C,EAAejkC,CAAK,CAAC/Z,AAAQ,WAARA,EACjB,+BACA,8BAA8B,CAEtC28C,GAA+BqB,GAC/B71C,AAFWnI,CAAAA,AAAQ,WAARA,EAAmB89C,EAAaC,CAAQ,EAE9C53C,OAAO,CAAC,SAAU+2C,CAAQ,EAC3B,IAAI1zC,EAAQuQ,EAAM8iC,MAAM,CAACK,EAAS,CAC9B1zC,GACAw0C,EAAah6C,WAAW,CAACwF,EAAM+zC,YAAY,CAEnD,EACJ,GAGK,CAAA,IAAI,CAACR,4BAA4B,CAAC7xB,QAAQ,CAAC4E,IAC5C,IAAI,CAACmtB,2BAA2B,CAAC/xB,QAAQ,CAAC4E,EAAa,GACvDA,GAAiBA,EAActb,KAAK,EACpCsb,EAActb,KAAK,GAE3B,EAIAooC,EAAc/+C,SAAS,CAACwoB,UAAU,CAAG,SAAU62B,CAAQ,EACnD,IAAI1zC,EAAQ,IAAI,CAACqzC,MAAM,CAACK,EAAS,CACjC,GAAI,CAAC1zC,EACD,MAAM,AAAI2zC,MAAM,+CAAiDD,GAErEP,GAA+BnzC,EAAM4zC,qBAAqB,CAC9D,EAMAR,EAAc/+C,SAAS,CAACsyB,WAAW,CAAG,SAAU+sB,CAAQ,EACpD,IAAI1zC,EAAQ,IAAI,CAACqzC,MAAM,CAACK,EAAS,CAC7B1zC,IAEA,IAAI,CAACwG,kBAAkB,CAACrM,aAAa,CAAC6F,EAAM+zC,YAAY,EAGpD/zC,EAAM+zC,YAAY,GAAK/zC,EAAM4zC,qBAAqB,EAClD,IAAI,CAACptC,kBAAkB,CAACrM,aAAa,CAAC6F,EAAM4zC,qBAAqB,EAErE,OAAO,IAAI,CAACP,MAAM,CAACK,EAAS,CAEpC,EAIAN,EAAc/+C,SAAS,CAACgsB,MAAM,CAAG,WAC7B,IAAI,CAACo0B,2BAA2B,GAChC,IAAI,CAACP,gBAAgB,CAAC,IAAI,CAACZ,UAAU,EACrC,IAAI,CAACoB,2BAA2B,EACpC,EAIAtB,EAAc/+C,SAAS,CAACqgD,2BAA2B,CAAG,WAClD3gD,OAAO4K,IAAI,CAAC,IAAI,CAAC00C,MAAM,EAAE12C,OAAO,CAAC,IAAI,CAACooB,gCAAgC,CAAC+Q,IAAI,CAAC,IAAI,EACpF,EAKAsd,EAAc/+C,SAAS,CAAC0wB,gCAAgC,CAAG,SAAU2uB,CAAQ,EACzE,IAAI1zC,EAAQ,IAAI,CAACqzC,MAAM,CAACK,EAAS,CAC7B1zC,GACAA,EAAM6zC,aAAa,CAACl3C,OAAO,CAAC,SAAU5F,CAAE,EAAI,OAAOA,EAAGqvB,eAAe,EAAI,EAEjF,EAIAgtB,EAAc/+C,SAAS,CAAC2R,OAAO,CAAG,WAC9B,IAAI,CAACQ,kBAAkB,CAACpB,sBAAsB,EAClD,EAMAguC,EAAc/+C,SAAS,CAACm/C,uBAAuB,CAAG,SAAUmB,CAAgB,EACxE,IAAI59C,EAAK,IAAI,CAACyP,kBAAkB,CAACxB,aAAa,CAAC,OAW/C,OAVAjO,EAAGqM,YAAY,CAAC,cAAe,SAC/BrM,EAAGC,SAAS,CAAG,kCAAqC29C,CAAAA,EAAmB,IAAMA,EAAmB,EAAC,EACjG1B,GAAkBl8C,EAAI,CAClBqyB,IAAK,IACL1iB,KAAM,GACV,GACK,IAAI,CAAC9K,KAAK,CAACgT,UAAU,GACtB7X,EAAG8U,KAAK,CAAC9Q,UAAU,CAAG,SACtBhE,EAAG8U,KAAK,CAACtV,QAAQ,CAAG,YAEjBQ,CACX,EAKAq8C,EAAc/+C,SAAS,CAACugD,yBAAyB,CAAG,WAChD,IAAIrkC,EAAQ,IAAI,CACZskC,EAAyB,SAAU99C,CAAE,EAGrC,IAFI,IAAI+9C,EAAY/gD,OAAO4K,IAAI,CAAC4R,EAAM8iC,MAAM,EACxC77C,EAAIs9C,EAAUr9C,MAAM,CACjBD,KAAK,CACR,IAAIk8C,EAAWoB,CAAS,CAACt9C,EAAE,CACvBwI,EAAQuQ,EAAM8iC,MAAM,CAACK,EAAS,CAClC,GAAI1zC,GAASjJ,IAAOiJ,EAAM+zC,YAAY,CAClC,OAAOL,CAEf,CACJ,EACIqB,EAAwB,SAAUh+C,CAAE,EAGpC,IAAK,IAFGi+C,EAAgB,EAAE,CACtBt3B,EAAW3mB,EAAG2mB,QAAQ,CACjBlmB,EAAI,EAAGA,EAAIkmB,EAASjmB,MAAM,CAAE,EAAED,EAAG,CACtC,IAAIk8C,EAAWmB,EAAuBn3B,CAAQ,CAAClmB,EAAE,EAC7Ck8C,GACAsB,EAAcr9C,IAAI,CAAC+7C,EAE3B,CACA,OAAOsB,CACX,EACIrgC,EAASogC,EAAsB,IAAI,CAACxB,4BAA4B,EAChEj+B,EAAQy/B,EAAsB,IAAI,CAACtB,2BAA2B,EAElE,OADA9+B,EAAOhd,IAAI,CAAC,UACLgd,EAAOpD,MAAM,CAAC+D,EACzB,EAKA89B,EAAc/+C,SAAS,CAAC+/C,oBAAoB,CAAG,WAC3C,IAAI7jC,EAAQ,IAAI,CACZ0kC,EAAW,IAAI,CAACL,yBAAyB,GACzCM,EAAuB,IAAI,CAAC5B,UAAU,CAACp4C,MAAM,CAAC,SAAUzE,CAAC,EAAI,MAAOA,AAAM,WAANA,GAAkB,CAAC,CAAC8Z,EAAM8iC,MAAM,CAAC58C,EAAE,AAAE,GACzGe,EAAIy9C,EAASx9C,MAAM,CACvB,GAAID,IAAM09C,EAAqBz9C,MAAM,CACjC,MAAO,CAAA,EAEX,KAAOD,KACH,GAAIy9C,CAAQ,CAACz9C,EAAE,GAAK09C,CAAoB,CAAC19C,EAAE,CACvC,MAAO,CAAA,EAGf,MAAO,CAAA,CACX,EAKA47C,EAAc/+C,SAAS,CAACogD,2BAA2B,CAAG,WAClD,IAAI74C,EAAQ,IAAI,CAACA,KAAK,CAEtB,IAAIA,EAAM6E,QAAQ,CAACC,SAAS,EAG5B,IAAIy0C,EAAgBv5C,EAAM6E,QAAQ,CAAC4J,GAAG,CACtCzO,EAAM2O,SAAS,CAACL,YAAY,CAAC,IAAI,CAACupC,2BAA2B,CAAE0B,EAAc1/B,WAAW,EACxF7Z,EAAM2O,SAAS,CAACL,YAAY,CAAC,IAAI,CAACqpC,4BAA4B,CAAE4B,GAChEjC,GAAuC,IAAI,CAACt3C,KAAK,CAAE,IAAI,CAAC63C,2BAA2B,EACnFP,GAAuC,IAAI,CAACt3C,KAAK,CAAE,IAAI,CAAC23C,4BAA4B,EACxF,EACOH,CACX,IAqBIgC,IACIziD,EAAgB,SAAUe,CAAC,CAC3B+U,CAAC,EAOD,MAAO9V,AANHA,CAAAA,EAAgBoB,OAAO2U,cAAc,EAChC,CAAA,CAAEC,UAAW,EAAE,AAAC,CAAA,YAAapF,OAAS,SAAU7P,CAAC,CAC1D+U,CAAC,EAAI/U,EAAEiV,SAAS,CAAGF,CAAG,GACd,SAAU/U,CAAC,CACnB+U,CAAC,EAAI,IAAK,IAAI9I,KAAK8I,EAAO1U,OAAOM,SAAS,CAACC,cAAc,CAACC,IAAI,CAACkU,EAC/D9I,IAAIjM,CAAAA,CAAC,CAACiM,EAAE,CAAG8I,CAAC,CAAC9I,EAAE,AAAD,CAAG,CAAA,EACIjM,EAAG+U,EAC5B,EACO,SAAU/U,CAAC,CAAE+U,CAAC,EACjB,GAAI,AAAa,YAAb,OAAOA,GAAoBA,AAAM,OAANA,EAC3B,MAAM,AAAIoK,UAAU,uBAAyBC,OAAOrK,GAAK,iCAE7D,SAASG,IAAO,IAAI,CAACC,WAAW,CAAGnV,CAAG,CADtCf,EAAce,EAAG+U,GAEjB/U,EAAEW,SAAS,CAAGoU,AAAM,OAANA,EAAa1U,OAAO+U,MAAM,CAACL,GAAMG,CAAAA,EAAGvU,SAAS,CAAGoU,EAAEpU,SAAS,CAAE,IAAIuU,CAAG,CACtF,GAKAysC,GAAkDp1C,EAAqBkD,wBAAwB,CAAEmyC,GAAiDr1C,EAAqBoB,uBAAuB,CAG9Lk0C,GAAkC,AAAC5gD,IAA+E0Q,QAAQ,CAAEmwC,GAA8B,AAAC7gD,IAA+E0Z,IAAI,CA8B9OonC,GAAwC,SAAUrsC,CAAM,EAExD,SAASqsC,IACL,OAAOrsC,AAAW,OAAXA,GAAmBA,EAAOnE,KAAK,CAAC,IAAI,CAAEC,YAAc,IAAI,AACnE,CA2WA,OA9WAkwC,GAA+BK,EAAwBrsC,GAcvDqsC,EAAuBphD,SAAS,CAAC6R,IAAI,CAAG,WACpC,IAAItK,EAAQ,IAAI,CAACA,KAAK,AACtB,CAAA,IAAI,CAAC6Y,SAAS,CAAG,IA17P2BvE,GA07PPtU,EAAO,SAChD,EAIA65C,EAAuBphD,SAAS,CAAC+R,aAAa,CAAG,WAC7C,IAAIxK,EAAQ,IAAI,CAACA,KAAK,CAClBoY,EAAY,IAAI,CAChByV,EAAgB7tB,EAAM6tB,aAAa,CAClCA,IAGL,IAAI,CAACisB,wBAAwB,GAC7B,IAAI,CAACC,gBAAgB,GACjBlsB,EAAc7yB,OAAO,EACrB6yB,EAAc7yB,OAAO,CAACa,MAAM,EAC5BgyB,EAAc7yB,OAAO,CAAC+F,OAAO,CAAC,SAAUvG,CAAM,EAC1C4d,EAAU4hC,mBAAmB,CAACx/C,EAClC,GAGAqzB,EAAcosB,QAAQ,EAAIpsB,EAAcqsB,QAAQ,EAChD,CAAC,WAAY,WAAW,CAACn5C,OAAO,CAAC,SAAU9I,CAAG,CAAE2D,CAAC,EAC7C,IAAIu+C,EAAQtsB,CAAa,CAAC51B,EAAI,CAC1BkiD,IACAV,GAAgDz5C,EAAOm6C,GACvD/hC,EAAUgiC,kBAAkB,CAACD,EAAO,+BAAkCv+C,CAAAA,EAAI,MAAQ,KAAI,EAClF,cAEZ,GAER,EAKAi+C,EAAuBphD,SAAS,CAACqhD,wBAAwB,CAAG,WACxD,IAAI95C,EAAQ,IAAI,CAACA,KAAK,CAClB6tB,EAAgB7tB,EAAM6tB,aAAa,CACnCwsB,EAAYxsB,GACRA,EAAcwsB,QAAQ,CAC1Br/C,EAAW6yB,GACPA,EAAc7yB,OAAO,EACrB,EAAE,CACNs/C,EAAa,SAAUn/C,CAAE,EAAI,OAAOA,EAAGqM,YAAY,CAAC,cACpD,CAAA,EAAO,CACPqmB,CAAAA,GACAA,EAAc0sB,kBAAkB,EAChCF,GACAZ,GAAgDz5C,EAAOq6C,GACvDr/C,EAAQ+F,OAAO,CAAC,SAAUy5C,CAAG,EAAI,OAAOF,EAAWE,EAAIz9C,OAAO,CAAG,KAG7Ds9C,GACAC,EAAWD,GAEfr/C,EAAQ+F,OAAO,CAAC,SAAUy5C,CAAG,EAAI,OAAOf,GAAgDz5C,EAAOw6C,EAAIz9C,OAAO,CAAG,GAErH,EAKA88C,EAAuBphD,SAAS,CAACshD,gBAAgB,CAAG,WAChD,IAAI/5C,EAAQ,IAAI,CAACA,KAAK,CAClBq6C,EAAYr6C,EAAM6tB,aAAa,EAC3B7tB,EAAM6tB,aAAa,CAACwsB,QAAQ,CACpC,GAAIA,EAAU,CACV,IAAI3rC,EAAQ1O,EAAM6C,UAAU,CAAC,4CAA6C,CAAE43C,WAAYz6C,EAAMgD,OAAO,CAACC,IAAI,CAACy3C,iBAAiB,AAAC,GAC7HL,EAAS7yC,YAAY,CAAC,aAAckH,GACpC2rC,EAAS7yC,YAAY,CAAC,WAAY,GACtC,CACJ,EAKAqyC,EAAuBphD,SAAS,CAACuhD,mBAAmB,CAAG,SAAUx/C,CAAM,EACnEo/C,GAA4Bp/C,EAAOuC,OAAO,CAAE,CACxCihB,SAAU,GACVgE,KAAM,QACV,EACJ,EAKA63B,EAAuBphD,SAAS,CAAC2hD,kBAAkB,CAAG,SAAUD,CAAK,CAAEr3C,CAAO,EAC1E,IAAI9C,EAAQ,IAAI,CAACA,KAAK,CACtB45C,GAA4BO,EAAO,CAC/Bn8B,SAAU,GACV,aAAche,EAAM6C,UAAU,CAACC,EAAS,CAAE9C,MAAOA,CAAM,EAC3D,EACJ,EAKA65C,EAAuBphD,SAAS,CAACkiD,sBAAsB,CAAG,SAAUp4B,CAAyB,CAAE/V,CAAO,EAClG,IAAIP,EAAWsW,EAA0BtW,QAAQ,CAC7ClJ,EAAO,IAAI,CAAC8H,QAAQ,CACpB7K,EAAQ,IAAI,CAACA,KAAK,CAClB2iB,EAAa3iB,EAAMgD,OAAO,CAACmC,aAAa,CACnC+J,kBAAkB,CAACyT,UAAU,CAClC8C,EAAY,AAACjZ,IAAYzJ,EAAK+H,IAAI,EAAI0B,IAAYzJ,EAAKiI,EAAE,CAAI,GAAK,SAEtE,AADmBhL,EAAM46C,4BAA4B,CAAC56C,EAAM66C,8BAA8B,CAAGp1B,GAQtFxZ,EAASC,OAAO,CANnB,AAAIyW,GACAJ,EAA0BjY,IAAI,CAACmb,GACxBxZ,EAASC,OAAO,EAEpBD,CAAQ,CAACwZ,EAAY,EAAI,OAAS,OAAO,AAGxD,EAKAo0B,EAAuBphD,SAAS,CAACqiD,mBAAmB,CAAG,SAAUv4B,CAAyB,EACtF,IAAItW,EAAWsW,EAA0BtW,QAAQ,CAC7CjM,EAAQ,IAAI,CAACA,KAAK,CAKtB,OAJsD,IAApCA,EAAM+6C,yBAAyB,EAE7C,IAAI,CAACrvC,cAAc,CAAC1L,EAAM6tB,aAAa,CAAC7yB,OAAO,CAACgF,EAAM66C,8BAA8B,CAAC,CAAC99C,OAAO,EAE1FkP,EAASC,OAAO,AAC3B,EAMA2tC,EAAuBphD,SAAS,CAACuiD,eAAe,CAAG,WAC/C,IAAIh7C,EAAQ,IAAI,CAACA,KAAK,CAClBwqC,EAAuBkP,GAA+C15C,EAAMiI,KAAK,CAAC,EAAE,EACpFgzC,EAAej7C,EAAM6C,UAAU,CAAC,sDAAuD,CAAE7C,MAAOA,EAChGwqC,qBAAsBA,CAAqB,GAC3CyQ,GACA,IAAI,CAACpiC,SAAS,CAACpE,QAAQ,CAACwmC,EAEhC,EAKApB,EAAuBphD,SAAS,CAACyiD,cAAc,CAAG,SAAUz1B,CAAS,EACjE,IAAIzlB,EAAQ,IAAI,CAACA,KAAK,CAClBm7C,EAAWn7C,EAAM6tB,aAAa,CAC9ButB,EAAQp7C,EAAMq7C,uBAAuB,CAAG,AAACr7C,CAAAA,EAAMq7C,uBAAuB,EAAI,CAAA,EAAK51B,EAEnF,GADsB21B,EAAQ,GAAKA,EAAQ,EAEvC,CAAA,GAAIp7C,EAAMmF,aAAa,CAKnB,OAHAnF,EAAMmF,aAAa,CAAC+J,kBAAkB,CAAC0W,OAAO,CAAG,CAAA,EACjD5lB,EAAMmF,aAAa,CAAC+J,kBAAkB,CAACC,iBAAiB,CACnDC,KAAK,GACHpP,EAAMmF,aAAa,CAAC+J,kBAAkB,CAACsW,IAAI,CAACC,EACvD,MAEC,GAAI01B,EAAU,CACf,IAAI94B,EAAQ84B,CAAQ,CAACC,EAAQ,aAAe,aAAa,CACrDE,EAAUH,CAAQ,CAACC,EAAQ,WAAa,WAAW,CACnD/4B,GAASi5B,GACTt7C,EAAM+T,iBAAiB,CAACsO,EAAOi5B,EAEvC,CACA,MAAO,CAAA,CACX,EAKAzB,EAAuBphD,SAAS,CAAC8iD,cAAc,CAAG,SAAU91B,CAAS,EACjE,IAAI9Q,EAAQ,IAAI,CACZyD,EAAY,IAAI,CAChBpY,EAAQ,IAAI,CAACA,KAAK,CAClBw7C,EAAsB/1B,EAAY,EAAI,EAAI,EAC1C01B,EAAWn7C,EAAM6tB,aAAa,CAC9BxL,EAAS84B,GACLA,CAAQ,CAACK,EAAsB,aAAe,aAAa,CAC/DtB,EAAYiB,GAAYA,EAASjB,QAAQ,CACzCD,EAAYkB,GAAYA,EAASlB,QAAQ,CAG7C,GADAj6C,EAAMq7C,uBAAuB,CAAGG,EAC5Bn5B,GAAS63B,GAAYD,EAAU,CAC/Bj6C,EAAM+T,iBAAiB,CAACsO,EAHdm5B,EAAsBvB,EAAWC,GAMvC,IAAI,CAACuB,yBAAyB,EAC9B,IAAI,CAACA,yBAAyB,GAElC,IAAIC,EAAiB,SAAUpiD,CAAC,EACXA,CAAAA,EAAEmT,KAAK,EAAInT,EAAEkT,OAAO,AAAD,IAAOmI,EAAM9J,QAAQ,CAACQ,GAAG,EAEzD+M,EAAU8iC,cAAc,CAAC5hD,EAAEgB,QAAQ,CAAG,GAAK,KAC3ChB,EAAEgD,cAAc,GAChBhD,EAAEilB,eAAe,GAEzB,EACIo9B,EAAehC,GAAgCO,EAAU,UACzDwB,GACAE,EAAejC,GAAgCM,EAAU,UACzDyB,EACJ,CAAA,IAAI,CAACD,yBAAyB,CAAG,WAC7BE,IACAC,GACJ,CACJ,CACJ,EAKA/B,EAAuBphD,SAAS,CAACojD,mBAAmB,CAAG,WACnD,IAAIV,EAAY,IAAI,CAACn7C,KAAK,CAAC6tB,aAAa,EAAI,CAAC,CACzCstB,CAAAA,EAASlB,QAAQ,EACjBkB,EAASW,SAAS,CAAC,OAEnBX,EAASjB,QAAQ,EACjBiB,EAASW,SAAS,CAAC,OAEnB,IAAI,CAACL,yBAAyB,GAC9B,IAAI,CAACA,yBAAyB,GAC9B,OAAO,IAAI,CAACA,yBAAyB,CAE7C,EAKA5B,EAAuBphD,SAAS,CAACsjD,eAAe,CAAG,WAC/C,IAAIpnC,EAAQ,IAAI,CACZ3U,EAAQ,IAAI,CAACA,KAAK,CAClB6tB,EAAgB7tB,EAAM6tB,aAAa,CACnCwsB,EAAYxsB,GAAiBA,EAAcwsB,QAAQ,CACnDxsB,GAAiBwsB,IACjBr6C,EAAM+T,iBAAiB,CAAC8Z,EAAcmuB,WAAW,CAAE3B,GAC/C,IAAI,CAAC4B,4BAA4B,EACjC,IAAI,CAACA,4BAA4B,GAIrC,IAAI,CAACA,4BAA4B,CAAGtC,GAAgCU,EAAU,UAAW,SAAU/gD,CAAC,EAChG,IAAI4iD,EAAQ,AAAC5iD,CAAAA,EAAEmT,KAAK,EAAInT,EAAEkT,OAAO,AAAD,IAAOmI,EAAM9J,QAAQ,CAACQ,GAAG,CACrD4D,EAAOjP,EAAMmF,aAAa,CAC1B+2C,IACA5iD,EAAEgD,cAAc,GAChBhD,EAAEilB,eAAe,GACbtP,GACAA,EAAKC,kBAAkB,CAACsW,IAAI,CAAClsB,EAAEgB,QAAQ,CAAG,GAAK,GAG3D,GAER,EAMAu/C,EAAuBphD,SAAS,CAAC0jD,gCAAgC,CAAG,WAChE,IAAIn8C,EAAQ,IAAI,CAACA,KAAK,CAClB+C,EAAO,IAAI,CAAC8H,QAAQ,CACpBuN,EAAY,IAAI,CACpB,OAAO,IA3yR6DvM,GA2yRjB7L,EAAO,CACtD8L,WAAY,CACR,CACI,CAAC/I,EAAK+H,IAAI,CAAE/H,EAAKgI,KAAK,CAAEhI,EAAKiI,EAAE,CAAEjI,EAAKkI,IAAI,CAAC,CAC3C,SAAUuB,CAAO,EACb,OAAO4L,EAAUuiC,sBAAsB,CAAC,IAAI,CAAEnuC,EAClD,EACH,CACD,CACI,CAACzJ,EAAKmI,KAAK,CAAEnI,EAAKoI,KAAK,CAAC,CACxB,WACI,OAAOiN,EAAU0iC,mBAAmB,CAAC,IAAI,CAC7C,EACH,CACJ,CACD/uC,SAAU,WACN,MAAO,CAAC,CAAE/L,CAAAA,EAAM6tB,aAAa,EACzB7tB,EAAM6tB,aAAa,CAAC7yB,OAAO,EAC3BgF,EAAM6tB,aAAa,CAAC7yB,OAAO,CAACa,MAAM,AAAD,CACzC,EACAyO,KAAM,SAAUmb,CAAS,EACrB,IAAIoI,EAAgB7tB,EAAM6tB,aAAa,CACvC,GAAIA,GAAiBA,EAAc0sB,kBAAkB,CACjDniC,EAAU2jC,eAAe,QAExB,GAAIluB,EAAe,CACpB,IAAIuuB,EAAevuB,EAAc7yB,OAAO,CAACa,MAAM,CAAG,EAClDmE,EAAM46C,4BAA4B,CAACn1B,EAAY,EAAI,EAAI22B,EAC3D,CACJ,EACApwC,UAAW,WACHoM,EAAU6jC,4BAA4B,GACtC7jC,EAAU6jC,4BAA4B,GACtC,OAAO7jC,EAAU6jC,4BAA4B,CAErD,CACJ,EACJ,EAOApC,EAAuBphD,SAAS,CAAC4jD,+BAA+B,CAAG,WAC/D,IAAIr8C,EAAQ,IAAI,CAACA,KAAK,CAClBoY,EAAY,IAAI,CACpB,OAAO,IA11R6DvM,GA01RjB7L,EAAO,CACtD8L,WAAY,EAAE,CACdC,SAAU,WACN,MA/VL44B,CAAAA,CAAQ3kC,CAAAA,AA+V6BA,EA/VvB6tB,aAAa,EAC9B7tB,AA8VwCA,EA9VlC6tB,aAAa,CAACyuB,UAAU,EAC9Bt8C,AAA4D,WAA5DA,AA6VwCA,EA7VlC6tB,aAAa,CAACyuB,UAAU,CAACv/C,OAAO,CAACkT,KAAK,CAACka,UAAU,EACvDnqB,AAA6C,CAAA,IAA7CA,AA4VwCA,EA5VlCgD,OAAO,CAAC6qB,aAAa,CAAC0uB,YAAY,EACxCv8C,AA2VwCA,EA3VlC6tB,aAAa,CAACqsB,QAAQ,EAC5Bl6C,AA0VwCA,EA1VlC6tB,aAAa,CAACosB,QAAQ,AAAD,CA2VvB,EACA3vC,KAAM,SAAUmb,CAAS,EACrBrN,EAAUmjC,cAAc,CAAC91B,EAC7B,EACAzZ,UAAW,WACPoM,EAAUyjC,mBAAmB,EACjC,CACJ,EACJ,EAMAhC,EAAuBphD,SAAS,CAAC4R,qBAAqB,CAAG,WACrD,MAAO,CACH,IAAI,CAAC8xC,gCAAgC,GACrC,IAAI,CAACE,+BAA+B,GACvC,AACL,EAIAxC,EAAuBphD,SAAS,CAAC2R,OAAO,CAAG,WACnC,IAAI,CAAC6xC,4BAA4B,EACjC,IAAI,CAACA,4BAA4B,GAEjC,IAAI,CAACR,yBAAyB,EAC9B,IAAI,CAACA,yBAAyB,GAE9B,IAAI,CAAC5iC,SAAS,EACd,IAAI,CAACA,SAAS,CAACzO,OAAO,EAE9B,EACOyvC,CACX,EAp+RyE1vC,KA0+RzE,AAAC,SAAU0vC,CAAsB,EAiB7B,SAAS2C,EAAkCh6C,CAAE,EACzC,IAAIxH,EAAW,IAAI,CAAC6yB,aAAa,EACzB,IAAI,CAACA,aAAa,CAAC7yB,OAAO,EAC1B,EAAE,CACNyhD,EAAmB,IAAI,CAAC5B,8BAA8B,CACtD6B,EAAiB,IAAI,CAAC7uB,aAAa,EAC/B,IAAI,CAACA,aAAa,CAAC8uB,QAAQ,QASnC,AAPgC,KAAA,IAArBF,GACPzhD,CAAO,CAACyhD,EAAiB,EACzBA,IAAqBC,GACrB1hD,CAAO,CAACyhD,EAAiB,CAAC3zB,QAAQ,CAAC,IAAI,CAACiyB,yBAAyB,EAAI,GAGzE,IAAI,CAACF,8BAA8B,CAAGr4C,IAClCxH,CAAO,CAACwH,EAAG,GACX,IAAI,CAACuR,iBAAiB,CAAC/Y,CAAO,CAACwH,EAAG,CAACiM,GAAG,CAAEzT,CAAO,CAACwH,EAAG,CAACzF,OAAO,EACvDyF,IAAOk6C,IACP,IAAI,CAAC3B,yBAAyB,CAAG//C,CAAO,CAACwH,EAAG,CAACo6C,KAAK,CAClD5hD,CAAO,CAACwH,EAAG,CAACsmB,QAAQ,CAAC,IAElB,CAAA,EAGf,CAkBA,SAAS+zB,IACL,IAAI5tC,EAAO,IAAI,CAACjP,KAAK,CAACmF,aAAa,CACnC,GAAI8J,GAAQA,EAAKmV,UAAU,CAACyJ,aAAa,CACrC,OAAO5e,EAAKmV,UAAU,CAACyJ,aAAa,CAACmtB,eAAe,EAE5D,CAXAnB,EAAuB32C,OAAO,CAP9B,SAAiBC,CAAU,CAAE25C,CAAkB,EAC3C,IAAI15C,EAAaD,EAAW1K,SAAS,AAChC2K,CAAAA,EAAWw3C,4BAA4B,GACxCx3C,EAAWw3C,4BAA4B,CAAI4B,EAC3C7C,GAAgCmD,EAAoB,gBAAiBD,GAE7E,CAaJ,EAAGhD,IAA2BA,CAAAA,GAAyB,CAAC,CAAA,GAM3B,IAAIkD,GAAqClD,GAgBlEmD,GAAyB,AAACjkD,IAA+EgC,QAAQ,CAEjHkiD,GAAyB,AAAClkD,IAA+E0Q,QAAQ,CAAEyzC,GAAsB,AAACnkD,IAA+E4zB,KAAK,CAAEwwB,GAA2B,AAACpkD,IAA+Eo2B,UAAU,EAOzV,AAAC,SAAU/3B,CAAwB,EA0B/B,SAASgmD,EAA8Bp6C,CAAO,EAC1Ck6C,GAAoB,CAAA,EAAMl6C,EAAS,CAC/B6vB,OAAQ,CACJhjB,QAAS,CAAA,EACT+1B,OAAQ,CACJyX,OAAQ,CACJ99C,QAAS,CACb,CACJ,CACJ,CACJ,EACJ,CAIA,SAAS+9C,EAAsBC,CAAY,EACvC,OAAOA,EAAa1qB,MAAM,CAAC+S,MAAM,EAC7B2X,EAAa1qB,MAAM,CAAC+S,MAAM,CAACyX,MAAM,EACjCE,EAAa1qB,MAAM,CAAC+S,MAAM,CAACyX,MAAM,CAAC99C,OAAO,AACjD,CA4BA,SAASi+C,EAAgC55C,CAAM,EAC3C,MAAO,CAAC,CAAEA,CAAAA,EAAO65C,gBAAgB,EAC7B75C,EAAOC,MAAM,EACbD,EAAOC,MAAM,CAAChI,MAAM,AAAD,CAC3B,CAeA,SAAS6hD,IAID95C,AAHS,IAAI,CAGN5D,KAAK,CAACgT,UAAU,GACnBpP,AAJK,IAAI,CAIF+5C,WAAW,EAClB/5C,AALK,IAAI,CAKF+5C,WAAW,CAAC/5C,AALd,IAAI,CAKiBg6C,iBAAiB,CAAG,WAAa,cAAc,CAAC,kCAG1EJ,EARK,IAAI,GAST55C,AATK,IAAI,CASFC,MAAM,CAAC9C,OAAO,CAAC,SAAUiH,CAAK,EAC7BA,EAAMhE,OAAO,GACbgE,EAAMhE,OAAO,CAACgE,EAAM61C,mBAAmB,CACnC,WAAa,cAAc,CAAC,iCAChC71C,EAAMhE,OAAO,CAACgE,AAA8B,CAAA,IAA9BA,EAAM61C,mBAAmB,CACnC,WACA,cAAc,CAAC,kCAE3B,GAGZ,CAKA,SAASC,EAAwBxkD,CAAC,EAC9B,IAAI,CAACykD,sBAAsB,CAAGb,GAAoB5jD,EAAE0J,OAAO,CAAC6vB,MAAM,EAAI,CAAC,EAAG,IAAI,CAACyI,WAAW,CAACzI,MAAM,EAAI,CAAC,EAC1G,CAKA,SAASmrB,IACL,IAoBwBp6C,EAhEpB4e,EAkEAy7B,EACAC,EAtBAl7C,EAAUY,AADD,IAAI,CACIZ,OAAO,EAmBJY,EApBX,IAAI,CAsBbq6C,EAAmBj+C,AADX4D,EAAO5D,KAAK,CACKgD,OAAO,CAACmC,aAAa,CAAC0K,OAAO,CACtDquC,EAAoB,AAC0B,CAAA,IADzBt6C,CAAAA,EAAOZ,OAAO,CAACmC,aAAa,EAC7CvB,EAAOZ,OAAO,CAACmC,aAAa,CAAC0K,OAAO,AAAD,EACnCouC,GACJC,IAtEA17B,EAAc5e,AAuEeA,EAvER5D,KAAK,CAACgD,OAAO,CAACmC,aAAa,CAC7CvB,AAsE0BA,EAtEnBC,MAAM,CAAChI,MAAM,CACvB2mB,EAAY5e,MAAM,CAAC4nC,gCAAgC,EACnDhpB,AAC0C,CAAA,IAD1CA,EAAY5e,MAAM,CACb4nC,gCAAgC,IA2CjCxoC,EAAQ6vB,MAAM,EAAI7vB,AAA2B,CAAA,IAA3BA,EAAQ6vB,MAAM,CAAChjB,OAAO,GACxCjM,AAJK,IAAI,CAIFg6C,iBAAiB,CAAG,CAAA,EAC3BR,EAA8Bx5C,AALzB,IAAI,CAK4BZ,OAAO,GAE5Cw6C,EAPK,IAAI,GAQTW,AArFZ,SAAiCv6C,CAAM,EAEnC,IADA,IAAIhI,EAAIgI,EAAOC,MAAM,CAAChI,MAAM,CACrBD,KAAK,CACR,IAAIoM,EAAQpE,EAAOC,MAAM,CAACjI,EAAE,CACxB2hD,EAAev1C,EAAMhF,OAAO,CAC5Bo7C,EAAkBp2C,EAAM61C,mBAAmB,CAE/C,GADA,OAAO71C,EAAM61C,mBAAmB,CAC5BN,EAAa1qB,MAAM,CAAE,CACrB,IAAIwrB,EAAsBD,GAClBd,AAAwC,IAAxCA,EAAsBC,EAC1BA,CAAAA,EAAa1qB,MAAM,CAAChjB,OAAO,EAAI,CAACwuC,GAoG5CnB,GAAoB,CAAA,EAAMK,AAnGYA,EAmGC1qB,MAAM,CAAE,CAC3C+S,OAAQ,CACJyX,OAAQ,CACJ99C,QAAS+9C,EAtGiBC,IAsGsB,CACpD,CACJ,CACJ,GAxGYv1C,EAAM61C,mBAAmB,CAAG,CAAA,GAES,CAAA,IAAhCN,EAAa1qB,MAAM,CAAChjB,OAAO,GAChCutC,EAA8BG,GAC9Bv1C,EAAM61C,mBAAmB,CAAG,CAAA,EAEpC,CACJ,CACJ,EAyDiB,IAAI,GAWRj6C,AAXI,IAAI,CAWDg6C,iBAAiB,GAC7B,OAAOh6C,AAZE,IAAI,CAYCg6C,iBAAiB,CAC/BU,AAgCR,SAAoC16C,CAAM,EACtC,IAAI26C,EAAqB36C,EAAOm6C,sBAAsB,CACtD,GAAIQ,EAAoB,CACpB,IAAIC,EAAkBD,EAAmB3Y,MAAM,EACvC2Y,EAAmB3Y,MAAM,CAACyX,MAAM,EAChCkB,EAAmB3Y,MAAM,CAACyX,MAAM,CAAC99C,OAAO,AAG5CqE,CAAAA,EAAO03B,WAAW,EAAI13B,EAAO03B,WAAW,CAACzI,MAAM,EAC/CjvB,CAAAA,EAAO03B,WAAW,CAACzI,MAAM,CAAChjB,OAAO,CAAG,CAAA,CAAG,EAE3CjM,EAAO6gB,MAAM,CAAC,CACVoO,OAAQ,CACJhjB,QAAS0uC,EAAmB1uC,OAAO,CACnC+1B,OAAQ,CACJyX,OAAQ,CAAE99C,QAASi/C,CAAgB,CACvC,CACJ,CACJ,EACJ,CACJ,EAjEiB,IAAI,EAcb,OAAO56C,AAdE,IAAI,CAcCm6C,sBAAsB,CAE5C,CAsDA,SAASU,IACD,IAAI,CAAC3hB,OAAO,EAAI,IAAI,CAAC8gB,iBAAiB,GACtCV,GAAoB,CAAA,EAAM,IAAI,CAACl6C,OAAO,CAAE,CACpC6vB,OAAQ,CACJhjB,QAAS,CAAA,CACb,CACJ,GACA,OAAO,IAAI,CAAC+tC,iBAAiB,CAErC,CAvLAxmD,EAAyB8L,OAAO,CARhC,SAAiBiyB,CAAW,EACpBgoB,GAAyBH,GAAwB,aACjDC,GAAuB9nB,EAAa,kBAAmB2oB,GACvDb,GAAuB9nB,EAAa,SAAU6oB,GAC9Cf,GAAuB9nB,EAAa,cAAeuoB,GACnDT,GAAuB9nB,EAAa,eAAgBspB,GAE5D,CAyLJ,EAAGrnD,GAA6BA,CAAAA,EAA2B,CAAC,CAAA,GAM/B,IAAIsnD,GAAiBtnD,EAG9CunD,GAA+FpnD,EAAoB,KACnHqnD,GAAmHrnD,EAAoBI,CAAC,CAACgnD,IAEzIE,GAAmGtnD,EAAoB,KACvHunD,GAAuHvnD,EAAoBI,CAAC,CAACknD,IAc7IE,GAAuE,WASvE,MAAOA,AARPA,CAAAA,GAAkC5mD,OAAO+kC,MAAM,EAAI,SAASC,CAAC,EACzD,IAAK,IAAI71B,EAAG1L,EAAI,EAAGjE,EAAI2R,UAAUzN,MAAM,CAAED,EAAIjE,EAAGiE,IAE5C,IAAK,IAAImI,KADTuD,EAAIgC,SAAS,CAAC1N,EAAE,CACKzD,OAAOM,SAAS,CAACC,cAAc,CAACC,IAAI,CAAC2O,EAAGvD,IACzDo5B,CAAAA,CAAC,CAACp5B,EAAE,CAAGuD,CAAC,CAACvD,EAAE,AAAD,EAElB,OAAOo5B,CACX,CAAA,EACuC9zB,KAAK,CAAC,IAAI,CAAEC,UACvD,EAII01C,GAAuC,AAAC5tB,KAA2IE,WAAW,CAE9L2tB,GAA+B,AAAClmD,IAA+EC,GAAG,CAElHkmD,GAAmC,AAACnmD,IAA+EyK,OAAO,CAAE27C,GAAqC,AAACpmD,IAA+E2K,SAAS,CAI1P07C,GAA0C/6C,EAAqB6C,cAAc,CAAEm4C,GAA6Ch7C,EAAqB+C,iBAAiB,CAAEk4C,GAA6Cj7C,EAAqB0D,iBAAiB,CAkB3P,SAASw3C,GAAcv3C,CAAK,EACxB,IAAI+F,EAAQ/F,EAAM+F,KAAK,CACnBlK,EAASmE,EAAMpE,MAAM,CAACC,MAAM,CAC5BjI,EAAIiI,EAAOhI,MAAM,CACrB,GAAIgI,CAAM,CAACkK,EAAM,GAAK/F,EAQlB,OAAO+F,EAPP,KAAOnS,KACH,GAAIiI,CAAM,CAACjI,EAAE,GAAKoM,EACd,OAAOpM,CAOvB,CAKA,SAAS4jD,GAAa57C,CAAM,EACxB,IACI6rC,EAAmBjtB,AADL5e,EAAO5D,KAAK,CAACgD,OAAO,CAACmC,aAAa,CACjB+J,kBAAkB,CAACihC,gBAAgB,CAClEnD,EAAoBppC,EAAOZ,OAAO,CAACmC,aAAa,EAAI,CAAC,EACrDs6C,EAAsBzS,EAAkB99B,kBAAkB,CAC9D,OAAOuwC,GAAuBA,AAAgC,CAAA,IAAhCA,EAAoB5vC,OAAO,EACrDm9B,AAA8B,CAAA,IAA9BA,EAAkBn9B,OAAO,EACzBjM,AAAuC,CAAA,IAAvCA,EAAOZ,OAAO,CAACuiC,mBAAmB,EAClC,CAAC3hC,EAAO8R,OAAO,EAGd+5B,EAAiBW,+BAA+B,EAC7C,CAACX,EAAiBW,+BAA+B,EAC7CxsC,EAAOC,MAAM,CAAChI,MAAM,AACpC,CAKA,SAAS6jD,GAAY13C,CAAK,EACtB,IAAIwa,EAAcxa,EAAMpE,MAAM,CAAC5D,KAAK,CAACgD,OAAO,CAACmC,aAAa,CACtDksC,EAAqBrpC,EAAMhF,OAAO,CAACmC,aAAa,EAC5C6C,AAAwC,CAAA,IAAxCA,EAAMhF,OAAO,CAACmC,aAAa,CAAC0K,OAAO,CAC3C,OAAO7H,EAAMgmC,MAAM,EACfxrB,EAAYtT,kBAAkB,CAACihC,gBAAgB,CAACwP,cAAc,EAC9D33C,AAAkB,CAAA,IAAlBA,EAAM0N,OAAO,EACb1N,AAAmB,CAAA,IAAnBA,EAAM43C,QAAQ,EACdvO,GACAmO,GAAax3C,EAAMpE,MAAM,CACjC,CAmBA,SAASi8C,GAA0B7/C,CAAK,EAGpC,IAAK,IAFD4D,EAAS5D,EAAM4D,MAAM,EAAI,EAAE,CAC3B3B,EAAM2B,EAAO/H,MAAM,CACdD,EAAI,EAAGA,EAAIqG,EAAK,EAAErG,EACvB,GAAI,CAAC4jD,GAAa57C,CAAM,CAAChI,EAAE,EAAG,CAC1B,IAAIoM,EAAQ83C,AAnBxB,SAAoCl8C,CAAM,EAGtC,IAAK,IAFDC,EAASD,EAAOC,MAAM,EAAI,EAAE,CAC5B5B,EAAM4B,EAAOhI,MAAM,CACdD,EAAI,EAAGA,EAAIqG,EAAK,EAAErG,EACvB,GAAI,CAAC8jD,GAAY77C,CAAM,CAACjI,EAAE,EACtB,OAAOiI,CAAM,CAACjI,EAAE,CAGxB,OAAO,IACX,EAUmDgI,CAAM,CAAChI,EAAE,EAChD,GAAIoM,EACA,OAAOA,CAEf,CAEJ,OAAO,IACX,CAIA,SAAS+3C,GAA+B//C,CAAK,EAIzC,IAFA,IAAIpE,EADYoE,EAAM4D,MAAM,CAAC/H,MAAM,CAE/BsL,EAAM,CAAA,EACHvL,MACHoE,EAAMggD,gBAAgB,CAAGhgD,EAAM4D,MAAM,CAAChI,EAAE,CAACiI,MAAM,CAAC7D,EAAM4D,MAAM,CAAChI,EAAE,CAACiI,MAAM,CAAChI,MAAM,CAAG,EAAE,EAIlFsL,CAAAA,EAAMnH,EAAM4D,MAAM,CAAChI,EAAE,CAACqkD,uBAAuB,EAAC,KAKlD,OAAO94C,CACX,CAgBA,SAAS+4C,GAAgClgD,CAAK,EAC1C,OAAOA,EAAMggD,gBAAgB,CAC7B,IAAIh4C,EAAQ63C,GAA0B7/C,GACtC,MAAOgI,EAAAA,GAAQA,EAAMm4C,SAAS,EAClC,CAWA,IAAIC,GAA0C,WAM1C,SAASA,EAAyBpgD,CAAK,CAAE6K,CAAQ,EAC7C,IAAI,CAACA,QAAQ,CAAGA,EAChB,IAAI,CAAC7K,KAAK,CAAGA,CACjB,CA6QA,OAnQAogD,EAAyB3nD,SAAS,CAAC6R,IAAI,CAAG,WACtC,IAAI4E,EAAqB,IAAI,CACzBlP,EAAQ,IAAI,CAACA,KAAK,CAClB1G,EAAI,IAAI,CAACqR,aAAa,CAAG,IA1oTmBjB,GA2oThDpQ,EAAEmQ,QAAQ,CAAEq1C,KAA4G,UAAW,WAC/H,OAAO5vC,EAAmBmxC,eAAe,CAAC,IAAI,CAClD,GACA/mD,EAAEmQ,QAAQ,CAACzJ,EAAO,sBAAuB,eAlDzCgI,GAAAA,EAAQ63C,GAmD0B,IAAI,IAjDtC73C,EAAMm4C,SAAS,CAAC,CAAA,EAkDhB,GACA7mD,EAAEmQ,QAAQ,CAACzJ,EAAO,YAAa,SAAU1G,CAAC,EACtC,IAAI0O,EAAQ1O,EAAE0O,KAAK,CACfpE,EAASoE,EAAMpE,MAAM,AACzBsL,CAAAA,EAAmBoxC,oBAAoB,CAAG,CACtCzlD,EAAGmN,EAAMnN,CAAC,CACVC,EAAGkN,EAAMlN,CAAC,CACVyb,WAAY3S,EAASA,EAAOyD,IAAI,CAAG,EACvC,CACJ,GACA/N,EAAEmQ,QAAQ,CAACzJ,EAAO,aAAc,WAC5B+U,WAAW,WACP7F,EAAmBqxC,YAAY,EACnC,EAAG,GACP,GAGAjnD,EAAEmQ,QAAQ,CAAEm1C,KAAwG,gBAAiB,WAEjI,IAAInO,EAAUzoC,AADF,IAAI,CACIhE,OAAO,EAAIgE,AADnB,IAAI,CACqBhE,OAAO,CAACjH,OAAO,CAChD0tB,EAAiBw0B,GAA6Bv0B,aAAa,CAK3D81B,EAAsB/1B,GAAkBA,EAAenU,YAAY,CAAC,SACpEmqC,EAAiBD,GACbA,EAAmBjlD,OAAO,CAAC,iCAAmC,EAClEyE,CAAAA,EAAMggD,gBAAgB,GAVd,IAAI,EAWZv1B,IAAmBgmB,GACnB,CAACgQ,GACDhQ,GACAA,EAAQrhC,KAAK,EACbqhC,EAAQrhC,KAAK,EAErB,EACJ,EAMAgxC,EAAyB3nD,SAAS,CAAC8nD,YAAY,CAAG,WAC9C,IAIIv4C,EAJA04C,EAAO,IAAI,CAACJ,oBAAoB,CAChCtgD,EAAQ,IAAI,CAACA,KAAK,CAClB4D,EAAS88C,GAAQrB,GAA2Cr/C,EAC5D0gD,EAAKnqC,UAAU,EAEfmqC,GAAQ98C,GAAUs7C,GAAiCwB,EAAK7lD,CAAC,GAAKqkD,GAAiCwB,EAAK5lD,CAAC,GACrGkN,CAAAA,EAAQo3C,GAAwCx7C,EAAQ88C,EAAK7lD,CAAC,CAAE6lD,EAAK5lD,CAAC,CAAA,EAE1EkN,EAAQA,GAAS63C,GAA0B7/C,GAEvCA,EAAM2O,SAAS,EACf3O,EAAM2O,SAAS,CAACS,KAAK,GAErBpH,GAASA,EAAMm4C,SAAS,EACxBn4C,EAAMm4C,SAAS,CAAC,CAAA,EAExB,EAIAC,EAAyB3nD,SAAS,CAACkoD,4BAA4B,CAAG,WAC9D,IAAIzxC,EAAqB,IAAI,CACzBnM,EAAO,IAAI,CAAC8H,QAAQ,CACpB7K,EAAQ,IAAI,CAACA,KAAK,CAClBotB,EAAWptB,EAAMotB,QAAQ,CAC7B,OAAO,IAz9S6DvhB,GAy9SjB7L,EAAO,CACtD8L,WAAY,CACR,CACIshB,EAAW,CAACrqB,EAAKiI,EAAE,CAAEjI,EAAKkI,IAAI,CAAC,CAAG,CAAClI,EAAK+H,IAAI,CAAE/H,EAAKgI,KAAK,CAAC,CACzD,SAAUyB,CAAO,EACb,OAAO0C,EAAmB0xC,aAAa,CAAC,IAAI,CAAEp0C,EAClD,EACH,CACD,CACI4gB,EAAW,CAACrqB,EAAK+H,IAAI,CAAE/H,EAAKgI,KAAK,CAAC,CAAG,CAAChI,EAAKiI,EAAE,CAAEjI,EAAKkI,IAAI,CAAC,CACzD,SAAUuB,CAAO,EACb,OAAO0C,EAAmB2xC,aAAa,CAAC,IAAI,CAAEr0C,EAClD,EACH,CACD,CACI,CAACzJ,EAAKmI,KAAK,CAAEnI,EAAKoI,KAAK,CAAC,CACxB,SAAUqB,CAAO,CAAE1C,CAAK,EAEpB,IADI7E,EACA+C,EAAQhI,EAAMggD,gBAAgB,CAClC,GAAIh4C,EAAO,CACP,IAAI9C,EAAK,IAAI,CAAClF,KAAK,CACf0tB,EAAWxoB,EAAGwoB,QAAQ,CACtBD,EAAUvoB,EAAGuoB,OAAO,CACpBkT,EAAK34B,EAAMipC,KAAK,CAEhBrQ,EAAK54B,EAAMkpC,KAAK,CAEpBpnC,EAAQi1C,GAAgCA,GAAgC,CAAC,EAAGj1C,GAAQ,CAAEqvB,OAAQzL,EAHlFiT,CAAAA,AAAO,KAAK,IAAZA,EAAgB,EAAIA,CAAC,EAG+EvH,OAAQ3L,EAD5GmT,CAAAA,AAAO,KAAK,IAAZA,EAAgB,EAAIA,CAAC,EACwG54B,MAAOA,EAAOke,OAAQ,AAAC,CAAA,AAAyB,OAAxBjhB,CAAAA,EAAK+C,EAAMhE,OAAO,AAAD,GAAeiB,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGlI,OAAO,AAAD,GAAM+M,EAAMoc,MAAM,AAAC,GACtPi5B,GAAmCn3C,EAAMpE,MAAM,CAAE,QAASkG,GAC1D9B,EAAM84C,cAAc,CAAC,QAASh3C,EAClC,CACA,OAAO,IAAI,CAACmC,QAAQ,CAACC,OAAO,AAChC,EACH,CACD,CACI,CAACnJ,EAAKyI,IAAI,CAAC,CACX,WAEI,OADA00C,GAAgClgD,GACzB,IAAI,CAACiM,QAAQ,CAACC,OAAO,AAChC,EACH,CACD,CACI,CAACnJ,EAAKlC,GAAG,CAAC,CACV,WAEI,OADAk/C,GAA+B//C,GACxB,IAAI,CAACiM,QAAQ,CAACC,OAAO,AAChC,EACH,CACD,CACI,CAACnJ,EAAKwI,QAAQ,CAAExI,EAAKuI,MAAM,CAAC,CAC5B,SAAUkB,CAAO,EAEb,OADAxM,EAAM+gD,uBAAuB,CAACv0C,IAAYzJ,EAAKwI,QAAQ,EAChD,IAAI,CAACU,QAAQ,CAACC,OAAO,AAChC,EACH,CACJ,CACD5B,KAAM,WACF,OAAO4E,EAAmB8xC,aAAa,CAAC,IAAI,CAChD,EACAj1C,SAAU,WACN,MAAO,CAAC,CAAC8zC,GAA0B7/C,EACvC,EACAgM,UAAW,WACP,OAAOkD,EAAmB+xC,kBAAkB,EAChD,CACJ,EACJ,EAQAb,EAAyB3nD,SAAS,CAACmoD,aAAa,CAAG,SAAUM,CAAO,CAAE10C,CAAO,EACzE,IAAIzJ,EAAO,IAAI,CAAC8H,QAAQ,CACpBs2C,EAAS30C,IAAYzJ,EAAKgI,KAAK,EAAIyB,IAAYzJ,EAAKkI,IAAI,CAC5D,OAAO,IAAI,CAACm2C,6BAA6B,CAACF,EAASC,EACvD,EAQAf,EAAyB3nD,SAAS,CAACuoD,aAAa,CAAG,SAAUE,CAAO,EAChE,IAAIlhD,EAAQ,IAAI,CAACA,KAAK,CAStB,OAPIqhD,AADgBrhD,EAAMgD,OAAO,CAACmC,aAAa,CAAC+J,kBAAkB,CAChDihC,gBAAgB,CAACmR,kBAAkB,EACjDthD,EAAMggD,gBAAgB,CACtBhgD,EAAMggD,gBAAgB,CAACG,SAAS,GAGhCD,GAAgClgD,GAE7BkhD,EAAQj1C,QAAQ,CAACC,OAAO,AACnC,EAQAk0C,EAAyB3nD,SAAS,CAACooD,aAAa,CAAG,SAAUK,CAAO,CAAE10C,CAAO,EACzE,IAAIxM,EAAQ,IAAI,CAACA,KAAK,CAClB+C,EAAO,IAAI,CAAC8H,QAAQ,CACpBs2C,EAAS30C,IAAYzJ,EAAKkI,IAAI,EAAIuB,IAAYzJ,EAAKgI,KAAK,CACxDw2C,EAAavhD,EAAMgD,OAAO,CAACmC,aAAa,CAAC+J,kBAAkB,CACtDihC,gBAAgB,CAEzB,GAAIoR,EAAWC,IAAI,EAAID,AAAoB,cAApBA,EAAWC,IAAI,CAClC,OAAO,IAAI,CAACJ,6BAA6B,CAACF,EAASC,GAGvD,IAAIM,EAAkB,AAACzhD,EAAMggD,gBAAgB,EACrChgD,EAAMggD,gBAAgB,CAACp8C,MAAM,CAAC89C,oBAAoB,CAClD,iCACA,0BAER,OADA1hD,CAAK,CAACyhD,EAAgB,CAACN,GAChBD,EAAQj1C,QAAQ,CAACC,OAAO,AACnC,EAIAk0C,EAAyB3nD,SAAS,CAACwoD,kBAAkB,CAAG,WACpD,IAAIjhD,EAAQ,IAAI,CAACA,KAAK,CAClBqhD,EAAgBrhD,EAAMgD,OAAO,CAACmC,aAAa,CAAC+J,kBAAkB,AAC9DlP,CAAAA,EAAM6mB,OAAO,EACb7mB,EAAM6mB,OAAO,CAACC,IAAI,CAAC,GAEvB,IAAI66B,EAAe3hD,EAAMggD,gBAAgB,EAAIhgD,EAAMggD,gBAAgB,CAACp8C,MAAM,CACtE+9C,GAAeA,EAAYC,UAAU,EACrCD,EAAYC,UAAU,GAEtB5hD,EAAMggD,gBAAgB,EAAIhgD,EAAMggD,gBAAgB,CAAC4B,UAAU,EAC3D5hD,EAAMggD,gBAAgB,CAAC4B,UAAU,GAEhCP,EAAclR,gBAAgB,CAACmR,kBAAkB,EAClD,OAAOthD,EAAMggD,gBAAgB,AAErC,EAKAI,EAAyB3nD,SAAS,CAAC2oD,6BAA6B,CAAG,SAAUF,CAAO,CAAEW,CAAe,EACjG,IAAI7hD,EAAQ,IAAI,CAACA,KAAK,CAClB2iB,EAAa3iB,EAAMgD,OAAO,CAACmC,aAAa,CAAC+J,kBAAkB,CACtDyT,UAAU,QAEnB,AAD0B3iB,EAAM8hD,sBAAsB,CAACD,GAShDX,EAAQj1C,QAAQ,CAACC,OAAO,CAP3B,AAAIyW,GAAek/B,CAAAA,EACf3B,GAAgClgD,GAChC+/C,GAA+B//C,EAAK,EAC7BkhD,EAAQj1C,QAAQ,CAACC,OAAO,CAE5Bg1C,EAAQj1C,QAAQ,CAAC41C,EAAkB,OAAS,OAAO,AAGlE,EAIAzB,EAAyB3nD,SAAS,CAAC4nD,eAAe,CAAG,SAAUz8C,CAAM,EACjE,IAAI5D,EAAQ,IAAI,CAACA,KAAK,AACiBA,CAAAA,EAAMggD,gBAAgB,EACrDhgD,EAAMggD,gBAAgB,CAACp8C,MAAM,GAAKA,IAEtC,OAAO5D,EAAMggD,gBAAgB,CACzBhgD,EAAMyP,YAAY,EAClBzP,EAAMyP,YAAY,CAACG,iBAAiB,GAGhD,EAIAwwC,EAAyB3nD,SAAS,CAAC2R,OAAO,CAAG,WACzC,IAAI,CAACO,aAAa,CAACX,iBAAiB,EACxC,EACOo2C,CACX,KAMA,AAAC,SAAUA,CAAwB,EAwB/B,SAAS2B,EAA4B31C,CAAI,EACrC,IASI2mC,EACAE,EATArvC,EAAS5D,AADD,IAAI,CACG4D,MAAM,CACrBo+C,EAAWhiD,AAFH,IAAI,CAEKggD,gBAAgB,CACjCiC,EAAgBD,GAAYzC,GAAcyC,IAAa,EACvDE,EAAYF,GAAYA,EAASp+C,MAAM,CAACC,MAAM,EAAI,EAAE,CACpDs+C,EAAaniD,AALL,IAAI,CAKO4D,MAAM,EAAI5D,AALrB,IAAI,CAKuB4D,MAAM,CAAC5D,AALlC,IAAI,CAKoC4D,MAAM,CAAC/H,MAAM,CAAG,EAAE,CAClEumD,EAAYD,GACRA,EAAWt+C,MAAM,EACjBs+C,EAAWt+C,MAAM,CAACs+C,EAAWt+C,MAAM,CAAChI,MAAM,CAAG,EAAE,CAIvD,GAAI,CAAC+H,CAAM,CAAC,EAAE,EAAI,CAACA,CAAM,CAAC,EAAE,CAACC,MAAM,CAC/B,MAAO,CAAA,EAEX,GAAKm+C,EAcD,CAAA,GAPAjP,EAAYnvC,CAAM,CAACo+C,EAASp+C,MAAM,CAACmK,KAAK,CAAI3B,CAAAA,EAAO,EAAI,EAAC,EAAG,CAC3D6mC,CAAAA,EAAWiP,CAAS,CAACD,EAAiB71C,CAAAA,EAAO,EAAI,EAAC,EAAG,AAAD,IACnC2mC,GAEbE,CAAAA,EAAWF,EAAUlvC,MAAM,CAACuI,EAAO,EAAI2mC,EAAUlvC,MAAM,CAAChI,MAAM,CAAG,EAAE,AAAD,EAGlE,CAACo3C,EACD,MAAO,CAAA,CACX,MAbAA,EAAW7mC,EAAOxI,CAAM,CAAC,EAAE,CAACC,MAAM,CAAC,EAAE,CAAGu+C,SAgB5C,AAAI1C,GAAYzM,IAIRuM,GADJzM,EAAYE,EAASrvC,MAAM,EAEvB5D,AAvCI,IAAI,CAuCFggD,gBAAgB,CAAG5zC,EACrB2mC,EAAUlvC,MAAM,CAACkvC,EAAUlvC,MAAM,CAAChI,MAAM,CAAG,EAAE,CAC7Ck3C,EAAUlvC,MAAM,CAAC,EAAE,CAIvB7D,AA7CI,IAAI,CA6CFggD,gBAAgB,CAAG/M,EAGtBjzC,AAhDC,IAAI,CAgDC8hD,sBAAsB,CAAC11C,IAGjC6mC,EAASkN,SAAS,EAC7B,CAKA,SAASkC,EAAoCp3C,CAAI,EAC7C,IAEIq3C,EAFAN,EAAW,IAAI,CAAChC,gBAAgB,CAChCuC,EAAczsB,UAElB,EAAI,CAAA,AAACopB,GAAiC8C,EAAS/Q,KAAK,GAAMiO,GAAiC8C,EAAS9Q,KAAK,CAAA,IAGzG,IAAI,CAACttC,MAAM,CAAC7C,OAAO,CAAC,SAAU6C,CAAM,EAC5B47C,GAAa57C,IAGjBA,EAAOC,MAAM,CAAC9C,OAAO,CAAC,SAAUiH,CAAK,EACjC,GAAI,AAACk3C,GAAiCl3C,EAAMkpC,KAAK,GAAMgO,GAAiCl3C,EAAMipC,KAAK,GAC/FjpC,IAAUg6C,GAGd,IAAIQ,EAAYx6C,EAAMkpC,KAAK,CAAG8Q,EAAS9Q,KAAK,CACxClyC,EAAQ9B,KAAKsU,GAAG,CAACxJ,EAAMipC,KAAK,CAAG+Q,EAAS/Q,KAAK,EAC7CwR,EAAWvlD,KAAKsU,GAAG,CAACgxC,GAAatlD,KAAKsU,GAAG,CAACgxC,GACtCxjD,EAAQA,EAAQ,CAEhB4E,CAAAA,EAAOsE,KAAK,EAAItE,EAAOsE,KAAK,CAACsuB,QAAQ,EACrCgsB,CAAAA,GAAa,EAAC,GAElBA,CAAAA,GAAa,GAAKv3C,GAAQu3C,GAAa,GAAK,CAACv3C,GAC7Cw3C,EAAW,GACX/C,GAAY13C,EAAK,GAGjBy6C,EAAWF,IACXA,EAAcE,EACdH,EAAYt6C,GAEpB,EACJ,GACOs6C,EAAAA,GAAYA,EAAUnC,SAAS,GAC1C,CAMA,SAASuC,EAA6Bz3C,CAAI,EACtC,IAKI8nC,EACAE,EACA0P,EANAX,EAAWhiD,AADH,IAAI,CACKggD,gBAAgB,CACjCmC,EAAaniD,AAFL,IAAI,CAEO4D,MAAM,EAAI5D,AAFrB,IAAI,CAEuB4D,MAAM,CAAC5D,AAFlC,IAAI,CAEoC4D,MAAM,CAAC/H,MAAM,CAAG,EAAE,CAClEumD,EAAYD,GAAcA,EAAWt+C,MAAM,EACvCs+C,EAAWt+C,MAAM,CAACs+C,EAAWt+C,MAAM,CAAChI,MAAM,CAAG,EAAE,QAKvD,AAAKmE,AATO,IAAI,CASLggD,gBAAgB,IAO3BjN,CAAAA,EAAa/yC,AAhBD,IAAI,CAgBG4D,MAAM,CAACo+C,EAASp+C,MAAM,CAACmK,KAAK,CAAI9C,CAAAA,EAAO,GAAK,CAAA,EAAG,GAMlEgoC,CAAAA,EAAW2P,AA4Df,SAAyB56C,CAAK,CAAEpE,CAAM,CAAEi/C,CAAO,CAAEC,CAAO,EACpD,IACIC,EACAC,EACAP,EAHAF,EAAczsB,IAIdl6B,EAAIgI,EAAOC,MAAM,CAAChI,MAAM,CACxBonD,EAAuB,SAAUj7C,CAAK,EAAI,MAAQ,CAAEk3C,CAAAA,GAAiCl3C,EAAMipC,KAAK,GAAKiO,GAAiCl3C,EAAMkpC,KAAK,CAAA,CAAK,EAC1J,IAAI+R,EAAqBj7C,IAGzB,KAAOpM,MAECqnD,EADJF,EAASn/C,EAAOC,MAAM,CAACjI,EAAE,GAUrB6mD,AANJA,CAAAA,EAAW,AAACz6C,CAAAA,EAAMipC,KAAK,CAAG8R,EAAO9R,KAAK,AAAD,EAChCjpC,CAAAA,EAAMipC,KAAK,CAAG8R,EAAO9R,KAAK,AAAD,EA5Ec,EA8ExC,AAACjpC,CAAAA,EAAMkpC,KAAK,CAAG6R,EAAO7R,KAAK,AAAD,EACrBlpC,CAAAA,EAAMkpC,KAAK,CAAG6R,EAAO7R,KAAK,AAAD,EACd,CAAC,EACNqR,IACXA,EAAcE,EACdO,EAAQpnD,GAGhB,OAAOsjD,GAAiC8D,GAASp/C,EAAOC,MAAM,CAACm/C,EAAM,CAAG,KAAK,EACjF,EAvF+BhB,EAAUjP,EAAW,EAAC,KAK7CyM,GAAazM,GAKb,CAHAE,EAASkN,SAAS,GAElBwC,EAAmB3iD,AA/BX,IAAI,CA+Ba+gD,uBAAuB,CAAC91C,IAO1C03C,GAJHX,EAAS7B,SAAS,GACX,CAAA,IAOflN,EAASkN,SAAS,GACXlN,EAASrvC,MAAM,CAACq8C,uBAAuB,MAjC1ClN,EAAY9nC,EAAQjL,AAVZ,IAAI,CAUc4D,MAAM,EAAI5D,AAV5B,IAAI,CAU8B4D,MAAM,CAAC,EAAE,CAAIu+C,EAIhDlP,EAHPA,CAAAA,EAAWhoC,EACN8nC,GAAaA,EAAUlvC,MAAM,EAAIkvC,EAAUlvC,MAAM,CAAC,EAAE,CACrDu+C,CAAQ,GACMnP,EAASkN,SAAS,GA8B5C,CA2EA,SAAS+C,EAAeC,CAAiB,EAGX,KAAK,IAA3BA,GAAgCA,CAAAA,EAAoB,CAAA,CAAG,EAC3D,IAHIl+C,EACAC,EAEAlF,EAAQ,IAAI,CAAC4D,MAAM,CAAC5D,KAAK,CACzBojD,EAAiB,AAA8E,OAA7El+C,CAAAA,EAAK,AAAyB,OAAxBD,CAAAA,EAAKjF,EAAM6mB,OAAO,AAAD,GAAe5hB,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGyJ,KAAK,AAAD,GAAexJ,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGnI,OAAO,AAC1I,EAAC,IAAI,CAACixC,MAAM,EAAImV,EAChB,IAAI,CAACE,WAAW,GAGZrjD,EAAM6mB,OAAO,EACb7mB,EAAM6mB,OAAO,CAACC,IAAI,CAAC,GAK3Bw4B,GAA2C,IAAI,EAG3C,IAAI,CAACt7C,OAAO,GACZhE,EAAM+T,iBAAiB,CAAC,IAAI,CAAC/P,OAAO,EAChC,CAACm/C,GAAqBnjD,EAAMyP,YAAY,EACxCzP,EAAMyP,YAAY,CAACG,iBAAiB,IAG5C5P,EAAMggD,gBAAgB,CAAG,IAAI,CAE7B,IAAIsD,EAAaF,MAAAA,EAAuD,KAAK,EAAIA,EAAerM,qBAAqB,GAAGvpB,GAAG,CAC3H,GAAI41B,GAAkBE,GAAcA,EAAa,EAAG,CAEhD,IAAIC,EAAYC,OAAOC,OAAO,CAG9BD,OAAOE,QAAQ,CAAC,CACZC,SAAU,SACVn2B,IAJe+1B,EAAYD,CAK/B,EACJ,CACA,OAAO,IAAI,AACf,CASA,SAASM,IACL,IAAI5B,EAAW,IAAI,CAAChiD,KAAK,CAACggD,gBAAgB,CACtC6D,EAAQ,AAAC7B,CAAAA,GAAYA,EAASp+C,MAAM,AAAD,IAAO,IAAI,CAC1C27C,GAAcyC,GACd,EACJn+C,EAAS,IAAI,CAACA,MAAM,CACpB5B,EAAM4B,EAAOhI,MAAM,CACvB,GAAIgI,GAAU5B,EAAK,CACf,IAAK,IAAIrG,EAAIioD,EAAOjoD,EAAIqG,EAAK,EAAErG,EAC3B,GAAI,CAAC8jD,GAAY77C,CAAM,CAACjI,EAAE,EACtB,OAAOiI,CAAM,CAACjI,EAAE,CAACukD,SAAS,GAGlC,IAAK,IAAI2D,EAAID,EAAOC,GAAK,EAAG,EAAEA,EAC1B,GAAI,CAACpE,GAAY77C,CAAM,CAACigD,EAAE,EACtB,OAAOjgD,CAAM,CAACigD,EAAE,CAAC3D,SAAS,EAGtC,CACA,MAAO,CAAA,CACX,CA/GAC,EAAyBl9C,OAAO,CA5BhC,SAAiBC,CAAU,CAAE4gD,CAAU,CAAE5uB,CAAW,EAChD,IAAI/xB,EAAaD,EAAW1K,SAAS,CACjCurD,EAAaD,EAAWtrD,SAAS,CACjCwrD,EAAc9uB,EAAY18B,SAAS,AAClC2K,CAAAA,EAAW0+C,sBAAsB,GAClC1+C,EAAW0+C,sBAAsB,CAAGC,EACpC3+C,EAAW8gD,8BAA8B,CAAI7B,EAC7Cj/C,EAAW29C,uBAAuB,CAAG2B,EACrCsB,EAAW7D,SAAS,CAAG+C,EAOvBe,EAAYvC,oBAAoB,CAAG,CAAA,EACnC,CACI,SACA,QACA,MACH,CAAC3gD,OAAO,CAAC,SAAUvH,CAAI,EAChBwlD,EAAoC,CAACxlD,EAAK,EAC1CwlD,CAAAA,EAAoC,CAACxlD,EAAK,CAACf,SAAS,CAACipD,oBAAoB,CAAG,CAAA,CAAI,CAExF,GACAuC,EAAYhE,uBAAuB,CAAI2D,EAE/C,CAiHJ,EAAGxD,IAA6BA,CAAAA,GAA2B,CAAC,CAAA,GAM/B,IAAI+D,GAA4C/D,GAezEgE,IACIrtD,EAAgB,SAAUe,CAAC,CAC3B+U,CAAC,EAOD,MAAO9V,AANHA,CAAAA,EAAgBoB,OAAO2U,cAAc,EAChC,CAAA,CAAEC,UAAW,EAAE,AAAC,CAAA,YAAapF,OAAS,SAAU7P,CAAC,CAC1D+U,CAAC,EAAI/U,EAAEiV,SAAS,CAAGF,CAAG,GACd,SAAU/U,CAAC,CACnB+U,CAAC,EAAI,IAAK,IAAI9I,KAAK8I,EAAO1U,OAAOM,SAAS,CAACC,cAAc,CAACC,IAAI,CAACkU,EAC/D9I,IAAIjM,CAAAA,CAAC,CAACiM,EAAE,CAAG8I,CAAC,CAAC9I,EAAE,AAAD,CAAG,CAAA,EACIjM,EAAG+U,EAC5B,EACO,SAAU/U,CAAC,CAAE+U,CAAC,EACjB,GAAI,AAAa,YAAb,OAAOA,GAAoBA,AAAM,OAANA,EAC3B,MAAM,AAAIoK,UAAU,uBAAyBC,OAAOrK,GAAK,iCAE7D,SAASG,IAAO,IAAI,CAACC,WAAW,CAAGnV,CAAG,CADtCf,EAAce,EAAG+U,GAEjB/U,EAAEW,SAAS,CAAGoU,AAAM,OAANA,EAAa1U,OAAO+U,MAAM,CAACL,GAAMG,CAAAA,EAAGvU,SAAS,CAAGoU,EAAEpU,SAAS,CAAE,IAAIuU,CAAG,CACtF,GAIAq3C,GAAmChgD,EAAqBwD,gBAAgB,CAIxEy8C,GAAiC/U,GAAgCC,cAAc,CAc/E+U,GAAiC,SAAU/2C,CAAM,EAEjD,SAAS+2C,IACL,OAAO/2C,AAAW,OAAXA,GAAmBA,EAAOnE,KAAK,CAAC,IAAI,CAAEC,YAAc,IAAI,AACnE,CA2FA,OA9FA86C,GAAwBG,EAAiB/2C,GAazC+2C,EAAgBrhD,OAAO,CAAG,SAAUC,CAAU,CAAE4gD,CAAU,CAAE5uB,CAAW,EACnEqf,GAAiCtxC,OAAO,CAACiyB,GACzCupB,GAAcx7C,OAAO,CAACiyB,GACtBgvB,GAAyCjhD,OAAO,CAACC,EAAY4gD,EAAY5uB,EAC7E,EASAovB,EAAgB9rD,SAAS,CAAC6R,IAAI,CAAG,WAC7B,IAAI,CAACgqC,gBAAgB,CAAG,IAAIE,GAAiC,IAAI,CAACx0C,KAAK,EACvE,IAAI,CAACs0C,gBAAgB,CAAChqC,IAAI,GAC1B,IAAI,CAAC4E,kBAAkB,CAAG,IAAIi1C,GAAyC,IAAI,CAACnkD,KAAK,CAAE,IAAI,CAAC6K,QAAQ,EAChG,IAAI,CAACqE,kBAAkB,CAAC5E,IAAI,GAC5B,IAAI,CAACk6C,0BAA0B,GAC/B,IAAI,CAACC,+BAA+B,EACxC,EAIAF,EAAgB9rD,SAAS,CAAC+rD,0BAA0B,CAAG,WACnD,IAAIpsC,EAAY,IAAI,AAChB,CAAA,IAAI,CAACpY,KAAK,CAAC6mB,OAAO,EAClB,IAAI,CAACpd,QAAQ,CAAC,IAAI,CAACzJ,KAAK,CAAC6mB,OAAO,CAAC5Z,WAAW,CAAE,UAAW,WACjD,IAAI,CAACjN,KAAK,GAAKoY,EAAUpY,KAAK,EAC9B,IAAI,CAAC0O,KAAK,EACV,IAAI,CAACA,KAAK,CAAC3R,OAAO,EAClB,IAAI,CAAC2R,KAAK,CAAC3R,OAAO,CAACyK,YAAY,CAAC,cAAe,CAAA,EAEvD,EAER,EAIA+8C,EAAgB9rD,SAAS,CAACgsD,+BAA+B,CAAG,WACxD,IAAI,CAACh7C,QAAQ,CAAC,IAAI,CAACzJ,KAAK,CAAE,wBAAyB,WAC/C,IAAI,CAAC4D,MAAM,CAAC7C,OAAO,CAAC,SAAU6C,CAAM,EAC5BA,EAAO8gD,aAAa,EACpB9gD,EAAO8gD,aAAa,CAACjyC,IAAI,CAAC,cAAe,CAAA,EAEjD,EACJ,EACJ,EAKA8xC,EAAgB9rD,SAAS,CAAC8R,aAAa,CAAG,WAEtCvK,AADY,IAAI,CAACA,KAAK,CAChB4D,MAAM,CAAC7C,OAAO,CAAC,SAAU6C,CAAM,EACN,AACuB,CAAA,IADtBA,CAAAA,EAAOZ,OAAO,CAACmC,aAAa,EAChDvB,EAAOZ,OAAO,CAACmC,aAAa,CAAC0K,OAAO,AAAD,GACnCjM,EAAO8R,OAAO,EAAI9R,AAAwC,IAAxCA,EAAO+gD,mBAAmB,GAAG9oD,MAAM,CAEzDyoD,GAA+B1gD,GAG/BygD,GAAiCzgD,EAEzC,EACJ,EAKA2gD,EAAgB9rD,SAAS,CAAC4R,qBAAqB,CAAG,WAC9C,OAAO,IAAI,CAAC6E,kBAAkB,CAACyxC,4BAA4B,EAC/D,EAKA4D,EAAgB9rD,SAAS,CAAC2R,OAAO,CAAG,WAChC,IAAI,CAACkqC,gBAAgB,CAAClqC,OAAO,GAC7B,IAAI,CAAC8E,kBAAkB,CAAC9E,OAAO,EACnC,EACOm6C,CACX,EA9sUyEp6C,IAmuUrEy6C,IACI7tD,EAAgB,SAAUe,CAAC,CAC3B+U,CAAC,EAOD,MAAO9V,AANHA,CAAAA,EAAgBoB,OAAO2U,cAAc,EAChC,CAAA,CAAEC,UAAW,EAAE,AAAC,CAAA,YAAapF,OAAS,SAAU7P,CAAC,CAC1D+U,CAAC,EAAI/U,EAAEiV,SAAS,CAAGF,CAAG,GACd,SAAU/U,CAAC,CACnB+U,CAAC,EAAI,IAAK,IAAI9I,KAAK8I,EAAO1U,OAAOM,SAAS,CAACC,cAAc,CAACC,IAAI,CAACkU,EAC/D9I,IAAIjM,CAAAA,CAAC,CAACiM,EAAE,CAAG8I,CAAC,CAAC9I,EAAE,AAAD,CAAG,CAAA,EACIjM,EAAG+U,EAC5B,EACO,SAAU/U,CAAC,CAAE+U,CAAC,EACjB,GAAI,AAAa,YAAb,OAAOA,GAAoBA,AAAM,OAANA,EAC3B,MAAM,AAAIoK,UAAU,uBAAyBC,OAAOrK,GAAK,iCAE7D,SAASG,IAAO,IAAI,CAACC,WAAW,CAAGnV,CAAG,CADtCf,EAAce,EAAG+U,GAEjB/U,EAAEW,SAAS,CAAGoU,AAAM,OAANA,EAAa1U,OAAO+U,MAAM,CAACL,GAAMG,CAAAA,EAAGvU,SAAS,CAAGoU,EAAEpU,SAAS,CAAE,IAAIuU,CAAG,CACtF,GAIA63C,GAAyCxgD,EAAqBkD,wBAAwB,CAEtFu9C,GAAkC7pD,EAAoBP,iBAAiB,CAGvEqqD,GAAqB,AAAChsD,IAA+E0Z,IAAI,CAAEuyC,GAAqB,AAACjsD,IAA+E6G,IAAI,CA0BpNqlD,GAA+B,SAAUz3C,CAAM,EAE/C,SAASy3C,IAML,IAAItwC,EAAQnH,AAAW,OAAXA,GAAmBA,EAAOnE,KAAK,CAAC,IAAI,CAC5CC,YAAc,IAAI,CAEtB,OADAqL,EAAMuwC,qBAAqB,CAAG,GACvBvwC,CACX,CAkRA,OA7RAiwC,GAAsBK,EAAez3C,GAoBrCy3C,EAAcxsD,SAAS,CAAC6R,IAAI,CAAG,WAC3B,IAAI8N,EAAY,IAAI,CAChBpY,EAAQ,IAAI,CAACA,KAAK,CACtB,IAAI,CAAC0K,aAAa,CAACiX,QAAQ,CAAC,OAAQ,OACpC,CACI,qBAAsB,sBAAuB,aAChD,CAAC5gB,OAAO,CAAC,SAAU67B,CAAS,EACzBxkB,EAAU3O,QAAQ,CAACzJ,EAAO48B,EAAW,WACjCxkB,EAAU+sC,mBAAmB,EACjC,EACJ,EACJ,EAIAF,EAAcxsD,SAAS,CAAC+R,aAAa,CAAG,WACpC,IAAIxK,EAAQ,IAAI,CAACA,KAAK,CAClBoY,EAAY,IAAI,AAEhBpY,CAAAA,EAAMolD,aAAa,EACnBplD,EAAMolD,aAAa,CAACC,UAAU,CAACtkD,OAAO,CAAC,SAAUvG,CAAM,CAAEoB,CAAC,EACtDipD,GAAuC7kD,EAAOxF,EAAOuC,OAAO,EAC5Dqb,EAAUktC,oBAAoB,CAAC9qD,EAAOuC,OAAO,CAAE,6BAAgCnB,CAAAA,EAAI,MAAQ,IAAG,EAClG,EAER,EAMAqpD,EAAcxsD,SAAS,CAAC6sD,oBAAoB,CAAG,SAAU9qD,CAAM,CAAE+qD,CAAc,EAC3E,IAAIvlD,EAAQ,IAAI,CAACA,KAAK,CAEtB+kD,GAAmBvqD,EAAQ,CACvBwjB,SAAU,GACVgE,KAAM,SACN,aAJQhiB,EAAM6C,UAAU,CAAC0iD,EAAgB,CAAEvlD,MAAOA,CAAM,EAK5D,EACJ,EAKAilD,EAAcxsD,SAAS,CAAC8R,aAAa,CAAG,WACpC,IAAI,CAAC46C,mBAAmB,EAC5B,EAIAF,EAAcxsD,SAAS,CAAC0sD,mBAAmB,CAAG,WAC1C,IAAInlD,EAAQ,IAAI,CAACA,KAAK,CAMtB,GAJA,IAAI,CAAC0K,aAAa,CAACuW,UAAU,CAAC,QAC1BjhB,EAAMwlD,eAAe,EACrB,IAAI,CAACC,qBAAqB,CAACzlD,EAAMwlD,eAAe,CAAE,uBAAwBxlD,EAAM6C,UAAU,CAAC,qCAAsC,CAAE7C,MAAOA,CAAM,IAEhJA,EAAM0lD,aAAa,EACnB1lD,EAAM2lD,WAAW,EACjB3lD,EAAM2lD,WAAW,CAACC,IAAI,CAAE,CACxB,IAAIC,EAAiB7lD,EAAM2lD,WAAW,CAACC,IAAI,CAAC5lD,EAAM2lD,WAAW,CAACC,IAAI,CAAC/pD,MAAM,CAAG,EAAE,CAC9E,IAAI,CAAC4pD,qBAAqB,CAACzlD,EAAM0lD,aAAa,CAAE,qBAAsB1lD,EAAM6C,UAAU,CAAC,8BAA+B,CAClH7C,MAAOA,EACP8lD,WAAY9lD,EAAM2lD,WAAW,CAACI,aAAa,CAACF,EAChD,GACJ,CACJ,EAOAZ,EAAcxsD,SAAS,CAACgtD,qBAAqB,CAAG,SAAUnkC,CAAQ,CAAE0kC,CAAU,CAAEt3C,CAAK,EACjF,IAAI,CAACs3C,EAAW,CAAG,IAAI,CAACt7C,aAAa,CAAC8W,eAAe,CAAC,OAAQ,CAC1DC,MAAOH,CACX,EAAG,SAAU,CACT,aAAc5S,EACdsP,SAAU,EACd,EACJ,EAMAinC,EAAcxsD,SAAS,CAACwtD,oBAAoB,CAAG,WAC3C,IAAIljD,EAAO,IAAI,CAAC8H,QAAQ,CACpB7K,EAAQ,IAAI,CAACA,KAAK,CAClBoY,EAAY,IAAI,CACpB,OAAO,IAnyU6DvM,GAmyUjB7L,EAAO,CACtD8L,WAAY,CACR,CACI,CAAC/I,EAAKiI,EAAE,CAAEjI,EAAKkI,IAAI,CAAElI,EAAK+H,IAAI,CAAE/H,EAAKgI,KAAK,CAAC,CAC3C,SAAUyB,CAAO,EACb,OAAO4L,EAAU8tC,aAAa,CAAC,IAAI,CAAE15C,EACzC,EACH,CACD,CACI,CAACzJ,EAAKsI,GAAG,CAAC,CACV,SAAU86C,CAAQ,CAAE7sD,CAAC,EACjB,OAAO8e,EAAUguC,WAAW,CAAC,IAAI,CAAE9sD,EACvC,EACH,CACD,CACI,CAACyJ,EAAKoI,KAAK,CAAEpI,EAAKmI,KAAK,CAAC,CACxB,WACI,OAAOkN,EAAUiuC,aAAa,CAAC,IAAI,CACvC,EACH,CACJ,CACDt6C,SAAU,WACN,MArJL,CAAC,CAAE,CAAA,AAAC/L,AAqJwBA,EArJlBsd,OAAO,EACpBtd,AAoJ+BA,EApJzBolD,aAAa,EACnBplD,AAmJ+BA,EAnJzBolD,aAAa,CAACC,UAAU,CAACxpD,MAAM,AAAD,CAoJhC,EACAyO,KAAM,SAAUmb,CAAS,EACrB,OAAOrN,EAAUkuC,YAAY,CAAC7gC,EAClC,CACJ,EACJ,EAQAw/B,EAAcxsD,SAAS,CAACytD,aAAa,CAAG,SAAU3jC,CAAyB,CAAE/V,CAAO,EAChF,IAAIxM,EAAQ,IAAI,CAACA,KAAK,CAClB+C,EAAO,IAAI,CAAC8H,QAAQ,CACpBqb,EAASlmB,EAAM2O,SAAS,CACxB43C,EAAM/5C,IAAYzJ,EAAKiI,EAAE,EAAIwB,IAAYzJ,EAAKkI,IAAI,CAClDu7C,EAAgB,AAACh6C,IAAYzJ,EAAK+H,IAAI,EAAI0B,IAAYzJ,EAAKiI,EAAE,CACzD,EAAI,GAERy7C,EAAO,AAACF,CAAAA,EAAMvmD,EAAM4hC,UAAU,CAAG5hC,EAAM2hC,SAAS,AAAD,EADjC,GAEI6kB,EAElBn2C,EAAInT,AAAgB,GAAhBA,KAAKwpD,MAAM,GACfC,EAAW,CACP9rD,EAAGqrB,EAAO0gC,UAAU,CAAG5mD,EAAM0tB,QAAQ,CAAG1tB,EAAM2hC,SAAS,CAAG,EAAItxB,EAC9DvV,EAAGorB,EAAO2gC,SAAS,CAAG7mD,EAAMytB,OAAO,CAAGztB,EAAM4hC,UAAU,CAAG,EAAIvxB,CACjE,EACAy2C,EAASP,EAAM,CAAE1rD,EAAG8rD,EAAS9rD,CAAC,CAC9BC,EAAG6rD,EAAS7rD,CAAC,CAAG2rD,CAAK,EACjB,CAAE5rD,EAAG8rD,EAAS9rD,CAAC,CAAG4rD,EACtB3rD,EAAG6rD,EAAS7rD,CAAC,AAAC,EAMlB,MALA,CACIgqD,GAAgC,YAAa6B,GAC7C7B,GAAgC,YAAagC,GAC7ChC,GAAgC,UAAWgC,GAC9C,CAAC/lD,OAAO,CAAC,SAAUzH,CAAC,EAAI,OAAO4sB,EAAOzhB,aAAa,CAACnL,EAAI,GAClDipB,EAA0BtW,QAAQ,CAACC,OAAO,AACrD,EAOA+4C,EAAcxsD,SAAS,CAAC2tD,WAAW,CAAG,SAAU7jC,CAAyB,CAAEzY,CAAK,EAC5E,IAAI9J,EAAQ,IAAI,CAACA,KAAK,CAClBiM,EAAWsW,EAA0BtW,QAAQ,CAC7C86C,EAAcj9C,EAAMxP,QAAQ,CAC5B0sD,EAAmBD,GAAe,CAAC,IAAI,CAAC7B,qBAAqB,EACzD,CAAC6B,GAAe,IAAI,CAAC7B,qBAAqB,CAGlD,GADAllD,EAAMolD,aAAa,CAACC,UAAU,CAAC,IAAI,CAACH,qBAAqB,CAAC,CAACp8B,QAAQ,CAAC,GAChEk+B,EAIA,OAHIhnD,EAAMsd,OAAO,EACbtd,EAAMsd,OAAO,CAAC2pC,MAAM,GAEjBh7C,CAAQ,CAAC86C,EAAc,OAAS,OAAO,AAGlD,CAAA,IAAI,CAAC7B,qBAAqB,EAAI6B,EAAc,GAAK,EACjD,IAAIvsD,EAASwF,EAAMolD,aAAa,CAACC,UAAU,CAAC,IAAI,CAACH,qBAAqB,CAAC,CAGvE,OAFAllD,EAAM+T,iBAAiB,CAACvZ,EAAOiU,GAAG,CAAEjU,EAAOuC,OAAO,EAClDvC,EAAOsuB,QAAQ,CAAC,GACT7c,EAASC,OAAO,AAC3B,EAOA+4C,EAAcxsD,SAAS,CAAC4tD,aAAa,CAAG,SAAU9jC,CAAyB,EACvE,IAAIpnB,EAAK,IAAI,CAAC6E,KAAK,CAAColD,aAAa,CAACC,UAAU,CAAC,IAAI,CAACH,qBAAqB,CAAC,CAACnoD,OAAO,CAEhF,OADA,IAAI,CAAC2O,cAAc,CAACvQ,GACbonB,EAA0BtW,QAAQ,CAACC,OAAO,AACrD,EAKA+4C,EAAcxsD,SAAS,CAAC6tD,YAAY,CAAG,SAAU7gC,CAAS,EACtD,IAAIzlB,EAAQ,IAAI,CAACA,KAAK,CAClBknD,EAASlnD,EAAMolD,aAAa,CAACC,UAAU,CAAC,EAAE,CAC1C8B,EAAUnnD,EAAMolD,aAAa,CAACC,UAAU,CAAC,EAAE,CAC3C+B,EAAgB3hC,EAAY,EAAIyhC,EAASC,EAC7CnnD,EAAM+T,iBAAiB,CAACqzC,EAAc34C,GAAG,CAAE24C,EAAcrqD,OAAO,EAChEqqD,EAAct+B,QAAQ,CAAC,GACvB,IAAI,CAACo8B,qBAAqB,CAAGz/B,EAAY,EAAI,EAAI,CACrD,EASAw/B,EAAcxsD,SAAS,CAAC4uD,sBAAsB,CAAG,SAAUrB,CAAU,CAAEsB,CAAS,CAAEC,CAAO,EACrF,IAAIxkD,EAAO,IAAI,CAAC8H,QAAQ,CACpBuN,EAAY,IAAI,CAChBpY,EAAQ,IAAI,CAACA,KAAK,CACtB,OAAO,IAj6U6D6L,GAi6UjB7L,EAAO,CACtD8L,WAAY,CACR,CACI,CAAC/I,EAAKsI,GAAG,CAAEtI,EAAKiI,EAAE,CAAEjI,EAAKkI,IAAI,CAAElI,EAAK+H,IAAI,CAAE/H,EAAKgI,KAAK,CAAC,CACrD,SAAUyB,CAAO,CAAElT,CAAC,EAChB,IAAIytD,EAAev6C,IAAYzJ,EAAKsI,GAAG,EAAI/R,EAAEgB,QAAQ,EAC7CkS,IAAYzJ,EAAK+H,IAAI,EACrB0B,IAAYzJ,EAAKiI,EAAE,CAE3B,OAAO,IAAI,CAACiB,QAAQ,CAAC86C,EAAc,OAAS,OAAO,AACvD,EACH,CACD,CACI,CAAChkD,EAAKoI,KAAK,CAAEpI,EAAKmI,KAAK,CAAC,CACxB,WAGI,OAAO85C,GAFGuC,EAAQ,IAAI,CAClBvnD,GAC2B,IAAI,CAACiM,QAAQ,CAACC,OAAO,CACxD,EACH,CACJ,CACDH,SAAU,WAIN,OAHiB/L,CAAK,CAACgmD,EAAW,EAC1BhmD,CAAK,CAACgmD,EAAW,CAACv3C,GAAG,EACrB2J,CAAS,CAACkvC,EAAU,CAACvmC,YAAY,AAE7C,EACAzW,KAAM,WACFtK,EAAM+T,iBAAiB,CAAC/T,CAAK,CAACgmD,EAAW,CAACv3C,GAAG,CAAE2J,CAAS,CAACkvC,EAAU,CAACvmC,YAAY,CACpF,CACJ,EACJ,EAMAkkC,EAAcxsD,SAAS,CAAC4R,qBAAqB,CAAG,WAC5C,MAAO,CACH,IAAI,CAACg9C,sBAAsB,CAAC,kBAAmB,uBAAwB,SAAUG,CAAQ,CAAExnD,CAAK,EAC5FA,EAAMmnD,OAAO,EACjB,GACA,IAAI,CAACE,sBAAsB,CAAC,gBAAiB,qBAAsB,SAAUnG,CAAO,CAAElhD,CAAK,EAEvF,OADAA,EAAMynD,OAAO,GACNvG,EAAQj1C,QAAQ,CAACE,IAAI,AAChC,GACA,IAAI,CAAC85C,oBAAoB,GAC5B,AACL,EACOhB,CACX,EAtjVyE96C,IA4kVrEu9C,GAAuB,AAAC3uD,IAA+EC,GAAG,CAAE2uD,GAAO,AAAC5uD,IAA+E4uD,IAAI,CAAEC,GAAuB,AAAC7uD,IAA+EE,GAAG,CA4FtR4uD,GAJtB,CACPC,yBA5EJ,WAEI,IAAIC,EAAS,QAAQvqD,IAAI,CAACoqD,GAAqB76B,SAAS,CAACi7B,SAAS,EAClE,GAAIJ,GAAqBK,UAAU,EAAIF,EACnC,OAAOH,GAAqBK,UAAU,CAAC,+BAA+BC,OAAO,CAGjF,GAAIP,IAAQC,GAAqBO,gBAAgB,CAAE,CAC/C,IAAIC,EAAUV,GAAqBt+C,aAAa,CAAC,MAGjDg/C,CAAAA,EAAQn4C,KAAK,CAACo4C,eAAe,CAAG,OAAO1yC,MAAM,CAF9B,6EAEyC,KACxD+xC,GAAqBhgD,IAAI,CAAC9I,WAAW,CAACwpD,GACtC,IAAIE,EAAK,AAACF,CAAAA,EAAQG,YAAY,EACtBX,GAAqBO,gBAAgB,CAACC,EAAO,EAAGC,eAAe,CAEvE,OADAX,GAAqBhgD,IAAI,CAACvJ,WAAW,CAACiqD,GAC/BE,AAAO,SAAPA,CACX,CAEA,OAAOV,GAAqBK,UAAU,EAAIL,GAAqBK,UAAU,CAAC,2BAA2BC,OAAO,AAChH,EAyDIM,qBA/CJ,SAA8BxoD,CAAK,EAK/BA,EAAMyoD,sBAAsB,CAAG,CAAA,EAE/B,IAHIxjD,EAGAyjD,EAAS1oD,EAAMgD,OAAO,CAACmC,aAAa,CAACwjD,iBAAiB,CAC1D3oD,EAAMykB,MAAM,CAACikC,EAAO,CAAA,GACpB,IAAIE,EAAkB,AAAC,CAAA,AAAwB,OAAvB3jD,CAAAA,EAAKyjD,EAAMhiB,MAAM,AAAD,GAAezhC,AAAO,KAAK,IAAZA,EAAgB,KAAK,EAAIA,EAAGpJ,MAAM,AAAD,EAAK,EAE7FmE,EAAM4D,MAAM,CAAC7C,OAAO,CAAC,SAAUuG,CAAC,EAC5B,IAAIuhD,EAAWH,EAAMtiB,WAAW,CAAC9+B,EAAE9N,IAAI,CAAC,EAAI,CAAC,EACzCsvD,EAAYF,GAAmBthD,AAAiB,KAAK,IAAtBA,EAAEyhD,UAAU,CACvCL,EAAMhiB,MAAM,CAACp/B,EAAEyhD,UAAU,CAAC,CAC1BF,EAAS34C,KAAK,EAAI,SACtB84C,EAAgB,CACZ94C,MAAO24C,EAAS34C,KAAK,EAAI,aACzBw2B,OAAQkiB,EACJF,EAAMhiB,MAAM,CAAG,CAACmiB,EAAS34C,KAAK,EAAI,aAAa,CACnD0hB,YAAai3B,EAASj3B,WAAW,EAAI,SACrCk3B,UAAWA,CACf,EACJxhD,EAAEmd,MAAM,CAACukC,EAAe,CAAA,GACpB1hD,EAAEzD,MAAM,EAERyD,EAAEzD,MAAM,CAAC9C,OAAO,CAAC,SAAUgD,CAAC,EACpBA,EAAEf,OAAO,EAAIe,EAAEf,OAAO,CAACkN,KAAK,EAC5BnM,EAAE0gB,MAAM,CAAC,CACLvU,MAAO24C,EAAS34C,KAAK,EAAI,aACzB0hB,YAAai3B,EAASj3B,WAAW,EAAI,QACzC,EAAG,CAAA,EAEX,EAER,GAGA5xB,EAAMwuB,MAAM,EAChB,CASA,EAmpDIy6B,GAAQ,AAAClwD,IAA+EkwD,KAAK,CAAEC,GAAyB,AAACnwD,IAA+E6G,IAAI,CAgBhN,SAASupD,GAAkBtzD,CAAI,CAAEuzD,CAAa,CAAE3mD,CAAG,EAI/C,IAHA,IACIjK,EADA6wD,EAAMxzD,EAEN+F,EAAI,EACDA,EAAIwtD,EAAcvtD,MAAM,CAAG,EAAG,EAAED,EAEnCytD,EAAMA,CAAG,CADT7wD,EAAO4wD,CAAa,CAACxtD,EAAE,CACR,CAAGstD,GAAuBG,CAAG,CAAC7wD,EAAK,CAAE,CAAC,EAEzD6wD,CAAAA,CAAG,CAACD,CAAa,CAACA,EAAcvtD,MAAM,CAAG,EAAE,CAAC,CAAG4G,CACnD,CAKA,SAAS6mD,GAAwBtpD,CAAK,CAAEupD,CAAc,CAAEC,CAAc,CAAEC,CAAe,EAInF,SAASC,EAAa7zD,CAAI,CAAE8zD,CAAW,EACnC,OAAOA,EAAYjnD,MAAM,CAAC,SAAUC,CAAG,CAAEC,CAAG,EACxC,OAAOD,CAAG,CAACC,EAAI,AACnB,EAAG/M,EACP,CACA,IAAI+zD,EAAUF,EAAa1pD,EAAMgD,OAAO,CACpCumD,GACAM,EAAUH,EAAa1pD,EAAMgD,OAAO,CACpCwmD,GACJrxD,OAAO4K,IAAI,CAAC0mD,GAAiB1oD,OAAO,CAAC,SAAU+oD,CAAY,EAEvD,IADI7kD,EACAxC,EAAMmnD,CAAO,CAACE,EAAa,AACZ,MAAA,IAARrnD,IACP0mD,GAAkBU,EAASJ,CAAe,CAACK,EAAa,CAAErnD,GAC1DwmD,GAAM,GAAI,CAAA,EAAOjpD,EAAQiF,CAAAA,AACrBA,CADqBA,EAAK,CAAC,CAAA,CACzB,CAACskD,EAAezyC,IAAI,CAAC,KAAO,IAAMgzC,EAAa,CAAIN,EAAe1yC,IAAI,CAAC,KAAO,IAC5E2yC,CAAe,CAACK,EAAa,CAAChzC,IAAI,CAAC,KACvC7R,CAAC,GAEb,EACJ,CA4J6B,IAAI8kD,GAfjC,SAA+B/pD,CAAK,MAxI5Bqa,EACAmI,EADAnI,EAAera,AAyIQA,EAzIFgD,OAAO,CAAChD,KAAK,CAClCwiB,EAAcxiB,AAwISA,EAxIHgD,OAAO,CAACmC,aAAa,EAAI,CAAC,EAClD,CAAC,cAAe,kBAAkB,CAACpE,OAAO,CAAC,SAAUvI,CAAI,EACrD,IAAIyM,CACAoV,CAAAA,CAAY,CAAC7hB,EAAK,GAClBgqB,CAAW,CAAChqB,EAAK,CAAG6hB,CAAY,CAAC7hB,EAAK,CACtCywD,GAAM,GAAI,CAAA,EAmISjpD,EAnIMiF,CAAAA,AAASA,CAATA,EAAK,CAAC,CAAA,CAAK,CAAC,SAAS0Q,MAAM,CAACnd,GAAM,CAAG,qBAAqBmd,MAAM,CAACnd,GAAOyM,CAAC,GAE1G,GAkIA+kD,AA7HJ,SAAmChqD,CAAK,EACpCA,EAAMmf,IAAI,CAACpe,OAAO,CAAC,SAAUiE,CAAI,EAC7B,IAAIilD,EAAOjlD,EAAKhC,OAAO,CACnBinD,GAAQA,EAAK7kD,WAAW,GACxB6kD,EAAK9kD,aAAa,CAAG8kD,EAAK9kD,aAAa,EAAI,CAAC,EAC5C8kD,EAAK9kD,aAAa,CAACC,WAAW,CAAG6kD,EAAK7kD,WAAW,CACjD6jD,GAAM,GAAI,CAAA,EAAOjpD,EAAO,CACpB,mBAAoB,oCACxB,GAER,EACJ,EAkH8BA,GACtBA,EAAM4D,MAAM,EACZsmD,AAhHR,SAAqClqD,CAAK,EAGtC,IAAImqD,EAAwB,CACpB/kD,YAAa,CAAC,gBAAiB,cAAc,CAC7CglD,oBAAqB,CAAC,gBAAiB,oBAAoB,CAC3DC,0BAA2B,CACvB,gBAAiB,QAAS,uBAC7B,CACDC,uBAAwB,CACpB,gBAAiB,qBAAsB,UAC1C,CACD,0CAA2C,CACvC,gBAAiB,QAAS,uBAC7B,AACL,EACJtqD,EAAM4D,MAAM,CAAC7C,OAAO,CAAC,SAAU6C,CAAM,EAEjCzL,OAAO4K,IAAI,CAAConD,GAAuBppD,OAAO,CAAC,SAAUwpD,CAAS,EAE1D,IADItlD,EACAulD,EAAY5mD,EAAOZ,OAAO,CAACunD,EAAU,AAEvB,CAAA,4CAAdA,GACAC,CAAAA,EAAa5mD,EAAOZ,OAAO,CAACmC,aAAa,EACrCvB,EAAOZ,OAAO,CAACmC,aAAa,CACvBklD,yBAAyB,EAEb,KAAA,IAAdG,IAEPrB,GAAkBvlD,EAAOZ,OAAO,CAAEmnD,CAAqB,CAACI,EAAU,CAGlEA,AAAc,2BAAdA,EACI,CAACC,EAAYA,GACjBvB,GAAM,GAAI,CAAA,EAAOjpD,EAAQiF,CAAAA,AACrBA,CADqBA,EAAK,CAAC,CAAA,CACzB,CAAC,UAAU0Q,MAAM,CAAC40C,GAAW,CAAI,UAC/BJ,CAAqB,CAACI,EAAU,CAACzzC,IAAI,CAAC,KAC1C7R,CAAC,GAEb,EACJ,EACJ,EAuEoCjF,GAlEhCspD,GAoE2CtpD,EApEZ,CAAC,gBAAgB,CAAE,CAAC,gBAAgB,CAAE,CACjEyqD,gBAAiB,CAAC,QAAS,aAAa,CACxCC,mBAAoB,CAAC,QAAS,gBAAgB,CAC9CL,0BAA2B,CAAC,QAAS,uBAAuB,CAC5DM,0BAA2B,CACvB,SACA,mCACH,CACDC,yBAA0B,CACtB,qBAAsB,mBACtB,kCACH,CACDC,mBAAoB,CAAC,QAAS,gBAAgB,CAC9CC,iBAAkB,CAAC,QAAS,cAAc,CAC1CC,iBAAkB,CAAC,QAAS,cAAc,CAC1CC,6BAA8B,CAC1B,sBACA,uBACH,CACDvZ,qBAAsB,CAAC,SAAU,uBAAuB,CACxDwZ,2BAA4B,CAAC,SAAU,uBAAuB,CAC9DC,mBAAoB,CAAC,sBAAuB,uBAAuB,CACnEtkD,oBAAqB,CAAC,sBAAuB,sBAAsB,AACvE,GAMA0iD,GAwCwCtpD,EAxCT,CAAC,gBAAiB,qBAAqB,CAAE,CAAC,gBAAiB,qBAAsB,mBAAmB,CAAE,CACjI2/C,eAAgB,CAAC,iBAAiB,CAClC6B,KAAM,CAAC,OAAO,AAClB,GAMA8H,GAgC0BtpD,EAhCK,CAAC,OAAQ,gBAAgB,CAAE,CAAC,OAAQ,gBAAgB,CAAE,CACjF6oB,WAAY,CAAC,SAAU,aAAa,CACpCoC,YAAa,CAAC,SAAU,cAAc,CACtCkgC,UAAW,CAAC,OAAQ,YAAY,CAChCC,WAAY,CAAC,OAAQ,aAAa,CAClC5F,gBAAiB,CAAC,OAAQ,kBAAkB,CAC5C6F,wBAAyB,CACrB,sBACA,oBACH,CACDC,oBAAqB,CAAC,gBAAiB,aAAa,CACpDC,sBAAuB,CAAC,gBAAiB,gBAAgB,CACzDC,sBAAuB,CAAC,gBAAiB,gBAAgB,CACzDC,gBAAiB,CAAC,sBAAuB,mBAAmB,CAC5DC,gBAAiB,CAAC,QAAS,4BAA4B,CACvDC,aAAc,CAAC,QAAS,eAAe,AAC3C,EAiBJ,EAsBIC,GAA+B,AAAC7yD,IAA+E0/B,cAAc,CAE7HozB,GAAoB,AAAC9yD,IAA+EC,GAAG,CAEvG8yD,GAAyB,AAAC/yD,IAA+E0Q,QAAQ,CAAEsiD,GAAuB,AAAChzD,IAA+Ei8B,MAAM,CAAEg3B,GAA0B,AAACjzD,IAA+E2K,SAAS,CAAEuoD,GAAsB,AAAClzD,IAA+E4zB,KAAK,CAElcu/B,GAA8BjxD,EAAoBsD,aAAa,CAoC/D4tD,GAA+B,WAM/B,SAASA,EAAcnsD,CAAK,EACxB,IAAI,CAACsK,IAAI,CAACtK,EACd,CAqJA,OAzIAmsD,EAAc1zD,SAAS,CAAC6R,IAAI,CAAG,SAAUtK,CAAK,EAG1C,GAFA,IAAI,CAACA,KAAK,CAAGA,EAET,CAAC6rD,GAAkBO,gBAAgB,CAAE,CACrC,IAAI,CAACC,MAAM,CAAG,CAAA,EACd,IAAI,CAACjoC,UAAU,CAAG,CAAC,EACnBpkB,EAAMyH,QAAQ,CAACD,YAAY,CAAC,cAAe,CAAA,GAC3C,MACJ,CAGAuiD,GAAkB/pD,GAClB,IAAI,CAAC0K,aAAa,CAAG,IAxjImC8sC,GAwjIH,IAAI,CAACx3C,KAAK,EAC/D,IAAI,CAACssD,cAAc,GACnB,IAAI,CAACp9C,kBAAkB,CAAG,IAAIgY,GAAiClnB,EAAO,IAAI,CAACokB,UAAU,CACzF,EAIA+nC,EAAc1zD,SAAS,CAAC6zD,cAAc,CAAG,WACrC,IAAItsD,EAAQ,IAAI,CAACA,KAAK,CAClB0K,EAAgB,IAAI,CAACA,aAAa,CAClC8X,EAAcxiB,EAAMgD,OAAO,CAACmC,aAAa,AAC7C,CAAA,IAAI,CAACif,UAAU,CAAG,CACdzV,UAAW,IAx0Y2CpB,GAy0YtDg/C,YAAa,IAlqW2Cr0C,GAmqWxDiQ,OAAQ,IAAImE,GACZkgC,UAAW,IAAI7oC,GACfkK,cAAe,IAAIkvB,GACnBn5C,OAAQ,IAn6EgD2gD,GAo6ExDkI,KAAM,IA5jE2CxH,GA6jEjDl4B,UAAW,IAp6K2C6b,EAq6K1D,EACIpmB,EAAYkqC,gBAAgB,EAC5BX,GAAqB,IAAI,CAAC3nC,UAAU,CAAE5B,EAAYkqC,gBAAgB,EAEtE,IAAItoC,EAAa,IAAI,CAACA,UAAU,CAChC,IAAI,CAACuoC,iBAAiB,GAAG5rD,OAAO,CAAC,SAAUmkB,CAAa,EACpDd,CAAU,CAACc,EAAc,CAACza,QAAQ,CAACzK,EAAO0K,GAC1C0Z,CAAU,CAACc,EAAc,CAAC5a,IAAI,EAClC,EACJ,EAKA6hD,EAAc1zD,SAAS,CAACk0D,iBAAiB,CAAG,kBACxC,AAAK,IAAI,CAACvoC,UAAU,CAGf,IAAI,CAACA,UAAU,CAACxgB,MAAM,CAOpB,CAAC,SAAS,CAAC+R,MAAM,CAJKxd,OAAO4K,IAAI,CAAC,IAAI,CAACqhB,UAAU,EAC/C9kB,MAAM,CAAC,SAAUmpB,CAAC,EAAI,MAAOA,AAAM,WAANA,CAAgB,IAH3CtwB,OAAO4K,IAAI,CAAC,IAAI,CAACqhB,UAAU,EAH3B,EAAE,AAUjB,EAIA+nC,EAAc1zD,SAAS,CAACgsB,MAAM,CAAG,WAC7B,IAAIL,EAAa,IAAI,CAACA,UAAU,CAC5BpkB,EAAQ,IAAI,CAACA,KAAK,CAClBwiB,EAAcxiB,EAAMgD,OAAO,CAACmC,aAAa,CAC7C6mD,GAAwBhsD,EAAO,oBAE/BA,EAAM+c,KAAK,CAAG,IAAI,CAAC6vC,aAAa,GAGhC,IAAIC,EAAcrqC,EAAYtT,kBAAkB,CAAC6V,KAAK,CACtD,IAAI,CAACra,aAAa,CAAC4tC,gBAAgB,CAACuU,GAEpC,IAAI,CAACF,iBAAiB,GAAG5rD,OAAO,CAAC,SAAUmkB,CAAa,EACpDd,CAAU,CAACc,EAAc,CAAC1a,aAAa,GACvCwhD,GAAwBhsD,EAAO,2BAA4B,CACvDqH,KAAM6d,EACN9M,UAAWgM,CAAU,CAACc,EAAc,AACxC,EACJ,GAEA,IAAI,CAAChW,kBAAkB,CAACuV,MAAM,CAACooC,GAG3B,CAAC7sD,EAAMyoD,sBAAsB,EAC7BjmC,AAAiC,CAAA,IAAjCA,EAAYsqC,gBAAgB,EAAejF,CAAAA,GAAiBC,wBAAwB,IACpFtlC,AAAiC,CAAA,IAAjCA,EAAYsqC,gBAAgB,AAAQ,GACpCjF,GAAiBW,oBAAoB,CAACxoD,GAE1CgsD,GAAwBhsD,EAAO,kBAAmB,CAC9CmF,cAAe,IAAI,AACvB,EACJ,EAIAgnD,EAAc1zD,SAAS,CAAC2R,OAAO,CAAG,WAC9B,IAAIpK,EAAQ,IAAI,CAACA,KAAK,EAAI,CAAC,EAEvBokB,EAAa,IAAI,CAACA,UAAU,CAChCjsB,OAAO4K,IAAI,CAACqhB,GAAYrjB,OAAO,CAAC,SAAUmkB,CAAa,EACnDd,CAAU,CAACc,EAAc,CAAC9a,OAAO,GACjCga,CAAU,CAACc,EAAc,CAACvZ,WAAW,EACzC,GAEI,IAAI,CAACjB,aAAa,EAClB,IAAI,CAACA,aAAa,CAACN,OAAO,GAG1BpK,EAAMmV,kBAAkB,EACxB+2C,GAA4BlsD,EAAMmV,kBAAkB,EAGpD,IAAI,CAACjG,kBAAkB,EACvB,IAAI,CAACA,kBAAkB,CAAC9E,OAAO,GAG/BpK,EAAMyH,QAAQ,EACdzH,EAAMyH,QAAQ,CAACD,YAAY,CAAC,cAAe,CAAA,GAG3CxH,EAAMyP,YAAY,EAClBzP,EAAMyP,YAAY,CAACG,iBAAiB,EAE5C,EAKAu8C,EAAc1zD,SAAS,CAACm0D,aAAa,CAAG,WACpC,IAAI7vC,EAAQ,CAAC,EAIb,OAHA,IAAI,CAAC/c,KAAK,CAAC4D,MAAM,CAAC7C,OAAO,CAAC,SAAU6C,CAAM,EACtCmZ,CAAK,CAACnZ,EAAOpK,IAAI,CAAC,CAAG,CACzB,GACOrB,OAAO4K,IAAI,CAACga,EACvB,EACOovC,CACX,KAMA,AAAC,SAAUA,CAAa,EAqBpB,SAASY,IACD,IAAI,CAAC5nD,aAAa,EAClB,IAAI,CAACA,aAAa,CAACiF,OAAO,EAElC,CAKA,SAAS4iD,IAED,IAAI,CAACC,SAAS,EAAI,IAAI,CAACxlD,QAAQ,GAC/B,OAAO,IAAI,CAACwlD,SAAS,CACrB,IAAI,CAACC,iBAAiB,IAE1B,IAAIj+C,EAAO,IAAI,CAAC9J,aAAa,CACzB8J,GAAQ,CAACA,EAAKo9C,MAAM,GACpBp9C,EAAKvE,aAAa,CAACouC,2BAA2B,GAC9C7pC,EAAK09C,iBAAiB,GAAG5rD,OAAO,CAAC,SAAUmkB,CAAa,EACpDjW,EAAKmV,UAAU,CAACc,EAAc,CAAC3a,aAAa,EAChD,GAER,CAKA,SAAS4iD,EAAc7zD,CAAC,EAEpB,IAAI8zD,EAAa9zD,EAAE0J,OAAO,CAACmC,aAAa,CACpCioD,IAEIA,EAAWV,gBAAgB,GAC3B,IAAI,CAAC1pD,OAAO,CAACmC,aAAa,CAACunD,gBAAgB,CACvCU,EAAWV,gBAAgB,CAC/B,OAAOU,EAAWV,gBAAgB,EAEtCT,GAAoB,CAAA,EAAM,IAAI,CAACjpD,OAAO,CAACmC,aAAa,CAAEioD,GAElD,IAAI,CAACjoD,aAAa,EAAI,IAAI,CAACA,aAAa,CAACiF,OAAO,GAChD,IAAI,CAACjF,aAAa,CAACiF,OAAO,GAC1B,OAAO,IAAI,CAACjF,aAAa,GAIjC,IAAI,CAAC8nD,SAAS,CAAG,CAAA,CACrB,CAIA,SAASI,IACL,IAAIp+C,EAAO,IAAI,CAAC9J,aAAa,CACzB2T,EAAuB,IAAI,CAAC9V,OAAO,CAACmC,aAAa,CACjD03B,EAAM,IAAI,CAACh4B,QAAQ,CAACyoD,UAAU,CAACvwD,OAAO,CACtC4H,EAAQ,IAAI,CAACA,KAAK,CACtB,GAAImU,GAAwBA,EAAqBjJ,OAAO,CAChDZ,GAAQ,CAACA,EAAKo9C,MAAM,CACpBp9C,EAAKwV,MAAM,IAGX,IAAI,CAACtf,aAAa,CAAG8J,EAAO,IAAIk9C,EAAc,IAAI,EAC9Cl9C,GAAQ,CAACA,EAAKo9C,MAAM,EACpBp9C,EAAKwV,MAAM,GAGkB,QAA7BoY,EAAIvmB,YAAY,CAAC,SACjBumB,EAAIpe,eAAe,CAAC,cAI3B,GAAIxP,EAEDA,EAAK7E,OAAO,EACZ6E,EAAK7E,OAAO,GAEhB,OAAO,IAAI,CAACjF,aAAa,KAExB,CAED,IAAI,CAACsC,QAAQ,CAACD,YAAY,CAAC,OAAQ,OACnC,IAAI,CAACC,QAAQ,CAACD,YAAY,CAAC,cAAe,CAAA,GAC1C,IAAI,CAACC,QAAQ,CAACD,YAAY,CAAC,aAAc,AAAC,CAAA,AAAC7C,GAASA,EAAM5H,OAAO,CAACsR,WAAW,EAAK,EAAC,EAAG3R,OAAO,CAAC,KAAM,SACpGmgC,EAAIr1B,YAAY,CAAC,cAAe,CAAA,GAChC,IAAIpC,EAAcmoD,SAASC,sBAAsB,CAAC,yBAAyB,CAAC,EAAE,CAC1EpoD,IACAA,EAAYoC,YAAY,CAAC,cAAe,CAAA,GACxCpC,EAAY/J,SAAS,CAACgD,MAAM,CAAC,iCAErC,CACJ,CAsDA,SAASovD,IACD,IAAI,CAAC7pD,MAAM,CAAC5D,KAAK,CAACmF,aAAa,EAC/B,CAAA,IAAI,CAACvB,MAAM,CAAC5D,KAAK,CAACitD,SAAS,CAAG,CAAA,CAAG,CAEzC,CA7JAd,EAActsD,UAAU,CAAGwD,EAASxD,UAAU,CAoJ9CssD,EAAcjpD,OAAO,CA7CrB,SAAiBC,CAAU,CAAEkpB,CAAW,CAAE03B,CAAU,CAAE5uB,CAAW,CAAEthB,CAAe,CAAEipC,CAAkB,EAElG51B,GAAiChkB,OAAO,CAACC,GACzCqxC,GAAiCtxC,OAAO,CAACiyB,GACzC7I,GAA2BppB,OAAO,CAACC,EAAYkpB,GAC/C1I,GAAyBzgB,OAAO,CAACC,GACjCuqD,AA9oF4DnJ,GA8oF5BrhD,OAAO,CAACC,EAAY4gD,EAAY5uB,GAChE9xB,EAASH,OAAO,CAACC,GACjB6Q,GAAY9Q,OAAO,CAACC,EAAY0Q,GAE5BipC,GACAC,GAAkC75C,OAAO,CAACC,EAAY25C,GAE1D,IAAI15C,EAAaD,EAAW1K,SAAS,AAChC2K,CAAAA,EAAW8pD,iBAAiB,GAC7B9pD,EAAW8pD,iBAAiB,CAAGG,EAC/BvB,GAAuB3oD,EAAY,UAAW4pD,GAC9CjB,GAAuB3oD,EAAY,SAAU6pD,GAC7ClB,GAAuB3oD,EAAY,SAAUgqD,GAE7C,CAAC,YAAa,OAAO,CAACpsD,OAAO,CAAC,SAAU+I,CAAK,EACzCgiD,GAAuB3oD,EAAY2G,EAAO,WACtC,IAAI,CAACmjD,SAAS,CAAG,CAAA,CACrB,EACJ,GAEA,CAAC,sBAAuB,aAAa,CAAClsD,OAAO,CAAC,SAAU+I,CAAK,EACzDgiD,GAAuB3oD,EAAY2G,EAAO,WACtC,IAAImF,EAAO,IAAI,CAAC9J,aAAa,CACzB8J,GAAQ,CAACA,EAAKo9C,MAAM,EACpBp9C,EAAKwV,MAAM,EAEnB,EACJ,GACAqnC,GAAuB/H,EAAY,SAAU0J,GAE7C,CAAC,SAAU,cAAe,SAAS,CAAC1sD,OAAO,CAAC,SAAU+I,CAAK,EACvDgiD,GAAuB32B,EAAarrB,EAAO,WACnC,IAAI,CAAC9J,KAAK,CAACmF,aAAa,EACxB,CAAA,IAAI,CAACnF,KAAK,CAACitD,SAAS,CAAG,CAAA,CAAG,CAElC,EACJ,GAER,CAWJ,EAAGd,IAAkBA,CAAAA,GAAgB,CAAC,CAAA,GAOtCF,GAAoB,CAAA,EAAML,GAt8DZ,CAYVzmD,cAAe,CAgBX0K,QAAS,CAAA,EAOTlJ,oBAAqB,CAmDjBoU,kBAAmB,sSAwBnByB,iBAAkB,qBAWlB5V,oBAAqB,mBACzB,EAQAhD,OAAQ,CA4CJwrC,kBAAmB,0DAOnBqC,qBAAsB,CAAA,EAYtBjG,iCAAkC,GACtC,EAMAxjC,MAAO,CA2GHulC,uBAAwB,oCAWxB8C,aAAc,CAAA,CAClB,EAcAxhC,kBAAmB,MAyCnByL,kBAAmB,+DAkCnBwyC,iBAAkB,OA6ClB59C,mBAAoB,CAMhBW,QAAS,CAAA,EAWTF,YAAa,CAMTE,QAAS,CAAA,EAMTc,wBAAyB,CAAA,EAazBV,MAAO,CAEHC,MAAO,UAEPE,UAAW,EAEXE,aAAc,CAClB,EAMAP,OAAQ,CACZ,EAaAgV,MAAO,CACH,SAAU,OAAQ,gBAClB,YAAa,SAAU,YAC1B,CAMDpC,WAAY,CAAA,EAOZwtB,iBAAkB,CA2BdwP,eAAgB,CAAA,EAUhBvP,gCAAiC,CAAA,EASjCkR,mBAAoB,CAAA,CACxB,CACJ,EAaAnP,gBAAiB,CA6BbtiC,QAAS,CAAA,EAUT6jC,oBAAqB,IAOrBhB,cAAe,CAAA,CACnB,CACJ,EAyJAvqB,OAAQ,CAQJhjB,cAAe,CAMX0K,QAAS,CAAA,EAOTX,mBAAoB,CAQhBW,QAAS,CAAA,CACb,CACJ,CACJ,EAIA8I,UAAW,CAQPxT,cAAe,CAMX0K,QAAS,CAAA,CACb,CACJ,EAIAkd,UAAW,CAQP5nB,cAAe,CAMX0K,QAAS,CAAA,CACb,CACJ,CACJ,EA6lCsE,CAClE1K,cAAe,CACXwjD,kBAruEI,CACR3oD,MAAO,CACH2xB,gBAAiB,QACrB,EACAhtB,MAAO,CACHsL,MAAO,CACHC,MAAO,YACX,CACJ,EACAwN,SAAU,CACNzN,MAAO,CACHC,MAAO,YACX,CACJ,EACAqY,UAAW,CACPolC,SAAU,aACVC,SAAU,aACVC,MAAO,EAAE,CACTnlC,YAAa,EAAE,AACnB,EACAge,OAAQ,CAAC,aAAa,CACtBz+B,MAAO,CACH+qB,cAAe,aACfpd,OAAQ,CACJ3F,MAAO,CACHC,MAAO,YACX,CACJ,EACA0iB,UAAW,aACXk7B,mBAAoB,aACpBC,UAAW,aACXppD,MAAO,CACHsL,MAAO,CACHC,MAAO,YACX,CACJ,CACJ,EACAhI,MAAO,CACH8qB,cAAe,aACfpd,OAAQ,CACJ3F,MAAO,CACHC,MAAO,YACX,CACJ,EACA0iB,UAAW,aACXk7B,mBAAoB,aACpBC,UAAW,aACXppD,MAAO,CACHsL,MAAO,CACHC,MAAO,YACX,CACJ,CACJ,EACA2W,QAAS,CACL8K,gBAAiB,SACjBC,YAAa,aACb3hB,MAAO,CACHC,MAAO,YACX,CACJ,EACAk2B,YAAa,CACTxiC,OAAQ,CACJgvB,UAAW,aACXk2B,UAAW,SACXl3B,YAAa,aACbo8B,UAAW,aACXh8C,YAAa,EACb2gB,WAAY,CACRs7B,eAAgB,aAChB/9C,MAAO,aACPD,MAAO,CACHC,MAAO,aACPmjB,YAAa,MACjB,CACJ,EACAR,OAAQ,CACJD,UAAW,aACXk2B,UAAW,YACf,CACJ,EACAoF,IAAK,CACDh+C,MAAO,SACPw2B,OAAQ,CAAC,SAAS,CAClB9U,YAAa,aACb5f,YAAa,CACjB,EACAm8C,QAAS,CACLrF,UAAW,QACf,EACAsF,YAAa,CACTx7B,UAAW,aACXk2B,UAAW,QACf,EACAuF,SAAU,CACNvF,UAAW,QACf,CACJ,EACA3gC,OAAQ,CACJwJ,gBAAiB,SACjB28B,UAAW,CACPp+C,MAAO,YACX,EACAq+C,eAAgB,CACZr+C,MAAO,YACX,EACAs+C,gBAAiB,CACbt+C,MAAO,MACX,EACAvL,MAAO,CACHsL,MAAO,CACHC,MAAO,YACX,CACJ,CACJ,EACAnB,QAAS,CACLkB,MAAO,CACHC,MAAO,YACX,CACJ,EACAu+C,UAAW,CACPC,qBAAsB,CAClBx+C,MAAO,YACX,EACAy+C,qBAAsB,CAClBz+C,MAAO,YACX,CACJ,EACA0+C,WAAY,CACRC,cAAe,CACXC,aAAc,aACdpG,MAAO,CACHttB,KAAM,QACV,CACJ,CACJ,EACAvN,cAAe,CACXkhC,YAAa,CACT3zB,KAAM,SACNprB,OAAQ,aACRC,MAAO,CACHC,MAAO,YACX,EACA01B,OAAQ,CACJopB,MAAO,CACH5zB,KAAM,SACNprB,OAAQ,aACRC,MAAO,CACHC,MAAO,YACX,CACJ,EACA++C,OAAQ,CACJ7zB,KAAM,OACNprB,OAAQ,aACRC,MAAO,CACHC,MAAO,YACX,CACJ,CACJ,CACJ,EACAg/C,oBAAqB,aACrBC,WAAY,CACRx9B,gBAAiB,SACjBzhB,MAAO,YACX,EACAk/C,WAAY,CACRl/C,MAAO,YACX,CACJ,EACA6c,UAAW,CACP0E,QAAS,CACLE,gBAAiB,SACjBC,YAAa,YACjB,EACAG,aAAc,aACdF,SAAU,cACVjuB,OAAQ,CACJsM,MAAO,aACP0iB,UAAW,YACf,EACA3qB,MAAO,CACH+qB,cAAe,YACnB,CACJ,EACA7qB,UAAW,CACP0vB,mBAAoB,OACpBE,eAAgB,aAChBC,iBAAkB,aAClBC,sBAAuB,SACvBC,kBAAmB,aACnBE,WAAY,aACZC,qBAAsB,SACtBC,iBAAkB,YACtB,CACJ,CAqiEI,EACAr1B,KA5kCc,CAqBdkC,cAAe,CAUXkqD,kBAAmB,QAKnBC,oBAAqB,yCAKrB9gD,kBAAmB,oBAKnBk3C,cAAe,eAKf32C,QAAS,8BAWTg9B,aAAc,IASdwjB,kBAAmB,GAQnBC,sBAAuB,GAOvB7oD,oBAAqB,CACjB8oD,kBAAmB,GACnBC,iBAAkB,GAMlBj6C,YAAa,CACTk6C,QAAS,4BACTC,uBAAyB,iDACzBC,0BAA4B,kHAI5BC,oBAAqB,kBACzB,EAMArzC,iBAAkB,2BACtB,EAMArB,aAAc,CACV20C,sBAAuB,8BACvBC,6BAA8B,MAClC,EAMA7nC,OAAQ,CAKJ8nC,mBAAoB,yCAMpBhlC,YAAa,8BAKbpC,WAAY,iBAChB,EAMA4jC,KAAM,CACFtB,UAAW,aACXC,WAAY,iBACZ5F,gBAAiB,YACrB,EAMA33B,cAAe,CACXqiC,cAAe,eACfC,cAAe,qBACfC,cAAe,mBACfC,wBAAyB,gCAC7B,EAMAtjC,UAAW,CAOPmc,YAAa,wDAMbF,WAAY,YASZuB,mBAAoB,wBACxB,EAMApsB,MAAO,CACHmyC,0BAA2B,mCAC3B3E,aAAc,gCAClB,EAYAxZ,gBAAiB,CACboe,gBAAiB,sCACjBC,wBAAyB,gCACzBC,uBAAwB,8BACxBC,0BAA2B,sDAC3BC,yBAA0B,mDAC9B,EAQAC,uBAAwB,CACpBzC,QAAS,gMAIT0C,UAAW,uGAEXC,gBAAiB,mGAEjBC,OAAQ,gFAERC,YAAa,2GAGb3C,SAAU,mEAEV4C,OAAQ,iEAERC,QAAS,kGAETC,UAAW,8FAEf,EAaAviB,WAAY,CAERwiB,WAAY,cACZC,mBAAoB,kDACpBC,WAAY,0DACZC,iBAAkB,kDAClBC,cAAe,uEAEfC,gBAAiB,sCACjBC,aAAc,4EAEdC,eAAgB,qCAChBC,WAAY,4EAEZC,aAAc,qCACdC,aAAc,kEAEdC,eAAgB,0CAChBC,UAAW,kEAEXC,YAAa,0CACbC,UAAW,sEAEXC,YAAa,mCACbC,cAAe,0EAEfC,gBAAiB,8CACjBC,cAAe,iEAEfC,gBAAiB,wCACjBC,aAAc,2EAEdC,eAAgB,4CACpB,EAMAztD,KAAM,CAEF0tD,yBAA0B,4DAC1BC,uBAAwB,uHACxBC,yBAA0B,4DAC1BC,uBAAwB,uHACxBC,cAAe,4BACfC,eAAgB,6BAChBC,iBAAkB,+BAClBC,iBAAkB,+BAClBC,YAAa,6CACbC,gBAAiB,yCACrB,EAMAx6C,UAAW,CACPy6C,eAAgB,aAChBC,gBAAiB,+BACrB,EAQAzvD,OAAQ,CAoBJqa,QAAS,CAEL,QAAW,qJACXq1C,mBAAoB,qJACpBC,KAAM,mJACNC,gBAAiB,2JACjBC,OAAQ,mJACRC,kBAAmB,2JACnBC,OAAQ,gJACRC,kBAAmB,wJACnB95B,IAAK,gJACL+5B,eAAgB,wJAChB3F,IAAK,6IACL4F,eAAgB,qJAChBC,QAAS,sJACTC,mBAAoB,8JACpB7F,QAAS,8IACT8F,mBAAoB,sJACpBlD,OAAQ,yJACRmD,kBAAmB,iKACnBnqD,IAAK,2IACLoqD,eAAgB,mJAChBC,QAAS,mJACTC,mBAAoB,2JACpBC,UAAW,yJACXC,qBAAsB,gKAC1B,EAUAnvD,YAAa,gBAOb2W,iBAAkB,iBAOlBC,iBAAkB,iBAMlBw4C,eAAgB,WAOhBC,4BAA6B,8CAEjC,CACJ,CACJ,CA6qBA,GAM6B,IAAIC,GAA+BvI,GAY5DwI,GAAK57D,GAET47D,CAAAA,GAAE90D,UAAU,CAAG60D,GAA4B70D,UAAU,CACrD80D,GAAEC,kBAAkB,CAAGvwD,EACvBswD,GAAEE,iBAAiB,CAAG55D,EACtB05D,GAAExqD,sBAAsB,CAt7ZiDA,GAu7ZzEwqD,GAAE9oD,yBAAyB,CAp1ZiDA,GAq1Z5E8oD,GAAEG,4BAA4B,CAAGvlB,GAEjCmlB,GAA4BxxD,OAAO,CAACyxD,GAAEI,KAAK,CAAEJ,GAAEK,MAAM,CAAEL,GAAEM,KAAK,CAAEN,GAAEO,MAAM,CAAEP,GAAEQ,UAAU,CAAER,GAAES,aAAa,EAC1E,IAAIv8D,GAAsBE,IAG7C,OADYH,EAAoB,OAAU,AAE3C,GAET"}
Hacked By AnonymousFox1.0, Coded By AnonymousFox